From 17d5125b84bbd46ffe5155929c63536db1c43755 Mon Sep 17 00:00:00 2001 From: Ella22le <1071444737@qq.com> Date: Tue, 20 Oct 2020 19:48:09 +0800 Subject: [PATCH 01/21] update note.md --- venv/Lib/site-packages/easy-install.pth | 2 + .../pip-10.0.1-py3.8.egg/EGG-INFO/PKG-INFO | 69 + .../pip-10.0.1-py3.8.egg/EGG-INFO/SOURCES.txt | 347 + .../EGG-INFO/dependency_links.txt | 1 + .../EGG-INFO/entry_points.txt | 5 + .../EGG-INFO/not-zip-safe | 1 + .../EGG-INFO/requires.txt | 8 + .../EGG-INFO/top_level.txt | 1 + .../pip-10.0.1-py3.8.egg/pip/__init__.py | 1 + .../pip-10.0.1-py3.8.egg/pip/__main__.py | 19 + .../pip/_internal/__init__.py | 246 + .../pip/_internal/basecommand.py | 373 + .../pip/_internal/baseparser.py | 240 + .../pip/_internal/build_env.py | 92 + .../pip/_internal/cache.py | 202 + .../pip/_internal/cmdoptions.py | 609 ++ .../pip/_internal/commands/__init__.py | 79 + .../pip/_internal/commands/check.py | 42 + .../pip/_internal/commands/completion.py | 94 + .../pip/_internal/commands/configuration.py | 227 + .../pip/_internal/commands/download.py | 233 + .../pip/_internal/commands/freeze.py | 96 + .../pip/_internal/commands/hash.py | 57 + .../pip/_internal/commands/help.py | 36 + .../pip/_internal/commands/install.py | 502 ++ .../pip/_internal/commands/list.py | 343 + .../pip/_internal/commands/search.py | 135 + .../pip/_internal/commands/show.py | 164 + .../pip/_internal/commands/uninstall.py | 71 + .../pip/_internal/commands/wheel.py | 179 + .../pip/_internal/compat.py | 235 + .../pip/_internal/configuration.py | 378 + .../pip/_internal/download.py | 922 ++ .../pip/_internal/exceptions.py | 249 + .../pip/_internal/index.py | 1117 +++ .../pip/_internal/locations.py | 194 + .../pip/_internal/models/__init__.py | 4 + .../pip/_internal/models/index.py | 15 + .../pip/_internal/operations/__init__.py | 0 .../pip/_internal/operations/check.py | 106 + .../pip/_internal/operations/freeze.py | 252 + .../pip/_internal/operations/prepare.py | 380 + .../pip/_internal/pep425tags.py | 317 + .../pip/_internal/req/__init__.py | 69 + .../pip/_internal/req/req_file.py | 338 + .../pip/_internal/req/req_install.py | 1115 +++ .../pip/_internal/req/req_set.py | 164 + .../pip/_internal/req/req_uninstall.py | 455 + .../pip/_internal/resolve.py | 354 + .../pip/_internal/status_codes.py | 8 + .../pip/_internal/utils/__init__.py | 0 .../pip/_internal/utils/appdirs.py | 258 + .../pip/_internal/utils/deprecation.py | 77 + .../pip/_internal/utils/encoding.py | 33 + .../pip/_internal/utils/filesystem.py | 28 + .../pip/_internal/utils/glibc.py | 84 + .../pip/_internal/utils/hashes.py | 94 + .../pip/_internal/utils/logging.py | 132 + .../pip/_internal/utils/misc.py | 851 ++ .../pip/_internal/utils/outdated.py | 163 + .../pip/_internal/utils/packaging.py | 70 + .../pip/_internal/utils/setuptools_build.py | 8 + .../pip/_internal/utils/temp_dir.py | 82 + .../pip/_internal/utils/typing.py | 29 + .../pip/_internal/utils/ui.py | 421 + .../pip/_internal/vcs/__init__.py | 471 + .../pip/_internal/vcs/bazaar.py | 113 + .../pip/_internal/vcs/git.py | 311 + .../pip/_internal/vcs/mercurial.py | 105 + .../pip/_internal/vcs/subversion.py | 271 + .../pip/_internal/wheel.py | 817 ++ .../pip/_vendor/__init__.py | 109 + .../pip/_vendor/appdirs.py | 604 ++ .../pip/_vendor/cachecontrol/__init__.py | 11 + .../pip/_vendor/cachecontrol/_cmd.py | 60 + .../pip/_vendor/cachecontrol/adapter.py | 134 + .../pip/_vendor/cachecontrol/cache.py | 39 + .../_vendor/cachecontrol/caches/__init__.py | 2 + .../_vendor/cachecontrol/caches/file_cache.py | 133 + .../cachecontrol/caches/redis_cache.py | 43 + .../pip/_vendor/cachecontrol/compat.py | 29 + .../pip/_vendor/cachecontrol/controller.py | 373 + .../pip/_vendor/cachecontrol/filewrapper.py | 78 + .../pip/_vendor/cachecontrol/heuristics.py | 138 + .../pip/_vendor/cachecontrol/serialize.py | 194 + .../pip/_vendor/cachecontrol/wrapper.py | 27 + .../pip/_vendor/certifi/__init__.py | 3 + .../pip/_vendor/certifi/__main__.py | 2 + .../pip/_vendor/certifi/cacert.pem | 4433 ++++++++++ .../pip/_vendor/certifi/core.py | 37 + .../pip/_vendor/chardet/__init__.py | 39 + .../pip/_vendor/chardet/big5freq.py | 386 + .../pip/_vendor/chardet/big5prober.py | 47 + .../pip/_vendor/chardet/chardistribution.py | 233 + .../pip/_vendor/chardet/charsetgroupprober.py | 106 + .../pip/_vendor/chardet/charsetprober.py | 145 + .../pip/_vendor/chardet/cli/__init__.py | 1 + .../pip/_vendor/chardet/cli/chardetect.py | 85 + .../pip/_vendor/chardet/codingstatemachine.py | 88 + .../pip/_vendor/chardet/compat.py | 34 + .../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 | 228 + .../pip/_vendor/chardet/langcyrillicmodel.py | 333 + .../pip/_vendor/chardet/langgreekmodel.py | 225 + .../pip/_vendor/chardet/langhebrewmodel.py | 200 + .../pip/_vendor/chardet/langhungarianmodel.py | 225 + .../pip/_vendor/chardet/langthaimodel.py | 199 + .../pip/_vendor/chardet/langturkishmodel.py | 193 + .../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/sbcharsetprober.py | 132 + .../pip/_vendor/chardet/sbcsgroupprober.py | 73 + .../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 | 7 + .../pip/_vendor/colorama/ansi.py | 102 + .../pip/_vendor/colorama/ansitowin32.py | 236 + .../pip/_vendor/colorama/initialise.py | 82 + .../pip/_vendor/colorama/win32.py | 156 + .../pip/_vendor/colorama/winterm.py | 162 + .../pip/_vendor/distlib/__init__.py | 23 + .../pip/_vendor/distlib/_backport/__init__.py | 6 + .../pip/_vendor/distlib/_backport/misc.py | 41 + .../pip/_vendor/distlib/_backport/shutil.py | 761 ++ .../_vendor/distlib/_backport/sysconfig.cfg | 84 + .../_vendor/distlib/_backport/sysconfig.py | 788 ++ .../pip/_vendor/distlib/_backport/tarfile.py | 2607 ++++++ .../pip/_vendor/distlib/compat.py | 1120 +++ .../pip/_vendor/distlib/database.py | 1336 +++ .../pip/_vendor/distlib/index.py | 516 ++ .../pip/_vendor/distlib/locators.py | 1292 +++ .../pip/_vendor/distlib/manifest.py | 393 + .../pip/_vendor/distlib/markers.py | 131 + .../pip/_vendor/distlib/metadata.py | 1091 +++ .../pip/_vendor/distlib/resources.py | 355 + .../pip/_vendor/distlib/scripts.py | 415 + .../pip/_vendor/distlib/t32.exe | Bin 0 -> 92672 bytes .../pip/_vendor/distlib/t64.exe | Bin 0 -> 102400 bytes .../pip/_vendor/distlib/util.py | 1755 ++++ .../pip/_vendor/distlib/version.py | 736 ++ .../pip/_vendor/distlib/w32.exe | Bin 0 -> 89088 bytes .../pip/_vendor/distlib/w64.exe | Bin 0 -> 99328 bytes .../pip/_vendor/distlib/wheel.py | 984 +++ .../pip/_vendor/distro.py | 1104 +++ .../pip/_vendor/html5lib/__init__.py | 35 + .../pip/_vendor/html5lib/_ihatexml.py | 288 + .../pip/_vendor/html5lib/_inputstream.py | 923 ++ .../pip/_vendor/html5lib/_tokenizer.py | 1721 ++++ .../pip/_vendor/html5lib/_trie/__init__.py | 14 + .../pip/_vendor/html5lib/_trie/_base.py | 37 + .../pip/_vendor/html5lib/_trie/datrie.py | 44 + .../pip/_vendor/html5lib/_trie/py.py | 67 + .../pip/_vendor/html5lib/_utils.py | 124 + .../pip/_vendor/html5lib/constants.py | 2947 +++++++ .../pip/_vendor/html5lib/filters/__init__.py | 0 .../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 | 896 ++ .../_vendor/html5lib/filters/whitespace.py | 38 + .../pip/_vendor/html5lib/html5parser.py | 2791 ++++++ .../pip/_vendor/html5lib/serializer.py | 409 + .../_vendor/html5lib/treeadapters/__init__.py | 30 + .../_vendor/html5lib/treeadapters/genshi.py | 54 + .../pip/_vendor/html5lib/treeadapters/sax.py | 50 + .../_vendor/html5lib/treebuilders/__init__.py | 88 + .../pip/_vendor/html5lib/treebuilders/base.py | 417 + .../pip/_vendor/html5lib/treebuilders/dom.py | 236 + .../_vendor/html5lib/treebuilders/etree.py | 340 + .../html5lib/treebuilders/etree_lxml.py | 366 + .../_vendor/html5lib/treewalkers/__init__.py | 154 + .../pip/_vendor/html5lib/treewalkers/base.py | 252 + .../pip/_vendor/html5lib/treewalkers/dom.py | 43 + .../pip/_vendor/html5lib/treewalkers/etree.py | 130 + .../html5lib/treewalkers/etree_lxml.py | 213 + .../_vendor/html5lib/treewalkers/genshi.py | 69 + .../pip/_vendor/idna/__init__.py | 2 + .../pip/_vendor/idna/codec.py | 118 + .../pip/_vendor/idna/compat.py | 12 + .../pip/_vendor/idna/core.py | 387 + .../pip/_vendor/idna/idnadata.py | 1585 ++++ .../pip/_vendor/idna/intranges.py | 53 + .../pip/_vendor/idna/package_data.py | 2 + .../pip/_vendor/idna/uts46data.py | 7634 +++++++++++++++++ .../pip/_vendor/ipaddress.py | 2419 ++++++ .../pip/_vendor/lockfile/__init__.py | 347 + .../pip/_vendor/lockfile/linklockfile.py | 73 + .../pip/_vendor/lockfile/mkdirlockfile.py | 84 + .../pip/_vendor/lockfile/pidlockfile.py | 190 + .../pip/_vendor/lockfile/sqlitelockfile.py | 156 + .../pip/_vendor/lockfile/symlinklockfile.py | 70 + .../pip/_vendor/msgpack/__init__.py | 66 + .../pip/_vendor/msgpack/_version.py | 1 + .../pip/_vendor/msgpack/exceptions.py | 41 + .../pip/_vendor/msgpack/fallback.py | 977 +++ .../pip/_vendor/packaging/__about__.py | 21 + .../pip/_vendor/packaging/__init__.py | 14 + .../pip/_vendor/packaging/_compat.py | 30 + .../pip/_vendor/packaging/_structures.py | 70 + .../pip/_vendor/packaging/markers.py | 301 + .../pip/_vendor/packaging/requirements.py | 130 + .../pip/_vendor/packaging/specifiers.py | 774 ++ .../pip/_vendor/packaging/utils.py | 63 + .../pip/_vendor/packaging/version.py | 441 + .../pip/_vendor/pkg_resources/__init__.py | 3125 +++++++ .../pip/_vendor/pkg_resources/py31compat.py | 22 + .../pip/_vendor/progress/__init__.py | 127 + .../pip/_vendor/progress/bar.py | 88 + .../pip/_vendor/progress/counter.py | 48 + .../pip/_vendor/progress/helpers.py | 91 + .../pip/_vendor/progress/spinner.py | 44 + .../pip/_vendor/pyparsing.py | 5720 ++++++++++++ .../pip/_vendor/pytoml/__init__.py | 3 + .../pip/_vendor/pytoml/core.py | 13 + .../pip/_vendor/pytoml/parser.py | 374 + .../pip/_vendor/pytoml/writer.py | 127 + .../pip/_vendor/requests/__init__.py | 123 + .../pip/_vendor/requests/__version__.py | 14 + .../pip/_vendor/requests/_internal_utils.py | 42 + .../pip/_vendor/requests/adapters.py | 525 ++ .../pip/_vendor/requests/api.py | 152 + .../pip/_vendor/requests/auth.py | 293 + .../pip/_vendor/requests/certs.py | 18 + .../pip/_vendor/requests/compat.py | 73 + .../pip/_vendor/requests/cookies.py | 542 ++ .../pip/_vendor/requests/exceptions.py | 122 + .../pip/_vendor/requests/help.py | 120 + .../pip/_vendor/requests/hooks.py | 34 + .../pip/_vendor/requests/models.py | 948 ++ .../pip/_vendor/requests/packages.py | 16 + .../pip/_vendor/requests/sessions.py | 737 ++ .../pip/_vendor/requests/status_codes.py | 91 + .../pip/_vendor/requests/structures.py | 105 + .../pip/_vendor/requests/utils.py | 904 ++ .../pip/_vendor/retrying.py | 267 + .../pip-10.0.1-py3.8.egg/pip/_vendor/six.py | 891 ++ .../pip/_vendor/urllib3/__init__.py | 97 + .../pip/_vendor/urllib3/_collections.py | 319 + .../pip/_vendor/urllib3/connection.py | 373 + .../pip/_vendor/urllib3/connectionpool.py | 905 ++ .../pip/_vendor/urllib3/contrib/__init__.py | 0 .../contrib/_securetransport/__init__.py | 0 .../contrib/_securetransport/bindings.py | 593 ++ .../contrib/_securetransport/low_level.py | 343 + .../pip/_vendor/urllib3/contrib/appengine.py | 296 + .../pip/_vendor/urllib3/contrib/ntlmpool.py | 112 + .../pip/_vendor/urllib3/contrib/pyopenssl.py | 455 + .../urllib3/contrib/securetransport.py | 810 ++ .../pip/_vendor/urllib3/contrib/socks.py | 188 + .../pip/_vendor/urllib3/exceptions.py | 246 + .../pip/_vendor/urllib3/fields.py | 178 + .../pip/_vendor/urllib3/filepost.py | 94 + .../pip/_vendor/urllib3/packages/__init__.py | 5 + .../urllib3/packages/backports/__init__.py | 0 .../urllib3/packages/backports/makefile.py | 53 + .../_vendor/urllib3/packages/ordered_dict.py | 259 + .../pip/_vendor/urllib3/packages/six.py | 868 ++ .../packages/ssl_match_hostname/__init__.py | 19 + .../ssl_match_hostname/_implementation.py | 157 + .../pip/_vendor/urllib3/poolmanager.py | 440 + .../pip/_vendor/urllib3/request.py | 148 + .../pip/_vendor/urllib3/response.py | 626 ++ .../pip/_vendor/urllib3/util/__init__.py | 54 + .../pip/_vendor/urllib3/util/connection.py | 130 + .../pip/_vendor/urllib3/util/request.py | 118 + .../pip/_vendor/urllib3/util/response.py | 81 + .../pip/_vendor/urllib3/util/retry.py | 401 + .../pip/_vendor/urllib3/util/selectors.py | 581 ++ .../pip/_vendor/urllib3/util/ssl_.py | 341 + .../pip/_vendor/urllib3/util/timeout.py | 242 + .../pip/_vendor/urllib3/util/url.py | 230 + .../pip/_vendor/urllib3/util/wait.py | 40 + .../pip/_vendor/webencodings/__init__.py | 342 + .../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 + .../site-packages/setuptools-39.1.0-py3.8.egg | Bin 0 -> 563215 bytes venv/Lib/site-packages/setuptools.pth | 1 + venv/Scripts/Activate.ps1 | 241 + venv/Scripts/activate | 76 + venv/Scripts/activate.bat | 33 + venv/Scripts/deactivate.bat | 21 + venv/Scripts/easy_install-3.8-script.py | 12 + venv/Scripts/easy_install-3.8.exe | Bin 0 -> 74752 bytes venv/Scripts/easy_install-script.py | 12 + venv/Scripts/easy_install.exe | Bin 0 -> 74752 bytes venv/Scripts/pip-script.py | 12 + venv/Scripts/pip.exe | Bin 0 -> 74752 bytes venv/Scripts/pip3-script.py | 12 + venv/Scripts/pip3.8-script.py | 12 + venv/Scripts/pip3.8.exe | Bin 0 -> 74752 bytes venv/Scripts/pip3.exe | Bin 0 -> 74752 bytes venv/Scripts/python.exe | Bin 0 -> 518144 bytes venv/Scripts/pythonw.exe | Bin 0 -> 517120 bytes venv/pyvenv.cfg | 3 + week01/CMakeLists.txt | 5 + week01/NOTE.md | 62 +- week01/lc-283_move-zeros.cpp | 44 + week01/lc-283_movezeros.py | 6 + week01/lc-waterContainer.cpp | 4 + week01/lc-watercontainer.js | 0 321 files changed, 101534 insertions(+), 1 deletion(-) create mode 100644 venv/Lib/site-packages/easy-install.pth create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/PKG-INFO create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/SOURCES.txt create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/dependency_links.txt create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/entry_points.txt create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/not-zip-safe create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/requires.txt create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/top_level.txt create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/__main__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/basecommand.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/baseparser.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/build_env.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/cache.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/cmdoptions.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/check.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/completion.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/configuration.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/download.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/freeze.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/hash.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/help.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/install.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/list.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/search.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/show.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/uninstall.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/wheel.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/compat.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/configuration.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/download.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/exceptions.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/index.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/locations.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/models/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/models/index.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/operations/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/operations/check.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/operations/freeze.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/operations/prepare.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/pep425tags.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/req_file.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/req_install.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/req_set.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/req_uninstall.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/resolve.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/status_codes.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/appdirs.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/deprecation.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/encoding.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/filesystem.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/glibc.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/hashes.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/logging.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/misc.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/outdated.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/packaging.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/setuptools_build.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/temp_dir.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/typing.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/ui.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/vcs/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/vcs/bazaar.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/vcs/git.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/vcs/mercurial.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/vcs/subversion.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/wheel.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/appdirs.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/_cmd.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/adapter.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/cache.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/caches/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/caches/file_cache.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/caches/redis_cache.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/compat.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/controller.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/filewrapper.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/heuristics.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/serialize.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/wrapper.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/certifi/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/certifi/__main__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/certifi/cacert.pem create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/certifi/core.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/big5freq.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/big5prober.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/chardistribution.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/charsetgroupprober.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/charsetprober.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/cli/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/cli/chardetect.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/codingstatemachine.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/compat.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/cp949prober.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/enums.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/escprober.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/escsm.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/eucjpprober.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/euckrfreq.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/euckrprober.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/euctwfreq.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/euctwprober.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/gb2312freq.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/gb2312prober.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/hebrewprober.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/jisfreq.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/jpcntx.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langbulgarianmodel.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langcyrillicmodel.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langgreekmodel.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langhebrewmodel.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langhungarianmodel.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langthaimodel.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langturkishmodel.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/latin1prober.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/mbcharsetprober.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/mbcsgroupprober.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/mbcssm.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/sbcharsetprober.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/sbcsgroupprober.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/sjisprober.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/universaldetector.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/utf8prober.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/version.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/ansi.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/ansitowin32.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/initialise.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/win32.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/winterm.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/misc.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/shutil.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/sysconfig.cfg create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/sysconfig.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/tarfile.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/compat.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/database.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/index.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/locators.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/manifest.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/markers.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/metadata.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/resources.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/scripts.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/t32.exe create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/t64.exe create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/util.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/version.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/w32.exe create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/w64.exe create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/wheel.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distro.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_ihatexml.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_inputstream.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_tokenizer.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_trie/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_trie/_base.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_trie/datrie.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_trie/py.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_utils.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/constants.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/alphabeticalattributes.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/base.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/inject_meta_charset.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/lint.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/optionaltags.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/sanitizer.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/whitespace.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/html5parser.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/serializer.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treeadapters/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treeadapters/genshi.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treeadapters/sax.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treebuilders/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treebuilders/base.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treebuilders/dom.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treebuilders/etree.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treebuilders/etree_lxml.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/base.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/dom.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/etree.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/etree_lxml.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/genshi.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/codec.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/compat.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/core.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/idnadata.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/intranges.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/package_data.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/uts46data.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/ipaddress.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/linklockfile.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/mkdirlockfile.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/pidlockfile.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/sqlitelockfile.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/symlinklockfile.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/msgpack/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/msgpack/_version.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/msgpack/exceptions.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/msgpack/fallback.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/__about__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/_compat.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/_structures.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/markers.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/requirements.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/specifiers.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/utils.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/version.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pkg_resources/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pkg_resources/py31compat.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/bar.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/counter.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/helpers.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/spinner.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pyparsing.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pytoml/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pytoml/core.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pytoml/parser.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pytoml/writer.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/__version__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/_internal_utils.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/adapters.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/api.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/auth.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/certs.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/compat.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/cookies.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/exceptions.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/help.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/hooks.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/models.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/packages.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/sessions.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/status_codes.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/structures.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/utils.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/retrying.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/six.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/_collections.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/connection.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/connectionpool.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/_securetransport/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/_securetransport/bindings.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/_securetransport/low_level.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/appengine.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/ntlmpool.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/pyopenssl.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/securetransport.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/socks.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/exceptions.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/fields.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/filepost.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/backports/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/backports/makefile.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/ordered_dict.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/six.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/poolmanager.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/request.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/response.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/connection.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/request.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/response.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/retry.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/selectors.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/ssl_.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/timeout.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/url.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/wait.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/__init__.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/labels.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/mklabels.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/tests.py create mode 100644 venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/x_user_defined.py create mode 100644 venv/Lib/site-packages/setuptools-39.1.0-py3.8.egg create mode 100644 venv/Lib/site-packages/setuptools.pth create mode 100644 venv/Scripts/Activate.ps1 create mode 100644 venv/Scripts/activate create mode 100644 venv/Scripts/activate.bat create mode 100644 venv/Scripts/deactivate.bat create mode 100644 venv/Scripts/easy_install-3.8-script.py create mode 100644 venv/Scripts/easy_install-3.8.exe create mode 100644 venv/Scripts/easy_install-script.py create mode 100644 venv/Scripts/easy_install.exe create mode 100644 venv/Scripts/pip-script.py create mode 100644 venv/Scripts/pip.exe create mode 100644 venv/Scripts/pip3-script.py create mode 100644 venv/Scripts/pip3.8-script.py create mode 100644 venv/Scripts/pip3.8.exe create mode 100644 venv/Scripts/pip3.exe create mode 100644 venv/Scripts/python.exe create mode 100644 venv/Scripts/pythonw.exe create mode 100644 venv/pyvenv.cfg create mode 100644 week01/CMakeLists.txt create mode 100644 week01/lc-283_move-zeros.cpp create mode 100644 week01/lc-283_movezeros.py create mode 100644 week01/lc-waterContainer.cpp create mode 100644 week01/lc-watercontainer.js diff --git a/venv/Lib/site-packages/easy-install.pth b/venv/Lib/site-packages/easy-install.pth new file mode 100644 index 00000000..797e95a1 --- /dev/null +++ b/venv/Lib/site-packages/easy-install.pth @@ -0,0 +1,2 @@ +./setuptools-39.1.0-py3.8.egg +./pip-10.0.1-py3.8.egg diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/PKG-INFO b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/PKG-INFO new file mode 100644 index 00000000..c91d709a --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/PKG-INFO @@ -0,0 +1,69 @@ +Metadata-Version: 2.1 +Name: pip +Version: 10.0.1 +Summary: The PyPA recommended tool for installing Python packages. +Home-page: https://pip.pypa.io/ +Author: The pip developers +Author-email: python-virtualenv@groups.google.com +License: MIT +Description: pip + === + + The `PyPA recommended`_ tool for installing Python packages. + + .. image:: https://img.shields.io/pypi/v/pip.svg + :target: https://pypi.org/project/pip/ + + .. image:: https://img.shields.io/travis/pypa/pip/master.svg + :target: http://travis-ci.org/pypa/pip + + .. image:: https://img.shields.io/appveyor/ci/pypa/pip.svg + :target: https://ci.appveyor.com/project/pypa/pip/history + + .. image:: https://readthedocs.org/projects/pip/badge/?version=latest + :target: https://pip.pypa.io/en/latest + + * `Installation`_ + * `Documentation`_ + * `Changelog`_ + * `GitHub Page`_ + * `Issue Tracking`_ + * `User mailing list`_ + * `Dev mailing list`_ + * User IRC: #pypa on Freenode. + * Dev IRC: #pypa-dev on Freenode. + + Code of Conduct + --------------- + + Everyone interacting in the pip project's codebases, issue trackers, chat + rooms and mailing lists is expected to follow the `PyPA Code of Conduct`_. + + .. _PyPA recommended: https://packaging.python.org/en/latest/current/ + .. _Installation: https://pip.pypa.io/en/stable/installing.html + .. _Documentation: https://pip.pypa.io/en/stable/ + .. _Changelog: https://pip.pypa.io/en/stable/news.html + .. _GitHub Page: https://github.com/pypa/pip + .. _Issue Tracking: https://github.com/pypa/pip/issues + .. _User mailing list: http://groups.google.com/group/python-virtualenv + .. _Dev mailing list: http://groups.google.com/group/pypa-dev + .. _PyPA Code of Conduct: https://www.pypa.io/en/latest/code-of-conduct/ + +Keywords: easy_install distutils setuptools egg virtualenv +Platform: UNKNOWN +Classifier: Development Status :: 5 - Production/Stable +Classifier: Intended Audience :: Developers +Classifier: License :: OSI Approved :: MIT License +Classifier: Topic :: Software Development :: Build Tools +Classifier: Programming Language :: Python +Classifier: Programming Language :: Python :: 2 +Classifier: Programming Language :: Python :: 2.7 +Classifier: Programming Language :: Python :: 3 +Classifier: Programming Language :: Python :: 3.3 +Classifier: Programming Language :: Python :: 3.4 +Classifier: Programming Language :: Python :: 3.5 +Classifier: Programming Language :: Python :: 3.6 +Classifier: Programming Language :: Python :: Implementation :: CPython +Classifier: Programming Language :: Python :: Implementation :: PyPy +Requires-Python: >=2.7,!=3.0.*,!=3.1.*,!=3.2.* +Provides-Extra: testing diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/SOURCES.txt b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/SOURCES.txt new file mode 100644 index 00000000..5a153291 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/SOURCES.txt @@ -0,0 +1,347 @@ +AUTHORS.txt +LICENSE.txt +MANIFEST.in +NEWS.rst +README.rst +pyproject.toml +setup.cfg +setup.py +docs/Makefile +docs/__init__.py +docs/conf.py +docs/configuration.rst +docs/cookbook.rst +docs/development.rst +docs/docutils.conf +docs/index.rst +docs/installing.rst +docs/logic.rst +docs/make.bat +docs/news.rst +docs/pipext.py +docs/quickstart.rst +docs/usage.rst +docs/user_guide.rst +docs/man/pip.rst +docs/man/commands/check.rst +docs/man/commands/config.rst +docs/man/commands/download.rst +docs/man/commands/freeze.rst +docs/man/commands/hash.rst +docs/man/commands/help.rst +docs/man/commands/install.rst +docs/man/commands/list.rst +docs/man/commands/search.rst +docs/man/commands/show.rst +docs/man/commands/uninstall.rst +docs/man/commands/wheel.rst +docs/reference/index.rst +docs/reference/pip.rst +docs/reference/pip_check.rst +docs/reference/pip_config.rst +docs/reference/pip_download.rst +docs/reference/pip_freeze.rst +docs/reference/pip_hash.rst +docs/reference/pip_install.rst +docs/reference/pip_list.rst +docs/reference/pip_search.rst +docs/reference/pip_show.rst +docs/reference/pip_uninstall.rst +docs/reference/pip_wheel.rst +src/pip/__init__.py +src/pip/__main__.py +src/pip.egg-info/PKG-INFO +src/pip.egg-info/SOURCES.txt +src/pip.egg-info/dependency_links.txt +src/pip.egg-info/entry_points.txt +src/pip.egg-info/not-zip-safe +src/pip.egg-info/requires.txt +src/pip.egg-info/top_level.txt +src/pip/_internal/__init__.py +src/pip/_internal/basecommand.py +src/pip/_internal/baseparser.py +src/pip/_internal/build_env.py +src/pip/_internal/cache.py +src/pip/_internal/cmdoptions.py +src/pip/_internal/compat.py +src/pip/_internal/configuration.py +src/pip/_internal/download.py +src/pip/_internal/exceptions.py +src/pip/_internal/index.py +src/pip/_internal/locations.py +src/pip/_internal/pep425tags.py +src/pip/_internal/resolve.py +src/pip/_internal/status_codes.py +src/pip/_internal/wheel.py +src/pip/_internal/commands/__init__.py +src/pip/_internal/commands/check.py +src/pip/_internal/commands/completion.py +src/pip/_internal/commands/configuration.py +src/pip/_internal/commands/download.py +src/pip/_internal/commands/freeze.py +src/pip/_internal/commands/hash.py +src/pip/_internal/commands/help.py +src/pip/_internal/commands/install.py +src/pip/_internal/commands/list.py +src/pip/_internal/commands/search.py +src/pip/_internal/commands/show.py +src/pip/_internal/commands/uninstall.py +src/pip/_internal/commands/wheel.py +src/pip/_internal/models/__init__.py +src/pip/_internal/models/index.py +src/pip/_internal/operations/__init__.py +src/pip/_internal/operations/check.py +src/pip/_internal/operations/freeze.py +src/pip/_internal/operations/prepare.py +src/pip/_internal/req/__init__.py +src/pip/_internal/req/req_file.py +src/pip/_internal/req/req_install.py +src/pip/_internal/req/req_set.py +src/pip/_internal/req/req_uninstall.py +src/pip/_internal/utils/__init__.py +src/pip/_internal/utils/appdirs.py +src/pip/_internal/utils/deprecation.py +src/pip/_internal/utils/encoding.py +src/pip/_internal/utils/filesystem.py +src/pip/_internal/utils/glibc.py +src/pip/_internal/utils/hashes.py +src/pip/_internal/utils/logging.py +src/pip/_internal/utils/misc.py +src/pip/_internal/utils/outdated.py +src/pip/_internal/utils/packaging.py +src/pip/_internal/utils/setuptools_build.py +src/pip/_internal/utils/temp_dir.py +src/pip/_internal/utils/typing.py +src/pip/_internal/utils/ui.py +src/pip/_internal/vcs/__init__.py +src/pip/_internal/vcs/bazaar.py +src/pip/_internal/vcs/git.py +src/pip/_internal/vcs/mercurial.py +src/pip/_internal/vcs/subversion.py +src/pip/_vendor/README.rst +src/pip/_vendor/__init__.py +src/pip/_vendor/appdirs.py +src/pip/_vendor/distro.py +src/pip/_vendor/ipaddress.py +src/pip/_vendor/pyparsing.py +src/pip/_vendor/retrying.py +src/pip/_vendor/six.py +src/pip/_vendor/vendor.txt +src/pip/_vendor/cachecontrol/__init__.py +src/pip/_vendor/cachecontrol/_cmd.py +src/pip/_vendor/cachecontrol/adapter.py +src/pip/_vendor/cachecontrol/cache.py +src/pip/_vendor/cachecontrol/compat.py +src/pip/_vendor/cachecontrol/controller.py +src/pip/_vendor/cachecontrol/filewrapper.py +src/pip/_vendor/cachecontrol/heuristics.py +src/pip/_vendor/cachecontrol/serialize.py +src/pip/_vendor/cachecontrol/wrapper.py +src/pip/_vendor/cachecontrol/caches/__init__.py +src/pip/_vendor/cachecontrol/caches/file_cache.py +src/pip/_vendor/cachecontrol/caches/redis_cache.py +src/pip/_vendor/certifi/__init__.py +src/pip/_vendor/certifi/__main__.py +src/pip/_vendor/certifi/cacert.pem +src/pip/_vendor/certifi/core.py +src/pip/_vendor/chardet/__init__.py +src/pip/_vendor/chardet/big5freq.py +src/pip/_vendor/chardet/big5prober.py +src/pip/_vendor/chardet/chardistribution.py +src/pip/_vendor/chardet/charsetgroupprober.py +src/pip/_vendor/chardet/charsetprober.py +src/pip/_vendor/chardet/codingstatemachine.py +src/pip/_vendor/chardet/compat.py +src/pip/_vendor/chardet/cp949prober.py +src/pip/_vendor/chardet/enums.py +src/pip/_vendor/chardet/escprober.py +src/pip/_vendor/chardet/escsm.py +src/pip/_vendor/chardet/eucjpprober.py +src/pip/_vendor/chardet/euckrfreq.py +src/pip/_vendor/chardet/euckrprober.py +src/pip/_vendor/chardet/euctwfreq.py +src/pip/_vendor/chardet/euctwprober.py +src/pip/_vendor/chardet/gb2312freq.py +src/pip/_vendor/chardet/gb2312prober.py +src/pip/_vendor/chardet/hebrewprober.py +src/pip/_vendor/chardet/jisfreq.py +src/pip/_vendor/chardet/jpcntx.py +src/pip/_vendor/chardet/langbulgarianmodel.py +src/pip/_vendor/chardet/langcyrillicmodel.py +src/pip/_vendor/chardet/langgreekmodel.py +src/pip/_vendor/chardet/langhebrewmodel.py +src/pip/_vendor/chardet/langhungarianmodel.py +src/pip/_vendor/chardet/langthaimodel.py +src/pip/_vendor/chardet/langturkishmodel.py +src/pip/_vendor/chardet/latin1prober.py +src/pip/_vendor/chardet/mbcharsetprober.py +src/pip/_vendor/chardet/mbcsgroupprober.py +src/pip/_vendor/chardet/mbcssm.py +src/pip/_vendor/chardet/sbcharsetprober.py +src/pip/_vendor/chardet/sbcsgroupprober.py +src/pip/_vendor/chardet/sjisprober.py +src/pip/_vendor/chardet/universaldetector.py +src/pip/_vendor/chardet/utf8prober.py +src/pip/_vendor/chardet/version.py +src/pip/_vendor/chardet/cli/__init__.py +src/pip/_vendor/chardet/cli/chardetect.py +src/pip/_vendor/colorama/__init__.py +src/pip/_vendor/colorama/ansi.py +src/pip/_vendor/colorama/ansitowin32.py +src/pip/_vendor/colorama/initialise.py +src/pip/_vendor/colorama/win32.py +src/pip/_vendor/colorama/winterm.py +src/pip/_vendor/distlib/__init__.py +src/pip/_vendor/distlib/compat.py +src/pip/_vendor/distlib/database.py +src/pip/_vendor/distlib/index.py +src/pip/_vendor/distlib/locators.py +src/pip/_vendor/distlib/manifest.py +src/pip/_vendor/distlib/markers.py +src/pip/_vendor/distlib/metadata.py +src/pip/_vendor/distlib/resources.py +src/pip/_vendor/distlib/scripts.py +src/pip/_vendor/distlib/t32.exe +src/pip/_vendor/distlib/t64.exe +src/pip/_vendor/distlib/util.py +src/pip/_vendor/distlib/version.py +src/pip/_vendor/distlib/w32.exe +src/pip/_vendor/distlib/w64.exe +src/pip/_vendor/distlib/wheel.py +src/pip/_vendor/distlib/_backport/__init__.py +src/pip/_vendor/distlib/_backport/misc.py +src/pip/_vendor/distlib/_backport/shutil.py +src/pip/_vendor/distlib/_backport/sysconfig.cfg +src/pip/_vendor/distlib/_backport/sysconfig.py +src/pip/_vendor/distlib/_backport/tarfile.py +src/pip/_vendor/html5lib/__init__.py +src/pip/_vendor/html5lib/_ihatexml.py +src/pip/_vendor/html5lib/_inputstream.py +src/pip/_vendor/html5lib/_tokenizer.py +src/pip/_vendor/html5lib/_utils.py +src/pip/_vendor/html5lib/constants.py +src/pip/_vendor/html5lib/html5parser.py +src/pip/_vendor/html5lib/serializer.py +src/pip/_vendor/html5lib/_trie/__init__.py +src/pip/_vendor/html5lib/_trie/_base.py +src/pip/_vendor/html5lib/_trie/datrie.py +src/pip/_vendor/html5lib/_trie/py.py +src/pip/_vendor/html5lib/filters/__init__.py +src/pip/_vendor/html5lib/filters/alphabeticalattributes.py +src/pip/_vendor/html5lib/filters/base.py +src/pip/_vendor/html5lib/filters/inject_meta_charset.py +src/pip/_vendor/html5lib/filters/lint.py +src/pip/_vendor/html5lib/filters/optionaltags.py +src/pip/_vendor/html5lib/filters/sanitizer.py +src/pip/_vendor/html5lib/filters/whitespace.py +src/pip/_vendor/html5lib/treeadapters/__init__.py +src/pip/_vendor/html5lib/treeadapters/genshi.py +src/pip/_vendor/html5lib/treeadapters/sax.py +src/pip/_vendor/html5lib/treebuilders/__init__.py +src/pip/_vendor/html5lib/treebuilders/base.py +src/pip/_vendor/html5lib/treebuilders/dom.py +src/pip/_vendor/html5lib/treebuilders/etree.py +src/pip/_vendor/html5lib/treebuilders/etree_lxml.py +src/pip/_vendor/html5lib/treewalkers/__init__.py +src/pip/_vendor/html5lib/treewalkers/base.py +src/pip/_vendor/html5lib/treewalkers/dom.py +src/pip/_vendor/html5lib/treewalkers/etree.py +src/pip/_vendor/html5lib/treewalkers/etree_lxml.py +src/pip/_vendor/html5lib/treewalkers/genshi.py +src/pip/_vendor/idna/__init__.py +src/pip/_vendor/idna/codec.py +src/pip/_vendor/idna/compat.py +src/pip/_vendor/idna/core.py +src/pip/_vendor/idna/idnadata.py +src/pip/_vendor/idna/intranges.py +src/pip/_vendor/idna/package_data.py +src/pip/_vendor/idna/uts46data.py +src/pip/_vendor/lockfile/__init__.py +src/pip/_vendor/lockfile/linklockfile.py +src/pip/_vendor/lockfile/mkdirlockfile.py +src/pip/_vendor/lockfile/pidlockfile.py +src/pip/_vendor/lockfile/sqlitelockfile.py +src/pip/_vendor/lockfile/symlinklockfile.py +src/pip/_vendor/msgpack/__init__.py +src/pip/_vendor/msgpack/_version.py +src/pip/_vendor/msgpack/exceptions.py +src/pip/_vendor/msgpack/fallback.py +src/pip/_vendor/packaging/__about__.py +src/pip/_vendor/packaging/__init__.py +src/pip/_vendor/packaging/_compat.py +src/pip/_vendor/packaging/_structures.py +src/pip/_vendor/packaging/markers.py +src/pip/_vendor/packaging/requirements.py +src/pip/_vendor/packaging/specifiers.py +src/pip/_vendor/packaging/utils.py +src/pip/_vendor/packaging/version.py +src/pip/_vendor/pkg_resources/__init__.py +src/pip/_vendor/pkg_resources/py31compat.py +src/pip/_vendor/progress/__init__.py +src/pip/_vendor/progress/bar.py +src/pip/_vendor/progress/counter.py +src/pip/_vendor/progress/helpers.py +src/pip/_vendor/progress/spinner.py +src/pip/_vendor/pytoml/__init__.py +src/pip/_vendor/pytoml/core.py +src/pip/_vendor/pytoml/parser.py +src/pip/_vendor/pytoml/writer.py +src/pip/_vendor/requests/__init__.py +src/pip/_vendor/requests/__version__.py +src/pip/_vendor/requests/_internal_utils.py +src/pip/_vendor/requests/adapters.py +src/pip/_vendor/requests/api.py +src/pip/_vendor/requests/auth.py +src/pip/_vendor/requests/certs.py +src/pip/_vendor/requests/compat.py +src/pip/_vendor/requests/cookies.py +src/pip/_vendor/requests/exceptions.py +src/pip/_vendor/requests/help.py +src/pip/_vendor/requests/hooks.py +src/pip/_vendor/requests/models.py +src/pip/_vendor/requests/packages.py +src/pip/_vendor/requests/sessions.py +src/pip/_vendor/requests/status_codes.py +src/pip/_vendor/requests/structures.py +src/pip/_vendor/requests/utils.py +src/pip/_vendor/urllib3/__init__.py +src/pip/_vendor/urllib3/_collections.py +src/pip/_vendor/urllib3/connection.py +src/pip/_vendor/urllib3/connectionpool.py +src/pip/_vendor/urllib3/exceptions.py +src/pip/_vendor/urllib3/fields.py +src/pip/_vendor/urllib3/filepost.py +src/pip/_vendor/urllib3/poolmanager.py +src/pip/_vendor/urllib3/request.py +src/pip/_vendor/urllib3/response.py +src/pip/_vendor/urllib3/contrib/__init__.py +src/pip/_vendor/urllib3/contrib/appengine.py +src/pip/_vendor/urllib3/contrib/ntlmpool.py +src/pip/_vendor/urllib3/contrib/pyopenssl.py +src/pip/_vendor/urllib3/contrib/securetransport.py +src/pip/_vendor/urllib3/contrib/socks.py +src/pip/_vendor/urllib3/contrib/_securetransport/__init__.py +src/pip/_vendor/urllib3/contrib/_securetransport/bindings.py +src/pip/_vendor/urllib3/contrib/_securetransport/low_level.py +src/pip/_vendor/urllib3/packages/__init__.py +src/pip/_vendor/urllib3/packages/ordered_dict.py +src/pip/_vendor/urllib3/packages/six.py +src/pip/_vendor/urllib3/packages/backports/__init__.py +src/pip/_vendor/urllib3/packages/backports/makefile.py +src/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py +src/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py +src/pip/_vendor/urllib3/util/__init__.py +src/pip/_vendor/urllib3/util/connection.py +src/pip/_vendor/urllib3/util/request.py +src/pip/_vendor/urllib3/util/response.py +src/pip/_vendor/urllib3/util/retry.py +src/pip/_vendor/urllib3/util/selectors.py +src/pip/_vendor/urllib3/util/ssl_.py +src/pip/_vendor/urllib3/util/timeout.py +src/pip/_vendor/urllib3/util/url.py +src/pip/_vendor/urllib3/util/wait.py +src/pip/_vendor/webencodings/__init__.py +src/pip/_vendor/webencodings/labels.py +src/pip/_vendor/webencodings/mklabels.py +src/pip/_vendor/webencodings/tests.py +src/pip/_vendor/webencodings/x_user_defined.py \ No newline at end of file diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/dependency_links.txt b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/dependency_links.txt new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/dependency_links.txt @@ -0,0 +1 @@ + diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/entry_points.txt b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/entry_points.txt new file mode 100644 index 00000000..6d3bbc11 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/entry_points.txt @@ -0,0 +1,5 @@ +[console_scripts] +pip = pip._internal:main +pip3 = pip._internal:main +pip3.8 = pip._internal:main + diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/not-zip-safe b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/not-zip-safe new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/not-zip-safe @@ -0,0 +1 @@ + diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/requires.txt b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/requires.txt new file mode 100644 index 00000000..fdea1b5e --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/requires.txt @@ -0,0 +1,8 @@ + +[testing] +pytest +mock +pretend +scripttest>=1.3 +virtualenv>=1.10 +freezegun diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/top_level.txt b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/top_level.txt new file mode 100644 index 00000000..a1b589e3 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/EGG-INFO/top_level.txt @@ -0,0 +1 @@ +pip diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/__init__.py new file mode 100644 index 00000000..ab649641 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/__init__.py @@ -0,0 +1 @@ +__version__ = "10.0.1" diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/__main__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/__main__.py new file mode 100644 index 00000000..4609582c --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/__main__.py @@ -0,0 +1,19 @@ +from __future__ import absolute_import + +import os +import sys + +# If we are running from a wheel, add the wheel to sys.path +# This allows the usage python pip-*.whl/pip install pip-*.whl +if __package__ == '': + # __file__ is pip-*.whl/pip/__main__.py + # first dirname call strips of '/__main__.py', second strips off '/pip' + # Resulting path is the name of the wheel itself + # Add that to sys.path so we can import pip + path = os.path.dirname(os.path.dirname(__file__)) + sys.path.insert(0, path) + +from pip._internal import main as _main # noqa + +if __name__ == '__main__': + sys.exit(_main()) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/__init__.py new file mode 100644 index 00000000..865d9ec3 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/__init__.py @@ -0,0 +1,246 @@ +#!/usr/bin/env python +from __future__ import absolute_import + +import locale +import logging +import os +import optparse +import warnings + +import sys + +# 2016-06-17 barry@debian.org: urllib3 1.14 added optional support for socks, +# but if invoked (i.e. imported), it will issue a warning to stderr if socks +# isn't available. requests unconditionally imports urllib3's socks contrib +# module, triggering this warning. The warning breaks DEP-8 tests (because of +# the stderr output) and is just plain annoying in normal usage. I don't want +# to add socks as yet another dependency for pip, nor do I want to allow-stder +# in the DEP-8 tests, so just suppress the warning. pdb tells me this has to +# be done before the import of pip.vcs. +from pip._vendor.urllib3.exceptions import DependencyWarning +warnings.filterwarnings("ignore", category=DependencyWarning) # noqa + +# We want to inject the use of SecureTransport as early as possible so that any +# references or sessions or what have you are ensured to have it, however we +# only want to do this in the case that we're running on macOS and the linked +# OpenSSL is too old to handle TLSv1.2 +try: + import ssl +except ImportError: + pass +else: + # Checks for OpenSSL 1.0.1 on MacOS + if sys.platform == "darwin" and ssl.OPENSSL_VERSION_NUMBER < 0x1000100f: + try: + from pip._vendor.urllib3.contrib import securetransport + except (ImportError, OSError): + pass + else: + securetransport.inject_into_urllib3() + +from pip import __version__ +from pip._internal import cmdoptions +from pip._internal.exceptions import CommandError, PipError +from pip._internal.utils.misc import get_installed_distributions, get_prog +from pip._internal.utils import deprecation +from pip._internal.vcs import git, mercurial, subversion, bazaar # noqa +from pip._internal.baseparser import ( + ConfigOptionParser, UpdatingDefaultsHelpFormatter, +) +from pip._internal.commands import get_summaries, get_similar_commands +from pip._internal.commands import commands_dict +from pip._vendor.urllib3.exceptions import InsecureRequestWarning + +logger = logging.getLogger(__name__) + +# Hide the InsecureRequestWarning from urllib3 +warnings.filterwarnings("ignore", category=InsecureRequestWarning) + + +def autocomplete(): + """Command and option completion for the main option parser (and options) + and its subcommands (and options). + + Enable by sourcing one of the completion shell scripts (bash, zsh or fish). + """ + # Don't complete if user hasn't sourced bash_completion file. + if 'PIP_AUTO_COMPLETE' not in os.environ: + return + cwords = os.environ['COMP_WORDS'].split()[1:] + cword = int(os.environ['COMP_CWORD']) + try: + current = cwords[cword - 1] + except IndexError: + current = '' + + subcommands = [cmd for cmd, summary in get_summaries()] + options = [] + # subcommand + try: + subcommand_name = [w for w in cwords if w in subcommands][0] + except IndexError: + subcommand_name = None + + parser = create_main_parser() + # subcommand options + if subcommand_name: + # special case: 'help' subcommand has no options + if subcommand_name == 'help': + sys.exit(1) + # special case: list locally installed dists for show and uninstall + should_list_installed = ( + subcommand_name in ['show', 'uninstall'] and + not current.startswith('-') + ) + if should_list_installed: + installed = [] + lc = current.lower() + for dist in get_installed_distributions(local_only=True): + if dist.key.startswith(lc) and dist.key not in cwords[1:]: + installed.append(dist.key) + # if there are no dists installed, fall back to option completion + if installed: + for dist in installed: + print(dist) + sys.exit(1) + + subcommand = commands_dict[subcommand_name]() + + for opt in subcommand.parser.option_list_all: + if opt.help != optparse.SUPPRESS_HELP: + for opt_str in opt._long_opts + opt._short_opts: + options.append((opt_str, opt.nargs)) + + # filter out previously specified options from available options + prev_opts = [x.split('=')[0] for x in cwords[1:cword - 1]] + options = [(x, v) for (x, v) in options if x not in prev_opts] + # filter options by current input + options = [(k, v) for k, v in options if k.startswith(current)] + for option in options: + opt_label = option[0] + # append '=' to options which require args + if option[1] and option[0][:2] == "--": + opt_label += '=' + print(opt_label) + else: + # show main parser options only when necessary + if current.startswith('-') or current.startswith('--'): + opts = [i.option_list for i in parser.option_groups] + opts.append(parser.option_list) + opts = (o for it in opts for o in it) + + for opt in opts: + if opt.help != optparse.SUPPRESS_HELP: + subcommands += opt._long_opts + opt._short_opts + + print(' '.join([x for x in subcommands if x.startswith(current)])) + sys.exit(1) + + +def create_main_parser(): + parser_kw = { + 'usage': '\n%prog [options]', + 'add_help_option': False, + 'formatter': UpdatingDefaultsHelpFormatter(), + 'name': 'global', + 'prog': get_prog(), + } + + parser = ConfigOptionParser(**parser_kw) + parser.disable_interspersed_args() + + pip_pkg_dir = os.path.dirname(os.path.dirname(os.path.abspath(__file__))) + parser.version = 'pip %s from %s (python %s)' % ( + __version__, pip_pkg_dir, sys.version[:3], + ) + + # add the general options + gen_opts = cmdoptions.make_option_group(cmdoptions.general_group, parser) + parser.add_option_group(gen_opts) + + parser.main = True # so the help formatter knows + + # create command listing for description + command_summaries = get_summaries() + description = [''] + ['%-27s %s' % (i, j) for i, j in command_summaries] + parser.description = '\n'.join(description) + + return parser + + +def parseopts(args): + parser = create_main_parser() + + # Note: parser calls disable_interspersed_args(), so the result of this + # call is to split the initial args into the general options before the + # subcommand and everything else. + # For example: + # args: ['--timeout=5', 'install', '--user', 'INITools'] + # general_options: ['--timeout==5'] + # args_else: ['install', '--user', 'INITools'] + general_options, args_else = parser.parse_args(args) + + # --version + if general_options.version: + sys.stdout.write(parser.version) + sys.stdout.write(os.linesep) + sys.exit() + + # pip || pip help -> print_help() + if not args_else or (args_else[0] == 'help' and len(args_else) == 1): + parser.print_help() + sys.exit() + + # the subcommand name + cmd_name = args_else[0] + + if cmd_name not in commands_dict: + guess = get_similar_commands(cmd_name) + + msg = ['unknown command "%s"' % cmd_name] + if guess: + msg.append('maybe you meant "%s"' % guess) + + raise CommandError(' - '.join(msg)) + + # all the args without the subcommand + cmd_args = args[:] + cmd_args.remove(cmd_name) + + return cmd_name, cmd_args + + +def check_isolated(args): + isolated = False + + if "--isolated" in args: + isolated = True + + return isolated + + +def main(args=None): + if args is None: + args = sys.argv[1:] + + # Configure our deprecation warnings to be sent through loggers + deprecation.install_warning_logger() + + autocomplete() + + try: + cmd_name, cmd_args = parseopts(args) + except PipError as exc: + sys.stderr.write("ERROR: %s" % exc) + sys.stderr.write(os.linesep) + sys.exit(1) + + # Needed for locale.getpreferredencoding(False) to work + # in pip._internal.utils.encoding.auto_decode + try: + locale.setlocale(locale.LC_ALL, '') + except locale.Error as e: + # setlocale can apparently crash if locale are uninitialized + logger.debug("Ignoring error %s when setting locale", e) + command = commands_dict[cmd_name](isolated=check_isolated(cmd_args)) + return command.main(cmd_args) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/basecommand.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/basecommand.py new file mode 100644 index 00000000..2503f36d --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/basecommand.py @@ -0,0 +1,373 @@ +"""Base Command class, and related routines""" +from __future__ import absolute_import + +import logging +import logging.config +import optparse +import os +import sys +import warnings + +from pip._internal import cmdoptions +from pip._internal.baseparser import ( + ConfigOptionParser, UpdatingDefaultsHelpFormatter, +) +from pip._internal.compat import WINDOWS +from pip._internal.download import PipSession +from pip._internal.exceptions import ( + BadCommand, CommandError, InstallationError, PreviousBuildDirError, + UninstallationError, +) +from pip._internal.index import PackageFinder +from pip._internal.locations import running_under_virtualenv +from pip._internal.req.req_file import parse_requirements +from pip._internal.req.req_install import InstallRequirement +from pip._internal.status_codes import ( + ERROR, PREVIOUS_BUILD_DIR_ERROR, SUCCESS, UNKNOWN_ERROR, + VIRTUALENV_NOT_FOUND, +) +from pip._internal.utils import deprecation +from pip._internal.utils.logging import IndentingFormatter +from pip._internal.utils.misc import get_prog, normalize_path +from pip._internal.utils.outdated import pip_version_check +from pip._internal.utils.typing import MYPY_CHECK_RUNNING + +if MYPY_CHECK_RUNNING: + from typing import Optional + +__all__ = ['Command'] + +logger = logging.getLogger(__name__) + + +class Command(object): + name = None # type: Optional[str] + usage = None # type: Optional[str] + hidden = False # type: bool + ignore_require_venv = False # type: bool + log_streams = ("ext://sys.stdout", "ext://sys.stderr") + + def __init__(self, isolated=False): + parser_kw = { + 'usage': self.usage, + 'prog': '%s %s' % (get_prog(), self.name), + 'formatter': UpdatingDefaultsHelpFormatter(), + 'add_help_option': False, + 'name': self.name, + 'description': self.__doc__, + 'isolated': isolated, + } + + self.parser = ConfigOptionParser(**parser_kw) + + # Commands should add options to this option group + optgroup_name = '%s Options' % self.name.capitalize() + self.cmd_opts = optparse.OptionGroup(self.parser, optgroup_name) + + # Add the general options + gen_opts = cmdoptions.make_option_group( + cmdoptions.general_group, + self.parser, + ) + self.parser.add_option_group(gen_opts) + + def _build_session(self, options, retries=None, timeout=None): + session = PipSession( + cache=( + normalize_path(os.path.join(options.cache_dir, "http")) + if options.cache_dir else None + ), + retries=retries if retries is not None else options.retries, + insecure_hosts=options.trusted_hosts, + ) + + # Handle custom ca-bundles from the user + if options.cert: + session.verify = options.cert + + # Handle SSL client certificate + if options.client_cert: + session.cert = options.client_cert + + # Handle timeouts + if options.timeout or timeout: + session.timeout = ( + timeout if timeout is not None else options.timeout + ) + + # Handle configured proxies + if options.proxy: + session.proxies = { + "http": options.proxy, + "https": options.proxy, + } + + # Determine if we can prompt the user for authentication or not + session.auth.prompting = not options.no_input + + return session + + def parse_args(self, args): + # factored out for testability + return self.parser.parse_args(args) + + def main(self, args): + options, args = self.parse_args(args) + + # Set verbosity so that it can be used elsewhere. + self.verbosity = options.verbose - options.quiet + + if self.verbosity >= 1: + level = "DEBUG" + elif self.verbosity == -1: + level = "WARNING" + elif self.verbosity == -2: + level = "ERROR" + elif self.verbosity <= -3: + level = "CRITICAL" + else: + level = "INFO" + + # The root logger should match the "console" level *unless* we + # specified "--log" to send debug logs to a file. + root_level = level + if options.log: + root_level = "DEBUG" + + logger_class = "pip._internal.utils.logging.ColorizedStreamHandler" + handler_class = "pip._internal.utils.logging.BetterRotatingFileHandler" + + logging.config.dictConfig({ + "version": 1, + "disable_existing_loggers": False, + "filters": { + "exclude_warnings": { + "()": "pip._internal.utils.logging.MaxLevelFilter", + "level": logging.WARNING, + }, + }, + "formatters": { + "indent": { + "()": IndentingFormatter, + "format": "%(message)s", + }, + }, + "handlers": { + "console": { + "level": level, + "class": logger_class, + "no_color": options.no_color, + "stream": self.log_streams[0], + "filters": ["exclude_warnings"], + "formatter": "indent", + }, + "console_errors": { + "level": "WARNING", + "class": logger_class, + "no_color": options.no_color, + "stream": self.log_streams[1], + "formatter": "indent", + }, + "user_log": { + "level": "DEBUG", + "class": handler_class, + "filename": options.log or "/dev/null", + "delay": True, + "formatter": "indent", + }, + }, + "root": { + "level": root_level, + "handlers": list(filter(None, [ + "console", + "console_errors", + "user_log" if options.log else None, + ])), + }, + # Disable any logging besides WARNING unless we have DEBUG level + # logging enabled. These use both pip._vendor and the bare names + # for the case where someone unbundles our libraries. + "loggers": { + name: { + "level": ( + "WARNING" if level in ["INFO", "ERROR"] else "DEBUG" + ) + } for name in [ + "pip._vendor", "distlib", "requests", "urllib3" + ] + }, + }) + + if sys.version_info[:2] == (3, 3): + warnings.warn( + "Python 3.3 supported has been deprecated and support for it " + "will be dropped in the future. Please upgrade your Python.", + deprecation.RemovedInPip11Warning, + ) + + # TODO: try to get these passing down from the command? + # without resorting to os.environ to hold these. + + if options.no_input: + os.environ['PIP_NO_INPUT'] = '1' + + if options.exists_action: + os.environ['PIP_EXISTS_ACTION'] = ' '.join(options.exists_action) + + if options.require_venv and not self.ignore_require_venv: + # If a venv is required check if it can really be found + if not running_under_virtualenv(): + logger.critical( + 'Could not find an activated virtualenv (required).' + ) + sys.exit(VIRTUALENV_NOT_FOUND) + + original_root_handlers = set(logging.root.handlers) + + try: + status = self.run(options, args) + # FIXME: all commands should return an exit status + # and when it is done, isinstance is not needed anymore + if isinstance(status, int): + return status + except PreviousBuildDirError as exc: + logger.critical(str(exc)) + logger.debug('Exception information:', exc_info=True) + + return PREVIOUS_BUILD_DIR_ERROR + except (InstallationError, UninstallationError, BadCommand) as exc: + logger.critical(str(exc)) + logger.debug('Exception information:', exc_info=True) + + return ERROR + except CommandError as exc: + logger.critical('ERROR: %s', exc) + logger.debug('Exception information:', exc_info=True) + + return ERROR + except KeyboardInterrupt: + logger.critical('Operation cancelled by user') + logger.debug('Exception information:', exc_info=True) + + return ERROR + except: + logger.critical('Exception:', exc_info=True) + + return UNKNOWN_ERROR + finally: + # Check if we're using the latest version of pip available + if (not options.disable_pip_version_check and not + getattr(options, "no_index", False)): + with self._build_session( + options, + retries=0, + timeout=min(5, options.timeout)) as session: + pip_version_check(session, options) + # Avoid leaking loggers + for handler in set(logging.root.handlers) - original_root_handlers: + # this method benefit from the Logger class internal lock + logging.root.removeHandler(handler) + + return SUCCESS + + +class RequirementCommand(Command): + + @staticmethod + def populate_requirement_set(requirement_set, args, options, finder, + session, name, wheel_cache): + """ + Marshal cmd line args into a requirement set. + """ + # NOTE: As a side-effect, options.require_hashes and + # requirement_set.require_hashes may be updated + + for filename in options.constraints: + for req_to_add in parse_requirements( + filename, + constraint=True, finder=finder, options=options, + session=session, wheel_cache=wheel_cache): + req_to_add.is_direct = True + requirement_set.add_requirement(req_to_add) + + for req in args: + req_to_add = InstallRequirement.from_line( + req, None, isolated=options.isolated_mode, + wheel_cache=wheel_cache + ) + req_to_add.is_direct = True + requirement_set.add_requirement(req_to_add) + + for req in options.editables: + req_to_add = InstallRequirement.from_editable( + req, + isolated=options.isolated_mode, + wheel_cache=wheel_cache + ) + req_to_add.is_direct = True + requirement_set.add_requirement(req_to_add) + + for filename in options.requirements: + for req_to_add in parse_requirements( + filename, + finder=finder, options=options, session=session, + wheel_cache=wheel_cache): + req_to_add.is_direct = True + requirement_set.add_requirement(req_to_add) + # If --require-hashes was a line in a requirements file, tell + # RequirementSet about it: + requirement_set.require_hashes = options.require_hashes + + if not (args or options.editables or options.requirements): + opts = {'name': name} + if options.find_links: + raise CommandError( + 'You must give at least one requirement to %(name)s ' + '(maybe you meant "pip %(name)s %(links)s"?)' % + dict(opts, links=' '.join(options.find_links))) + else: + raise CommandError( + 'You must give at least one requirement to %(name)s ' + '(see "pip help %(name)s")' % opts) + + # On Windows, any operation modifying pip should be run as: + # python -m pip ... + # See https://github.com/pypa/pip/issues/1299 for more discussion + should_show_use_python_msg = ( + WINDOWS and + requirement_set.has_requirement("pip") and + os.path.basename(sys.argv[0]).startswith("pip") + ) + if should_show_use_python_msg: + new_command = [ + sys.executable, "-m", "pip" + ] + sys.argv[1:] + raise CommandError( + 'To modify pip, please run the following command:\n{}' + .format(" ".join(new_command)) + ) + + def _build_package_finder(self, options, session, + platform=None, python_versions=None, + abi=None, implementation=None): + """ + Create a package finder appropriate to this requirement command. + """ + index_urls = [options.index_url] + options.extra_index_urls + if options.no_index: + logger.debug('Ignoring indexes: %s', ','.join(index_urls)) + index_urls = [] + + return PackageFinder( + find_links=options.find_links, + format_control=options.format_control, + index_urls=index_urls, + trusted_hosts=options.trusted_hosts, + allow_all_prereleases=options.pre, + process_dependency_links=options.process_dependency_links, + session=session, + platform=platform, + versions=python_versions, + abi=abi, + implementation=implementation, + ) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/baseparser.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/baseparser.py new file mode 100644 index 00000000..9a8d1297 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/baseparser.py @@ -0,0 +1,240 @@ +"""Base option parser setup""" +from __future__ import absolute_import + +import logging +import optparse +import sys +import textwrap +from distutils.util import strtobool + +from pip._vendor.six import string_types + +from pip._internal.compat import get_terminal_size +from pip._internal.configuration import Configuration, ConfigurationError + +logger = logging.getLogger(__name__) + + +class PrettyHelpFormatter(optparse.IndentedHelpFormatter): + """A prettier/less verbose help formatter for optparse.""" + + def __init__(self, *args, **kwargs): + # help position must be aligned with __init__.parseopts.description + kwargs['max_help_position'] = 30 + kwargs['indent_increment'] = 1 + kwargs['width'] = get_terminal_size()[0] - 2 + optparse.IndentedHelpFormatter.__init__(self, *args, **kwargs) + + def format_option_strings(self, option): + return self._format_option_strings(option, ' <%s>', ', ') + + def _format_option_strings(self, option, mvarfmt=' <%s>', optsep=', '): + """ + Return a comma-separated list of option strings and metavars. + + :param option: tuple of (short opt, long opt), e.g: ('-f', '--format') + :param mvarfmt: metavar format string - evaluated as mvarfmt % metavar + :param optsep: separator + """ + opts = [] + + if option._short_opts: + opts.append(option._short_opts[0]) + if option._long_opts: + opts.append(option._long_opts[0]) + if len(opts) > 1: + opts.insert(1, optsep) + + if option.takes_value(): + metavar = option.metavar or option.dest.lower() + opts.append(mvarfmt % metavar.lower()) + + return ''.join(opts) + + def format_heading(self, heading): + if heading == 'Options': + return '' + return heading + ':\n' + + def format_usage(self, usage): + """ + Ensure there is only one newline between usage and the first heading + if there is no description. + """ + msg = '\nUsage: %s\n' % self.indent_lines(textwrap.dedent(usage), " ") + return msg + + def format_description(self, description): + # leave full control over description to us + if description: + if hasattr(self.parser, 'main'): + label = 'Commands' + else: + label = 'Description' + # some doc strings have initial newlines, some don't + description = description.lstrip('\n') + # some doc strings have final newlines and spaces, some don't + description = description.rstrip() + # dedent, then reindent + description = self.indent_lines(textwrap.dedent(description), " ") + description = '%s:\n%s\n' % (label, description) + return description + else: + return '' + + def format_epilog(self, epilog): + # leave full control over epilog to us + if epilog: + return epilog + else: + return '' + + def indent_lines(self, text, indent): + new_lines = [indent + line for line in text.split('\n')] + return "\n".join(new_lines) + + +class UpdatingDefaultsHelpFormatter(PrettyHelpFormatter): + """Custom help formatter for use in ConfigOptionParser. + + This is updates the defaults before expanding them, allowing + them to show up correctly in the help listing. + """ + + def expand_default(self, option): + if self.parser is not None: + self.parser._update_defaults(self.parser.defaults) + return optparse.IndentedHelpFormatter.expand_default(self, option) + + +class CustomOptionParser(optparse.OptionParser): + + def insert_option_group(self, idx, *args, **kwargs): + """Insert an OptionGroup at a given position.""" + group = self.add_option_group(*args, **kwargs) + + self.option_groups.pop() + self.option_groups.insert(idx, group) + + return group + + @property + def option_list_all(self): + """Get a list of all options, including those in option groups.""" + res = self.option_list[:] + for i in self.option_groups: + res.extend(i.option_list) + + return res + + +class ConfigOptionParser(CustomOptionParser): + """Custom option parser which updates its defaults by checking the + configuration files and environmental variables""" + + def __init__(self, *args, **kwargs): + self.name = kwargs.pop('name') + + isolated = kwargs.pop("isolated", False) + self.config = Configuration(isolated) + + assert self.name + optparse.OptionParser.__init__(self, *args, **kwargs) + + def check_default(self, option, key, val): + try: + return option.check_value(key, val) + except optparse.OptionValueError as exc: + print("An error occurred during configuration: %s" % exc) + sys.exit(3) + + def _get_ordered_configuration_items(self): + # Configuration gives keys in an unordered manner. Order them. + override_order = ["global", self.name, ":env:"] + + # Pool the options into different groups + section_items = {name: [] for name in override_order} + for section_key, val in self.config.items(): + # ignore empty values + if not val: + logger.debug( + "Ignoring configuration key '%s' as it's value is empty.", + section_key + ) + continue + + section, key = section_key.split(".", 1) + if section in override_order: + section_items[section].append((key, val)) + + # Yield each group in their override order + for section in override_order: + for key, val in section_items[section]: + yield key, val + + def _update_defaults(self, defaults): + """Updates the given defaults with values from the config files and + the environ. Does a little special handling for certain types of + options (lists).""" + + # Accumulate complex default state. + self.values = optparse.Values(self.defaults) + late_eval = set() + # Then set the options with those values + for key, val in self._get_ordered_configuration_items(): + # '--' because configuration supports only long names + option = self.get_option('--' + key) + + # Ignore options not present in this parser. E.g. non-globals put + # in [global] by users that want them to apply to all applicable + # commands. + if option is None: + continue + + if option.action in ('store_true', 'store_false', 'count'): + val = strtobool(val) + elif option.action == 'append': + val = val.split() + val = [self.check_default(option, key, v) for v in val] + elif option.action == 'callback': + late_eval.add(option.dest) + opt_str = option.get_opt_string() + val = option.convert_value(opt_str, val) + # From take_action + args = option.callback_args or () + kwargs = option.callback_kwargs or {} + option.callback(option, opt_str, val, self, *args, **kwargs) + else: + val = self.check_default(option, key, val) + + defaults[option.dest] = val + + for key in late_eval: + defaults[key] = getattr(self.values, key) + self.values = None + return defaults + + def get_default_values(self): + """Overriding to make updating the defaults after instantiation of + the option parser possible, _update_defaults() does the dirty work.""" + if not self.process_default_values: + # Old, pre-Optik 1.5 behaviour. + return optparse.Values(self.defaults) + + # Load the configuration, or error out in case of an error + try: + self.config.load() + except ConfigurationError as err: + self.exit(2, err.args[0]) + + defaults = self._update_defaults(self.defaults.copy()) # ours + for option in self._get_all_options(): + default = defaults.get(option.dest) + if isinstance(default, string_types): + opt_str = option.get_opt_string() + defaults[option.dest] = option.check_value(opt_str, default) + return optparse.Values(defaults) + + def error(self, msg): + self.print_usage(sys.stderr) + self.exit(2, "%s\n" % msg) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/build_env.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/build_env.py new file mode 100644 index 00000000..791d7346 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/build_env.py @@ -0,0 +1,92 @@ +"""Build Environment used for isolation during sdist building +""" + +import os +from distutils.sysconfig import get_python_lib +from sysconfig import get_paths + +from pip._internal.utils.temp_dir import TempDirectory + + +class BuildEnvironment(object): + """Creates and manages an isolated environment to install build deps + """ + + def __init__(self, no_clean): + self._temp_dir = TempDirectory(kind="build-env") + self._no_clean = no_clean + + @property + def path(self): + return self._temp_dir.path + + def __enter__(self): + self._temp_dir.create() + + self.save_path = os.environ.get('PATH', None) + self.save_pythonpath = os.environ.get('PYTHONPATH', None) + self.save_nousersite = os.environ.get('PYTHONNOUSERSITE', None) + + install_scheme = 'nt' if (os.name == 'nt') else 'posix_prefix' + install_dirs = get_paths(install_scheme, vars={ + 'base': self.path, + 'platbase': self.path, + }) + + scripts = install_dirs['scripts'] + if self.save_path: + os.environ['PATH'] = scripts + os.pathsep + self.save_path + else: + os.environ['PATH'] = scripts + os.pathsep + os.defpath + + # Note: prefer distutils' sysconfig to get the + # library paths so PyPy is correctly supported. + purelib = get_python_lib(plat_specific=0, prefix=self.path) + platlib = get_python_lib(plat_specific=1, prefix=self.path) + if purelib == platlib: + lib_dirs = purelib + else: + lib_dirs = purelib + os.pathsep + platlib + if self.save_pythonpath: + os.environ['PYTHONPATH'] = lib_dirs + os.pathsep + \ + self.save_pythonpath + else: + os.environ['PYTHONPATH'] = lib_dirs + + os.environ['PYTHONNOUSERSITE'] = '1' + + return self.path + + def __exit__(self, exc_type, exc_val, exc_tb): + if not self._no_clean: + self._temp_dir.cleanup() + + def restore_var(varname, old_value): + if old_value is None: + os.environ.pop(varname, None) + else: + os.environ[varname] = old_value + + restore_var('PATH', self.save_path) + restore_var('PYTHONPATH', self.save_pythonpath) + restore_var('PYTHONNOUSERSITE', self.save_nousersite) + + def cleanup(self): + self._temp_dir.cleanup() + + +class NoOpBuildEnvironment(BuildEnvironment): + """A no-op drop-in replacement for BuildEnvironment + """ + + def __init__(self, no_clean): + pass + + def __enter__(self): + pass + + def __exit__(self, exc_type, exc_val, exc_tb): + pass + + def cleanup(self): + pass diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/cache.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/cache.py new file mode 100644 index 00000000..1aa17aa9 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/cache.py @@ -0,0 +1,202 @@ +"""Cache Management +""" + +import errno +import hashlib +import logging +import os + +from pip._vendor.packaging.utils import canonicalize_name + +from pip._internal import index +from pip._internal.compat import expanduser +from pip._internal.download import path_to_url +from pip._internal.utils.temp_dir import TempDirectory +from pip._internal.wheel import InvalidWheelFilename, Wheel + +logger = logging.getLogger(__name__) + + +class Cache(object): + """An abstract class - provides cache directories for data from links + + + :param cache_dir: The root of the cache. + :param format_control: A pip.index.FormatControl object to limit + binaries being read from the cache. + :param allowed_formats: which formats of files the cache should store. + ('binary' and 'source' are the only allowed values) + """ + + def __init__(self, cache_dir, format_control, allowed_formats): + super(Cache, self).__init__() + self.cache_dir = expanduser(cache_dir) if cache_dir else None + self.format_control = format_control + self.allowed_formats = allowed_formats + + _valid_formats = {"source", "binary"} + assert self.allowed_formats.union(_valid_formats) == _valid_formats + + def _get_cache_path_parts(self, link): + """Get parts of part that must be os.path.joined with cache_dir + """ + + # We want to generate an url to use as our cache key, we don't want to + # just re-use the URL because it might have other items in the fragment + # and we don't care about those. + key_parts = [link.url_without_fragment] + if link.hash_name is not None and link.hash is not None: + key_parts.append("=".join([link.hash_name, link.hash])) + key_url = "#".join(key_parts) + + # Encode our key url with sha224, we'll use this because it has similar + # security properties to sha256, but with a shorter total output (and + # thus less secure). However the differences don't make a lot of + # difference for our use case here. + hashed = hashlib.sha224(key_url.encode()).hexdigest() + + # We want to nest the directories some to prevent having a ton of top + # level directories where we might run out of sub directories on some + # FS. + parts = [hashed[:2], hashed[2:4], hashed[4:6], hashed[6:]] + + return parts + + def _get_candidates(self, link, package_name): + can_not_cache = ( + not self.cache_dir or + not package_name or + not link + ) + if can_not_cache: + return [] + + canonical_name = canonicalize_name(package_name) + formats = index.fmt_ctl_formats( + self.format_control, canonical_name + ) + if not self.allowed_formats.intersection(formats): + return [] + + root = self.get_path_for_link(link) + try: + return os.listdir(root) + except OSError as err: + if err.errno in {errno.ENOENT, errno.ENOTDIR}: + return [] + raise + + def get_path_for_link(self, link): + """Return a directory to store cached items in for link. + """ + raise NotImplementedError() + + def get(self, link, package_name): + """Returns a link to a cached item if it exists, otherwise returns the + passed link. + """ + raise NotImplementedError() + + def _link_for_candidate(self, link, candidate): + root = self.get_path_for_link(link) + path = os.path.join(root, candidate) + + return index.Link(path_to_url(path)) + + def cleanup(self): + pass + + +class SimpleWheelCache(Cache): + """A cache of wheels for future installs. + """ + + def __init__(self, cache_dir, format_control): + super(SimpleWheelCache, self).__init__( + cache_dir, format_control, {"binary"} + ) + + def get_path_for_link(self, link): + """Return a directory to store cached wheels for link + + Because there are M wheels for any one sdist, we provide a directory + to cache them in, and then consult that directory when looking up + cache hits. + + We only insert things into the cache if they have plausible version + numbers, so that we don't contaminate the cache with things that were + not unique. E.g. ./package might have dozens of installs done for it + and build a version of 0.0...and if we built and cached a wheel, we'd + end up using the same wheel even if the source has been edited. + + :param link: The link of the sdist for which this will cache wheels. + """ + parts = self._get_cache_path_parts(link) + + # Store wheels within the root cache_dir + return os.path.join(self.cache_dir, "wheels", *parts) + + def get(self, link, package_name): + candidates = [] + + for wheel_name in self._get_candidates(link, package_name): + try: + wheel = Wheel(wheel_name) + except InvalidWheelFilename: + continue + if not wheel.supported(): + # Built for a different python/arch/etc + continue + candidates.append((wheel.support_index_min(), wheel_name)) + + if not candidates: + return link + + return self._link_for_candidate(link, min(candidates)[1]) + + +class EphemWheelCache(SimpleWheelCache): + """A SimpleWheelCache that creates it's own temporary cache directory + """ + + def __init__(self, format_control): + self._temp_dir = TempDirectory(kind="ephem-wheel-cache") + self._temp_dir.create() + + super(EphemWheelCache, self).__init__( + self._temp_dir.path, format_control + ) + + def cleanup(self): + self._temp_dir.cleanup() + + +class WheelCache(Cache): + """Wraps EphemWheelCache and SimpleWheelCache into a single Cache + + This Cache allows for gracefully degradation, using the ephem wheel cache + when a certain link is not found in the simple wheel cache first. + """ + + def __init__(self, cache_dir, format_control): + super(WheelCache, self).__init__( + cache_dir, format_control, {'binary'} + ) + self._wheel_cache = SimpleWheelCache(cache_dir, format_control) + self._ephem_cache = EphemWheelCache(format_control) + + def get_path_for_link(self, link): + return self._wheel_cache.get_path_for_link(link) + + def get_ephem_path_for_link(self, link): + return self._ephem_cache.get_path_for_link(link) + + def get(self, link, package_name): + retval = self._wheel_cache.get(link, package_name) + if retval is link: + retval = self._ephem_cache.get(link, package_name) + return retval + + def cleanup(self): + self._wheel_cache.cleanup() + self._ephem_cache.cleanup() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/cmdoptions.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/cmdoptions.py new file mode 100644 index 00000000..6319995d --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/cmdoptions.py @@ -0,0 +1,609 @@ +""" +shared options and groups + +The principle here is to define options once, but *not* instantiate them +globally. One reason being that options with action='append' can carry state +between parses. pip parses general options twice internally, and shouldn't +pass on state. To be consistent, all options will follow this design. + +""" +from __future__ import absolute_import + +import warnings +from functools import partial +from optparse import SUPPRESS_HELP, Option, OptionGroup + +from pip._internal.index import ( + FormatControl, fmt_ctl_handle_mutual_exclude, fmt_ctl_no_binary, +) +from pip._internal.locations import USER_CACHE_DIR, src_prefix +from pip._internal.models import PyPI +from pip._internal.utils.hashes import STRONG_HASHES +from pip._internal.utils.typing import MYPY_CHECK_RUNNING +from pip._internal.utils.ui import BAR_TYPES + +if MYPY_CHECK_RUNNING: + from typing import Any + + +def make_option_group(group, parser): + """ + Return an OptionGroup object + group -- assumed to be dict with 'name' and 'options' keys + parser -- an optparse Parser + """ + option_group = OptionGroup(parser, group['name']) + for option in group['options']: + option_group.add_option(option()) + return option_group + + +def check_install_build_global(options, check_options=None): + """Disable wheels if per-setup.py call options are set. + + :param options: The OptionParser options to update. + :param check_options: The options to check, if not supplied defaults to + options. + """ + if check_options is None: + check_options = options + + def getname(n): + return getattr(check_options, n, None) + names = ["build_options", "global_options", "install_options"] + if any(map(getname, names)): + control = options.format_control + fmt_ctl_no_binary(control) + warnings.warn( + 'Disabling all use of wheels due to the use of --build-options ' + '/ --global-options / --install-options.', stacklevel=2, + ) + + +########### +# options # +########### + +help_ = partial( + Option, + '-h', '--help', + dest='help', + action='help', + help='Show help.', +) # type: Any + +isolated_mode = partial( + Option, + "--isolated", + dest="isolated_mode", + action="store_true", + default=False, + help=( + "Run pip in an isolated mode, ignoring environment variables and user " + "configuration." + ), +) + +require_virtualenv = partial( + Option, + # Run only if inside a virtualenv, bail if not. + '--require-virtualenv', '--require-venv', + dest='require_venv', + action='store_true', + default=False, + help=SUPPRESS_HELP +) # type: Any + +verbose = partial( + Option, + '-v', '--verbose', + dest='verbose', + action='count', + default=0, + help='Give more output. Option is additive, and can be used up to 3 times.' +) + +no_color = partial( + Option, + '--no-color', + dest='no_color', + action='store_true', + default=False, + help="Suppress colored output", +) + +version = partial( + Option, + '-V', '--version', + dest='version', + action='store_true', + help='Show version and exit.', +) # type: Any + +quiet = partial( + Option, + '-q', '--quiet', + dest='quiet', + action='count', + default=0, + help=( + 'Give less output. Option is additive, and can be used up to 3' + ' times (corresponding to WARNING, ERROR, and CRITICAL logging' + ' levels).' + ), +) # type: Any + +progress_bar = partial( + Option, + '--progress-bar', + dest='progress_bar', + type='choice', + choices=list(BAR_TYPES.keys()), + default='on', + help=( + 'Specify type of progress to be displayed [' + + '|'.join(BAR_TYPES.keys()) + '] (default: %default)' + ), +) # type: Any + +log = partial( + Option, + "--log", "--log-file", "--local-log", + dest="log", + metavar="path", + help="Path to a verbose appending log." +) # type: Any + +no_input = partial( + Option, + # Don't ask for input + '--no-input', + dest='no_input', + action='store_true', + default=False, + help=SUPPRESS_HELP +) # type: Any + +proxy = partial( + Option, + '--proxy', + dest='proxy', + type='str', + default='', + help="Specify a proxy in the form [user:passwd@]proxy.server:port." +) # type: Any + +retries = partial( + Option, + '--retries', + dest='retries', + type='int', + default=5, + help="Maximum number of retries each connection should attempt " + "(default %default times).", +) # type: Any + +timeout = partial( + Option, + '--timeout', '--default-timeout', + metavar='sec', + dest='timeout', + type='float', + default=15, + help='Set the socket timeout (default %default seconds).', +) # type: Any + +skip_requirements_regex = partial( + Option, + # A regex to be used to skip requirements + '--skip-requirements-regex', + dest='skip_requirements_regex', + type='str', + default='', + help=SUPPRESS_HELP, +) # type: Any + + +def exists_action(): + return Option( + # Option when path already exist + '--exists-action', + dest='exists_action', + type='choice', + choices=['s', 'i', 'w', 'b', 'a'], + default=[], + action='append', + metavar='action', + help="Default action when a path already exists: " + "(s)witch, (i)gnore, (w)ipe, (b)ackup, (a)bort).", + ) + + +cert = partial( + Option, + '--cert', + dest='cert', + type='str', + metavar='path', + help="Path to alternate CA bundle.", +) # type: Any + +client_cert = partial( + Option, + '--client-cert', + dest='client_cert', + type='str', + default=None, + metavar='path', + help="Path to SSL client certificate, a single file containing the " + "private key and the certificate in PEM format.", +) # type: Any + +index_url = partial( + Option, + '-i', '--index-url', '--pypi-url', + dest='index_url', + metavar='URL', + default=PyPI.simple_url, + help="Base URL of Python Package Index (default %default). " + "This should point to a repository compliant with PEP 503 " + "(the simple repository API) or a local directory laid out " + "in the same format.", +) # type: Any + + +def extra_index_url(): + return Option( + '--extra-index-url', + dest='extra_index_urls', + metavar='URL', + action='append', + default=[], + help="Extra URLs of package indexes to use in addition to " + "--index-url. Should follow the same rules as " + "--index-url.", + ) + + +no_index = partial( + Option, + '--no-index', + dest='no_index', + action='store_true', + default=False, + help='Ignore package index (only looking at --find-links URLs instead).', +) # type: Any + + +def find_links(): + return Option( + '-f', '--find-links', + dest='find_links', + action='append', + default=[], + metavar='url', + help="If a url or path to an html file, then parse for links to " + "archives. If a local path or file:// url that's a directory, " + "then look for archives in the directory listing.", + ) + + +def trusted_host(): + return Option( + "--trusted-host", + dest="trusted_hosts", + action="append", + metavar="HOSTNAME", + default=[], + help="Mark this host as trusted, even though it does not have valid " + "or any HTTPS.", + ) + + +# Remove after 1.5 +process_dependency_links = partial( + Option, + "--process-dependency-links", + dest="process_dependency_links", + action="store_true", + default=False, + help="Enable the processing of dependency links.", +) # type: Any + + +def constraints(): + return Option( + '-c', '--constraint', + dest='constraints', + action='append', + default=[], + metavar='file', + help='Constrain versions using the given constraints file. ' + 'This option can be used multiple times.' + ) + + +def requirements(): + return Option( + '-r', '--requirement', + dest='requirements', + action='append', + default=[], + metavar='file', + help='Install from the given requirements file. ' + 'This option can be used multiple times.' + ) + + +def editable(): + return Option( + '-e', '--editable', + dest='editables', + action='append', + default=[], + metavar='path/url', + help=('Install a project in editable mode (i.e. setuptools ' + '"develop mode") from a local project path or a VCS url.'), + ) + + +src = partial( + Option, + '--src', '--source', '--source-dir', '--source-directory', + dest='src_dir', + metavar='dir', + default=src_prefix, + help='Directory to check out editable projects into. ' + 'The default in a virtualenv is "/src". ' + 'The default for global installs is "/src".' +) # type: Any + + +def _get_format_control(values, option): + """Get a format_control object.""" + return getattr(values, option.dest) + + +def _handle_no_binary(option, opt_str, value, parser): + existing = getattr(parser.values, option.dest) + fmt_ctl_handle_mutual_exclude( + value, existing.no_binary, existing.only_binary, + ) + + +def _handle_only_binary(option, opt_str, value, parser): + existing = getattr(parser.values, option.dest) + fmt_ctl_handle_mutual_exclude( + value, existing.only_binary, existing.no_binary, + ) + + +def no_binary(): + return Option( + "--no-binary", dest="format_control", action="callback", + callback=_handle_no_binary, type="str", + default=FormatControl(set(), set()), + help="Do not use binary packages. Can be supplied multiple times, and " + "each time adds to the existing value. Accepts either :all: to " + "disable all binary packages, :none: to empty the set, or one or " + "more package names with commas between them. Note that some " + "packages are tricky to compile and may fail to install when " + "this option is used on them.", + ) + + +def only_binary(): + return Option( + "--only-binary", dest="format_control", action="callback", + callback=_handle_only_binary, type="str", + default=FormatControl(set(), set()), + help="Do not use source packages. Can be supplied multiple times, and " + "each time adds to the existing value. Accepts either :all: to " + "disable all source packages, :none: to empty the set, or one or " + "more package names with commas between them. Packages without " + "binary distributions will fail to install when this option is " + "used on them.", + ) + + +cache_dir = partial( + Option, + "--cache-dir", + dest="cache_dir", + default=USER_CACHE_DIR, + metavar="dir", + help="Store the cache data in ." +) + +no_cache = partial( + Option, + "--no-cache-dir", + dest="cache_dir", + action="store_false", + help="Disable the cache.", +) + +no_deps = partial( + Option, + '--no-deps', '--no-dependencies', + dest='ignore_dependencies', + action='store_true', + default=False, + help="Don't install package dependencies.", +) # type: Any + +build_dir = partial( + Option, + '-b', '--build', '--build-dir', '--build-directory', + dest='build_dir', + metavar='dir', + help='Directory to unpack packages into and build in. Note that ' + 'an initial build still takes place in a temporary directory. ' + 'The location of temporary directories can be controlled by setting ' + 'the TMPDIR environment variable (TEMP on Windows) appropriately. ' + 'When passed, build directories are not cleaned in case of failures.' +) # type: Any + +ignore_requires_python = partial( + Option, + '--ignore-requires-python', + dest='ignore_requires_python', + action='store_true', + help='Ignore the Requires-Python information.' +) # type: Any + +no_build_isolation = partial( + Option, + '--no-build-isolation', + dest='build_isolation', + action='store_false', + default=True, + help='Disable isolation when building a modern source distribution. ' + 'Build dependencies specified by PEP 518 must be already installed ' + 'if this option is used.' +) # type: Any + +install_options = partial( + Option, + '--install-option', + dest='install_options', + action='append', + metavar='options', + help="Extra arguments to be supplied to the setup.py install " + "command (use like --install-option=\"--install-scripts=/usr/local/" + "bin\"). Use multiple --install-option options to pass multiple " + "options to setup.py install. If you are using an option with a " + "directory path, be sure to use absolute path.", +) # type: Any + +global_options = partial( + Option, + '--global-option', + dest='global_options', + action='append', + metavar='options', + help="Extra global options to be supplied to the setup.py " + "call before the install command.", +) # type: Any + +no_clean = partial( + Option, + '--no-clean', + action='store_true', + default=False, + help="Don't clean up build directories)." +) # type: Any + +pre = partial( + Option, + '--pre', + action='store_true', + default=False, + help="Include pre-release and development versions. By default, " + "pip only finds stable versions.", +) # type: Any + +disable_pip_version_check = partial( + Option, + "--disable-pip-version-check", + dest="disable_pip_version_check", + action="store_true", + default=False, + help="Don't periodically check PyPI to determine whether a new version " + "of pip is available for download. Implied with --no-index.", +) # type: Any + + +# Deprecated, Remove later +always_unzip = partial( + Option, + '-Z', '--always-unzip', + dest='always_unzip', + action='store_true', + help=SUPPRESS_HELP, +) # type: Any + + +def _merge_hash(option, opt_str, value, parser): + """Given a value spelled "algo:digest", append the digest to a list + pointed to in a dict by the algo name.""" + if not parser.values.hashes: + parser.values.hashes = {} + try: + algo, digest = value.split(':', 1) + except ValueError: + parser.error('Arguments to %s must be a hash name ' + 'followed by a value, like --hash=sha256:abcde...' % + opt_str) + if algo not in STRONG_HASHES: + parser.error('Allowed hash algorithms for %s are %s.' % + (opt_str, ', '.join(STRONG_HASHES))) + parser.values.hashes.setdefault(algo, []).append(digest) + + +hash = partial( + Option, + '--hash', + # Hash values eventually end up in InstallRequirement.hashes due to + # __dict__ copying in process_line(). + dest='hashes', + action='callback', + callback=_merge_hash, + type='string', + help="Verify that the package's archive matches this " + 'hash before installing. Example: --hash=sha256:abcdef...', +) # type: Any + + +require_hashes = partial( + Option, + '--require-hashes', + dest='require_hashes', + action='store_true', + default=False, + help='Require a hash to check each requirement against, for ' + 'repeatable installs. This option is implied when any package in a ' + 'requirements file has a --hash option.', +) # type: Any + + +########## +# groups # +########## + +general_group = { + 'name': 'General Options', + 'options': [ + help_, + isolated_mode, + require_virtualenv, + verbose, + version, + quiet, + log, + no_input, + proxy, + retries, + timeout, + skip_requirements_regex, + exists_action, + trusted_host, + cert, + client_cert, + cache_dir, + no_cache, + disable_pip_version_check, + no_color, + ] +} + +index_group = { + 'name': 'Package Index Options', + 'options': [ + index_url, + extra_index_url, + no_index, + find_links, + process_dependency_links, + ] +} diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/__init__.py new file mode 100644 index 00000000..d79c48e4 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/__init__.py @@ -0,0 +1,79 @@ +""" +Package containing all pip commands +""" +from __future__ import absolute_import + +from pip._internal.commands.completion import CompletionCommand +from pip._internal.commands.configuration import ConfigurationCommand +from pip._internal.commands.download import DownloadCommand +from pip._internal.commands.freeze import FreezeCommand +from pip._internal.commands.hash import HashCommand +from pip._internal.commands.help import HelpCommand +from pip._internal.commands.list import ListCommand +from pip._internal.commands.check import CheckCommand +from pip._internal.commands.search import SearchCommand +from pip._internal.commands.show import ShowCommand +from pip._internal.commands.install import InstallCommand +from pip._internal.commands.uninstall import UninstallCommand +from pip._internal.commands.wheel import WheelCommand + +from pip._internal.utils.typing import MYPY_CHECK_RUNNING + +if MYPY_CHECK_RUNNING: + from typing import List, Type + from pip._internal.basecommand import Command + +commands_order = [ + InstallCommand, + DownloadCommand, + UninstallCommand, + FreezeCommand, + ListCommand, + ShowCommand, + CheckCommand, + ConfigurationCommand, + SearchCommand, + WheelCommand, + HashCommand, + CompletionCommand, + HelpCommand, +] # type: List[Type[Command]] + +commands_dict = {c.name: c for c in commands_order} + + +def get_summaries(ordered=True): + """Yields sorted (command name, command summary) tuples.""" + + if ordered: + cmditems = _sort_commands(commands_dict, commands_order) + else: + cmditems = commands_dict.items() + + for name, command_class in cmditems: + yield (name, command_class.summary) + + +def get_similar_commands(name): + """Command name auto-correct.""" + from difflib import get_close_matches + + name = name.lower() + + close_commands = get_close_matches(name, commands_dict.keys()) + + if close_commands: + return close_commands[0] + else: + return False + + +def _sort_commands(cmddict, order): + def keyfn(key): + try: + return order.index(key[1]) + except ValueError: + # unordered items should come last + return 0xff + + return sorted(cmddict.items(), key=keyfn) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/check.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/check.py new file mode 100644 index 00000000..88db5101 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/check.py @@ -0,0 +1,42 @@ +import logging + +from pip._internal.basecommand import Command +from pip._internal.operations.check import ( + check_package_set, create_package_set_from_installed, +) +from pip._internal.utils.misc import get_installed_distributions + +logger = logging.getLogger(__name__) + + +class CheckCommand(Command): + """Verify installed packages have compatible dependencies.""" + name = 'check' + usage = """ + %prog [options]""" + summary = 'Verify installed packages have compatible dependencies.' + + def run(self, options, args): + package_set = create_package_set_from_installed() + missing, conflicting = check_package_set(package_set) + + for project_name in missing: + version = package_set[project_name].version + for dependency in missing[project_name]: + logger.info( + "%s %s requires %s, which is not installed.", + project_name, version, dependency[0], + ) + + for project_name in conflicting: + version = package_set[project_name].version + for dep_name, dep_version, req in conflicting[project_name]: + logger.info( + "%s %s has requirement %s, but you have %s %s.", + project_name, version, req, dep_name, dep_version, + ) + + if missing or conflicting: + return 1 + else: + logger.info("No broken requirements found.") diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/completion.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/completion.py new file mode 100644 index 00000000..c4b38736 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/completion.py @@ -0,0 +1,94 @@ +from __future__ import absolute_import + +import sys +import textwrap + +from pip._internal.basecommand import Command +from pip._internal.utils.misc import get_prog + +BASE_COMPLETION = """ +# pip %(shell)s completion start%(script)s# pip %(shell)s completion end +""" + +COMPLETION_SCRIPTS = { + 'bash': """ + _pip_completion() + { + COMPREPLY=( $( COMP_WORDS="${COMP_WORDS[*]}" \\ + COMP_CWORD=$COMP_CWORD \\ + PIP_AUTO_COMPLETE=1 $1 ) ) + } + complete -o default -F _pip_completion %(prog)s + """, + 'zsh': """ + function _pip_completion { + local words cword + read -Ac words + read -cn cword + reply=( $( COMP_WORDS="$words[*]" \\ + COMP_CWORD=$(( cword-1 )) \\ + PIP_AUTO_COMPLETE=1 $words[1] ) ) + } + compctl -K _pip_completion %(prog)s + """, + 'fish': """ + function __fish_complete_pip + set -lx COMP_WORDS (commandline -o) "" + set -lx COMP_CWORD ( \\ + math (contains -i -- (commandline -t) $COMP_WORDS)-1 \\ + ) + set -lx PIP_AUTO_COMPLETE 1 + string split \\ -- (eval $COMP_WORDS[1]) + end + complete -fa "(__fish_complete_pip)" -c %(prog)s + """, +} + + +class CompletionCommand(Command): + """A helper command to be used for command completion.""" + name = 'completion' + summary = 'A helper command used for command completion.' + ignore_require_venv = True + + def __init__(self, *args, **kw): + super(CompletionCommand, self).__init__(*args, **kw) + + cmd_opts = self.cmd_opts + + cmd_opts.add_option( + '--bash', '-b', + action='store_const', + const='bash', + dest='shell', + help='Emit completion code for bash') + cmd_opts.add_option( + '--zsh', '-z', + action='store_const', + const='zsh', + dest='shell', + help='Emit completion code for zsh') + cmd_opts.add_option( + '--fish', '-f', + action='store_const', + const='fish', + dest='shell', + help='Emit completion code for fish') + + self.parser.insert_option_group(0, cmd_opts) + + def run(self, options, args): + """Prints the completion code of the given shell""" + shells = COMPLETION_SCRIPTS.keys() + shell_options = ['--' + shell for shell in sorted(shells)] + if options.shell in shells: + script = textwrap.dedent( + COMPLETION_SCRIPTS.get(options.shell, '') % { + 'prog': get_prog(), + } + ) + print(BASE_COMPLETION % {'script': script, 'shell': options.shell}) + else: + sys.stderr.write( + 'ERROR: You must pass %s\n' % ' or '.join(shell_options) + ) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/configuration.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/configuration.py new file mode 100644 index 00000000..57448cb9 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/configuration.py @@ -0,0 +1,227 @@ +import logging +import os +import subprocess + +from pip._internal.basecommand import Command +from pip._internal.configuration import Configuration, kinds +from pip._internal.exceptions import PipError +from pip._internal.locations import venv_config_file +from pip._internal.status_codes import ERROR, SUCCESS +from pip._internal.utils.misc import get_prog + +logger = logging.getLogger(__name__) + + +class ConfigurationCommand(Command): + """Manage local and global configuration. + + Subcommands: + + list: List the active configuration (or from the file specified) + edit: Edit the configuration file in an editor + get: Get the value associated with name + set: Set the name=value + unset: Unset the value associated with name + + If none of --user, --global and --venv are passed, a virtual + environment configuration file is used if one is active and the file + exists. Otherwise, all modifications happen on the to the user file by + default. + """ + + name = 'config' + usage = """ + %prog [] list + %prog [] [--editor ] edit + + %prog [] get name + %prog [] set name value + %prog [] unset name + """ + + summary = "Manage local and global configuration." + + def __init__(self, *args, **kwargs): + super(ConfigurationCommand, self).__init__(*args, **kwargs) + + self.configuration = None + + self.cmd_opts.add_option( + '--editor', + dest='editor', + action='store', + default=None, + help=( + 'Editor to use to edit the file. Uses VISUAL or EDITOR ' + 'environment variables if not provided.' + ) + ) + + self.cmd_opts.add_option( + '--global', + dest='global_file', + action='store_true', + default=False, + help='Use the system-wide configuration file only' + ) + + self.cmd_opts.add_option( + '--user', + dest='user_file', + action='store_true', + default=False, + help='Use the user configuration file only' + ) + + self.cmd_opts.add_option( + '--venv', + dest='venv_file', + action='store_true', + default=False, + help='Use the virtualenv configuration file only' + ) + + self.parser.insert_option_group(0, self.cmd_opts) + + def run(self, options, args): + handlers = { + "list": self.list_values, + "edit": self.open_in_editor, + "get": self.get_name, + "set": self.set_name_value, + "unset": self.unset_name + } + + # Determine action + if not args or args[0] not in handlers: + logger.error("Need an action ({}) to perform.".format( + ", ".join(sorted(handlers))) + ) + return ERROR + + action = args[0] + + # Determine which configuration files are to be loaded + # Depends on whether the command is modifying. + try: + load_only = self._determine_file( + options, need_value=(action in ["get", "set", "unset", "edit"]) + ) + except PipError as e: + logger.error(e.args[0]) + return ERROR + + # Load a new configuration + self.configuration = Configuration( + isolated=options.isolated_mode, load_only=load_only + ) + self.configuration.load() + + # Error handling happens here, not in the action-handlers. + try: + handlers[action](options, args[1:]) + except PipError as e: + logger.error(e.args[0]) + return ERROR + + return SUCCESS + + def _determine_file(self, options, need_value): + file_options = { + kinds.USER: options.user_file, + kinds.GLOBAL: options.global_file, + kinds.VENV: options.venv_file + } + + if sum(file_options.values()) == 0: + if not need_value: + return None + # Default to user, unless there's a virtualenv file. + elif os.path.exists(venv_config_file): + return kinds.VENV + else: + return kinds.USER + elif sum(file_options.values()) == 1: + # There's probably a better expression for this. + return [key for key in file_options if file_options[key]][0] + + raise PipError( + "Need exactly one file to operate upon " + "(--user, --venv, --global) to perform." + ) + + def list_values(self, options, args): + self._get_n_args(args, "list", n=0) + + for key, value in sorted(self.configuration.items()): + logger.info("%s=%r", key, value) + + def get_name(self, options, args): + key = self._get_n_args(args, "get [name]", n=1) + value = self.configuration.get_value(key) + + logger.info("%s", value) + + def set_name_value(self, options, args): + key, value = self._get_n_args(args, "set [name] [value]", n=2) + self.configuration.set_value(key, value) + + self._save_configuration() + + def unset_name(self, options, args): + key = self._get_n_args(args, "unset [name]", n=1) + self.configuration.unset_value(key) + + self._save_configuration() + + def open_in_editor(self, options, args): + editor = self._determine_editor(options) + + fname = self.configuration.get_file_to_edit() + if fname is None: + raise PipError("Could not determine appropriate file.") + + try: + subprocess.check_call([editor, fname]) + except subprocess.CalledProcessError as e: + raise PipError( + "Editor Subprocess exited with exit code {}" + .format(e.returncode) + ) + + def _get_n_args(self, args, example, n): + """Helper to make sure the command got the right number of arguments + """ + if len(args) != n: + msg = ( + 'Got unexpected number of arguments, expected {}. ' + '(example: "{} config {}")' + ).format(n, get_prog(), example) + raise PipError(msg) + + if n == 1: + return args[0] + else: + return args + + def _save_configuration(self): + # We successfully ran a modifying command. Need to save the + # configuration. + try: + self.configuration.save() + except Exception: + logger.error( + "Unable to save configuration. Please report this as a bug.", + exc_info=1 + ) + raise PipError("Internal Error.") + + def _determine_editor(self, options): + if options.editor is not None: + return options.editor + elif "VISUAL" in os.environ: + return os.environ["VISUAL"] + elif "EDITOR" in os.environ: + return os.environ["EDITOR"] + else: + raise PipError("Could not determine editor to use.") diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/download.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/download.py new file mode 100644 index 00000000..5713d07c --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/download.py @@ -0,0 +1,233 @@ +from __future__ import absolute_import + +import logging +import os + +from pip._internal import cmdoptions +from pip._internal.basecommand import RequirementCommand +from pip._internal.exceptions import CommandError +from pip._internal.index import FormatControl +from pip._internal.operations.prepare import RequirementPreparer +from pip._internal.req import RequirementSet +from pip._internal.resolve import Resolver +from pip._internal.utils.filesystem import check_path_owner +from pip._internal.utils.misc import ensure_dir, normalize_path +from pip._internal.utils.temp_dir import TempDirectory + +logger = logging.getLogger(__name__) + + +class DownloadCommand(RequirementCommand): + """ + Download packages from: + + - PyPI (and other indexes) using requirement specifiers. + - VCS project urls. + - Local project directories. + - Local or remote source archives. + + pip also supports downloading from "requirements files", which provide + an easy way to specify a whole environment to be downloaded. + """ + name = 'download' + + usage = """ + %prog [options] [package-index-options] ... + %prog [options] -r [package-index-options] ... + %prog [options] ... + %prog [options] ... + %prog [options] ...""" + + summary = 'Download packages.' + + def __init__(self, *args, **kw): + super(DownloadCommand, self).__init__(*args, **kw) + + cmd_opts = self.cmd_opts + + cmd_opts.add_option(cmdoptions.constraints()) + cmd_opts.add_option(cmdoptions.requirements()) + cmd_opts.add_option(cmdoptions.build_dir()) + cmd_opts.add_option(cmdoptions.no_deps()) + cmd_opts.add_option(cmdoptions.global_options()) + cmd_opts.add_option(cmdoptions.no_binary()) + cmd_opts.add_option(cmdoptions.only_binary()) + cmd_opts.add_option(cmdoptions.src()) + cmd_opts.add_option(cmdoptions.pre()) + cmd_opts.add_option(cmdoptions.no_clean()) + cmd_opts.add_option(cmdoptions.require_hashes()) + cmd_opts.add_option(cmdoptions.progress_bar()) + cmd_opts.add_option(cmdoptions.no_build_isolation()) + + cmd_opts.add_option( + '-d', '--dest', '--destination-dir', '--destination-directory', + dest='download_dir', + metavar='dir', + default=os.curdir, + help=("Download packages into ."), + ) + + cmd_opts.add_option( + '--platform', + dest='platform', + metavar='platform', + default=None, + help=("Only download wheels compatible with . " + "Defaults to the platform of the running system."), + ) + + cmd_opts.add_option( + '--python-version', + dest='python_version', + metavar='python_version', + default=None, + help=("Only download wheels compatible with Python " + "interpreter version . If not specified, then the " + "current system interpreter minor version is used. A major " + "version (e.g. '2') can be specified to match all " + "minor revs of that major version. A minor version " + "(e.g. '34') can also be specified."), + ) + + cmd_opts.add_option( + '--implementation', + dest='implementation', + metavar='implementation', + default=None, + help=("Only download wheels compatible with Python " + "implementation , e.g. 'pp', 'jy', 'cp', " + " or 'ip'. If not specified, then the current " + "interpreter implementation is used. Use 'py' to force " + "implementation-agnostic wheels."), + ) + + cmd_opts.add_option( + '--abi', + dest='abi', + metavar='abi', + default=None, + help=("Only download wheels compatible with Python " + "abi , e.g. 'pypy_41'. If not specified, then the " + "current interpreter abi tag is used. Generally " + "you will need to specify --implementation, " + "--platform, and --python-version when using " + "this option."), + ) + + index_opts = cmdoptions.make_option_group( + cmdoptions.index_group, + self.parser, + ) + + self.parser.insert_option_group(0, index_opts) + self.parser.insert_option_group(0, cmd_opts) + + def run(self, options, args): + options.ignore_installed = True + # editable doesn't really make sense for `pip download`, but the bowels + # of the RequirementSet code require that property. + options.editables = [] + + if options.python_version: + python_versions = [options.python_version] + else: + python_versions = None + + dist_restriction_set = any([ + options.python_version, + options.platform, + options.abi, + options.implementation, + ]) + binary_only = FormatControl(set(), {':all:'}) + no_sdist_dependencies = ( + options.format_control != binary_only and + not options.ignore_dependencies + ) + if dist_restriction_set and no_sdist_dependencies: + raise CommandError( + "When restricting platform and interpreter constraints using " + "--python-version, --platform, --abi, or --implementation, " + "either --no-deps must be set, or --only-binary=:all: must be " + "set and --no-binary must not be set (or must be set to " + ":none:)." + ) + + options.src_dir = os.path.abspath(options.src_dir) + options.download_dir = normalize_path(options.download_dir) + + ensure_dir(options.download_dir) + + with self._build_session(options) as session: + finder = self._build_package_finder( + options=options, + session=session, + platform=options.platform, + python_versions=python_versions, + abi=options.abi, + implementation=options.implementation, + ) + build_delete = (not (options.no_clean or options.build_dir)) + if options.cache_dir and not check_path_owner(options.cache_dir): + logger.warning( + "The directory '%s' or its parent directory is not owned " + "by the current user and caching wheels has been " + "disabled. check the permissions and owner of that " + "directory. If executing pip with sudo, you may want " + "sudo's -H flag.", + options.cache_dir, + ) + options.cache_dir = None + + with TempDirectory( + options.build_dir, delete=build_delete, kind="download" + ) as directory: + + requirement_set = RequirementSet( + require_hashes=options.require_hashes, + ) + self.populate_requirement_set( + requirement_set, + args, + options, + finder, + session, + self.name, + None + ) + + preparer = RequirementPreparer( + build_dir=directory.path, + src_dir=options.src_dir, + download_dir=options.download_dir, + wheel_download_dir=None, + progress_bar=options.progress_bar, + build_isolation=options.build_isolation, + ) + + resolver = Resolver( + preparer=preparer, + finder=finder, + session=session, + wheel_cache=None, + use_user_site=False, + upgrade_strategy="to-satisfy-only", + force_reinstall=False, + ignore_dependencies=options.ignore_dependencies, + ignore_requires_python=False, + ignore_installed=True, + isolated=options.isolated_mode, + ) + resolver.resolve(requirement_set) + + downloaded = ' '.join([ + req.name for req in requirement_set.successfully_downloaded + ]) + if downloaded: + logger.info('Successfully downloaded %s', downloaded) + + # Clean up + if not options.no_clean: + requirement_set.cleanup_files() + + return requirement_set diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/freeze.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/freeze.py new file mode 100644 index 00000000..0d3d4ae2 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/freeze.py @@ -0,0 +1,96 @@ +from __future__ import absolute_import + +import sys + +from pip._internal import index +from pip._internal.basecommand import Command +from pip._internal.cache import WheelCache +from pip._internal.compat import stdlib_pkgs +from pip._internal.operations.freeze import freeze + +DEV_PKGS = {'pip', 'setuptools', 'distribute', 'wheel'} + + +class FreezeCommand(Command): + """ + Output installed packages in requirements format. + + packages are listed in a case-insensitive sorted order. + """ + name = 'freeze' + usage = """ + %prog [options]""" + summary = 'Output installed packages in requirements format.' + log_streams = ("ext://sys.stderr", "ext://sys.stderr") + + def __init__(self, *args, **kw): + super(FreezeCommand, self).__init__(*args, **kw) + + self.cmd_opts.add_option( + '-r', '--requirement', + dest='requirements', + action='append', + default=[], + metavar='file', + help="Use the order in the given requirements file and its " + "comments when generating output. This option can be " + "used multiple times.") + self.cmd_opts.add_option( + '-f', '--find-links', + dest='find_links', + action='append', + default=[], + metavar='URL', + help='URL for finding packages, which will be added to the ' + 'output.') + self.cmd_opts.add_option( + '-l', '--local', + dest='local', + action='store_true', + default=False, + help='If in a virtualenv that has global access, do not output ' + 'globally-installed packages.') + self.cmd_opts.add_option( + '--user', + dest='user', + action='store_true', + default=False, + help='Only output packages installed in user-site.') + self.cmd_opts.add_option( + '--all', + dest='freeze_all', + action='store_true', + help='Do not skip these packages in the output:' + ' %s' % ', '.join(DEV_PKGS)) + self.cmd_opts.add_option( + '--exclude-editable', + dest='exclude_editable', + action='store_true', + help='Exclude editable package from output.') + + self.parser.insert_option_group(0, self.cmd_opts) + + def run(self, options, args): + format_control = index.FormatControl(set(), set()) + wheel_cache = WheelCache(options.cache_dir, format_control) + skip = set(stdlib_pkgs) + if not options.freeze_all: + skip.update(DEV_PKGS) + + freeze_kwargs = dict( + requirement=options.requirements, + find_links=options.find_links, + local_only=options.local, + user_only=options.user, + skip_regex=options.skip_requirements_regex, + isolated=options.isolated_mode, + wheel_cache=wheel_cache, + skip=skip, + exclude_editable=options.exclude_editable, + ) + + try: + for line in freeze(**freeze_kwargs): + sys.stdout.write(line + '\n') + finally: + wheel_cache.cleanup() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/hash.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/hash.py new file mode 100644 index 00000000..95353b04 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/hash.py @@ -0,0 +1,57 @@ +from __future__ import absolute_import + +import hashlib +import logging +import sys + +from pip._internal.basecommand import Command +from pip._internal.status_codes import ERROR +from pip._internal.utils.hashes import FAVORITE_HASH, STRONG_HASHES +from pip._internal.utils.misc import read_chunks + +logger = logging.getLogger(__name__) + + +class HashCommand(Command): + """ + Compute a hash of a local package archive. + + These can be used with --hash in a requirements file to do repeatable + installs. + + """ + name = 'hash' + usage = '%prog [options] ...' + summary = 'Compute hashes of package archives.' + ignore_require_venv = True + + def __init__(self, *args, **kw): + super(HashCommand, self).__init__(*args, **kw) + self.cmd_opts.add_option( + '-a', '--algorithm', + dest='algorithm', + choices=STRONG_HASHES, + action='store', + default=FAVORITE_HASH, + help='The hash algorithm to use: one of %s' % + ', '.join(STRONG_HASHES)) + self.parser.insert_option_group(0, self.cmd_opts) + + def run(self, options, args): + if not args: + self.parser.print_usage(sys.stderr) + return ERROR + + algorithm = options.algorithm + for path in args: + logger.info('%s:\n--hash=%s:%s', + path, algorithm, _hash_of_file(path, algorithm)) + + +def _hash_of_file(path, algorithm): + """Return the hash digest of a file.""" + with open(path, 'rb') as archive: + hash = hashlib.new(algorithm) + for chunk in read_chunks(archive): + hash.update(chunk) + return hash.hexdigest() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/help.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/help.py new file mode 100644 index 00000000..06ca2c17 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/help.py @@ -0,0 +1,36 @@ +from __future__ import absolute_import + +from pip._internal.basecommand import SUCCESS, Command +from pip._internal.exceptions import CommandError + + +class HelpCommand(Command): + """Show help for commands""" + name = 'help' + usage = """ + %prog """ + summary = 'Show help for commands.' + ignore_require_venv = True + + def run(self, options, args): + from pip._internal.commands import commands_dict, get_similar_commands + + try: + # 'pip help' with no args is handled by pip.__init__.parseopt() + cmd_name = args[0] # the command we need help for + except IndexError: + return SUCCESS + + if cmd_name not in commands_dict: + guess = get_similar_commands(cmd_name) + + msg = ['unknown command "%s"' % cmd_name] + if guess: + msg.append('maybe you meant "%s"' % guess) + + raise CommandError(' - '.join(msg)) + + command = commands_dict[cmd_name]() + command.parser.print_help() + + return SUCCESS diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/install.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/install.py new file mode 100644 index 00000000..9138683a --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/install.py @@ -0,0 +1,502 @@ +from __future__ import absolute_import + +import errno +import logging +import operator +import os +import shutil +from optparse import SUPPRESS_HELP + +from pip._internal import cmdoptions +from pip._internal.basecommand import RequirementCommand +from pip._internal.cache import WheelCache +from pip._internal.exceptions import ( + CommandError, InstallationError, PreviousBuildDirError, +) +from pip._internal.locations import distutils_scheme, virtualenv_no_global +from pip._internal.operations.check import check_install_conflicts +from pip._internal.operations.prepare import RequirementPreparer +from pip._internal.req import RequirementSet, install_given_reqs +from pip._internal.resolve import Resolver +from pip._internal.status_codes import ERROR +from pip._internal.utils.filesystem import check_path_owner +from pip._internal.utils.misc import ensure_dir, get_installed_version +from pip._internal.utils.temp_dir import TempDirectory +from pip._internal.wheel import WheelBuilder + +try: + import wheel +except ImportError: + wheel = None + + +logger = logging.getLogger(__name__) + + +class InstallCommand(RequirementCommand): + """ + Install packages from: + + - PyPI (and other indexes) using requirement specifiers. + - VCS project urls. + - Local project directories. + - Local or remote source archives. + + pip also supports installing from "requirements files", which provide + an easy way to specify a whole environment to be installed. + """ + name = 'install' + + usage = """ + %prog [options] [package-index-options] ... + %prog [options] -r [package-index-options] ... + %prog [options] [-e] ... + %prog [options] [-e] ... + %prog [options] ...""" + + summary = 'Install packages.' + + def __init__(self, *args, **kw): + super(InstallCommand, self).__init__(*args, **kw) + + cmd_opts = self.cmd_opts + + cmd_opts.add_option(cmdoptions.requirements()) + cmd_opts.add_option(cmdoptions.constraints()) + cmd_opts.add_option(cmdoptions.no_deps()) + cmd_opts.add_option(cmdoptions.pre()) + + cmd_opts.add_option(cmdoptions.editable()) + cmd_opts.add_option( + '-t', '--target', + dest='target_dir', + metavar='dir', + default=None, + help='Install packages into . ' + 'By default this will not replace existing files/folders in ' + '. Use --upgrade to replace existing packages in ' + 'with new versions.' + ) + cmd_opts.add_option( + '--user', + dest='use_user_site', + action='store_true', + help="Install to the Python user install directory for your " + "platform. Typically ~/.local/, or %APPDATA%\\Python on " + "Windows. (See the Python documentation for site.USER_BASE " + "for full details.)") + cmd_opts.add_option( + '--no-user', + dest='use_user_site', + action='store_false', + help=SUPPRESS_HELP) + cmd_opts.add_option( + '--root', + dest='root_path', + metavar='dir', + default=None, + help="Install everything relative to this alternate root " + "directory.") + cmd_opts.add_option( + '--prefix', + dest='prefix_path', + metavar='dir', + default=None, + help="Installation prefix where lib, bin and other top-level " + "folders are placed") + + cmd_opts.add_option(cmdoptions.build_dir()) + + cmd_opts.add_option(cmdoptions.src()) + + cmd_opts.add_option( + '-U', '--upgrade', + dest='upgrade', + action='store_true', + help='Upgrade all specified packages to the newest available ' + 'version. The handling of dependencies depends on the ' + 'upgrade-strategy used.' + ) + + cmd_opts.add_option( + '--upgrade-strategy', + dest='upgrade_strategy', + default='only-if-needed', + choices=['only-if-needed', 'eager'], + help='Determines how dependency upgrading should be handled ' + '[default: %default]. ' + '"eager" - dependencies are upgraded regardless of ' + 'whether the currently installed version satisfies the ' + 'requirements of the upgraded package(s). ' + '"only-if-needed" - are upgraded only when they do not ' + 'satisfy the requirements of the upgraded package(s).' + ) + + cmd_opts.add_option( + '--force-reinstall', + dest='force_reinstall', + action='store_true', + help='Reinstall all packages even if they are already ' + 'up-to-date.') + + cmd_opts.add_option( + '-I', '--ignore-installed', + dest='ignore_installed', + action='store_true', + help='Ignore the installed packages (reinstalling instead).') + + cmd_opts.add_option(cmdoptions.ignore_requires_python()) + cmd_opts.add_option(cmdoptions.no_build_isolation()) + + cmd_opts.add_option(cmdoptions.install_options()) + cmd_opts.add_option(cmdoptions.global_options()) + + cmd_opts.add_option( + "--compile", + action="store_true", + dest="compile", + default=True, + help="Compile Python source files to bytecode", + ) + + cmd_opts.add_option( + "--no-compile", + action="store_false", + dest="compile", + help="Do not compile Python source files to bytecode", + ) + + cmd_opts.add_option( + "--no-warn-script-location", + action="store_false", + dest="warn_script_location", + default=True, + help="Do not warn when installing scripts outside PATH", + ) + cmd_opts.add_option( + "--no-warn-conflicts", + action="store_false", + dest="warn_about_conflicts", + default=True, + help="Do not warn about broken dependencies", + ) + + cmd_opts.add_option(cmdoptions.no_binary()) + cmd_opts.add_option(cmdoptions.only_binary()) + cmd_opts.add_option(cmdoptions.no_clean()) + cmd_opts.add_option(cmdoptions.require_hashes()) + cmd_opts.add_option(cmdoptions.progress_bar()) + + index_opts = cmdoptions.make_option_group( + cmdoptions.index_group, + self.parser, + ) + + self.parser.insert_option_group(0, index_opts) + self.parser.insert_option_group(0, cmd_opts) + + def run(self, options, args): + cmdoptions.check_install_build_global(options) + + upgrade_strategy = "to-satisfy-only" + if options.upgrade: + upgrade_strategy = options.upgrade_strategy + + if options.build_dir: + options.build_dir = os.path.abspath(options.build_dir) + + options.src_dir = os.path.abspath(options.src_dir) + install_options = options.install_options or [] + if options.use_user_site: + if options.prefix_path: + raise CommandError( + "Can not combine '--user' and '--prefix' as they imply " + "different installation locations" + ) + if virtualenv_no_global(): + raise InstallationError( + "Can not perform a '--user' install. User site-packages " + "are not visible in this virtualenv." + ) + install_options.append('--user') + install_options.append('--prefix=') + + target_temp_dir = TempDirectory(kind="target") + if options.target_dir: + options.ignore_installed = True + options.target_dir = os.path.abspath(options.target_dir) + if (os.path.exists(options.target_dir) and not + os.path.isdir(options.target_dir)): + raise CommandError( + "Target path exists but is not a directory, will not " + "continue." + ) + + # Create a target directory for using with the target option + target_temp_dir.create() + install_options.append('--home=' + target_temp_dir.path) + + global_options = options.global_options or [] + + with self._build_session(options) as session: + finder = self._build_package_finder(options, session) + build_delete = (not (options.no_clean or options.build_dir)) + wheel_cache = WheelCache(options.cache_dir, options.format_control) + + if options.cache_dir and not check_path_owner(options.cache_dir): + logger.warning( + "The directory '%s' or its parent directory is not owned " + "by the current user and caching wheels has been " + "disabled. check the permissions and owner of that " + "directory. If executing pip with sudo, you may want " + "sudo's -H flag.", + options.cache_dir, + ) + options.cache_dir = None + + with TempDirectory( + options.build_dir, delete=build_delete, kind="install" + ) as directory: + requirement_set = RequirementSet( + require_hashes=options.require_hashes, + ) + + try: + self.populate_requirement_set( + requirement_set, args, options, finder, session, + self.name, wheel_cache + ) + preparer = RequirementPreparer( + build_dir=directory.path, + src_dir=options.src_dir, + download_dir=None, + wheel_download_dir=None, + progress_bar=options.progress_bar, + build_isolation=options.build_isolation, + ) + + resolver = Resolver( + preparer=preparer, + finder=finder, + session=session, + wheel_cache=wheel_cache, + use_user_site=options.use_user_site, + upgrade_strategy=upgrade_strategy, + force_reinstall=options.force_reinstall, + ignore_dependencies=options.ignore_dependencies, + ignore_requires_python=options.ignore_requires_python, + ignore_installed=options.ignore_installed, + isolated=options.isolated_mode, + ) + resolver.resolve(requirement_set) + + # If caching is disabled or wheel is not installed don't + # try to build wheels. + if wheel and options.cache_dir: + # build wheels before install. + wb = WheelBuilder( + finder, preparer, wheel_cache, + build_options=[], global_options=[], + ) + # Ignore the result: a failed wheel will be + # installed from the sdist/vcs whatever. + wb.build( + requirement_set.requirements.values(), + session=session, autobuilding=True + ) + + to_install = resolver.get_installation_order( + requirement_set + ) + + # Consistency Checking of the package set we're installing. + should_warn_about_conflicts = ( + not options.ignore_dependencies and + options.warn_about_conflicts + ) + if should_warn_about_conflicts: + self._warn_about_conflicts(to_install) + + # Don't warn about script install locations if + # --target has been specified + warn_script_location = options.warn_script_location + if options.target_dir: + warn_script_location = False + + installed = install_given_reqs( + to_install, + install_options, + global_options, + root=options.root_path, + home=target_temp_dir.path, + prefix=options.prefix_path, + pycompile=options.compile, + warn_script_location=warn_script_location, + use_user_site=options.use_user_site, + ) + + possible_lib_locations = get_lib_location_guesses( + user=options.use_user_site, + home=target_temp_dir.path, + root=options.root_path, + prefix=options.prefix_path, + isolated=options.isolated_mode, + ) + reqs = sorted(installed, key=operator.attrgetter('name')) + items = [] + for req in reqs: + item = req.name + try: + installed_version = get_installed_version( + req.name, possible_lib_locations + ) + if installed_version: + item += '-' + installed_version + except Exception: + pass + items.append(item) + installed = ' '.join(items) + if installed: + logger.info('Successfully installed %s', installed) + except EnvironmentError as error: + show_traceback = (self.verbosity >= 1) + + message = create_env_error_message( + error, show_traceback, options.use_user_site, + ) + logger.error(message, exc_info=show_traceback) + + return ERROR + except PreviousBuildDirError: + options.no_clean = True + raise + finally: + # Clean up + if not options.no_clean: + requirement_set.cleanup_files() + wheel_cache.cleanup() + + if options.target_dir: + self._handle_target_dir( + options.target_dir, target_temp_dir, options.upgrade + ) + return requirement_set + + def _handle_target_dir(self, target_dir, target_temp_dir, upgrade): + ensure_dir(target_dir) + + # Checking both purelib and platlib directories for installed + # packages to be moved to target directory + lib_dir_list = [] + + with target_temp_dir: + # Checking both purelib and platlib directories for installed + # packages to be moved to target directory + scheme = distutils_scheme('', home=target_temp_dir.path) + purelib_dir = scheme['purelib'] + platlib_dir = scheme['platlib'] + data_dir = scheme['data'] + + if os.path.exists(purelib_dir): + lib_dir_list.append(purelib_dir) + if os.path.exists(platlib_dir) and platlib_dir != purelib_dir: + lib_dir_list.append(platlib_dir) + if os.path.exists(data_dir): + lib_dir_list.append(data_dir) + + for lib_dir in lib_dir_list: + for item in os.listdir(lib_dir): + if lib_dir == data_dir: + ddir = os.path.join(data_dir, item) + if any(s.startswith(ddir) for s in lib_dir_list[:-1]): + continue + target_item_dir = os.path.join(target_dir, item) + if os.path.exists(target_item_dir): + if not upgrade: + logger.warning( + 'Target directory %s already exists. Specify ' + '--upgrade to force replacement.', + target_item_dir + ) + continue + if os.path.islink(target_item_dir): + logger.warning( + 'Target directory %s already exists and is ' + 'a link. Pip will not automatically replace ' + 'links, please remove if replacement is ' + 'desired.', + target_item_dir + ) + continue + if os.path.isdir(target_item_dir): + shutil.rmtree(target_item_dir) + else: + os.remove(target_item_dir) + + shutil.move( + os.path.join(lib_dir, item), + target_item_dir + ) + + def _warn_about_conflicts(self, to_install): + package_set, _dep_info = check_install_conflicts(to_install) + missing, conflicting = _dep_info + + # NOTE: There is some duplication here from pip check + for project_name in missing: + version = package_set[project_name][0] + for dependency in missing[project_name]: + logger.critical( + "%s %s requires %s, which is not installed.", + project_name, version, dependency[1], + ) + + for project_name in conflicting: + version = package_set[project_name][0] + for dep_name, dep_version, req in conflicting[project_name]: + logger.critical( + "%s %s has requirement %s, but you'll have %s %s which is " + "incompatible.", + project_name, version, req, dep_name, dep_version, + ) + + +def get_lib_location_guesses(*args, **kwargs): + scheme = distutils_scheme('', *args, **kwargs) + return [scheme['purelib'], scheme['platlib']] + + +def create_env_error_message(error, show_traceback, using_user_site): + """Format an error message for an EnvironmentError + + It may occur anytime during the execution of the install command. + """ + parts = [] + + # Mention the error if we are not going to show a traceback + parts.append("Could not install packages due to an EnvironmentError") + if not show_traceback: + parts.append(": ") + parts.append(str(error)) + else: + parts.append(".") + + # Spilt the error indication from a helper message (if any) + parts[-1] += "\n" + + # Suggest useful actions to the user: + # (1) using user site-packages or (2) verifying the permissions + if error.errno == errno.EACCES: + user_option_part = "Consider using the `--user` option" + permissions_part = "Check the permissions" + + if not using_user_site: + parts.extend([ + user_option_part, " or ", + permissions_part.lower(), + ]) + else: + parts.append(permissions_part) + parts.append(".\n") + + return "".join(parts).strip() + "\n" diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/list.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/list.py new file mode 100644 index 00000000..09f633f3 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/list.py @@ -0,0 +1,343 @@ +from __future__ import absolute_import + +import json +import logging +import warnings + +from pip._vendor import six +from pip._vendor.six.moves import zip_longest + +from pip._internal.basecommand import Command +from pip._internal.cmdoptions import index_group, make_option_group +from pip._internal.exceptions import CommandError +from pip._internal.index import PackageFinder +from pip._internal.utils.deprecation import RemovedInPip11Warning +from pip._internal.utils.misc import ( + dist_is_editable, get_installed_distributions, +) +from pip._internal.utils.packaging import get_installer + +logger = logging.getLogger(__name__) + + +class ListCommand(Command): + """ + List installed packages, including editables. + + Packages are listed in a case-insensitive sorted order. + """ + name = 'list' + usage = """ + %prog [options]""" + summary = 'List installed packages.' + + def __init__(self, *args, **kw): + super(ListCommand, self).__init__(*args, **kw) + + cmd_opts = self.cmd_opts + + cmd_opts.add_option( + '-o', '--outdated', + action='store_true', + default=False, + help='List outdated packages') + cmd_opts.add_option( + '-u', '--uptodate', + action='store_true', + default=False, + help='List uptodate packages') + cmd_opts.add_option( + '-e', '--editable', + action='store_true', + default=False, + help='List editable projects.') + cmd_opts.add_option( + '-l', '--local', + action='store_true', + default=False, + help=('If in a virtualenv that has global access, do not list ' + 'globally-installed packages.'), + ) + self.cmd_opts.add_option( + '--user', + dest='user', + action='store_true', + default=False, + help='Only output packages installed in user-site.') + + cmd_opts.add_option( + '--pre', + action='store_true', + default=False, + help=("Include pre-release and development versions. By default, " + "pip only finds stable versions."), + ) + + cmd_opts.add_option( + '--format', + action='store', + dest='list_format', + default="columns", + choices=('legacy', 'columns', 'freeze', 'json'), + help="Select the output format among: columns (default), freeze, " + "json, or legacy.", + ) + + cmd_opts.add_option( + '--not-required', + action='store_true', + dest='not_required', + help="List packages that are not dependencies of " + "installed packages.", + ) + + cmd_opts.add_option( + '--exclude-editable', + action='store_false', + dest='include_editable', + help='Exclude editable package from output.', + ) + cmd_opts.add_option( + '--include-editable', + action='store_true', + dest='include_editable', + help='Include editable package from output.', + default=True, + ) + index_opts = make_option_group(index_group, self.parser) + + self.parser.insert_option_group(0, index_opts) + self.parser.insert_option_group(0, cmd_opts) + + def _build_package_finder(self, options, index_urls, session): + """ + Create a package finder appropriate to this list command. + """ + return PackageFinder( + find_links=options.find_links, + index_urls=index_urls, + allow_all_prereleases=options.pre, + trusted_hosts=options.trusted_hosts, + process_dependency_links=options.process_dependency_links, + session=session, + ) + + def run(self, options, args): + if options.list_format == "legacy": + warnings.warn( + "The legacy format has been deprecated and will be removed " + "in the future.", + RemovedInPip11Warning, + ) + + if options.outdated and options.uptodate: + raise CommandError( + "Options --outdated and --uptodate cannot be combined.") + + packages = get_installed_distributions( + local_only=options.local, + user_only=options.user, + editables_only=options.editable, + include_editables=options.include_editable, + ) + + if options.outdated: + packages = self.get_outdated(packages, options) + elif options.uptodate: + packages = self.get_uptodate(packages, options) + + if options.not_required: + packages = self.get_not_required(packages, options) + + self.output_package_listing(packages, options) + + def get_outdated(self, packages, options): + return [ + dist for dist in self.iter_packages_latest_infos(packages, options) + if dist.latest_version > dist.parsed_version + ] + + def get_uptodate(self, packages, options): + return [ + dist for dist in self.iter_packages_latest_infos(packages, options) + if dist.latest_version == dist.parsed_version + ] + + def get_not_required(self, packages, options): + dep_keys = set() + for dist in packages: + dep_keys.update(requirement.key for requirement in dist.requires()) + return {pkg for pkg in packages if pkg.key not in dep_keys} + + def iter_packages_latest_infos(self, packages, options): + index_urls = [options.index_url] + options.extra_index_urls + if options.no_index: + logger.debug('Ignoring indexes: %s', ','.join(index_urls)) + index_urls = [] + + dependency_links = [] + for dist in packages: + if dist.has_metadata('dependency_links.txt'): + dependency_links.extend( + dist.get_metadata_lines('dependency_links.txt'), + ) + + with self._build_session(options) as session: + finder = self._build_package_finder(options, index_urls, session) + finder.add_dependency_links(dependency_links) + + for dist in packages: + typ = 'unknown' + all_candidates = finder.find_all_candidates(dist.key) + if not options.pre: + # Remove prereleases + all_candidates = [candidate for candidate in all_candidates + if not candidate.version.is_prerelease] + + if not all_candidates: + continue + best_candidate = max(all_candidates, + key=finder._candidate_sort_key) + remote_version = best_candidate.version + if best_candidate.location.is_wheel: + typ = 'wheel' + else: + typ = 'sdist' + # This is dirty but makes the rest of the code much cleaner + dist.latest_version = remote_version + dist.latest_filetype = typ + yield dist + + def output_legacy(self, dist, options): + if options.verbose >= 1: + return '%s (%s, %s, %s)' % ( + dist.project_name, + dist.version, + dist.location, + get_installer(dist), + ) + elif dist_is_editable(dist): + return '%s (%s, %s)' % ( + dist.project_name, + dist.version, + dist.location, + ) + else: + return '%s (%s)' % (dist.project_name, dist.version) + + def output_legacy_latest(self, dist, options): + return '%s - Latest: %s [%s]' % ( + self.output_legacy(dist, options), + dist.latest_version, + dist.latest_filetype, + ) + + def output_package_listing(self, packages, options): + packages = sorted( + packages, + key=lambda dist: dist.project_name.lower(), + ) + if options.list_format == 'columns' and packages: + data, header = format_for_columns(packages, options) + self.output_package_listing_columns(data, header) + elif options.list_format == 'freeze': + for dist in packages: + if options.verbose >= 1: + logger.info("%s==%s (%s)", dist.project_name, + dist.version, dist.location) + else: + logger.info("%s==%s", dist.project_name, dist.version) + elif options.list_format == 'json': + logger.info(format_for_json(packages, options)) + elif options.list_format == "legacy": + for dist in packages: + if options.outdated: + logger.info(self.output_legacy_latest(dist, options)) + else: + logger.info(self.output_legacy(dist, options)) + + def output_package_listing_columns(self, data, header): + # insert the header first: we need to know the size of column names + if len(data) > 0: + data.insert(0, header) + + pkg_strings, sizes = tabulate(data) + + # Create and add a separator. + if len(data) > 0: + pkg_strings.insert(1, " ".join(map(lambda x: '-' * x, sizes))) + + for val in pkg_strings: + logger.info(val) + + +def tabulate(vals): + # From pfmoore on GitHub: + # https://github.com/pypa/pip/issues/3651#issuecomment-216932564 + assert len(vals) > 0 + + sizes = [0] * max(len(x) for x in vals) + for row in vals: + sizes = [max(s, len(str(c))) for s, c in zip_longest(sizes, row)] + + result = [] + for row in vals: + display = " ".join([str(c).ljust(s) if c is not None else '' + for s, c in zip_longest(sizes, row)]) + result.append(display) + + return result, sizes + + +def format_for_columns(pkgs, options): + """ + Convert the package data into something usable + by output_package_listing_columns. + """ + running_outdated = options.outdated + # Adjust the header for the `pip list --outdated` case. + if running_outdated: + header = ["Package", "Version", "Latest", "Type"] + else: + header = ["Package", "Version"] + + data = [] + if options.verbose >= 1 or any(dist_is_editable(x) for x in pkgs): + header.append("Location") + if options.verbose >= 1: + header.append("Installer") + + for proj in pkgs: + # if we're working on the 'outdated' list, separate out the + # latest_version and type + row = [proj.project_name, proj.version] + + if running_outdated: + row.append(proj.latest_version) + row.append(proj.latest_filetype) + + if options.verbose >= 1 or dist_is_editable(proj): + row.append(proj.location) + if options.verbose >= 1: + row.append(get_installer(proj)) + + data.append(row) + + return data, header + + +def format_for_json(packages, options): + data = [] + for dist in packages: + info = { + 'name': dist.project_name, + 'version': six.text_type(dist.version), + } + if options.verbose >= 1: + info['location'] = dist.location + info['installer'] = get_installer(dist) + if options.outdated: + info['latest_version'] = six.text_type(dist.latest_version) + info['latest_filetype'] = dist.latest_filetype + data.append(info) + return json.dumps(data) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/search.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/search.py new file mode 100644 index 00000000..3abdf597 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/search.py @@ -0,0 +1,135 @@ +from __future__ import absolute_import + +import logging +import sys +import textwrap +from collections import OrderedDict + +from pip._vendor import pkg_resources +from pip._vendor.packaging.version import parse as parse_version +# NOTE: XMLRPC Client is not annotated in typeshed as on 2017-07-17, which is +# why we ignore the type on this import +from pip._vendor.six.moves import xmlrpc_client # type: ignore + +from pip._internal.basecommand import SUCCESS, Command +from pip._internal.compat import get_terminal_size +from pip._internal.download import PipXmlrpcTransport +from pip._internal.exceptions import CommandError +from pip._internal.models import PyPI +from pip._internal.status_codes import NO_MATCHES_FOUND +from pip._internal.utils.logging import indent_log + +logger = logging.getLogger(__name__) + + +class SearchCommand(Command): + """Search for PyPI packages whose name or summary contains .""" + name = 'search' + usage = """ + %prog [options] """ + summary = 'Search PyPI for packages.' + ignore_require_venv = True + + def __init__(self, *args, **kw): + super(SearchCommand, self).__init__(*args, **kw) + self.cmd_opts.add_option( + '-i', '--index', + dest='index', + metavar='URL', + default=PyPI.pypi_url, + help='Base URL of Python Package Index (default %default)') + + self.parser.insert_option_group(0, self.cmd_opts) + + def run(self, options, args): + if not args: + raise CommandError('Missing required argument (search query).') + query = args + pypi_hits = self.search(query, options) + hits = transform_hits(pypi_hits) + + terminal_width = None + if sys.stdout.isatty(): + terminal_width = get_terminal_size()[0] + + print_results(hits, terminal_width=terminal_width) + if pypi_hits: + return SUCCESS + return NO_MATCHES_FOUND + + def search(self, query, options): + index_url = options.index + with self._build_session(options) as session: + transport = PipXmlrpcTransport(index_url, session) + pypi = xmlrpc_client.ServerProxy(index_url, transport) + hits = pypi.search({'name': query, 'summary': query}, 'or') + return hits + + +def transform_hits(hits): + """ + The list from pypi is really a list of versions. We want a list of + packages with the list of versions stored inline. This converts the + list from pypi into one we can use. + """ + packages = OrderedDict() + for hit in hits: + name = hit['name'] + summary = hit['summary'] + version = hit['version'] + + if name not in packages.keys(): + packages[name] = { + 'name': name, + 'summary': summary, + 'versions': [version], + } + else: + packages[name]['versions'].append(version) + + # if this is the highest version, replace summary and score + if version == highest_version(packages[name]['versions']): + packages[name]['summary'] = summary + + return list(packages.values()) + + +def print_results(hits, name_column_width=None, terminal_width=None): + if not hits: + return + if name_column_width is None: + name_column_width = max([ + len(hit['name']) + len(highest_version(hit.get('versions', ['-']))) + for hit in hits + ]) + 4 + + installed_packages = [p.project_name for p in pkg_resources.working_set] + for hit in hits: + name = hit['name'] + summary = hit['summary'] or '' + latest = highest_version(hit.get('versions', ['-'])) + if terminal_width is not None: + target_width = terminal_width - name_column_width - 5 + if target_width > 10: + # wrap and indent summary to fit terminal + summary = textwrap.wrap(summary, target_width) + summary = ('\n' + ' ' * (name_column_width + 3)).join(summary) + + line = '%-*s - %s' % (name_column_width, + '%s (%s)' % (name, latest), summary) + try: + logger.info(line) + if name in installed_packages: + dist = pkg_resources.get_distribution(name) + with indent_log(): + if dist.version == latest: + logger.info('INSTALLED: %s (latest)', dist.version) + else: + logger.info('INSTALLED: %s', dist.version) + logger.info('LATEST: %s', latest) + except UnicodeEncodeError: + pass + + +def highest_version(versions): + return max(versions, key=parse_version) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/show.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/show.py new file mode 100644 index 00000000..1a8d9681 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/show.py @@ -0,0 +1,164 @@ +from __future__ import absolute_import + +import logging +import os +from email.parser import FeedParser # type: ignore + +from pip._vendor import pkg_resources +from pip._vendor.packaging.utils import canonicalize_name + +from pip._internal.basecommand import Command +from pip._internal.status_codes import ERROR, SUCCESS + +logger = logging.getLogger(__name__) + + +class ShowCommand(Command): + """Show information about one or more installed packages.""" + name = 'show' + usage = """ + %prog [options] ...""" + summary = 'Show information about installed packages.' + ignore_require_venv = True + + def __init__(self, *args, **kw): + super(ShowCommand, self).__init__(*args, **kw) + self.cmd_opts.add_option( + '-f', '--files', + dest='files', + action='store_true', + default=False, + help='Show the full list of installed files for each package.') + + self.parser.insert_option_group(0, self.cmd_opts) + + def run(self, options, args): + if not args: + logger.warning('ERROR: Please provide a package name or names.') + return ERROR + query = args + + results = search_packages_info(query) + if not print_results( + results, list_files=options.files, verbose=options.verbose): + return ERROR + return SUCCESS + + +def search_packages_info(query): + """ + Gather details from installed distributions. Print distribution name, + version, location, and installed files. Installed files requires a + pip generated 'installed-files.txt' in the distributions '.egg-info' + directory. + """ + installed = {} + for p in pkg_resources.working_set: + installed[canonicalize_name(p.project_name)] = p + + query_names = [canonicalize_name(name) for name in query] + + for dist in [installed[pkg] for pkg in query_names if pkg in installed]: + package = { + 'name': dist.project_name, + 'version': dist.version, + 'location': dist.location, + 'requires': [dep.project_name for dep in dist.requires()], + } + file_list = None + metadata = None + if isinstance(dist, pkg_resources.DistInfoDistribution): + # RECORDs should be part of .dist-info metadatas + if dist.has_metadata('RECORD'): + lines = dist.get_metadata_lines('RECORD') + paths = [l.split(',')[0] for l in lines] + paths = [os.path.join(dist.location, p) for p in paths] + file_list = [os.path.relpath(p, dist.location) for p in paths] + + if dist.has_metadata('METADATA'): + metadata = dist.get_metadata('METADATA') + else: + # Otherwise use pip's log for .egg-info's + if dist.has_metadata('installed-files.txt'): + paths = dist.get_metadata_lines('installed-files.txt') + paths = [os.path.join(dist.egg_info, p) for p in paths] + file_list = [os.path.relpath(p, dist.location) for p in paths] + + if dist.has_metadata('PKG-INFO'): + metadata = dist.get_metadata('PKG-INFO') + + if dist.has_metadata('entry_points.txt'): + entry_points = dist.get_metadata_lines('entry_points.txt') + package['entry_points'] = entry_points + + if dist.has_metadata('INSTALLER'): + for line in dist.get_metadata_lines('INSTALLER'): + if line.strip(): + package['installer'] = line.strip() + break + + # @todo: Should pkg_resources.Distribution have a + # `get_pkg_info` method? + feed_parser = FeedParser() + feed_parser.feed(metadata) + pkg_info_dict = feed_parser.close() + for key in ('metadata-version', 'summary', + 'home-page', 'author', 'author-email', 'license'): + package[key] = pkg_info_dict.get(key) + + # It looks like FeedParser cannot deal with repeated headers + classifiers = [] + for line in metadata.splitlines(): + if line.startswith('Classifier: '): + classifiers.append(line[len('Classifier: '):]) + package['classifiers'] = classifiers + + if file_list: + package['files'] = sorted(file_list) + yield package + + +def print_results(distributions, list_files=False, verbose=False): + """ + Print the informations from installed distributions found. + """ + results_printed = False + for i, dist in enumerate(distributions): + results_printed = True + if i > 0: + logger.info("---") + + name = dist.get('name', '') + required_by = [ + pkg.project_name for pkg in pkg_resources.working_set + if name in [required.name for required in pkg.requires()] + ] + + logger.info("Name: %s", name) + logger.info("Version: %s", dist.get('version', '')) + logger.info("Summary: %s", dist.get('summary', '')) + logger.info("Home-page: %s", dist.get('home-page', '')) + logger.info("Author: %s", dist.get('author', '')) + logger.info("Author-email: %s", dist.get('author-email', '')) + logger.info("License: %s", dist.get('license', '')) + logger.info("Location: %s", dist.get('location', '')) + logger.info("Requires: %s", ', '.join(dist.get('requires', []))) + logger.info("Required-by: %s", ', '.join(required_by)) + + if verbose: + logger.info("Metadata-Version: %s", + dist.get('metadata-version', '')) + logger.info("Installer: %s", dist.get('installer', '')) + logger.info("Classifiers:") + for classifier in dist.get('classifiers', []): + logger.info(" %s", classifier) + logger.info("Entry-points:") + for entry in dist.get('entry_points', []): + logger.info(" %s", entry.strip()) + if list_files: + logger.info("Files:") + for line in dist.get('files', []): + logger.info(" %s", line.strip()) + if "files" not in dist: + logger.info("Cannot locate installed-files.txt") + return results_printed diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/uninstall.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/uninstall.py new file mode 100644 index 00000000..7476fa61 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/uninstall.py @@ -0,0 +1,71 @@ +from __future__ import absolute_import + +from pip._vendor.packaging.utils import canonicalize_name + +from pip._internal.basecommand import Command +from pip._internal.exceptions import InstallationError +from pip._internal.req import InstallRequirement, parse_requirements + + +class UninstallCommand(Command): + """ + Uninstall packages. + + pip is able to uninstall most installed packages. Known exceptions are: + + - Pure distutils packages installed with ``python setup.py install``, which + leave behind no metadata to determine what files were installed. + - Script wrappers installed by ``python setup.py develop``. + """ + name = 'uninstall' + usage = """ + %prog [options] ... + %prog [options] -r ...""" + summary = 'Uninstall packages.' + + def __init__(self, *args, **kw): + super(UninstallCommand, self).__init__(*args, **kw) + self.cmd_opts.add_option( + '-r', '--requirement', + dest='requirements', + action='append', + default=[], + metavar='file', + help='Uninstall all the packages listed in the given requirements ' + 'file. This option can be used multiple times.', + ) + self.cmd_opts.add_option( + '-y', '--yes', + dest='yes', + action='store_true', + help="Don't ask for confirmation of uninstall deletions.") + + self.parser.insert_option_group(0, self.cmd_opts) + + def run(self, options, args): + with self._build_session(options) as session: + reqs_to_uninstall = {} + for name in args: + req = InstallRequirement.from_line( + name, isolated=options.isolated_mode, + ) + if req.name: + reqs_to_uninstall[canonicalize_name(req.name)] = req + for filename in options.requirements: + for req in parse_requirements( + filename, + options=options, + session=session): + if req.name: + reqs_to_uninstall[canonicalize_name(req.name)] = req + if not reqs_to_uninstall: + raise InstallationError( + 'You must give at least one requirement to %(name)s (see ' + '"pip help %(name)s")' % dict(name=self.name) + ) + for req in reqs_to_uninstall.values(): + uninstall_pathset = req.uninstall( + auto_confirm=options.yes, verbose=self.verbosity > 0, + ) + if uninstall_pathset: + uninstall_pathset.commit() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/wheel.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/wheel.py new file mode 100644 index 00000000..ac55f91e --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/commands/wheel.py @@ -0,0 +1,179 @@ +# -*- coding: utf-8 -*- +from __future__ import absolute_import + +import logging +import os + +from pip._internal import cmdoptions +from pip._internal.basecommand import RequirementCommand +from pip._internal.cache import WheelCache +from pip._internal.exceptions import CommandError, PreviousBuildDirError +from pip._internal.operations.prepare import RequirementPreparer +from pip._internal.req import RequirementSet +from pip._internal.resolve import Resolver +from pip._internal.utils.temp_dir import TempDirectory +from pip._internal.wheel import WheelBuilder + +logger = logging.getLogger(__name__) + + +class WheelCommand(RequirementCommand): + """ + Build Wheel archives for your requirements and dependencies. + + Wheel is a built-package format, and offers the advantage of not + recompiling your software during every install. For more details, see the + wheel docs: https://wheel.readthedocs.io/en/latest/ + + Requirements: setuptools>=0.8, and wheel. + + 'pip wheel' uses the bdist_wheel setuptools extension from the wheel + package to build individual wheels. + + """ + + name = 'wheel' + usage = """ + %prog [options] ... + %prog [options] -r ... + %prog [options] [-e] ... + %prog [options] [-e] ... + %prog [options] ...""" + + summary = 'Build wheels from your requirements.' + + def __init__(self, *args, **kw): + super(WheelCommand, self).__init__(*args, **kw) + + cmd_opts = self.cmd_opts + + cmd_opts.add_option( + '-w', '--wheel-dir', + dest='wheel_dir', + metavar='dir', + default=os.curdir, + help=("Build wheels into , where the default is the " + "current working directory."), + ) + cmd_opts.add_option(cmdoptions.no_binary()) + cmd_opts.add_option(cmdoptions.only_binary()) + cmd_opts.add_option( + '--build-option', + dest='build_options', + metavar='options', + action='append', + help="Extra arguments to be supplied to 'setup.py bdist_wheel'.", + ) + cmd_opts.add_option(cmdoptions.no_build_isolation()) + cmd_opts.add_option(cmdoptions.constraints()) + cmd_opts.add_option(cmdoptions.editable()) + cmd_opts.add_option(cmdoptions.requirements()) + cmd_opts.add_option(cmdoptions.src()) + cmd_opts.add_option(cmdoptions.ignore_requires_python()) + cmd_opts.add_option(cmdoptions.no_deps()) + cmd_opts.add_option(cmdoptions.build_dir()) + cmd_opts.add_option(cmdoptions.progress_bar()) + + cmd_opts.add_option( + '--global-option', + dest='global_options', + action='append', + metavar='options', + help="Extra global options to be supplied to the setup.py " + "call before the 'bdist_wheel' command.") + + cmd_opts.add_option( + '--pre', + action='store_true', + default=False, + help=("Include pre-release and development versions. By default, " + "pip only finds stable versions."), + ) + + cmd_opts.add_option(cmdoptions.no_clean()) + cmd_opts.add_option(cmdoptions.require_hashes()) + + index_opts = cmdoptions.make_option_group( + cmdoptions.index_group, + self.parser, + ) + + self.parser.insert_option_group(0, index_opts) + self.parser.insert_option_group(0, cmd_opts) + + def run(self, options, args): + cmdoptions.check_install_build_global(options) + + index_urls = [options.index_url] + options.extra_index_urls + if options.no_index: + logger.debug('Ignoring indexes: %s', ','.join(index_urls)) + index_urls = [] + + if options.build_dir: + options.build_dir = os.path.abspath(options.build_dir) + + options.src_dir = os.path.abspath(options.src_dir) + + with self._build_session(options) as session: + finder = self._build_package_finder(options, session) + build_delete = (not (options.no_clean or options.build_dir)) + wheel_cache = WheelCache(options.cache_dir, options.format_control) + + with TempDirectory( + options.build_dir, delete=build_delete, kind="wheel" + ) as directory: + requirement_set = RequirementSet( + require_hashes=options.require_hashes, + ) + + try: + self.populate_requirement_set( + requirement_set, args, options, finder, session, + self.name, wheel_cache + ) + + preparer = RequirementPreparer( + build_dir=directory.path, + src_dir=options.src_dir, + download_dir=None, + wheel_download_dir=options.wheel_dir, + progress_bar=options.progress_bar, + build_isolation=options.build_isolation, + ) + + resolver = Resolver( + preparer=preparer, + finder=finder, + session=session, + wheel_cache=wheel_cache, + use_user_site=False, + upgrade_strategy="to-satisfy-only", + force_reinstall=False, + ignore_dependencies=options.ignore_dependencies, + ignore_requires_python=options.ignore_requires_python, + ignore_installed=True, + isolated=options.isolated_mode, + ) + resolver.resolve(requirement_set) + + # build wheels + wb = WheelBuilder( + finder, preparer, wheel_cache, + build_options=options.build_options or [], + global_options=options.global_options or [], + no_clean=options.no_clean, + ) + wheels_built_successfully = wb.build( + requirement_set.requirements.values(), session=session, + ) + if not wheels_built_successfully: + raise CommandError( + "Failed to build one or more wheels" + ) + except PreviousBuildDirError: + options.no_clean = True + raise + finally: + if not options.no_clean: + requirement_set.cleanup_files() + wheel_cache.cleanup() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/compat.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/compat.py new file mode 100644 index 00000000..4aefd58c --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/compat.py @@ -0,0 +1,235 @@ +"""Stuff that differs in different Python versions and platform +distributions.""" +from __future__ import absolute_import, division + +import codecs +import locale +import logging +import os +import shutil +import sys + +from pip._vendor.six import text_type + +try: + import ipaddress +except ImportError: + try: + from pip._vendor import ipaddress # type: ignore + except ImportError: + import ipaddr as ipaddress # type: ignore + ipaddress.ip_address = ipaddress.IPAddress + ipaddress.ip_network = ipaddress.IPNetwork + + +__all__ = [ + "ipaddress", "uses_pycache", "console_to_str", "native_str", + "get_path_uid", "stdlib_pkgs", "WINDOWS", "samefile", "get_terminal_size", +] + + +logger = logging.getLogger(__name__) + +if sys.version_info >= (3, 4): + uses_pycache = True + from importlib.util import cache_from_source +else: + import imp + + try: + cache_from_source = imp.cache_from_source # type: ignore + except AttributeError: + # does not use __pycache__ + cache_from_source = None + + uses_pycache = cache_from_source is not None + + +if sys.version_info >= (3, 5): + backslashreplace_decode = "backslashreplace" +else: + # In version 3.4 and older, backslashreplace exists + # but does not support use for decoding. + # We implement our own replace handler for this + # situation, so that we can consistently use + # backslash replacement for all versions. + def backslashreplace_decode_fn(err): + raw_bytes = (err.object[i] for i in range(err.start, err.end)) + if sys.version_info[0] == 2: + # Python 2 gave us characters - convert to numeric bytes + raw_bytes = (ord(b) for b in raw_bytes) + return u"".join(u"\\x%x" % c for c in raw_bytes), err.end + codecs.register_error( + "backslashreplace_decode", + backslashreplace_decode_fn, + ) + backslashreplace_decode = "backslashreplace_decode" + + +def console_to_str(data): + """Return a string, safe for output, of subprocess output. + + We assume the data is in the locale preferred encoding. + If it won't decode properly, we warn the user but decode as + best we can. + + We also ensure that the output can be safely written to + standard output without encoding errors. + """ + + # First, get the encoding we assume. This is the preferred + # encoding for the locale, unless that is not found, or + # it is ASCII, in which case assume UTF-8 + encoding = locale.getpreferredencoding() + if (not encoding) or codecs.lookup(encoding).name == "ascii": + encoding = "utf-8" + + # Now try to decode the data - if we fail, warn the user and + # decode with replacement. + try: + s = data.decode(encoding) + except UnicodeDecodeError: + logger.warning( + "Subprocess output does not appear to be encoded as %s", + encoding, + ) + s = data.decode(encoding, errors=backslashreplace_decode) + + # Make sure we can print the output, by encoding it to the output + # encoding with replacement of unencodable characters, and then + # decoding again. + # We use stderr's encoding because it's less likely to be + # redirected and if we don't find an encoding we skip this + # step (on the assumption that output is wrapped by something + # that won't fail). + # The double getattr is to deal with the possibility that we're + # being called in a situation where sys.__stderr__ doesn't exist, + # or doesn't have an encoding attribute. Neither of these cases + # should occur in normal pip use, but there's no harm in checking + # in case people use pip in (unsupported) unusual situations. + output_encoding = getattr(getattr(sys, "__stderr__", None), + "encoding", None) + + if output_encoding: + s = s.encode(output_encoding, errors="backslashreplace") + s = s.decode(output_encoding) + + return s + + +if sys.version_info >= (3,): + def native_str(s, replace=False): + if isinstance(s, bytes): + return s.decode('utf-8', 'replace' if replace else 'strict') + return s + +else: + def native_str(s, replace=False): + # Replace is ignored -- unicode to UTF-8 can't fail + if isinstance(s, text_type): + return s.encode('utf-8') + return s + + +def get_path_uid(path): + """ + Return path's uid. + + Does not follow symlinks: + https://github.com/pypa/pip/pull/935#discussion_r5307003 + + Placed this function in compat due to differences on AIX and + Jython, that should eventually go away. + + :raises OSError: When path is a symlink or can't be read. + """ + if hasattr(os, 'O_NOFOLLOW'): + fd = os.open(path, os.O_RDONLY | os.O_NOFOLLOW) + file_uid = os.fstat(fd).st_uid + os.close(fd) + else: # AIX and Jython + # WARNING: time of check vulnerability, but best we can do w/o NOFOLLOW + if not os.path.islink(path): + # older versions of Jython don't have `os.fstat` + file_uid = os.stat(path).st_uid + else: + # raise OSError for parity with os.O_NOFOLLOW above + raise OSError( + "%s is a symlink; Will not return uid for symlinks" % path + ) + return file_uid + + +def expanduser(path): + """ + Expand ~ and ~user constructions. + + Includes a workaround for http://bugs.python.org/issue14768 + """ + expanded = os.path.expanduser(path) + if path.startswith('~/') and expanded.startswith('//'): + expanded = expanded[1:] + return expanded + + +# packages in the stdlib that may have installation metadata, but should not be +# considered 'installed'. this theoretically could be determined based on +# dist.location (py27:`sysconfig.get_paths()['stdlib']`, +# py26:sysconfig.get_config_vars('LIBDEST')), but fear platform variation may +# make this ineffective, so hard-coding +stdlib_pkgs = {"python", "wsgiref", "argparse"} + + +# windows detection, covers cpython and ironpython +WINDOWS = (sys.platform.startswith("win") or + (sys.platform == 'cli' and os.name == 'nt')) + + +def samefile(file1, file2): + """Provide an alternative for os.path.samefile on Windows/Python2""" + if hasattr(os.path, 'samefile'): + return os.path.samefile(file1, file2) + else: + path1 = os.path.normcase(os.path.abspath(file1)) + path2 = os.path.normcase(os.path.abspath(file2)) + return path1 == path2 + + +if hasattr(shutil, 'get_terminal_size'): + def get_terminal_size(): + """ + Returns a tuple (x, y) representing the width(x) and the height(y) + in characters of the terminal window. + """ + return tuple(shutil.get_terminal_size()) +else: + def get_terminal_size(): + """ + Returns a tuple (x, y) representing the width(x) and the height(y) + in characters of the terminal window. + """ + def ioctl_GWINSZ(fd): + try: + import fcntl + import termios + import struct + cr = struct.unpack_from( + 'hh', + fcntl.ioctl(fd, termios.TIOCGWINSZ, '12345678') + ) + except: + return None + if cr == (0, 0): + return None + return cr + cr = ioctl_GWINSZ(0) or ioctl_GWINSZ(1) or ioctl_GWINSZ(2) + if not cr: + try: + fd = os.open(os.ctermid(), os.O_RDONLY) + cr = ioctl_GWINSZ(fd) + os.close(fd) + except: + pass + if not cr: + cr = (os.environ.get('LINES', 25), os.environ.get('COLUMNS', 80)) + return int(cr[1]), int(cr[0]) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/configuration.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/configuration.py new file mode 100644 index 00000000..b15e3d5b --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/configuration.py @@ -0,0 +1,378 @@ +"""Configuration management setup + +Some terminology: +- name + As written in config files. +- value + Value associated with a name +- key + Name combined with it's section (section.name) +- variant + A single word describing where the configuration key-value pair came from +""" + +import locale +import logging +import os + +from pip._vendor import six +from pip._vendor.six.moves import configparser + +from pip._internal.exceptions import ConfigurationError +from pip._internal.locations import ( + legacy_config_file, new_config_file, running_under_virtualenv, + site_config_files, venv_config_file, +) +from pip._internal.utils.misc import ensure_dir, enum +from pip._internal.utils.typing import MYPY_CHECK_RUNNING + +if MYPY_CHECK_RUNNING: + from typing import Any, Dict, Iterable, List, NewType, Optional, Tuple + + RawConfigParser = configparser.RawConfigParser # Shorthand + Kind = NewType("Kind", str) + +logger = logging.getLogger(__name__) + + +# NOTE: Maybe use the optionx attribute to normalize keynames. +def _normalize_name(name): + # type: (str) -> str + """Make a name consistent regardless of source (environment or file) + """ + name = name.lower().replace('_', '-') + if name.startswith('--'): + name = name[2:] # only prefer long opts + return name + + +def _disassemble_key(name): + # type: (str) -> List[str] + return name.split(".", 1) + + +# The kinds of configurations there are. +kinds = enum( + USER="user", # User Specific + GLOBAL="global", # System Wide + VENV="venv", # Virtual Environment Specific + ENV="env", # from PIP_CONFIG_FILE + ENV_VAR="env-var", # from Environment Variables +) + + +class Configuration(object): + """Handles management of configuration. + + Provides an interface to accessing and managing configuration files. + + This class converts provides an API that takes "section.key-name" style + keys and stores the value associated with it as "key-name" under the + section "section". + + This allows for a clean interface wherein the both the section and the + key-name are preserved in an easy to manage form in the configuration files + and the data stored is also nice. + """ + + def __init__(self, isolated, load_only=None): + # type: (bool, Kind) -> None + super(Configuration, self).__init__() + + _valid_load_only = [kinds.USER, kinds.GLOBAL, kinds.VENV, None] + if load_only not in _valid_load_only: + raise ConfigurationError( + "Got invalid value for load_only - should be one of {}".format( + ", ".join(map(repr, _valid_load_only[:-1])) + ) + ) + self.isolated = isolated # type: bool + self.load_only = load_only # type: Optional[Kind] + + # The order here determines the override order. + self._override_order = [ + kinds.GLOBAL, kinds.USER, kinds.VENV, kinds.ENV, kinds.ENV_VAR + ] + + self._ignore_env_names = ["version", "help"] + + # Because we keep track of where we got the data from + self._parsers = { + variant: [] for variant in self._override_order + } # type: Dict[Kind, List[Tuple[str, RawConfigParser]]] + self._config = { + variant: {} for variant in self._override_order + } # type: Dict[Kind, Dict[str, Any]] + self._modified_parsers = [] # type: List[Tuple[str, RawConfigParser]] + + def load(self): + # type: () -> None + """Loads configuration from configuration files and environment + """ + self._load_config_files() + if not self.isolated: + self._load_environment_vars() + + def get_file_to_edit(self): + # type: () -> Optional[str] + """Returns the file with highest priority in configuration + """ + assert self.load_only is not None, \ + "Need to be specified a file to be editing" + + try: + return self._get_parser_to_modify()[0] + except IndexError: + return None + + def items(self): + # type: () -> Iterable[Tuple[str, Any]] + """Returns key-value pairs like dict.items() representing the loaded + configuration + """ + return self._dictionary.items() + + def get_value(self, key): + # type: (str) -> Any + """Get a value from the configuration. + """ + try: + return self._dictionary[key] + except KeyError: + raise ConfigurationError("No such key - {}".format(key)) + + def set_value(self, key, value): + # type: (str, Any) -> None + """Modify a value in the configuration. + """ + self._ensure_have_load_only() + + fname, parser = self._get_parser_to_modify() + + if parser is not None: + section, name = _disassemble_key(key) + + # Modify the parser and the configuration + if not parser.has_section(section): + parser.add_section(section) + parser.set(section, name, value) + + self._config[self.load_only][key] = value + self._mark_as_modified(fname, parser) + + def unset_value(self, key): + # type: (str) -> None + """Unset a value in the configuration. + """ + self._ensure_have_load_only() + + if key not in self._config[self.load_only]: + raise ConfigurationError("No such key - {}".format(key)) + + fname, parser = self._get_parser_to_modify() + + if parser is not None: + section, name = _disassemble_key(key) + + # Remove the key in the parser + modified_something = False + if parser.has_section(section): + # Returns whether the option was removed or not + modified_something = parser.remove_option(section, name) + + if modified_something: + # name removed from parser, section may now be empty + section_iter = iter(parser.items(section)) + try: + val = six.next(section_iter) + except StopIteration: + val = None + + if val is None: + parser.remove_section(section) + + self._mark_as_modified(fname, parser) + else: + raise ConfigurationError( + "Fatal Internal error [id=1]. Please report as a bug." + ) + + del self._config[self.load_only][key] + + def save(self): + # type: () -> None + """Save the currentin-memory state. + """ + self._ensure_have_load_only() + + for fname, parser in self._modified_parsers: + logger.info("Writing to %s", fname) + + # Ensure directory exists. + ensure_dir(os.path.dirname(fname)) + + with open(fname, "w") as f: + parser.write(f) # type: ignore + + # + # Private routines + # + + def _ensure_have_load_only(self): + # type: () -> None + if self.load_only is None: + raise ConfigurationError("Needed a specific file to be modifying.") + logger.debug("Will be working with %s variant only", self.load_only) + + @property + def _dictionary(self): + # type: () -> Dict[str, Any] + """A dictionary representing the loaded configuration. + """ + # NOTE: Dictionaries are not populated if not loaded. So, conditionals + # are not needed here. + retval = {} + + for variant in self._override_order: + retval.update(self._config[variant]) + + return retval + + def _load_config_files(self): + # type: () -> None + """Loads configuration from configuration files + """ + config_files = dict(self._iter_config_files()) + if config_files[kinds.ENV][0:1] == [os.devnull]: + logger.debug( + "Skipping loading configuration files due to " + "environment's PIP_CONFIG_FILE being os.devnull" + ) + return + + for variant, files in config_files.items(): + for fname in files: + # If there's specific variant set in `load_only`, load only + # that variant, not the others. + if self.load_only is not None and variant != self.load_only: + logger.debug( + "Skipping file '%s' (variant: %s)", fname, variant + ) + continue + + parser = self._load_file(variant, fname) + + # Keeping track of the parsers used + self._parsers[variant].append((fname, parser)) + + def _load_file(self, variant, fname): + # type: (Kind, str) -> RawConfigParser + logger.debug("For variant '%s', will try loading '%s'", variant, fname) + parser = self._construct_parser(fname) + + for section in parser.sections(): + items = parser.items(section) + self._config[variant].update(self._normalized_keys(section, items)) + + return parser + + def _construct_parser(self, fname): + # type: (str) -> RawConfigParser + parser = configparser.RawConfigParser() + # If there is no such file, don't bother reading it but create the + # parser anyway, to hold the data. + # Doing this is useful when modifying and saving files, where we don't + # need to construct a parser. + if os.path.exists(fname): + try: + parser.read(fname) + except UnicodeDecodeError: + raise ConfigurationError(( + "ERROR: " + "Configuration file contains invalid %s characters.\n" + "Please fix your configuration, located at %s\n" + ) % (locale.getpreferredencoding(False), fname)) + return parser + + def _load_environment_vars(self): + # type: () -> None + """Loads configuration from environment variables + """ + self._config[kinds.ENV_VAR].update( + self._normalized_keys(":env:", self._get_environ_vars()) + ) + + def _normalized_keys(self, section, items): + # type: (str, Iterable[Tuple[str, Any]]) -> Dict[str, Any] + """Normalizes items to construct a dictionary with normalized keys. + + This routine is where the names become keys and are made the same + regardless of source - configuration files or environment. + """ + normalized = {} + for name, val in items: + key = section + "." + _normalize_name(name) + normalized[key] = val + return normalized + + def _get_environ_vars(self): + # type: () -> Iterable[Tuple[str, str]] + """Returns a generator with all environmental vars with prefix PIP_""" + for key, val in os.environ.items(): + should_be_yielded = ( + key.startswith("PIP_") and + key[4:].lower() not in self._ignore_env_names + ) + if should_be_yielded: + yield key[4:].lower(), val + + # XXX: This is patched in the tests. + def _iter_config_files(self): + # type: () -> Iterable[Tuple[Kind, List[str]]] + """Yields variant and configuration files associated with it. + + This should be treated like items of a dictionary. + """ + # SMELL: Move the conditions out of this function + + # environment variables have the lowest priority + config_file = os.environ.get('PIP_CONFIG_FILE', None) + if config_file is not None: + yield kinds.ENV, [config_file] + else: + yield kinds.ENV, [] + + # at the base we have any global configuration + yield kinds.GLOBAL, list(site_config_files) + + # per-user configuration next + should_load_user_config = not self.isolated and not ( + config_file and os.path.exists(config_file) + ) + if should_load_user_config: + # The legacy config file is overridden by the new config file + yield kinds.USER, [legacy_config_file, new_config_file] + + # finally virtualenv configuration first trumping others + if running_under_virtualenv(): + yield kinds.VENV, [venv_config_file] + + def _get_parser_to_modify(self): + # type: () -> Tuple[str, RawConfigParser] + # Determine which parser to modify + parsers = self._parsers[self.load_only] + if not parsers: + # This should not happen if everything works correctly. + raise ConfigurationError( + "Fatal Internal error [id=2]. Please report as a bug." + ) + + # Use the highest priority parser. + return parsers[-1] + + # XXX: This is patched in the tests. + def _mark_as_modified(self, fname, parser): + # type: (str, RawConfigParser) -> None + file_parser_tuple = (fname, parser) + if file_parser_tuple not in self._modified_parsers: + self._modified_parsers.append(file_parser_tuple) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/download.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/download.py new file mode 100644 index 00000000..06d72019 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/download.py @@ -0,0 +1,922 @@ +from __future__ import absolute_import + +import cgi +import email.utils +import getpass +import json +import logging +import mimetypes +import os +import platform +import re +import shutil +import sys + +from pip._vendor import requests, six, urllib3 +from pip._vendor.cachecontrol import CacheControlAdapter +from pip._vendor.cachecontrol.caches import FileCache +from pip._vendor.lockfile import LockError +from pip._vendor.requests.adapters import BaseAdapter, HTTPAdapter +from pip._vendor.requests.auth import AuthBase, HTTPBasicAuth +from pip._vendor.requests.models import CONTENT_CHUNK_SIZE, Response +from pip._vendor.requests.structures import CaseInsensitiveDict +from pip._vendor.requests.utils import get_netrc_auth +# NOTE: XMLRPC Client is not annotated in typeshed as on 2017-07-17, which is +# why we ignore the type on this import +from pip._vendor.six.moves import xmlrpc_client # type: ignore +from pip._vendor.six.moves.urllib import parse as urllib_parse +from pip._vendor.six.moves.urllib import request as urllib_request +from pip._vendor.six.moves.urllib.parse import unquote as urllib_unquote +from pip._vendor.urllib3.util import IS_PYOPENSSL + +import pip +from pip._internal.compat import WINDOWS +from pip._internal.exceptions import HashMismatch, InstallationError +from pip._internal.locations import write_delete_marker_file +from pip._internal.models import PyPI +from pip._internal.utils.encoding import auto_decode +from pip._internal.utils.filesystem import check_path_owner +from pip._internal.utils.glibc import libc_ver +from pip._internal.utils.logging import indent_log +from pip._internal.utils.misc import ( + ARCHIVE_EXTENSIONS, ask_path_exists, backup_dir, call_subprocess, consume, + display_path, format_size, get_installed_version, rmtree, splitext, + unpack_file, +) +from pip._internal.utils.setuptools_build import SETUPTOOLS_SHIM +from pip._internal.utils.temp_dir import TempDirectory +from pip._internal.utils.ui import DownloadProgressProvider +from pip._internal.vcs import vcs + +try: + import ssl # noqa +except ImportError: + ssl = None + +HAS_TLS = (ssl is not None) or IS_PYOPENSSL + +__all__ = ['get_file_content', + 'is_url', 'url_to_path', 'path_to_url', + 'is_archive_file', 'unpack_vcs_link', + 'unpack_file_url', 'is_vcs_url', 'is_file_url', + 'unpack_http_url', 'unpack_url'] + + +logger = logging.getLogger(__name__) + + +def user_agent(): + """ + Return a string representing the user agent. + """ + data = { + "installer": {"name": "pip", "version": pip.__version__}, + "python": platform.python_version(), + "implementation": { + "name": platform.python_implementation(), + }, + } + + if data["implementation"]["name"] == 'CPython': + data["implementation"]["version"] = platform.python_version() + elif data["implementation"]["name"] == 'PyPy': + if sys.pypy_version_info.releaselevel == 'final': + pypy_version_info = sys.pypy_version_info[:3] + else: + pypy_version_info = sys.pypy_version_info + data["implementation"]["version"] = ".".join( + [str(x) for x in pypy_version_info] + ) + elif data["implementation"]["name"] == 'Jython': + # Complete Guess + data["implementation"]["version"] = platform.python_version() + elif data["implementation"]["name"] == 'IronPython': + # Complete Guess + data["implementation"]["version"] = platform.python_version() + + if sys.platform.startswith("linux"): + from pip._vendor import distro + distro_infos = dict(filter( + lambda x: x[1], + zip(["name", "version", "id"], distro.linux_distribution()), + )) + libc = dict(filter( + lambda x: x[1], + zip(["lib", "version"], libc_ver()), + )) + if libc: + distro_infos["libc"] = libc + if distro_infos: + data["distro"] = distro_infos + + if sys.platform.startswith("darwin") and platform.mac_ver()[0]: + data["distro"] = {"name": "macOS", "version": platform.mac_ver()[0]} + + if platform.system(): + data.setdefault("system", {})["name"] = platform.system() + + if platform.release(): + data.setdefault("system", {})["release"] = platform.release() + + if platform.machine(): + data["cpu"] = platform.machine() + + if HAS_TLS: + data["openssl_version"] = ssl.OPENSSL_VERSION + + setuptools_version = get_installed_version("setuptools") + if setuptools_version is not None: + data["setuptools_version"] = setuptools_version + + return "{data[installer][name]}/{data[installer][version]} {json}".format( + data=data, + json=json.dumps(data, separators=(",", ":"), sort_keys=True), + ) + + +class MultiDomainBasicAuth(AuthBase): + + def __init__(self, prompting=True): + self.prompting = prompting + self.passwords = {} + + def __call__(self, req): + parsed = urllib_parse.urlparse(req.url) + + # Get the netloc without any embedded credentials + netloc = parsed.netloc.rsplit("@", 1)[-1] + + # Set the url of the request to the url without any credentials + req.url = urllib_parse.urlunparse(parsed[:1] + (netloc,) + parsed[2:]) + + # Use any stored credentials that we have for this netloc + username, password = self.passwords.get(netloc, (None, None)) + + # Extract credentials embedded in the url if we have none stored + if username is None: + username, password = self.parse_credentials(parsed.netloc) + + # Get creds from netrc if we still don't have them + if username is None and password is None: + netrc_auth = get_netrc_auth(req.url) + username, password = netrc_auth if netrc_auth else (None, None) + + if username or password: + # Store the username and password + self.passwords[netloc] = (username, password) + + # Send the basic auth with this request + req = HTTPBasicAuth(username or "", password or "")(req) + + # Attach a hook to handle 401 responses + req.register_hook("response", self.handle_401) + + return req + + def handle_401(self, resp, **kwargs): + # We only care about 401 responses, anything else we want to just + # pass through the actual response + if resp.status_code != 401: + return resp + + # We are not able to prompt the user so simply return the response + if not self.prompting: + return resp + + parsed = urllib_parse.urlparse(resp.url) + + # Prompt the user for a new username and password + username = six.moves.input("User for %s: " % parsed.netloc) + password = getpass.getpass("Password: ") + + # Store the new username and password to use for future requests + if username or password: + self.passwords[parsed.netloc] = (username, password) + + # Consume content and release the original connection to allow our new + # request to reuse the same one. + resp.content + resp.raw.release_conn() + + # Add our new username and password to the request + req = HTTPBasicAuth(username or "", password or "")(resp.request) + + # Send our new request + new_resp = resp.connection.send(req, **kwargs) + new_resp.history.append(resp) + + return new_resp + + def parse_credentials(self, netloc): + if "@" in netloc: + userinfo = netloc.rsplit("@", 1)[0] + if ":" in userinfo: + user, pwd = userinfo.split(":", 1) + return (urllib_unquote(user), urllib_unquote(pwd)) + return urllib_unquote(userinfo), None + return None, None + + +class LocalFSAdapter(BaseAdapter): + + def send(self, request, stream=None, timeout=None, verify=None, cert=None, + proxies=None): + pathname = url_to_path(request.url) + + resp = Response() + resp.status_code = 200 + resp.url = request.url + + try: + stats = os.stat(pathname) + except OSError as exc: + resp.status_code = 404 + resp.raw = exc + else: + modified = email.utils.formatdate(stats.st_mtime, usegmt=True) + content_type = mimetypes.guess_type(pathname)[0] or "text/plain" + resp.headers = CaseInsensitiveDict({ + "Content-Type": content_type, + "Content-Length": stats.st_size, + "Last-Modified": modified, + }) + + resp.raw = open(pathname, "rb") + resp.close = resp.raw.close + + return resp + + def close(self): + pass + + +class SafeFileCache(FileCache): + """ + A file based cache which is safe to use even when the target directory may + not be accessible or writable. + """ + + def __init__(self, *args, **kwargs): + super(SafeFileCache, self).__init__(*args, **kwargs) + + # Check to ensure that the directory containing our cache directory + # is owned by the user current executing pip. If it does not exist + # we will check the parent directory until we find one that does exist. + # If it is not owned by the user executing pip then we will disable + # the cache and log a warning. + if not check_path_owner(self.directory): + logger.warning( + "The directory '%s' or its parent directory is not owned by " + "the current user and the cache has been disabled. Please " + "check the permissions and owner of that directory. If " + "executing pip with sudo, you may want sudo's -H flag.", + self.directory, + ) + + # Set our directory to None to disable the Cache + self.directory = None + + def get(self, *args, **kwargs): + # If we don't have a directory, then the cache should be a no-op. + if self.directory is None: + return + + try: + return super(SafeFileCache, self).get(*args, **kwargs) + except (LockError, OSError, IOError): + # We intentionally silence this error, if we can't access the cache + # then we can just skip caching and process the request as if + # caching wasn't enabled. + pass + + def set(self, *args, **kwargs): + # If we don't have a directory, then the cache should be a no-op. + if self.directory is None: + return + + try: + return super(SafeFileCache, self).set(*args, **kwargs) + except (LockError, OSError, IOError): + # We intentionally silence this error, if we can't access the cache + # then we can just skip caching and process the request as if + # caching wasn't enabled. + pass + + def delete(self, *args, **kwargs): + # If we don't have a directory, then the cache should be a no-op. + if self.directory is None: + return + + try: + return super(SafeFileCache, self).delete(*args, **kwargs) + except (LockError, OSError, IOError): + # We intentionally silence this error, if we can't access the cache + # then we can just skip caching and process the request as if + # caching wasn't enabled. + pass + + +class InsecureHTTPAdapter(HTTPAdapter): + + def cert_verify(self, conn, url, verify, cert): + conn.cert_reqs = 'CERT_NONE' + conn.ca_certs = None + + +class PipSession(requests.Session): + + timeout = None + + def __init__(self, *args, **kwargs): + retries = kwargs.pop("retries", 0) + cache = kwargs.pop("cache", None) + insecure_hosts = kwargs.pop("insecure_hosts", []) + + super(PipSession, self).__init__(*args, **kwargs) + + # Attach our User Agent to the request + self.headers["User-Agent"] = user_agent() + + # Attach our Authentication handler to the session + self.auth = MultiDomainBasicAuth() + + # Create our urllib3.Retry instance which will allow us to customize + # how we handle retries. + retries = urllib3.Retry( + # Set the total number of retries that a particular request can + # have. + total=retries, + + # A 503 error from PyPI typically means that the Fastly -> Origin + # connection got interrupted in some way. A 503 error in general + # is typically considered a transient error so we'll go ahead and + # retry it. + # A 500 may indicate transient error in Amazon S3 + # A 520 or 527 - may indicate transient error in CloudFlare + status_forcelist=[500, 503, 520, 527], + + # Add a small amount of back off between failed requests in + # order to prevent hammering the service. + backoff_factor=0.25, + ) + + # We want to _only_ cache responses on securely fetched origins. We do + # this because we can't validate the response of an insecurely fetched + # origin, and we don't want someone to be able to poison the cache and + # require manual eviction from the cache to fix it. + if cache: + secure_adapter = CacheControlAdapter( + cache=SafeFileCache(cache, use_dir_lock=True), + max_retries=retries, + ) + else: + secure_adapter = HTTPAdapter(max_retries=retries) + + # Our Insecure HTTPAdapter disables HTTPS validation. It does not + # support caching (see above) so we'll use it for all http:// URLs as + # well as any https:// host that we've marked as ignoring TLS errors + # for. + insecure_adapter = InsecureHTTPAdapter(max_retries=retries) + + self.mount("https://", secure_adapter) + self.mount("http://", insecure_adapter) + + # Enable file:// urls + self.mount("file://", LocalFSAdapter()) + + # We want to use a non-validating adapter for any requests which are + # deemed insecure. + for host in insecure_hosts: + self.mount("https://{}/".format(host), insecure_adapter) + + def request(self, method, url, *args, **kwargs): + # Allow setting a default timeout on a session + kwargs.setdefault("timeout", self.timeout) + + # Dispatch the actual request + return super(PipSession, self).request(method, url, *args, **kwargs) + + +def get_file_content(url, comes_from=None, session=None): + """Gets the content of a file; it may be a filename, file: URL, or + http: URL. Returns (location, content). Content is unicode. + + :param url: File path or url. + :param comes_from: Origin description of requirements. + :param session: Instance of pip.download.PipSession. + """ + if session is None: + raise TypeError( + "get_file_content() missing 1 required keyword argument: 'session'" + ) + + match = _scheme_re.search(url) + if match: + scheme = match.group(1).lower() + if (scheme == 'file' and comes_from and + comes_from.startswith('http')): + raise InstallationError( + 'Requirements file %s references URL %s, which is local' + % (comes_from, url)) + if scheme == 'file': + path = url.split(':', 1)[1] + path = path.replace('\\', '/') + match = _url_slash_drive_re.match(path) + if match: + path = match.group(1) + ':' + path.split('|', 1)[1] + path = urllib_parse.unquote(path) + if path.startswith('/'): + path = '/' + path.lstrip('/') + url = path + else: + # FIXME: catch some errors + resp = session.get(url) + resp.raise_for_status() + return resp.url, resp.text + try: + with open(url, 'rb') as f: + content = auto_decode(f.read()) + except IOError as exc: + raise InstallationError( + 'Could not open requirements file: %s' % str(exc) + ) + return url, content + + +_scheme_re = re.compile(r'^(http|https|file):', re.I) +_url_slash_drive_re = re.compile(r'/*([a-z])\|', re.I) + + +def is_url(name): + """Returns true if the name looks like a URL""" + if ':' not in name: + return False + scheme = name.split(':', 1)[0].lower() + return scheme in ['http', 'https', 'file', 'ftp'] + vcs.all_schemes + + +def url_to_path(url): + """ + Convert a file: URL to a path. + """ + assert url.startswith('file:'), ( + "You can only turn file: urls into filenames (not %r)" % url) + + _, netloc, path, _, _ = urllib_parse.urlsplit(url) + + # if we have a UNC path, prepend UNC share notation + if netloc: + netloc = '\\\\' + netloc + + path = urllib_request.url2pathname(netloc + path) + return path + + +def path_to_url(path): + """ + Convert a path to a file: URL. The path will be made absolute and have + quoted path parts. + """ + path = os.path.normpath(os.path.abspath(path)) + url = urllib_parse.urljoin('file:', urllib_request.pathname2url(path)) + return url + + +def is_archive_file(name): + """Return True if `name` is a considered as an archive file.""" + ext = splitext(name)[1].lower() + if ext in ARCHIVE_EXTENSIONS: + return True + return False + + +def unpack_vcs_link(link, location): + vcs_backend = _get_used_vcs_backend(link) + vcs_backend.unpack(location) + + +def _get_used_vcs_backend(link): + for backend in vcs.backends: + if link.scheme in backend.schemes: + vcs_backend = backend(link.url) + return vcs_backend + + +def is_vcs_url(link): + return bool(_get_used_vcs_backend(link)) + + +def is_file_url(link): + return link.url.lower().startswith('file:') + + +def is_dir_url(link): + """Return whether a file:// Link points to a directory. + + ``link`` must not have any other scheme but file://. Call is_file_url() + first. + + """ + link_path = url_to_path(link.url_without_fragment) + return os.path.isdir(link_path) + + +def _progress_indicator(iterable, *args, **kwargs): + return iterable + + +def _download_url(resp, link, content_file, hashes, progress_bar): + try: + total_length = int(resp.headers['content-length']) + except (ValueError, KeyError, TypeError): + total_length = 0 + + cached_resp = getattr(resp, "from_cache", False) + if logger.getEffectiveLevel() > logging.INFO: + show_progress = False + elif cached_resp: + show_progress = False + elif total_length > (40 * 1000): + show_progress = True + elif not total_length: + show_progress = True + else: + show_progress = False + + show_url = link.show_url + + def resp_read(chunk_size): + try: + # Special case for urllib3. + for chunk in resp.raw.stream( + chunk_size, + # We use decode_content=False here because we don't + # want urllib3 to mess with the raw bytes we get + # from the server. If we decompress inside of + # urllib3 then we cannot verify the checksum + # because the checksum will be of the compressed + # file. This breakage will only occur if the + # server adds a Content-Encoding header, which + # depends on how the server was configured: + # - Some servers will notice that the file isn't a + # compressible file and will leave the file alone + # and with an empty Content-Encoding + # - Some servers will notice that the file is + # already compressed and will leave the file + # alone and will add a Content-Encoding: gzip + # header + # - Some servers won't notice anything at all and + # will take a file that's already been compressed + # and compress it again and set the + # Content-Encoding: gzip header + # + # By setting this not to decode automatically we + # hope to eliminate problems with the second case. + decode_content=False): + yield chunk + except AttributeError: + # Standard file-like object. + while True: + chunk = resp.raw.read(chunk_size) + if not chunk: + break + yield chunk + + def written_chunks(chunks): + for chunk in chunks: + content_file.write(chunk) + yield chunk + + progress_indicator = _progress_indicator + + if link.netloc == PyPI.netloc: + url = show_url + else: + url = link.url_without_fragment + + if show_progress: # We don't show progress on cached responses + progress_indicator = DownloadProgressProvider(progress_bar, + max=total_length) + if total_length: + logger.info("Downloading %s (%s)", url, format_size(total_length)) + else: + logger.info("Downloading %s", url) + elif cached_resp: + logger.info("Using cached %s", url) + else: + logger.info("Downloading %s", url) + + logger.debug('Downloading from URL %s', link) + + downloaded_chunks = written_chunks( + progress_indicator( + resp_read(CONTENT_CHUNK_SIZE), + CONTENT_CHUNK_SIZE + ) + ) + if hashes: + hashes.check_against_chunks(downloaded_chunks) + else: + consume(downloaded_chunks) + + +def _copy_file(filename, location, link): + copy = True + download_location = os.path.join(location, link.filename) + if os.path.exists(download_location): + response = ask_path_exists( + 'The file %s exists. (i)gnore, (w)ipe, (b)ackup, (a)abort' % + display_path(download_location), ('i', 'w', 'b', 'a')) + if response == 'i': + copy = False + elif response == 'w': + logger.warning('Deleting %s', display_path(download_location)) + os.remove(download_location) + elif response == 'b': + dest_file = backup_dir(download_location) + logger.warning( + 'Backing up %s to %s', + display_path(download_location), + display_path(dest_file), + ) + shutil.move(download_location, dest_file) + elif response == 'a': + sys.exit(-1) + if copy: + shutil.copy(filename, download_location) + logger.info('Saved %s', display_path(download_location)) + + +def unpack_http_url(link, location, download_dir=None, + session=None, hashes=None, progress_bar="on"): + if session is None: + raise TypeError( + "unpack_http_url() missing 1 required keyword argument: 'session'" + ) + + with TempDirectory(kind="unpack") as temp_dir: + # If a download dir is specified, is the file already downloaded there? + already_downloaded_path = None + if download_dir: + already_downloaded_path = _check_download_dir(link, + download_dir, + hashes) + + if already_downloaded_path: + from_path = already_downloaded_path + content_type = mimetypes.guess_type(from_path)[0] + else: + # let's download to a tmp dir + from_path, content_type = _download_http_url(link, + session, + temp_dir.path, + hashes, + progress_bar) + + # unpack the archive to the build dir location. even when only + # downloading archives, they have to be unpacked to parse dependencies + unpack_file(from_path, location, content_type, link) + + # a download dir is specified; let's copy the archive there + if download_dir and not already_downloaded_path: + _copy_file(from_path, download_dir, link) + + if not already_downloaded_path: + os.unlink(from_path) + + +def unpack_file_url(link, location, download_dir=None, hashes=None): + """Unpack link into location. + + If download_dir is provided and link points to a file, make a copy + of the link file inside download_dir. + """ + link_path = url_to_path(link.url_without_fragment) + + # If it's a url to a local directory + if is_dir_url(link): + if os.path.isdir(location): + rmtree(location) + shutil.copytree(link_path, location, symlinks=True) + if download_dir: + logger.info('Link is a directory, ignoring download_dir') + return + + # If --require-hashes is off, `hashes` is either empty, the + # link's embedded hash, or MissingHashes; it is required to + # match. If --require-hashes is on, we are satisfied by any + # hash in `hashes` matching: a URL-based or an option-based + # one; no internet-sourced hash will be in `hashes`. + if hashes: + hashes.check_against_path(link_path) + + # If a download dir is specified, is the file already there and valid? + already_downloaded_path = None + if download_dir: + already_downloaded_path = _check_download_dir(link, + download_dir, + hashes) + + if already_downloaded_path: + from_path = already_downloaded_path + else: + from_path = link_path + + content_type = mimetypes.guess_type(from_path)[0] + + # unpack the archive to the build dir location. even when only downloading + # archives, they have to be unpacked to parse dependencies + unpack_file(from_path, location, content_type, link) + + # a download dir is specified and not already downloaded + if download_dir and not already_downloaded_path: + _copy_file(from_path, download_dir, link) + + +def _copy_dist_from_dir(link_path, location): + """Copy distribution files in `link_path` to `location`. + + Invoked when user requests to install a local directory. E.g.: + + pip install . + pip install ~/dev/git-repos/python-prompt-toolkit + + """ + + # Note: This is currently VERY SLOW if you have a lot of data in the + # directory, because it copies everything with `shutil.copytree`. + # What it should really do is build an sdist and install that. + # See https://github.com/pypa/pip/issues/2195 + + if os.path.isdir(location): + rmtree(location) + + # build an sdist + setup_py = 'setup.py' + sdist_args = [sys.executable] + sdist_args.append('-c') + sdist_args.append(SETUPTOOLS_SHIM % setup_py) + sdist_args.append('sdist') + sdist_args += ['--dist-dir', location] + logger.info('Running setup.py sdist for %s', link_path) + + with indent_log(): + call_subprocess(sdist_args, cwd=link_path, show_stdout=False) + + # unpack sdist into `location` + sdist = os.path.join(location, os.listdir(location)[0]) + logger.info('Unpacking sdist %s into %s', sdist, location) + unpack_file(sdist, location, content_type=None, link=None) + + +class PipXmlrpcTransport(xmlrpc_client.Transport): + """Provide a `xmlrpclib.Transport` implementation via a `PipSession` + object. + """ + + def __init__(self, index_url, session, use_datetime=False): + xmlrpc_client.Transport.__init__(self, use_datetime) + index_parts = urllib_parse.urlparse(index_url) + self._scheme = index_parts.scheme + self._session = session + + def request(self, host, handler, request_body, verbose=False): + parts = (self._scheme, host, handler, None, None, None) + url = urllib_parse.urlunparse(parts) + try: + headers = {'Content-Type': 'text/xml'} + response = self._session.post(url, data=request_body, + headers=headers, stream=True) + response.raise_for_status() + self.verbose = verbose + return self.parse_response(response.raw) + except requests.HTTPError as exc: + logger.critical( + "HTTP error %s while getting %s", + exc.response.status_code, url, + ) + raise + + +def unpack_url(link, location, download_dir=None, + only_download=False, session=None, hashes=None, + progress_bar="on"): + """Unpack link. + If link is a VCS link: + if only_download, export into download_dir and ignore location + else unpack into location + for other types of link: + - unpack into location + - if download_dir, copy the file into download_dir + - if only_download, mark location for deletion + + :param hashes: A Hashes object, one of whose embedded hashes must match, + or HashMismatch will be raised. If the Hashes is empty, no matches are + required, and unhashable types of requirements (like VCS ones, which + would ordinarily raise HashUnsupported) are allowed. + """ + # non-editable vcs urls + if is_vcs_url(link): + unpack_vcs_link(link, location) + + # file urls + elif is_file_url(link): + unpack_file_url(link, location, download_dir, hashes=hashes) + + # http urls + else: + if session is None: + session = PipSession() + + unpack_http_url( + link, + location, + download_dir, + session, + hashes=hashes, + progress_bar=progress_bar + ) + if only_download: + write_delete_marker_file(location) + + +def _download_http_url(link, session, temp_dir, hashes, progress_bar): + """Download link url into temp_dir using provided session""" + target_url = link.url.split('#', 1)[0] + try: + resp = session.get( + target_url, + # We use Accept-Encoding: identity here because requests + # defaults to accepting compressed responses. This breaks in + # a variety of ways depending on how the server is configured. + # - Some servers will notice that the file isn't a compressible + # file and will leave the file alone and with an empty + # Content-Encoding + # - Some servers will notice that the file is already + # compressed and will leave the file alone and will add a + # Content-Encoding: gzip header + # - Some servers won't notice anything at all and will take + # a file that's already been compressed and compress it again + # and set the Content-Encoding: gzip header + # By setting this to request only the identity encoding We're + # hoping to eliminate the third case. Hopefully there does not + # exist a server which when given a file will notice it is + # already compressed and that you're not asking for a + # compressed file and will then decompress it before sending + # because if that's the case I don't think it'll ever be + # possible to make this work. + headers={"Accept-Encoding": "identity"}, + stream=True, + ) + resp.raise_for_status() + except requests.HTTPError as exc: + logger.critical( + "HTTP error %s while getting %s", exc.response.status_code, link, + ) + raise + + content_type = resp.headers.get('content-type', '') + filename = link.filename # fallback + # Have a look at the Content-Disposition header for a better guess + content_disposition = resp.headers.get('content-disposition') + if content_disposition: + type, params = cgi.parse_header(content_disposition) + # We use ``or`` here because we don't want to use an "empty" value + # from the filename param. + filename = params.get('filename') or filename + ext = splitext(filename)[1] + if not ext: + ext = mimetypes.guess_extension(content_type) + if ext: + filename += ext + if not ext and link.url != resp.url: + ext = os.path.splitext(resp.url)[1] + if ext: + filename += ext + file_path = os.path.join(temp_dir, filename) + with open(file_path, 'wb') as content_file: + _download_url(resp, link, content_file, hashes, progress_bar) + return file_path, content_type + + +def _check_download_dir(link, download_dir, hashes): + """ Check download_dir for previously downloaded file with correct hash + If a correct file is found return its path else None + """ + download_path = os.path.join(download_dir, link.filename) + if os.path.exists(download_path): + # If already downloaded, does its hash match? + logger.info('File was already downloaded %s', download_path) + if hashes: + try: + hashes.check_against_path(download_path) + except HashMismatch: + logger.warning( + 'Previously-downloaded file %s has bad hash. ' + 'Re-downloading.', + download_path + ) + os.unlink(download_path) + return None + return download_path + return None diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/exceptions.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/exceptions.py new file mode 100644 index 00000000..ad6f4125 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/exceptions.py @@ -0,0 +1,249 @@ +"""Exceptions used throughout package""" +from __future__ import absolute_import + +from itertools import chain, groupby, repeat + +from pip._vendor.six import iteritems + + +class PipError(Exception): + """Base pip exception""" + + +class ConfigurationError(PipError): + """General exception in configuration""" + + +class InstallationError(PipError): + """General exception during installation""" + + +class UninstallationError(PipError): + """General exception during uninstallation""" + + +class DistributionNotFound(InstallationError): + """Raised when a distribution cannot be found to satisfy a requirement""" + + +class RequirementsFileParseError(InstallationError): + """Raised when a general error occurs parsing a requirements file line.""" + + +class BestVersionAlreadyInstalled(PipError): + """Raised when the most up-to-date version of a package is already + installed.""" + + +class BadCommand(PipError): + """Raised when virtualenv or a command is not found""" + + +class CommandError(PipError): + """Raised when there is an error in command-line arguments""" + + +class PreviousBuildDirError(PipError): + """Raised when there's a previous conflicting build directory""" + + +class InvalidWheelFilename(InstallationError): + """Invalid wheel filename.""" + + +class UnsupportedWheel(InstallationError): + """Unsupported wheel.""" + + +class HashErrors(InstallationError): + """Multiple HashError instances rolled into one for reporting""" + + def __init__(self): + self.errors = [] + + def append(self, error): + self.errors.append(error) + + def __str__(self): + lines = [] + self.errors.sort(key=lambda e: e.order) + for cls, errors_of_cls in groupby(self.errors, lambda e: e.__class__): + lines.append(cls.head) + lines.extend(e.body() for e in errors_of_cls) + if lines: + return '\n'.join(lines) + + def __nonzero__(self): + return bool(self.errors) + + def __bool__(self): + return self.__nonzero__() + + +class HashError(InstallationError): + """ + A failure to verify a package against known-good hashes + + :cvar order: An int sorting hash exception classes by difficulty of + recovery (lower being harder), so the user doesn't bother fretting + about unpinned packages when he has deeper issues, like VCS + dependencies, to deal with. Also keeps error reports in a + deterministic order. + :cvar head: A section heading for display above potentially many + exceptions of this kind + :ivar req: The InstallRequirement that triggered this error. This is + pasted on after the exception is instantiated, because it's not + typically available earlier. + + """ + req = None + head = '' + + def body(self): + """Return a summary of me for display under the heading. + + This default implementation simply prints a description of the + triggering requirement. + + :param req: The InstallRequirement that provoked this error, with + populate_link() having already been called + + """ + return ' %s' % self._requirement_name() + + def __str__(self): + return '%s\n%s' % (self.head, self.body()) + + def _requirement_name(self): + """Return a description of the requirement that triggered me. + + This default implementation returns long description of the req, with + line numbers + + """ + return str(self.req) if self.req else 'unknown package' + + +class VcsHashUnsupported(HashError): + """A hash was provided for a version-control-system-based requirement, but + we don't have a method for hashing those.""" + + order = 0 + head = ("Can't verify hashes for these requirements because we don't " + "have a way to hash version control repositories:") + + +class DirectoryUrlHashUnsupported(HashError): + """A hash was provided for a version-control-system-based requirement, but + we don't have a method for hashing those.""" + + order = 1 + head = ("Can't verify hashes for these file:// requirements because they " + "point to directories:") + + +class HashMissing(HashError): + """A hash was needed for a requirement but is absent.""" + + order = 2 + head = ('Hashes are required in --require-hashes mode, but they are ' + 'missing from some requirements. Here is a list of those ' + 'requirements along with the hashes their downloaded archives ' + 'actually had. Add lines like these to your requirements files to ' + 'prevent tampering. (If you did not enable --require-hashes ' + 'manually, note that it turns on automatically when any package ' + 'has a hash.)') + + def __init__(self, gotten_hash): + """ + :param gotten_hash: The hash of the (possibly malicious) archive we + just downloaded + """ + self.gotten_hash = gotten_hash + + def body(self): + # Dodge circular import. + from pip._internal.utils.hashes import FAVORITE_HASH + + package = None + if self.req: + # In the case of URL-based requirements, display the original URL + # seen in the requirements file rather than the package name, + # so the output can be directly copied into the requirements file. + package = (self.req.original_link if self.req.original_link + # In case someone feeds something downright stupid + # to InstallRequirement's constructor. + else getattr(self.req, 'req', None)) + return ' %s --hash=%s:%s' % (package or 'unknown package', + FAVORITE_HASH, + self.gotten_hash) + + +class HashUnpinned(HashError): + """A requirement had a hash specified but was not pinned to a specific + version.""" + + order = 3 + head = ('In --require-hashes mode, all requirements must have their ' + 'versions pinned with ==. These do not:') + + +class HashMismatch(HashError): + """ + Distribution file hash values don't match. + + :ivar package_name: The name of the package that triggered the hash + mismatch. Feel free to write to this after the exception is raise to + improve its error message. + + """ + order = 4 + head = ('THESE PACKAGES DO NOT MATCH THE HASHES FROM THE REQUIREMENTS ' + 'FILE. If you have updated the package versions, please update ' + 'the hashes. Otherwise, examine the package contents carefully; ' + 'someone may have tampered with them.') + + def __init__(self, allowed, gots): + """ + :param allowed: A dict of algorithm names pointing to lists of allowed + hex digests + :param gots: A dict of algorithm names pointing to hashes we + actually got from the files under suspicion + """ + self.allowed = allowed + self.gots = gots + + def body(self): + return ' %s:\n%s' % (self._requirement_name(), + self._hash_comparison()) + + def _hash_comparison(self): + """ + Return a comparison of actual and expected hash values. + + Example:: + + Expected sha256 abcdeabcdeabcdeabcdeabcdeabcdeabcdeabcdeabcde + or 123451234512345123451234512345123451234512345 + Got bcdefbcdefbcdefbcdefbcdefbcdefbcdefbcdefbcdef + + """ + def hash_then_or(hash_name): + # For now, all the decent hashes have 6-char names, so we can get + # away with hard-coding space literals. + return chain([hash_name], repeat(' or')) + + lines = [] + for hash_name, expecteds in iteritems(self.allowed): + prefix = hash_then_or(hash_name) + lines.extend((' Expected %s %s' % (next(prefix), e)) + for e in expecteds) + lines.append(' Got %s\n' % + self.gots[hash_name].hexdigest()) + prefix = ' or' + return '\n'.join(lines) + + +class UnsupportedPythonVersion(InstallationError): + """Unsupported python version according to Requires-Python package + metadata.""" diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/index.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/index.py new file mode 100644 index 00000000..3c3a92b7 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/index.py @@ -0,0 +1,1117 @@ +"""Routines related to PyPI, indexes""" +from __future__ import absolute_import + +import cgi +import itertools +import logging +import mimetypes +import os +import posixpath +import re +import sys +import warnings +from collections import namedtuple + +from pip._vendor import html5lib, requests, six +from pip._vendor.distlib.compat import unescape +from pip._vendor.packaging import specifiers +from pip._vendor.packaging.utils import canonicalize_name +from pip._vendor.packaging.version import parse as parse_version +from pip._vendor.requests.exceptions import SSLError +from pip._vendor.six.moves.urllib import parse as urllib_parse +from pip._vendor.six.moves.urllib import request as urllib_request + +from pip._internal.compat import ipaddress +from pip._internal.download import HAS_TLS, is_url, path_to_url, url_to_path +from pip._internal.exceptions import ( + BestVersionAlreadyInstalled, DistributionNotFound, InvalidWheelFilename, + UnsupportedWheel, +) +from pip._internal.models import PyPI +from pip._internal.pep425tags import get_supported +from pip._internal.utils.deprecation import RemovedInPip11Warning +from pip._internal.utils.logging import indent_log +from pip._internal.utils.misc import ( + ARCHIVE_EXTENSIONS, SUPPORTED_EXTENSIONS, cached_property, normalize_path, + splitext, +) +from pip._internal.utils.packaging import check_requires_python +from pip._internal.wheel import Wheel, wheel_ext + +__all__ = ['FormatControl', 'fmt_ctl_handle_mutual_exclude', 'PackageFinder'] + + +SECURE_ORIGINS = [ + # protocol, hostname, port + # Taken from Chrome's list of secure origins (See: http://bit.ly/1qrySKC) + ("https", "*", "*"), + ("*", "localhost", "*"), + ("*", "127.0.0.0/8", "*"), + ("*", "::1/128", "*"), + ("file", "*", None), + # ssh is always secure. + ("ssh", "*", "*"), +] + + +logger = logging.getLogger(__name__) + + +class InstallationCandidate(object): + + def __init__(self, project, version, location): + self.project = project + self.version = parse_version(version) + self.location = location + self._key = (self.project, self.version, self.location) + + def __repr__(self): + return "".format( + self.project, self.version, self.location, + ) + + def __hash__(self): + return hash(self._key) + + def __lt__(self, other): + return self._compare(other, lambda s, o: s < o) + + def __le__(self, other): + return self._compare(other, lambda s, o: s <= o) + + def __eq__(self, other): + return self._compare(other, lambda s, o: s == o) + + def __ge__(self, other): + return self._compare(other, lambda s, o: s >= o) + + def __gt__(self, other): + return self._compare(other, lambda s, o: s > o) + + def __ne__(self, other): + return self._compare(other, lambda s, o: s != o) + + def _compare(self, other, method): + if not isinstance(other, InstallationCandidate): + return NotImplemented + + return method(self._key, other._key) + + +class PackageFinder(object): + """This finds packages. + + This is meant to match easy_install's technique for looking for + packages, by reading pages and looking for appropriate links. + """ + + def __init__(self, find_links, index_urls, allow_all_prereleases=False, + trusted_hosts=None, process_dependency_links=False, + session=None, format_control=None, platform=None, + versions=None, abi=None, implementation=None): + """Create a PackageFinder. + + :param format_control: A FormatControl object or None. Used to control + the selection of source packages / binary packages when consulting + the index and links. + :param platform: A string or None. If None, searches for packages + that are supported by the current system. Otherwise, will find + packages that can be built on the platform passed in. These + packages will only be downloaded for distribution: they will + not be built locally. + :param versions: A list of strings or None. This is passed directly + to pep425tags.py in the get_supported() method. + :param abi: A string or None. This is passed directly + to pep425tags.py in the get_supported() method. + :param implementation: A string or None. This is passed directly + to pep425tags.py in the get_supported() method. + """ + if session is None: + raise TypeError( + "PackageFinder() missing 1 required keyword argument: " + "'session'" + ) + + # Build find_links. If an argument starts with ~, it may be + # a local file relative to a home directory. So try normalizing + # it and if it exists, use the normalized version. + # This is deliberately conservative - it might be fine just to + # blindly normalize anything starting with a ~... + self.find_links = [] + for link in find_links: + if link.startswith('~'): + new_link = normalize_path(link) + if os.path.exists(new_link): + link = new_link + self.find_links.append(link) + + self.index_urls = index_urls + self.dependency_links = [] + + # These are boring links that have already been logged somehow: + self.logged_links = set() + + self.format_control = format_control or FormatControl(set(), set()) + + # Domains that we won't emit warnings for when not using HTTPS + self.secure_origins = [ + ("*", host, "*") + for host in (trusted_hosts if trusted_hosts else []) + ] + + # Do we want to allow _all_ pre-releases? + self.allow_all_prereleases = allow_all_prereleases + + # Do we process dependency links? + self.process_dependency_links = process_dependency_links + + # The Session we'll use to make requests + self.session = session + + # The valid tags to check potential found wheel candidates against + self.valid_tags = get_supported( + versions=versions, + platform=platform, + abi=abi, + impl=implementation, + ) + + # If we don't have TLS enabled, then WARN if anyplace we're looking + # relies on TLS. + if not HAS_TLS: + for link in itertools.chain(self.index_urls, self.find_links): + parsed = urllib_parse.urlparse(link) + if parsed.scheme == "https": + logger.warning( + "pip is configured with locations that require " + "TLS/SSL, however the ssl module in Python is not " + "available." + ) + break + + def get_formatted_locations(self): + lines = [] + if self.index_urls and self.index_urls != [PyPI.simple_url]: + lines.append( + "Looking in indexes: {}".format(", ".join(self.index_urls)) + ) + if self.find_links: + lines.append( + "Looking in links: {}".format(", ".join(self.find_links)) + ) + return "\n".join(lines) + + def add_dependency_links(self, links): + # # FIXME: this shouldn't be global list this, it should only + # # apply to requirements of the package that specifies the + # # dependency_links value + # # FIXME: also, we should track comes_from (i.e., use Link) + if self.process_dependency_links: + warnings.warn( + "Dependency Links processing has been deprecated and will be " + "removed in a future release.", + RemovedInPip11Warning, + ) + self.dependency_links.extend(links) + + @staticmethod + def _sort_locations(locations, expand_dir=False): + """ + Sort locations into "files" (archives) and "urls", and return + a pair of lists (files,urls) + """ + files = [] + urls = [] + + # puts the url for the given file path into the appropriate list + def sort_path(path): + url = path_to_url(path) + if mimetypes.guess_type(url, strict=False)[0] == 'text/html': + urls.append(url) + else: + files.append(url) + + for url in locations: + + is_local_path = os.path.exists(url) + is_file_url = url.startswith('file:') + + if is_local_path or is_file_url: + if is_local_path: + path = url + else: + path = url_to_path(url) + if os.path.isdir(path): + if expand_dir: + path = os.path.realpath(path) + for item in os.listdir(path): + sort_path(os.path.join(path, item)) + elif is_file_url: + urls.append(url) + elif os.path.isfile(path): + sort_path(path) + else: + logger.warning( + "Url '%s' is ignored: it is neither a file " + "nor a directory.", url, + ) + elif is_url(url): + # Only add url with clear scheme + urls.append(url) + else: + logger.warning( + "Url '%s' is ignored. It is either a non-existing " + "path or lacks a specific scheme.", url, + ) + + return files, urls + + def _candidate_sort_key(self, candidate): + """ + Function used to generate link sort key for link tuples. + The greater the return value, the more preferred it is. + If not finding wheels, then sorted by version only. + If finding wheels, then the sort order is by version, then: + 1. existing installs + 2. wheels ordered via Wheel.support_index_min(self.valid_tags) + 3. source archives + Note: it was considered to embed this logic into the Link + comparison operators, but then different sdist links + with the same version, would have to be considered equal + """ + support_num = len(self.valid_tags) + build_tag = tuple() + if candidate.location.is_wheel: + # can raise InvalidWheelFilename + wheel = Wheel(candidate.location.filename) + if not wheel.supported(self.valid_tags): + raise UnsupportedWheel( + "%s is not a supported wheel for this platform. It " + "can't be sorted." % wheel.filename + ) + pri = -(wheel.support_index_min(self.valid_tags)) + if wheel.build_tag is not None: + match = re.match(r'^(\d+)(.*)$', wheel.build_tag) + build_tag_groups = match.groups() + build_tag = (int(build_tag_groups[0]), build_tag_groups[1]) + else: # sdist + pri = -(support_num) + return (candidate.version, build_tag, pri) + + def _validate_secure_origin(self, logger, location): + # Determine if this url used a secure transport mechanism + parsed = urllib_parse.urlparse(str(location)) + origin = (parsed.scheme, parsed.hostname, parsed.port) + + # The protocol to use to see if the protocol matches. + # Don't count the repository type as part of the protocol: in + # cases such as "git+ssh", only use "ssh". (I.e., Only verify against + # the last scheme.) + protocol = origin[0].rsplit('+', 1)[-1] + + # Determine if our origin is a secure origin by looking through our + # hardcoded list of secure origins, as well as any additional ones + # configured on this PackageFinder instance. + for secure_origin in (SECURE_ORIGINS + self.secure_origins): + if protocol != secure_origin[0] and secure_origin[0] != "*": + continue + + try: + # We need to do this decode dance to ensure that we have a + # unicode object, even on Python 2.x. + addr = ipaddress.ip_address( + origin[1] + if ( + isinstance(origin[1], six.text_type) or + origin[1] is None + ) + else origin[1].decode("utf8") + ) + network = ipaddress.ip_network( + secure_origin[1] + if isinstance(secure_origin[1], six.text_type) + else secure_origin[1].decode("utf8") + ) + except ValueError: + # We don't have both a valid address or a valid network, so + # we'll check this origin against hostnames. + if (origin[1] and + origin[1].lower() != secure_origin[1].lower() and + secure_origin[1] != "*"): + continue + else: + # We have a valid address and network, so see if the address + # is contained within the network. + if addr not in network: + continue + + # Check to see if the port patches + if (origin[2] != secure_origin[2] and + secure_origin[2] != "*" and + secure_origin[2] is not None): + continue + + # If we've gotten here, then this origin matches the current + # secure origin and we should return True + return True + + # If we've gotten to this point, then the origin isn't secure and we + # will not accept it as a valid location to search. We will however + # log a warning that we are ignoring it. + logger.warning( + "The repository located at %s is not a trusted or secure host and " + "is being ignored. If this repository is available via HTTPS we " + "recommend you use HTTPS instead, otherwise you may silence " + "this warning and allow it anyway with '--trusted-host %s'.", + parsed.hostname, + parsed.hostname, + ) + + return False + + def _get_index_urls_locations(self, project_name): + """Returns the locations found via self.index_urls + + Checks the url_name on the main (first in the list) index and + use this url_name to produce all locations + """ + + def mkurl_pypi_url(url): + loc = posixpath.join( + url, + urllib_parse.quote(canonicalize_name(project_name))) + # For maximum compatibility with easy_install, ensure the path + # ends in a trailing slash. Although this isn't in the spec + # (and PyPI can handle it without the slash) some other index + # implementations might break if they relied on easy_install's + # behavior. + if not loc.endswith('/'): + loc = loc + '/' + return loc + + return [mkurl_pypi_url(url) for url in self.index_urls] + + def find_all_candidates(self, project_name): + """Find all available InstallationCandidate for project_name + + This checks index_urls, find_links and dependency_links. + All versions found are returned as an InstallationCandidate list. + + See _link_package_versions for details on which files are accepted + """ + index_locations = self._get_index_urls_locations(project_name) + index_file_loc, index_url_loc = self._sort_locations(index_locations) + fl_file_loc, fl_url_loc = self._sort_locations( + self.find_links, expand_dir=True, + ) + dep_file_loc, dep_url_loc = self._sort_locations(self.dependency_links) + + file_locations = (Link(url) for url in itertools.chain( + index_file_loc, fl_file_loc, dep_file_loc, + )) + + # We trust every url that the user has given us whether it was given + # via --index-url or --find-links + # We explicitly do not trust links that came from dependency_links + # We want to filter out any thing which does not have a secure origin. + url_locations = [ + link for link in itertools.chain( + (Link(url) for url in index_url_loc), + (Link(url) for url in fl_url_loc), + (Link(url) for url in dep_url_loc), + ) + if self._validate_secure_origin(logger, link) + ] + + logger.debug('%d location(s) to search for versions of %s:', + len(url_locations), project_name) + + for location in url_locations: + logger.debug('* %s', location) + + canonical_name = canonicalize_name(project_name) + formats = fmt_ctl_formats(self.format_control, canonical_name) + search = Search(project_name, canonical_name, formats) + find_links_versions = self._package_versions( + # We trust every directly linked archive in find_links + (Link(url, '-f') for url in self.find_links), + search + ) + + page_versions = [] + for page in self._get_pages(url_locations, project_name): + logger.debug('Analyzing links from page %s', page.url) + with indent_log(): + page_versions.extend( + self._package_versions(page.links, search) + ) + + dependency_versions = self._package_versions( + (Link(url) for url in self.dependency_links), search + ) + if dependency_versions: + logger.debug( + 'dependency_links found: %s', + ', '.join([ + version.location.url for version in dependency_versions + ]) + ) + + file_versions = self._package_versions(file_locations, search) + if file_versions: + file_versions.sort(reverse=True) + logger.debug( + 'Local files found: %s', + ', '.join([ + url_to_path(candidate.location.url) + for candidate in file_versions + ]) + ) + + # This is an intentional priority ordering + return ( + file_versions + find_links_versions + page_versions + + dependency_versions + ) + + def find_requirement(self, req, upgrade): + """Try to find a Link matching req + + Expects req, an InstallRequirement and upgrade, a boolean + Returns a Link if found, + Raises DistributionNotFound or BestVersionAlreadyInstalled otherwise + """ + all_candidates = self.find_all_candidates(req.name) + + # Filter out anything which doesn't match our specifier + compatible_versions = set( + req.specifier.filter( + # We turn the version object into a str here because otherwise + # when we're debundled but setuptools isn't, Python will see + # packaging.version.Version and + # pkg_resources._vendor.packaging.version.Version as different + # types. This way we'll use a str as a common data interchange + # format. If we stop using the pkg_resources provided specifier + # and start using our own, we can drop the cast to str(). + [str(c.version) for c in all_candidates], + prereleases=( + self.allow_all_prereleases + if self.allow_all_prereleases else None + ), + ) + ) + applicable_candidates = [ + # Again, converting to str to deal with debundling. + c for c in all_candidates if str(c.version) in compatible_versions + ] + + if applicable_candidates: + best_candidate = max(applicable_candidates, + key=self._candidate_sort_key) + else: + best_candidate = None + + if req.satisfied_by is not None: + installed_version = parse_version(req.satisfied_by.version) + else: + installed_version = None + + if installed_version is None and best_candidate is None: + logger.critical( + 'Could not find a version that satisfies the requirement %s ' + '(from versions: %s)', + req, + ', '.join( + sorted( + {str(c.version) for c in all_candidates}, + key=parse_version, + ) + ) + ) + + raise DistributionNotFound( + 'No matching distribution found for %s' % req + ) + + best_installed = False + if installed_version and ( + best_candidate is None or + best_candidate.version <= installed_version): + best_installed = True + + if not upgrade and installed_version is not None: + if best_installed: + logger.debug( + 'Existing installed version (%s) is most up-to-date and ' + 'satisfies requirement', + installed_version, + ) + else: + logger.debug( + 'Existing installed version (%s) satisfies requirement ' + '(most up-to-date version is %s)', + installed_version, + best_candidate.version, + ) + return None + + if best_installed: + # We have an existing version, and its the best version + logger.debug( + 'Installed version (%s) is most up-to-date (past versions: ' + '%s)', + installed_version, + ', '.join(sorted(compatible_versions, key=parse_version)) or + "none", + ) + raise BestVersionAlreadyInstalled + + logger.debug( + 'Using version %s (newest of versions: %s)', + best_candidate.version, + ', '.join(sorted(compatible_versions, key=parse_version)) + ) + return best_candidate.location + + def _get_pages(self, locations, project_name): + """ + Yields (page, page_url) from the given locations, skipping + locations that have errors. + """ + seen = set() + for location in locations: + if location in seen: + continue + seen.add(location) + + page = self._get_page(location) + if page is None: + continue + + yield page + + _py_version_re = re.compile(r'-py([123]\.?[0-9]?)$') + + def _sort_links(self, links): + """ + Returns elements of links in order, non-egg links first, egg links + second, while eliminating duplicates + """ + eggs, no_eggs = [], [] + seen = set() + for link in links: + if link not in seen: + seen.add(link) + if link.egg_fragment: + eggs.append(link) + else: + no_eggs.append(link) + return no_eggs + eggs + + def _package_versions(self, links, search): + result = [] + for link in self._sort_links(links): + v = self._link_package_versions(link, search) + if v is not None: + result.append(v) + return result + + def _log_skipped_link(self, link, reason): + if link not in self.logged_links: + logger.debug('Skipping link %s; %s', link, reason) + self.logged_links.add(link) + + def _link_package_versions(self, link, search): + """Return an InstallationCandidate or None""" + version = None + if link.egg_fragment: + egg_info = link.egg_fragment + ext = link.ext + else: + egg_info, ext = link.splitext() + if not ext: + self._log_skipped_link(link, 'not a file') + return + if ext not in SUPPORTED_EXTENSIONS: + self._log_skipped_link( + link, 'unsupported archive format: %s' % ext, + ) + return + if "binary" not in search.formats and ext == wheel_ext: + self._log_skipped_link( + link, 'No binaries permitted for %s' % search.supplied, + ) + return + if "macosx10" in link.path and ext == '.zip': + self._log_skipped_link(link, 'macosx10 one') + return + if ext == wheel_ext: + try: + wheel = Wheel(link.filename) + except InvalidWheelFilename: + self._log_skipped_link(link, 'invalid wheel filename') + return + if canonicalize_name(wheel.name) != search.canonical: + self._log_skipped_link( + link, 'wrong project name (not %s)' % search.supplied) + return + + if not wheel.supported(self.valid_tags): + self._log_skipped_link( + link, 'it is not compatible with this Python') + return + + version = wheel.version + + # This should be up by the search.ok_binary check, but see issue 2700. + if "source" not in search.formats and ext != wheel_ext: + self._log_skipped_link( + link, 'No sources permitted for %s' % search.supplied, + ) + return + + if not version: + version = egg_info_matches(egg_info, search.supplied, link) + if version is None: + self._log_skipped_link( + link, 'wrong project name (not %s)' % search.supplied) + return + + match = self._py_version_re.search(version) + if match: + version = version[:match.start()] + py_version = match.group(1) + if py_version != sys.version[:3]: + self._log_skipped_link( + link, 'Python version is incorrect') + return + try: + support_this_python = check_requires_python(link.requires_python) + except specifiers.InvalidSpecifier: + logger.debug("Package %s has an invalid Requires-Python entry: %s", + link.filename, link.requires_python) + support_this_python = True + + if not support_this_python: + logger.debug("The package %s is incompatible with the python" + "version in use. Acceptable python versions are:%s", + link, link.requires_python) + return + logger.debug('Found link %s, version: %s', link, version) + + return InstallationCandidate(search.supplied, version, link) + + def _get_page(self, link): + return HTMLPage.get_page(link, session=self.session) + + +def egg_info_matches( + egg_info, search_name, link, + _egg_info_re=re.compile(r'([a-z0-9_.]+)-([a-z0-9_.!+-]+)', re.I)): + """Pull the version part out of a string. + + :param egg_info: The string to parse. E.g. foo-2.1 + :param search_name: The name of the package this belongs to. None to + infer the name. Note that this cannot unambiguously parse strings + like foo-2-2 which might be foo, 2-2 or foo-2, 2. + :param link: The link the string came from, for logging on failure. + """ + match = _egg_info_re.search(egg_info) + if not match: + logger.debug('Could not parse version from link: %s', link) + return None + if search_name is None: + full_match = match.group(0) + return full_match[full_match.index('-'):] + name = match.group(0).lower() + # To match the "safe" name that pkg_resources creates: + name = name.replace('_', '-') + # project name and version must be separated by a dash + look_for = search_name.lower() + "-" + if name.startswith(look_for): + return match.group(0)[len(look_for):] + else: + return None + + +class HTMLPage(object): + """Represents one page, along with its URL""" + + def __init__(self, content, url, headers=None): + # Determine if we have any encoding information in our headers + encoding = None + if headers and "Content-Type" in headers: + content_type, params = cgi.parse_header(headers["Content-Type"]) + + if "charset" in params: + encoding = params['charset'] + + self.content = content + self.parsed = html5lib.parse( + self.content, + transport_encoding=encoding, + namespaceHTMLElements=False, + ) + self.url = url + self.headers = headers + + def __str__(self): + return self.url + + @classmethod + def get_page(cls, link, skip_archives=True, session=None): + if session is None: + raise TypeError( + "get_page() missing 1 required keyword argument: 'session'" + ) + + url = link.url + url = url.split('#', 1)[0] + + # Check for VCS schemes that do not support lookup as web pages. + from pip._internal.vcs import VcsSupport + for scheme in VcsSupport.schemes: + if url.lower().startswith(scheme) and url[len(scheme)] in '+:': + logger.debug('Cannot look at %s URL %s', scheme, link) + return None + + try: + if skip_archives: + filename = link.filename + for bad_ext in ARCHIVE_EXTENSIONS: + if filename.endswith(bad_ext): + content_type = cls._get_content_type( + url, session=session, + ) + if content_type.lower().startswith('text/html'): + break + else: + logger.debug( + 'Skipping page %s because of Content-Type: %s', + link, + content_type, + ) + return + + logger.debug('Getting page %s', url) + + # Tack index.html onto file:// URLs that point to directories + (scheme, netloc, path, params, query, fragment) = \ + urllib_parse.urlparse(url) + if (scheme == 'file' and + os.path.isdir(urllib_request.url2pathname(path))): + # add trailing slash if not present so urljoin doesn't trim + # final segment + if not url.endswith('/'): + url += '/' + url = urllib_parse.urljoin(url, 'index.html') + logger.debug(' file: URL is directory, getting %s', url) + + resp = session.get( + url, + headers={ + "Accept": "text/html", + "Cache-Control": "max-age=600", + }, + ) + resp.raise_for_status() + + # The check for archives above only works if the url ends with + # something that looks like an archive. However that is not a + # requirement of an url. Unless we issue a HEAD request on every + # url we cannot know ahead of time for sure if something is HTML + # or not. However we can check after we've downloaded it. + content_type = resp.headers.get('Content-Type', 'unknown') + if not content_type.lower().startswith("text/html"): + logger.debug( + 'Skipping page %s because of Content-Type: %s', + link, + content_type, + ) + return + + inst = cls(resp.content, resp.url, resp.headers) + except requests.HTTPError as exc: + cls._handle_fail(link, exc, url) + except SSLError as exc: + reason = "There was a problem confirming the ssl certificate: " + reason += str(exc) + cls._handle_fail(link, reason, url, meth=logger.info) + except requests.ConnectionError as exc: + cls._handle_fail(link, "connection error: %s" % exc, url) + except requests.Timeout: + cls._handle_fail(link, "timed out", url) + else: + return inst + + @staticmethod + def _handle_fail(link, reason, url, meth=None): + if meth is None: + meth = logger.debug + + meth("Could not fetch URL %s: %s - skipping", link, reason) + + @staticmethod + def _get_content_type(url, session): + """Get the Content-Type of the given url, using a HEAD request""" + scheme, netloc, path, query, fragment = urllib_parse.urlsplit(url) + if scheme not in {'http', 'https'}: + # FIXME: some warning or something? + # assertion error? + return '' + + resp = session.head(url, allow_redirects=True) + resp.raise_for_status() + + return resp.headers.get("Content-Type", "") + + @cached_property + def base_url(self): + bases = [ + x for x in self.parsed.findall(".//base") + if x.get("href") is not None + ] + if bases and bases[0].get("href"): + return bases[0].get("href") + else: + return self.url + + @property + def links(self): + """Yields all links in the page""" + for anchor in self.parsed.findall(".//a"): + if anchor.get("href"): + href = anchor.get("href") + url = self.clean_link( + urllib_parse.urljoin(self.base_url, href) + ) + pyrequire = anchor.get('data-requires-python') + pyrequire = unescape(pyrequire) if pyrequire else None + yield Link(url, self, requires_python=pyrequire) + + _clean_re = re.compile(r'[^a-z0-9$&+,/:;=?@.#%_\\|-]', re.I) + + def clean_link(self, url): + """Makes sure a link is fully encoded. That is, if a ' ' shows up in + the link, it will be rewritten to %20 (while not over-quoting + % or other characters).""" + return self._clean_re.sub( + lambda match: '%%%2x' % ord(match.group(0)), url) + + +class Link(object): + + def __init__(self, url, comes_from=None, requires_python=None): + """ + Object representing a parsed link from https://pypi.org/simple/* + + url: + url of the resource pointed to (href of the link) + comes_from: + instance of HTMLPage where the link was found, or string. + requires_python: + String containing the `Requires-Python` metadata field, specified + in PEP 345. This may be specified by a data-requires-python + attribute in the HTML link tag, as described in PEP 503. + """ + + # url can be a UNC windows share + if url.startswith('\\\\'): + url = path_to_url(url) + + self.url = url + self.comes_from = comes_from + self.requires_python = requires_python if requires_python else None + + def __str__(self): + if self.requires_python: + rp = ' (requires-python:%s)' % self.requires_python + else: + rp = '' + if self.comes_from: + return '%s (from %s)%s' % (self.url, self.comes_from, rp) + else: + return str(self.url) + + def __repr__(self): + return '' % self + + def __eq__(self, other): + if not isinstance(other, Link): + return NotImplemented + return self.url == other.url + + def __ne__(self, other): + if not isinstance(other, Link): + return NotImplemented + return self.url != other.url + + def __lt__(self, other): + if not isinstance(other, Link): + return NotImplemented + return self.url < other.url + + def __le__(self, other): + if not isinstance(other, Link): + return NotImplemented + return self.url <= other.url + + def __gt__(self, other): + if not isinstance(other, Link): + return NotImplemented + return self.url > other.url + + def __ge__(self, other): + if not isinstance(other, Link): + return NotImplemented + return self.url >= other.url + + def __hash__(self): + return hash(self.url) + + @property + def filename(self): + _, netloc, path, _, _ = urllib_parse.urlsplit(self.url) + name = posixpath.basename(path.rstrip('/')) or netloc + name = urllib_parse.unquote(name) + assert name, ('URL %r produced no filename' % self.url) + return name + + @property + def scheme(self): + return urllib_parse.urlsplit(self.url)[0] + + @property + def netloc(self): + return urllib_parse.urlsplit(self.url)[1] + + @property + def path(self): + return urllib_parse.unquote(urllib_parse.urlsplit(self.url)[2]) + + def splitext(self): + return splitext(posixpath.basename(self.path.rstrip('/'))) + + @property + def ext(self): + return self.splitext()[1] + + @property + def url_without_fragment(self): + scheme, netloc, path, query, fragment = urllib_parse.urlsplit(self.url) + return urllib_parse.urlunsplit((scheme, netloc, path, query, None)) + + _egg_fragment_re = re.compile(r'[#&]egg=([^&]*)') + + @property + def egg_fragment(self): + match = self._egg_fragment_re.search(self.url) + if not match: + return None + return match.group(1) + + _subdirectory_fragment_re = re.compile(r'[#&]subdirectory=([^&]*)') + + @property + def subdirectory_fragment(self): + match = self._subdirectory_fragment_re.search(self.url) + if not match: + return None + return match.group(1) + + _hash_re = re.compile( + r'(sha1|sha224|sha384|sha256|sha512|md5)=([a-f0-9]+)' + ) + + @property + def hash(self): + match = self._hash_re.search(self.url) + if match: + return match.group(2) + return None + + @property + def hash_name(self): + match = self._hash_re.search(self.url) + if match: + return match.group(1) + return None + + @property + def show_url(self): + return posixpath.basename(self.url.split('#', 1)[0].split('?', 1)[0]) + + @property + def is_wheel(self): + return self.ext == wheel_ext + + @property + def is_artifact(self): + """ + Determines if this points to an actual artifact (e.g. a tarball) or if + it points to an "abstract" thing like a path or a VCS location. + """ + from pip._internal.vcs import vcs + + if self.scheme in vcs.all_schemes: + return False + + return True + + +FormatControl = namedtuple('FormatControl', 'no_binary only_binary') +"""This object has two fields, no_binary and only_binary. + +If a field is falsy, it isn't set. If it is {':all:'}, it should match all +packages except those listed in the other field. Only one field can be set +to {':all:'} at a time. The rest of the time exact package name matches +are listed, with any given package only showing up in one field at a time. +""" + + +def fmt_ctl_handle_mutual_exclude(value, target, other): + new = value.split(',') + while ':all:' in new: + other.clear() + target.clear() + target.add(':all:') + del new[:new.index(':all:') + 1] + if ':none:' not in new: + # Without a none, we want to discard everything as :all: covers it + return + for name in new: + if name == ':none:': + target.clear() + continue + name = canonicalize_name(name) + other.discard(name) + target.add(name) + + +def fmt_ctl_formats(fmt_ctl, canonical_name): + result = {"binary", "source"} + if canonical_name in fmt_ctl.only_binary: + result.discard('source') + elif canonical_name in fmt_ctl.no_binary: + result.discard('binary') + elif ':all:' in fmt_ctl.only_binary: + result.discard('source') + elif ':all:' in fmt_ctl.no_binary: + result.discard('binary') + return frozenset(result) + + +def fmt_ctl_no_binary(fmt_ctl): + fmt_ctl_handle_mutual_exclude( + ':all:', fmt_ctl.no_binary, fmt_ctl.only_binary, + ) + + +Search = namedtuple('Search', 'supplied canonical formats') +"""Capture key aspects of a search. + +:attribute supplied: The user supplied package. +:attribute canonical: The canonical package name. +:attribute formats: The formats allowed for this package. Should be a set + with 'binary' or 'source' or both in it. +""" diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/locations.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/locations.py new file mode 100644 index 00000000..5a20c92a --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/locations.py @@ -0,0 +1,194 @@ +"""Locations where we look for configs, install stuff, etc""" +from __future__ import absolute_import + +import os +import os.path +import platform +import site +import sys +import sysconfig +from distutils import sysconfig as distutils_sysconfig +from distutils.command.install import SCHEME_KEYS, install # type: ignore + +from pip._internal.compat import WINDOWS, expanduser +from pip._internal.utils import appdirs + +# Application Directories +USER_CACHE_DIR = appdirs.user_cache_dir("pip") + + +DELETE_MARKER_MESSAGE = '''\ +This file is placed here by pip to indicate the source was put +here by pip. + +Once this package is successfully installed this source code will be +deleted (unless you remove this file). +''' +PIP_DELETE_MARKER_FILENAME = 'pip-delete-this-directory.txt' + + +def write_delete_marker_file(directory): + """ + Write the pip delete marker file into this directory. + """ + filepath = os.path.join(directory, PIP_DELETE_MARKER_FILENAME) + with open(filepath, 'w') as marker_fp: + marker_fp.write(DELETE_MARKER_MESSAGE) + + +def running_under_virtualenv(): + """ + Return True if we're running inside a virtualenv, False otherwise. + + """ + if hasattr(sys, 'real_prefix'): + return True + elif sys.prefix != getattr(sys, "base_prefix", sys.prefix): + return True + + return False + + +def virtualenv_no_global(): + """ + Return True if in a venv and no system site packages. + """ + # this mirrors the logic in virtualenv.py for locating the + # no-global-site-packages.txt file + site_mod_dir = os.path.dirname(os.path.abspath(site.__file__)) + no_global_file = os.path.join(site_mod_dir, 'no-global-site-packages.txt') + if running_under_virtualenv() and os.path.isfile(no_global_file): + return True + + +if running_under_virtualenv(): + src_prefix = os.path.join(sys.prefix, 'src') +else: + # FIXME: keep src in cwd for now (it is not a temporary folder) + try: + src_prefix = os.path.join(os.getcwd(), 'src') + except OSError: + # In case the current working directory has been renamed or deleted + sys.exit( + "The folder you are executing pip from can no longer be found." + ) + +# under macOS + virtualenv sys.prefix is not properly resolved +# it is something like /path/to/python/bin/.. +# Note: using realpath due to tmp dirs on OSX being symlinks +src_prefix = os.path.abspath(src_prefix) + +# FIXME doesn't account for venv linked to global site-packages + +site_packages = sysconfig.get_path("purelib") +# This is because of a bug in PyPy's sysconfig module, see +# https://bitbucket.org/pypy/pypy/issues/2506/sysconfig-returns-incorrect-paths +# for more information. +if platform.python_implementation().lower() == "pypy": + site_packages = distutils_sysconfig.get_python_lib() +try: + # Use getusersitepackages if this is present, as it ensures that the + # value is initialised properly. + user_site = site.getusersitepackages() +except AttributeError: + user_site = site.USER_SITE +user_dir = expanduser('~') +if WINDOWS: + bin_py = os.path.join(sys.prefix, 'Scripts') + bin_user = os.path.join(user_site, 'Scripts') + # buildout uses 'bin' on Windows too? + if not os.path.exists(bin_py): + bin_py = os.path.join(sys.prefix, 'bin') + bin_user = os.path.join(user_site, 'bin') + + config_basename = 'pip.ini' + + legacy_storage_dir = os.path.join(user_dir, 'pip') + legacy_config_file = os.path.join( + legacy_storage_dir, + config_basename, + ) +else: + bin_py = os.path.join(sys.prefix, 'bin') + bin_user = os.path.join(user_site, 'bin') + + config_basename = 'pip.conf' + + legacy_storage_dir = os.path.join(user_dir, '.pip') + legacy_config_file = os.path.join( + legacy_storage_dir, + config_basename, + ) + # Forcing to use /usr/local/bin for standard macOS framework installs + # Also log to ~/Library/Logs/ for use with the Console.app log viewer + if sys.platform[:6] == 'darwin' and sys.prefix[:16] == '/System/Library/': + bin_py = '/usr/local/bin' + +site_config_files = [ + os.path.join(path, config_basename) + for path in appdirs.site_config_dirs('pip') +] + +venv_config_file = os.path.join(sys.prefix, config_basename) +new_config_file = os.path.join(appdirs.user_config_dir("pip"), config_basename) + + +def distutils_scheme(dist_name, user=False, home=None, root=None, + isolated=False, prefix=None): + """ + Return a distutils install scheme + """ + from distutils.dist import Distribution + + scheme = {} + + if isolated: + extra_dist_args = {"script_args": ["--no-user-cfg"]} + else: + extra_dist_args = {} + dist_args = {'name': dist_name} + dist_args.update(extra_dist_args) + + d = Distribution(dist_args) + d.parse_config_files() + i = d.get_command_obj('install', create=True) + # NOTE: setting user or home has the side-effect of creating the home dir + # or user base for installations during finalize_options() + # ideally, we'd prefer a scheme class that has no side-effects. + assert not (user and prefix), "user={} prefix={}".format(user, prefix) + i.user = user or i.user + if user: + i.prefix = "" + i.prefix = prefix or i.prefix + i.home = home or i.home + i.root = root or i.root + i.finalize_options() + for key in SCHEME_KEYS: + scheme[key] = getattr(i, 'install_' + key) + + # install_lib specified in setup.cfg should install *everything* + # into there (i.e. it takes precedence over both purelib and + # platlib). Note, i.install_lib is *always* set after + # finalize_options(); we only want to override here if the user + # has explicitly requested it hence going back to the config + if 'install_lib' in d.get_option_dict('install'): + scheme.update(dict(purelib=i.install_lib, platlib=i.install_lib)) + + if running_under_virtualenv(): + scheme['headers'] = os.path.join( + sys.prefix, + 'include', + 'site', + 'python' + sys.version[:3], + dist_name, + ) + + if root is not None: + path_no_drive = os.path.splitdrive( + os.path.abspath(scheme["headers"]))[1] + scheme["headers"] = os.path.join( + root, + path_no_drive[1:], + ) + + return scheme diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/models/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/models/__init__.py new file mode 100644 index 00000000..505d92c1 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/models/__init__.py @@ -0,0 +1,4 @@ +from pip._internal.models.index import Index, PyPI + + +__all__ = ["Index", "PyPI"] diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/models/index.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/models/index.py new file mode 100644 index 00000000..a7f10c8d --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/models/index.py @@ -0,0 +1,15 @@ +from pip._vendor.six.moves.urllib import parse as urllib_parse + + +class Index(object): + def __init__(self, url): + self.url = url + self.netloc = urllib_parse.urlsplit(url).netloc + self.simple_url = self.url_to_path('simple') + self.pypi_url = self.url_to_path('pypi') + + def url_to_path(self, path): + return urllib_parse.urljoin(self.url, path) + + +PyPI = Index('https://pypi.org/') diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/operations/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/operations/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/operations/check.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/operations/check.py new file mode 100644 index 00000000..b1ad5b60 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/operations/check.py @@ -0,0 +1,106 @@ +"""Validation of dependencies of packages +""" + +from collections import namedtuple + +from pip._vendor.packaging.utils import canonicalize_name + +from pip._internal.operations.prepare import make_abstract_dist + +from pip._internal.utils.misc import get_installed_distributions +from pip._internal.utils.typing import MYPY_CHECK_RUNNING + +if MYPY_CHECK_RUNNING: + from pip._internal.req.req_install import InstallRequirement + from typing import Any, Dict, Iterator, Set, Tuple, List + + # Shorthands + PackageSet = Dict[str, 'PackageDetails'] + Missing = Tuple[str, Any] + Conflicting = Tuple[str, str, Any] + + MissingDict = Dict[str, List[Missing]] + ConflictingDict = Dict[str, List[Conflicting]] + CheckResult = Tuple[MissingDict, ConflictingDict] + +PackageDetails = namedtuple('PackageDetails', ['version', 'requires']) + + +def create_package_set_from_installed(**kwargs): + # type: (**Any) -> PackageSet + """Converts a list of distributions into a PackageSet. + """ + # Default to using all packages installed on the system + if kwargs == {}: + kwargs = {"local_only": False, "skip": ()} + retval = {} + for dist in get_installed_distributions(**kwargs): + name = canonicalize_name(dist.project_name) + retval[name] = PackageDetails(dist.version, dist.requires()) + return retval + + +def check_package_set(package_set): + # type: (PackageSet) -> CheckResult + """Check if a package set is consistent + """ + missing = dict() + conflicting = dict() + + for package_name in package_set: + # Info about dependencies of package_name + missing_deps = set() # type: Set[Missing] + conflicting_deps = set() # type: Set[Conflicting] + + for req in package_set[package_name].requires: + name = canonicalize_name(req.project_name) # type: str + + # Check if it's missing + if name not in package_set: + missed = True + if req.marker is not None: + missed = req.marker.evaluate() + if missed: + missing_deps.add((name, req)) + continue + + # Check if there's a conflict + version = package_set[name].version # type: str + if not req.specifier.contains(version, prereleases=True): + conflicting_deps.add((name, version, req)) + + def str_key(x): + return str(x) + + if missing_deps: + missing[package_name] = sorted(missing_deps, key=str_key) + if conflicting_deps: + conflicting[package_name] = sorted(conflicting_deps, key=str_key) + + return missing, conflicting + + +def check_install_conflicts(to_install): + # type: (List[InstallRequirement]) -> Tuple[PackageSet, CheckResult] + """For checking if the dependency graph would be consistent after \ + installing given requirements + """ + # Start from the current state + state = create_package_set_from_installed() + _simulate_installation_of(to_install, state) + return state, check_package_set(state) + + +# NOTE from @pradyunsg +# This required a minor update in dependency link handling logic over at +# operations.prepare.IsSDist.dist() to get it working +def _simulate_installation_of(to_install, state): + # type: (List[InstallRequirement], PackageSet) -> None + """Computes the version of packages after installing to_install. + """ + + # Modify it as installing requirement_set would (assuming no errors) + for inst_req in to_install: + dist = make_abstract_dist(inst_req).dist(finder=None) + name = canonicalize_name(dist.key) + state[name] = PackageDetails(dist.version, dist.requires()) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/operations/freeze.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/operations/freeze.py new file mode 100644 index 00000000..b6821c0e --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/operations/freeze.py @@ -0,0 +1,252 @@ +from __future__ import absolute_import + +import collections +import logging +import os +import re +import warnings + +from pip._vendor import pkg_resources, six +from pip._vendor.packaging.utils import canonicalize_name +from pip._vendor.pkg_resources import RequirementParseError + +from pip._internal.exceptions import InstallationError +from pip._internal.req import InstallRequirement +from pip._internal.req.req_file import COMMENT_RE +from pip._internal.utils.deprecation import RemovedInPip11Warning +from pip._internal.utils.misc import ( + dist_is_editable, get_installed_distributions, +) + +logger = logging.getLogger(__name__) + + +def freeze( + requirement=None, + find_links=None, local_only=None, user_only=None, skip_regex=None, + isolated=False, + wheel_cache=None, + exclude_editable=False, + skip=()): + find_links = find_links or [] + skip_match = None + + if skip_regex: + skip_match = re.compile(skip_regex).search + + dependency_links = [] + + for dist in pkg_resources.working_set: + if dist.has_metadata('dependency_links.txt'): + dependency_links.extend( + dist.get_metadata_lines('dependency_links.txt') + ) + for link in find_links: + if '#egg=' in link: + dependency_links.append(link) + for link in find_links: + yield '-f %s' % link + installations = {} + for dist in get_installed_distributions(local_only=local_only, + skip=(), + user_only=user_only): + try: + req = FrozenRequirement.from_dist( + dist, + dependency_links + ) + except RequirementParseError: + logger.warning( + "Could not parse requirement: %s", + dist.project_name + ) + continue + if exclude_editable and req.editable: + continue + installations[req.name] = req + + if requirement: + # the options that don't get turned into an InstallRequirement + # should only be emitted once, even if the same option is in multiple + # requirements files, so we need to keep track of what has been emitted + # so that we don't emit it again if it's seen again + emitted_options = set() + # keep track of which files a requirement is in so that we can + # give an accurate warning if a requirement appears multiple times. + req_files = collections.defaultdict(list) + for req_file_path in requirement: + with open(req_file_path) as req_file: + for line in req_file: + if (not line.strip() or + line.strip().startswith('#') or + (skip_match and skip_match(line)) or + line.startswith(( + '-r', '--requirement', + '-Z', '--always-unzip', + '-f', '--find-links', + '-i', '--index-url', + '--pre', + '--trusted-host', + '--process-dependency-links', + '--extra-index-url'))): + line = line.rstrip() + if line not in emitted_options: + emitted_options.add(line) + yield line + continue + + if line.startswith('-e') or line.startswith('--editable'): + if line.startswith('-e'): + line = line[2:].strip() + else: + line = line[len('--editable'):].strip().lstrip('=') + line_req = InstallRequirement.from_editable( + line, + isolated=isolated, + wheel_cache=wheel_cache, + ) + else: + line_req = InstallRequirement.from_line( + COMMENT_RE.sub('', line).strip(), + isolated=isolated, + wheel_cache=wheel_cache, + ) + + if not line_req.name: + logger.info( + "Skipping line in requirement file [%s] because " + "it's not clear what it would install: %s", + req_file_path, line.strip(), + ) + logger.info( + " (add #egg=PackageName to the URL to avoid" + " this warning)" + ) + elif line_req.name not in installations: + # either it's not installed, or it is installed + # but has been processed already + if not req_files[line_req.name]: + logger.warning( + "Requirement file [%s] contains %s, but that " + "package is not installed", + req_file_path, + COMMENT_RE.sub('', line).strip(), + ) + else: + req_files[line_req.name].append(req_file_path) + else: + yield str(installations[line_req.name]).rstrip() + del installations[line_req.name] + req_files[line_req.name].append(req_file_path) + + # Warn about requirements that were included multiple times (in a + # single requirements file or in different requirements files). + for name, files in six.iteritems(req_files): + if len(files) > 1: + logger.warning("Requirement %s included multiple times [%s]", + name, ', '.join(sorted(set(files)))) + + yield( + '## The following requirements were added by ' + 'pip freeze:' + ) + for installation in sorted( + installations.values(), key=lambda x: x.name.lower()): + if canonicalize_name(installation.name) not in skip: + yield str(installation).rstrip() + + +class FrozenRequirement(object): + def __init__(self, name, req, editable, comments=()): + self.name = name + self.req = req + self.editable = editable + self.comments = comments + + _rev_re = re.compile(r'-r(\d+)$') + _date_re = re.compile(r'-(20\d\d\d\d\d\d)$') + + @classmethod + def from_dist(cls, dist, dependency_links): + location = os.path.normcase(os.path.abspath(dist.location)) + comments = [] + from pip._internal.vcs import vcs, get_src_requirement + if dist_is_editable(dist) and vcs.get_backend_name(location): + editable = True + try: + req = get_src_requirement(dist, location) + except InstallationError as exc: + logger.warning( + "Error when trying to get requirement for VCS system %s, " + "falling back to uneditable format", exc + ) + req = None + if req is None: + logger.warning( + 'Could not determine repository location of %s', location + ) + comments.append( + '## !! Could not determine repository location' + ) + req = dist.as_requirement() + editable = False + else: + editable = False + req = dist.as_requirement() + specs = req.specs + assert len(specs) == 1 and specs[0][0] in ["==", "==="], \ + 'Expected 1 spec with == or ===; specs = %r; dist = %r' % \ + (specs, dist) + version = specs[0][1] + ver_match = cls._rev_re.search(version) + date_match = cls._date_re.search(version) + if ver_match or date_match: + svn_backend = vcs.get_backend('svn') + if svn_backend: + svn_location = svn_backend().get_location( + dist, + dependency_links, + ) + if not svn_location: + logger.warning( + 'Warning: cannot find svn location for %s', req, + ) + comments.append( + '## FIXME: could not find svn URL in dependency_links ' + 'for this package:' + ) + else: + warnings.warn( + "SVN editable detection based on dependency links " + "will be dropped in the future.", + RemovedInPip11Warning, + ) + comments.append( + '# Installing as editable to satisfy requirement %s:' % + req + ) + if ver_match: + rev = ver_match.group(1) + else: + rev = '{%s}' % date_match.group(1) + editable = True + req = '%s@%s#egg=%s' % ( + svn_location, + rev, + cls.egg_name(dist) + ) + return cls(dist.project_name, req, editable, comments) + + @staticmethod + def egg_name(dist): + name = dist.egg_name() + match = re.search(r'-py\d\.\d$', name) + if match: + name = name[:match.start()] + return name + + def __str__(self): + req = self.req + if self.editable: + req = '-e %s' % req + return '\n'.join(list(self.comments) + [str(req)]) + '\n' diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/operations/prepare.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/operations/prepare.py new file mode 100644 index 00000000..27e3a5dd --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/operations/prepare.py @@ -0,0 +1,380 @@ +"""Prepares a distribution for installation +""" + +import itertools +import logging +import os +import sys +from copy import copy + +from pip._vendor import pkg_resources, requests + +from pip._internal.build_env import NoOpBuildEnvironment +from pip._internal.compat import expanduser +from pip._internal.download import ( + is_dir_url, is_file_url, is_vcs_url, unpack_url, url_to_path, +) +from pip._internal.exceptions import ( + DirectoryUrlHashUnsupported, HashUnpinned, InstallationError, + PreviousBuildDirError, VcsHashUnsupported, +) +from pip._internal.index import FormatControl +from pip._internal.req.req_install import InstallRequirement +from pip._internal.utils.hashes import MissingHashes +from pip._internal.utils.logging import indent_log +from pip._internal.utils.misc import ( + call_subprocess, display_path, normalize_path, +) +from pip._internal.utils.ui import open_spinner +from pip._internal.vcs import vcs + +logger = logging.getLogger(__name__) + + +def make_abstract_dist(req): + """Factory to make an abstract dist object. + + Preconditions: Either an editable req with a source_dir, or satisfied_by or + a wheel link, or a non-editable req with a source_dir. + + :return: A concrete DistAbstraction. + """ + if req.editable: + return IsSDist(req) + elif req.link and req.link.is_wheel: + return IsWheel(req) + else: + return IsSDist(req) + + +def _install_build_reqs(finder, prefix, build_requirements): + # NOTE: What follows is not a very good thing. + # Eventually, this should move into the BuildEnvironment class and + # that should handle all the isolation and sub-process invocation. + finder = copy(finder) + finder.format_control = FormatControl(set(), set([":all:"])) + urls = [ + finder.find_requirement( + InstallRequirement.from_line(r), upgrade=False).url + for r in build_requirements + ] + args = [ + sys.executable, '-m', 'pip', 'install', '--ignore-installed', + '--no-user', '--prefix', prefix, + ] + list(urls) + + with open_spinner("Installing build dependencies") as spinner: + call_subprocess(args, show_stdout=False, spinner=spinner) + + +class DistAbstraction(object): + """Abstracts out the wheel vs non-wheel Resolver.resolve() logic. + + The requirements for anything installable are as follows: + - we must be able to determine the requirement name + (or we can't correctly handle the non-upgrade case). + - we must be able to generate a list of run-time dependencies + without installing any additional packages (or we would + have to either burn time by doing temporary isolated installs + or alternatively violate pips 'don't start installing unless + all requirements are available' rule - neither of which are + desirable). + - for packages with setup requirements, we must also be able + to determine their requirements without installing additional + packages (for the same reason as run-time dependencies) + - we must be able to create a Distribution object exposing the + above metadata. + """ + + def __init__(self, req): + self.req = req + + def dist(self, finder): + """Return a setuptools Dist object.""" + raise NotImplementedError(self.dist) + + def prep_for_dist(self, finder): + """Ensure that we can get a Dist for this requirement.""" + raise NotImplementedError(self.dist) + + +class IsWheel(DistAbstraction): + + def dist(self, finder): + return list(pkg_resources.find_distributions( + self.req.source_dir))[0] + + def prep_for_dist(self, finder, build_isolation): + # FIXME:https://github.com/pypa/pip/issues/1112 + pass + + +class IsSDist(DistAbstraction): + + def dist(self, finder): + dist = self.req.get_dist() + # FIXME: shouldn't be globally added. + if finder and dist.has_metadata('dependency_links.txt'): + finder.add_dependency_links( + dist.get_metadata_lines('dependency_links.txt') + ) + return dist + + def prep_for_dist(self, finder, build_isolation): + # Before calling "setup.py egg_info", we need to set-up the build + # environment. + build_requirements, isolate = self.req.get_pep_518_info() + should_isolate = build_isolation and isolate + + minimum_requirements = ('setuptools', 'wheel') + missing_requirements = set(minimum_requirements) - set( + pkg_resources.Requirement(r).key + for r in build_requirements + ) + if missing_requirements: + def format_reqs(rs): + return ' and '.join(map(repr, sorted(rs))) + logger.warning( + "Missing build time requirements in pyproject.toml for %s: " + "%s.", self.req, format_reqs(missing_requirements) + ) + logger.warning( + "This version of pip does not implement PEP 517 so it cannot " + "build a wheel without %s.", format_reqs(minimum_requirements) + ) + + if should_isolate: + with self.req.build_env: + pass + _install_build_reqs(finder, self.req.build_env.path, + build_requirements) + else: + self.req.build_env = NoOpBuildEnvironment(no_clean=False) + + self.req.run_egg_info() + self.req.assert_source_matches_version() + + +class Installed(DistAbstraction): + + def dist(self, finder): + return self.req.satisfied_by + + def prep_for_dist(self, finder): + pass + + +class RequirementPreparer(object): + """Prepares a Requirement + """ + + def __init__(self, build_dir, download_dir, src_dir, wheel_download_dir, + progress_bar, build_isolation): + super(RequirementPreparer, self).__init__() + + self.src_dir = src_dir + self.build_dir = build_dir + + # Where still packed archives should be written to. If None, they are + # not saved, and are deleted immediately after unpacking. + self.download_dir = download_dir + + # Where still-packed .whl files should be written to. If None, they are + # written to the download_dir parameter. Separate to download_dir to + # permit only keeping wheel archives for pip wheel. + if wheel_download_dir: + wheel_download_dir = normalize_path(wheel_download_dir) + self.wheel_download_dir = wheel_download_dir + + # NOTE + # download_dir and wheel_download_dir overlap semantically and may + # be combined if we're willing to have non-wheel archives present in + # the wheelhouse output by 'pip wheel'. + + self.progress_bar = progress_bar + + # Is build isolation allowed? + self.build_isolation = build_isolation + + @property + def _download_should_save(self): + # TODO: Modify to reduce indentation needed + if self.download_dir: + self.download_dir = expanduser(self.download_dir) + if os.path.exists(self.download_dir): + return True + else: + logger.critical('Could not find download directory') + raise InstallationError( + "Could not find or access download directory '%s'" + % display_path(self.download_dir)) + return False + + def prepare_linked_requirement(self, req, session, finder, + upgrade_allowed, require_hashes): + """Prepare a requirement that would be obtained from req.link + """ + # TODO: Breakup into smaller functions + if req.link and req.link.scheme == 'file': + path = url_to_path(req.link.url) + logger.info('Processing %s', display_path(path)) + else: + logger.info('Collecting %s', req) + + with indent_log(): + # @@ if filesystem packages are not marked + # editable in a req, a non deterministic error + # occurs when the script attempts to unpack the + # build directory + req.ensure_has_source_dir(self.build_dir) + # If a checkout exists, it's unwise to keep going. version + # inconsistencies are logged later, but do not fail the + # installation. + # FIXME: this won't upgrade when there's an existing + # package unpacked in `req.source_dir` + # package unpacked in `req.source_dir` + if os.path.exists(os.path.join(req.source_dir, 'setup.py')): + raise PreviousBuildDirError( + "pip can't proceed with requirements '%s' due to a" + " pre-existing build directory (%s). This is " + "likely due to a previous installation that failed" + ". pip is being responsible and not assuming it " + "can delete this. Please delete it and try again." + % (req, req.source_dir) + ) + req.populate_link(finder, upgrade_allowed, require_hashes) + + # We can't hit this spot and have populate_link return None. + # req.satisfied_by is None here (because we're + # guarded) and upgrade has no impact except when satisfied_by + # is not None. + # Then inside find_requirement existing_applicable -> False + # If no new versions are found, DistributionNotFound is raised, + # otherwise a result is guaranteed. + assert req.link + link = req.link + + # Now that we have the real link, we can tell what kind of + # requirements we have and raise some more informative errors + # than otherwise. (For example, we can raise VcsHashUnsupported + # for a VCS URL rather than HashMissing.) + if require_hashes: + # We could check these first 2 conditions inside + # unpack_url and save repetition of conditions, but then + # we would report less-useful error messages for + # unhashable requirements, complaining that there's no + # hash provided. + if is_vcs_url(link): + raise VcsHashUnsupported() + elif is_file_url(link) and is_dir_url(link): + raise DirectoryUrlHashUnsupported() + if not req.original_link and not req.is_pinned: + # Unpinned packages are asking for trouble when a new + # version is uploaded. This isn't a security check, but + # it saves users a surprising hash mismatch in the + # future. + # + # file:/// URLs aren't pinnable, so don't complain + # about them not being pinned. + raise HashUnpinned() + + hashes = req.hashes(trust_internet=not require_hashes) + if require_hashes and not hashes: + # Known-good hashes are missing for this requirement, so + # shim it with a facade object that will provoke hash + # computation and then raise a HashMissing exception + # showing the user what the hash should be. + hashes = MissingHashes() + + try: + download_dir = self.download_dir + # We always delete unpacked sdists after pip ran. + autodelete_unpacked = True + if req.link.is_wheel and self.wheel_download_dir: + # when doing 'pip wheel` we download wheels to a + # dedicated dir. + download_dir = self.wheel_download_dir + if req.link.is_wheel: + if download_dir: + # When downloading, we only unpack wheels to get + # metadata. + autodelete_unpacked = True + else: + # When installing a wheel, we use the unpacked + # wheel. + autodelete_unpacked = False + unpack_url( + req.link, req.source_dir, + download_dir, autodelete_unpacked, + session=session, hashes=hashes, + progress_bar=self.progress_bar + ) + except requests.HTTPError as exc: + logger.critical( + 'Could not install requirement %s because of error %s', + req, + exc, + ) + raise InstallationError( + 'Could not install requirement %s because of HTTP ' + 'error %s for URL %s' % + (req, exc, req.link) + ) + abstract_dist = make_abstract_dist(req) + abstract_dist.prep_for_dist(finder, self.build_isolation) + if self._download_should_save: + # Make a .zip of the source_dir we already created. + if req.link.scheme in vcs.all_schemes: + req.archive(self.download_dir) + return abstract_dist + + def prepare_editable_requirement(self, req, require_hashes, use_user_site, + finder): + """Prepare an editable requirement + """ + assert req.editable, "cannot prepare a non-editable req as editable" + + logger.info('Obtaining %s', req) + + with indent_log(): + if require_hashes: + raise InstallationError( + 'The editable requirement %s cannot be installed when ' + 'requiring hashes, because there is no single file to ' + 'hash.' % req + ) + req.ensure_has_source_dir(self.src_dir) + req.update_editable(not self._download_should_save) + + abstract_dist = make_abstract_dist(req) + abstract_dist.prep_for_dist(finder, self.build_isolation) + + if self._download_should_save: + req.archive(self.download_dir) + req.check_if_exists(use_user_site) + + return abstract_dist + + def prepare_installed_requirement(self, req, require_hashes, skip_reason): + """Prepare an already-installed requirement + """ + assert req.satisfied_by, "req should have been satisfied but isn't" + assert skip_reason is not None, ( + "did not get skip reason skipped but req.satisfied_by " + "is set to %r" % (req.satisfied_by,) + ) + logger.info( + 'Requirement %s: %s (%s)', + skip_reason, req, req.satisfied_by.version + ) + with indent_log(): + if require_hashes: + logger.debug( + 'Since it is already installed, we are trusting this ' + 'package without checking its hash. To ensure a ' + 'completely repeatable environment, install into an ' + 'empty virtualenv.' + ) + abstract_dist = Installed(req) + + return abstract_dist diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/pep425tags.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/pep425tags.py new file mode 100644 index 00000000..0b5c7832 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/pep425tags.py @@ -0,0 +1,317 @@ +"""Generate and work with PEP 425 Compatibility Tags.""" +from __future__ import absolute_import + +import distutils.util +import logging +import platform +import re +import sys +import sysconfig +import warnings +from collections import OrderedDict + +import pip._internal.utils.glibc + +logger = logging.getLogger(__name__) + +_osx_arch_pat = re.compile(r'(.+)_(\d+)_(\d+)_(.+)') + + +def get_config_var(var): + try: + return sysconfig.get_config_var(var) + except IOError as e: # Issue #1074 + warnings.warn("{}".format(e), RuntimeWarning) + return None + + +def get_abbr_impl(): + """Return abbreviated implementation name.""" + if hasattr(sys, 'pypy_version_info'): + pyimpl = 'pp' + elif sys.platform.startswith('java'): + pyimpl = 'jy' + elif sys.platform == 'cli': + pyimpl = 'ip' + else: + pyimpl = 'cp' + return pyimpl + + +def get_impl_ver(): + """Return implementation version.""" + impl_ver = get_config_var("py_version_nodot") + if not impl_ver or get_abbr_impl() == 'pp': + impl_ver = ''.join(map(str, get_impl_version_info())) + return impl_ver + + +def get_impl_version_info(): + """Return sys.version_info-like tuple for use in decrementing the minor + version.""" + if get_abbr_impl() == 'pp': + # as per https://github.com/pypa/pip/issues/2882 + return (sys.version_info[0], sys.pypy_version_info.major, + sys.pypy_version_info.minor) + else: + return sys.version_info[0], sys.version_info[1] + + +def get_impl_tag(): + """ + Returns the Tag for this specific implementation. + """ + return "{}{}".format(get_abbr_impl(), get_impl_ver()) + + +def get_flag(var, fallback, expected=True, warn=True): + """Use a fallback method for determining SOABI flags if the needed config + var is unset or unavailable.""" + val = get_config_var(var) + if val is None: + if warn: + logger.debug("Config variable '%s' is unset, Python ABI tag may " + "be incorrect", var) + return fallback() + return val == expected + + +def get_abi_tag(): + """Return the ABI tag based on SOABI (if available) or emulate SOABI + (CPython 2, PyPy).""" + soabi = get_config_var('SOABI') + impl = get_abbr_impl() + if not soabi and impl in {'cp', 'pp'} and hasattr(sys, 'maxunicode'): + d = '' + m = '' + u = '' + if get_flag('Py_DEBUG', + lambda: hasattr(sys, 'gettotalrefcount'), + warn=(impl == 'cp')): + d = 'd' + if get_flag('WITH_PYMALLOC', + lambda: impl == 'cp', + warn=(impl == 'cp')): + m = 'm' + if get_flag('Py_UNICODE_SIZE', + lambda: sys.maxunicode == 0x10ffff, + expected=4, + warn=(impl == 'cp' and + sys.version_info < (3, 3))) \ + and sys.version_info < (3, 3): + u = 'u' + abi = '%s%s%s%s%s' % (impl, get_impl_ver(), d, m, u) + elif soabi and soabi.startswith('cpython-'): + abi = 'cp' + soabi.split('-')[1] + elif soabi: + abi = soabi.replace('.', '_').replace('-', '_') + else: + abi = None + return abi + + +def _is_running_32bit(): + return sys.maxsize == 2147483647 + + +def get_platform(): + """Return our platform name 'win32', 'linux_x86_64'""" + if sys.platform == 'darwin': + # distutils.util.get_platform() returns the release based on the value + # of MACOSX_DEPLOYMENT_TARGET on which Python was built, which may + # be significantly older than the user's current machine. + release, _, machine = platform.mac_ver() + split_ver = release.split('.') + + if machine == "x86_64" and _is_running_32bit(): + machine = "i386" + elif machine == "ppc64" and _is_running_32bit(): + machine = "ppc" + + return 'macosx_{}_{}_{}'.format(split_ver[0], split_ver[1], machine) + + # XXX remove distutils dependency + result = distutils.util.get_platform().replace('.', '_').replace('-', '_') + if result == "linux_x86_64" and _is_running_32bit(): + # 32 bit Python program (running on a 64 bit Linux): pip should only + # install and run 32 bit compiled extensions in that case. + result = "linux_i686" + + return result + + +def is_manylinux1_compatible(): + # Only Linux, and only x86-64 / i686 + if get_platform() not in {"linux_x86_64", "linux_i686"}: + return False + + # Check for presence of _manylinux module + try: + import _manylinux + return bool(_manylinux.manylinux1_compatible) + except (ImportError, AttributeError): + # Fall through to heuristic check below + pass + + # Check glibc version. CentOS 5 uses glibc 2.5. + return pip._internal.utils.glibc.have_compatible_glibc(2, 5) + + +def get_darwin_arches(major, minor, machine): + """Return a list of supported arches (including group arches) for + the given major, minor and machine architecture of an macOS machine. + """ + arches = [] + + def _supports_arch(major, minor, arch): + # Looking at the application support for macOS versions in the chart + # provided by https://en.wikipedia.org/wiki/OS_X#Versions it appears + # our timeline looks roughly like: + # + # 10.0 - Introduces ppc support. + # 10.4 - Introduces ppc64, i386, and x86_64 support, however the ppc64 + # and x86_64 support is CLI only, and cannot be used for GUI + # applications. + # 10.5 - Extends ppc64 and x86_64 support to cover GUI applications. + # 10.6 - Drops support for ppc64 + # 10.7 - Drops support for ppc + # + # Given that we do not know if we're installing a CLI or a GUI + # application, we must be conservative and assume it might be a GUI + # application and behave as if ppc64 and x86_64 support did not occur + # until 10.5. + # + # Note: The above information is taken from the "Application support" + # column in the chart not the "Processor support" since I believe + # that we care about what instruction sets an application can use + # not which processors the OS supports. + if arch == 'ppc': + return (major, minor) <= (10, 5) + if arch == 'ppc64': + return (major, minor) == (10, 5) + if arch == 'i386': + return (major, minor) >= (10, 4) + if arch == 'x86_64': + return (major, minor) >= (10, 5) + if arch in groups: + for garch in groups[arch]: + if _supports_arch(major, minor, garch): + return True + return False + + groups = OrderedDict([ + ("fat", ("i386", "ppc")), + ("intel", ("x86_64", "i386")), + ("fat64", ("x86_64", "ppc64")), + ("fat32", ("x86_64", "i386", "ppc")), + ]) + + if _supports_arch(major, minor, machine): + arches.append(machine) + + for garch in groups: + if machine in groups[garch] and _supports_arch(major, minor, garch): + arches.append(garch) + + arches.append('universal') + + return arches + + +def get_supported(versions=None, noarch=False, platform=None, + impl=None, abi=None): + """Return a list of supported tags for each version specified in + `versions`. + + :param versions: a list of string versions, of the form ["33", "32"], + or None. The first version will be assumed to support our ABI. + :param platform: specify the exact platform you want valid + tags for, or None. If None, use the local system platform. + :param impl: specify the exact implementation you want valid + tags for, or None. If None, use the local interpreter impl. + :param abi: specify the exact abi you want valid + tags for, or None. If None, use the local interpreter abi. + """ + supported = [] + + # Versions must be given with respect to the preference + if versions is None: + versions = [] + version_info = get_impl_version_info() + major = version_info[:-1] + # Support all previous minor Python versions. + for minor in range(version_info[-1], -1, -1): + versions.append(''.join(map(str, major + (minor,)))) + + impl = impl or get_abbr_impl() + + abis = [] + + abi = abi or get_abi_tag() + if abi: + abis[0:0] = [abi] + + abi3s = set() + import imp + for suffix in imp.get_suffixes(): + if suffix[0].startswith('.abi'): + abi3s.add(suffix[0].split('.', 2)[1]) + + abis.extend(sorted(list(abi3s))) + + abis.append('none') + + if not noarch: + arch = platform or get_platform() + if arch.startswith('macosx'): + # support macosx-10.6-intel on macosx-10.9-x86_64 + match = _osx_arch_pat.match(arch) + if match: + name, major, minor, actual_arch = match.groups() + tpl = '{}_{}_%i_%s'.format(name, major) + arches = [] + for m in reversed(range(int(minor) + 1)): + for a in get_darwin_arches(int(major), m, actual_arch): + arches.append(tpl % (m, a)) + else: + # arch pattern didn't match (?!) + arches = [arch] + elif platform is None and is_manylinux1_compatible(): + arches = [arch.replace('linux', 'manylinux1'), arch] + else: + arches = [arch] + + # Current version, current API (built specifically for our Python): + for abi in abis: + for arch in arches: + supported.append(('%s%s' % (impl, versions[0]), abi, arch)) + + # abi3 modules compatible with older version of Python + for version in versions[1:]: + # abi3 was introduced in Python 3.2 + if version in {'31', '30'}: + break + for abi in abi3s: # empty set if not Python 3 + for arch in arches: + supported.append(("%s%s" % (impl, version), abi, arch)) + + # Has binaries, does not use the Python API: + for arch in arches: + supported.append(('py%s' % (versions[0][0]), 'none', arch)) + + # No abi / arch, but requires our implementation: + supported.append(('%s%s' % (impl, versions[0]), 'none', 'any')) + # Tagged specifically as being cross-version compatible + # (with just the major version specified) + supported.append(('%s%s' % (impl, versions[0][0]), 'none', 'any')) + + # No abi / arch, generic Python + for i, version in enumerate(versions): + supported.append(('py%s' % (version,), 'none', 'any')) + if i == 0: + supported.append(('py%s' % (version[0]), 'none', 'any')) + + return supported + + +implementation_tag = get_impl_tag() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/__init__.py new file mode 100644 index 00000000..c9b4c3ce --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/__init__.py @@ -0,0 +1,69 @@ +from __future__ import absolute_import + +import logging + +from .req_install import InstallRequirement +from .req_set import RequirementSet +from .req_file import parse_requirements +from pip._internal.utils.logging import indent_log + + +__all__ = [ + "RequirementSet", "InstallRequirement", + "parse_requirements", "install_given_reqs", +] + +logger = logging.getLogger(__name__) + + +def install_given_reqs(to_install, install_options, global_options=(), + *args, **kwargs): + """ + Install everything in the given list. + + (to be called after having downloaded and unpacked the packages) + """ + + if to_install: + logger.info( + 'Installing collected packages: %s', + ', '.join([req.name for req in to_install]), + ) + + with indent_log(): + for requirement in to_install: + if requirement.conflicts_with: + logger.info( + 'Found existing installation: %s', + requirement.conflicts_with, + ) + with indent_log(): + uninstalled_pathset = requirement.uninstall( + auto_confirm=True + ) + try: + requirement.install( + install_options, + global_options, + *args, + **kwargs + ) + except: + should_rollback = ( + requirement.conflicts_with and + not requirement.install_succeeded + ) + # if install did not succeed, rollback previous uninstall + if should_rollback: + uninstalled_pathset.rollback() + raise + else: + should_commit = ( + requirement.conflicts_with and + requirement.install_succeeded + ) + if should_commit: + uninstalled_pathset.commit() + requirement.remove_temporary_source() + + return to_install diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/req_file.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/req_file.py new file mode 100644 index 00000000..f8684979 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/req_file.py @@ -0,0 +1,338 @@ +""" +Requirements file parsing +""" + +from __future__ import absolute_import + +import optparse +import os +import re +import shlex +import sys + +from pip._vendor.six.moves import filterfalse +from pip._vendor.six.moves.urllib import parse as urllib_parse + +from pip._internal import cmdoptions +from pip._internal.download import get_file_content +from pip._internal.exceptions import RequirementsFileParseError +from pip._internal.req.req_install import InstallRequirement + +__all__ = ['parse_requirements'] + +SCHEME_RE = re.compile(r'^(http|https|file):', re.I) +COMMENT_RE = re.compile(r'(^|\s)+#.*$') + +# Matches environment variable-style values in '${MY_VARIABLE_1}' with the +# variable name consisting of only uppercase letters, digits or the '_' +# (underscore). This follows the POSIX standard defined in IEEE Std 1003.1, +# 2013 Edition. +ENV_VAR_RE = re.compile(r'(?P\$\{(?P[A-Z0-9_]+)\})') + +SUPPORTED_OPTIONS = [ + cmdoptions.constraints, + cmdoptions.editable, + cmdoptions.requirements, + cmdoptions.no_index, + cmdoptions.index_url, + cmdoptions.find_links, + cmdoptions.extra_index_url, + cmdoptions.always_unzip, + cmdoptions.no_binary, + cmdoptions.only_binary, + cmdoptions.pre, + cmdoptions.process_dependency_links, + cmdoptions.trusted_host, + cmdoptions.require_hashes, +] + +# options to be passed to requirements +SUPPORTED_OPTIONS_REQ = [ + cmdoptions.install_options, + cmdoptions.global_options, + cmdoptions.hash, +] + +# the 'dest' string values +SUPPORTED_OPTIONS_REQ_DEST = [o().dest for o in SUPPORTED_OPTIONS_REQ] + + +def parse_requirements(filename, finder=None, comes_from=None, options=None, + session=None, constraint=False, wheel_cache=None): + """Parse a requirements file and yield InstallRequirement instances. + + :param filename: Path or url of requirements file. + :param finder: Instance of pip.index.PackageFinder. + :param comes_from: Origin description of requirements. + :param options: cli options. + :param session: Instance of pip.download.PipSession. + :param constraint: If true, parsing a constraint file rather than + requirements file. + :param wheel_cache: Instance of pip.wheel.WheelCache + """ + if session is None: + raise TypeError( + "parse_requirements() missing 1 required keyword argument: " + "'session'" + ) + + _, content = get_file_content( + filename, comes_from=comes_from, session=session + ) + + lines_enum = preprocess(content, options) + + for line_number, line in lines_enum: + req_iter = process_line(line, filename, line_number, finder, + comes_from, options, session, wheel_cache, + constraint=constraint) + for req in req_iter: + yield req + + +def preprocess(content, options): + """Split, filter, and join lines, and return a line iterator + + :param content: the content of the requirements file + :param options: cli options + """ + lines_enum = enumerate(content.splitlines(), start=1) + lines_enum = join_lines(lines_enum) + lines_enum = ignore_comments(lines_enum) + lines_enum = skip_regex(lines_enum, options) + lines_enum = expand_env_variables(lines_enum) + return lines_enum + + +def process_line(line, filename, line_number, finder=None, comes_from=None, + options=None, session=None, wheel_cache=None, + constraint=False): + """Process a single requirements line; This can result in creating/yielding + requirements, or updating the finder. + + For lines that contain requirements, the only options that have an effect + are from SUPPORTED_OPTIONS_REQ, and they are scoped to the + requirement. Other options from SUPPORTED_OPTIONS may be present, but are + ignored. + + For lines that do not contain requirements, the only options that have an + effect are from SUPPORTED_OPTIONS. Options from SUPPORTED_OPTIONS_REQ may + be present, but are ignored. These lines may contain multiple options + (although our docs imply only one is supported), and all our parsed and + affect the finder. + + :param constraint: If True, parsing a constraints file. + :param options: OptionParser options that we may update + """ + parser = build_parser(line) + defaults = parser.get_default_values() + defaults.index_url = None + if finder: + # `finder.format_control` will be updated during parsing + defaults.format_control = finder.format_control + args_str, options_str = break_args_options(line) + if sys.version_info < (2, 7, 3): + # Prior to 2.7.3, shlex cannot deal with unicode entries + options_str = options_str.encode('utf8') + opts, _ = parser.parse_args(shlex.split(options_str), defaults) + + # preserve for the nested code path + line_comes_from = '%s %s (line %s)' % ( + '-c' if constraint else '-r', filename, line_number, + ) + + # yield a line requirement + if args_str: + isolated = options.isolated_mode if options else False + if options: + cmdoptions.check_install_build_global(options, opts) + # get the options that apply to requirements + req_options = {} + for dest in SUPPORTED_OPTIONS_REQ_DEST: + if dest in opts.__dict__ and opts.__dict__[dest]: + req_options[dest] = opts.__dict__[dest] + yield InstallRequirement.from_line( + args_str, line_comes_from, constraint=constraint, + isolated=isolated, options=req_options, wheel_cache=wheel_cache + ) + + # yield an editable requirement + elif opts.editables: + isolated = options.isolated_mode if options else False + yield InstallRequirement.from_editable( + opts.editables[0], comes_from=line_comes_from, + constraint=constraint, isolated=isolated, wheel_cache=wheel_cache + ) + + # parse a nested requirements file + elif opts.requirements or opts.constraints: + if opts.requirements: + req_path = opts.requirements[0] + nested_constraint = False + else: + req_path = opts.constraints[0] + nested_constraint = True + # original file is over http + if SCHEME_RE.search(filename): + # do a url join so relative paths work + req_path = urllib_parse.urljoin(filename, req_path) + # original file and nested file are paths + elif not SCHEME_RE.search(req_path): + # do a join so relative paths work + req_path = os.path.join(os.path.dirname(filename), req_path) + # TODO: Why not use `comes_from='-r {} (line {})'` here as well? + parser = parse_requirements( + req_path, finder, comes_from, options, session, + constraint=nested_constraint, wheel_cache=wheel_cache + ) + for req in parser: + yield req + + # percolate hash-checking option upward + elif opts.require_hashes: + options.require_hashes = opts.require_hashes + + # set finder options + elif finder: + if opts.index_url: + finder.index_urls = [opts.index_url] + if opts.no_index is True: + finder.index_urls = [] + if opts.extra_index_urls: + finder.index_urls.extend(opts.extra_index_urls) + if opts.find_links: + # FIXME: it would be nice to keep track of the source + # of the find_links: support a find-links local path + # relative to a requirements file. + value = opts.find_links[0] + req_dir = os.path.dirname(os.path.abspath(filename)) + relative_to_reqs_file = os.path.join(req_dir, value) + if os.path.exists(relative_to_reqs_file): + value = relative_to_reqs_file + finder.find_links.append(value) + if opts.pre: + finder.allow_all_prereleases = True + if opts.process_dependency_links: + finder.process_dependency_links = True + if opts.trusted_hosts: + finder.secure_origins.extend( + ("*", host, "*") for host in opts.trusted_hosts) + + +def break_args_options(line): + """Break up the line into an args and options string. We only want to shlex + (and then optparse) the options, not the args. args can contain markers + which are corrupted by shlex. + """ + tokens = line.split(' ') + args = [] + options = tokens[:] + for token in tokens: + if token.startswith('-') or token.startswith('--'): + break + else: + args.append(token) + options.pop(0) + return ' '.join(args), ' '.join(options) + + +def build_parser(line): + """ + Return a parser for parsing requirement lines + """ + parser = optparse.OptionParser(add_help_option=False) + + option_factories = SUPPORTED_OPTIONS + SUPPORTED_OPTIONS_REQ + for option_factory in option_factories: + option = option_factory() + parser.add_option(option) + + # By default optparse sys.exits on parsing errors. We want to wrap + # that in our own exception. + def parser_exit(self, msg): + # add offending line + msg = 'Invalid requirement: %s\n%s' % (line, msg) + raise RequirementsFileParseError(msg) + parser.exit = parser_exit + + return parser + + +def join_lines(lines_enum): + """Joins a line ending in '\' with the previous line (except when following + comments). The joined line takes on the index of the first line. + """ + primary_line_number = None + new_line = [] + for line_number, line in lines_enum: + if not line.endswith('\\') or COMMENT_RE.match(line): + if COMMENT_RE.match(line): + # this ensures comments are always matched later + line = ' ' + line + if new_line: + new_line.append(line) + yield primary_line_number, ''.join(new_line) + new_line = [] + else: + yield line_number, line + else: + if not new_line: + primary_line_number = line_number + new_line.append(line.strip('\\')) + + # last line contains \ + if new_line: + yield primary_line_number, ''.join(new_line) + + # TODO: handle space after '\'. + + +def ignore_comments(lines_enum): + """ + Strips comments and filter empty lines. + """ + for line_number, line in lines_enum: + line = COMMENT_RE.sub('', line) + line = line.strip() + if line: + yield line_number, line + + +def skip_regex(lines_enum, options): + """ + Skip lines that match '--skip-requirements-regex' pattern + + Note: the regex pattern is only built once + """ + skip_regex = options.skip_requirements_regex if options else None + if skip_regex: + pattern = re.compile(skip_regex) + lines_enum = filterfalse(lambda e: pattern.search(e[1]), lines_enum) + return lines_enum + + +def expand_env_variables(lines_enum): + """Replace all environment variables that can be retrieved via `os.getenv`. + + The only allowed format for environment variables defined in the + requirement file is `${MY_VARIABLE_1}` to ensure two things: + + 1. Strings that contain a `$` aren't accidentally (partially) expanded. + 2. Ensure consistency across platforms for requirement files. + + These points are the result of a discusssion on the `github pull + request #3514 `_. + + Valid characters in variable names follow the `POSIX standard + `_ and are limited + to uppercase letter, digits and the `_` (underscore). + """ + for line_number, line in lines_enum: + for env_var, var_name in ENV_VAR_RE.findall(line): + value = os.getenv(var_name) + if not value: + continue + + line = line.replace(env_var, value) + + yield line_number, line diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/req_install.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/req_install.py new file mode 100644 index 00000000..ddd167c6 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/req_install.py @@ -0,0 +1,1115 @@ +from __future__ import absolute_import + +import logging +import os +import re +import shutil +import sys +import sysconfig +import traceback +import warnings +import zipfile +from distutils.util import change_root +from email.parser import FeedParser # type: ignore + +from pip._vendor import pkg_resources, pytoml, six +from pip._vendor.packaging import specifiers +from pip._vendor.packaging.markers import Marker +from pip._vendor.packaging.requirements import InvalidRequirement, Requirement +from pip._vendor.packaging.utils import canonicalize_name +from pip._vendor.packaging.version import parse as parse_version +from pip._vendor.packaging.version import Version +from pip._vendor.pkg_resources import RequirementParseError, parse_requirements + +from pip._internal import wheel +from pip._internal.build_env import BuildEnvironment +from pip._internal.compat import native_str +from pip._internal.download import ( + is_archive_file, is_url, path_to_url, url_to_path, +) +from pip._internal.exceptions import InstallationError, UninstallationError +from pip._internal.locations import ( + PIP_DELETE_MARKER_FILENAME, running_under_virtualenv, +) +from pip._internal.req.req_uninstall import UninstallPathSet +from pip._internal.utils.deprecation import RemovedInPip11Warning +from pip._internal.utils.hashes import Hashes +from pip._internal.utils.logging import indent_log +from pip._internal.utils.misc import ( + _make_build_dir, ask_path_exists, backup_dir, call_subprocess, + display_path, dist_in_site_packages, dist_in_usersite, ensure_dir, + get_installed_version, is_installable_dir, read_text_file, rmtree, +) +from pip._internal.utils.setuptools_build import SETUPTOOLS_SHIM +from pip._internal.utils.temp_dir import TempDirectory +from pip._internal.utils.ui import open_spinner +from pip._internal.vcs import vcs +from pip._internal.wheel import Wheel, move_wheel_files + +logger = logging.getLogger(__name__) + +operators = specifiers.Specifier._operators.keys() + + +def _strip_extras(path): + m = re.match(r'^(.+)(\[[^\]]+\])$', path) + extras = None + if m: + path_no_extras = m.group(1) + extras = m.group(2) + else: + path_no_extras = path + + return path_no_extras, extras + + +class InstallRequirement(object): + """ + Represents something that may be installed later on, may have information + about where to fetch the relavant requirement and also contains logic for + installing the said requirement. + """ + + def __init__(self, req, comes_from, source_dir=None, editable=False, + link=None, update=True, markers=None, + isolated=False, options=None, wheel_cache=None, + constraint=False, extras=()): + assert req is None or isinstance(req, Requirement), req + self.req = req + self.comes_from = comes_from + self.constraint = constraint + if source_dir is not None: + self.source_dir = os.path.normpath(os.path.abspath(source_dir)) + else: + self.source_dir = None + self.editable = editable + + self._wheel_cache = wheel_cache + if link is not None: + self.link = self.original_link = link + else: + from pip._internal.index import Link + self.link = self.original_link = req and req.url and Link(req.url) + + if extras: + self.extras = extras + elif req: + self.extras = { + pkg_resources.safe_extra(extra) for extra in req.extras + } + else: + self.extras = set() + if markers is not None: + self.markers = markers + else: + self.markers = req and req.marker + self._egg_info_path = None + # This holds the pkg_resources.Distribution object if this requirement + # is already available: + self.satisfied_by = None + # This hold the pkg_resources.Distribution object if this requirement + # conflicts with another installed distribution: + self.conflicts_with = None + # Temporary build location + self._temp_build_dir = TempDirectory(kind="req-build") + # Used to store the global directory where the _temp_build_dir should + # have been created. Cf _correct_build_location method. + self._ideal_build_dir = None + # True if the editable should be updated: + self.update = update + # Set to True after successful installation + self.install_succeeded = None + # UninstallPathSet of uninstalled distribution (for possible rollback) + self.uninstalled_pathset = None + self.options = options if options else {} + # Set to True after successful preparation of this requirement + self.prepared = False + self.is_direct = False + + self.isolated = isolated + self.build_env = BuildEnvironment(no_clean=True) + + @classmethod + def from_editable(cls, editable_req, comes_from=None, isolated=False, + options=None, wheel_cache=None, constraint=False): + from pip._internal.index import Link + + name, url, extras_override = parse_editable(editable_req) + if url.startswith('file:'): + source_dir = url_to_path(url) + else: + source_dir = None + + if name is not None: + try: + req = Requirement(name) + except InvalidRequirement: + raise InstallationError("Invalid requirement: '%s'" % name) + else: + req = None + return cls( + req, comes_from, source_dir=source_dir, + editable=True, + link=Link(url), + constraint=constraint, + isolated=isolated, + options=options if options else {}, + wheel_cache=wheel_cache, + extras=extras_override or (), + ) + + @classmethod + def from_req(cls, req, comes_from=None, isolated=False, wheel_cache=None): + try: + req = Requirement(req) + except InvalidRequirement: + raise InstallationError("Invalid requirement: '%s'" % req) + if req.url: + raise InstallationError( + "Direct url requirement (like %s) are not allowed for " + "dependencies" % req + ) + return cls(req, comes_from, isolated=isolated, wheel_cache=wheel_cache) + + @classmethod + def from_line( + cls, name, comes_from=None, isolated=False, options=None, + wheel_cache=None, constraint=False): + """Creates an InstallRequirement from a name, which might be a + requirement, directory containing 'setup.py', filename, or URL. + """ + from pip._internal.index import Link + + if is_url(name): + marker_sep = '; ' + else: + marker_sep = ';' + if marker_sep in name: + name, markers = name.split(marker_sep, 1) + markers = markers.strip() + if not markers: + markers = None + else: + markers = Marker(markers) + else: + markers = None + name = name.strip() + req = None + path = os.path.normpath(os.path.abspath(name)) + link = None + extras = None + + if is_url(name): + link = Link(name) + else: + p, extras = _strip_extras(path) + looks_like_dir = os.path.isdir(p) and ( + os.path.sep in name or + (os.path.altsep is not None and os.path.altsep in name) or + name.startswith('.') + ) + if looks_like_dir: + if not is_installable_dir(p): + raise InstallationError( + "Directory %r is not installable. File 'setup.py' " + "not found." % name + ) + link = Link(path_to_url(p)) + elif is_archive_file(p): + if not os.path.isfile(p): + logger.warning( + 'Requirement %r looks like a filename, but the ' + 'file does not exist', + name + ) + link = Link(path_to_url(p)) + + # it's a local file, dir, or url + if link: + # Handle relative file URLs + if link.scheme == 'file' and re.search(r'\.\./', link.url): + link = Link( + path_to_url(os.path.normpath(os.path.abspath(link.path)))) + # wheel file + if link.is_wheel: + wheel = Wheel(link.filename) # can raise InvalidWheelFilename + req = "%s==%s" % (wheel.name, wheel.version) + else: + # set the req to the egg fragment. when it's not there, this + # will become an 'unnamed' requirement + req = link.egg_fragment + + # a requirement specifier + else: + req = name + + if extras: + extras = Requirement("placeholder" + extras.lower()).extras + else: + extras = () + if req is not None: + try: + req = Requirement(req) + except InvalidRequirement: + if os.path.sep in req: + add_msg = "It looks like a path." + add_msg += deduce_helpful_msg(req) + elif '=' in req and not any(op in req for op in operators): + add_msg = "= is not a valid operator. Did you mean == ?" + else: + add_msg = traceback.format_exc() + raise InstallationError( + "Invalid requirement: '%s'\n%s" % (req, add_msg)) + return cls( + req, comes_from, link=link, markers=markers, + isolated=isolated, + options=options if options else {}, + wheel_cache=wheel_cache, + constraint=constraint, + extras=extras, + ) + + def __str__(self): + if self.req: + s = str(self.req) + if self.link: + s += ' from %s' % self.link.url + else: + s = self.link.url if self.link else None + if self.satisfied_by is not None: + s += ' in %s' % display_path(self.satisfied_by.location) + if self.comes_from: + if isinstance(self.comes_from, six.string_types): + comes_from = self.comes_from + else: + comes_from = self.comes_from.from_path() + if comes_from: + s += ' (from %s)' % comes_from + return s + + def __repr__(self): + return '<%s object: %s editable=%r>' % ( + self.__class__.__name__, str(self), self.editable) + + def populate_link(self, finder, upgrade, require_hashes): + """Ensure that if a link can be found for this, that it is found. + + Note that self.link may still be None - if Upgrade is False and the + requirement is already installed. + + If require_hashes is True, don't use the wheel cache, because cached + wheels, always built locally, have different hashes than the files + downloaded from the index server and thus throw false hash mismatches. + Furthermore, cached wheels at present have undeterministic contents due + to file modification times. + """ + if self.link is None: + self.link = finder.find_requirement(self, upgrade) + if self._wheel_cache is not None and not require_hashes: + old_link = self.link + self.link = self._wheel_cache.get(self.link, self.name) + if old_link != self.link: + logger.debug('Using cached wheel link: %s', self.link) + + @property + def specifier(self): + return self.req.specifier + + @property + def is_pinned(self): + """Return whether I am pinned to an exact version. + + For example, some-package==1.2 is pinned; some-package>1.2 is not. + """ + specifiers = self.specifier + return (len(specifiers) == 1 and + next(iter(specifiers)).operator in {'==', '==='}) + + def from_path(self): + if self.req is None: + return None + s = str(self.req) + if self.comes_from: + if isinstance(self.comes_from, six.string_types): + comes_from = self.comes_from + else: + comes_from = self.comes_from.from_path() + if comes_from: + s += '->' + comes_from + return s + + def build_location(self, build_dir): + assert build_dir is not None + if self._temp_build_dir.path is not None: + return self._temp_build_dir.path + if self.req is None: + # for requirement via a path to a directory: the name of the + # package is not available yet so we create a temp directory + # Once run_egg_info will have run, we'll be able + # to fix it via _correct_build_location + # Some systems have /tmp as a symlink which confuses custom + # builds (such as numpy). Thus, we ensure that the real path + # is returned. + self._temp_build_dir.create() + self._ideal_build_dir = build_dir + + return self._temp_build_dir.path + if self.editable: + name = self.name.lower() + else: + name = self.name + # FIXME: Is there a better place to create the build_dir? (hg and bzr + # need this) + if not os.path.exists(build_dir): + logger.debug('Creating directory %s', build_dir) + _make_build_dir(build_dir) + return os.path.join(build_dir, name) + + def _correct_build_location(self): + """Move self._temp_build_dir to self._ideal_build_dir/self.req.name + + For some requirements (e.g. a path to a directory), the name of the + package is not available until we run egg_info, so the build_location + will return a temporary directory and store the _ideal_build_dir. + + This is only called by self.egg_info_path to fix the temporary build + directory. + """ + if self.source_dir is not None: + return + assert self.req is not None + assert self._temp_build_dir.path + assert self._ideal_build_dir.path + old_location = self._temp_build_dir.path + self._temp_build_dir.path = None + + new_location = self.build_location(self._ideal_build_dir) + if os.path.exists(new_location): + raise InstallationError( + 'A package already exists in %s; please remove it to continue' + % display_path(new_location)) + logger.debug( + 'Moving package %s from %s to new location %s', + self, display_path(old_location), display_path(new_location), + ) + shutil.move(old_location, new_location) + self._temp_build_dir.path = new_location + self._ideal_build_dir = None + self.source_dir = os.path.normpath(os.path.abspath(new_location)) + self._egg_info_path = None + + @property + def name(self): + if self.req is None: + return None + return native_str(pkg_resources.safe_name(self.req.name)) + + @property + def setup_py_dir(self): + return os.path.join( + self.source_dir, + self.link and self.link.subdirectory_fragment or '') + + @property + def setup_py(self): + assert self.source_dir, "No source dir for %s" % self + + setup_py = os.path.join(self.setup_py_dir, 'setup.py') + + # Python2 __file__ should not be unicode + if six.PY2 and isinstance(setup_py, six.text_type): + setup_py = setup_py.encode(sys.getfilesystemencoding()) + + return setup_py + + @property + def pyproject_toml(self): + assert self.source_dir, "No source dir for %s" % self + + pp_toml = os.path.join(self.setup_py_dir, 'pyproject.toml') + + # Python2 __file__ should not be unicode + if six.PY2 and isinstance(pp_toml, six.text_type): + pp_toml = pp_toml.encode(sys.getfilesystemencoding()) + + return pp_toml + + def get_pep_518_info(self): + """Get a list of the packages required to build the project, if any, + and a flag indicating whether pyproject.toml is present, indicating + that the build should be isolated. + + Build requirements can be specified in a pyproject.toml, as described + in PEP 518. If this file exists but doesn't specify build + requirements, pip will default to installing setuptools and wheel. + """ + if os.path.isfile(self.pyproject_toml): + with open(self.pyproject_toml) as f: + pp_toml = pytoml.load(f) + build_sys = pp_toml.get('build-system', {}) + return (build_sys.get('requires', ['setuptools', 'wheel']), True) + return (['setuptools', 'wheel'], False) + + def run_egg_info(self): + assert self.source_dir + if self.name: + logger.debug( + 'Running setup.py (path:%s) egg_info for package %s', + self.setup_py, self.name, + ) + else: + logger.debug( + 'Running setup.py (path:%s) egg_info for package from %s', + self.setup_py, self.link, + ) + + with indent_log(): + script = SETUPTOOLS_SHIM % self.setup_py + base_cmd = [sys.executable, '-c', script] + if self.isolated: + base_cmd += ["--no-user-cfg"] + egg_info_cmd = base_cmd + ['egg_info'] + # We can't put the .egg-info files at the root, because then the + # source code will be mistaken for an installed egg, causing + # problems + if self.editable: + egg_base_option = [] + else: + egg_info_dir = os.path.join(self.setup_py_dir, 'pip-egg-info') + ensure_dir(egg_info_dir) + egg_base_option = ['--egg-base', 'pip-egg-info'] + with self.build_env: + call_subprocess( + egg_info_cmd + egg_base_option, + cwd=self.setup_py_dir, + show_stdout=False, + command_desc='python setup.py egg_info') + + if not self.req: + if isinstance(parse_version(self.pkg_info()["Version"]), Version): + op = "==" + else: + op = "===" + self.req = Requirement( + "".join([ + self.pkg_info()["Name"], + op, + self.pkg_info()["Version"], + ]) + ) + self._correct_build_location() + else: + metadata_name = canonicalize_name(self.pkg_info()["Name"]) + if canonicalize_name(self.req.name) != metadata_name: + logger.warning( + 'Running setup.py (path:%s) egg_info for package %s ' + 'produced metadata for project name %s. Fix your ' + '#egg=%s fragments.', + self.setup_py, self.name, metadata_name, self.name + ) + self.req = Requirement(metadata_name) + + def egg_info_data(self, filename): + if self.satisfied_by is not None: + if not self.satisfied_by.has_metadata(filename): + return None + return self.satisfied_by.get_metadata(filename) + assert self.source_dir + filename = self.egg_info_path(filename) + if not os.path.exists(filename): + return None + data = read_text_file(filename) + return data + + def egg_info_path(self, filename): + if self._egg_info_path is None: + if self.editable: + base = self.source_dir + else: + base = os.path.join(self.setup_py_dir, 'pip-egg-info') + filenames = os.listdir(base) + if self.editable: + filenames = [] + for root, dirs, files in os.walk(base): + for dir in vcs.dirnames: + if dir in dirs: + dirs.remove(dir) + # Iterate over a copy of ``dirs``, since mutating + # a list while iterating over it can cause trouble. + # (See https://github.com/pypa/pip/pull/462.) + for dir in list(dirs): + # Don't search in anything that looks like a virtualenv + # environment + if ( + os.path.lexists( + os.path.join(root, dir, 'bin', 'python') + ) or + os.path.exists( + os.path.join( + root, dir, 'Scripts', 'Python.exe' + ) + )): + dirs.remove(dir) + # Also don't search through tests + elif dir == 'test' or dir == 'tests': + dirs.remove(dir) + filenames.extend([os.path.join(root, dir) + for dir in dirs]) + filenames = [f for f in filenames if f.endswith('.egg-info')] + + if not filenames: + raise InstallationError( + 'No files/directories in %s (from %s)' % (base, filename) + ) + assert filenames, \ + "No files/directories in %s (from %s)" % (base, filename) + + # if we have more than one match, we pick the toplevel one. This + # can easily be the case if there is a dist folder which contains + # an extracted tarball for testing purposes. + if len(filenames) > 1: + filenames.sort( + key=lambda x: x.count(os.path.sep) + + (os.path.altsep and x.count(os.path.altsep) or 0) + ) + self._egg_info_path = os.path.join(base, filenames[0]) + return os.path.join(self._egg_info_path, filename) + + def pkg_info(self): + p = FeedParser() + data = self.egg_info_data('PKG-INFO') + if not data: + logger.warning( + 'No PKG-INFO file found in %s', + display_path(self.egg_info_path('PKG-INFO')), + ) + p.feed(data or '') + return p.close() + + _requirements_section_re = re.compile(r'\[(.*?)\]') + + @property + def installed_version(self): + return get_installed_version(self.name) + + def assert_source_matches_version(self): + assert self.source_dir + version = self.pkg_info()['version'] + if self.req.specifier and version not in self.req.specifier: + logger.warning( + 'Requested %s, but installing version %s', + self, + version, + ) + else: + logger.debug( + 'Source in %s has version %s, which satisfies requirement %s', + display_path(self.source_dir), + version, + self, + ) + + def update_editable(self, obtain=True): + if not self.link: + logger.debug( + "Cannot update repository at %s; repository location is " + "unknown", + self.source_dir, + ) + return + assert self.editable + assert self.source_dir + if self.link.scheme == 'file': + # Static paths don't get updated + return + assert '+' in self.link.url, "bad url: %r" % self.link.url + if not self.update: + return + vc_type, url = self.link.url.split('+', 1) + backend = vcs.get_backend(vc_type) + if backend: + vcs_backend = backend(self.link.url) + if obtain: + vcs_backend.obtain(self.source_dir) + else: + vcs_backend.export(self.source_dir) + else: + assert 0, ( + 'Unexpected version control type (in %s): %s' + % (self.link, vc_type)) + + def uninstall(self, auto_confirm=False, verbose=False, + use_user_site=False): + """ + Uninstall the distribution currently satisfying this requirement. + + Prompts before removing or modifying files unless + ``auto_confirm`` is True. + + Refuses to delete or modify files outside of ``sys.prefix`` - + thus uninstallation within a virtual environment can only + modify that virtual environment, even if the virtualenv is + linked to global site-packages. + + """ + if not self.check_if_exists(use_user_site): + logger.warning("Skipping %s as it is not installed.", self.name) + return + dist = self.satisfied_by or self.conflicts_with + + uninstalled_pathset = UninstallPathSet.from_dist(dist) + uninstalled_pathset.remove(auto_confirm, verbose) + return uninstalled_pathset + + def archive(self, build_dir): + assert self.source_dir + create_archive = True + archive_name = '%s-%s.zip' % (self.name, self.pkg_info()["version"]) + archive_path = os.path.join(build_dir, archive_name) + if os.path.exists(archive_path): + response = ask_path_exists( + 'The file %s exists. (i)gnore, (w)ipe, (b)ackup, (a)bort ' % + display_path(archive_path), ('i', 'w', 'b', 'a')) + if response == 'i': + create_archive = False + elif response == 'w': + logger.warning('Deleting %s', display_path(archive_path)) + os.remove(archive_path) + elif response == 'b': + dest_file = backup_dir(archive_path) + logger.warning( + 'Backing up %s to %s', + display_path(archive_path), + display_path(dest_file), + ) + shutil.move(archive_path, dest_file) + elif response == 'a': + sys.exit(-1) + if create_archive: + zip = zipfile.ZipFile( + archive_path, 'w', zipfile.ZIP_DEFLATED, + allowZip64=True + ) + dir = os.path.normcase(os.path.abspath(self.setup_py_dir)) + for dirpath, dirnames, filenames in os.walk(dir): + if 'pip-egg-info' in dirnames: + dirnames.remove('pip-egg-info') + for dirname in dirnames: + dirname = os.path.join(dirpath, dirname) + name = self._clean_zip_name(dirname, dir) + zipdir = zipfile.ZipInfo(self.name + '/' + name + '/') + zipdir.external_attr = 0x1ED << 16 # 0o755 + zip.writestr(zipdir, '') + for filename in filenames: + if filename == PIP_DELETE_MARKER_FILENAME: + continue + filename = os.path.join(dirpath, filename) + name = self._clean_zip_name(filename, dir) + zip.write(filename, self.name + '/' + name) + zip.close() + logger.info('Saved %s', display_path(archive_path)) + + def _clean_zip_name(self, name, prefix): + assert name.startswith(prefix + os.path.sep), ( + "name %r doesn't start with prefix %r" % (name, prefix) + ) + name = name[len(prefix) + 1:] + name = name.replace(os.path.sep, '/') + return name + + def match_markers(self, extras_requested=None): + if not extras_requested: + # Provide an extra to safely evaluate the markers + # without matching any extra + extras_requested = ('',) + if self.markers is not None: + return any( + self.markers.evaluate({'extra': extra}) + for extra in extras_requested) + else: + return True + + def install(self, install_options, global_options=None, root=None, + home=None, prefix=None, warn_script_location=True, + use_user_site=False, pycompile=True): + global_options = global_options if global_options is not None else [] + if self.editable: + self.install_editable( + install_options, global_options, prefix=prefix, + ) + return + if self.is_wheel: + version = wheel.wheel_version(self.source_dir) + wheel.check_compatibility(version, self.name) + + self.move_wheel_files( + self.source_dir, root=root, prefix=prefix, home=home, + warn_script_location=warn_script_location, + use_user_site=use_user_site, pycompile=pycompile, + ) + self.install_succeeded = True + return + + # Extend the list of global and install options passed on to + # the setup.py call with the ones from the requirements file. + # Options specified in requirements file override those + # specified on the command line, since the last option given + # to setup.py is the one that is used. + global_options = list(global_options) + \ + self.options.get('global_options', []) + install_options = list(install_options) + \ + self.options.get('install_options', []) + + if self.isolated: + global_options = global_options + ["--no-user-cfg"] + + with TempDirectory(kind="record") as temp_dir: + record_filename = os.path.join(temp_dir.path, 'install-record.txt') + install_args = self.get_install_args( + global_options, record_filename, root, prefix, pycompile, + ) + msg = 'Running setup.py install for %s' % (self.name,) + with open_spinner(msg) as spinner: + with indent_log(): + with self.build_env: + call_subprocess( + install_args + install_options, + cwd=self.setup_py_dir, + show_stdout=False, + spinner=spinner, + ) + + if not os.path.exists(record_filename): + logger.debug('Record file %s not found', record_filename) + return + self.install_succeeded = True + + def prepend_root(path): + if root is None or not os.path.isabs(path): + return path + else: + return change_root(root, path) + + with open(record_filename) as f: + for line in f: + directory = os.path.dirname(line) + if directory.endswith('.egg-info'): + egg_info_dir = prepend_root(directory) + break + else: + logger.warning( + 'Could not find .egg-info directory in install record' + ' for %s', + self, + ) + # FIXME: put the record somewhere + # FIXME: should this be an error? + return + new_lines = [] + with open(record_filename) as f: + for line in f: + filename = line.strip() + if os.path.isdir(filename): + filename += os.path.sep + new_lines.append( + os.path.relpath(prepend_root(filename), egg_info_dir) + ) + new_lines.sort() + ensure_dir(egg_info_dir) + inst_files_path = os.path.join(egg_info_dir, 'installed-files.txt') + with open(inst_files_path, 'w') as f: + f.write('\n'.join(new_lines) + '\n') + + def ensure_has_source_dir(self, parent_dir): + """Ensure that a source_dir is set. + + This will create a temporary build dir if the name of the requirement + isn't known yet. + + :param parent_dir: The ideal pip parent_dir for the source_dir. + Generally src_dir for editables and build_dir for sdists. + :return: self.source_dir + """ + if self.source_dir is None: + self.source_dir = self.build_location(parent_dir) + return self.source_dir + + def get_install_args(self, global_options, record_filename, root, prefix, + pycompile): + install_args = [sys.executable, "-u"] + install_args.append('-c') + install_args.append(SETUPTOOLS_SHIM % self.setup_py) + install_args += list(global_options) + \ + ['install', '--record', record_filename] + install_args += ['--single-version-externally-managed'] + + if root is not None: + install_args += ['--root', root] + if prefix is not None: + install_args += ['--prefix', prefix] + + if pycompile: + install_args += ["--compile"] + else: + install_args += ["--no-compile"] + + if running_under_virtualenv(): + py_ver_str = 'python' + sysconfig.get_python_version() + install_args += ['--install-headers', + os.path.join(sys.prefix, 'include', 'site', + py_ver_str, self.name)] + + return install_args + + def remove_temporary_source(self): + """Remove the source files from this requirement, if they are marked + for deletion""" + if self.source_dir and os.path.exists( + os.path.join(self.source_dir, PIP_DELETE_MARKER_FILENAME)): + logger.debug('Removing source in %s', self.source_dir) + rmtree(self.source_dir) + self.source_dir = None + self._temp_build_dir.cleanup() + self.build_env.cleanup() + + def install_editable(self, install_options, + global_options=(), prefix=None): + logger.info('Running setup.py develop for %s', self.name) + + if self.isolated: + global_options = list(global_options) + ["--no-user-cfg"] + + if prefix: + prefix_param = ['--prefix={}'.format(prefix)] + install_options = list(install_options) + prefix_param + + with indent_log(): + # FIXME: should we do --install-headers here too? + with self.build_env: + call_subprocess( + [ + sys.executable, + '-c', + SETUPTOOLS_SHIM % self.setup_py + ] + + list(global_options) + + ['develop', '--no-deps'] + + list(install_options), + + cwd=self.setup_py_dir, + show_stdout=False, + ) + + self.install_succeeded = True + + def check_if_exists(self, use_user_site): + """Find an installed distribution that satisfies or conflicts + with this requirement, and set self.satisfied_by or + self.conflicts_with appropriately. + """ + if self.req is None: + return False + try: + # get_distribution() will resolve the entire list of requirements + # anyway, and we've already determined that we need the requirement + # in question, so strip the marker so that we don't try to + # evaluate it. + no_marker = Requirement(str(self.req)) + no_marker.marker = None + self.satisfied_by = pkg_resources.get_distribution(str(no_marker)) + if self.editable and self.satisfied_by: + self.conflicts_with = self.satisfied_by + # when installing editables, nothing pre-existing should ever + # satisfy + self.satisfied_by = None + return True + except pkg_resources.DistributionNotFound: + return False + except pkg_resources.VersionConflict: + existing_dist = pkg_resources.get_distribution( + self.req.name + ) + if use_user_site: + if dist_in_usersite(existing_dist): + self.conflicts_with = existing_dist + elif (running_under_virtualenv() and + dist_in_site_packages(existing_dist)): + raise InstallationError( + "Will not install to the user site because it will " + "lack sys.path precedence to %s in %s" % + (existing_dist.project_name, existing_dist.location) + ) + else: + self.conflicts_with = existing_dist + return True + + @property + def is_wheel(self): + return self.link and self.link.is_wheel + + def move_wheel_files(self, wheeldir, root=None, home=None, prefix=None, + warn_script_location=True, use_user_site=False, + pycompile=True): + move_wheel_files( + self.name, self.req, wheeldir, + user=use_user_site, + home=home, + root=root, + prefix=prefix, + pycompile=pycompile, + isolated=self.isolated, + warn_script_location=warn_script_location, + ) + + def get_dist(self): + """Return a pkg_resources.Distribution built from self.egg_info_path""" + egg_info = self.egg_info_path('').rstrip(os.path.sep) + base_dir = os.path.dirname(egg_info) + metadata = pkg_resources.PathMetadata(base_dir, egg_info) + dist_name = os.path.splitext(os.path.basename(egg_info))[0] + return pkg_resources.Distribution( + os.path.dirname(egg_info), + project_name=dist_name, + metadata=metadata, + ) + + @property + def has_hash_options(self): + """Return whether any known-good hashes are specified as options. + + These activate --require-hashes mode; hashes specified as part of a + URL do not. + + """ + return bool(self.options.get('hashes', {})) + + def hashes(self, trust_internet=True): + """Return a hash-comparer that considers my option- and URL-based + hashes to be known-good. + + Hashes in URLs--ones embedded in the requirements file, not ones + downloaded from an index server--are almost peers with ones from + flags. They satisfy --require-hashes (whether it was implicitly or + explicitly activated) but do not activate it. md5 and sha224 are not + allowed in flags, which should nudge people toward good algos. We + always OR all hashes together, even ones from URLs. + + :param trust_internet: Whether to trust URL-based (#md5=...) hashes + downloaded from the internet, as by populate_link() + + """ + good_hashes = self.options.get('hashes', {}).copy() + link = self.link if trust_internet else self.original_link + if link and link.hash: + good_hashes.setdefault(link.hash_name, []).append(link.hash) + return Hashes(good_hashes) + + +def _strip_postfix(req): + """ + Strip req postfix ( -dev, 0.2, etc ) + """ + # FIXME: use package_to_requirement? + match = re.search(r'^(.*?)(?:-dev|-\d.*)$', req) + if match: + # Strip off -dev, -0.2, etc. + warnings.warn( + "#egg cleanup for editable urls will be dropped in the future", + RemovedInPip11Warning, + ) + req = match.group(1) + return req + + +def parse_editable(editable_req): + """Parses an editable requirement into: + - a requirement name + - an URL + - extras + - editable options + Accepted requirements: + svn+http://blahblah@rev#egg=Foobar[baz]&subdirectory=version_subdir + .[some_extra] + """ + + from pip._internal.index import Link + + url = editable_req + + # If a file path is specified with extras, strip off the extras. + url_no_extras, extras = _strip_extras(url) + + if os.path.isdir(url_no_extras): + if not os.path.exists(os.path.join(url_no_extras, 'setup.py')): + raise InstallationError( + "Directory %r is not installable. File 'setup.py' not found." % + url_no_extras + ) + # Treating it as code that has already been checked out + url_no_extras = path_to_url(url_no_extras) + + if url_no_extras.lower().startswith('file:'): + package_name = Link(url_no_extras).egg_fragment + if extras: + return ( + package_name, + url_no_extras, + Requirement("placeholder" + extras.lower()).extras, + ) + else: + return package_name, url_no_extras, None + + for version_control in vcs: + if url.lower().startswith('%s:' % version_control): + url = '%s+%s' % (version_control, url) + break + + if '+' not in url: + raise InstallationError( + '%s should either be a path to a local project or a VCS url ' + 'beginning with svn+, git+, hg+, or bzr+' % + editable_req + ) + + vc_type = url.split('+', 1)[0].lower() + + if not vcs.get_backend(vc_type): + error_message = 'For --editable=%s only ' % editable_req + \ + ', '.join([backend.name + '+URL' for backend in vcs.backends]) + \ + ' is currently supported' + raise InstallationError(error_message) + + package_name = Link(url).egg_fragment + if not package_name: + raise InstallationError( + "Could not detect requirement name for '%s', please specify one " + "with #egg=your_package_name" % editable_req + ) + return _strip_postfix(package_name), url, None + + +def deduce_helpful_msg(req): + """Returns helpful msg in case requirements file does not exist, + or cannot be parsed. + + :params req: Requirements file path + """ + msg = "" + if os.path.exists(req): + msg = " It does exist." + # Try to parse and check if it is a requirements file. + try: + with open(req, 'r') as fp: + # parse first line only + next(parse_requirements(fp.read())) + msg += " The argument you provided " + \ + "(%s) appears to be a" % (req) + \ + " requirements file. If that is the" + \ + " case, use the '-r' flag to install" + \ + " the packages specified within it." + except RequirementParseError: + logger.debug("Cannot parse '%s' as requirements \ + file" % (req), exc_info=1) + else: + msg += " File '%s' does not exist." % (req) + return msg diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/req_set.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/req_set.py new file mode 100644 index 00000000..b2b55f89 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/req_set.py @@ -0,0 +1,164 @@ +from __future__ import absolute_import + +import logging +from collections import OrderedDict + +from pip._internal.exceptions import InstallationError +from pip._internal.utils.logging import indent_log +from pip._internal.wheel import Wheel + +logger = logging.getLogger(__name__) + + +class RequirementSet(object): + + def __init__(self, require_hashes=False): + """Create a RequirementSet. + + :param wheel_cache: The pip wheel cache, for passing to + InstallRequirement. + """ + + self.requirements = OrderedDict() + self.require_hashes = require_hashes + + # Mapping of alias: real_name + self.requirement_aliases = {} + self.unnamed_requirements = [] + self.successfully_downloaded = [] + self.reqs_to_cleanup = [] + + def __str__(self): + reqs = [req for req in self.requirements.values() + if not req.comes_from] + reqs.sort(key=lambda req: req.name.lower()) + return ' '.join([str(req.req) for req in reqs]) + + def __repr__(self): + reqs = [req for req in self.requirements.values()] + reqs.sort(key=lambda req: req.name.lower()) + reqs_str = ', '.join([str(req.req) for req in reqs]) + return ('<%s object; %d requirement(s): %s>' + % (self.__class__.__name__, len(reqs), reqs_str)) + + def add_requirement(self, install_req, parent_req_name=None, + extras_requested=None): + """Add install_req as a requirement to install. + + :param parent_req_name: The name of the requirement that needed this + added. The name is used because when multiple unnamed requirements + resolve to the same name, we could otherwise end up with dependency + links that point outside the Requirements set. parent_req must + already be added. Note that None implies that this is a user + supplied requirement, vs an inferred one. + :param extras_requested: an iterable of extras used to evaluate the + environment markers. + :return: Additional requirements to scan. That is either [] if + the requirement is not applicable, or [install_req] if the + requirement is applicable and has just been added. + """ + name = install_req.name + if not install_req.match_markers(extras_requested): + logger.info("Ignoring %s: markers '%s' don't match your " + "environment", install_req.name, + install_req.markers) + return [], None + + # This check has to come after we filter requirements with the + # environment markers. + if install_req.link and install_req.link.is_wheel: + wheel = Wheel(install_req.link.filename) + if not wheel.supported(): + raise InstallationError( + "%s is not a supported wheel on this platform." % + wheel.filename + ) + + # This next bit is really a sanity check. + assert install_req.is_direct == (parent_req_name is None), ( + "a direct req shouldn't have a parent and also, " + "a non direct req should have a parent" + ) + + if not name: + # url or path requirement w/o an egg fragment + self.unnamed_requirements.append(install_req) + return [install_req], None + else: + try: + existing_req = self.get_requirement(name) + except KeyError: + existing_req = None + if (parent_req_name is None and existing_req and not + existing_req.constraint and + existing_req.extras == install_req.extras and not + existing_req.req.specifier == install_req.req.specifier): + raise InstallationError( + 'Double requirement given: %s (already in %s, name=%r)' + % (install_req, existing_req, name)) + if not existing_req: + # Add requirement + self.requirements[name] = install_req + # FIXME: what about other normalizations? E.g., _ vs. -? + if name.lower() != name: + self.requirement_aliases[name.lower()] = name + result = [install_req] + else: + # Assume there's no need to scan, and that we've already + # encountered this for scanning. + result = [] + if not install_req.constraint and existing_req.constraint: + if (install_req.link and not (existing_req.link and + install_req.link.path == existing_req.link.path)): + self.reqs_to_cleanup.append(install_req) + raise InstallationError( + "Could not satisfy constraints for '%s': " + "installation from path or url cannot be " + "constrained to a version" % name, + ) + # If we're now installing a constraint, mark the existing + # object for real installation. + existing_req.constraint = False + existing_req.extras = tuple( + sorted(set(existing_req.extras).union( + set(install_req.extras)))) + logger.debug("Setting %s extras to: %s", + existing_req, existing_req.extras) + # And now we need to scan this. + result = [existing_req] + # Canonicalise to the already-added object for the backref + # check below. + install_req = existing_req + + # We return install_req here to allow for the caller to add it to + # the dependency information for the parent package. + return result, install_req + + def has_requirement(self, project_name): + name = project_name.lower() + if (name in self.requirements and + not self.requirements[name].constraint or + name in self.requirement_aliases and + not self.requirements[self.requirement_aliases[name]].constraint): + return True + return False + + @property + def has_requirements(self): + return list(req for req in self.requirements.values() if not + req.constraint) or self.unnamed_requirements + + def get_requirement(self, project_name): + for name in project_name, project_name.lower(): + if name in self.requirements: + return self.requirements[name] + if name in self.requirement_aliases: + return self.requirements[self.requirement_aliases[name]] + raise KeyError("No project with the name %r" % project_name) + + def cleanup_files(self): + """Clean up files, remove builds.""" + logger.debug('Cleaning up...') + with indent_log(): + for req in self.reqs_to_cleanup: + req.remove_temporary_source() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/req_uninstall.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/req_uninstall.py new file mode 100644 index 00000000..a3cc7bf6 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/req/req_uninstall.py @@ -0,0 +1,455 @@ +from __future__ import absolute_import + +import csv +import functools +import logging +import os +import sys +import sysconfig + +from pip._vendor import pkg_resources + +from pip._internal.compat import WINDOWS, cache_from_source, uses_pycache +from pip._internal.exceptions import UninstallationError +from pip._internal.locations import bin_py, bin_user +from pip._internal.utils.logging import indent_log +from pip._internal.utils.misc import ( + FakeFile, ask, dist_in_usersite, dist_is_local, egg_link_path, is_local, + normalize_path, renames, +) +from pip._internal.utils.temp_dir import TempDirectory + +logger = logging.getLogger(__name__) + + +def _script_names(dist, script_name, is_gui): + """Create the fully qualified name of the files created by + {console,gui}_scripts for the given ``dist``. + Returns the list of file names + """ + if dist_in_usersite(dist): + bin_dir = bin_user + else: + bin_dir = bin_py + exe_name = os.path.join(bin_dir, script_name) + paths_to_remove = [exe_name] + if WINDOWS: + paths_to_remove.append(exe_name + '.exe') + paths_to_remove.append(exe_name + '.exe.manifest') + if is_gui: + paths_to_remove.append(exe_name + '-script.pyw') + else: + paths_to_remove.append(exe_name + '-script.py') + return paths_to_remove + + +def _unique(fn): + @functools.wraps(fn) + def unique(*args, **kw): + seen = set() + for item in fn(*args, **kw): + if item not in seen: + seen.add(item) + yield item + return unique + + +@_unique +def uninstallation_paths(dist): + """ + Yield all the uninstallation paths for dist based on RECORD-without-.pyc + + Yield paths to all the files in RECORD. For each .py file in RECORD, add + the .pyc in the same directory. + + UninstallPathSet.add() takes care of the __pycache__ .pyc. + """ + r = csv.reader(FakeFile(dist.get_metadata_lines('RECORD'))) + for row in r: + path = os.path.join(dist.location, row[0]) + yield path + if path.endswith('.py'): + dn, fn = os.path.split(path) + base = fn[:-3] + path = os.path.join(dn, base + '.pyc') + yield path + + +def compact(paths): + """Compact a path set to contain the minimal number of paths + necessary to contain all paths in the set. If /a/path/ and + /a/path/to/a/file.txt are both in the set, leave only the + shorter path.""" + + sep = os.path.sep + short_paths = set() + for path in sorted(paths, key=len): + should_add = any( + path.startswith(shortpath.rstrip("*")) and + path[len(shortpath.rstrip("*").rstrip(sep))] == sep + for shortpath in short_paths + ) + if not should_add: + short_paths.add(path) + return short_paths + + +def compress_for_output_listing(paths): + """Returns a tuple of 2 sets of which paths to display to user + + The first set contains paths that would be deleted. Files of a package + are not added and the top-level directory of the package has a '*' added + at the end - to signify that all it's contents are removed. + + The second set contains files that would have been skipped in the above + folders. + """ + + will_remove = list(paths) + will_skip = set() + + # Determine folders and files + folders = set() + files = set() + for path in will_remove: + if path.endswith(".pyc"): + continue + if path.endswith("__init__.py") or ".dist-info" in path: + folders.add(os.path.dirname(path)) + files.add(path) + + folders = compact(folders) + + # This walks the tree using os.walk to not miss extra folders + # that might get added. + for folder in folders: + for dirpath, _, dirfiles in os.walk(folder): + for fname in dirfiles: + if fname.endswith(".pyc"): + continue + + file_ = os.path.normcase(os.path.join(dirpath, fname)) + if os.path.isfile(file_) and file_ not in files: + # We are skipping this file. Add it to the set. + will_skip.add(file_) + + will_remove = files | { + os.path.join(folder, "*") for folder in folders + } + + return will_remove, will_skip + + +class UninstallPathSet(object): + """A set of file paths to be removed in the uninstallation of a + requirement.""" + def __init__(self, dist): + self.paths = set() + self._refuse = set() + self.pth = {} + self.dist = dist + self.save_dir = TempDirectory(kind="uninstall") + self._moved_paths = [] + + def _permitted(self, path): + """ + Return True if the given path is one we are permitted to + remove/modify, False otherwise. + + """ + return is_local(path) + + def add(self, path): + head, tail = os.path.split(path) + + # we normalize the head to resolve parent directory symlinks, but not + # the tail, since we only want to uninstall symlinks, not their targets + path = os.path.join(normalize_path(head), os.path.normcase(tail)) + + if not os.path.exists(path): + return + if self._permitted(path): + self.paths.add(path) + else: + self._refuse.add(path) + + # __pycache__ files can show up after 'installed-files.txt' is created, + # due to imports + if os.path.splitext(path)[1] == '.py' and uses_pycache: + self.add(cache_from_source(path)) + + def add_pth(self, pth_file, entry): + pth_file = normalize_path(pth_file) + if self._permitted(pth_file): + if pth_file not in self.pth: + self.pth[pth_file] = UninstallPthEntries(pth_file) + self.pth[pth_file].add(entry) + else: + self._refuse.add(pth_file) + + def _stash(self, path): + return os.path.join( + self.save_dir.path, os.path.splitdrive(path)[1].lstrip(os.path.sep) + ) + + def remove(self, auto_confirm=False, verbose=False): + """Remove paths in ``self.paths`` with confirmation (unless + ``auto_confirm`` is True).""" + + if not self.paths: + logger.info( + "Can't uninstall '%s'. No files were found to uninstall.", + self.dist.project_name, + ) + return + + dist_name_version = ( + self.dist.project_name + "-" + self.dist.version + ) + logger.info('Uninstalling %s:', dist_name_version) + + with indent_log(): + if auto_confirm or self._allowed_to_proceed(verbose): + self.save_dir.create() + + for path in sorted(compact(self.paths)): + new_path = self._stash(path) + logger.debug('Removing file or directory %s', path) + self._moved_paths.append(path) + renames(path, new_path) + for pth in self.pth.values(): + pth.remove() + + logger.info('Successfully uninstalled %s', dist_name_version) + + def _allowed_to_proceed(self, verbose): + """Display which files would be deleted and prompt for confirmation + """ + + def _display(msg, paths): + if not paths: + return + + logger.info(msg) + with indent_log(): + for path in sorted(compact(paths)): + logger.info(path) + + if not verbose: + will_remove, will_skip = compress_for_output_listing(self.paths) + else: + # In verbose mode, display all the files that are going to be + # deleted. + will_remove = list(self.paths) + will_skip = set() + + _display('Would remove:', will_remove) + _display('Would not remove (might be manually added):', will_skip) + _display('Would not remove (outside of prefix):', self._refuse) + + return ask('Proceed (y/n)? ', ('y', 'n')) == 'y' + + def rollback(self): + """Rollback the changes previously made by remove().""" + if self.save_dir.path is None: + logger.error( + "Can't roll back %s; was not uninstalled", + self.dist.project_name, + ) + return False + logger.info('Rolling back uninstall of %s', self.dist.project_name) + for path in self._moved_paths: + tmp_path = self._stash(path) + logger.debug('Replacing %s', path) + renames(tmp_path, path) + for pth in self.pth.values(): + pth.rollback() + + def commit(self): + """Remove temporary save dir: rollback will no longer be possible.""" + self.save_dir.cleanup() + self._moved_paths = [] + + @classmethod + def from_dist(cls, dist): + dist_path = normalize_path(dist.location) + if not dist_is_local(dist): + logger.info( + "Not uninstalling %s at %s, outside environment %s", + dist.key, + dist_path, + sys.prefix, + ) + return cls(dist) + + if dist_path in {p for p in {sysconfig.get_path("stdlib"), + sysconfig.get_path("platstdlib")} + if p}: + logger.info( + "Not uninstalling %s at %s, as it is in the standard library.", + dist.key, + dist_path, + ) + return cls(dist) + + paths_to_remove = cls(dist) + develop_egg_link = egg_link_path(dist) + develop_egg_link_egg_info = '{}.egg-info'.format( + pkg_resources.to_filename(dist.project_name)) + egg_info_exists = dist.egg_info and os.path.exists(dist.egg_info) + # Special case for distutils installed package + distutils_egg_info = getattr(dist._provider, 'path', None) + + # Uninstall cases order do matter as in the case of 2 installs of the + # same package, pip needs to uninstall the currently detected version + if (egg_info_exists and dist.egg_info.endswith('.egg-info') and + not dist.egg_info.endswith(develop_egg_link_egg_info)): + # if dist.egg_info.endswith(develop_egg_link_egg_info), we + # are in fact in the develop_egg_link case + paths_to_remove.add(dist.egg_info) + if dist.has_metadata('installed-files.txt'): + for installed_file in dist.get_metadata( + 'installed-files.txt').splitlines(): + path = os.path.normpath( + os.path.join(dist.egg_info, installed_file) + ) + paths_to_remove.add(path) + # FIXME: need a test for this elif block + # occurs with --single-version-externally-managed/--record outside + # of pip + elif dist.has_metadata('top_level.txt'): + if dist.has_metadata('namespace_packages.txt'): + namespaces = dist.get_metadata('namespace_packages.txt') + else: + namespaces = [] + for top_level_pkg in [ + p for p + in dist.get_metadata('top_level.txt').splitlines() + if p and p not in namespaces]: + path = os.path.join(dist.location, top_level_pkg) + paths_to_remove.add(path) + paths_to_remove.add(path + '.py') + paths_to_remove.add(path + '.pyc') + paths_to_remove.add(path + '.pyo') + + elif distutils_egg_info: + raise UninstallationError( + "Cannot uninstall {!r}. It is a distutils installed project " + "and thus we cannot accurately determine which files belong " + "to it which would lead to only a partial uninstall.".format( + dist.project_name, + ) + ) + + elif dist.location.endswith('.egg'): + # package installed by easy_install + # We cannot match on dist.egg_name because it can slightly vary + # i.e. setuptools-0.6c11-py2.6.egg vs setuptools-0.6rc11-py2.6.egg + paths_to_remove.add(dist.location) + easy_install_egg = os.path.split(dist.location)[1] + easy_install_pth = os.path.join(os.path.dirname(dist.location), + 'easy-install.pth') + paths_to_remove.add_pth(easy_install_pth, './' + easy_install_egg) + + elif egg_info_exists and dist.egg_info.endswith('.dist-info'): + for path in uninstallation_paths(dist): + paths_to_remove.add(path) + + elif develop_egg_link: + # develop egg + with open(develop_egg_link, 'r') as fh: + link_pointer = os.path.normcase(fh.readline().strip()) + assert (link_pointer == dist.location), ( + 'Egg-link %s does not match installed location of %s ' + '(at %s)' % (link_pointer, dist.project_name, dist.location) + ) + paths_to_remove.add(develop_egg_link) + easy_install_pth = os.path.join(os.path.dirname(develop_egg_link), + 'easy-install.pth') + paths_to_remove.add_pth(easy_install_pth, dist.location) + + else: + logger.debug( + 'Not sure how to uninstall: %s - Check: %s', + dist, dist.location, + ) + + # find distutils scripts= scripts + if dist.has_metadata('scripts') and dist.metadata_isdir('scripts'): + for script in dist.metadata_listdir('scripts'): + if dist_in_usersite(dist): + bin_dir = bin_user + else: + bin_dir = bin_py + paths_to_remove.add(os.path.join(bin_dir, script)) + if WINDOWS: + paths_to_remove.add(os.path.join(bin_dir, script) + '.bat') + + # find console_scripts + _scripts_to_remove = [] + console_scripts = dist.get_entry_map(group='console_scripts') + for name in console_scripts.keys(): + _scripts_to_remove.extend(_script_names(dist, name, False)) + # find gui_scripts + gui_scripts = dist.get_entry_map(group='gui_scripts') + for name in gui_scripts.keys(): + _scripts_to_remove.extend(_script_names(dist, name, True)) + + for s in _scripts_to_remove: + paths_to_remove.add(s) + + return paths_to_remove + + +class UninstallPthEntries(object): + def __init__(self, pth_file): + if not os.path.isfile(pth_file): + raise UninstallationError( + "Cannot remove entries from nonexistent file %s" % pth_file + ) + self.file = pth_file + self.entries = set() + self._saved_lines = None + + def add(self, entry): + entry = os.path.normcase(entry) + # On Windows, os.path.normcase converts the entry to use + # backslashes. This is correct for entries that describe absolute + # paths outside of site-packages, but all the others use forward + # slashes. + if WINDOWS and not os.path.splitdrive(entry)[0]: + entry = entry.replace('\\', '/') + self.entries.add(entry) + + def remove(self): + logger.debug('Removing pth entries from %s:', self.file) + with open(self.file, 'rb') as fh: + # windows uses '\r\n' with py3k, but uses '\n' with py2.x + lines = fh.readlines() + self._saved_lines = lines + if any(b'\r\n' in line for line in lines): + endline = '\r\n' + else: + endline = '\n' + # handle missing trailing newline + if lines and not lines[-1].endswith(endline.encode("utf-8")): + lines[-1] = lines[-1] + endline.encode("utf-8") + for entry in self.entries: + try: + logger.debug('Removing entry: %s', entry) + lines.remove((entry + endline).encode("utf-8")) + except ValueError: + pass + with open(self.file, 'wb') as fh: + fh.writelines(lines) + + def rollback(self): + if self._saved_lines is None: + logger.error( + 'Cannot roll back changes to %s, none were made', self.file + ) + return False + logger.debug('Rolling %s back to previous state', self.file) + with open(self.file, 'wb') as fh: + fh.writelines(self._saved_lines) + return True diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/resolve.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/resolve.py new file mode 100644 index 00000000..3200fca8 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/resolve.py @@ -0,0 +1,354 @@ +"""Dependency Resolution + +The dependency resolution in pip is performed as follows: + +for top-level requirements: + a. only one spec allowed per project, regardless of conflicts or not. + otherwise a "double requirement" exception is raised + b. they override sub-dependency requirements. +for sub-dependencies + a. "first found, wins" (where the order is breadth first) +""" + +import logging +from collections import defaultdict +from itertools import chain + +from pip._internal.exceptions import ( + BestVersionAlreadyInstalled, DistributionNotFound, HashError, HashErrors, + UnsupportedPythonVersion, +) + +from pip._internal.req.req_install import InstallRequirement +from pip._internal.utils.logging import indent_log +from pip._internal.utils.misc import dist_in_usersite, ensure_dir +from pip._internal.utils.packaging import check_dist_requires_python + +logger = logging.getLogger(__name__) + + +class Resolver(object): + """Resolves which packages need to be installed/uninstalled to perform \ + the requested operation without breaking the requirements of any package. + """ + + _allowed_strategies = {"eager", "only-if-needed", "to-satisfy-only"} + + def __init__(self, preparer, session, finder, wheel_cache, use_user_site, + ignore_dependencies, ignore_installed, ignore_requires_python, + force_reinstall, isolated, upgrade_strategy): + super(Resolver, self).__init__() + assert upgrade_strategy in self._allowed_strategies + + self.preparer = preparer + self.finder = finder + self.session = session + + # NOTE: This would eventually be replaced with a cache that can give + # information about both sdist and wheels transparently. + self.wheel_cache = wheel_cache + + self.require_hashes = None # This is set in resolve + + self.upgrade_strategy = upgrade_strategy + self.force_reinstall = force_reinstall + self.isolated = isolated + self.ignore_dependencies = ignore_dependencies + self.ignore_installed = ignore_installed + self.ignore_requires_python = ignore_requires_python + self.use_user_site = use_user_site + + self._discovered_dependencies = defaultdict(list) + + def resolve(self, requirement_set): + """Resolve what operations need to be done + + As a side-effect of this method, the packages (and their dependencies) + are downloaded, unpacked and prepared for installation. This + preparation is done by ``pip.operations.prepare``. + + Once PyPI has static dependency metadata available, it would be + possible to move the preparation to become a step separated from + dependency resolution. + """ + # make the wheelhouse + if self.preparer.wheel_download_dir: + ensure_dir(self.preparer.wheel_download_dir) + + # If any top-level requirement has a hash specified, enter + # hash-checking mode, which requires hashes from all. + root_reqs = ( + requirement_set.unnamed_requirements + + list(requirement_set.requirements.values()) + ) + self.require_hashes = ( + requirement_set.require_hashes or + any(req.has_hash_options for req in root_reqs) + ) + + # Display where finder is looking for packages + locations = self.finder.get_formatted_locations() + if locations: + logger.info(locations) + + # Actually prepare the files, and collect any exceptions. Most hash + # exceptions cannot be checked ahead of time, because + # req.populate_link() needs to be called before we can make decisions + # based on link type. + discovered_reqs = [] + hash_errors = HashErrors() + for req in chain(root_reqs, discovered_reqs): + try: + discovered_reqs.extend( + self._resolve_one(requirement_set, req) + ) + except HashError as exc: + exc.req = req + hash_errors.append(exc) + + if hash_errors: + raise hash_errors + + def _is_upgrade_allowed(self, req): + if self.upgrade_strategy == "to-satisfy-only": + return False + elif self.upgrade_strategy == "eager": + return True + else: + assert self.upgrade_strategy == "only-if-needed" + return req.is_direct + + def _set_req_to_reinstall(self, req): + """ + Set a requirement to be installed. + """ + # Don't uninstall the conflict if doing a user install and the + # conflict is not a user install. + if not self.use_user_site or dist_in_usersite(req.satisfied_by): + req.conflicts_with = req.satisfied_by + req.satisfied_by = None + + # XXX: Stop passing requirement_set for options + def _check_skip_installed(self, req_to_install): + """Check if req_to_install should be skipped. + + This will check if the req is installed, and whether we should upgrade + or reinstall it, taking into account all the relevant user options. + + After calling this req_to_install will only have satisfied_by set to + None if the req_to_install is to be upgraded/reinstalled etc. Any + other value will be a dist recording the current thing installed that + satisfies the requirement. + + Note that for vcs urls and the like we can't assess skipping in this + routine - we simply identify that we need to pull the thing down, + then later on it is pulled down and introspected to assess upgrade/ + reinstalls etc. + + :return: A text reason for why it was skipped, or None. + """ + if self.ignore_installed: + return None + + req_to_install.check_if_exists(self.use_user_site) + if not req_to_install.satisfied_by: + return None + + if self.force_reinstall: + self._set_req_to_reinstall(req_to_install) + return None + + if not self._is_upgrade_allowed(req_to_install): + if self.upgrade_strategy == "only-if-needed": + return 'not upgraded as not directly required' + return 'already satisfied' + + # Check for the possibility of an upgrade. For link-based + # requirements we have to pull the tree down and inspect to assess + # the version #, so it's handled way down. + if not req_to_install.link: + try: + self.finder.find_requirement(req_to_install, upgrade=True) + except BestVersionAlreadyInstalled: + # Then the best version is installed. + return 'already up-to-date' + except DistributionNotFound: + # No distribution found, so we squash the error. It will + # be raised later when we re-try later to do the install. + # Why don't we just raise here? + pass + + self._set_req_to_reinstall(req_to_install) + return None + + def _get_abstract_dist_for(self, req): + """Takes a InstallRequirement and returns a single AbstractDist \ + representing a prepared variant of the same. + """ + assert self.require_hashes is not None, ( + "require_hashes should have been set in Resolver.resolve()" + ) + + if req.editable: + return self.preparer.prepare_editable_requirement( + req, self.require_hashes, self.use_user_site, self.finder, + ) + + # satisfied_by is only evaluated by calling _check_skip_installed, + # so it must be None here. + assert req.satisfied_by is None + skip_reason = self._check_skip_installed(req) + + if req.satisfied_by: + return self.preparer.prepare_installed_requirement( + req, self.require_hashes, skip_reason + ) + + upgrade_allowed = self._is_upgrade_allowed(req) + abstract_dist = self.preparer.prepare_linked_requirement( + req, self.session, self.finder, upgrade_allowed, + self.require_hashes + ) + + # NOTE + # The following portion is for determining if a certain package is + # going to be re-installed/upgraded or not and reporting to the user. + # This should probably get cleaned up in a future refactor. + + # req.req is only avail after unpack for URL + # pkgs repeat check_if_exists to uninstall-on-upgrade + # (#14) + if not self.ignore_installed: + req.check_if_exists(self.use_user_site) + + if req.satisfied_by: + should_modify = ( + self.upgrade_strategy != "to-satisfy-only" or + self.force_reinstall or + self.ignore_installed or + req.link.scheme == 'file' + ) + if should_modify: + self._set_req_to_reinstall(req) + else: + logger.info( + 'Requirement already satisfied (use --upgrade to upgrade):' + ' %s', req, + ) + + return abstract_dist + + def _resolve_one(self, requirement_set, req_to_install): + """Prepare a single requirements file. + + :return: A list of additional InstallRequirements to also install. + """ + # Tell user what we are doing for this requirement: + # obtain (editable), skipping, processing (local url), collecting + # (remote url or package name) + if req_to_install.constraint or req_to_install.prepared: + return [] + + req_to_install.prepared = True + + # register tmp src for cleanup in case something goes wrong + requirement_set.reqs_to_cleanup.append(req_to_install) + + abstract_dist = self._get_abstract_dist_for(req_to_install) + + # Parse and return dependencies + dist = abstract_dist.dist(self.finder) + try: + check_dist_requires_python(dist) + except UnsupportedPythonVersion as err: + if self.ignore_requires_python: + logger.warning(err.args[0]) + else: + raise + + more_reqs = [] + + def add_req(subreq, extras_requested): + sub_install_req = InstallRequirement.from_req( + str(subreq), + req_to_install, + isolated=self.isolated, + wheel_cache=self.wheel_cache, + ) + parent_req_name = req_to_install.name + to_scan_again, add_to_parent = requirement_set.add_requirement( + sub_install_req, + parent_req_name=parent_req_name, + extras_requested=extras_requested, + ) + if parent_req_name and add_to_parent: + self._discovered_dependencies[parent_req_name].append( + add_to_parent + ) + more_reqs.extend(to_scan_again) + + with indent_log(): + # We add req_to_install before its dependencies, so that we + # can refer to it when adding dependencies. + if not requirement_set.has_requirement(req_to_install.name): + # 'unnamed' requirements will get added here + req_to_install.is_direct = True + requirement_set.add_requirement( + req_to_install, parent_req_name=None, + ) + + if not self.ignore_dependencies: + if req_to_install.extras: + logger.debug( + "Installing extra requirements: %r", + ','.join(req_to_install.extras), + ) + missing_requested = sorted( + set(req_to_install.extras) - set(dist.extras) + ) + for missing in missing_requested: + logger.warning( + '%s does not provide the extra \'%s\'', + dist, missing + ) + + available_requested = sorted( + set(dist.extras) & set(req_to_install.extras) + ) + for subreq in dist.requires(available_requested): + add_req(subreq, extras_requested=available_requested) + + if not req_to_install.editable and not req_to_install.satisfied_by: + # XXX: --no-install leads this to report 'Successfully + # downloaded' for only non-editable reqs, even though we took + # action on them. + requirement_set.successfully_downloaded.append(req_to_install) + + return more_reqs + + def get_installation_order(self, req_set): + """Create the installation order. + + The installation order is topological - requirements are installed + before the requiring thing. We break cycles at an arbitrary point, + and make no other guarantees. + """ + # The current implementation, which we may change at any point + # installs the user specified things in the order given, except when + # dependencies must come earlier to achieve topological order. + order = [] + ordered_reqs = set() + + def schedule(req): + if req.satisfied_by or req in ordered_reqs: + return + if req.constraint: + return + ordered_reqs.add(req) + for dep in self._discovered_dependencies[req.name]: + schedule(dep) + order.append(req) + + for install_req in req_set.requirements.values(): + schedule(install_req) + return order diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/status_codes.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/status_codes.py new file mode 100644 index 00000000..275360a3 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/status_codes.py @@ -0,0 +1,8 @@ +from __future__ import absolute_import + +SUCCESS = 0 +ERROR = 1 +UNKNOWN_ERROR = 2 +VIRTUALENV_NOT_FOUND = 3 +PREVIOUS_BUILD_DIR_ERROR = 4 +NO_MATCHES_FOUND = 23 diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/appdirs.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/appdirs.py new file mode 100644 index 00000000..28c5d4b3 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/appdirs.py @@ -0,0 +1,258 @@ +""" +This code was taken from https://github.com/ActiveState/appdirs and modified +to suit our purposes. +""" +from __future__ import absolute_import + +import os +import sys + +from pip._vendor.six import PY2, text_type + +from pip._internal.compat import WINDOWS, expanduser + + +def user_cache_dir(appname): + r""" + Return full path to the user-specific cache dir for this application. + + "appname" is the name of application. + + Typical user cache directories are: + macOS: ~/Library/Caches/ + Unix: ~/.cache/ (XDG default) + Windows: C:\Users\\AppData\Local\\Cache + + On Windows the only suggestion in the MSDN docs is that local settings go + in the `CSIDL_LOCAL_APPDATA` directory. This is identical to the + non-roaming app data dir (the default returned by `user_data_dir`). Apps + typically put cache data somewhere *under* the given dir here. Some + examples: + ...\Mozilla\Firefox\Profiles\\Cache + ...\Acme\SuperApp\Cache\1.0 + + OPINION: This function appends "Cache" to the `CSIDL_LOCAL_APPDATA` value. + """ + if WINDOWS: + # Get the base path + path = os.path.normpath(_get_win_folder("CSIDL_LOCAL_APPDATA")) + + # When using Python 2, return paths as bytes on Windows like we do on + # other operating systems. See helper function docs for more details. + if PY2 and isinstance(path, text_type): + path = _win_path_to_bytes(path) + + # Add our app name and Cache directory to it + path = os.path.join(path, appname, "Cache") + elif sys.platform == "darwin": + # Get the base path + path = expanduser("~/Library/Caches") + + # Add our app name to it + path = os.path.join(path, appname) + else: + # Get the base path + path = os.getenv("XDG_CACHE_HOME", expanduser("~/.cache")) + + # Add our app name to it + path = os.path.join(path, appname) + + return path + + +def user_data_dir(appname, roaming=False): + r""" + Return full path to the user-specific data dir for this application. + + "appname" is the name of application. + If None, just the system directory is returned. + "roaming" (boolean, default False) can be set True to use the Windows + roaming appdata directory. That means that for users on a Windows + network setup for roaming profiles, this user data will be + sync'd on login. See + + for a discussion of issues. + + Typical user data directories are: + macOS: ~/Library/Application Support/ + if it exists, else ~/.config/ + Unix: ~/.local/share/ # or in + $XDG_DATA_HOME, if defined + Win XP (not roaming): C:\Documents and Settings\\ ... + ...Application Data\ + Win XP (roaming): C:\Documents and Settings\\Local ... + ...Settings\Application Data\ + Win 7 (not roaming): C:\\Users\\AppData\Local\ + Win 7 (roaming): C:\\Users\\AppData\Roaming\ + + For Unix, we follow the XDG spec and support $XDG_DATA_HOME. + That means, by default "~/.local/share/". + """ + if WINDOWS: + const = roaming and "CSIDL_APPDATA" or "CSIDL_LOCAL_APPDATA" + path = os.path.join(os.path.normpath(_get_win_folder(const)), appname) + elif sys.platform == "darwin": + path = os.path.join( + expanduser('~/Library/Application Support/'), + appname, + ) if os.path.isdir(os.path.join( + expanduser('~/Library/Application Support/'), + appname, + ) + ) else os.path.join( + expanduser('~/.config/'), + appname, + ) + else: + path = os.path.join( + os.getenv('XDG_DATA_HOME', expanduser("~/.local/share")), + appname, + ) + + return path + + +def user_config_dir(appname, roaming=True): + """Return full path to the user-specific config dir for this application. + + "appname" is the name of application. + If None, just the system directory is returned. + "roaming" (boolean, default True) can be set False to not use the + Windows roaming appdata directory. That means that for users on a + Windows network setup for roaming profiles, this user data will be + sync'd on login. See + + for a discussion of issues. + + Typical user data directories are: + macOS: same as user_data_dir + Unix: ~/.config/ + Win *: same as user_data_dir + + For Unix, we follow the XDG spec and support $XDG_CONFIG_HOME. + That means, by default "~/.config/". + """ + if WINDOWS: + path = user_data_dir(appname, roaming=roaming) + elif sys.platform == "darwin": + path = user_data_dir(appname) + else: + path = os.getenv('XDG_CONFIG_HOME', expanduser("~/.config")) + path = os.path.join(path, appname) + + return path + + +# for the discussion regarding site_config_dirs locations +# see +def site_config_dirs(appname): + r"""Return a list of potential user-shared config dirs for this application. + + "appname" is the name of application. + + Typical user config directories are: + macOS: /Library/Application Support// + Unix: /etc or $XDG_CONFIG_DIRS[i]// for each value in + $XDG_CONFIG_DIRS + Win XP: C:\Documents and Settings\All Users\Application ... + ...Data\\ + Vista: (Fail! "C:\ProgramData" is a hidden *system* directory + on Vista.) + Win 7: Hidden, but writeable on Win 7: + C:\ProgramData\\ + """ + if WINDOWS: + path = os.path.normpath(_get_win_folder("CSIDL_COMMON_APPDATA")) + pathlist = [os.path.join(path, appname)] + elif sys.platform == 'darwin': + pathlist = [os.path.join('/Library/Application Support', appname)] + else: + # try looking in $XDG_CONFIG_DIRS + xdg_config_dirs = os.getenv('XDG_CONFIG_DIRS', '/etc/xdg') + if xdg_config_dirs: + pathlist = [ + os.path.join(expanduser(x), appname) + for x in xdg_config_dirs.split(os.pathsep) + ] + else: + pathlist = [] + + # always look in /etc directly as well + pathlist.append('/etc') + + return pathlist + + +# -- Windows support functions -- + +def _get_win_folder_from_registry(csidl_name): + """ + This is a fallback technique at best. I'm not sure if using the + registry for this guarantees us the correct answer for all CSIDL_* + names. + """ + import _winreg + + shell_folder_name = { + "CSIDL_APPDATA": "AppData", + "CSIDL_COMMON_APPDATA": "Common AppData", + "CSIDL_LOCAL_APPDATA": "Local AppData", + }[csidl_name] + + key = _winreg.OpenKey( + _winreg.HKEY_CURRENT_USER, + r"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" + ) + directory, _type = _winreg.QueryValueEx(key, shell_folder_name) + return directory + + +def _get_win_folder_with_ctypes(csidl_name): + csidl_const = { + "CSIDL_APPDATA": 26, + "CSIDL_COMMON_APPDATA": 35, + "CSIDL_LOCAL_APPDATA": 28, + }[csidl_name] + + buf = ctypes.create_unicode_buffer(1024) + ctypes.windll.shell32.SHGetFolderPathW(None, csidl_const, None, 0, buf) + + # Downgrade to short path name if have highbit chars. See + # . + has_high_char = False + for c in buf: + if ord(c) > 255: + has_high_char = True + break + if has_high_char: + buf2 = ctypes.create_unicode_buffer(1024) + if ctypes.windll.kernel32.GetShortPathNameW(buf.value, buf2, 1024): + buf = buf2 + + return buf.value + + +if WINDOWS: + try: + import ctypes + _get_win_folder = _get_win_folder_with_ctypes + except ImportError: + _get_win_folder = _get_win_folder_from_registry + + +def _win_path_to_bytes(path): + """Encode Windows paths to bytes. Only used on Python 2. + + Motivation is to be consistent with other operating systems where paths + are also returned as bytes. This avoids problems mixing bytes and Unicode + elsewhere in the codebase. For more details and discussion see + . + + If encoding using ASCII and MBCS fails, return the original Unicode path. + """ + for encoding in ('ASCII', 'MBCS'): + try: + return path.encode(encoding) + except (UnicodeEncodeError, LookupError): + pass + return path diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/deprecation.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/deprecation.py new file mode 100644 index 00000000..a9071729 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/deprecation.py @@ -0,0 +1,77 @@ +""" +A module that implements tooling to enable easy warnings about deprecations. +""" +from __future__ import absolute_import + +import logging +import warnings + +from pip._internal.utils.typing import MYPY_CHECK_RUNNING + +if MYPY_CHECK_RUNNING: + from typing import Any + + +class PipDeprecationWarning(Warning): + pass + + +class Pending(object): + pass + + +class RemovedInPip11Warning(PipDeprecationWarning): + pass + + +class RemovedInPip12Warning(PipDeprecationWarning, Pending): + pass + + +# Warnings <-> Logging Integration + + +_warnings_showwarning = None # type: Any + + +def _showwarning(message, category, filename, lineno, file=None, line=None): + if file is not None: + if _warnings_showwarning is not None: + _warnings_showwarning( + message, category, filename, lineno, file, line, + ) + else: + if issubclass(category, PipDeprecationWarning): + # We use a specially named logger which will handle all of the + # deprecation messages for pip. + logger = logging.getLogger("pip._internal.deprecations") + + # This is purposely using the % formatter here instead of letting + # the logging module handle the interpolation. This is because we + # want it to appear as if someone typed this entire message out. + log_message = "DEPRECATION: %s" % message + + # PipDeprecationWarnings that are Pending still have at least 2 + # versions to go until they are removed so they can just be + # warnings. Otherwise, they will be removed in the very next + # version of pip. We want these to be more obvious so we use the + # ERROR logging level. + if issubclass(category, Pending): + logger.warning(log_message) + else: + logger.error(log_message) + else: + _warnings_showwarning( + message, category, filename, lineno, file, line, + ) + + +def install_warning_logger(): + # Enable our Deprecation Warnings + warnings.simplefilter("default", PipDeprecationWarning, append=True) + + global _warnings_showwarning + + if _warnings_showwarning is None: + _warnings_showwarning = warnings.showwarning + warnings.showwarning = _showwarning diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/encoding.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/encoding.py new file mode 100644 index 00000000..56f60361 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/encoding.py @@ -0,0 +1,33 @@ +import codecs +import locale +import re +import sys + +BOMS = [ + (codecs.BOM_UTF8, 'utf8'), + (codecs.BOM_UTF16, 'utf16'), + (codecs.BOM_UTF16_BE, 'utf16-be'), + (codecs.BOM_UTF16_LE, 'utf16-le'), + (codecs.BOM_UTF32, 'utf32'), + (codecs.BOM_UTF32_BE, 'utf32-be'), + (codecs.BOM_UTF32_LE, 'utf32-le'), +] + +ENCODING_RE = re.compile(br'coding[:=]\s*([-\w.]+)') + + +def auto_decode(data): + """Check a bytes string for a BOM to correctly detect the encoding + + Fallback to locale.getpreferredencoding(False) like open() on Python3""" + for bom, encoding in BOMS: + if data.startswith(bom): + return data[len(bom):].decode(encoding) + # Lets check the first two lines as in PEP263 + for line in data.split(b'\n')[:2]: + if line[0:1] == b'#' and ENCODING_RE.search(line): + encoding = ENCODING_RE.search(line).groups()[0].decode('ascii') + return data.decode(encoding) + return data.decode( + locale.getpreferredencoding(False) or sys.getdefaultencoding(), + ) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/filesystem.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/filesystem.py new file mode 100644 index 00000000..ee455012 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/filesystem.py @@ -0,0 +1,28 @@ +import os +import os.path + +from pip._internal.compat import get_path_uid + + +def check_path_owner(path): + # If we don't have a way to check the effective uid of this process, then + # we'll just assume that we own the directory. + if not hasattr(os, "geteuid"): + return True + + previous = None + while path != previous: + if os.path.lexists(path): + # Check if path is writable by current user. + if os.geteuid() == 0: + # Special handling for root user in order to handle properly + # cases where users use sudo without -H flag. + try: + path_uid = get_path_uid(path) + except OSError: + return False + return path_uid == 0 + else: + return os.access(path, os.W_OK) + else: + previous, path = path, os.path.dirname(path) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/glibc.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/glibc.py new file mode 100644 index 00000000..ebcfc5be --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/glibc.py @@ -0,0 +1,84 @@ +from __future__ import absolute_import + +import ctypes +import re +import warnings + + +def glibc_version_string(): + "Returns glibc version string, or None if not using glibc." + + # ctypes.CDLL(None) internally calls dlopen(NULL), and as the dlopen + # manpage says, "If filename is NULL, then the returned handle is for the + # main program". This way we can let the linker do the work to figure out + # which libc our process is actually using. + process_namespace = ctypes.CDLL(None) + try: + gnu_get_libc_version = process_namespace.gnu_get_libc_version + except AttributeError: + # Symbol doesn't exist -> therefore, we are not linked to + # glibc. + return None + + # Call gnu_get_libc_version, which returns a string like "2.5" + gnu_get_libc_version.restype = ctypes.c_char_p + version_str = gnu_get_libc_version() + # py2 / py3 compatibility: + if not isinstance(version_str, str): + version_str = version_str.decode("ascii") + + return version_str + + +# Separated out from have_compatible_glibc for easier unit testing +def check_glibc_version(version_str, required_major, minimum_minor): + # Parse string and check against requested version. + # + # We use a regexp instead of str.split because we want to discard any + # random junk that might come after the minor version -- this might happen + # in patched/forked versions of glibc (e.g. Linaro's version of glibc + # uses version strings like "2.20-2014.11"). See gh-3588. + m = re.match(r"(?P[0-9]+)\.(?P[0-9]+)", version_str) + if not m: + warnings.warn("Expected glibc version with 2 components major.minor," + " got: %s" % version_str, RuntimeWarning) + return False + return (int(m.group("major")) == required_major and + int(m.group("minor")) >= minimum_minor) + + +def have_compatible_glibc(required_major, minimum_minor): + version_str = glibc_version_string() + if version_str is None: + return False + return check_glibc_version(version_str, required_major, minimum_minor) + + +# platform.libc_ver regularly returns completely nonsensical glibc +# versions. E.g. on my computer, platform says: +# +# ~$ python2.7 -c 'import platform; print(platform.libc_ver())' +# ('glibc', '2.7') +# ~$ python3.5 -c 'import platform; print(platform.libc_ver())' +# ('glibc', '2.9') +# +# But the truth is: +# +# ~$ ldd --version +# ldd (Debian GLIBC 2.22-11) 2.22 +# +# This is unfortunate, because it means that the linehaul data on libc +# versions that was generated by pip 8.1.2 and earlier is useless and +# misleading. Solution: instead of using platform, use our code that actually +# works. +def libc_ver(): + """Try to determine the glibc version + + Returns a tuple of strings (lib, version) which default to empty strings + in case the lookup fails. + """ + glibc_version = glibc_version_string() + if glibc_version is None: + return ("", "") + else: + return ("glibc", glibc_version) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/hashes.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/hashes.py new file mode 100644 index 00000000..8b909ba1 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/hashes.py @@ -0,0 +1,94 @@ +from __future__ import absolute_import + +import hashlib + +from pip._vendor.six import iteritems, iterkeys, itervalues + +from pip._internal.exceptions import ( + HashMismatch, HashMissing, InstallationError, +) +from pip._internal.utils.misc import read_chunks + +# The recommended hash algo of the moment. Change this whenever the state of +# the art changes; it won't hurt backward compatibility. +FAVORITE_HASH = 'sha256' + + +# Names of hashlib algorithms allowed by the --hash option and ``pip hash`` +# Currently, those are the ones at least as collision-resistant as sha256. +STRONG_HASHES = ['sha256', 'sha384', 'sha512'] + + +class Hashes(object): + """A wrapper that builds multiple hashes at once and checks them against + known-good values + + """ + def __init__(self, hashes=None): + """ + :param hashes: A dict of algorithm names pointing to lists of allowed + hex digests + """ + self._allowed = {} if hashes is None else hashes + + def check_against_chunks(self, chunks): + """Check good hashes against ones built from iterable of chunks of + data. + + Raise HashMismatch if none match. + + """ + gots = {} + for hash_name in iterkeys(self._allowed): + try: + gots[hash_name] = hashlib.new(hash_name) + except (ValueError, TypeError): + raise InstallationError('Unknown hash name: %s' % hash_name) + + for chunk in chunks: + for hash in itervalues(gots): + hash.update(chunk) + + for hash_name, got in iteritems(gots): + if got.hexdigest() in self._allowed[hash_name]: + return + self._raise(gots) + + def _raise(self, gots): + raise HashMismatch(self._allowed, gots) + + def check_against_file(self, file): + """Check good hashes against a file-like object + + Raise HashMismatch if none match. + + """ + return self.check_against_chunks(read_chunks(file)) + + def check_against_path(self, path): + with open(path, 'rb') as file: + return self.check_against_file(file) + + def __nonzero__(self): + """Return whether I know any known-good hashes.""" + return bool(self._allowed) + + def __bool__(self): + return self.__nonzero__() + + +class MissingHashes(Hashes): + """A workalike for Hashes used when we're missing a hash for a requirement + + It computes the actual hash of the requirement and raises a HashMissing + exception showing it to the user. + + """ + def __init__(self): + """Don't offer the ``hashes`` kwarg.""" + # Pass our favorite hash in to generate a "gotten hash". With the + # empty list, it will never match, so an error will always raise. + super(MissingHashes, self).__init__(hashes={FAVORITE_HASH: []}) + + def _raise(self, gots): + raise HashMissing(gots[FAVORITE_HASH].hexdigest()) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/logging.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/logging.py new file mode 100644 index 00000000..5a5a7d73 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/logging.py @@ -0,0 +1,132 @@ +from __future__ import absolute_import + +import contextlib +import logging +import logging.handlers +import os + +from pip._internal.compat import WINDOWS +from pip._internal.utils.misc import ensure_dir + +try: + import threading +except ImportError: + import dummy_threading as threading # type: ignore + + +try: + from pip._vendor import colorama +# Lots of different errors can come from this, including SystemError and +# ImportError. +except Exception: + colorama = None + + +_log_state = threading.local() +_log_state.indentation = 0 + + +@contextlib.contextmanager +def indent_log(num=2): + """ + A context manager which will cause the log output to be indented for any + log messages emitted inside it. + """ + _log_state.indentation += num + try: + yield + finally: + _log_state.indentation -= num + + +def get_indentation(): + return getattr(_log_state, 'indentation', 0) + + +class IndentingFormatter(logging.Formatter): + + def format(self, record): + """ + Calls the standard formatter, but will indent all of the log messages + by our current indentation level. + """ + formatted = logging.Formatter.format(self, record) + formatted = "".join([ + (" " * get_indentation()) + line + for line in formatted.splitlines(True) + ]) + return formatted + + +def _color_wrap(*colors): + def wrapped(inp): + return "".join(list(colors) + [inp, colorama.Style.RESET_ALL]) + return wrapped + + +class ColorizedStreamHandler(logging.StreamHandler): + + # Don't build up a list of colors if we don't have colorama + if colorama: + COLORS = [ + # This needs to be in order from highest logging level to lowest. + (logging.ERROR, _color_wrap(colorama.Fore.RED)), + (logging.WARNING, _color_wrap(colorama.Fore.YELLOW)), + ] + else: + COLORS = [] + + def __init__(self, stream=None, no_color=None): + logging.StreamHandler.__init__(self, stream) + self._no_color = no_color + + if WINDOWS and colorama: + self.stream = colorama.AnsiToWin32(self.stream) + + def should_color(self): + # Don't colorize things if we do not have colorama or if told not to + if not colorama or self._no_color: + return False + + real_stream = ( + self.stream if not isinstance(self.stream, colorama.AnsiToWin32) + else self.stream.wrapped + ) + + # If the stream is a tty we should color it + if hasattr(real_stream, "isatty") and real_stream.isatty(): + return True + + # If we have an ASNI term we should color it + if os.environ.get("TERM") == "ANSI": + return True + + # If anything else we should not color it + return False + + def format(self, record): + msg = logging.StreamHandler.format(self, record) + + if self.should_color(): + for level, color in self.COLORS: + if record.levelno >= level: + msg = color(msg) + break + + return msg + + +class BetterRotatingFileHandler(logging.handlers.RotatingFileHandler): + + def _open(self): + ensure_dir(os.path.dirname(self.baseFilename)) + return logging.handlers.RotatingFileHandler._open(self) + + +class MaxLevelFilter(logging.Filter): + + def __init__(self, level): + self.level = level + + def filter(self, record): + return record.levelno < self.level diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/misc.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/misc.py new file mode 100644 index 00000000..9d4c9b16 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/misc.py @@ -0,0 +1,851 @@ +from __future__ import absolute_import + +import contextlib +import errno +import io +import locale +# we have a submodule named 'logging' which would shadow this if we used the +# regular name: +import logging as std_logging +import os +import posixpath +import re +import shutil +import stat +import subprocess +import sys +import tarfile +import zipfile +from collections import deque + +from pip._vendor import pkg_resources +# NOTE: retrying is not annotated in typeshed as on 2017-07-17, which is +# why we ignore the type on this import. +from pip._vendor.retrying import retry # type: ignore +from pip._vendor.six import PY2 +from pip._vendor.six.moves import input + +from pip._internal.compat import console_to_str, expanduser, stdlib_pkgs +from pip._internal.exceptions import InstallationError +from pip._internal.locations import ( + running_under_virtualenv, site_packages, user_site, virtualenv_no_global, + write_delete_marker_file, +) + +if PY2: + from io import BytesIO as StringIO +else: + from io import StringIO + +__all__ = ['rmtree', 'display_path', 'backup_dir', + 'ask', 'splitext', + 'format_size', 'is_installable_dir', + 'is_svn_page', 'file_contents', + 'split_leading_dir', 'has_leading_dir', + 'normalize_path', + 'renames', 'get_prog', + 'unzip_file', 'untar_file', 'unpack_file', 'call_subprocess', + 'captured_stdout', 'ensure_dir', + 'ARCHIVE_EXTENSIONS', 'SUPPORTED_EXTENSIONS', + 'get_installed_version'] + + +logger = std_logging.getLogger(__name__) + +BZ2_EXTENSIONS = ('.tar.bz2', '.tbz') +XZ_EXTENSIONS = ('.tar.xz', '.txz', '.tlz', '.tar.lz', '.tar.lzma') +ZIP_EXTENSIONS = ('.zip', '.whl') +TAR_EXTENSIONS = ('.tar.gz', '.tgz', '.tar') +ARCHIVE_EXTENSIONS = ( + ZIP_EXTENSIONS + BZ2_EXTENSIONS + TAR_EXTENSIONS + XZ_EXTENSIONS) +SUPPORTED_EXTENSIONS = ZIP_EXTENSIONS + TAR_EXTENSIONS +try: + import bz2 # noqa + SUPPORTED_EXTENSIONS += BZ2_EXTENSIONS +except ImportError: + logger.debug('bz2 module is not available') + +try: + # Only for Python 3.3+ + import lzma # noqa + SUPPORTED_EXTENSIONS += XZ_EXTENSIONS +except ImportError: + logger.debug('lzma module is not available') + + +def import_or_raise(pkg_or_module_string, ExceptionType, *args, **kwargs): + try: + return __import__(pkg_or_module_string) + except ImportError: + raise ExceptionType(*args, **kwargs) + + +def ensure_dir(path): + """os.path.makedirs without EEXIST.""" + try: + os.makedirs(path) + except OSError as e: + if e.errno != errno.EEXIST: + raise + + +def get_prog(): + try: + prog = os.path.basename(sys.argv[0]) + if prog in ('__main__.py', '-c'): + return "%s -m pip" % sys.executable + else: + return prog + except (AttributeError, TypeError, IndexError): + pass + return 'pip' + + +# Retry every half second for up to 3 seconds +@retry(stop_max_delay=3000, wait_fixed=500) +def rmtree(dir, ignore_errors=False): + shutil.rmtree(dir, ignore_errors=ignore_errors, + onerror=rmtree_errorhandler) + + +def rmtree_errorhandler(func, path, exc_info): + """On Windows, the files in .svn are read-only, so when rmtree() tries to + remove them, an exception is thrown. We catch that here, remove the + read-only attribute, and hopefully continue without problems.""" + # if file type currently read only + if os.stat(path).st_mode & stat.S_IREAD: + # convert to read/write + os.chmod(path, stat.S_IWRITE) + # use the original function to repeat the operation + func(path) + return + else: + raise + + +def display_path(path): + """Gives the display value for a given path, making it relative to cwd + if possible.""" + path = os.path.normcase(os.path.abspath(path)) + if sys.version_info[0] == 2: + path = path.decode(sys.getfilesystemencoding(), 'replace') + path = path.encode(sys.getdefaultencoding(), 'replace') + if path.startswith(os.getcwd() + os.path.sep): + path = '.' + path[len(os.getcwd()):] + return path + + +def backup_dir(dir, ext='.bak'): + """Figure out the name of a directory to back up the given dir to + (adding .bak, .bak2, etc)""" + n = 1 + extension = ext + while os.path.exists(dir + extension): + n += 1 + extension = ext + str(n) + return dir + extension + + +def ask_path_exists(message, options): + for action in os.environ.get('PIP_EXISTS_ACTION', '').split(): + if action in options: + return action + return ask(message, options) + + +def ask(message, options): + """Ask the message interactively, with the given possible responses""" + while 1: + if os.environ.get('PIP_NO_INPUT'): + raise Exception( + 'No input was expected ($PIP_NO_INPUT set); question: %s' % + message + ) + response = input(message) + response = response.strip().lower() + if response not in options: + print( + 'Your response (%r) was not one of the expected responses: ' + '%s' % (response, ', '.join(options)) + ) + else: + return response + + +def format_size(bytes): + if bytes > 1000 * 1000: + return '%.1fMB' % (bytes / 1000.0 / 1000) + elif bytes > 10 * 1000: + return '%ikB' % (bytes / 1000) + elif bytes > 1000: + return '%.1fkB' % (bytes / 1000.0) + else: + return '%ibytes' % bytes + + +def is_installable_dir(path): + """Return True if `path` is a directory containing a setup.py file.""" + if not os.path.isdir(path): + return False + setup_py = os.path.join(path, 'setup.py') + if os.path.isfile(setup_py): + return True + return False + + +def is_svn_page(html): + """ + Returns true if the page appears to be the index page of an svn repository + """ + return (re.search(r'[^<]*Revision \d+:', html) and + re.search(r'Powered by (?:<a[^>]*?>)?Subversion', html, re.I)) + + +def file_contents(filename): + with open(filename, 'rb') as fp: + return fp.read().decode('utf-8') + + +def read_chunks(file, size=io.DEFAULT_BUFFER_SIZE): + """Yield pieces of data from a file-like object until EOF.""" + while True: + chunk = file.read(size) + if not chunk: + break + yield chunk + + +def split_leading_dir(path): + path = path.lstrip('/').lstrip('\\') + if '/' in path and (('\\' in path and path.find('/') < path.find('\\')) or + '\\' not in path): + return path.split('/', 1) + elif '\\' in path: + return path.split('\\', 1) + else: + return path, '' + + +def has_leading_dir(paths): + """Returns true if all the paths have the same leading path name + (i.e., everything is in one subdirectory in an archive)""" + common_prefix = None + for path in paths: + prefix, rest = split_leading_dir(path) + if not prefix: + return False + elif common_prefix is None: + common_prefix = prefix + elif prefix != common_prefix: + return False + return True + + +def normalize_path(path, resolve_symlinks=True): + """ + Convert a path to its canonical, case-normalized, absolute version. + + """ + path = expanduser(path) + if resolve_symlinks: + path = os.path.realpath(path) + else: + path = os.path.abspath(path) + return os.path.normcase(path) + + +def splitext(path): + """Like os.path.splitext, but take off .tar too""" + base, ext = posixpath.splitext(path) + if base.lower().endswith('.tar'): + ext = base[-4:] + ext + base = base[:-4] + return base, ext + + +def renames(old, new): + """Like os.renames(), but handles renaming across devices.""" + # Implementation borrowed from os.renames(). + head, tail = os.path.split(new) + if head and tail and not os.path.exists(head): + os.makedirs(head) + + shutil.move(old, new) + + head, tail = os.path.split(old) + if head and tail: + try: + os.removedirs(head) + except OSError: + pass + + +def is_local(path): + """ + Return True if path is within sys.prefix, if we're running in a virtualenv. + + If we're not in a virtualenv, all paths are considered "local." + + """ + if not running_under_virtualenv(): + return True + return normalize_path(path).startswith(normalize_path(sys.prefix)) + + +def dist_is_local(dist): + """ + Return True if given Distribution object is installed locally + (i.e. within current virtualenv). + + Always True if we're not in a virtualenv. + + """ + return is_local(dist_location(dist)) + + +def dist_in_usersite(dist): + """ + Return True if given Distribution is installed in user site. + """ + norm_path = normalize_path(dist_location(dist)) + return norm_path.startswith(normalize_path(user_site)) + + +def dist_in_site_packages(dist): + """ + Return True if given Distribution is installed in + sysconfig.get_python_lib(). + """ + return normalize_path( + dist_location(dist) + ).startswith(normalize_path(site_packages)) + + +def dist_is_editable(dist): + """Is distribution an editable install?""" + for path_item in sys.path: + egg_link = os.path.join(path_item, dist.project_name + '.egg-link') + if os.path.isfile(egg_link): + return True + return False + + +def get_installed_distributions(local_only=True, + skip=stdlib_pkgs, + include_editables=True, + editables_only=False, + user_only=False): + """ + Return a list of installed Distribution objects. + + If ``local_only`` is True (default), only return installations + local to the current virtualenv, if in a virtualenv. + + ``skip`` argument is an iterable of lower-case project names to + ignore; defaults to stdlib_pkgs + + If ``include_editables`` is False, don't report editables. + + If ``editables_only`` is True , only report editables. + + If ``user_only`` is True , only report installations in the user + site directory. + + """ + if local_only: + local_test = dist_is_local + else: + def local_test(d): + return True + + if include_editables: + def editable_test(d): + return True + else: + def editable_test(d): + return not dist_is_editable(d) + + if editables_only: + def editables_only_test(d): + return dist_is_editable(d) + else: + def editables_only_test(d): + return True + + if user_only: + user_test = dist_in_usersite + else: + def user_test(d): + return True + + return [d for d in pkg_resources.working_set + if local_test(d) and + d.key not in skip and + editable_test(d) and + editables_only_test(d) and + user_test(d) + ] + + +def egg_link_path(dist): + """ + Return the path for the .egg-link file if it exists, otherwise, None. + + There's 3 scenarios: + 1) not in a virtualenv + try to find in site.USER_SITE, then site_packages + 2) in a no-global virtualenv + try to find in site_packages + 3) in a yes-global virtualenv + try to find in site_packages, then site.USER_SITE + (don't look in global location) + + For #1 and #3, there could be odd cases, where there's an egg-link in 2 + locations. + + This method will just return the first one found. + """ + sites = [] + if running_under_virtualenv(): + if virtualenv_no_global(): + sites.append(site_packages) + else: + sites.append(site_packages) + if user_site: + sites.append(user_site) + else: + if user_site: + sites.append(user_site) + sites.append(site_packages) + + for site in sites: + egglink = os.path.join(site, dist.project_name) + '.egg-link' + if os.path.isfile(egglink): + return egglink + + +def dist_location(dist): + """ + Get the site-packages location of this distribution. Generally + this is dist.location, except in the case of develop-installed + packages, where dist.location is the source code location, and we + want to know where the egg-link file is. + + """ + egg_link = egg_link_path(dist) + if egg_link: + return egg_link + return dist.location + + +def current_umask(): + """Get the current umask which involves having to set it temporarily.""" + mask = os.umask(0) + os.umask(mask) + return mask + + +def unzip_file(filename, location, flatten=True): + """ + Unzip the file (with path `filename`) to the destination `location`. All + files are written based on system defaults and umask (i.e. permissions are + not preserved), except that regular file members with any execute + permissions (user, group, or world) have "chmod +x" applied after being + written. Note that for windows, any execute changes using os.chmod are + no-ops per the python docs. + """ + ensure_dir(location) + zipfp = open(filename, 'rb') + try: + zip = zipfile.ZipFile(zipfp, allowZip64=True) + leading = has_leading_dir(zip.namelist()) and flatten + for info in zip.infolist(): + name = info.filename + data = zip.read(name) + fn = name + if leading: + fn = split_leading_dir(name)[1] + fn = os.path.join(location, fn) + dir = os.path.dirname(fn) + if fn.endswith('/') or fn.endswith('\\'): + # A directory + ensure_dir(fn) + else: + ensure_dir(dir) + fp = open(fn, 'wb') + try: + fp.write(data) + finally: + fp.close() + mode = info.external_attr >> 16 + # if mode and regular file and any execute permissions for + # user/group/world? + if mode and stat.S_ISREG(mode) and mode & 0o111: + # make dest file have execute for user/group/world + # (chmod +x) no-op on windows per python docs + os.chmod(fn, (0o777 - current_umask() | 0o111)) + finally: + zipfp.close() + + +def untar_file(filename, location): + """ + Untar the file (with path `filename`) to the destination `location`. + All files are written based on system defaults and umask (i.e. permissions + are not preserved), except that regular file members with any execute + permissions (user, group, or world) have "chmod +x" applied after being + written. Note that for windows, any execute changes using os.chmod are + no-ops per the python docs. + """ + ensure_dir(location) + if filename.lower().endswith('.gz') or filename.lower().endswith('.tgz'): + mode = 'r:gz' + elif filename.lower().endswith(BZ2_EXTENSIONS): + mode = 'r:bz2' + elif filename.lower().endswith(XZ_EXTENSIONS): + mode = 'r:xz' + elif filename.lower().endswith('.tar'): + mode = 'r' + else: + logger.warning( + 'Cannot determine compression type for file %s', filename, + ) + mode = 'r:*' + tar = tarfile.open(filename, mode) + try: + # note: python<=2.5 doesn't seem to know about pax headers, filter them + leading = has_leading_dir([ + member.name for member in tar.getmembers() + if member.name != 'pax_global_header' + ]) + for member in tar.getmembers(): + fn = member.name + if fn == 'pax_global_header': + continue + if leading: + fn = split_leading_dir(fn)[1] + path = os.path.join(location, fn) + if member.isdir(): + ensure_dir(path) + elif member.issym(): + try: + tar._extract_member(member, path) + except Exception as exc: + # Some corrupt tar files seem to produce this + # (specifically bad symlinks) + logger.warning( + 'In the tar file %s the member %s is invalid: %s', + filename, member.name, exc, + ) + continue + else: + try: + fp = tar.extractfile(member) + except (KeyError, AttributeError) as exc: + # Some corrupt tar files seem to produce this + # (specifically bad symlinks) + logger.warning( + 'In the tar file %s the member %s is invalid: %s', + filename, member.name, exc, + ) + continue + ensure_dir(os.path.dirname(path)) + with open(path, 'wb') as destfp: + shutil.copyfileobj(fp, destfp) + fp.close() + # Update the timestamp (useful for cython compiled files) + tar.utime(member, path) + # member have any execute permissions for user/group/world? + if member.mode & 0o111: + # make dest file have execute for user/group/world + # no-op on windows per python docs + os.chmod(path, (0o777 - current_umask() | 0o111)) + finally: + tar.close() + + +def unpack_file(filename, location, content_type, link): + filename = os.path.realpath(filename) + if (content_type == 'application/zip' or + filename.lower().endswith(ZIP_EXTENSIONS) or + zipfile.is_zipfile(filename)): + unzip_file( + filename, + location, + flatten=not filename.endswith('.whl') + ) + elif (content_type == 'application/x-gzip' or + tarfile.is_tarfile(filename) or + filename.lower().endswith( + TAR_EXTENSIONS + BZ2_EXTENSIONS + XZ_EXTENSIONS)): + untar_file(filename, location) + elif (content_type and content_type.startswith('text/html') and + is_svn_page(file_contents(filename))): + # We don't really care about this + from pip._internal.vcs.subversion import Subversion + Subversion('svn+' + link.url).unpack(location) + else: + # FIXME: handle? + # FIXME: magic signatures? + logger.critical( + 'Cannot unpack file %s (downloaded from %s, content-type: %s); ' + 'cannot detect archive format', + filename, location, content_type, + ) + raise InstallationError( + 'Cannot determine archive format of %s' % location + ) + + +def call_subprocess(cmd, show_stdout=True, cwd=None, + on_returncode='raise', + command_desc=None, + extra_environ=None, unset_environ=None, spinner=None): + """ + Args: + unset_environ: an iterable of environment variable names to unset + prior to calling subprocess.Popen(). + """ + if unset_environ is None: + unset_environ = [] + # This function's handling of subprocess output is confusing and I + # previously broke it terribly, so as penance I will write a long comment + # explaining things. + # + # The obvious thing that affects output is the show_stdout= + # kwarg. show_stdout=True means, let the subprocess write directly to our + # stdout. Even though it is nominally the default, it is almost never used + # inside pip (and should not be used in new code without a very good + # reason); as of 2016-02-22 it is only used in a few places inside the VCS + # wrapper code. Ideally we should get rid of it entirely, because it + # creates a lot of complexity here for a rarely used feature. + # + # Most places in pip set show_stdout=False. What this means is: + # - We connect the child stdout to a pipe, which we read. + # - By default, we hide the output but show a spinner -- unless the + # subprocess exits with an error, in which case we show the output. + # - If the --verbose option was passed (= loglevel is DEBUG), then we show + # the output unconditionally. (But in this case we don't want to show + # the output a second time if it turns out that there was an error.) + # + # stderr is always merged with stdout (even if show_stdout=True). + if show_stdout: + stdout = None + else: + stdout = subprocess.PIPE + if command_desc is None: + cmd_parts = [] + for part in cmd: + if ' ' in part or '\n' in part or '"' in part or "'" in part: + part = '"%s"' % part.replace('"', '\\"') + cmd_parts.append(part) + command_desc = ' '.join(cmd_parts) + logger.debug("Running command %s", command_desc) + env = os.environ.copy() + if extra_environ: + env.update(extra_environ) + for name in unset_environ: + env.pop(name, None) + try: + proc = subprocess.Popen( + cmd, stderr=subprocess.STDOUT, stdin=subprocess.PIPE, + stdout=stdout, cwd=cwd, env=env, + ) + proc.stdin.close() + except Exception as exc: + logger.critical( + "Error %s while executing command %s", exc, command_desc, + ) + raise + all_output = [] + if stdout is not None: + while True: + line = console_to_str(proc.stdout.readline()) + if not line: + break + line = line.rstrip() + all_output.append(line + '\n') + if logger.getEffectiveLevel() <= std_logging.DEBUG: + # Show the line immediately + logger.debug(line) + else: + # Update the spinner + if spinner is not None: + spinner.spin() + try: + proc.wait() + finally: + if proc.stdout: + proc.stdout.close() + if spinner is not None: + if proc.returncode: + spinner.finish("error") + else: + spinner.finish("done") + if proc.returncode: + if on_returncode == 'raise': + if (logger.getEffectiveLevel() > std_logging.DEBUG and + not show_stdout): + logger.info( + 'Complete output from command %s:', command_desc, + ) + logger.info( + ''.join(all_output) + + '\n----------------------------------------' + ) + raise InstallationError( + 'Command "%s" failed with error code %s in %s' + % (command_desc, proc.returncode, cwd)) + elif on_returncode == 'warn': + logger.warning( + 'Command "%s" had error code %s in %s', + command_desc, proc.returncode, cwd, + ) + elif on_returncode == 'ignore': + pass + else: + raise ValueError('Invalid value: on_returncode=%s' % + repr(on_returncode)) + if not show_stdout: + return ''.join(all_output) + + +def read_text_file(filename): + """Return the contents of *filename*. + + Try to decode the file contents with utf-8, the preferred system encoding + (e.g., cp1252 on some Windows machines), and latin1, in that order. + Decoding a byte string with latin1 will never raise an error. In the worst + case, the returned string will contain some garbage characters. + + """ + with open(filename, 'rb') as fp: + data = fp.read() + + encodings = ['utf-8', locale.getpreferredencoding(False), 'latin1'] + for enc in encodings: + try: + data = data.decode(enc) + except UnicodeDecodeError: + continue + break + + assert type(data) != bytes # Latin1 should have worked. + return data + + +def _make_build_dir(build_dir): + os.makedirs(build_dir) + write_delete_marker_file(build_dir) + + +class FakeFile(object): + """Wrap a list of lines in an object with readline() to make + ConfigParser happy.""" + def __init__(self, lines): + self._gen = (l for l in lines) + + def readline(self): + try: + try: + return next(self._gen) + except NameError: + return self._gen.next() + except StopIteration: + return '' + + def __iter__(self): + return self._gen + + +class StreamWrapper(StringIO): + + @classmethod + def from_stream(cls, orig_stream): + cls.orig_stream = orig_stream + return cls() + + # compileall.compile_dir() needs stdout.encoding to print to stdout + @property + def encoding(self): + return self.orig_stream.encoding + + +@contextlib.contextmanager +def captured_output(stream_name): + """Return a context manager used by captured_stdout/stdin/stderr + that temporarily replaces the sys stream *stream_name* with a StringIO. + + Taken from Lib/support/__init__.py in the CPython repo. + """ + orig_stdout = getattr(sys, stream_name) + setattr(sys, stream_name, StreamWrapper.from_stream(orig_stdout)) + try: + yield getattr(sys, stream_name) + finally: + setattr(sys, stream_name, orig_stdout) + + +def captured_stdout(): + """Capture the output of sys.stdout: + + with captured_stdout() as stdout: + print('hello') + self.assertEqual(stdout.getvalue(), 'hello\n') + + Taken from Lib/support/__init__.py in the CPython repo. + """ + return captured_output('stdout') + + +class cached_property(object): + """A property that is only computed once per instance and then replaces + itself with an ordinary attribute. Deleting the attribute resets the + property. + + Source: https://github.com/bottlepy/bottle/blob/0.11.5/bottle.py#L175 + """ + + def __init__(self, func): + self.__doc__ = getattr(func, '__doc__') + self.func = func + + def __get__(self, obj, cls): + if obj is None: + # We're being accessed from the class itself, not from an object + return self + value = obj.__dict__[self.func.__name__] = self.func(obj) + return value + + +def get_installed_version(dist_name, lookup_dirs=None): + """Get the installed version of dist_name avoiding pkg_resources cache""" + # Create a requirement that we'll look for inside of setuptools. + req = pkg_resources.Requirement.parse(dist_name) + + # We want to avoid having this cached, so we need to construct a new + # working set each time. + if lookup_dirs is None: + working_set = pkg_resources.WorkingSet() + else: + working_set = pkg_resources.WorkingSet(lookup_dirs) + + # Get the installed distribution from our working set + dist = working_set.find(req) + + # Check to see if we got an installed distribution or not, if we did + # we want to return it's version. + return dist.version if dist else None + + +def consume(iterator): + """Consume an iterable at C speed.""" + deque(iterator, maxlen=0) + + +# Simulates an enum +def enum(*sequential, **named): + enums = dict(zip(sequential, range(len(sequential))), **named) + reverse = {value: key for key, value in enums.items()} + enums['reverse_mapping'] = reverse + return type('Enum', (), enums) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/outdated.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/outdated.py new file mode 100644 index 00000000..f8f64669 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/outdated.py @@ -0,0 +1,163 @@ +from __future__ import absolute_import + +import datetime +import json +import logging +import os.path +import sys + +from pip._vendor import lockfile +from pip._vendor.packaging import version as packaging_version + +from pip._internal.compat import WINDOWS +from pip._internal.index import PackageFinder +from pip._internal.locations import USER_CACHE_DIR, running_under_virtualenv +from pip._internal.utils.filesystem import check_path_owner +from pip._internal.utils.misc import ensure_dir, get_installed_version + +SELFCHECK_DATE_FMT = "%Y-%m-%dT%H:%M:%SZ" + + +logger = logging.getLogger(__name__) + + +class VirtualenvSelfCheckState(object): + def __init__(self): + self.statefile_path = os.path.join(sys.prefix, "pip-selfcheck.json") + + # Load the existing state + try: + with open(self.statefile_path) as statefile: + self.state = json.load(statefile) + except (IOError, ValueError): + self.state = {} + + def save(self, pypi_version, current_time): + # Attempt to write out our version check file + with open(self.statefile_path, "w") as statefile: + json.dump( + { + "last_check": current_time.strftime(SELFCHECK_DATE_FMT), + "pypi_version": pypi_version, + }, + statefile, + sort_keys=True, + separators=(",", ":") + ) + + +class GlobalSelfCheckState(object): + def __init__(self): + self.statefile_path = os.path.join(USER_CACHE_DIR, "selfcheck.json") + + # Load the existing state + try: + with open(self.statefile_path) as statefile: + self.state = json.load(statefile)[sys.prefix] + except (IOError, ValueError, KeyError): + self.state = {} + + def save(self, pypi_version, current_time): + # Check to make sure that we own the directory + if not check_path_owner(os.path.dirname(self.statefile_path)): + return + + # Now that we've ensured the directory is owned by this user, we'll go + # ahead and make sure that all our directories are created. + ensure_dir(os.path.dirname(self.statefile_path)) + + # Attempt to write out our version check file + with lockfile.LockFile(self.statefile_path): + if os.path.exists(self.statefile_path): + with open(self.statefile_path) as statefile: + state = json.load(statefile) + else: + state = {} + + state[sys.prefix] = { + "last_check": current_time.strftime(SELFCHECK_DATE_FMT), + "pypi_version": pypi_version, + } + + with open(self.statefile_path, "w") as statefile: + json.dump(state, statefile, sort_keys=True, + separators=(",", ":")) + + +def load_selfcheck_statefile(): + if running_under_virtualenv(): + return VirtualenvSelfCheckState() + else: + return GlobalSelfCheckState() + + +def pip_version_check(session, options): + """Check for an update for pip. + + Limit the frequency of checks to once per week. State is stored either in + the active virtualenv or in the user's USER_CACHE_DIR keyed off the prefix + of the pip script path. + """ + installed_version = get_installed_version("pip") + if not installed_version: + return + + pip_version = packaging_version.parse(installed_version) + pypi_version = None + + try: + state = load_selfcheck_statefile() + + current_time = datetime.datetime.utcnow() + # Determine if we need to refresh the state + if "last_check" in state.state and "pypi_version" in state.state: + last_check = datetime.datetime.strptime( + state.state["last_check"], + SELFCHECK_DATE_FMT + ) + if (current_time - last_check).total_seconds() < 7 * 24 * 60 * 60: + pypi_version = state.state["pypi_version"] + + # Refresh the version if we need to or just see if we need to warn + if pypi_version is None: + # Lets use PackageFinder to see what the latest pip version is + finder = PackageFinder( + find_links=options.find_links, + index_urls=[options.index_url] + options.extra_index_urls, + allow_all_prereleases=False, # Explicitly set to False + trusted_hosts=options.trusted_hosts, + process_dependency_links=options.process_dependency_links, + session=session, + ) + all_candidates = finder.find_all_candidates("pip") + if not all_candidates: + return + pypi_version = str( + max(all_candidates, key=lambda c: c.version).version + ) + + # save that we've performed a check + state.save(pypi_version, current_time) + + remote_version = packaging_version.parse(pypi_version) + + # Determine if our pypi_version is older + if (pip_version < remote_version and + pip_version.base_version != remote_version.base_version): + # Advise "python -m pip" on Windows to avoid issues + # with overwriting pip.exe. + if WINDOWS: + pip_cmd = "python -m pip" + else: + pip_cmd = "pip" + logger.warning( + "You are using pip version %s, however version %s is " + "available.\nYou should consider upgrading via the " + "'%s install --upgrade pip' command.", + pip_version, pypi_version, pip_cmd + ) + except Exception: + logger.debug( + "There was an error checking the latest version of pip", + exc_info=True, + ) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/packaging.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/packaging.py new file mode 100644 index 00000000..5f9bb93d --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/packaging.py @@ -0,0 +1,70 @@ +from __future__ import absolute_import + +import logging +import sys +from email.parser import FeedParser # type: ignore + +from pip._vendor import pkg_resources +from pip._vendor.packaging import specifiers, version + +from pip._internal import exceptions + +logger = logging.getLogger(__name__) + + +def check_requires_python(requires_python): + """ + Check if the python version in use match the `requires_python` specifier. + + Returns `True` if the version of python in use matches the requirement. + Returns `False` if the version of python in use does not matches the + requirement. + + Raises an InvalidSpecifier if `requires_python` have an invalid format. + """ + if requires_python is None: + # The package provides no information + return True + requires_python_specifier = specifiers.SpecifierSet(requires_python) + + # We only use major.minor.micro + python_version = version.parse('.'.join(map(str, sys.version_info[:3]))) + return python_version in requires_python_specifier + + +def get_metadata(dist): + if (isinstance(dist, pkg_resources.DistInfoDistribution) and + dist.has_metadata('METADATA')): + return dist.get_metadata('METADATA') + elif dist.has_metadata('PKG-INFO'): + return dist.get_metadata('PKG-INFO') + + +def check_dist_requires_python(dist): + metadata = get_metadata(dist) + feed_parser = FeedParser() + feed_parser.feed(metadata) + pkg_info_dict = feed_parser.close() + requires_python = pkg_info_dict.get('Requires-Python') + try: + if not check_requires_python(requires_python): + raise exceptions.UnsupportedPythonVersion( + "%s requires Python '%s' but the running Python is %s" % ( + dist.project_name, + requires_python, + '.'.join(map(str, sys.version_info[:3])),) + ) + except specifiers.InvalidSpecifier as e: + logger.warning( + "Package %s has an invalid Requires-Python entry %s - %s", + dist.project_name, requires_python, e, + ) + return + + +def get_installer(dist): + if dist.has_metadata('INSTALLER'): + for line in dist.get_metadata_lines('INSTALLER'): + if line.strip(): + return line.strip() + return '' diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/setuptools_build.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/setuptools_build.py new file mode 100644 index 00000000..03973e97 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/setuptools_build.py @@ -0,0 +1,8 @@ +# Shim to wrap setup.py invocation with setuptools +SETUPTOOLS_SHIM = ( + "import setuptools, tokenize;__file__=%r;" + "f=getattr(tokenize, 'open', open)(__file__);" + "code=f.read().replace('\\r\\n', '\\n');" + "f.close();" + "exec(compile(code, __file__, 'exec'))" +) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/temp_dir.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/temp_dir.py new file mode 100644 index 00000000..edc506bf --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/temp_dir.py @@ -0,0 +1,82 @@ +from __future__ import absolute_import + +import logging +import os.path +import tempfile + +from pip._internal.utils.misc import rmtree + +logger = logging.getLogger(__name__) + + +class TempDirectory(object): + """Helper class that owns and cleans up a temporary directory. + + This class can be used as a context manager or as an OO representation of a + temporary directory. + + Attributes: + path + Location to the created temporary directory or None + delete + Whether the directory should be deleted when exiting + (when used as a contextmanager) + + Methods: + create() + Creates a temporary directory and stores its path in the path + attribute. + cleanup() + Deletes the temporary directory and sets path attribute to None + + When used as a context manager, a temporary directory is created on + entering the context and, if the delete attribute is True, on exiting the + context the created directory is deleted. + """ + + def __init__(self, path=None, delete=None, kind="temp"): + super(TempDirectory, self).__init__() + + if path is None and delete is None: + # If we were not given an explicit directory, and we were not given + # an explicit delete option, then we'll default to deleting. + delete = True + + self.path = path + self.delete = delete + self.kind = kind + + def __repr__(self): + return "<{} {!r}>".format(self.__class__.__name__, self.path) + + def __enter__(self): + self.create() + return self + + def __exit__(self, exc, value, tb): + if self.delete: + self.cleanup() + + def create(self): + """Create a temporary directory and store it's path in self.path + """ + if self.path is not None: + logger.debug( + "Skipped creation of temporary directory: {}".format(self.path) + ) + return + # We realpath here because some systems have their default tmpdir + # symlinked to another directory. This tends to confuse build + # scripts, so we canonicalize the path by traversing potential + # symlinks here. + self.path = os.path.realpath( + tempfile.mkdtemp(prefix="pip-{}-".format(self.kind)) + ) + logger.debug("Created temporary directory: {}".format(self.path)) + + def cleanup(self): + """Remove the temporary directory created and reset state + """ + if self.path is not None and os.path.exists(self.path): + rmtree(self.path) + self.path = None diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/typing.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/typing.py new file mode 100644 index 00000000..cb57f8f8 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/typing.py @@ -0,0 +1,29 @@ +"""For neatly implementing static typing in pip. + +`mypy` - the static type analysis tool we use - uses the `typing` module, which +provides core functionality fundamental to mypy's functioning. + +Generally, `typing` would be imported at runtime and used in that fashion - +it acts as a no-op at runtime and does not have any run-time overhead by +design. + +As it turns out, `typing` is not vendorable - it uses separate sources for +Python 2/Python 3. Thus, this codebase can not expect it to be present. +To work around this, mypy allows the typing import to be behind a False-y +optional to prevent it from running at runtime and type-comments can be used +to remove the need for the types to be accessible directly during runtime. + +This module provides the False-y guard in a nicely named fashion so that a +curious maintainer can reach here to read this. + +In pip, all static-typing related imports should be guarded as follows: + + from pip.utils.typing import MYPY_CHECK_RUNNING + + if MYPY_CHECK_RUNNING: + from typing import ... + +Ref: https://github.com/python/mypy/issues/3216 +""" + +MYPY_CHECK_RUNNING = False diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/ui.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/ui.py new file mode 100644 index 00000000..8ade1e21 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/utils/ui.py @@ -0,0 +1,421 @@ +from __future__ import absolute_import, division + +import contextlib +import itertools +import logging +import sys +import time +from signal import SIGINT, default_int_handler, signal + +from pip._vendor import six +from pip._vendor.progress.bar import ( + Bar, ChargingBar, FillingCirclesBar, FillingSquaresBar, IncrementalBar, + ShadyBar, +) +from pip._vendor.progress.helpers import HIDE_CURSOR, SHOW_CURSOR, WritelnMixin +from pip._vendor.progress.spinner import Spinner + +from pip._internal.compat import WINDOWS +from pip._internal.utils.logging import get_indentation +from pip._internal.utils.misc import format_size +from pip._internal.utils.typing import MYPY_CHECK_RUNNING + +if MYPY_CHECK_RUNNING: + from typing import Any + +try: + from pip._vendor import colorama +# Lots of different errors can come from this, including SystemError and +# ImportError. +except Exception: + colorama = None + +logger = logging.getLogger(__name__) + + +def _select_progress_class(preferred, fallback): + encoding = getattr(preferred.file, "encoding", None) + + # If we don't know what encoding this file is in, then we'll just assume + # that it doesn't support unicode and use the ASCII bar. + if not encoding: + return fallback + + # Collect all of the possible characters we want to use with the preferred + # bar. + characters = [ + getattr(preferred, "empty_fill", six.text_type()), + getattr(preferred, "fill", six.text_type()), + ] + characters += list(getattr(preferred, "phases", [])) + + # Try to decode the characters we're using for the bar using the encoding + # of the given file, if this works then we'll assume that we can use the + # fancier bar and if not we'll fall back to the plaintext bar. + try: + six.text_type().join(characters).encode(encoding) + except UnicodeEncodeError: + return fallback + else: + return preferred + + +_BaseBar = _select_progress_class(IncrementalBar, Bar) # type: Any + + +class InterruptibleMixin(object): + """ + Helper to ensure that self.finish() gets called on keyboard interrupt. + + This allows downloads to be interrupted without leaving temporary state + (like hidden cursors) behind. + + This class is similar to the progress library's existing SigIntMixin + helper, but as of version 1.2, that helper has the following problems: + + 1. It calls sys.exit(). + 2. It discards the existing SIGINT handler completely. + 3. It leaves its own handler in place even after an uninterrupted finish, + which will have unexpected delayed effects if the user triggers an + unrelated keyboard interrupt some time after a progress-displaying + download has already completed, for example. + """ + + def __init__(self, *args, **kwargs): + """ + Save the original SIGINT handler for later. + """ + super(InterruptibleMixin, self).__init__(*args, **kwargs) + + self.original_handler = signal(SIGINT, self.handle_sigint) + + # If signal() returns None, the previous handler was not installed from + # Python, and we cannot restore it. This probably should not happen, + # but if it does, we must restore something sensible instead, at least. + # The least bad option should be Python's default SIGINT handler, which + # just raises KeyboardInterrupt. + if self.original_handler is None: + self.original_handler = default_int_handler + + def finish(self): + """ + Restore the original SIGINT handler after finishing. + + This should happen regardless of whether the progress display finishes + normally, or gets interrupted. + """ + super(InterruptibleMixin, self).finish() + signal(SIGINT, self.original_handler) + + def handle_sigint(self, signum, frame): + """ + Call self.finish() before delegating to the original SIGINT handler. + + This handler should only be in place while the progress display is + active. + """ + self.finish() + self.original_handler(signum, frame) + + +class SilentBar(Bar): + + def update(self): + pass + + +class BlueEmojiBar(IncrementalBar): + + suffix = "%(percent)d%%" + bar_prefix = " " + bar_suffix = " " + phases = (u"\U0001F539", u"\U0001F537", u"\U0001F535") # type: Any + + +class DownloadProgressMixin(object): + + def __init__(self, *args, **kwargs): + super(DownloadProgressMixin, self).__init__(*args, **kwargs) + self.message = (" " * (get_indentation() + 2)) + self.message + + @property + def downloaded(self): + return format_size(self.index) + + @property + def download_speed(self): + # Avoid zero division errors... + if self.avg == 0.0: + return "..." + return format_size(1 / self.avg) + "/s" + + @property + def pretty_eta(self): + if self.eta: + return "eta %s" % self.eta_td + return "" + + def iter(self, it, n=1): + for x in it: + yield x + self.next(n) + self.finish() + + +class WindowsMixin(object): + + def __init__(self, *args, **kwargs): + # The Windows terminal does not support the hide/show cursor ANSI codes + # even with colorama. So we'll ensure that hide_cursor is False on + # Windows. + # This call neds to go before the super() call, so that hide_cursor + # is set in time. The base progress bar class writes the "hide cursor" + # code to the terminal in its init, so if we don't set this soon + # enough, we get a "hide" with no corresponding "show"... + if WINDOWS and self.hide_cursor: + self.hide_cursor = False + + super(WindowsMixin, self).__init__(*args, **kwargs) + + # Check if we are running on Windows and we have the colorama module, + # if we do then wrap our file with it. + if WINDOWS and colorama: + self.file = colorama.AnsiToWin32(self.file) + # The progress code expects to be able to call self.file.isatty() + # but the colorama.AnsiToWin32() object doesn't have that, so we'll + # add it. + self.file.isatty = lambda: self.file.wrapped.isatty() + # The progress code expects to be able to call self.file.flush() + # but the colorama.AnsiToWin32() object doesn't have that, so we'll + # add it. + self.file.flush = lambda: self.file.wrapped.flush() + + +class BaseDownloadProgressBar(WindowsMixin, InterruptibleMixin, + DownloadProgressMixin): + + file = sys.stdout + message = "%(percent)d%%" + suffix = "%(downloaded)s %(download_speed)s %(pretty_eta)s" + +# NOTE: The "type: ignore" comments on the following classes are there to +# work around https://github.com/python/typing/issues/241 + + +class DefaultDownloadProgressBar(BaseDownloadProgressBar, + _BaseBar): # type: ignore + pass + + +class DownloadSilentBar(BaseDownloadProgressBar, SilentBar): # type: ignore + pass + + +class DownloadIncrementalBar(BaseDownloadProgressBar, # type: ignore + IncrementalBar): + pass + + +class DownloadChargingBar(BaseDownloadProgressBar, # type: ignore + ChargingBar): + pass + + +class DownloadShadyBar(BaseDownloadProgressBar, ShadyBar): # type: ignore + pass + + +class DownloadFillingSquaresBar(BaseDownloadProgressBar, # type: ignore + FillingSquaresBar): + pass + + +class DownloadFillingCirclesBar(BaseDownloadProgressBar, # type: ignore + FillingCirclesBar): + pass + + +class DownloadBlueEmojiProgressBar(BaseDownloadProgressBar, # type: ignore + BlueEmojiBar): + pass + + +class DownloadProgressSpinner(WindowsMixin, InterruptibleMixin, + DownloadProgressMixin, WritelnMixin, Spinner): + + file = sys.stdout + suffix = "%(downloaded)s %(download_speed)s" + + def next_phase(self): + if not hasattr(self, "_phaser"): + self._phaser = itertools.cycle(self.phases) + return next(self._phaser) + + def update(self): + message = self.message % self + phase = self.next_phase() + suffix = self.suffix % self + line = ''.join([ + message, + " " if message else "", + phase, + " " if suffix else "", + suffix, + ]) + + self.writeln(line) + + +BAR_TYPES = { + "off": (DownloadSilentBar, DownloadSilentBar), + "on": (DefaultDownloadProgressBar, DownloadProgressSpinner), + "ascii": (DownloadIncrementalBar, DownloadProgressSpinner), + "pretty": (DownloadFillingCirclesBar, DownloadProgressSpinner), + "emoji": (DownloadBlueEmojiProgressBar, DownloadProgressSpinner) +} + + +def DownloadProgressProvider(progress_bar, max=None): + if max is None or max == 0: + return BAR_TYPES[progress_bar][1]().iter + else: + return BAR_TYPES[progress_bar][0](max=max).iter + + +################################################################ +# Generic "something is happening" spinners +# +# We don't even try using progress.spinner.Spinner here because it's actually +# simpler to reimplement from scratch than to coerce their code into doing +# what we need. +################################################################ + +@contextlib.contextmanager +def hidden_cursor(file): + # The Windows terminal does not support the hide/show cursor ANSI codes, + # even via colorama. So don't even try. + if WINDOWS: + yield + # We don't want to clutter the output with control characters if we're + # writing to a file, or if the user is running with --quiet. + # See https://github.com/pypa/pip/issues/3418 + elif not file.isatty() or logger.getEffectiveLevel() > logging.INFO: + yield + else: + file.write(HIDE_CURSOR) + try: + yield + finally: + file.write(SHOW_CURSOR) + + +class RateLimiter(object): + def __init__(self, min_update_interval_seconds): + self._min_update_interval_seconds = min_update_interval_seconds + self._last_update = 0 + + def ready(self): + now = time.time() + delta = now - self._last_update + return delta >= self._min_update_interval_seconds + + def reset(self): + self._last_update = time.time() + + +class InteractiveSpinner(object): + def __init__(self, message, file=None, spin_chars="-\\|/", + # Empirically, 8 updates/second looks nice + min_update_interval_seconds=0.125): + self._message = message + if file is None: + file = sys.stdout + self._file = file + self._rate_limiter = RateLimiter(min_update_interval_seconds) + self._finished = False + + self._spin_cycle = itertools.cycle(spin_chars) + + self._file.write(" " * get_indentation() + self._message + " ... ") + self._width = 0 + + def _write(self, status): + assert not self._finished + # Erase what we wrote before by backspacing to the beginning, writing + # spaces to overwrite the old text, and then backspacing again + backup = "\b" * self._width + self._file.write(backup + " " * self._width + backup) + # Now we have a blank slate to add our status + self._file.write(status) + self._width = len(status) + self._file.flush() + self._rate_limiter.reset() + + def spin(self): + if self._finished: + return + if not self._rate_limiter.ready(): + return + self._write(next(self._spin_cycle)) + + def finish(self, final_status): + if self._finished: + return + self._write(final_status) + self._file.write("\n") + self._file.flush() + self._finished = True + + +# Used for dumb terminals, non-interactive installs (no tty), etc. +# We still print updates occasionally (once every 60 seconds by default) to +# act as a keep-alive for systems like Travis-CI that take lack-of-output as +# an indication that a task has frozen. +class NonInteractiveSpinner(object): + def __init__(self, message, min_update_interval_seconds=60): + self._message = message + self._finished = False + self._rate_limiter = RateLimiter(min_update_interval_seconds) + self._update("started") + + def _update(self, status): + assert not self._finished + self._rate_limiter.reset() + logger.info("%s: %s", self._message, status) + + def spin(self): + if self._finished: + return + if not self._rate_limiter.ready(): + return + self._update("still running...") + + def finish(self, final_status): + if self._finished: + return + self._update("finished with status '%s'" % (final_status,)) + self._finished = True + + +@contextlib.contextmanager +def open_spinner(message): + # Interactive spinner goes directly to sys.stdout rather than being routed + # through the logging system, but it acts like it has level INFO, + # i.e. it's only displayed if we're at level INFO or better. + # Non-interactive spinner goes through the logging system, so it is always + # in sync with logging configuration. + if sys.stdout.isatty() and logger.getEffectiveLevel() <= logging.INFO: + spinner = InteractiveSpinner(message) + else: + spinner = NonInteractiveSpinner(message) + try: + with hidden_cursor(sys.stdout): + yield spinner + except KeyboardInterrupt: + spinner.finish("canceled") + raise + except Exception: + spinner.finish("error") + raise + else: + spinner.finish("done") diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/vcs/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/vcs/__init__.py new file mode 100644 index 00000000..8b159cb9 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/vcs/__init__.py @@ -0,0 +1,471 @@ +"""Handles all VCS (version control) support""" +from __future__ import absolute_import + +import copy +import errno +import logging +import os +import shutil +import sys + +from pip._vendor.six.moves.urllib import parse as urllib_parse + +from pip._internal.exceptions import BadCommand +from pip._internal.utils.misc import ( + display_path, backup_dir, call_subprocess, rmtree, ask_path_exists, +) +from pip._internal.utils.typing import MYPY_CHECK_RUNNING + +if MYPY_CHECK_RUNNING: + from typing import Dict, Optional, Tuple + from pip._internal.basecommand import Command + +__all__ = ['vcs', 'get_src_requirement'] + + +logger = logging.getLogger(__name__) + + +class RevOptions(object): + + """ + Encapsulates a VCS-specific revision to install, along with any VCS + install options. + + Instances of this class should be treated as if immutable. + """ + + def __init__(self, vcs, rev=None, extra_args=None): + """ + Args: + vcs: a VersionControl object. + rev: the name of the revision to install. + extra_args: a list of extra options. + """ + if extra_args is None: + extra_args = [] + + self.extra_args = extra_args + self.rev = rev + self.vcs = vcs + + def __repr__(self): + return '<RevOptions {}: rev={!r}>'.format(self.vcs.name, self.rev) + + @property + def arg_rev(self): + if self.rev is None: + return self.vcs.default_arg_rev + + return self.rev + + def to_args(self): + """ + Return the VCS-specific command arguments. + """ + args = [] + rev = self.arg_rev + if rev is not None: + args += self.vcs.get_base_rev_args(rev) + args += self.extra_args + + return args + + def to_display(self): + if not self.rev: + return '' + + return ' (to revision {})'.format(self.rev) + + def make_new(self, rev): + """ + Make a copy of the current instance, but with a new rev. + + Args: + rev: the name of the revision for the new object. + """ + return self.vcs.make_rev_options(rev, extra_args=self.extra_args) + + +class VcsSupport(object): + _registry = {} # type: Dict[str, Command] + schemes = ['ssh', 'git', 'hg', 'bzr', 'sftp', 'svn'] + + def __init__(self): + # Register more schemes with urlparse for various version control + # systems + urllib_parse.uses_netloc.extend(self.schemes) + # Python >= 2.7.4, 3.3 doesn't have uses_fragment + if getattr(urllib_parse, 'uses_fragment', None): + urllib_parse.uses_fragment.extend(self.schemes) + super(VcsSupport, self).__init__() + + def __iter__(self): + return self._registry.__iter__() + + @property + def backends(self): + return list(self._registry.values()) + + @property + def dirnames(self): + return [backend.dirname for backend in self.backends] + + @property + def all_schemes(self): + schemes = [] + for backend in self.backends: + schemes.extend(backend.schemes) + return schemes + + def register(self, cls): + if not hasattr(cls, 'name'): + logger.warning('Cannot register VCS %s', cls.__name__) + return + if cls.name not in self._registry: + self._registry[cls.name] = cls + logger.debug('Registered VCS backend: %s', cls.name) + + def unregister(self, cls=None, name=None): + if name in self._registry: + del self._registry[name] + elif cls in self._registry.values(): + del self._registry[cls.name] + else: + logger.warning('Cannot unregister because no class or name given') + + def get_backend_name(self, location): + """ + Return the name of the version control backend if found at given + location, e.g. vcs.get_backend_name('/path/to/vcs/checkout') + """ + for vc_type in self._registry.values(): + if vc_type.controls_location(location): + logger.debug('Determine that %s uses VCS: %s', + location, vc_type.name) + return vc_type.name + return None + + def get_backend(self, name): + name = name.lower() + if name in self._registry: + return self._registry[name] + + def get_backend_from_location(self, location): + vc_type = self.get_backend_name(location) + if vc_type: + return self.get_backend(vc_type) + return None + + +vcs = VcsSupport() + + +class VersionControl(object): + name = '' + dirname = '' + # List of supported schemes for this Version Control + schemes = () # type: Tuple[str, ...] + # Iterable of environment variable names to pass to call_subprocess(). + unset_environ = () # type: Tuple[str, ...] + default_arg_rev = None # type: Optional[str] + + def __init__(self, url=None, *args, **kwargs): + self.url = url + super(VersionControl, self).__init__(*args, **kwargs) + + def get_base_rev_args(self, rev): + """ + Return the base revision arguments for a vcs command. + + Args: + rev: the name of a revision to install. Cannot be None. + """ + raise NotImplementedError + + def make_rev_options(self, rev=None, extra_args=None): + """ + Return a RevOptions object. + + Args: + rev: the name of a revision to install. + extra_args: a list of extra options. + """ + return RevOptions(self, rev, extra_args=extra_args) + + def _is_local_repository(self, repo): + """ + posix absolute paths start with os.path.sep, + win32 ones start with drive (like c:\\folder) + """ + drive, tail = os.path.splitdrive(repo) + return repo.startswith(os.path.sep) or drive + + # See issue #1083 for why this method was introduced: + # https://github.com/pypa/pip/issues/1083 + def translate_egg_surname(self, surname): + # For example, Django has branches of the form "stable/1.7.x". + return surname.replace('/', '_') + + def export(self, location): + """ + Export the repository at the url to the destination location + i.e. only download the files, without vcs informations + """ + raise NotImplementedError + + def get_url_rev(self): + """ + Returns the correct repository URL and revision by parsing the given + repository URL + """ + error_message = ( + "Sorry, '%s' is a malformed VCS url. " + "The format is <vcs>+<protocol>://<url>, " + "e.g. svn+http://myrepo/svn/MyApp#egg=MyApp" + ) + assert '+' in self.url, error_message % self.url + url = self.url.split('+', 1)[1] + scheme, netloc, path, query, frag = urllib_parse.urlsplit(url) + rev = None + if '@' in path: + path, rev = path.rsplit('@', 1) + url = urllib_parse.urlunsplit((scheme, netloc, path, query, '')) + return url, rev + + def get_info(self, location): + """ + Returns (url, revision), where both are strings + """ + assert not location.rstrip('/').endswith(self.dirname), \ + 'Bad directory: %s' % location + return self.get_url(location), self.get_revision(location) + + def normalize_url(self, url): + """ + Normalize a URL for comparison by unquoting it and removing any + trailing slash. + """ + return urllib_parse.unquote(url).rstrip('/') + + def compare_urls(self, url1, url2): + """ + Compare two repo URLs for identity, ignoring incidental differences. + """ + return (self.normalize_url(url1) == self.normalize_url(url2)) + + def obtain(self, dest): + """ + Called when installing or updating an editable package, takes the + source path of the checkout. + """ + raise NotImplementedError + + def switch(self, dest, url, rev_options): + """ + Switch the repo at ``dest`` to point to ``URL``. + + Args: + rev_options: a RevOptions object. + """ + raise NotImplementedError + + def update(self, dest, rev_options): + """ + Update an already-existing repo to the given ``rev_options``. + + Args: + rev_options: a RevOptions object. + """ + raise NotImplementedError + + def is_commit_id_equal(self, dest, name): + """ + Return whether the id of the current commit equals the given name. + + Args: + dest: the repository directory. + name: a string name. + """ + raise NotImplementedError + + def check_destination(self, dest, url, rev_options): + """ + Prepare a location to receive a checkout/clone. + + Return True if the location is ready for (and requires) a + checkout/clone, False otherwise. + + Args: + rev_options: a RevOptions object. + """ + checkout = True + prompt = False + rev_display = rev_options.to_display() + if os.path.exists(dest): + checkout = False + if os.path.exists(os.path.join(dest, self.dirname)): + existing_url = self.get_url(dest) + if self.compare_urls(existing_url, url): + logger.debug( + '%s in %s exists, and has correct URL (%s)', + self.repo_name.title(), + display_path(dest), + url, + ) + if not self.is_commit_id_equal(dest, rev_options.rev): + logger.info( + 'Updating %s %s%s', + display_path(dest), + self.repo_name, + rev_display, + ) + self.update(dest, rev_options) + else: + logger.info( + 'Skipping because already up-to-date.') + else: + logger.warning( + '%s %s in %s exists with URL %s', + self.name, + self.repo_name, + display_path(dest), + existing_url, + ) + prompt = ('(s)witch, (i)gnore, (w)ipe, (b)ackup ', + ('s', 'i', 'w', 'b')) + else: + logger.warning( + 'Directory %s already exists, and is not a %s %s.', + dest, + self.name, + self.repo_name, + ) + prompt = ('(i)gnore, (w)ipe, (b)ackup ', ('i', 'w', 'b')) + if prompt: + logger.warning( + 'The plan is to install the %s repository %s', + self.name, + url, + ) + response = ask_path_exists('What to do? %s' % prompt[0], + prompt[1]) + + if response == 's': + logger.info( + 'Switching %s %s to %s%s', + self.repo_name, + display_path(dest), + url, + rev_display, + ) + self.switch(dest, url, rev_options) + elif response == 'i': + # do nothing + pass + elif response == 'w': + logger.warning('Deleting %s', display_path(dest)) + rmtree(dest) + checkout = True + elif response == 'b': + dest_dir = backup_dir(dest) + logger.warning( + 'Backing up %s to %s', display_path(dest), dest_dir, + ) + shutil.move(dest, dest_dir) + checkout = True + elif response == 'a': + sys.exit(-1) + return checkout + + def unpack(self, location): + """ + Clean up current location and download the url repository + (and vcs infos) into location + """ + if os.path.exists(location): + rmtree(location) + self.obtain(location) + + def get_src_requirement(self, dist, location): + """ + Return a string representing the requirement needed to + redownload the files currently present in location, something + like: + {repository_url}@{revision}#egg={project_name}-{version_identifier} + """ + raise NotImplementedError + + def get_url(self, location): + """ + Return the url used at location + Used in get_info or check_destination + """ + raise NotImplementedError + + def get_revision(self, location): + """ + Return the current commit id of the files at the given location. + """ + raise NotImplementedError + + def run_command(self, cmd, show_stdout=True, cwd=None, + on_returncode='raise', + command_desc=None, + extra_environ=None, spinner=None): + """ + Run a VCS subcommand + This is simply a wrapper around call_subprocess that adds the VCS + command name, and checks that the VCS is available + """ + cmd = [self.name] + cmd + try: + return call_subprocess(cmd, show_stdout, cwd, + on_returncode, + command_desc, extra_environ, + unset_environ=self.unset_environ, + spinner=spinner) + except OSError as e: + # errno.ENOENT = no such file or directory + # In other words, the VCS executable isn't available + if e.errno == errno.ENOENT: + raise BadCommand( + 'Cannot find command %r - do you have ' + '%r installed and in your ' + 'PATH?' % (self.name, self.name)) + else: + raise # re-raise exception if a different error occurred + + @classmethod + def controls_location(cls, location): + """ + Check if a location is controlled by the vcs. + It is meant to be overridden to implement smarter detection + mechanisms for specific vcs. + """ + logger.debug('Checking in %s for %s (%s)...', + location, cls.dirname, cls.name) + path = os.path.join(location, cls.dirname) + return os.path.exists(path) + + +def get_src_requirement(dist, location): + version_control = vcs.get_backend_from_location(location) + if version_control: + try: + return version_control().get_src_requirement(dist, + location) + except BadCommand: + logger.warning( + 'cannot determine version of editable source in %s ' + '(%s command not found in path)', + location, + version_control.name, + ) + return dist.as_requirement() + logger.warning( + 'cannot determine version of editable source in %s (is not SVN ' + 'checkout, Git clone, Mercurial clone or Bazaar branch)', + location, + ) + return dist.as_requirement() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/vcs/bazaar.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/vcs/bazaar.py new file mode 100644 index 00000000..b4e46e0e --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/vcs/bazaar.py @@ -0,0 +1,113 @@ +from __future__ import absolute_import + +import logging +import os + +from pip._vendor.six.moves.urllib import parse as urllib_parse + +from pip._internal.download import path_to_url +from pip._internal.utils.misc import display_path, rmtree +from pip._internal.utils.temp_dir import TempDirectory +from pip._internal.vcs import VersionControl, vcs + +logger = logging.getLogger(__name__) + + +class Bazaar(VersionControl): + name = 'bzr' + dirname = '.bzr' + repo_name = 'branch' + schemes = ( + 'bzr', 'bzr+http', 'bzr+https', 'bzr+ssh', 'bzr+sftp', 'bzr+ftp', + 'bzr+lp', + ) + + def __init__(self, url=None, *args, **kwargs): + super(Bazaar, self).__init__(url, *args, **kwargs) + # This is only needed for python <2.7.5 + # Register lp but do not expose as a scheme to support bzr+lp. + if getattr(urllib_parse, 'uses_fragment', None): + urllib_parse.uses_fragment.extend(['lp']) + + def get_base_rev_args(self, rev): + return ['-r', rev] + + def export(self, location): + """ + Export the Bazaar repository at the url to the destination location + """ + # Remove the location to make sure Bazaar can export it correctly + if os.path.exists(location): + rmtree(location) + + with TempDirectory(kind="export") as temp_dir: + self.unpack(temp_dir.path) + + self.run_command( + ['export', location], + cwd=temp_dir.path, show_stdout=False, + ) + + def switch(self, dest, url, rev_options): + self.run_command(['switch', url], cwd=dest) + + def update(self, dest, rev_options): + cmd_args = ['pull', '-q'] + rev_options.to_args() + self.run_command(cmd_args, cwd=dest) + + def obtain(self, dest): + url, rev = self.get_url_rev() + rev_options = self.make_rev_options(rev) + if self.check_destination(dest, url, rev_options): + rev_display = rev_options.to_display() + logger.info( + 'Checking out %s%s to %s', + url, + rev_display, + display_path(dest), + ) + cmd_args = ['branch', '-q'] + rev_options.to_args() + [url, dest] + self.run_command(cmd_args) + + def get_url_rev(self): + # hotfix the URL scheme after removing bzr+ from bzr+ssh:// readd it + url, rev = super(Bazaar, self).get_url_rev() + if url.startswith('ssh://'): + url = 'bzr+' + url + return url, rev + + def get_url(self, location): + urls = self.run_command(['info'], show_stdout=False, cwd=location) + for line in urls.splitlines(): + line = line.strip() + for x in ('checkout of branch: ', + 'parent branch: '): + if line.startswith(x): + repo = line.split(x)[1] + if self._is_local_repository(repo): + return path_to_url(repo) + return repo + return None + + def get_revision(self, location): + revision = self.run_command( + ['revno'], show_stdout=False, cwd=location, + ) + return revision.splitlines()[-1] + + def get_src_requirement(self, dist, location): + repo = self.get_url(location) + if not repo: + return None + if not repo.lower().startswith('bzr:'): + repo = 'bzr+' + repo + egg_project_name = dist.egg_name().split('-', 1)[0] + current_rev = self.get_revision(location) + return '%s@%s#egg=%s' % (repo, current_rev, egg_project_name) + + def is_commit_id_equal(self, dest, name): + """Always assume the versions don't match""" + return False + + +vcs.register(Bazaar) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/vcs/git.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/vcs/git.py new file mode 100644 index 00000000..33c68068 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/vcs/git.py @@ -0,0 +1,311 @@ +from __future__ import absolute_import + +import logging +import os.path +import re + +from pip._vendor.packaging.version import parse as parse_version +from pip._vendor.six.moves.urllib import parse as urllib_parse +from pip._vendor.six.moves.urllib import request as urllib_request + +from pip._internal.compat import samefile +from pip._internal.exceptions import BadCommand +from pip._internal.utils.misc import display_path +from pip._internal.utils.temp_dir import TempDirectory +from pip._internal.vcs import VersionControl, vcs + +urlsplit = urllib_parse.urlsplit +urlunsplit = urllib_parse.urlunsplit + + +logger = logging.getLogger(__name__) + + +HASH_REGEX = re.compile('[a-fA-F0-9]{40}') + + +def looks_like_hash(sha): + return bool(HASH_REGEX.match(sha)) + + +class Git(VersionControl): + name = 'git' + dirname = '.git' + repo_name = 'clone' + schemes = ( + 'git', 'git+http', 'git+https', 'git+ssh', 'git+git', 'git+file', + ) + # Prevent the user's environment variables from interfering with pip: + # https://github.com/pypa/pip/issues/1130 + unset_environ = ('GIT_DIR', 'GIT_WORK_TREE') + default_arg_rev = 'HEAD' + + def __init__(self, url=None, *args, **kwargs): + + # Works around an apparent Git bug + # (see http://article.gmane.org/gmane.comp.version-control.git/146500) + if url: + scheme, netloc, path, query, fragment = urlsplit(url) + if scheme.endswith('file'): + initial_slashes = path[:-len(path.lstrip('/'))] + newpath = ( + initial_slashes + + urllib_request.url2pathname(path) + .replace('\\', '/').lstrip('/') + ) + url = urlunsplit((scheme, netloc, newpath, query, fragment)) + after_plus = scheme.find('+') + 1 + url = scheme[:after_plus] + urlunsplit( + (scheme[after_plus:], netloc, newpath, query, fragment), + ) + + super(Git, self).__init__(url, *args, **kwargs) + + def get_base_rev_args(self, rev): + return [rev] + + def get_git_version(self): + VERSION_PFX = 'git version ' + version = self.run_command(['version'], show_stdout=False) + if version.startswith(VERSION_PFX): + version = version[len(VERSION_PFX):].split()[0] + else: + version = '' + # get first 3 positions of the git version becasue + # on windows it is x.y.z.windows.t, and this parses as + # LegacyVersion which always smaller than a Version. + version = '.'.join(version.split('.')[:3]) + return parse_version(version) + + def export(self, location): + """Export the Git repository at the url to the destination location""" + if not location.endswith('/'): + location = location + '/' + + with TempDirectory(kind="export") as temp_dir: + self.unpack(temp_dir.path) + self.run_command( + ['checkout-index', '-a', '-f', '--prefix', location], + show_stdout=False, cwd=temp_dir.path + ) + + def get_revision_sha(self, dest, rev): + """ + Return a commit hash for the given revision if it names a remote + branch or tag. Otherwise, return None. + + Args: + dest: the repository directory. + rev: the revision name. + """ + # Pass rev to pre-filter the list. + output = self.run_command(['show-ref', rev], cwd=dest, + show_stdout=False, on_returncode='ignore') + refs = {} + for line in output.strip().splitlines(): + try: + sha, ref = line.split() + except ValueError: + # Include the offending line to simplify troubleshooting if + # this error ever occurs. + raise ValueError('unexpected show-ref line: {!r}'.format(line)) + + refs[ref] = sha + + branch_ref = 'refs/remotes/origin/{}'.format(rev) + tag_ref = 'refs/tags/{}'.format(rev) + + return refs.get(branch_ref) or refs.get(tag_ref) + + def check_rev_options(self, dest, rev_options): + """Check the revision options before checkout. + + Returns a new RevOptions object for the SHA1 of the branch or tag + if found. + + Args: + rev_options: a RevOptions object. + """ + rev = rev_options.arg_rev + sha = self.get_revision_sha(dest, rev) + + if sha is not None: + return rev_options.make_new(sha) + + # Do not show a warning for the common case of something that has + # the form of a Git commit hash. + if not looks_like_hash(rev): + logger.warning( + "Did not find branch or tag '%s', assuming revision or ref.", + rev, + ) + return rev_options + + def is_commit_id_equal(self, dest, name): + """ + Return whether the current commit hash equals the given name. + + Args: + dest: the repository directory. + name: a string name. + """ + if not name: + # Then avoid an unnecessary subprocess call. + return False + + return self.get_revision(dest) == name + + def switch(self, dest, url, rev_options): + self.run_command(['config', 'remote.origin.url', url], cwd=dest) + cmd_args = ['checkout', '-q'] + rev_options.to_args() + self.run_command(cmd_args, cwd=dest) + + self.update_submodules(dest) + + def update(self, dest, rev_options): + # First fetch changes from the default remote + if self.get_git_version() >= parse_version('1.9.0'): + # fetch tags in addition to everything else + self.run_command(['fetch', '-q', '--tags'], cwd=dest) + else: + self.run_command(['fetch', '-q'], cwd=dest) + # Then reset to wanted revision (maybe even origin/master) + rev_options = self.check_rev_options(dest, rev_options) + cmd_args = ['reset', '--hard', '-q'] + rev_options.to_args() + self.run_command(cmd_args, cwd=dest) + #: update submodules + self.update_submodules(dest) + + def obtain(self, dest): + url, rev = self.get_url_rev() + rev_options = self.make_rev_options(rev) + if self.check_destination(dest, url, rev_options): + rev_display = rev_options.to_display() + logger.info( + 'Cloning %s%s to %s', url, rev_display, display_path(dest), + ) + self.run_command(['clone', '-q', url, dest]) + + if rev: + rev_options = self.check_rev_options(dest, rev_options) + # Only do a checkout if the current commit id doesn't match + # the requested revision. + if not self.is_commit_id_equal(dest, rev_options.rev): + rev = rev_options.rev + # Only fetch the revision if it's a ref + if rev.startswith('refs/'): + self.run_command( + ['fetch', '-q', url] + rev_options.to_args(), + cwd=dest, + ) + # Change the revision to the SHA of the ref we fetched + rev = 'FETCH_HEAD' + self.run_command(['checkout', '-q', rev], cwd=dest) + + #: repo may contain submodules + self.update_submodules(dest) + + def get_url(self, location): + """Return URL of the first remote encountered.""" + remotes = self.run_command( + ['config', '--get-regexp', r'remote\..*\.url'], + show_stdout=False, cwd=location, + ) + remotes = remotes.splitlines() + found_remote = remotes[0] + for remote in remotes: + if remote.startswith('remote.origin.url '): + found_remote = remote + break + url = found_remote.split(' ')[1] + return url.strip() + + def get_revision(self, location): + current_rev = self.run_command( + ['rev-parse', 'HEAD'], show_stdout=False, cwd=location, + ) + return current_rev.strip() + + def _get_subdirectory(self, location): + """Return the relative path of setup.py to the git repo root.""" + # find the repo root + git_dir = self.run_command(['rev-parse', '--git-dir'], + show_stdout=False, cwd=location).strip() + if not os.path.isabs(git_dir): + git_dir = os.path.join(location, git_dir) + root_dir = os.path.join(git_dir, '..') + # find setup.py + orig_location = location + while not os.path.exists(os.path.join(location, 'setup.py')): + last_location = location + location = os.path.dirname(location) + if location == last_location: + # We've traversed up to the root of the filesystem without + # finding setup.py + logger.warning( + "Could not find setup.py for directory %s (tried all " + "parent directories)", + orig_location, + ) + return None + # relative path of setup.py to repo root + if samefile(root_dir, location): + return None + return os.path.relpath(location, root_dir) + + def get_src_requirement(self, dist, location): + repo = self.get_url(location) + if not repo.lower().startswith('git:'): + repo = 'git+' + repo + egg_project_name = dist.egg_name().split('-', 1)[0] + if not repo: + return None + current_rev = self.get_revision(location) + req = '%s@%s#egg=%s' % (repo, current_rev, egg_project_name) + subdirectory = self._get_subdirectory(location) + if subdirectory: + req += '&subdirectory=' + subdirectory + return req + + def get_url_rev(self): + """ + Prefixes stub URLs like 'user@hostname:user/repo.git' with 'ssh://'. + That's required because although they use SSH they sometimes doesn't + work with a ssh:// scheme (e.g. Github). But we need a scheme for + parsing. Hence we remove it again afterwards and return it as a stub. + """ + if '://' not in self.url: + assert 'file:' not in self.url + self.url = self.url.replace('git+', 'git+ssh://') + url, rev = super(Git, self).get_url_rev() + url = url.replace('ssh://', '') + else: + url, rev = super(Git, self).get_url_rev() + + return url, rev + + def update_submodules(self, location): + if not os.path.exists(os.path.join(location, '.gitmodules')): + return + self.run_command( + ['submodule', 'update', '--init', '--recursive', '-q'], + cwd=location, + ) + + @classmethod + def controls_location(cls, location): + if super(Git, cls).controls_location(location): + return True + try: + r = cls().run_command(['rev-parse'], + cwd=location, + show_stdout=False, + on_returncode='ignore') + return not r + except BadCommand: + logger.debug("could not determine if %s is under git control " + "because git is not available", location) + return False + + +vcs.register(Git) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/vcs/mercurial.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/vcs/mercurial.py new file mode 100644 index 00000000..52a1cce5 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/vcs/mercurial.py @@ -0,0 +1,105 @@ +from __future__ import absolute_import + +import logging +import os + +from pip._vendor.six.moves import configparser + +from pip._internal.download import path_to_url +from pip._internal.utils.misc import display_path +from pip._internal.utils.temp_dir import TempDirectory +from pip._internal.vcs import VersionControl, vcs + +logger = logging.getLogger(__name__) + + +class Mercurial(VersionControl): + name = 'hg' + dirname = '.hg' + repo_name = 'clone' + schemes = ('hg', 'hg+http', 'hg+https', 'hg+ssh', 'hg+static-http') + + def get_base_rev_args(self, rev): + return [rev] + + def export(self, location): + """Export the Hg repository at the url to the destination location""" + with TempDirectory(kind="export") as temp_dir: + self.unpack(temp_dir.path) + + self.run_command( + ['archive', location], show_stdout=False, cwd=temp_dir.path + ) + + def switch(self, dest, url, rev_options): + repo_config = os.path.join(dest, self.dirname, 'hgrc') + config = configparser.SafeConfigParser() + try: + config.read(repo_config) + config.set('paths', 'default', url) + with open(repo_config, 'w') as config_file: + config.write(config_file) + except (OSError, configparser.NoSectionError) as exc: + logger.warning( + 'Could not switch Mercurial repository to %s: %s', url, exc, + ) + else: + cmd_args = ['update', '-q'] + rev_options.to_args() + self.run_command(cmd_args, cwd=dest) + + def update(self, dest, rev_options): + self.run_command(['pull', '-q'], cwd=dest) + cmd_args = ['update', '-q'] + rev_options.to_args() + self.run_command(cmd_args, cwd=dest) + + def obtain(self, dest): + url, rev = self.get_url_rev() + rev_options = self.make_rev_options(rev) + if self.check_destination(dest, url, rev_options): + rev_display = rev_options.to_display() + logger.info( + 'Cloning hg %s%s to %s', + url, + rev_display, + display_path(dest), + ) + self.run_command(['clone', '--noupdate', '-q', url, dest]) + cmd_args = ['update', '-q'] + rev_options.to_args() + self.run_command(cmd_args, cwd=dest) + + def get_url(self, location): + url = self.run_command( + ['showconfig', 'paths.default'], + show_stdout=False, cwd=location).strip() + if self._is_local_repository(url): + url = path_to_url(url) + return url.strip() + + def get_revision(self, location): + current_revision = self.run_command( + ['parents', '--template={rev}'], + show_stdout=False, cwd=location).strip() + return current_revision + + def get_revision_hash(self, location): + current_rev_hash = self.run_command( + ['parents', '--template={node}'], + show_stdout=False, cwd=location).strip() + return current_rev_hash + + def get_src_requirement(self, dist, location): + repo = self.get_url(location) + if not repo.lower().startswith('hg:'): + repo = 'hg+' + repo + egg_project_name = dist.egg_name().split('-', 1)[0] + if not repo: + return None + current_rev_hash = self.get_revision_hash(location) + return '%s@%s#egg=%s' % (repo, current_rev_hash, egg_project_name) + + def is_commit_id_equal(self, dest, name): + """Always assume the versions don't match""" + return False + + +vcs.register(Mercurial) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/vcs/subversion.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/vcs/subversion.py new file mode 100644 index 00000000..7f369efa --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/vcs/subversion.py @@ -0,0 +1,271 @@ +from __future__ import absolute_import + +import logging +import os +import re + +from pip._vendor.six.moves.urllib import parse as urllib_parse + +from pip._internal.index import Link +from pip._internal.utils.logging import indent_log +from pip._internal.utils.misc import display_path, rmtree +from pip._internal.vcs import VersionControl, vcs + +_svn_xml_url_re = re.compile('url="([^"]+)"') +_svn_rev_re = re.compile(r'committed-rev="(\d+)"') +_svn_url_re = re.compile(r'URL: (.+)') +_svn_revision_re = re.compile(r'Revision: (.+)') +_svn_info_xml_rev_re = re.compile(r'\s*revision="(\d+)"') +_svn_info_xml_url_re = re.compile(r'<url>(.*)</url>') + + +logger = logging.getLogger(__name__) + + +class Subversion(VersionControl): + name = 'svn' + dirname = '.svn' + repo_name = 'checkout' + schemes = ('svn', 'svn+ssh', 'svn+http', 'svn+https', 'svn+svn') + + def get_base_rev_args(self, rev): + return ['-r', rev] + + def get_info(self, location): + """Returns (url, revision), where both are strings""" + assert not location.rstrip('/').endswith(self.dirname), \ + 'Bad directory: %s' % location + output = self.run_command( + ['info', location], + show_stdout=False, + extra_environ={'LANG': 'C'}, + ) + match = _svn_url_re.search(output) + if not match: + logger.warning( + 'Cannot determine URL of svn checkout %s', + display_path(location), + ) + logger.debug('Output that cannot be parsed: \n%s', output) + return None, None + url = match.group(1).strip() + match = _svn_revision_re.search(output) + if not match: + logger.warning( + 'Cannot determine revision of svn checkout %s', + display_path(location), + ) + logger.debug('Output that cannot be parsed: \n%s', output) + return url, None + return url, match.group(1) + + def export(self, location): + """Export the svn repository at the url to the destination location""" + url, rev = self.get_url_rev() + rev_options = get_rev_options(self, url, rev) + url = self.remove_auth_from_url(url) + logger.info('Exporting svn repository %s to %s', url, location) + with indent_log(): + if os.path.exists(location): + # Subversion doesn't like to check out over an existing + # directory --force fixes this, but was only added in svn 1.5 + rmtree(location) + cmd_args = ['export'] + rev_options.to_args() + [url, location] + self.run_command(cmd_args, show_stdout=False) + + def switch(self, dest, url, rev_options): + cmd_args = ['switch'] + rev_options.to_args() + [url, dest] + self.run_command(cmd_args) + + def update(self, dest, rev_options): + cmd_args = ['update'] + rev_options.to_args() + [dest] + self.run_command(cmd_args) + + def obtain(self, dest): + url, rev = self.get_url_rev() + rev_options = get_rev_options(self, url, rev) + url = self.remove_auth_from_url(url) + if self.check_destination(dest, url, rev_options): + rev_display = rev_options.to_display() + logger.info( + 'Checking out %s%s to %s', + url, + rev_display, + display_path(dest), + ) + cmd_args = ['checkout', '-q'] + rev_options.to_args() + [url, dest] + self.run_command(cmd_args) + + def get_location(self, dist, dependency_links): + for url in dependency_links: + egg_fragment = Link(url).egg_fragment + if not egg_fragment: + continue + if '-' in egg_fragment: + # FIXME: will this work when a package has - in the name? + key = '-'.join(egg_fragment.split('-')[:-1]).lower() + else: + key = egg_fragment + if key == dist.key: + return url.split('#', 1)[0] + return None + + def get_revision(self, location): + """ + Return the maximum revision for all files under a given location + """ + # Note: taken from setuptools.command.egg_info + revision = 0 + + for base, dirs, files in os.walk(location): + if self.dirname not in dirs: + dirs[:] = [] + continue # no sense walking uncontrolled subdirs + dirs.remove(self.dirname) + entries_fn = os.path.join(base, self.dirname, 'entries') + if not os.path.exists(entries_fn): + # FIXME: should we warn? + continue + + dirurl, localrev = self._get_svn_url_rev(base) + + if base == location: + base = dirurl + '/' # save the root url + elif not dirurl or not dirurl.startswith(base): + dirs[:] = [] + continue # not part of the same svn tree, skip it + revision = max(revision, localrev) + return revision + + def get_url_rev(self): + # hotfix the URL scheme after removing svn+ from svn+ssh:// readd it + url, rev = super(Subversion, self).get_url_rev() + if url.startswith('ssh://'): + url = 'svn+' + url + return url, rev + + def get_url(self, location): + # In cases where the source is in a subdirectory, not alongside + # setup.py we have to look up in the location until we find a real + # setup.py + orig_location = location + while not os.path.exists(os.path.join(location, 'setup.py')): + last_location = location + location = os.path.dirname(location) + if location == last_location: + # We've traversed up to the root of the filesystem without + # finding setup.py + logger.warning( + "Could not find setup.py for directory %s (tried all " + "parent directories)", + orig_location, + ) + return None + + return self._get_svn_url_rev(location)[0] + + def _get_svn_url_rev(self, location): + from pip._internal.exceptions import InstallationError + + entries_path = os.path.join(location, self.dirname, 'entries') + if os.path.exists(entries_path): + with open(entries_path) as f: + data = f.read() + else: # subversion >= 1.7 does not have the 'entries' file + data = '' + + if (data.startswith('8') or + data.startswith('9') or + data.startswith('10')): + data = list(map(str.splitlines, data.split('\n\x0c\n'))) + del data[0][0] # get rid of the '8' + url = data[0][3] + revs = [int(d[9]) for d in data if len(d) > 9 and d[9]] + [0] + elif data.startswith('<?xml'): + match = _svn_xml_url_re.search(data) + if not match: + raise ValueError('Badly formatted data: %r' % data) + url = match.group(1) # get repository URL + revs = [int(m.group(1)) for m in _svn_rev_re.finditer(data)] + [0] + else: + try: + # subversion >= 1.7 + xml = self.run_command( + ['info', '--xml', location], + show_stdout=False, + ) + url = _svn_info_xml_url_re.search(xml).group(1) + revs = [ + int(m.group(1)) for m in _svn_info_xml_rev_re.finditer(xml) + ] + except InstallationError: + url, revs = None, [] + + if revs: + rev = max(revs) + else: + rev = 0 + + return url, rev + + def get_src_requirement(self, dist, location): + repo = self.get_url(location) + if repo is None: + return None + # FIXME: why not project name? + egg_project_name = dist.egg_name().split('-', 1)[0] + rev = self.get_revision(location) + return 'svn+%s@%s#egg=%s' % (repo, rev, egg_project_name) + + def is_commit_id_equal(self, dest, name): + """Always assume the versions don't match""" + return False + + @staticmethod + def remove_auth_from_url(url): + # Return a copy of url with 'username:password@' removed. + # username/pass params are passed to subversion through flags + # and are not recognized in the url. + + # parsed url + purl = urllib_parse.urlsplit(url) + stripped_netloc = \ + purl.netloc.split('@')[-1] + + # stripped url + url_pieces = ( + purl.scheme, stripped_netloc, purl.path, purl.query, purl.fragment + ) + surl = urllib_parse.urlunsplit(url_pieces) + return surl + + +def get_rev_options(vcs, url, rev): + """ + Return a RevOptions object. + """ + r = urllib_parse.urlsplit(url) + if hasattr(r, 'username'): + # >= Python-2.5 + username, password = r.username, r.password + else: + netloc = r[1] + if '@' in netloc: + auth = netloc.split('@')[0] + if ':' in auth: + username, password = auth.split(':', 1) + else: + username, password = auth, None + else: + username, password = None, None + + extra_args = [] + if username: + extra_args += ['--username', username] + if password: + extra_args += ['--password', password] + + return vcs.make_rev_options(rev, extra_args=extra_args) + + +vcs.register(Subversion) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/wheel.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/wheel.py new file mode 100644 index 00000000..c71f17d2 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_internal/wheel.py @@ -0,0 +1,817 @@ +""" +Support for installing and building the "wheel" binary package format. +""" +from __future__ import absolute_import + +import collections +import compileall +import copy +import csv +import hashlib +import logging +import os.path +import re +import shutil +import stat +import sys +import warnings +from base64 import urlsafe_b64encode +from email.parser import Parser + +from pip._vendor import pkg_resources +from pip._vendor.distlib.scripts import ScriptMaker +from pip._vendor.packaging.utils import canonicalize_name +from pip._vendor.six import StringIO + +from pip._internal import pep425tags +from pip._internal.build_env import BuildEnvironment +from pip._internal.download import path_to_url, unpack_url +from pip._internal.exceptions import ( + InstallationError, InvalidWheelFilename, UnsupportedWheel, +) +from pip._internal.locations import ( + PIP_DELETE_MARKER_FILENAME, distutils_scheme, +) +from pip._internal.utils.logging import indent_log +from pip._internal.utils.misc import ( + call_subprocess, captured_stdout, ensure_dir, read_chunks, +) +from pip._internal.utils.setuptools_build import SETUPTOOLS_SHIM +from pip._internal.utils.temp_dir import TempDirectory +from pip._internal.utils.typing import MYPY_CHECK_RUNNING +from pip._internal.utils.ui import open_spinner + +if MYPY_CHECK_RUNNING: + from typing import Dict, List, Optional + +wheel_ext = '.whl' + +VERSION_COMPATIBLE = (1, 0) + + +logger = logging.getLogger(__name__) + + +def rehash(path, algo='sha256', blocksize=1 << 20): + """Return (hash, length) for path using hashlib.new(algo)""" + h = hashlib.new(algo) + length = 0 + with open(path, 'rb') as f: + for block in read_chunks(f, size=blocksize): + length += len(block) + h.update(block) + digest = 'sha256=' + urlsafe_b64encode( + h.digest() + ).decode('latin1').rstrip('=') + return (digest, length) + + +def open_for_csv(name, mode): + if sys.version_info[0] < 3: + nl = {} + bin = 'b' + else: + nl = {'newline': ''} + bin = '' + return open(name, mode + bin, **nl) + + +def fix_script(path): + """Replace #!python with #!/path/to/python + Return True if file was changed.""" + # XXX RECORD hashes will need to be updated + if os.path.isfile(path): + with open(path, 'rb') as script: + firstline = script.readline() + if not firstline.startswith(b'#!python'): + return False + exename = sys.executable.encode(sys.getfilesystemencoding()) + firstline = b'#!' + exename + os.linesep.encode("ascii") + rest = script.read() + with open(path, 'wb') as script: + script.write(firstline) + script.write(rest) + return True + + +dist_info_re = re.compile(r"""^(?P<namever>(?P<name>.+?)(-(?P<ver>.+?))?) + \.dist-info$""", re.VERBOSE) + + +def root_is_purelib(name, wheeldir): + """ + Return True if the extracted wheel in wheeldir should go into purelib. + """ + name_folded = name.replace("-", "_") + for item in os.listdir(wheeldir): + match = dist_info_re.match(item) + if match and match.group('name') == name_folded: + with open(os.path.join(wheeldir, item, 'WHEEL')) as wheel: + for line in wheel: + line = line.lower().rstrip() + if line == "root-is-purelib: true": + return True + return False + + +def get_entrypoints(filename): + if not os.path.exists(filename): + return {}, {} + + # This is done because you can pass a string to entry_points wrappers which + # means that they may or may not be valid INI files. The attempt here is to + # strip leading and trailing whitespace in order to make them valid INI + # files. + with open(filename) as fp: + data = StringIO() + for line in fp: + data.write(line.strip()) + data.write("\n") + data.seek(0) + + # get the entry points and then the script names + entry_points = pkg_resources.EntryPoint.parse_map(data) + console = entry_points.get('console_scripts', {}) + gui = entry_points.get('gui_scripts', {}) + + def _split_ep(s): + """get the string representation of EntryPoint, remove space and split + on '='""" + return str(s).replace(" ", "").split("=") + + # convert the EntryPoint objects into strings with module:function + console = dict(_split_ep(v) for v in console.values()) + gui = dict(_split_ep(v) for v in gui.values()) + return console, gui + + +def message_about_scripts_not_on_PATH(scripts): + # type: (List[str]) -> Optional[str] + """Determine if any scripts are not on PATH and format a warning. + + Returns a warning message if one or more scripts are not on PATH, + otherwise None. + """ + if not scripts: + return None + + # Group scripts by the path they were installed in + grouped_by_dir = collections.defaultdict(set) # type: Dict[str, set] + for destfile in scripts: + parent_dir = os.path.dirname(destfile) + script_name = os.path.basename(destfile) + grouped_by_dir[parent_dir].add(script_name) + + # We don't want to warn for directories that are on PATH. + not_warn_dirs = [ + os.path.normcase(i) for i in os.environ["PATH"].split(os.pathsep) + ] + # If an executable sits with sys.executable, we don't warn for it. + # This covers the case of venv invocations without activating the venv. + not_warn_dirs.append(os.path.normcase(os.path.dirname(sys.executable))) + warn_for = { + parent_dir: scripts for parent_dir, scripts in grouped_by_dir.items() + if os.path.normcase(parent_dir) not in not_warn_dirs + } + if not warn_for: + return None + + # Format a message + msg_lines = [] + for parent_dir, scripts in warn_for.items(): + scripts = sorted(scripts) + if len(scripts) == 1: + start_text = "script {} is".format(scripts[0]) + else: + start_text = "scripts {} are".format( + ", ".join(scripts[:-1]) + " and " + scripts[-1] + ) + + msg_lines.append( + "The {} installed in '{}' which is not on PATH." + .format(start_text, parent_dir) + ) + + last_line_fmt = ( + "Consider adding {} to PATH or, if you prefer " + "to suppress this warning, use --no-warn-script-location." + ) + if len(msg_lines) == 1: + msg_lines.append(last_line_fmt.format("this directory")) + else: + msg_lines.append(last_line_fmt.format("these directories")) + + # Returns the formatted multiline message + return "\n".join(msg_lines) + + +def move_wheel_files(name, req, wheeldir, user=False, home=None, root=None, + pycompile=True, scheme=None, isolated=False, prefix=None, + warn_script_location=True): + """Install a wheel""" + + if not scheme: + scheme = distutils_scheme( + name, user=user, home=home, root=root, isolated=isolated, + prefix=prefix, + ) + + if root_is_purelib(name, wheeldir): + lib_dir = scheme['purelib'] + else: + lib_dir = scheme['platlib'] + + info_dir = [] + data_dirs = [] + source = wheeldir.rstrip(os.path.sep) + os.path.sep + + # Record details of the files moved + # installed = files copied from the wheel to the destination + # changed = files changed while installing (scripts #! line typically) + # generated = files newly generated during the install (script wrappers) + installed = {} + changed = set() + generated = [] + + # Compile all of the pyc files that we're going to be installing + if pycompile: + with captured_stdout() as stdout: + with warnings.catch_warnings(): + warnings.filterwarnings('ignore') + compileall.compile_dir(source, force=True, quiet=True) + logger.debug(stdout.getvalue()) + + def normpath(src, p): + return os.path.relpath(src, p).replace(os.path.sep, '/') + + def record_installed(srcfile, destfile, modified=False): + """Map archive RECORD paths to installation RECORD paths.""" + oldpath = normpath(srcfile, wheeldir) + newpath = normpath(destfile, lib_dir) + installed[oldpath] = newpath + if modified: + changed.add(destfile) + + def clobber(source, dest, is_base, fixer=None, filter=None): + ensure_dir(dest) # common for the 'include' path + + for dir, subdirs, files in os.walk(source): + basedir = dir[len(source):].lstrip(os.path.sep) + destdir = os.path.join(dest, basedir) + if is_base and basedir.split(os.path.sep, 1)[0].endswith('.data'): + continue + for s in subdirs: + destsubdir = os.path.join(dest, basedir, s) + if is_base and basedir == '' and destsubdir.endswith('.data'): + data_dirs.append(s) + continue + elif (is_base and + s.endswith('.dist-info') and + canonicalize_name(s).startswith( + canonicalize_name(req.name))): + assert not info_dir, ('Multiple .dist-info directories: ' + + destsubdir + ', ' + + ', '.join(info_dir)) + info_dir.append(destsubdir) + for f in files: + # Skip unwanted files + if filter and filter(f): + continue + srcfile = os.path.join(dir, f) + destfile = os.path.join(dest, basedir, f) + # directory creation is lazy and after the file filtering above + # to ensure we don't install empty dirs; empty dirs can't be + # uninstalled. + ensure_dir(destdir) + + # We use copyfile (not move, copy, or copy2) to be extra sure + # that we are not moving directories over (copyfile fails for + # directories) as well as to ensure that we are not copying + # over any metadata because we want more control over what + # metadata we actually copy over. + shutil.copyfile(srcfile, destfile) + + # Copy over the metadata for the file, currently this only + # includes the atime and mtime. + st = os.stat(srcfile) + if hasattr(os, "utime"): + os.utime(destfile, (st.st_atime, st.st_mtime)) + + # If our file is executable, then make our destination file + # executable. + if os.access(srcfile, os.X_OK): + st = os.stat(srcfile) + permissions = ( + st.st_mode | stat.S_IXUSR | stat.S_IXGRP | stat.S_IXOTH + ) + os.chmod(destfile, permissions) + + changed = False + if fixer: + changed = fixer(destfile) + record_installed(srcfile, destfile, changed) + + clobber(source, lib_dir, True) + + assert info_dir, "%s .dist-info directory not found" % req + + # Get the defined entry points + ep_file = os.path.join(info_dir[0], 'entry_points.txt') + console, gui = get_entrypoints(ep_file) + + def is_entrypoint_wrapper(name): + # EP, EP.exe and EP-script.py are scripts generated for + # entry point EP by setuptools + if name.lower().endswith('.exe'): + matchname = name[:-4] + elif name.lower().endswith('-script.py'): + matchname = name[:-10] + elif name.lower().endswith(".pya"): + matchname = name[:-4] + else: + matchname = name + # Ignore setuptools-generated scripts + return (matchname in console or matchname in gui) + + for datadir in data_dirs: + fixer = None + filter = None + for subdir in os.listdir(os.path.join(wheeldir, datadir)): + fixer = None + if subdir == 'scripts': + fixer = fix_script + filter = is_entrypoint_wrapper + source = os.path.join(wheeldir, datadir, subdir) + dest = scheme[subdir] + clobber(source, dest, False, fixer=fixer, filter=filter) + + maker = ScriptMaker(None, scheme['scripts']) + + # Ensure old scripts are overwritten. + # See https://github.com/pypa/pip/issues/1800 + maker.clobber = True + + # Ensure we don't generate any variants for scripts because this is almost + # never what somebody wants. + # See https://bitbucket.org/pypa/distlib/issue/35/ + maker.variants = {''} + + # This is required because otherwise distlib creates scripts that are not + # executable. + # See https://bitbucket.org/pypa/distlib/issue/32/ + maker.set_mode = True + + # Simplify the script and fix the fact that the default script swallows + # every single stack trace. + # See https://bitbucket.org/pypa/distlib/issue/34/ + # See https://bitbucket.org/pypa/distlib/issue/33/ + def _get_script_text(entry): + if entry.suffix is None: + raise InstallationError( + "Invalid script entry point: %s for req: %s - A callable " + "suffix is required. Cf https://packaging.python.org/en/" + "latest/distributing.html#console-scripts for more " + "information." % (entry, req) + ) + return maker.script_template % { + "module": entry.prefix, + "import_name": entry.suffix.split(".")[0], + "func": entry.suffix, + } + + maker._get_script_text = _get_script_text + maker.script_template = r"""# -*- coding: utf-8 -*- +import re +import sys + +from %(module)s import %(import_name)s + +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) + sys.exit(%(func)s()) +""" + + # Special case pip and setuptools to generate versioned wrappers + # + # The issue is that some projects (specifically, pip and setuptools) use + # code in setup.py to create "versioned" entry points - pip2.7 on Python + # 2.7, pip3.3 on Python 3.3, etc. But these entry points are baked into + # the wheel metadata at build time, and so if the wheel is installed with + # a *different* version of Python the entry points will be wrong. The + # correct fix for this is to enhance the metadata to be able to describe + # such versioned entry points, but that won't happen till Metadata 2.0 is + # available. + # In the meantime, projects using versioned entry points will either have + # incorrect versioned entry points, or they will not be able to distribute + # "universal" wheels (i.e., they will need a wheel per Python version). + # + # Because setuptools and pip are bundled with _ensurepip and virtualenv, + # we need to use universal wheels. So, as a stopgap until Metadata 2.0, we + # override the versioned entry points in the wheel and generate the + # correct ones. This code is purely a short-term measure until Metadata 2.0 + # is available. + # + # To add the level of hack in this section of code, in order to support + # ensurepip this code will look for an ``ENSUREPIP_OPTIONS`` environment + # variable which will control which version scripts get installed. + # + # ENSUREPIP_OPTIONS=altinstall + # - Only pipX.Y and easy_install-X.Y will be generated and installed + # ENSUREPIP_OPTIONS=install + # - pipX.Y, pipX, easy_install-X.Y will be generated and installed. Note + # that this option is technically if ENSUREPIP_OPTIONS is set and is + # not altinstall + # DEFAULT + # - The default behavior is to install pip, pipX, pipX.Y, easy_install + # and easy_install-X.Y. + pip_script = console.pop('pip', None) + if pip_script: + if "ENSUREPIP_OPTIONS" not in os.environ: + spec = 'pip = ' + pip_script + generated.extend(maker.make(spec)) + + if os.environ.get("ENSUREPIP_OPTIONS", "") != "altinstall": + spec = 'pip%s = %s' % (sys.version[:1], pip_script) + generated.extend(maker.make(spec)) + + spec = 'pip%s = %s' % (sys.version[:3], pip_script) + generated.extend(maker.make(spec)) + # Delete any other versioned pip entry points + pip_ep = [k for k in console if re.match(r'pip(\d(\.\d)?)?$', k)] + for k in pip_ep: + del console[k] + easy_install_script = console.pop('easy_install', None) + if easy_install_script: + if "ENSUREPIP_OPTIONS" not in os.environ: + spec = 'easy_install = ' + easy_install_script + generated.extend(maker.make(spec)) + + spec = 'easy_install-%s = %s' % (sys.version[:3], easy_install_script) + generated.extend(maker.make(spec)) + # Delete any other versioned easy_install entry points + easy_install_ep = [ + k for k in console if re.match(r'easy_install(-\d\.\d)?$', k) + ] + for k in easy_install_ep: + del console[k] + + # Generate the console and GUI entry points specified in the wheel + if len(console) > 0: + generated_console_scripts = maker.make_multiple( + ['%s = %s' % kv for kv in console.items()] + ) + generated.extend(generated_console_scripts) + + if warn_script_location: + msg = message_about_scripts_not_on_PATH(generated_console_scripts) + if msg is not None: + logger.warn(msg) + + if len(gui) > 0: + generated.extend( + maker.make_multiple( + ['%s = %s' % kv for kv in gui.items()], + {'gui': True} + ) + ) + + # Record pip as the installer + installer = os.path.join(info_dir[0], 'INSTALLER') + temp_installer = os.path.join(info_dir[0], 'INSTALLER.pip') + with open(temp_installer, 'wb') as installer_file: + installer_file.write(b'pip\n') + shutil.move(temp_installer, installer) + generated.append(installer) + + # Record details of all files installed + record = os.path.join(info_dir[0], 'RECORD') + temp_record = os.path.join(info_dir[0], 'RECORD.pip') + with open_for_csv(record, 'r') as record_in: + with open_for_csv(temp_record, 'w+') as record_out: + reader = csv.reader(record_in) + writer = csv.writer(record_out) + for row in reader: + row[0] = installed.pop(row[0], row[0]) + if row[0] in changed: + row[1], row[2] = rehash(row[0]) + writer.writerow(row) + for f in generated: + h, l = rehash(f) + writer.writerow((normpath(f, lib_dir), h, l)) + for f in installed: + writer.writerow((installed[f], '', '')) + shutil.move(temp_record, record) + + +def wheel_version(source_dir): + """ + Return the Wheel-Version of an extracted wheel, if possible. + + Otherwise, return False if we couldn't parse / extract it. + """ + try: + dist = [d for d in pkg_resources.find_on_path(None, source_dir)][0] + + wheel_data = dist.get_metadata('WHEEL') + wheel_data = Parser().parsestr(wheel_data) + + version = wheel_data['Wheel-Version'].strip() + version = tuple(map(int, version.split('.'))) + return version + except: + return False + + +def check_compatibility(version, name): + """ + Raises errors or warns if called with an incompatible Wheel-Version. + + Pip should refuse to install a Wheel-Version that's a major series + ahead of what it's compatible with (e.g 2.0 > 1.1); and warn when + installing a version only minor version ahead (e.g 1.2 > 1.1). + + version: a 2-tuple representing a Wheel-Version (Major, Minor) + name: name of wheel or package to raise exception about + + :raises UnsupportedWheel: when an incompatible Wheel-Version is given + """ + if not version: + raise UnsupportedWheel( + "%s is in an unsupported or invalid wheel" % name + ) + if version[0] > VERSION_COMPATIBLE[0]: + raise UnsupportedWheel( + "%s's Wheel-Version (%s) is not compatible with this version " + "of pip" % (name, '.'.join(map(str, version))) + ) + elif version > VERSION_COMPATIBLE: + logger.warning( + 'Installing from a newer Wheel-Version (%s)', + '.'.join(map(str, version)), + ) + + +class Wheel(object): + """A wheel file""" + + # TODO: maybe move the install code into this class + + wheel_file_re = re.compile( + r"""^(?P<namever>(?P<name>.+?)-(?P<ver>.*?)) + ((-(?P<build>\d[^-]*?))?-(?P<pyver>.+?)-(?P<abi>.+?)-(?P<plat>.+?) + \.whl|\.dist-info)$""", + re.VERBOSE + ) + + def __init__(self, filename): + """ + :raises InvalidWheelFilename: when the filename is invalid for a wheel + """ + wheel_info = self.wheel_file_re.match(filename) + if not wheel_info: + raise InvalidWheelFilename( + "%s is not a valid wheel filename." % filename + ) + self.filename = filename + self.name = wheel_info.group('name').replace('_', '-') + # we'll assume "_" means "-" due to wheel naming scheme + # (https://github.com/pypa/pip/issues/1150) + self.version = wheel_info.group('ver').replace('_', '-') + self.build_tag = wheel_info.group('build') + self.pyversions = wheel_info.group('pyver').split('.') + self.abis = wheel_info.group('abi').split('.') + self.plats = wheel_info.group('plat').split('.') + + # All the tag combinations from this file + self.file_tags = { + (x, y, z) for x in self.pyversions + for y in self.abis for z in self.plats + } + + def support_index_min(self, tags=None): + """ + Return the lowest index that one of the wheel's file_tag combinations + achieves in the supported_tags list e.g. if there are 8 supported tags, + and one of the file tags is first in the list, then return 0. Returns + None is the wheel is not supported. + """ + if tags is None: # for mock + tags = pep425tags.get_supported() + indexes = [tags.index(c) for c in self.file_tags if c in tags] + return min(indexes) if indexes else None + + def supported(self, tags=None): + """Is this wheel supported on this system?""" + if tags is None: # for mock + tags = pep425tags.get_supported() + return bool(set(tags).intersection(self.file_tags)) + + +class WheelBuilder(object): + """Build wheels from a RequirementSet.""" + + def __init__(self, finder, preparer, wheel_cache, + build_options=None, global_options=None, no_clean=False): + self.finder = finder + self.preparer = preparer + self.wheel_cache = wheel_cache + + self._wheel_dir = preparer.wheel_download_dir + + self.build_options = build_options or [] + self.global_options = global_options or [] + self.no_clean = no_clean + + def _build_one(self, req, output_dir, python_tag=None): + """Build one wheel. + + :return: The filename of the built wheel, or None if the build failed. + """ + # Install build deps into temporary directory (PEP 518) + with req.build_env: + return self._build_one_inside_env(req, output_dir, + python_tag=python_tag) + + def _build_one_inside_env(self, req, output_dir, python_tag=None): + with TempDirectory(kind="wheel") as temp_dir: + if self.__build_one(req, temp_dir.path, python_tag=python_tag): + try: + wheel_name = os.listdir(temp_dir.path)[0] + wheel_path = os.path.join(output_dir, wheel_name) + shutil.move( + os.path.join(temp_dir.path, wheel_name), wheel_path + ) + logger.info('Stored in directory: %s', output_dir) + return wheel_path + except: + pass + # Ignore return, we can't do anything else useful. + self._clean_one(req) + return None + + def _base_setup_args(self, req): + # NOTE: Eventually, we'd want to also -S to the flags here, when we're + # isolating. Currently, it breaks Python in virtualenvs, because it + # relies on site.py to find parts of the standard library outside the + # virtualenv. + return [ + sys.executable, '-u', '-c', + SETUPTOOLS_SHIM % req.setup_py + ] + list(self.global_options) + + def __build_one(self, req, tempd, python_tag=None): + base_args = self._base_setup_args(req) + + spin_message = 'Running setup.py bdist_wheel for %s' % (req.name,) + with open_spinner(spin_message) as spinner: + logger.debug('Destination directory: %s', tempd) + wheel_args = base_args + ['bdist_wheel', '-d', tempd] \ + + self.build_options + + if python_tag is not None: + wheel_args += ["--python-tag", python_tag] + + try: + call_subprocess(wheel_args, cwd=req.setup_py_dir, + show_stdout=False, spinner=spinner) + return True + except: + spinner.finish("error") + logger.error('Failed building wheel for %s', req.name) + return False + + def _clean_one(self, req): + base_args = self._base_setup_args(req) + + logger.info('Running setup.py clean for %s', req.name) + clean_args = base_args + ['clean', '--all'] + try: + call_subprocess(clean_args, cwd=req.source_dir, show_stdout=False) + return True + except: + logger.error('Failed cleaning build dir for %s', req.name) + return False + + def build(self, requirements, session, autobuilding=False): + """Build wheels. + + :param unpack: If True, replace the sdist we built from with the + newly built wheel, in preparation for installation. + :return: True if all the wheels built correctly. + """ + from pip._internal import index + + building_is_possible = self._wheel_dir or ( + autobuilding and self.wheel_cache.cache_dir + ) + assert building_is_possible + + buildset = [] + for req in requirements: + if req.constraint: + continue + if req.is_wheel: + if not autobuilding: + logger.info( + 'Skipping %s, due to already being wheel.', req.name, + ) + elif autobuilding and req.editable: + pass + elif autobuilding and not req.source_dir: + pass + elif autobuilding and req.link and not req.link.is_artifact: + # VCS checkout. Build wheel just for this run. + buildset.append((req, True)) + else: + ephem_cache = False + if autobuilding: + link = req.link + base, ext = link.splitext() + if index.egg_info_matches(base, None, link) is None: + # E.g. local directory. Build wheel just for this run. + ephem_cache = True + if "binary" not in index.fmt_ctl_formats( + self.finder.format_control, + canonicalize_name(req.name)): + logger.info( + "Skipping bdist_wheel for %s, due to binaries " + "being disabled for it.", req.name, + ) + continue + buildset.append((req, ephem_cache)) + + if not buildset: + return True + + # Build the wheels. + logger.info( + 'Building wheels for collected packages: %s', + ', '.join([req.name for (req, _) in buildset]), + ) + _cache = self.wheel_cache # shorter name + with indent_log(): + build_success, build_failure = [], [] + for req, ephem in buildset: + python_tag = None + if autobuilding: + python_tag = pep425tags.implementation_tag + if ephem: + output_dir = _cache.get_ephem_path_for_link(req.link) + else: + output_dir = _cache.get_path_for_link(req.link) + try: + ensure_dir(output_dir) + except OSError as e: + logger.warning("Building wheel for %s failed: %s", + req.name, e) + build_failure.append(req) + continue + else: + output_dir = self._wheel_dir + wheel_file = self._build_one( + req, output_dir, + python_tag=python_tag, + ) + if wheel_file: + build_success.append(req) + if autobuilding: + # XXX: This is mildly duplicative with prepare_files, + # but not close enough to pull out to a single common + # method. + # The code below assumes temporary source dirs - + # prevent it doing bad things. + if req.source_dir and not os.path.exists(os.path.join( + req.source_dir, PIP_DELETE_MARKER_FILENAME)): + raise AssertionError( + "bad source dir - missing marker") + # Delete the source we built the wheel from + req.remove_temporary_source() + # set the build directory again - name is known from + # the work prepare_files did. + req.source_dir = req.build_location( + self.preparer.build_dir + ) + # Update the link for this. + req.link = index.Link(path_to_url(wheel_file)) + assert req.link.is_wheel + # extract the wheel into the dir + unpack_url( + req.link, req.source_dir, None, False, + session=session, + ) + else: + build_failure.append(req) + + # notify success/failure + if build_success: + logger.info( + 'Successfully built %s', + ' '.join([req.name for req in build_success]), + ) + if build_failure: + logger.info( + 'Failed to build %s', + ' '.join([req.name for req in build_failure]), + ) + # Return True if all builds were successful + return len(build_failure) == 0 diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/__init__.py new file mode 100644 index 00000000..1387dba3 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/__init__.py @@ -0,0 +1,109 @@ +""" +pip._vendor is for vendoring dependencies of pip to prevent needing pip to +depend on something external. + +Files inside of pip._vendor should be considered immutable and should only be +updated to versions from upstream. +""" +from __future__ import absolute_import + +import glob +import os.path +import sys + +# Downstream redistributors which have debundled our dependencies should also +# patch this value to be true. This will trigger the additional patching +# to cause things like "six" to be available as pip. +DEBUNDLED = False + +# By default, look in this directory for a bunch of .whl files which we will +# add to the beginning of sys.path before attempting to import anything. This +# is done to support downstream re-distributors like Debian and Fedora who +# wish to create their own Wheels for our dependencies to aid in debundling. +WHEEL_DIR = os.path.abspath(os.path.dirname(__file__)) + + +# Define a small helper function to alias our vendored modules to the real ones +# if the vendored ones do not exist. This idea of this was taken from +# https://github.com/kennethreitz/requests/pull/2567. +def vendored(modulename): + vendored_name = "{0}.{1}".format(__name__, modulename) + + try: + __import__(vendored_name, globals(), locals(), level=0) + except ImportError: + try: + __import__(modulename, globals(), locals(), level=0) + except ImportError: + # We can just silently allow import failures to pass here. If we + # got to this point it means that ``import pip._vendor.whatever`` + # failed and so did ``import whatever``. Since we're importing this + # upfront in an attempt to alias imports, not erroring here will + # just mean we get a regular import error whenever pip *actually* + # tries to import one of these modules to use it, which actually + # gives us a better error message than we would have otherwise + # gotten. + pass + else: + sys.modules[vendored_name] = sys.modules[modulename] + base, head = vendored_name.rsplit(".", 1) + setattr(sys.modules[base], head, sys.modules[modulename]) + + +# If we're operating in a debundled setup, then we want to go ahead and trigger +# the aliasing of our vendored libraries as well as looking for wheels to add +# to our sys.path. This will cause all of this code to be a no-op typically +# however downstream redistributors can enable it in a consistent way across +# all platforms. +if DEBUNDLED: + # Actually look inside of WHEEL_DIR to find .whl files and add them to the + # front of our sys.path. + sys.path[:] = glob.glob(os.path.join(WHEEL_DIR, "*.whl")) + sys.path + + # Actually alias all of our vendored dependencies. + vendored("cachecontrol") + vendored("colorama") + vendored("distlib") + vendored("distro") + vendored("html5lib") + vendored("lockfile") + vendored("six") + vendored("six.moves") + vendored("six.moves.urllib") + vendored("six.moves.urllib.parse") + vendored("packaging") + vendored("packaging.version") + vendored("packaging.specifiers") + vendored("pkg_resources") + vendored("progress") + vendored("pytoml") + vendored("retrying") + vendored("requests") + vendored("requests.packages") + vendored("requests.packages.urllib3") + vendored("requests.packages.urllib3._collections") + vendored("requests.packages.urllib3.connection") + vendored("requests.packages.urllib3.connectionpool") + vendored("requests.packages.urllib3.contrib") + vendored("requests.packages.urllib3.contrib.ntlmpool") + vendored("requests.packages.urllib3.contrib.pyopenssl") + vendored("requests.packages.urllib3.exceptions") + vendored("requests.packages.urllib3.fields") + vendored("requests.packages.urllib3.filepost") + vendored("requests.packages.urllib3.packages") + vendored("requests.packages.urllib3.packages.ordered_dict") + vendored("requests.packages.urllib3.packages.six") + vendored("requests.packages.urllib3.packages.ssl_match_hostname") + vendored("requests.packages.urllib3.packages.ssl_match_hostname." + "_implementation") + vendored("requests.packages.urllib3.poolmanager") + vendored("requests.packages.urllib3.request") + vendored("requests.packages.urllib3.response") + vendored("requests.packages.urllib3.util") + vendored("requests.packages.urllib3.util.connection") + vendored("requests.packages.urllib3.util.request") + vendored("requests.packages.urllib3.util.response") + vendored("requests.packages.urllib3.util.retry") + vendored("requests.packages.urllib3.util.ssl_") + vendored("requests.packages.urllib3.util.timeout") + vendored("requests.packages.urllib3.util.url") diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/appdirs.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/appdirs.py new file mode 100644 index 00000000..2bd39110 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/appdirs.py @@ -0,0 +1,604 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- +# Copyright (c) 2005-2010 ActiveState Software Inc. +# Copyright (c) 2013 Eddy Petrișor + +"""Utilities for determining application-specific dirs. + +See <http://github.com/ActiveState/appdirs> for details and usage. +""" +# Dev Notes: +# - MSDN on where to store app data files: +# http://support.microsoft.com/default.aspx?scid=kb;en-us;310294#XSLTH3194121123120121120120 +# - Mac OS X: http://developer.apple.com/documentation/MacOSX/Conceptual/BPFileSystem/index.html +# - XDG spec for Un*x: http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html + +__version_info__ = (1, 4, 3) +__version__ = '.'.join(map(str, __version_info__)) + + +import sys +import os + +PY3 = sys.version_info[0] == 3 + +if PY3: + unicode = str + +if sys.platform.startswith('java'): + import platform + os_name = platform.java_ver()[3][0] + if os_name.startswith('Windows'): # "Windows XP", "Windows 7", etc. + system = 'win32' + elif os_name.startswith('Mac'): # "Mac OS X", etc. + system = 'darwin' + else: # "Linux", "SunOS", "FreeBSD", etc. + # Setting this to "linux2" is not ideal, but only Windows or Mac + # are actually checked for and the rest of the module expects + # *sys.platform* style strings. + system = 'linux2' +else: + system = sys.platform + + + +def user_data_dir(appname=None, appauthor=None, version=None, roaming=False): + r"""Return full path to the user-specific data dir for this application. + + "appname" is the name of application. + If None, just the system directory is returned. + "appauthor" (only used on Windows) is the name of the + appauthor or distributing body for this application. Typically + it is the owning company name. This falls back to appname. You may + pass False to disable it. + "version" is an optional version path element to append to the + path. You might want to use this if you want multiple versions + of your app to be able to run independently. If used, this + would typically be "<major>.<minor>". + Only applied when appname is present. + "roaming" (boolean, default False) can be set True to use the Windows + roaming appdata directory. That means that for users on a Windows + network setup for roaming profiles, this user data will be + sync'd on login. See + <http://technet.microsoft.com/en-us/library/cc766489(WS.10).aspx> + for a discussion of issues. + + Typical user data directories are: + Mac OS X: ~/Library/Application Support/<AppName> + Unix: ~/.local/share/<AppName> # or in $XDG_DATA_HOME, if defined + Win XP (not roaming): C:\Documents and Settings\<username>\Application Data\<AppAuthor>\<AppName> + Win XP (roaming): C:\Documents and Settings\<username>\Local Settings\Application Data\<AppAuthor>\<AppName> + Win 7 (not roaming): C:\Users\<username>\AppData\Local\<AppAuthor>\<AppName> + Win 7 (roaming): C:\Users\<username>\AppData\Roaming\<AppAuthor>\<AppName> + + For Unix, we follow the XDG spec and support $XDG_DATA_HOME. + That means, by default "~/.local/share/<AppName>". + """ + if system == "win32": + if appauthor is None: + appauthor = appname + const = roaming and "CSIDL_APPDATA" or "CSIDL_LOCAL_APPDATA" + path = os.path.normpath(_get_win_folder(const)) + if appname: + if appauthor is not False: + path = os.path.join(path, appauthor, appname) + else: + path = os.path.join(path, appname) + elif system == 'darwin': + path = os.path.expanduser('~/Library/Application Support/') + if appname: + path = os.path.join(path, appname) + else: + path = os.getenv('XDG_DATA_HOME', os.path.expanduser("~/.local/share")) + if appname: + path = os.path.join(path, appname) + if appname and version: + path = os.path.join(path, version) + return path + + +def site_data_dir(appname=None, appauthor=None, version=None, multipath=False): + r"""Return full path to the user-shared data dir for this application. + + "appname" is the name of application. + If None, just the system directory is returned. + "appauthor" (only used on Windows) is the name of the + appauthor or distributing body for this application. Typically + it is the owning company name. This falls back to appname. You may + pass False to disable it. + "version" is an optional version path element to append to the + path. You might want to use this if you want multiple versions + of your app to be able to run independently. If used, this + would typically be "<major>.<minor>". + Only applied when appname is present. + "multipath" is an optional parameter only applicable to *nix + which indicates that the entire list of data dirs should be + returned. By default, the first item from XDG_DATA_DIRS is + returned, or '/usr/local/share/<AppName>', + if XDG_DATA_DIRS is not set + + Typical site data directories are: + Mac OS X: /Library/Application Support/<AppName> + Unix: /usr/local/share/<AppName> or /usr/share/<AppName> + Win XP: C:\Documents and Settings\All Users\Application Data\<AppAuthor>\<AppName> + Vista: (Fail! "C:\ProgramData" is a hidden *system* directory on Vista.) + Win 7: C:\ProgramData\<AppAuthor>\<AppName> # Hidden, but writeable on Win 7. + + For Unix, this is using the $XDG_DATA_DIRS[0] default. + + WARNING: Do not use this on Windows. See the Vista-Fail note above for why. + """ + if system == "win32": + if appauthor is None: + appauthor = appname + path = os.path.normpath(_get_win_folder("CSIDL_COMMON_APPDATA")) + if appname: + if appauthor is not False: + path = os.path.join(path, appauthor, appname) + else: + path = os.path.join(path, appname) + elif system == 'darwin': + path = os.path.expanduser('/Library/Application Support') + if appname: + path = os.path.join(path, appname) + else: + # XDG default for $XDG_DATA_DIRS + # only first, if multipath is False + path = os.getenv('XDG_DATA_DIRS', + os.pathsep.join(['/usr/local/share', '/usr/share'])) + pathlist = [os.path.expanduser(x.rstrip(os.sep)) for x in path.split(os.pathsep)] + if appname: + if version: + appname = os.path.join(appname, version) + pathlist = [os.sep.join([x, appname]) for x in pathlist] + + if multipath: + path = os.pathsep.join(pathlist) + else: + path = pathlist[0] + return path + + if appname and version: + path = os.path.join(path, version) + return path + + +def user_config_dir(appname=None, appauthor=None, version=None, roaming=False): + r"""Return full path to the user-specific config dir for this application. + + "appname" is the name of application. + If None, just the system directory is returned. + "appauthor" (only used on Windows) is the name of the + appauthor or distributing body for this application. Typically + it is the owning company name. This falls back to appname. You may + pass False to disable it. + "version" is an optional version path element to append to the + path. You might want to use this if you want multiple versions + of your app to be able to run independently. If used, this + would typically be "<major>.<minor>". + Only applied when appname is present. + "roaming" (boolean, default False) can be set True to use the Windows + roaming appdata directory. That means that for users on a Windows + network setup for roaming profiles, this user data will be + sync'd on login. See + <http://technet.microsoft.com/en-us/library/cc766489(WS.10).aspx> + for a discussion of issues. + + Typical user config directories are: + Mac OS X: same as user_data_dir + Unix: ~/.config/<AppName> # or in $XDG_CONFIG_HOME, if defined + Win *: same as user_data_dir + + For Unix, we follow the XDG spec and support $XDG_CONFIG_HOME. + That means, by default "~/.config/<AppName>". + """ + if system in ["win32", "darwin"]: + path = user_data_dir(appname, appauthor, None, roaming) + else: + path = os.getenv('XDG_CONFIG_HOME', os.path.expanduser("~/.config")) + if appname: + path = os.path.join(path, appname) + if appname and version: + path = os.path.join(path, version) + return path + + +def site_config_dir(appname=None, appauthor=None, version=None, multipath=False): + r"""Return full path to the user-shared data dir for this application. + + "appname" is the name of application. + If None, just the system directory is returned. + "appauthor" (only used on Windows) is the name of the + appauthor or distributing body for this application. Typically + it is the owning company name. This falls back to appname. You may + pass False to disable it. + "version" is an optional version path element to append to the + path. You might want to use this if you want multiple versions + of your app to be able to run independently. If used, this + would typically be "<major>.<minor>". + Only applied when appname is present. + "multipath" is an optional parameter only applicable to *nix + which indicates that the entire list of config dirs should be + returned. By default, the first item from XDG_CONFIG_DIRS is + returned, or '/etc/xdg/<AppName>', if XDG_CONFIG_DIRS is not set + + Typical site config directories are: + Mac OS X: same as site_data_dir + Unix: /etc/xdg/<AppName> or $XDG_CONFIG_DIRS[i]/<AppName> for each value in + $XDG_CONFIG_DIRS + Win *: same as site_data_dir + Vista: (Fail! "C:\ProgramData" is a hidden *system* directory on Vista.) + + For Unix, this is using the $XDG_CONFIG_DIRS[0] default, if multipath=False + + WARNING: Do not use this on Windows. See the Vista-Fail note above for why. + """ + if system in ["win32", "darwin"]: + path = site_data_dir(appname, appauthor) + if appname and version: + path = os.path.join(path, version) + else: + # XDG default for $XDG_CONFIG_DIRS + # only first, if multipath is False + path = os.getenv('XDG_CONFIG_DIRS', '/etc/xdg') + pathlist = [os.path.expanduser(x.rstrip(os.sep)) for x in path.split(os.pathsep)] + if appname: + if version: + appname = os.path.join(appname, version) + pathlist = [os.sep.join([x, appname]) for x in pathlist] + + if multipath: + path = os.pathsep.join(pathlist) + else: + path = pathlist[0] + return path + + +def user_cache_dir(appname=None, appauthor=None, version=None, opinion=True): + r"""Return full path to the user-specific cache dir for this application. + + "appname" is the name of application. + If None, just the system directory is returned. + "appauthor" (only used on Windows) is the name of the + appauthor or distributing body for this application. Typically + it is the owning company name. This falls back to appname. You may + pass False to disable it. + "version" is an optional version path element to append to the + path. You might want to use this if you want multiple versions + of your app to be able to run independently. If used, this + would typically be "<major>.<minor>". + Only applied when appname is present. + "opinion" (boolean) can be False to disable the appending of + "Cache" to the base app data dir for Windows. See + discussion below. + + Typical user cache directories are: + Mac OS X: ~/Library/Caches/<AppName> + Unix: ~/.cache/<AppName> (XDG default) + Win XP: C:\Documents and Settings\<username>\Local Settings\Application Data\<AppAuthor>\<AppName>\Cache + Vista: C:\Users\<username>\AppData\Local\<AppAuthor>\<AppName>\Cache + + On Windows the only suggestion in the MSDN docs is that local settings go in + the `CSIDL_LOCAL_APPDATA` directory. This is identical to the non-roaming + app data dir (the default returned by `user_data_dir` above). Apps typically + put cache data somewhere *under* the given dir here. Some examples: + ...\Mozilla\Firefox\Profiles\<ProfileName>\Cache + ...\Acme\SuperApp\Cache\1.0 + OPINION: This function appends "Cache" to the `CSIDL_LOCAL_APPDATA` value. + This can be disabled with the `opinion=False` option. + """ + if system == "win32": + if appauthor is None: + appauthor = appname + path = os.path.normpath(_get_win_folder("CSIDL_LOCAL_APPDATA")) + if appname: + if appauthor is not False: + path = os.path.join(path, appauthor, appname) + else: + path = os.path.join(path, appname) + if opinion: + path = os.path.join(path, "Cache") + elif system == 'darwin': + path = os.path.expanduser('~/Library/Caches') + if appname: + path = os.path.join(path, appname) + else: + path = os.getenv('XDG_CACHE_HOME', os.path.expanduser('~/.cache')) + if appname: + path = os.path.join(path, appname) + if appname and version: + path = os.path.join(path, version) + return path + + +def user_state_dir(appname=None, appauthor=None, version=None, roaming=False): + r"""Return full path to the user-specific state dir for this application. + + "appname" is the name of application. + If None, just the system directory is returned. + "appauthor" (only used on Windows) is the name of the + appauthor or distributing body for this application. Typically + it is the owning company name. This falls back to appname. You may + pass False to disable it. + "version" is an optional version path element to append to the + path. You might want to use this if you want multiple versions + of your app to be able to run independently. If used, this + would typically be "<major>.<minor>". + Only applied when appname is present. + "roaming" (boolean, default False) can be set True to use the Windows + roaming appdata directory. That means that for users on a Windows + network setup for roaming profiles, this user data will be + sync'd on login. See + <http://technet.microsoft.com/en-us/library/cc766489(WS.10).aspx> + for a discussion of issues. + + Typical user state directories are: + Mac OS X: same as user_data_dir + Unix: ~/.local/state/<AppName> # or in $XDG_STATE_HOME, if defined + Win *: same as user_data_dir + + For Unix, we follow this Debian proposal <https://wiki.debian.org/XDGBaseDirectorySpecification#state> + to extend the XDG spec and support $XDG_STATE_HOME. + + That means, by default "~/.local/state/<AppName>". + """ + if system in ["win32", "darwin"]: + path = user_data_dir(appname, appauthor, None, roaming) + else: + path = os.getenv('XDG_STATE_HOME', os.path.expanduser("~/.local/state")) + if appname: + path = os.path.join(path, appname) + if appname and version: + path = os.path.join(path, version) + return path + + +def user_log_dir(appname=None, appauthor=None, version=None, opinion=True): + r"""Return full path to the user-specific log dir for this application. + + "appname" is the name of application. + If None, just the system directory is returned. + "appauthor" (only used on Windows) is the name of the + appauthor or distributing body for this application. Typically + it is the owning company name. This falls back to appname. You may + pass False to disable it. + "version" is an optional version path element to append to the + path. You might want to use this if you want multiple versions + of your app to be able to run independently. If used, this + would typically be "<major>.<minor>". + Only applied when appname is present. + "opinion" (boolean) can be False to disable the appending of + "Logs" to the base app data dir for Windows, and "log" to the + base cache dir for Unix. See discussion below. + + Typical user log directories are: + Mac OS X: ~/Library/Logs/<AppName> + Unix: ~/.cache/<AppName>/log # or under $XDG_CACHE_HOME if defined + Win XP: C:\Documents and Settings\<username>\Local Settings\Application Data\<AppAuthor>\<AppName>\Logs + Vista: C:\Users\<username>\AppData\Local\<AppAuthor>\<AppName>\Logs + + On Windows the only suggestion in the MSDN docs is that local settings + go in the `CSIDL_LOCAL_APPDATA` directory. (Note: I'm interested in + examples of what some windows apps use for a logs dir.) + + OPINION: This function appends "Logs" to the `CSIDL_LOCAL_APPDATA` + value for Windows and appends "log" to the user cache dir for Unix. + This can be disabled with the `opinion=False` option. + """ + if system == "darwin": + path = os.path.join( + os.path.expanduser('~/Library/Logs'), + appname) + elif system == "win32": + path = user_data_dir(appname, appauthor, version) + version = False + if opinion: + path = os.path.join(path, "Logs") + else: + path = user_cache_dir(appname, appauthor, version) + version = False + if opinion: + path = os.path.join(path, "log") + if appname and version: + path = os.path.join(path, version) + return path + + +class AppDirs(object): + """Convenience wrapper for getting application dirs.""" + def __init__(self, appname=None, appauthor=None, version=None, + roaming=False, multipath=False): + self.appname = appname + self.appauthor = appauthor + self.version = version + self.roaming = roaming + self.multipath = multipath + + @property + def user_data_dir(self): + return user_data_dir(self.appname, self.appauthor, + version=self.version, roaming=self.roaming) + + @property + def site_data_dir(self): + return site_data_dir(self.appname, self.appauthor, + version=self.version, multipath=self.multipath) + + @property + def user_config_dir(self): + return user_config_dir(self.appname, self.appauthor, + version=self.version, roaming=self.roaming) + + @property + def site_config_dir(self): + return site_config_dir(self.appname, self.appauthor, + version=self.version, multipath=self.multipath) + + @property + def user_cache_dir(self): + return user_cache_dir(self.appname, self.appauthor, + version=self.version) + + @property + def user_state_dir(self): + return user_state_dir(self.appname, self.appauthor, + version=self.version) + + @property + def user_log_dir(self): + return user_log_dir(self.appname, self.appauthor, + version=self.version) + + +#---- internal support stuff + +def _get_win_folder_from_registry(csidl_name): + """This is a fallback technique at best. I'm not sure if using the + registry for this guarantees us the correct answer for all CSIDL_* + names. + """ + if PY3: + import winreg as _winreg + else: + import _winreg + + shell_folder_name = { + "CSIDL_APPDATA": "AppData", + "CSIDL_COMMON_APPDATA": "Common AppData", + "CSIDL_LOCAL_APPDATA": "Local AppData", + }[csidl_name] + + key = _winreg.OpenKey( + _winreg.HKEY_CURRENT_USER, + r"Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders" + ) + dir, type = _winreg.QueryValueEx(key, shell_folder_name) + return dir + + +def _get_win_folder_with_pywin32(csidl_name): + from win32com.shell import shellcon, shell + dir = shell.SHGetFolderPath(0, getattr(shellcon, csidl_name), 0, 0) + # Try to make this a unicode path because SHGetFolderPath does + # not return unicode strings when there is unicode data in the + # path. + try: + dir = unicode(dir) + + # Downgrade to short path name if have highbit chars. See + # <http://bugs.activestate.com/show_bug.cgi?id=85099>. + has_high_char = False + for c in dir: + if ord(c) > 255: + has_high_char = True + break + if has_high_char: + try: + import win32api + dir = win32api.GetShortPathName(dir) + except ImportError: + pass + except UnicodeError: + pass + return dir + + +def _get_win_folder_with_ctypes(csidl_name): + import ctypes + + csidl_const = { + "CSIDL_APPDATA": 26, + "CSIDL_COMMON_APPDATA": 35, + "CSIDL_LOCAL_APPDATA": 28, + }[csidl_name] + + buf = ctypes.create_unicode_buffer(1024) + ctypes.windll.shell32.SHGetFolderPathW(None, csidl_const, None, 0, buf) + + # Downgrade to short path name if have highbit chars. See + # <http://bugs.activestate.com/show_bug.cgi?id=85099>. + has_high_char = False + for c in buf: + if ord(c) > 255: + has_high_char = True + break + if has_high_char: + buf2 = ctypes.create_unicode_buffer(1024) + if ctypes.windll.kernel32.GetShortPathNameW(buf.value, buf2, 1024): + buf = buf2 + + return buf.value + +def _get_win_folder_with_jna(csidl_name): + import array + from com.sun import jna + from com.sun.jna.platform import win32 + + buf_size = win32.WinDef.MAX_PATH * 2 + buf = array.zeros('c', buf_size) + shell = win32.Shell32.INSTANCE + shell.SHGetFolderPath(None, getattr(win32.ShlObj, csidl_name), None, win32.ShlObj.SHGFP_TYPE_CURRENT, buf) + dir = jna.Native.toString(buf.tostring()).rstrip("\0") + + # Downgrade to short path name if have highbit chars. See + # <http://bugs.activestate.com/show_bug.cgi?id=85099>. + has_high_char = False + for c in dir: + if ord(c) > 255: + has_high_char = True + break + if has_high_char: + buf = array.zeros('c', buf_size) + kernel = win32.Kernel32.INSTANCE + if kernel.GetShortPathName(dir, buf, buf_size): + dir = jna.Native.toString(buf.tostring()).rstrip("\0") + + return dir + +if system == "win32": + try: + from ctypes import windll + _get_win_folder = _get_win_folder_with_ctypes + except ImportError: + try: + import com.sun.jna + _get_win_folder = _get_win_folder_with_jna + except ImportError: + _get_win_folder = _get_win_folder_from_registry + + +#---- self test code + +if __name__ == "__main__": + appname = "MyApp" + appauthor = "MyCompany" + + props = ("user_data_dir", + "user_config_dir", + "user_cache_dir", + "user_state_dir", + "user_log_dir", + "site_data_dir", + "site_config_dir") + + print("-- app dirs %s --" % __version__) + + print("-- app dirs (with optional 'version')") + dirs = AppDirs(appname, appauthor, version="1.0") + for prop in props: + print("%s: %s" % (prop, getattr(dirs, prop))) + + print("\n-- app dirs (without optional 'version')") + dirs = AppDirs(appname, appauthor) + for prop in props: + print("%s: %s" % (prop, getattr(dirs, prop))) + + print("\n-- app dirs (without optional 'appauthor')") + dirs = AppDirs(appname) + for prop in props: + print("%s: %s" % (prop, getattr(dirs, prop))) + + print("\n-- app dirs (with disabled 'appauthor')") + dirs = AppDirs(appname, appauthor=False) + for prop in props: + print("%s: %s" % (prop, getattr(dirs, prop))) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/__init__.py new file mode 100644 index 00000000..f386d492 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/__init__.py @@ -0,0 +1,11 @@ +"""CacheControl import Interface. + +Make it easy to import from cachecontrol without long namespaces. +""" +__author__ = 'Eric Larson' +__email__ = 'eric@ionrock.org' +__version__ = '0.12.4' + +from .wrapper import CacheControl +from .adapter import CacheControlAdapter +from .controller import CacheController diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/_cmd.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/_cmd.py new file mode 100644 index 00000000..afdcc88c --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/_cmd.py @@ -0,0 +1,60 @@ +import logging + +from pip._vendor import requests + +from pip._vendor.cachecontrol.adapter import CacheControlAdapter +from pip._vendor.cachecontrol.cache import DictCache +from pip._vendor.cachecontrol.controller import logger + +from argparse import ArgumentParser + + +def setup_logging(): + logger.setLevel(logging.DEBUG) + handler = logging.StreamHandler() + logger.addHandler(handler) + + +def get_session(): + adapter = CacheControlAdapter( + DictCache(), + cache_etags=True, + serializer=None, + heuristic=None, + ) + sess = requests.Session() + sess.mount('http://', adapter) + sess.mount('https://', adapter) + + sess.cache_controller = adapter.controller + return sess + + +def get_args(): + parser = ArgumentParser() + parser.add_argument('url', help='The URL to try and cache') + return parser.parse_args() + + +def main(args=None): + args = get_args() + sess = get_session() + + # Make a request to get a response + resp = sess.get(args.url) + + # Turn on logging + setup_logging() + + # try setting the cache + sess.cache_controller.cache_response(resp.request, resp.raw) + + # Now try to get it + if sess.cache_controller.cached_request(resp.request): + print('Cached!') + else: + print('Not cached :(') + + +if __name__ == '__main__': + main() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/adapter.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/adapter.py new file mode 100644 index 00000000..ecb34a6d --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/adapter.py @@ -0,0 +1,134 @@ +import types +import functools +import zlib + +from pip._vendor.requests.adapters import HTTPAdapter + +from .controller import CacheController +from .cache import DictCache +from .filewrapper import CallbackFileWrapper + + +class CacheControlAdapter(HTTPAdapter): + invalidating_methods = set(['PUT', 'DELETE']) + + def __init__(self, cache=None, + cache_etags=True, + controller_class=None, + serializer=None, + heuristic=None, + cacheable_methods=None, + *args, **kw): + super(CacheControlAdapter, self).__init__(*args, **kw) + self.cache = cache or DictCache() + self.heuristic = heuristic + self.cacheable_methods = cacheable_methods or ('GET',) + + controller_factory = controller_class or CacheController + self.controller = controller_factory( + self.cache, + cache_etags=cache_etags, + serializer=serializer, + ) + + def send(self, request, cacheable_methods=None, **kw): + """ + Send a request. Use the request information to see if it + exists in the cache and cache the response if we need to and can. + """ + cacheable = cacheable_methods or self.cacheable_methods + if request.method in cacheable: + try: + cached_response = self.controller.cached_request(request) + except zlib.error: + cached_response = None + if cached_response: + return self.build_response(request, cached_response, + from_cache=True) + + # check for etags and add headers if appropriate + request.headers.update( + self.controller.conditional_headers(request) + ) + + resp = super(CacheControlAdapter, self).send(request, **kw) + + return resp + + def build_response(self, request, response, from_cache=False, + cacheable_methods=None): + """ + Build a response by making a request or using the cache. + + This will end up calling send and returning a potentially + cached response + """ + cacheable = cacheable_methods or self.cacheable_methods + if not from_cache and request.method in cacheable: + # Check for any heuristics that might update headers + # before trying to cache. + if self.heuristic: + response = self.heuristic.apply(response) + + # apply any expiration heuristics + if response.status == 304: + # We must have sent an ETag request. This could mean + # that we've been expired already or that we simply + # have an etag. In either case, we want to try and + # update the cache if that is the case. + cached_response = self.controller.update_cached_response( + request, response + ) + + if cached_response is not response: + from_cache = True + + # We are done with the server response, read a + # possible response body (compliant servers will + # not return one, but we cannot be 100% sure) and + # release the connection back to the pool. + response.read(decode_content=False) + response.release_conn() + + response = cached_response + + # We always cache the 301 responses + elif response.status == 301: + self.controller.cache_response(request, response) + else: + # Wrap the response file with a wrapper that will cache the + # response when the stream has been consumed. + response._fp = CallbackFileWrapper( + response._fp, + functools.partial( + self.controller.cache_response, + request, + response, + ) + ) + if response.chunked: + super_update_chunk_length = response._update_chunk_length + + def _update_chunk_length(self): + super_update_chunk_length() + if self.chunk_left == 0: + self._fp._close() + response._update_chunk_length = types.MethodType(_update_chunk_length, response) + + resp = super(CacheControlAdapter, self).build_response( + request, response + ) + + # See if we should invalidate the cache. + if request.method in self.invalidating_methods and resp.ok: + cache_url = self.controller.cache_url(request.url) + self.cache.delete(cache_url) + + # Give the request a from_cache attr to let people use it + resp.from_cache = from_cache + + return resp + + def close(self): + self.cache.close() + super(CacheControlAdapter, self).close() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/cache.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/cache.py new file mode 100644 index 00000000..7389a73f --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/cache.py @@ -0,0 +1,39 @@ +""" +The cache object API for implementing caches. The default is a thread +safe in-memory dictionary. +""" +from threading import Lock + + +class BaseCache(object): + + def get(self, key): + raise NotImplemented() + + def set(self, key, value): + raise NotImplemented() + + def delete(self, key): + raise NotImplemented() + + def close(self): + pass + + +class DictCache(BaseCache): + + def __init__(self, init_dict=None): + self.lock = Lock() + self.data = init_dict or {} + + def get(self, key): + return self.data.get(key, None) + + def set(self, key, value): + with self.lock: + self.data.update({key: value}) + + def delete(self, key): + with self.lock: + if key in self.data: + self.data.pop(key) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/caches/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/caches/__init__.py new file mode 100644 index 00000000..0e1658fa --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/caches/__init__.py @@ -0,0 +1,2 @@ +from .file_cache import FileCache # noqa +from .redis_cache import RedisCache # noqa diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/caches/file_cache.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/caches/file_cache.py new file mode 100644 index 00000000..885c8a65 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/caches/file_cache.py @@ -0,0 +1,133 @@ +import hashlib +import os +from textwrap import dedent + +from ..cache import BaseCache +from ..controller import CacheController + +try: + FileNotFoundError +except NameError: + # py2.X + FileNotFoundError = OSError + + +def _secure_open_write(filename, fmode): + # We only want to write to this file, so open it in write only mode + flags = os.O_WRONLY + + # os.O_CREAT | os.O_EXCL will fail if the file already exists, so we only + # will open *new* files. + # We specify this because we want to ensure that the mode we pass is the + # mode of the file. + flags |= os.O_CREAT | os.O_EXCL + + # Do not follow symlinks to prevent someone from making a symlink that + # we follow and insecurely open a cache file. + if hasattr(os, "O_NOFOLLOW"): + flags |= os.O_NOFOLLOW + + # On Windows we'll mark this file as binary + if hasattr(os, "O_BINARY"): + flags |= os.O_BINARY + + # Before we open our file, we want to delete any existing file that is + # there + try: + os.remove(filename) + except (IOError, OSError): + # The file must not exist already, so we can just skip ahead to opening + pass + + # Open our file, the use of os.O_CREAT | os.O_EXCL will ensure that if a + # race condition happens between the os.remove and this line, that an + # error will be raised. Because we utilize a lockfile this should only + # happen if someone is attempting to attack us. + fd = os.open(filename, flags, fmode) + try: + return os.fdopen(fd, "wb") + except: + # An error occurred wrapping our FD in a file object + os.close(fd) + raise + + +class FileCache(BaseCache): + def __init__(self, directory, forever=False, filemode=0o0600, + dirmode=0o0700, use_dir_lock=None, lock_class=None): + + if use_dir_lock is not None and lock_class is not None: + raise ValueError("Cannot use use_dir_lock and lock_class together") + + try: + from pip._vendor.lockfile import LockFile + from pip._vendor.lockfile.mkdirlockfile import MkdirLockFile + except ImportError: + notice = dedent(""" + NOTE: In order to use the FileCache you must have + lockfile installed. You can install it via pip: + pip install lockfile + """) + raise ImportError(notice) + else: + if use_dir_lock: + lock_class = MkdirLockFile + + elif lock_class is None: + lock_class = LockFile + + self.directory = directory + self.forever = forever + self.filemode = filemode + self.dirmode = dirmode + self.lock_class = lock_class + + @staticmethod + def encode(x): + return hashlib.sha224(x.encode()).hexdigest() + + def _fn(self, name): + # NOTE: This method should not change as some may depend on it. + # See: https://github.com/ionrock/cachecontrol/issues/63 + hashed = self.encode(name) + parts = list(hashed[:5]) + [hashed] + return os.path.join(self.directory, *parts) + + def get(self, key): + name = self._fn(key) + if not os.path.exists(name): + return None + + with open(name, 'rb') as fh: + return fh.read() + + def set(self, key, value): + name = self._fn(key) + + # Make sure the directory exists + try: + os.makedirs(os.path.dirname(name), self.dirmode) + except (IOError, OSError): + pass + + with self.lock_class(name) as lock: + # Write our actual file + with _secure_open_write(lock.path, self.filemode) as fh: + fh.write(value) + + def delete(self, key): + name = self._fn(key) + if not self.forever: + try: + os.remove(name) + except FileNotFoundError: + pass + + +def url_to_file_path(url, filecache): + """Return the file cache path based on the URL. + + This does not ensure the file exists! + """ + key = CacheController.cache_url(url) + return filecache._fn(key) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/caches/redis_cache.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/caches/redis_cache.py new file mode 100644 index 00000000..b6285e9f --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/caches/redis_cache.py @@ -0,0 +1,43 @@ +from __future__ import division + +from datetime import datetime +from pip._vendor.cachecontrol.cache import BaseCache + + +def total_seconds(td): + """Python 2.6 compatability""" + if hasattr(td, 'total_seconds'): + return int(td.total_seconds()) + + ms = td.microseconds + secs = (td.seconds + td.days * 24 * 3600) + return int((ms + secs * 10**6) / 10**6) + + +class RedisCache(BaseCache): + + def __init__(self, conn): + self.conn = conn + + def get(self, key): + return self.conn.get(key) + + def set(self, key, value, expires=None): + if not expires: + self.conn.set(key, value) + else: + expires = expires - datetime.utcnow() + self.conn.setex(key, total_seconds(expires), value) + + def delete(self, key): + self.conn.delete(key) + + def clear(self): + """Helper for clearing all the keys in a database. Use with + caution!""" + for key in self.conn.keys(): + self.conn.delete(key) + + def close(self): + """Redis uses connection pooling, no need to close the connection.""" + pass diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/compat.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/compat.py new file mode 100644 index 00000000..33b5aed0 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/compat.py @@ -0,0 +1,29 @@ +try: + from urllib.parse import urljoin +except ImportError: + from urlparse import urljoin + + +try: + import cPickle as pickle +except ImportError: + import pickle + + +# Handle the case where the requests module has been patched to not have +# urllib3 bundled as part of its source. +try: + from pip._vendor.requests.packages.urllib3.response import HTTPResponse +except ImportError: + from pip._vendor.urllib3.response import HTTPResponse + +try: + from pip._vendor.requests.packages.urllib3.util import is_fp_closed +except ImportError: + from pip._vendor.urllib3.util import is_fp_closed + +# Replicate some six behaviour +try: + text_type = unicode +except NameError: + text_type = str diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/controller.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/controller.py new file mode 100644 index 00000000..0e2eb3c4 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/controller.py @@ -0,0 +1,373 @@ +""" +The httplib2 algorithms ported for use with requests. +""" +import logging +import re +import calendar +import time +from email.utils import parsedate_tz + +from pip._vendor.requests.structures import CaseInsensitiveDict + +from .cache import DictCache +from .serialize import Serializer + + +logger = logging.getLogger(__name__) + +URI = re.compile(r"^(([^:/?#]+):)?(//([^/?#]*))?([^?#]*)(\?([^#]*))?(#(.*))?") + + +def parse_uri(uri): + """Parses a URI using the regex given in Appendix B of RFC 3986. + + (scheme, authority, path, query, fragment) = parse_uri(uri) + """ + groups = URI.match(uri).groups() + return (groups[1], groups[3], groups[4], groups[6], groups[8]) + + +class CacheController(object): + """An interface to see if request should cached or not. + """ + def __init__(self, cache=None, cache_etags=True, serializer=None, + status_codes=None): + self.cache = cache or DictCache() + self.cache_etags = cache_etags + self.serializer = serializer or Serializer() + self.cacheable_status_codes = status_codes or (200, 203, 300, 301) + + @classmethod + def _urlnorm(cls, uri): + """Normalize the URL to create a safe key for the cache""" + (scheme, authority, path, query, fragment) = parse_uri(uri) + if not scheme or not authority: + raise Exception("Only absolute URIs are allowed. uri = %s" % uri) + + scheme = scheme.lower() + authority = authority.lower() + + if not path: + path = "/" + + # Could do syntax based normalization of the URI before + # computing the digest. See Section 6.2.2 of Std 66. + request_uri = query and "?".join([path, query]) or path + defrag_uri = scheme + "://" + authority + request_uri + + return defrag_uri + + @classmethod + def cache_url(cls, uri): + return cls._urlnorm(uri) + + def parse_cache_control(self, headers): + known_directives = { + # https://tools.ietf.org/html/rfc7234#section-5.2 + 'max-age': (int, True,), + 'max-stale': (int, False,), + 'min-fresh': (int, True,), + 'no-cache': (None, False,), + 'no-store': (None, False,), + 'no-transform': (None, False,), + 'only-if-cached' : (None, False,), + 'must-revalidate': (None, False,), + 'public': (None, False,), + 'private': (None, False,), + 'proxy-revalidate': (None, False,), + 's-maxage': (int, True,) + } + + cc_headers = headers.get('cache-control', + headers.get('Cache-Control', '')) + + retval = {} + + for cc_directive in cc_headers.split(','): + parts = cc_directive.split('=', 1) + directive = parts[0].strip() + + try: + typ, required = known_directives[directive] + except KeyError: + logger.debug('Ignoring unknown cache-control directive: %s', + directive) + continue + + if not typ or not required: + retval[directive] = None + if typ: + try: + retval[directive] = typ(parts[1].strip()) + except IndexError: + if required: + logger.debug('Missing value for cache-control ' + 'directive: %s', directive) + except ValueError: + logger.debug('Invalid value for cache-control directive ' + '%s, must be %s', directive, typ.__name__) + + return retval + + def cached_request(self, request): + """ + Return a cached response if it exists in the cache, otherwise + return False. + """ + cache_url = self.cache_url(request.url) + logger.debug('Looking up "%s" in the cache', cache_url) + cc = self.parse_cache_control(request.headers) + + # Bail out if the request insists on fresh data + if 'no-cache' in cc: + logger.debug('Request header has "no-cache", cache bypassed') + return False + + if 'max-age' in cc and cc['max-age'] == 0: + logger.debug('Request header has "max_age" as 0, cache bypassed') + return False + + # Request allows serving from the cache, let's see if we find something + cache_data = self.cache.get(cache_url) + if cache_data is None: + logger.debug('No cache entry available') + return False + + # Check whether it can be deserialized + resp = self.serializer.loads(request, cache_data) + if not resp: + logger.warning('Cache entry deserialization failed, entry ignored') + return False + + # If we have a cached 301, return it immediately. We don't + # need to test our response for other headers b/c it is + # intrinsically "cacheable" as it is Permanent. + # See: + # https://tools.ietf.org/html/rfc7231#section-6.4.2 + # + # Client can try to refresh the value by repeating the request + # with cache busting headers as usual (ie no-cache). + if resp.status == 301: + msg = ('Returning cached "301 Moved Permanently" response ' + '(ignoring date and etag information)') + logger.debug(msg) + return resp + + headers = CaseInsensitiveDict(resp.headers) + if not headers or 'date' not in headers: + if 'etag' not in headers: + # Without date or etag, the cached response can never be used + # and should be deleted. + logger.debug('Purging cached response: no date or etag') + self.cache.delete(cache_url) + logger.debug('Ignoring cached response: no date') + return False + + now = time.time() + date = calendar.timegm( + parsedate_tz(headers['date']) + ) + current_age = max(0, now - date) + logger.debug('Current age based on date: %i', current_age) + + # TODO: There is an assumption that the result will be a + # urllib3 response object. This may not be best since we + # could probably avoid instantiating or constructing the + # response until we know we need it. + resp_cc = self.parse_cache_control(headers) + + # determine freshness + freshness_lifetime = 0 + + # Check the max-age pragma in the cache control header + if 'max-age' in resp_cc: + freshness_lifetime = resp_cc['max-age'] + logger.debug('Freshness lifetime from max-age: %i', + freshness_lifetime) + + # If there isn't a max-age, check for an expires header + elif 'expires' in headers: + expires = parsedate_tz(headers['expires']) + if expires is not None: + expire_time = calendar.timegm(expires) - date + freshness_lifetime = max(0, expire_time) + logger.debug("Freshness lifetime from expires: %i", + freshness_lifetime) + + # Determine if we are setting freshness limit in the + # request. Note, this overrides what was in the response. + if 'max-age' in cc: + freshness_lifetime = cc['max-age'] + logger.debug('Freshness lifetime from request max-age: %i', + freshness_lifetime) + + if 'min-fresh' in cc: + min_fresh = cc['min-fresh'] + # adjust our current age by our min fresh + current_age += min_fresh + logger.debug('Adjusted current age from min-fresh: %i', + current_age) + + # Return entry if it is fresh enough + if freshness_lifetime > current_age: + logger.debug('The response is "fresh", returning cached response') + logger.debug('%i > %i', freshness_lifetime, current_age) + return resp + + # we're not fresh. If we don't have an Etag, clear it out + if 'etag' not in headers: + logger.debug( + 'The cached response is "stale" with no etag, purging' + ) + self.cache.delete(cache_url) + + # return the original handler + return False + + def conditional_headers(self, request): + cache_url = self.cache_url(request.url) + resp = self.serializer.loads(request, self.cache.get(cache_url)) + new_headers = {} + + if resp: + headers = CaseInsensitiveDict(resp.headers) + + if 'etag' in headers: + new_headers['If-None-Match'] = headers['ETag'] + + if 'last-modified' in headers: + new_headers['If-Modified-Since'] = headers['Last-Modified'] + + return new_headers + + def cache_response(self, request, response, body=None, + status_codes=None): + """ + Algorithm for caching requests. + + This assumes a requests Response object. + """ + # From httplib2: Don't cache 206's since we aren't going to + # handle byte range requests + cacheable_status_codes = status_codes or self.cacheable_status_codes + if response.status not in cacheable_status_codes: + logger.debug( + 'Status code %s not in %s', + response.status, + cacheable_status_codes + ) + return + + response_headers = CaseInsensitiveDict(response.headers) + + # If we've been given a body, our response has a Content-Length, that + # Content-Length is valid then we can check to see if the body we've + # been given matches the expected size, and if it doesn't we'll just + # skip trying to cache it. + if (body is not None and + "content-length" in response_headers and + response_headers["content-length"].isdigit() and + int(response_headers["content-length"]) != len(body)): + return + + cc_req = self.parse_cache_control(request.headers) + cc = self.parse_cache_control(response_headers) + + cache_url = self.cache_url(request.url) + logger.debug('Updating cache with response from "%s"', cache_url) + + # Delete it from the cache if we happen to have it stored there + no_store = False + if 'no-store' in cc: + no_store = True + logger.debug('Response header has "no-store"') + if 'no-store' in cc_req: + no_store = True + logger.debug('Request header has "no-store"') + if no_store and self.cache.get(cache_url): + logger.debug('Purging existing cache entry to honor "no-store"') + self.cache.delete(cache_url) + + # If we've been given an etag, then keep the response + if self.cache_etags and 'etag' in response_headers: + logger.debug('Caching due to etag') + self.cache.set( + cache_url, + self.serializer.dumps(request, response, body=body), + ) + + # Add to the cache any 301s. We do this before looking that + # the Date headers. + elif response.status == 301: + logger.debug('Caching permanant redirect') + self.cache.set( + cache_url, + self.serializer.dumps(request, response) + ) + + # Add to the cache if the response headers demand it. If there + # is no date header then we can't do anything about expiring + # the cache. + elif 'date' in response_headers: + # cache when there is a max-age > 0 + if 'max-age' in cc and cc['max-age'] > 0: + logger.debug('Caching b/c date exists and max-age > 0') + self.cache.set( + cache_url, + self.serializer.dumps(request, response, body=body), + ) + + # If the request can expire, it means we should cache it + # in the meantime. + elif 'expires' in response_headers: + if response_headers['expires']: + logger.debug('Caching b/c of expires header') + self.cache.set( + cache_url, + self.serializer.dumps(request, response, body=body), + ) + + def update_cached_response(self, request, response): + """On a 304 we will get a new set of headers that we want to + update our cached value with, assuming we have one. + + This should only ever be called when we've sent an ETag and + gotten a 304 as the response. + """ + cache_url = self.cache_url(request.url) + + cached_response = self.serializer.loads( + request, + self.cache.get(cache_url) + ) + + if not cached_response: + # we didn't have a cached response + return response + + # Lets update our headers with the headers from the new request: + # http://tools.ietf.org/html/draft-ietf-httpbis-p4-conditional-26#section-4.1 + # + # The server isn't supposed to send headers that would make + # the cached body invalid. But... just in case, we'll be sure + # to strip out ones we know that might be problmatic due to + # typical assumptions. + excluded_headers = [ + "content-length", + ] + + cached_response.headers.update( + dict((k, v) for k, v in response.headers.items() + if k.lower() not in excluded_headers) + ) + + # we want a 200 b/c we have content via the cache + cached_response.status = 200 + + # update our cache + self.cache.set( + cache_url, + self.serializer.dumps(request, cached_response), + ) + + return cached_response diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/filewrapper.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/filewrapper.py new file mode 100644 index 00000000..f1e1ce05 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/filewrapper.py @@ -0,0 +1,78 @@ +from io import BytesIO + + +class CallbackFileWrapper(object): + """ + Small wrapper around a fp object which will tee everything read into a + buffer, and when that file is closed it will execute a callback with the + contents of that buffer. + + All attributes are proxied to the underlying file object. + + This class uses members with a double underscore (__) leading prefix so as + not to accidentally shadow an attribute. + """ + + def __init__(self, fp, callback): + self.__buf = BytesIO() + self.__fp = fp + self.__callback = callback + + def __getattr__(self, name): + # The vaguaries of garbage collection means that self.__fp is + # not always set. By using __getattribute__ and the private + # name[0] allows looking up the attribute value and raising an + # AttributeError when it doesn't exist. This stop thigns from + # infinitely recursing calls to getattr in the case where + # self.__fp hasn't been set. + # + # [0] https://docs.python.org/2/reference/expressions.html#atom-identifiers + fp = self.__getattribute__('_CallbackFileWrapper__fp') + return getattr(fp, name) + + def __is_fp_closed(self): + try: + return self.__fp.fp is None + except AttributeError: + pass + + try: + return self.__fp.closed + except AttributeError: + pass + + # We just don't cache it then. + # TODO: Add some logging here... + return False + + def _close(self): + if self.__callback: + self.__callback(self.__buf.getvalue()) + + # We assign this to None here, because otherwise we can get into + # really tricky problems where the CPython interpreter dead locks + # because the callback is holding a reference to something which + # has a __del__ method. Setting this to None breaks the cycle + # and allows the garbage collector to do it's thing normally. + self.__callback = None + + def read(self, amt=None): + data = self.__fp.read(amt) + self.__buf.write(data) + if self.__is_fp_closed(): + self._close() + + return data + + def _safe_read(self, amt): + data = self.__fp._safe_read(amt) + if amt == 2 and data == b'\r\n': + # urllib executes this read to toss the CRLF at the end + # of the chunk. + return data + + self.__buf.write(data) + if self.__is_fp_closed(): + self._close() + + return data diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/heuristics.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/heuristics.py new file mode 100644 index 00000000..f182ff02 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/heuristics.py @@ -0,0 +1,138 @@ +import calendar +import time + +from email.utils import formatdate, parsedate, parsedate_tz + +from datetime import datetime, timedelta + +TIME_FMT = "%a, %d %b %Y %H:%M:%S GMT" + + +def expire_after(delta, date=None): + date = date or datetime.utcnow() + return date + delta + + +def datetime_to_header(dt): + return formatdate(calendar.timegm(dt.timetuple())) + + +class BaseHeuristic(object): + + def warning(self, response): + """ + Return a valid 1xx warning header value describing the cache + adjustments. + + The response is provided too allow warnings like 113 + http://tools.ietf.org/html/rfc7234#section-5.5.4 where we need + to explicitly say response is over 24 hours old. + """ + return '110 - "Response is Stale"' + + def update_headers(self, response): + """Update the response headers with any new headers. + + NOTE: This SHOULD always include some Warning header to + signify that the response was cached by the client, not + by way of the provided headers. + """ + return {} + + def apply(self, response): + updated_headers = self.update_headers(response) + + if updated_headers: + response.headers.update(updated_headers) + warning_header_value = self.warning(response) + if warning_header_value is not None: + response.headers.update({'Warning': warning_header_value}) + + return response + + +class OneDayCache(BaseHeuristic): + """ + Cache the response by providing an expires 1 day in the + future. + """ + def update_headers(self, response): + headers = {} + + if 'expires' not in response.headers: + date = parsedate(response.headers['date']) + expires = expire_after(timedelta(days=1), + date=datetime(*date[:6])) + headers['expires'] = datetime_to_header(expires) + headers['cache-control'] = 'public' + return headers + + +class ExpiresAfter(BaseHeuristic): + """ + Cache **all** requests for a defined time period. + """ + + def __init__(self, **kw): + self.delta = timedelta(**kw) + + def update_headers(self, response): + expires = expire_after(self.delta) + return { + 'expires': datetime_to_header(expires), + 'cache-control': 'public', + } + + def warning(self, response): + tmpl = '110 - Automatically cached for %s. Response might be stale' + return tmpl % self.delta + + +class LastModified(BaseHeuristic): + """ + If there is no Expires header already, fall back on Last-Modified + using the heuristic from + http://tools.ietf.org/html/rfc7234#section-4.2.2 + to calculate a reasonable value. + + Firefox also does something like this per + https://developer.mozilla.org/en-US/docs/Web/HTTP/Caching_FAQ + http://lxr.mozilla.org/mozilla-release/source/netwerk/protocol/http/nsHttpResponseHead.cpp#397 + Unlike mozilla we limit this to 24-hr. + """ + cacheable_by_default_statuses = set([ + 200, 203, 204, 206, 300, 301, 404, 405, 410, 414, 501 + ]) + + def update_headers(self, resp): + headers = resp.headers + + if 'expires' in headers: + return {} + + if 'cache-control' in headers and headers['cache-control'] != 'public': + return {} + + if resp.status not in self.cacheable_by_default_statuses: + return {} + + if 'date' not in headers or 'last-modified' not in headers: + return {} + + date = calendar.timegm(parsedate_tz(headers['date'])) + last_modified = parsedate(headers['last-modified']) + if date is None or last_modified is None: + return {} + + now = time.time() + current_age = max(0, now - date) + delta = date - calendar.timegm(last_modified) + freshness_lifetime = max(0, min(delta / 10, 24 * 3600)) + if freshness_lifetime <= current_age: + return {} + + expires = date + freshness_lifetime + return {'expires': time.strftime(TIME_FMT, time.gmtime(expires))} + + def warning(self, resp): + return None diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/serialize.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/serialize.py new file mode 100644 index 00000000..05b6e247 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/serialize.py @@ -0,0 +1,194 @@ +import base64 +import io +import json +import zlib + +from pip._vendor import msgpack +from pip._vendor.requests.structures import CaseInsensitiveDict + +from .compat import HTTPResponse, pickle, text_type + + +def _b64_decode_bytes(b): + return base64.b64decode(b.encode("ascii")) + + +def _b64_decode_str(s): + return _b64_decode_bytes(s).decode("utf8") + + +class Serializer(object): + + def dumps(self, request, response, body=None): + response_headers = CaseInsensitiveDict(response.headers) + + if body is None: + body = response.read(decode_content=False) + + # NOTE: 99% sure this is dead code. I'm only leaving it + # here b/c I don't have a test yet to prove + # it. Basically, before using + # `cachecontrol.filewrapper.CallbackFileWrapper`, + # this made an effort to reset the file handle. The + # `CallbackFileWrapper` short circuits this code by + # setting the body as the content is consumed, the + # result being a `body` argument is *always* passed + # into cache_response, and in turn, + # `Serializer.dump`. + response._fp = io.BytesIO(body) + + # NOTE: This is all a bit weird, but it's really important that on + # Python 2.x these objects are unicode and not str, even when + # they contain only ascii. The problem here is that msgpack + # understands the difference between unicode and bytes and we + # have it set to differentiate between them, however Python 2 + # doesn't know the difference. Forcing these to unicode will be + # enough to have msgpack know the difference. + data = { + u"response": { + u"body": body, + u"headers": dict( + (text_type(k), text_type(v)) + for k, v in response.headers.items() + ), + u"status": response.status, + u"version": response.version, + u"reason": text_type(response.reason), + u"strict": response.strict, + u"decode_content": response.decode_content, + }, + } + + # Construct our vary headers + data[u"vary"] = {} + if u"vary" in response_headers: + varied_headers = response_headers[u'vary'].split(',') + for header in varied_headers: + header = header.strip() + header_value = request.headers.get(header, None) + if header_value is not None: + header_value = text_type(header_value) + data[u"vary"][header] = header_value + + return b",".join([b"cc=4", msgpack.dumps(data, use_bin_type=True)]) + + def loads(self, request, data): + # Short circuit if we've been given an empty set of data + if not data: + return + + # Determine what version of the serializer the data was serialized + # with + try: + ver, data = data.split(b",", 1) + except ValueError: + ver = b"cc=0" + + # Make sure that our "ver" is actually a version and isn't a false + # positive from a , being in the data stream. + if ver[:3] != b"cc=": + data = ver + data + ver = b"cc=0" + + # Get the version number out of the cc=N + ver = ver.split(b"=", 1)[-1].decode("ascii") + + # Dispatch to the actual load method for the given version + try: + return getattr(self, "_loads_v{0}".format(ver))(request, data) + except AttributeError: + # This is a version we don't have a loads function for, so we'll + # just treat it as a miss and return None + return + + def prepare_response(self, request, cached): + """Verify our vary headers match and construct a real urllib3 + HTTPResponse object. + """ + # Special case the '*' Vary value as it means we cannot actually + # determine if the cached response is suitable for this request. + if "*" in cached.get("vary", {}): + return + + # Ensure that the Vary headers for the cached response match our + # request + for header, value in cached.get("vary", {}).items(): + if request.headers.get(header, None) != value: + return + + body_raw = cached["response"].pop("body") + + headers = CaseInsensitiveDict(data=cached['response']['headers']) + if headers.get('transfer-encoding', '') == 'chunked': + headers.pop('transfer-encoding') + + cached['response']['headers'] = headers + + try: + body = io.BytesIO(body_raw) + except TypeError: + # This can happen if cachecontrol serialized to v1 format (pickle) + # using Python 2. A Python 2 str(byte string) will be unpickled as + # a Python 3 str (unicode string), which will cause the above to + # fail with: + # + # TypeError: 'str' does not support the buffer interface + body = io.BytesIO(body_raw.encode('utf8')) + + return HTTPResponse( + body=body, + preload_content=False, + **cached["response"] + ) + + def _loads_v0(self, request, data): + # The original legacy cache data. This doesn't contain enough + # information to construct everything we need, so we'll treat this as + # a miss. + return + + def _loads_v1(self, request, data): + try: + cached = pickle.loads(data) + except ValueError: + return + + return self.prepare_response(request, cached) + + def _loads_v2(self, request, data): + try: + cached = json.loads(zlib.decompress(data).decode("utf8")) + except (ValueError, zlib.error): + return + + # We need to decode the items that we've base64 encoded + cached["response"]["body"] = _b64_decode_bytes( + cached["response"]["body"] + ) + cached["response"]["headers"] = dict( + (_b64_decode_str(k), _b64_decode_str(v)) + for k, v in cached["response"]["headers"].items() + ) + cached["response"]["reason"] = _b64_decode_str( + cached["response"]["reason"], + ) + cached["vary"] = dict( + (_b64_decode_str(k), _b64_decode_str(v) if v is not None else v) + for k, v in cached["vary"].items() + ) + + return self.prepare_response(request, cached) + + def _loads_v3(self, request, data): + # Due to Python 2 encoding issues, it's impossible to know for sure + # exactly how to load v3 entries, thus we'll treat these as a miss so + # that they get rewritten out as v4 entries. + return + + def _loads_v4(self, request, data): + try: + cached = msgpack.loads(data, encoding='utf-8') + except ValueError: + return + + return self.prepare_response(request, cached) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/wrapper.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/wrapper.py new file mode 100644 index 00000000..b50a6e27 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/cachecontrol/wrapper.py @@ -0,0 +1,27 @@ +from .adapter import CacheControlAdapter +from .cache import DictCache + + +def CacheControl(sess, + cache=None, + cache_etags=True, + serializer=None, + heuristic=None, + controller_class=None, + adapter_class=None, + cacheable_methods=None): + + cache = cache or DictCache() + adapter_class = adapter_class or CacheControlAdapter + adapter = adapter_class( + cache, + cache_etags=cache_etags, + serializer=serializer, + heuristic=heuristic, + controller_class=controller_class, + cacheable_methods=cacheable_methods + ) + sess.mount('http://', adapter) + sess.mount('https://', adapter) + + return sess diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/certifi/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/certifi/__init__.py new file mode 100644 index 00000000..556193ce --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/certifi/__init__.py @@ -0,0 +1,3 @@ +from .core import where, old_where + +__version__ = "2018.01.18" diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/certifi/__main__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/certifi/__main__.py new file mode 100644 index 00000000..5f1da0dd --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/certifi/__main__.py @@ -0,0 +1,2 @@ +from certifi import where +print(where()) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/certifi/cacert.pem b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/certifi/cacert.pem new file mode 100644 index 00000000..101ac98f --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/certifi/cacert.pem @@ -0,0 +1,4433 @@ + +# Issuer: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA +# Subject: CN=GlobalSign Root CA O=GlobalSign nv-sa OU=Root CA +# Label: "GlobalSign Root CA" +# Serial: 4835703278459707669005204 +# MD5 Fingerprint: 3e:45:52:15:09:51:92:e1:b7:5d:37:9f:b1:87:29:8a +# SHA1 Fingerprint: b1:bc:96:8b:d4:f4:9d:62:2a:a8:9a:81:f2:15:01:52:a4:1d:82:9c +# SHA256 Fingerprint: eb:d4:10:40:e4:bb:3e:c7:42:c9:e3:81:d3:1e:f2:a4:1a:48:b6:68:5c:96:e7:ce:f3:c1:df:6c:d4:33:1c:99 +-----BEGIN CERTIFICATE----- +MIIDdTCCAl2gAwIBAgILBAAAAAABFUtaw5QwDQYJKoZIhvcNAQEFBQAwVzELMAkG +A1UEBhMCQkUxGTAXBgNVBAoTEEdsb2JhbFNpZ24gbnYtc2ExEDAOBgNVBAsTB1Jv +b3QgQ0ExGzAZBgNVBAMTEkdsb2JhbFNpZ24gUm9vdCBDQTAeFw05ODA5MDExMjAw +MDBaFw0yODAxMjgxMjAwMDBaMFcxCzAJBgNVBAYTAkJFMRkwFwYDVQQKExBHbG9i +YWxTaWduIG52LXNhMRAwDgYDVQQLEwdSb290IENBMRswGQYDVQQDExJHbG9iYWxT +aWduIFJvb3QgQ0EwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDaDuaZ +jc6j40+Kfvvxi4Mla+pIH/EqsLmVEQS98GPR4mdmzxzdzxtIK+6NiY6arymAZavp +xy0Sy6scTHAHoT0KMM0VjU/43dSMUBUc71DuxC73/OlS8pF94G3VNTCOXkNz8kHp +1Wrjsok6Vjk4bwY8iGlbKk3Fp1S4bInMm/k8yuX9ifUSPJJ4ltbcdG6TRGHRjcdG +snUOhugZitVtbNV4FpWi6cgKOOvyJBNPc1STE4U6G7weNLWLBYy5d4ux2x8gkasJ +U26Qzns3dLlwR5EiUWMWea6xrkEmCMgZK9FGqkjWZCrXgzT/LCrBbBlDSgeF59N8 +9iFo7+ryUp9/k5DPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8E +BTADAQH/MB0GA1UdDgQWBBRge2YaRQ2XyolQL30EzTSo//z9SzANBgkqhkiG9w0B +AQUFAAOCAQEA1nPnfE920I2/7LqivjTFKDK1fPxsnCwrvQmeU79rXqoRSLblCKOz +yj1hTdNGCbM+w6DjY1Ub8rrvrTnhQ7k4o+YviiY776BQVvnGCv04zcQLcFGUl5gE +38NflNUVyRRBnMRddWQVDf9VMOyGj/8N7yy5Y0b2qvzfvGn9LhJIZJrglfCm7ymP +AbEVtQwdpf5pLGkkeB6zpxxxYu7KyJesF12KwvhHhm4qxFYxldBniYUr+WymXUad +DKqC5JlR3XC321Y9YeRq4VzW9v493kHMB65jUr9TU/Qr6cf9tveCX4XSQRjbgbME +HMUfpIBvFSDJ3gyICh3WZlXi/EjJKSZp4A== +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R2 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R2 +# Label: "GlobalSign Root CA - R2" +# Serial: 4835703278459682885658125 +# MD5 Fingerprint: 94:14:77:7e:3e:5e:fd:8f:30:bd:41:b0:cf:e7:d0:30 +# SHA1 Fingerprint: 75:e0:ab:b6:13:85:12:27:1c:04:f8:5f:dd:de:38:e4:b7:24:2e:fe +# SHA256 Fingerprint: ca:42:dd:41:74:5f:d0:b8:1e:b9:02:36:2c:f9:d8:bf:71:9d:a1:bd:1b:1e:fc:94:6f:5b:4c:99:f4:2c:1b:9e +-----BEGIN CERTIFICATE----- +MIIDujCCAqKgAwIBAgILBAAAAAABD4Ym5g0wDQYJKoZIhvcNAQEFBQAwTDEgMB4G +A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjIxEzARBgNVBAoTCkdsb2JhbFNp +Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDYxMjE1MDgwMDAwWhcNMjExMjE1 +MDgwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMjETMBEG +A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAKbPJA6+Lm8omUVCxKs+IVSbC9N/hHD6ErPL +v4dfxn+G07IwXNb9rfF73OX4YJYJkhD10FPe+3t+c4isUoh7SqbKSaZeqKeMWhG8 +eoLrvozps6yWJQeXSpkqBy+0Hne/ig+1AnwblrjFuTosvNYSuetZfeLQBoZfXklq +tTleiDTsvHgMCJiEbKjNS7SgfQx5TfC4LcshytVsW33hoCmEofnTlEnLJGKRILzd +C9XZzPnqJworc5HGnRusyMvo4KD0L5CLTfuwNhv2GXqF4G3yYROIXJ/gkwpRl4pa +zq+r1feqCapgvdzZX99yqWATXgAByUr6P6TqBwMhAo6CygPCm48CAwEAAaOBnDCB +mTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUm+IH +V2ccHsBqBt5ZtJot39wZhi4wNgYDVR0fBC8wLTAroCmgJ4YlaHR0cDovL2NybC5n +bG9iYWxzaWduLm5ldC9yb290LXIyLmNybDAfBgNVHSMEGDAWgBSb4gdXZxwewGoG +3lm0mi3f3BmGLjANBgkqhkiG9w0BAQUFAAOCAQEAmYFThxxol4aR7OBKuEQLq4Gs +J0/WwbgcQ3izDJr86iw8bmEbTUsp9Z8FHSbBuOmDAGJFtqkIk7mpM0sYmsL4h4hO +291xNBrBVNpGP+DTKqttVCL1OmLNIG+6KYnX3ZHu01yiPqFbQfXf5WRDLenVOavS +ot+3i9DAgBkcRcAtjOj4LaR0VknFBbVPFd5uRHg5h6h+u/N5GJG79G+dwfCMNYxd +AfvDbbnvRG15RjF+Cv6pgsH/76tuIMRQyV+dTZsXjAzlAcmgQWpzU/qlULRuJQ/7 +TBj0/VLZjmmx6BEP3ojY+x1J96relc8geMJgEtslQIxq/H5COEBkEveegeGTLg== +-----END CERTIFICATE----- + +# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only +# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G3 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 1999 VeriSign, Inc. - For authorized use only +# Label: "Verisign Class 3 Public Primary Certification Authority - G3" +# Serial: 206684696279472310254277870180966723415 +# MD5 Fingerprint: cd:68:b6:a7:c7:c4:ce:75:e0:1d:4f:57:44:61:92:09 +# SHA1 Fingerprint: 13:2d:0d:45:53:4b:69:97:cd:b2:d5:c3:39:e2:55:76:60:9b:5c:c6 +# SHA256 Fingerprint: eb:04:cf:5e:b1:f3:9a:fa:76:2f:2b:b1:20:f2:96:cb:a5:20:c1:b9:7d:b1:58:95:65:b8:1c:b9:a1:7b:72:44 +-----BEGIN CERTIFICATE----- +MIIEGjCCAwICEQCbfgZJoz5iudXukEhxKe9XMA0GCSqGSIb3DQEBBQUAMIHKMQsw +CQYDVQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZl +cmlTaWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWdu +LCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlT +aWduIENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3Jp +dHkgLSBHMzAeFw05OTEwMDEwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMIHKMQswCQYD +VQQGEwJVUzEXMBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlT +aWduIFRydXN0IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAxOTk5IFZlcmlTaWduLCBJ +bmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxRTBDBgNVBAMTPFZlcmlTaWdu +IENsYXNzIDMgUHVibGljIFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg +LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMu6nFL8eB8aHm8b +N3O9+MlrlBIwT/A2R/XQkQr1F8ilYcEWQE37imGQ5XYgwREGfassbqb1EUGO+i2t +KmFZpGcmTNDovFJbcCAEWNF6yaRpvIMXZK0Fi7zQWM6NjPXr8EJJC52XJ2cybuGu +kxUccLwgTS8Y3pKI6GyFVxEa6X7jJhFUokWWVYPKMIno3Nij7SqAP395ZVc+FSBm +CC+Vk7+qRy+oRpfwEuL+wgorUeZ25rdGt+INpsyow0xZVYnm6FNcHOqd8GIWC6fJ +Xwzw3sJ2zq/3avL6QaaiMxTJ5Xpj055iN9WFZZ4O5lMkdBteHRJTW8cs54NJOxWu +imi5V5cCAwEAATANBgkqhkiG9w0BAQUFAAOCAQEAERSWwauSCPc/L8my/uRan2Te +2yFPhpk0djZX3dAVL8WtfxUfN2JzPtTnX84XA9s1+ivbrmAJXx5fj267Cz3qWhMe +DGBvtcC1IyIuBwvLqXTLR7sdwdela8wv0kL9Sd2nic9TutoAWii/gt/4uhMdUIaC +/Y4wjylGsB49Ndo4YhYYSq3mtlFs3q9i6wHQHiT+eo8SGhJouPtmmRQURVyu565p +F4ErWjfJXir0xuKhXFSbplQAz/DxwceYMBo7Nhbbo27q/a2ywtrvAkcTisDxszGt +TxzhT5yvDwyd93gN2PQ1VoDat20Xj50egWTh/sVFuq1ruQp6Tk9LhO5L8X3dEQ== +-----END CERTIFICATE----- + +# Issuer: CN=Entrust.net Certification Authority (2048) O=Entrust.net OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited +# Subject: CN=Entrust.net Certification Authority (2048) O=Entrust.net OU=www.entrust.net/CPS_2048 incorp. by ref. (limits liab.)/(c) 1999 Entrust.net Limited +# Label: "Entrust.net Premium 2048 Secure Server CA" +# Serial: 946069240 +# MD5 Fingerprint: ee:29:31:bc:32:7e:9a:e6:e8:b5:f7:51:b4:34:71:90 +# SHA1 Fingerprint: 50:30:06:09:1d:97:d4:f5:ae:39:f7:cb:e7:92:7d:7d:65:2d:34:31 +# SHA256 Fingerprint: 6d:c4:71:72:e0:1c:bc:b0:bf:62:58:0d:89:5f:e2:b8:ac:9a:d4:f8:73:80:1e:0c:10:b9:c8:37:d2:1e:b1:77 +-----BEGIN CERTIFICATE----- +MIIEKjCCAxKgAwIBAgIEOGPe+DANBgkqhkiG9w0BAQUFADCBtDEUMBIGA1UEChML +RW50cnVzdC5uZXQxQDA+BgNVBAsUN3d3dy5lbnRydXN0Lm5ldC9DUFNfMjA0OCBp +bmNvcnAuIGJ5IHJlZi4gKGxpbWl0cyBsaWFiLikxJTAjBgNVBAsTHChjKSAxOTk5 +IEVudHJ1c3QubmV0IExpbWl0ZWQxMzAxBgNVBAMTKkVudHJ1c3QubmV0IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5ICgyMDQ4KTAeFw05OTEyMjQxNzUwNTFaFw0yOTA3 +MjQxNDE1MTJaMIG0MRQwEgYDVQQKEwtFbnRydXN0Lm5ldDFAMD4GA1UECxQ3d3d3 +LmVudHJ1c3QubmV0L0NQU18yMDQ4IGluY29ycC4gYnkgcmVmLiAobGltaXRzIGxp +YWIuKTElMCMGA1UECxMcKGMpIDE5OTkgRW50cnVzdC5uZXQgTGltaXRlZDEzMDEG +A1UEAxMqRW50cnVzdC5uZXQgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgKDIwNDgp +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEArU1LqRKGsuqjIAcVFmQq +K0vRvwtKTY7tgHalZ7d4QMBzQshowNtTK91euHaYNZOLGp18EzoOH1u3Hs/lJBQe +sYGpjX24zGtLA/ECDNyrpUAkAH90lKGdCCmziAv1h3edVc3kw37XamSrhRSGlVuX +MlBvPci6Zgzj/L24ScF2iUkZ/cCovYmjZy/Gn7xxGWC4LeksyZB2ZnuU4q941mVT +XTzWnLLPKQP5L6RQstRIzgUyVYr9smRMDuSYB3Xbf9+5CFVghTAp+XtIpGmG4zU/ +HoZdenoVve8AjhUiVBcAkCaTvA5JaJG/+EfTnZVCwQ5N328mz8MYIWJmQ3DW1cAH +4QIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNV +HQ4EFgQUVeSB0RGAvtiJuQijMfmhJAkWuXAwDQYJKoZIhvcNAQEFBQADggEBADub +j1abMOdTmXx6eadNl9cZlZD7Bh/KM3xGY4+WZiT6QBshJ8rmcnPyT/4xmf3IDExo +U8aAghOY+rat2l098c5u9hURlIIM7j+VrxGrD9cv3h8Dj1csHsm7mhpElesYT6Yf +zX1XEC+bBAlahLVu2B064dae0Wx5XnkcFMXj0EyTO2U87d89vqbllRrDtRnDvV5b +u/8j72gZyxKTJ1wDLW8w0B62GqzeWvfRqqgnpv55gcR5mTNXuhKwqeBCbJPKVt7+ +bYQLCIt+jerXmCHG8+c8eS9enNFMFY3h7CI3zJpDC5fcgJCNs2ebb0gIFVbPv/Er +fF6adulZkMV8gzURZVE= +-----END CERTIFICATE----- + +# Issuer: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust +# Subject: CN=Baltimore CyberTrust Root O=Baltimore OU=CyberTrust +# Label: "Baltimore CyberTrust Root" +# Serial: 33554617 +# MD5 Fingerprint: ac:b6:94:a5:9c:17:e0:d7:91:52:9b:b1:97:06:a6:e4 +# SHA1 Fingerprint: d4:de:20:d0:5e:66:fc:53:fe:1a:50:88:2c:78:db:28:52:ca:e4:74 +# SHA256 Fingerprint: 16:af:57:a9:f6:76:b0:ab:12:60:95:aa:5e:ba:de:f2:2a:b3:11:19:d6:44:ac:95:cd:4b:93:db:f3:f2:6a:eb +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIEAgAAuTANBgkqhkiG9w0BAQUFADBaMQswCQYDVQQGEwJJ +RTESMBAGA1UEChMJQmFsdGltb3JlMRMwEQYDVQQLEwpDeWJlclRydXN0MSIwIAYD +VQQDExlCYWx0aW1vcmUgQ3liZXJUcnVzdCBSb290MB4XDTAwMDUxMjE4NDYwMFoX +DTI1MDUxMjIzNTkwMFowWjELMAkGA1UEBhMCSUUxEjAQBgNVBAoTCUJhbHRpbW9y +ZTETMBEGA1UECxMKQ3liZXJUcnVzdDEiMCAGA1UEAxMZQmFsdGltb3JlIEN5YmVy +VHJ1c3QgUm9vdDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAKMEuyKr +mD1X6CZymrV51Cni4eiVgLGw41uOKymaZN+hXe2wCQVt2yguzmKiYv60iNoS6zjr +IZ3AQSsBUnuId9Mcj8e6uYi1agnnc+gRQKfRzMpijS3ljwumUNKoUMMo6vWrJYeK +mpYcqWe4PwzV9/lSEy/CG9VwcPCPwBLKBsua4dnKM3p31vjsufFoREJIE9LAwqSu +XmD+tqYF/LTdB1kC1FkYmGP1pWPgkAx9XbIGevOF6uvUA65ehD5f/xXtabz5OTZy +dc93Uk3zyZAsuT3lySNTPx8kmCFcB5kpvcY67Oduhjprl3RjM71oGDHweI12v/ye +jl0qhqdNkNwnGjkCAwEAAaNFMEMwHQYDVR0OBBYEFOWdWTCCR1jMrPoIVDaGezq1 +BE3wMBIGA1UdEwEB/wQIMAYBAf8CAQMwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3 +DQEBBQUAA4IBAQCFDF2O5G9RaEIFoN27TyclhAO992T9Ldcw46QQF+vaKSm2eT92 +9hkTI7gQCvlYpNRhcL0EYWoSihfVCr3FvDB81ukMJY2GQE/szKN+OMY3EU/t3Wgx +jkzSswF07r51XgdIGn9w/xZchMB5hbgF/X++ZRGjD8ACtPhSNzkE1akxehi/oCr0 +Epn3o0WC4zxe9Z2etciefC7IpJ5OCBRLbf1wbWsaY71k5h+3zvDyny67G7fyUIhz +ksLi4xaNmjICq44Y3ekQEe5+NauQrz4wlHrQMz2nZQ/1/I6eYs9HRCwBXbsdtTLS +R9I4LtD+gdwyah617jzV/OeBHRnDJELqYzmp +-----END CERTIFICATE----- + +# Issuer: CN=AddTrust External CA Root O=AddTrust AB OU=AddTrust External TTP Network +# Subject: CN=AddTrust External CA Root O=AddTrust AB OU=AddTrust External TTP Network +# Label: "AddTrust External Root" +# Serial: 1 +# MD5 Fingerprint: 1d:35:54:04:85:78:b0:3f:42:42:4d:bf:20:73:0a:3f +# SHA1 Fingerprint: 02:fa:f3:e2:91:43:54:68:60:78:57:69:4d:f5:e4:5b:68:85:18:68 +# SHA256 Fingerprint: 68:7f:a4:51:38:22:78:ff:f0:c8:b1:1f:8d:43:d5:76:67:1c:6e:b2:bc:ea:b4:13:fb:83:d9:65:d0:6d:2f:f2 +-----BEGIN CERTIFICATE----- +MIIENjCCAx6gAwIBAgIBATANBgkqhkiG9w0BAQUFADBvMQswCQYDVQQGEwJTRTEU +MBIGA1UEChMLQWRkVHJ1c3QgQUIxJjAkBgNVBAsTHUFkZFRydXN0IEV4dGVybmFs +IFRUUCBOZXR3b3JrMSIwIAYDVQQDExlBZGRUcnVzdCBFeHRlcm5hbCBDQSBSb290 +MB4XDTAwMDUzMDEwNDgzOFoXDTIwMDUzMDEwNDgzOFowbzELMAkGA1UEBhMCU0Ux +FDASBgNVBAoTC0FkZFRydXN0IEFCMSYwJAYDVQQLEx1BZGRUcnVzdCBFeHRlcm5h +bCBUVFAgTmV0d29yazEiMCAGA1UEAxMZQWRkVHJ1c3QgRXh0ZXJuYWwgQ0EgUm9v +dDCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALf3GjPm8gAELTngTlvt +H7xsD821+iO2zt6bETOXpClMfZOfvUq8k+0DGuOPz+VtUFrWlymUWoCwSXrbLpX9 +uMq/NzgtHj6RQa1wVsfwTz/oMp50ysiQVOnGXw94nZpAPA6sYapeFI+eh6FqUNzX +mk6vBbOmcZSccbNQYArHE504B4YCqOmoaSYYkKtMsE8jqzpPhNjfzp/haW+710LX +a0Tkx63ubUFfclpxCDezeWWkWaCUN/cALw3CknLa0Dhy2xSoRcRdKn23tNbE7qzN +E0S3ySvdQwAl+mG5aWpYIxG3pzOPVnVZ9c0p10a3CitlttNCbxWyuHv77+ldU9U0 +WicCAwEAAaOB3DCB2TAdBgNVHQ4EFgQUrb2YejS0Jvf6xCZU7wO94CTLVBowCwYD +VR0PBAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wgZkGA1UdIwSBkTCBjoAUrb2YejS0 +Jvf6xCZU7wO94CTLVBqhc6RxMG8xCzAJBgNVBAYTAlNFMRQwEgYDVQQKEwtBZGRU +cnVzdCBBQjEmMCQGA1UECxMdQWRkVHJ1c3QgRXh0ZXJuYWwgVFRQIE5ldHdvcmsx +IjAgBgNVBAMTGUFkZFRydXN0IEV4dGVybmFsIENBIFJvb3SCAQEwDQYJKoZIhvcN +AQEFBQADggEBALCb4IUlwtYj4g+WBpKdQZic2YR5gdkeWxQHIzZlj7DYd7usQWxH +YINRsPkyPef89iYTx4AWpb9a/IfPeHmJIZriTAcKhjW88t5RxNKWt9x+Tu5w/Rw5 +6wwCURQtjr0W4MHfRnXnJK3s9EK0hZNwEGe6nQY1ShjTK3rMUUKhemPR5ruhxSvC +Nr4TDea9Y355e6cJDUCrat2PisP29owaQgVR1EX1n6diIWgVIEM8med8vSTYqZEX +c4g/VhsxOBi0cQ+azcgOno4uG+GMmIPLHzHxREzGBHNJdmAPx/i9F4BrLunMTA5a +mnkPIAou1Z5jJh5VkpTYghdae9C8x49OhgQ= +-----END CERTIFICATE----- + +# Issuer: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc. +# Subject: CN=Entrust Root Certification Authority O=Entrust, Inc. OU=www.entrust.net/CPS is incorporated by reference/(c) 2006 Entrust, Inc. +# Label: "Entrust Root Certification Authority" +# Serial: 1164660820 +# MD5 Fingerprint: d6:a5:c3:ed:5d:dd:3e:00:c1:3d:87:92:1f:1d:3f:e4 +# SHA1 Fingerprint: b3:1e:b1:b7:40:e3:6c:84:02:da:dc:37:d4:4d:f5:d4:67:49:52:f9 +# SHA256 Fingerprint: 73:c1:76:43:4f:1b:c6:d5:ad:f4:5b:0e:76:e7:27:28:7c:8d:e5:76:16:c1:e6:e6:14:1a:2b:2c:bc:7d:8e:4c +-----BEGIN CERTIFICATE----- +MIIEkTCCA3mgAwIBAgIERWtQVDANBgkqhkiG9w0BAQUFADCBsDELMAkGA1UEBhMC +VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xOTA3BgNVBAsTMHd3dy5lbnRydXN0 +Lm5ldC9DUFMgaXMgaW5jb3Jwb3JhdGVkIGJ5IHJlZmVyZW5jZTEfMB0GA1UECxMW +KGMpIDIwMDYgRW50cnVzdCwgSW5jLjEtMCsGA1UEAxMkRW50cnVzdCBSb290IENl +cnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA2MTEyNzIwMjM0MloXDTI2MTEyNzIw +NTM0MlowgbAxCzAJBgNVBAYTAlVTMRYwFAYDVQQKEw1FbnRydXN0LCBJbmMuMTkw +NwYDVQQLEzB3d3cuZW50cnVzdC5uZXQvQ1BTIGlzIGluY29ycG9yYXRlZCBieSBy +ZWZlcmVuY2UxHzAdBgNVBAsTFihjKSAyMDA2IEVudHJ1c3QsIEluYy4xLTArBgNV +BAMTJEVudHJ1c3QgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASIwDQYJ +KoZIhvcNAQEBBQADggEPADCCAQoCggEBALaVtkNC+sZtKm9I35RMOVcF7sN5EUFo +Nu3s/poBj6E4KPz3EEZmLk0eGrEaTsbRwJWIsMn/MYszA9u3g3s+IIRe7bJWKKf4 +4LlAcTfFy0cOlypowCKVYhXbR9n10Cv/gkvJrT7eTNuQgFA/CYqEAOwwCj0Yzfv9 +KlmaI5UXLEWeH25DeW0MXJj+SKfFI0dcXv1u5x609mhF0YaDW6KKjbHjKYD+JXGI +rb68j6xSlkuqUY3kEzEZ6E5Nn9uss2rVvDlUccp6en+Q3X0dgNmBu1kmwhH+5pPi +94DkZfs0Nw4pgHBNrziGLp5/V6+eF67rHMsoIV+2HNjnogQi+dPa2MsCAwEAAaOB +sDCBrTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zArBgNVHRAEJDAi +gA8yMDA2MTEyNzIwMjM0MlqBDzIwMjYxMTI3MjA1MzQyWjAfBgNVHSMEGDAWgBRo +kORnpKZTgMeGZqTx90tD+4S9bTAdBgNVHQ4EFgQUaJDkZ6SmU4DHhmak8fdLQ/uE +vW0wHQYJKoZIhvZ9B0EABBAwDhsIVjcuMTo0LjADAgSQMA0GCSqGSIb3DQEBBQUA +A4IBAQCT1DCw1wMgKtD5Y+iRDAUgqV8ZyntyTtSx29CW+1RaGSwMCPeyvIWonX9t +O1KzKtvn1ISMY/YPyyYBkVBs9F8U4pN0wBOeMDpQ47RgxRzwIkSNcUesyBrJ6Zua +AGAT/3B+XxFNSRuzFVJ7yVTav52Vr2ua2J7p8eRDjeIRRDq/r72DQnNSi6q7pynP +9WQcCk3RvKqsnyrQ/39/2n3qse0wJcGE2jTSW3iDVuycNsMm4hH2Z0kdkquM++v/ +eu6FSqdQgPCnXEqULl8FmTxSQeDNtGPPAUO6nIPcj2A781q0tHuu2guQOHXvgR1m +0vdXcDazv/wor3ElhVsT/h5/WrQ8 +-----END CERTIFICATE----- + +# Issuer: CN=GeoTrust Global CA O=GeoTrust Inc. +# Subject: CN=GeoTrust Global CA O=GeoTrust Inc. +# Label: "GeoTrust Global CA" +# Serial: 144470 +# MD5 Fingerprint: f7:75:ab:29:fb:51:4e:b7:77:5e:ff:05:3c:99:8e:f5 +# SHA1 Fingerprint: de:28:f4:a4:ff:e5:b9:2f:a3:c5:03:d1:a3:49:a7:f9:96:2a:82:12 +# SHA256 Fingerprint: ff:85:6a:2d:25:1d:cd:88:d3:66:56:f4:50:12:67:98:cf:ab:aa:de:40:79:9c:72:2d:e4:d2:b5:db:36:a7:3a +-----BEGIN CERTIFICATE----- +MIIDVDCCAjygAwIBAgIDAjRWMA0GCSqGSIb3DQEBBQUAMEIxCzAJBgNVBAYTAlVT +MRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMRswGQYDVQQDExJHZW9UcnVzdCBHbG9i +YWwgQ0EwHhcNMDIwNTIxMDQwMDAwWhcNMjIwNTIxMDQwMDAwWjBCMQswCQYDVQQG +EwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEbMBkGA1UEAxMSR2VvVHJ1c3Qg +R2xvYmFsIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2swYYzD9 +9BcjGlZ+W988bDjkcbd4kdS8odhM+KhDtgPpTSEHCIjaWC9mOSm9BXiLnTjoBbdq +fnGk5sRgprDvgOSJKA+eJdbtg/OtppHHmMlCGDUUna2YRpIuT8rxh0PBFpVXLVDv +iS2Aelet8u5fa9IAjbkU+BQVNdnARqN7csiRv8lVK83Qlz6cJmTM386DGXHKTubU +1XupGc1V3sjs0l44U+VcT4wt/lAjNvxm5suOpDkZALeVAjmRCw7+OC7RHQWa9k0+ +bw8HHa8sHo9gOeL6NlMTOdReJivbPagUvTLrGAMoUgRx5aszPeE4uwc2hGKceeoW +MPRfwCvocWvk+QIDAQABo1MwUTAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTA +ephojYn7qwVkDBF9qn1luMrMTjAfBgNVHSMEGDAWgBTAephojYn7qwVkDBF9qn1l +uMrMTjANBgkqhkiG9w0BAQUFAAOCAQEANeMpauUvXVSOKVCUn5kaFOSPeCpilKIn +Z57QzxpeR+nBsqTP3UEaBU6bS+5Kb1VSsyShNwrrZHYqLizz/Tt1kL/6cdjHPTfS +tQWVYrmm3ok9Nns4d0iXrKYgjy6myQzCsplFAMfOEVEiIuCl6rYVSAlk6l5PdPcF +PseKUgzbFbS9bZvlxrFUaKnjaZC2mqUPuLk/IH2uSrW4nOQdtqvmlKXBx4Ot2/Un +hw4EbNX/3aBd7YdStysVAq45pmp06drE57xNNB6pXE0zX5IJL4hmXXeXxx12E6nV +5fEWCRE11azbJHFwLJhWC9kXtNHjUStedejV0NxPNO3CBWaAocvmMw== +-----END CERTIFICATE----- + +# Issuer: CN=GeoTrust Universal CA O=GeoTrust Inc. +# Subject: CN=GeoTrust Universal CA O=GeoTrust Inc. +# Label: "GeoTrust Universal CA" +# Serial: 1 +# MD5 Fingerprint: 92:65:58:8b:a2:1a:31:72:73:68:5c:b4:a5:7a:07:48 +# SHA1 Fingerprint: e6:21:f3:35:43:79:05:9a:4b:68:30:9d:8a:2f:74:22:15:87:ec:79 +# SHA256 Fingerprint: a0:45:9b:9f:63:b2:25:59:f5:fa:5d:4c:6d:b3:f9:f7:2f:f1:93:42:03:35:78:f0:73:bf:1d:1b:46:cb:b9:12 +-----BEGIN CERTIFICATE----- +MIIFaDCCA1CgAwIBAgIBATANBgkqhkiG9w0BAQUFADBFMQswCQYDVQQGEwJVUzEW +MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEeMBwGA1UEAxMVR2VvVHJ1c3QgVW5pdmVy +c2FsIENBMB4XDTA0MDMwNDA1MDAwMFoXDTI5MDMwNDA1MDAwMFowRTELMAkGA1UE +BhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xHjAcBgNVBAMTFUdlb1RydXN0 +IFVuaXZlcnNhbCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAKYV +VaCjxuAfjJ0hUNfBvitbtaSeodlyWL0AG0y/YckUHUWCq8YdgNY96xCcOq9tJPi8 +cQGeBvV8Xx7BDlXKg5pZMK4ZyzBIle0iN430SppyZj6tlcDgFgDgEB8rMQ7XlFTT +QjOgNB0eRXbdT8oYN+yFFXoZCPzVx5zw8qkuEKmS5j1YPakWaDwvdSEYfyh3peFh +F7em6fgemdtzbvQKoiFs7tqqhZJmr/Z6a4LauiIINQ/PQvE1+mrufislzDoR5G2v +c7J2Ha3QsnhnGqQ5HFELZ1aD/ThdDc7d8Lsrlh/eezJS/R27tQahsiFepdaVaH/w +mZ7cRQg+59IJDTWU3YBOU5fXtQlEIGQWFwMCTFMNaN7VqnJNk22CDtucvc+081xd +VHppCZbW2xHBjXWotM85yM48vCR85mLK4b19p71XZQvk/iXttmkQ3CgaRr0BHdCX +teGYO8A3ZNY9lO4L4fUorgtWv3GLIylBjobFS1J72HGrH4oVpjuDWtdYAVHGTEHZ +f9hBZ3KiKN9gg6meyHv8U3NyWfWTehd2Ds735VzZC1U0oqpbtWpU5xPKV+yXbfRe +Bi9Fi1jUIxaS5BZuKGNZMN9QAZxjiRqf2xeUgnA3wySemkfWWspOqGmJch+RbNt+ +nhutxx9z3SxPGWX9f5NAEC7S8O08ni4oPmkmM8V7AgMBAAGjYzBhMA8GA1UdEwEB +/wQFMAMBAf8wHQYDVR0OBBYEFNq7LqqwDLiIJlF0XG0D08DYj3rWMB8GA1UdIwQY +MBaAFNq7LqqwDLiIJlF0XG0D08DYj3rWMA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG +9w0BAQUFAAOCAgEAMXjmx7XfuJRAyXHEqDXsRh3ChfMoWIawC/yOsjmPRFWrZIRc +aanQmjg8+uUfNeVE44B5lGiku8SfPeE0zTBGi1QrlaXv9z+ZhP015s8xxtxqv6fX +IwjhmF7DWgh2qaavdy+3YL1ERmrvl/9zlcGO6JP7/TG37FcREUWbMPEaiDnBTzyn +ANXH/KttgCJwpQzgXQQpAvvLoJHRfNbDflDVnVi+QTjruXU8FdmbyUqDWcDaU/0z +uzYYm4UPFd3uLax2k7nZAY1IEKj79TiG8dsKxr2EoyNB3tZ3b4XUhRxQ4K5RirqN +Pnbiucon8l+f725ZDQbYKxek0nxru18UGkiPGkzns0ccjkxFKyDuSN/n3QmOGKja +QI2SJhFTYXNd673nxE0pN2HrrDktZy4W1vUAg4WhzH92xH3kt0tm7wNFYGm2DFKW +koRepqO1pD4r2czYG0eq8kTaT/kD6PAUyz/zg97QwVTjt+gKN02LIFkDMBmhLMi9 +ER/frslKxfMnZmaGrGiR/9nmUxwPi1xpZQomyB40w11Re9epnAahNt3ViZS82eQt +DF4JbAiXfKM9fJP/P6EUp8+1Xevb2xzEdt+Iub1FBZUbrvxGakyvSOPOrg/Sfuvm +bJxPgWp6ZKy7PtXny3YuxadIwVyQD8vIP/rmMuGNG2+k5o7Y+SlIis5z/iw= +-----END CERTIFICATE----- + +# Issuer: CN=GeoTrust Universal CA 2 O=GeoTrust Inc. +# Subject: CN=GeoTrust Universal CA 2 O=GeoTrust Inc. +# Label: "GeoTrust Universal CA 2" +# Serial: 1 +# MD5 Fingerprint: 34:fc:b8:d0:36:db:9e:14:b3:c2:f2:db:8f:e4:94:c7 +# SHA1 Fingerprint: 37:9a:19:7b:41:85:45:35:0c:a6:03:69:f3:3c:2e:af:47:4f:20:79 +# SHA256 Fingerprint: a0:23:4f:3b:c8:52:7c:a5:62:8e:ec:81:ad:5d:69:89:5d:a5:68:0d:c9:1d:1c:b8:47:7f:33:f8:78:b9:5b:0b +-----BEGIN CERTIFICATE----- +MIIFbDCCA1SgAwIBAgIBATANBgkqhkiG9w0BAQUFADBHMQswCQYDVQQGEwJVUzEW +MBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1c3QgVW5pdmVy +c2FsIENBIDIwHhcNMDQwMzA0MDUwMDAwWhcNMjkwMzA0MDUwMDAwWjBHMQswCQYD +VQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjEgMB4GA1UEAxMXR2VvVHJ1 +c3QgVW5pdmVyc2FsIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +AQCzVFLByT7y2dyxUxpZKeexw0Uo5dfR7cXFS6GqdHtXr0om/Nj1XqduGdt0DE81 +WzILAePb63p3NeqqWuDW6KFXlPCQo3RWlEQwAx5cTiuFJnSCegx2oG9NzkEtoBUG +FF+3Qs17j1hhNNwqCPkuwwGmIkQcTAeC5lvO0Ep8BNMZcyfwqph/Lq9O64ceJHdq +XbboW0W63MOhBW9Wjo8QJqVJwy7XQYci4E+GymC16qFjwAGXEHm9ADwSbSsVsaxL +se4YuU6W3Nx2/zu+z18DwPw76L5GG//aQMJS9/7jOvdqdzXQ2o3rXhhqMcceujwb +KNZrVMaqW9eiLBsZzKIC9ptZvTdrhrVtgrrY6slWvKk2WP0+GfPtDCapkzj4T8Fd +IgbQl+rhrcZV4IErKIM6+vR7IVEAvlI4zs1meaj0gVbi0IMJR1FbUGrP20gaXT73 +y/Zl92zxlfgCOzJWgjl6W70viRu/obTo/3+NjN8D8WBOWBFM66M/ECuDmgFz2ZRt +hAAnZqzwcEAJQpKtT5MNYQlRJNiS1QuUYbKHsu3/mjX/hVTK7URDrBs8FmtISgoc +QIgfksILAAX/8sgCSqSqqcyZlpwvWOB94b67B9xfBHJcMTTD7F8t4D1kkCLm0ey4 +Lt1ZrtmhN79UNdxzMk+MBB4zsslG8dhcyFVQyWi9qLo2CQIDAQABo2MwYTAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAfBgNV +HSMEGDAWgBR281Xh+qQ2+/CfXGJx7Tz0RzgQKzAOBgNVHQ8BAf8EBAMCAYYwDQYJ +KoZIhvcNAQEFBQADggIBAGbBxiPz2eAubl/oz66wsCVNK/g7WJtAJDday6sWSf+z +dXkzoS9tcBc0kf5nfo/sm+VegqlVHy/c1FEHEv6sFj4sNcZj/NwQ6w2jqtB8zNHQ +L1EuxBRa3ugZ4T7GzKQp5y6EqgYweHZUcyiYWTjgAA1i00J9IZ+uPTqM1fp3DRgr +Fg5fNuH8KrUwJM/gYwx7WBr+mbpCErGR9Hxo4sjoryzqyX6uuyo9DRXcNJW2GHSo +ag/HtPQTxORb7QrSpJdMKu0vbBKJPfEncKpqA1Ihn0CoZ1Dy81of398j9tx4TuaY +T1U6U+Pv8vSfx3zYWK8pIpe44L2RLrB27FcRz+8pRPPphXpgY+RdM4kX2TGq2tbz +GDVyz4crL2MjhF2EjD9XoIj8mZEoJmmZ1I+XRL6O1UixpCgp8RW04eWe3fiPpm8m +1wk8OhwRDqZsN/etRIcsKMfYdIKz0G9KV7s1KSegi+ghp4dkNl3M2Basx7InQJJV +OCiNUW7dFGdTbHFcJoRNdVq2fmBWqU2t+5sel/MN2dKXVHfaPRK34B7vCAas+YWH +6aLcr34YEoP9VhdBLtUpgn2Z9DH2canPLAEnpQW5qrJITirvn5NSUZU8UnOOVkwX +QMAJKOSLakhT2+zNVVXxxvjpoixMptEmX36vWkzaH6byHCx+rgIW0lbQL1dTR+iS +-----END CERTIFICATE----- + +# Issuer: CN=Visa eCommerce Root O=VISA OU=Visa International Service Association +# Subject: CN=Visa eCommerce Root O=VISA OU=Visa International Service Association +# Label: "Visa eCommerce Root" +# Serial: 25952180776285836048024890241505565794 +# MD5 Fingerprint: fc:11:b8:d8:08:93:30:00:6d:23:f9:7e:eb:52:1e:02 +# SHA1 Fingerprint: 70:17:9b:86:8c:00:a4:fa:60:91:52:22:3f:9f:3e:32:bd:e0:05:62 +# SHA256 Fingerprint: 69:fa:c9:bd:55:fb:0a:c7:8d:53:bb:ee:5c:f1:d5:97:98:9f:d0:aa:ab:20:a2:51:51:bd:f1:73:3e:e7:d1:22 +-----BEGIN CERTIFICATE----- +MIIDojCCAoqgAwIBAgIQE4Y1TR0/BvLB+WUF1ZAcYjANBgkqhkiG9w0BAQUFADBr +MQswCQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRl +cm5hdGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNv +bW1lcmNlIFJvb3QwHhcNMDIwNjI2MDIxODM2WhcNMjIwNjI0MDAxNjEyWjBrMQsw +CQYDVQQGEwJVUzENMAsGA1UEChMEVklTQTEvMC0GA1UECxMmVmlzYSBJbnRlcm5h +dGlvbmFsIFNlcnZpY2UgQXNzb2NpYXRpb24xHDAaBgNVBAMTE1Zpc2EgZUNvbW1l +cmNlIFJvb3QwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvV95WHm6h +2mCxlCfLF9sHP4CFT8icttD0b0/Pmdjh28JIXDqsOTPHH2qLJj0rNfVIsZHBAk4E +lpF7sDPwsRROEW+1QK8bRaVK7362rPKgH1g/EkZgPI2h4H3PVz4zHvtH8aoVlwdV +ZqW1LS7YgFmypw23RuwhY/81q6UCzyr0TP579ZRdhE2o8mCP2w4lPJ9zcc+U30rq +299yOIzzlr3xF7zSujtFWsan9sYXiwGd/BmoKoMWuDpI/k4+oKsGGelT84ATB+0t +vz8KPFUgOSwsAGl0lUq8ILKpeeUYiZGo3BxN77t+Nwtd/jmliFKMAGzsGHxBvfaL +dXe6YJ2E5/4tAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMB0GA1UdDgQWBBQVOIMPPyw/cDMezUb+B4wg4NfDtzANBgkqhkiG9w0BAQUF +AAOCAQEAX/FBfXxcCLkr4NWSR/pnXKUTwwMhmytMiUbPWU3J/qVAtmPN3XEolWcR +zCSs00Rsca4BIGsDoo8Ytyk6feUWYFN4PMCvFYP3j1IzJL1kk5fui/fbGKhtcbP3 +LBfQdCVp9/5rPJS+TUtBjE7ic9DjkCJzQ83z7+pzzkWKsKZJ/0x9nXGIxHYdkFsd +7v3M9+79YKWxehZx0RbQfBI8bGmX265fOZpwLwU8GUYEmSA20GBuYQa7FkKMcPcw +++DbZqMAAb3mLNqRX6BGi01qnD093QVG/na/oAo85ADmJ7f/hC3euiInlhBx6yLt +398znM/jra6O1I7mT1GvFpLgXPYHDw== +-----END CERTIFICATE----- + +# Issuer: CN=AAA Certificate Services O=Comodo CA Limited +# Subject: CN=AAA Certificate Services O=Comodo CA Limited +# Label: "Comodo AAA Services root" +# Serial: 1 +# MD5 Fingerprint: 49:79:04:b0:eb:87:19:ac:47:b0:bc:11:51:9b:74:d0 +# SHA1 Fingerprint: d1:eb:23:a4:6d:17:d6:8f:d9:25:64:c2:f1:f1:60:17:64:d8:e3:49 +# SHA256 Fingerprint: d7:a7:a0:fb:5d:7e:27:31:d7:71:e9:48:4e:bc:de:f7:1d:5f:0c:3e:0a:29:48:78:2b:c8:3e:e0:ea:69:9e:f4 +-----BEGIN CERTIFICATE----- +MIIEMjCCAxqgAwIBAgIBATANBgkqhkiG9w0BAQUFADB7MQswCQYDVQQGEwJHQjEb +MBkGA1UECAwSR3JlYXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHDAdTYWxmb3JkMRow +GAYDVQQKDBFDb21vZG8gQ0EgTGltaXRlZDEhMB8GA1UEAwwYQUFBIENlcnRpZmlj +YXRlIFNlcnZpY2VzMB4XDTA0MDEwMTAwMDAwMFoXDTI4MTIzMTIzNTk1OVowezEL +MAkGA1UEBhMCR0IxGzAZBgNVBAgMEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE +BwwHU2FsZm9yZDEaMBgGA1UECgwRQ29tb2RvIENBIExpbWl0ZWQxITAfBgNVBAMM +GEFBQSBDZXJ0aWZpY2F0ZSBTZXJ2aWNlczCCASIwDQYJKoZIhvcNAQEBBQADggEP +ADCCAQoCggEBAL5AnfRu4ep2hxxNRUSOvkbIgwadwSr+GB+O5AL686tdUIoWMQua +BtDFcCLNSS1UY8y2bmhGC1Pqy0wkwLxyTurxFa70VJoSCsN6sjNg4tqJVfMiWPPe +3M/vg4aijJRPn2jymJBGhCfHdr/jzDUsi14HZGWCwEiwqJH5YZ92IFCokcdmtet4 +YgNW8IoaE+oxox6gmf049vYnMlhvB/VruPsUK6+3qszWY19zjNoFmag4qMsXeDZR +rOme9Hg6jc8P2ULimAyrL58OAd7vn5lJ8S3frHRNG5i1R8XlKdH5kBjHYpy+g8cm +ez6KJcfA3Z3mNWgQIJ2P2N7Sw4ScDV7oL8kCAwEAAaOBwDCBvTAdBgNVHQ4EFgQU +oBEKIz6W8Qfs4q8p74Klf9AwpLQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQF +MAMBAf8wewYDVR0fBHQwcjA4oDagNIYyaHR0cDovL2NybC5jb21vZG9jYS5jb20v +QUFBQ2VydGlmaWNhdGVTZXJ2aWNlcy5jcmwwNqA0oDKGMGh0dHA6Ly9jcmwuY29t +b2RvLm5ldC9BQUFDZXJ0aWZpY2F0ZVNlcnZpY2VzLmNybDANBgkqhkiG9w0BAQUF +AAOCAQEACFb8AvCb6P+k+tZ7xkSAzk/ExfYAWMymtrwUSWgEdujm7l3sAg9g1o1Q +GE8mTgHj5rCl7r+8dFRBv/38ErjHT1r0iWAFf2C3BUrz9vHCv8S5dIa2LX1rzNLz +Rt0vxuBqw8M0Ayx9lt1awg6nCpnBBYurDC/zXDrPbDdVCYfeU0BsWO/8tqtlbgT2 +G9w84FoVxp7Z8VlIMCFlA2zs6SFz7JsDoeA3raAVGI/6ugLOpyypEBMs1OUIJqsi +l2D4kF501KKaU73yqWjgom7C12yxow+ev+to51byrvLjKzg6CYG1a4XXvi3tPxq3 +smPi9WIsgtRqAEFQ8TmDn5XpNpaYbg== +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root Certification Authority O=QuoVadis Limited OU=Root Certification Authority +# Subject: CN=QuoVadis Root Certification Authority O=QuoVadis Limited OU=Root Certification Authority +# Label: "QuoVadis Root CA" +# Serial: 985026699 +# MD5 Fingerprint: 27:de:36:fe:72:b7:00:03:00:9d:f4:f0:1e:6c:04:24 +# SHA1 Fingerprint: de:3f:40:bd:50:93:d3:9b:6c:60:f6:da:bc:07:62:01:00:89:76:c9 +# SHA256 Fingerprint: a4:5e:de:3b:bb:f0:9c:8a:e1:5c:72:ef:c0:72:68:d6:93:a2:1c:99:6f:d5:1e:67:ca:07:94:60:fd:6d:88:73 +-----BEGIN CERTIFICATE----- +MIIF0DCCBLigAwIBAgIEOrZQizANBgkqhkiG9w0BAQUFADB/MQswCQYDVQQGEwJC +TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDElMCMGA1UECxMcUm9vdCBDZXJ0 +aWZpY2F0aW9uIEF1dGhvcml0eTEuMCwGA1UEAxMlUXVvVmFkaXMgUm9vdCBDZXJ0 +aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wMTAzMTkxODMzMzNaFw0yMTAzMTcxODMz +MzNaMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMSUw +IwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYDVQQDEyVR +dW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEAv2G1lVO6V/z68mcLOhrfEYBklbTRvM16z/Yp +li4kVEAkOPcahdxYTMukJ0KX0J+DisPkBgNbAKVRHnAEdOLB1Dqr1607BxgFjv2D +rOpm2RgbaIr1VxqYuvXtdj182d6UajtLF8HVj71lODqV0D1VNk7feVcxKh7YWWVJ +WCCYfqtffp/p1k3sg3Spx2zY7ilKhSoGFPlU5tPaZQeLYzcS19Dsw3sgQUSj7cug +F+FxZc4dZjH3dgEZyH0DWLaVSR2mEiboxgx24ONmy+pdpibu5cxfvWenAScOospU +xbF6lR1xHkopigPcakXBpBlebzbNw6Kwt/5cOOJSvPhEQ+aQuwIDAQABo4ICUjCC +Ak4wPQYIKwYBBQUHAQEEMTAvMC0GCCsGAQUFBzABhiFodHRwczovL29jc3AucXVv +dmFkaXNvZmZzaG9yZS5jb20wDwYDVR0TAQH/BAUwAwEB/zCCARoGA1UdIASCAREw +ggENMIIBCQYJKwYBBAG+WAABMIH7MIHUBggrBgEFBQcCAjCBxxqBxFJlbGlhbmNl +IG9uIHRoZSBRdW9WYWRpcyBSb290IENlcnRpZmljYXRlIGJ5IGFueSBwYXJ0eSBh +c3N1bWVzIGFjY2VwdGFuY2Ugb2YgdGhlIHRoZW4gYXBwbGljYWJsZSBzdGFuZGFy +ZCB0ZXJtcyBhbmQgY29uZGl0aW9ucyBvZiB1c2UsIGNlcnRpZmljYXRpb24gcHJh +Y3RpY2VzLCBhbmQgdGhlIFF1b1ZhZGlzIENlcnRpZmljYXRlIFBvbGljeS4wIgYI +KwYBBQUHAgEWFmh0dHA6Ly93d3cucXVvdmFkaXMuYm0wHQYDVR0OBBYEFItLbe3T +KbkGGew5Oanwl4Rqy+/fMIGuBgNVHSMEgaYwgaOAFItLbe3TKbkGGew5Oanwl4Rq +y+/foYGEpIGBMH8xCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1p +dGVkMSUwIwYDVQQLExxSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MS4wLAYD +VQQDEyVRdW9WYWRpcyBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggQ6tlCL +MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOCAQEAitQUtf70mpKnGdSk +fnIYj9lofFIk3WdvOXrEql494liwTXCYhGHoG+NpGA7O+0dQoE7/8CQfvbLO9Sf8 +7C9TqnN7Az10buYWnuulLsS/VidQK2K6vkscPFVcQR0kvoIgR13VRH56FmjffU1R +cHhXHTMe/QKZnAzNCgVPx7uOpHX6Sm2xgI4JVrmcGmD+XcHXetwReNDWXcG31a0y +mQM6isxUJTkxgXsTIlG6Rmyhu576BGxJJnSP0nPrzDCi5upZIof4l/UO/erMkqQW +xFIY6iHOsfHmhIHluqmGKPJDWl0Snawe2ajlCmqnf6CHKc/yiU3U7MXi5nrQNiOK +SnQ2+Q== +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root CA 2 O=QuoVadis Limited +# Subject: CN=QuoVadis Root CA 2 O=QuoVadis Limited +# Label: "QuoVadis Root CA 2" +# Serial: 1289 +# MD5 Fingerprint: 5e:39:7b:dd:f8:ba:ec:82:e9:ac:62:ba:0c:54:00:2b +# SHA1 Fingerprint: ca:3a:fb:cf:12:40:36:4b:44:b2:16:20:88:80:48:39:19:93:7c:f7 +# SHA256 Fingerprint: 85:a0:dd:7d:d7:20:ad:b7:ff:05:f8:3d:54:2b:20:9d:c7:ff:45:28:f7:d6:77:b1:83:89:fe:a5:e5:c4:9e:86 +-----BEGIN CERTIFICATE----- +MIIFtzCCA5+gAwIBAgICBQkwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x +GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv +b3QgQ0EgMjAeFw0wNjExMjQxODI3MDBaFw0zMTExMjQxODIzMzNaMEUxCzAJBgNV +BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W +YWRpcyBSb290IENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCa +GMpLlA0ALa8DKYrwD4HIrkwZhR0In6spRIXzL4GtMh6QRr+jhiYaHv5+HBg6XJxg +Fyo6dIMzMH1hVBHL7avg5tKifvVrbxi3Cgst/ek+7wrGsxDp3MJGF/hd/aTa/55J +WpzmM+Yklvc/ulsrHHo1wtZn/qtmUIttKGAr79dgw8eTvI02kfN/+NsRE8Scd3bB +rrcCaoF6qUWD4gXmuVbBlDePSHFjIuwXZQeVikvfj8ZaCuWw419eaxGrDPmF60Tp ++ARz8un+XJiM9XOva7R+zdRcAitMOeGylZUtQofX1bOQQ7dsE/He3fbE+Ik/0XX1 +ksOR1YqI0JDs3G3eicJlcZaLDQP9nL9bFqyS2+r+eXyt66/3FsvbzSUr5R/7mp/i +Ucw6UwxI5g69ybR2BlLmEROFcmMDBOAENisgGQLodKcftslWZvB1JdxnwQ5hYIiz +PtGo/KPaHbDRsSNU30R2be1B2MGyIrZTHN81Hdyhdyox5C315eXbyOD/5YDXC2Og +/zOhD7osFRXql7PSorW+8oyWHhqPHWykYTe5hnMz15eWniN9gqRMgeKh0bpnX5UH +oycR7hYQe7xFSkyyBNKr79X9DFHOUGoIMfmR2gyPZFwDwzqLID9ujWc9Otb+fVuI +yV77zGHcizN300QyNQliBJIWENieJ0f7OyHj+OsdWwIDAQABo4GwMIGtMA8GA1Ud +EwEB/wQFMAMBAf8wCwYDVR0PBAQDAgEGMB0GA1UdDgQWBBQahGK8SEwzJQTU7tD2 +A8QZRtGUazBuBgNVHSMEZzBlgBQahGK8SEwzJQTU7tD2A8QZRtGUa6FJpEcwRTEL +MAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMT +ElF1b1ZhZGlzIFJvb3QgQ0EgMoICBQkwDQYJKoZIhvcNAQEFBQADggIBAD4KFk2f +BluornFdLwUvZ+YTRYPENvbzwCYMDbVHZF34tHLJRqUDGCdViXh9duqWNIAXINzn +g/iN/Ae42l9NLmeyhP3ZRPx3UIHmfLTJDQtyU/h2BwdBR5YM++CCJpNVjP4iH2Bl +fF/nJrP3MpCYUNQ3cVX2kiF495V5+vgtJodmVjB3pjd4M1IQWK4/YY7yarHvGH5K +WWPKjaJW1acvvFYfzznB4vsKqBUsfU16Y8Zsl0Q80m/DShcK+JDSV6IZUaUtl0Ha +B0+pUNqQjZRG4T7wlP0QADj1O+hA4bRuVhogzG9Yje0uRY/W6ZM/57Es3zrWIozc +hLsib9D45MY56QSIPMO661V6bYCZJPVsAfv4l7CUW+v90m/xd2gNNWQjrLhVoQPR +TUIZ3Ph1WVaj+ahJefivDrkRoHy3au000LYmYjgahwz46P0u05B/B5EqHdZ+XIWD +mbA4CD/pXvk1B+TJYm5Xf6dQlfe6yJvmjqIBxdZmv3lh8zwc4bmCXF2gw+nYSL0Z +ohEUGW6yhhtoPkg3Goi3XZZenMfvJ2II4pEZXNLxId26F0KCl3GBUzGpn/Z9Yr9y +4aOTHcyKJloJONDO1w2AFrR4pTqHTI2KpdVGl/IsELm8VCLAAVBpQ570su9t+Oza +8eOx79+Rj1QqCyXBJhnEUhAFZdWCEOrCMc0u +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root CA 3 O=QuoVadis Limited +# Subject: CN=QuoVadis Root CA 3 O=QuoVadis Limited +# Label: "QuoVadis Root CA 3" +# Serial: 1478 +# MD5 Fingerprint: 31:85:3c:62:94:97:63:b9:aa:fd:89:4e:af:6f:e0:cf +# SHA1 Fingerprint: 1f:49:14:f7:d8:74:95:1d:dd:ae:02:c0:be:fd:3a:2d:82:75:51:85 +# SHA256 Fingerprint: 18:f1:fc:7f:20:5d:f8:ad:dd:eb:7f:e0:07:dd:57:e3:af:37:5a:9c:4d:8d:73:54:6b:f4:f1:fe:d1:e1:8d:35 +-----BEGIN CERTIFICATE----- +MIIGnTCCBIWgAwIBAgICBcYwDQYJKoZIhvcNAQEFBQAwRTELMAkGA1UEBhMCQk0x +GTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxGzAZBgNVBAMTElF1b1ZhZGlzIFJv +b3QgQ0EgMzAeFw0wNjExMjQxOTExMjNaFw0zMTExMjQxOTA2NDRaMEUxCzAJBgNV +BAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBMaW1pdGVkMRswGQYDVQQDExJRdW9W +YWRpcyBSb290IENBIDMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDM +V0IWVJzmmNPTTe7+7cefQzlKZbPoFog02w1ZkXTPkrgEQK0CSzGrvI2RaNggDhoB +4hp7Thdd4oq3P5kazethq8Jlph+3t723j/z9cI8LoGe+AaJZz3HmDyl2/7FWeUUr +H556VOijKTVopAFPD6QuN+8bv+OPEKhyq1hX51SGyMnzW9os2l2ObjyjPtr7guXd +8lyyBTNvijbO0BNO/79KDDRMpsMhvVAEVeuxu537RR5kFd5VAYwCdrXLoT9Cabwv +vWhDFlaJKjdhkf2mrk7AyxRllDdLkgbvBNDInIjbC3uBr7E9KsRlOni27tyAsdLT +mZw67mtaa7ONt9XOnMK+pUsvFrGeaDsGb659n/je7Mwpp5ijJUMv7/FfJuGITfhe +btfZFG4ZM2mnO4SJk8RTVROhUXhA+LjJou57ulJCg54U7QVSWllWp5f8nT8KKdjc +T5EOE7zelaTfi5m+rJsziO+1ga8bxiJTyPbH7pcUsMV8eFLI8M5ud2CEpukqdiDt +WAEXMJPpGovgc2PZapKUSU60rUqFxKMiMPwJ7Wgic6aIDFUhWMXhOp8q3crhkODZ +c6tsgLjoC2SToJyMGf+z0gzskSaHirOi4XCPLArlzW1oUevaPwV/izLmE1xr/l9A +4iLItLRkT9a6fUg+qGkM17uGcclzuD87nSVL2v9A6wIDAQABo4IBlTCCAZEwDwYD +VR0TAQH/BAUwAwEB/zCB4QYDVR0gBIHZMIHWMIHTBgkrBgEEAb5YAAMwgcUwgZMG +CCsGAQUFBwICMIGGGoGDQW55IHVzZSBvZiB0aGlzIENlcnRpZmljYXRlIGNvbnN0 +aXR1dGVzIGFjY2VwdGFuY2Ugb2YgdGhlIFF1b1ZhZGlzIFJvb3QgQ0EgMyBDZXJ0 +aWZpY2F0ZSBQb2xpY3kgLyBDZXJ0aWZpY2F0aW9uIFByYWN0aWNlIFN0YXRlbWVu +dC4wLQYIKwYBBQUHAgEWIWh0dHA6Ly93d3cucXVvdmFkaXNnbG9iYWwuY29tL2Nw +czALBgNVHQ8EBAMCAQYwHQYDVR0OBBYEFPLAE+CCQz777i9nMpY1XNu4ywLQMG4G +A1UdIwRnMGWAFPLAE+CCQz777i9nMpY1XNu4ywLQoUmkRzBFMQswCQYDVQQGEwJC +TTEZMBcGA1UEChMQUXVvVmFkaXMgTGltaXRlZDEbMBkGA1UEAxMSUXVvVmFkaXMg +Um9vdCBDQSAzggIFxjANBgkqhkiG9w0BAQUFAAOCAgEAT62gLEz6wPJv92ZVqyM0 +7ucp2sNbtrCD2dDQ4iH782CnO11gUyeim/YIIirnv6By5ZwkajGxkHon24QRiSem +d1o417+shvzuXYO8BsbRd2sPbSQvS3pspweWyuOEn62Iix2rFo1bZhfZFvSLgNLd ++LJ2w/w4E6oM3kJpK27zPOuAJ9v1pkQNn1pVWQvVDVJIxa6f8i+AxeoyUDUSly7B +4f/xI4hROJ/yZlZ25w9Rl6VSDE1JUZU2Pb+iSwwQHYaZTKrzchGT5Or2m9qoXadN +t54CrnMAyNojA+j56hl0YgCUyyIgvpSnWbWCar6ZeXqp8kokUvd0/bpO5qgdAm6x +DYBEwa7TIzdfu4V8K5Iu6H6li92Z4b8nby1dqnuH/grdS/yO9SbkbnBCbjPsMZ57 +k8HkyWkaPcBrTiJt7qtYTcbQQcEr6k8Sh17rRdhs9ZgC06DYVYoGmRmioHfRMJ6s +zHXug/WwYjnPbFfiTNKRCw51KBuav/0aQ/HKd/s7j2G4aSgWQgRecCocIdiP4b0j +Wy10QJLZYxkNc91pvGJHvOB0K7Lrfb5BG7XARsWhIstfTsEokt4YutUqKLsRixeT +mJlglFwjz1onl14LBQaTNx47aTbrqZ5hHY8y2o4M1nQ+ewkk2gF3R8Q7zTSMmfXK +4SVhM7JZG+Ju1zdXtg2pEto= +-----END CERTIFICATE----- + +# Issuer: O=SECOM Trust.net OU=Security Communication RootCA1 +# Subject: O=SECOM Trust.net OU=Security Communication RootCA1 +# Label: "Security Communication Root CA" +# Serial: 0 +# MD5 Fingerprint: f1:bc:63:6a:54:e0:b5:27:f5:cd:e7:1a:e3:4d:6e:4a +# SHA1 Fingerprint: 36:b1:2b:49:f9:81:9e:d7:4c:9e:bc:38:0f:c6:56:8f:5d:ac:b2:f7 +# SHA256 Fingerprint: e7:5e:72:ed:9f:56:0e:ec:6e:b4:80:00:73:a4:3f:c3:ad:19:19:5a:39:22:82:01:78:95:97:4a:99:02:6b:6c +-----BEGIN CERTIFICATE----- +MIIDWjCCAkKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBQMQswCQYDVQQGEwJKUDEY +MBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYDVQQLEx5TZWN1cml0eSBDb21t +dW5pY2F0aW9uIFJvb3RDQTEwHhcNMDMwOTMwMDQyMDQ5WhcNMjMwOTMwMDQyMDQ5 +WjBQMQswCQYDVQQGEwJKUDEYMBYGA1UEChMPU0VDT00gVHJ1c3QubmV0MScwJQYD +VQQLEx5TZWN1cml0eSBDb21tdW5pY2F0aW9uIFJvb3RDQTEwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQCzs/5/022x7xZ8V6UMbXaKL0u/ZPtM7orw8yl8 +9f/uKuDp6bpbZCKamm8sOiZpUQWZJtzVHGpxxpp9Hp3dfGzGjGdnSj74cbAZJ6kJ +DKaVv0uMDPpVmDvY6CKhS3E4eayXkmmziX7qIWgGmBSWh9JhNrxtJ1aeV+7AwFb9 +Ms+k2Y7CI9eNqPPYJayX5HA49LY6tJ07lyZDo6G8SVlyTCMwhwFY9k6+HGhWZq/N +QV3Is00qVUarH9oe4kA92819uZKAnDfdDJZkndwi92SL32HeFZRSFaB9UslLqCHJ +xrHty8OVYNEP8Ktw+N/LTX7s1vqr2b1/VPKl6Xn62dZ2JChzAgMBAAGjPzA9MB0G +A1UdDgQWBBSgc0mZaNyFW2XjmygvV5+9M7wHSDALBgNVHQ8EBAMCAQYwDwYDVR0T +AQH/BAUwAwEB/zANBgkqhkiG9w0BAQUFAAOCAQEAaECpqLvkT115swW1F7NgE+vG +kl3g0dNq/vu+m22/xwVtWSDEHPC32oRYAmP6SBbvT6UL90qY8j+eG61Ha2POCEfr +Uj94nK9NrvjVT8+amCoQQTlSxN3Zmw7vkwGusi7KaEIkQmywszo+zenaSMQVy+n5 +Bw+SUEmK3TGXX8npN6o7WWWXlDLJs58+OmJYxUmtYg5xpTKqL8aJdkNAExNnPaJU +JRDL8Try2frbSVa7pv6nQTXD4IhhyYjH3zYQIphZ6rBK+1YWc26sTfcioU+tHXot +RSflMMFe8toTyyVCUZVHA4xsIcx0Qu1T/zOLjw9XARYvz6buyXAiFL39vmwLAw== +-----END CERTIFICATE----- + +# Issuer: CN=Sonera Class2 CA O=Sonera +# Subject: CN=Sonera Class2 CA O=Sonera +# Label: "Sonera Class 2 Root CA" +# Serial: 29 +# MD5 Fingerprint: a3:ec:75:0f:2e:88:df:fa:48:01:4e:0b:5c:48:6f:fb +# SHA1 Fingerprint: 37:f7:6d:e6:07:7c:90:c5:b1:3e:93:1a:b7:41:10:b4:f2:e4:9a:27 +# SHA256 Fingerprint: 79:08:b4:03:14:c1:38:10:0b:51:8d:07:35:80:7f:fb:fc:f8:51:8a:00:95:33:71:05:ba:38:6b:15:3d:d9:27 +-----BEGIN CERTIFICATE----- +MIIDIDCCAgigAwIBAgIBHTANBgkqhkiG9w0BAQUFADA5MQswCQYDVQQGEwJGSTEP +MA0GA1UEChMGU29uZXJhMRkwFwYDVQQDExBTb25lcmEgQ2xhc3MyIENBMB4XDTAx +MDQwNjA3Mjk0MFoXDTIxMDQwNjA3Mjk0MFowOTELMAkGA1UEBhMCRkkxDzANBgNV +BAoTBlNvbmVyYTEZMBcGA1UEAxMQU29uZXJhIENsYXNzMiBDQTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAJAXSjWdyvANlsdE+hY3/Ei9vX+ALTU74W+o +Z6m/AxxNjG8yR9VBaKQTBME1DJqEQ/xcHf+Js+gXGM2RX/uJ4+q/Tl18GybTdXnt +5oTjV+WtKcT0OijnpXuENmmz/V52vaMtmdOQTiMofRhj8VQ7Jp12W5dCsv+u8E7s +3TmVToMGf+dJQMjFAbJUWmYdPfz56TwKnoG4cPABi+QjVHzIrviQHgCWctRUz2Ej +vOr7nQKV0ba5cTppCD8PtOFCx4j1P5iop7oc4HFx71hXgVB6XGt0Rg6DA5jDjqhu +8nYybieDwnPz3BjotJPqdURrBGAgcVeHnfO+oJAjPYok4doh28MCAwEAAaMzMDEw +DwYDVR0TAQH/BAUwAwEB/zARBgNVHQ4ECgQISqCqWITTXjwwCwYDVR0PBAQDAgEG +MA0GCSqGSIb3DQEBBQUAA4IBAQBazof5FnIVV0sd2ZvnoiYw7JNn39Yt0jSv9zil +zqsWuasvfDXLrNAPtEwr/IDva4yRXzZ299uzGxnq9LIR/WFxRL8oszodv7ND6J+/ +3DEIcbCdjdY0RzKQxmUk96BKfARzjzlvF4xytb1LyHr4e4PDKE6cCepnP7JnBBvD +FNr450kkkdAdavphOe9r5yF1BgfYErQhIHBCcYHaPJo2vqZbDWpsmh+Re/n570K6 +Tk6ezAyNlNzZRZxe7EJQY670XcSxEtzKO6gunRRaBXW37Ndj4ro1tgQIkejanZz2 +ZrUYrAqmVCY0M9IbwdR/GjqOC6oybtv8TyWf2TLHllpwrN9M +-----END CERTIFICATE----- + +# Issuer: CN=XRamp Global Certification Authority O=XRamp Security Services Inc OU=www.xrampsecurity.com +# Subject: CN=XRamp Global Certification Authority O=XRamp Security Services Inc OU=www.xrampsecurity.com +# Label: "XRamp Global CA Root" +# Serial: 107108908803651509692980124233745014957 +# MD5 Fingerprint: a1:0b:44:b3:ca:10:d8:00:6e:9d:0f:d8:0f:92:0a:d1 +# SHA1 Fingerprint: b8:01:86:d1:eb:9c:86:a5:41:04:cf:30:54:f3:4c:52:b7:e5:58:c6 +# SHA256 Fingerprint: ce:cd:dc:90:50:99:d8:da:df:c5:b1:d2:09:b7:37:cb:e2:c1:8c:fb:2c:10:c0:ff:0b:cf:0d:32:86:fc:1a:a2 +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIQUJRs7Bjq1ZxN1ZfvdY+grTANBgkqhkiG9w0BAQUFADCB +gjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3dy54cmFtcHNlY3VyaXR5LmNvbTEk +MCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2VydmljZXMgSW5jMS0wKwYDVQQDEyRY +UmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQxMTAxMTcx +NDA0WhcNMzUwMTAxMDUzNzE5WjCBgjELMAkGA1UEBhMCVVMxHjAcBgNVBAsTFXd3 +dy54cmFtcHNlY3VyaXR5LmNvbTEkMCIGA1UEChMbWFJhbXAgU2VjdXJpdHkgU2Vy +dmljZXMgSW5jMS0wKwYDVQQDEyRYUmFtcCBHbG9iYWwgQ2VydGlmaWNhdGlvbiBB +dXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCYJB69FbS6 +38eMpSe2OAtp87ZOqCwuIR1cRN8hXX4jdP5efrRKt6atH67gBhbim1vZZ3RrXYCP +KZ2GG9mcDZhtdhAoWORlsH9KmHmf4MMxfoArtYzAQDsRhtDLooY2YKTVMIJt2W7Q +DxIEM5dfT2Fa8OT5kavnHTu86M/0ay00fOJIYRyO82FEzG+gSqmUsE3a56k0enI4 +qEHMPJQRfevIpoy3hsvKMzvZPTeL+3o+hiznc9cKV6xkmxnr9A8ECIqsAxcZZPRa +JSKNNCyy9mgdEm3Tih4U2sSPpuIjhdV6Db1q4Ons7Be7QhtnqiXtRYMh/MHJfNVi +PvryxS3T/dRlAgMBAAGjgZ8wgZwwEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0P +BAQDAgGGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMZPoj0GY4QJnM5i5ASs +jVy16bYbMDYGA1UdHwQvMC0wK6ApoCeGJWh0dHA6Ly9jcmwueHJhbXBzZWN1cml0 +eS5jb20vWEdDQS5jcmwwEAYJKwYBBAGCNxUBBAMCAQEwDQYJKoZIhvcNAQEFBQAD +ggEBAJEVOQMBG2f7Shz5CmBbodpNl2L5JFMn14JkTpAuw0kbK5rc/Kh4ZzXxHfAR +vbdI4xD2Dd8/0sm2qlWkSLoC295ZLhVbO50WfUfXN+pfTXYSNrsf16GBBEYgoyxt +qZ4Bfj8pzgCT3/3JknOJiWSe5yvkHJEs0rnOfc5vMZnT5r7SHpDwCRR5XCOrTdLa +IR9NmXmd4c8nnxCbHIgNsIpkQTG4DmyQJKSbXHGPurt+HBvbaoAPIbzp26a3QPSy +i6mx5O+aGtA9aZnuqCij4Tyz8LIRnM98QObd50N9otg6tamN8jSZxNQQ4Qb9CYQQ +O+7ETPTsJ3xCwnR8gooJybQDJbw= +-----END CERTIFICATE----- + +# Issuer: O=The Go Daddy Group, Inc. OU=Go Daddy Class 2 Certification Authority +# Subject: O=The Go Daddy Group, Inc. OU=Go Daddy Class 2 Certification Authority +# Label: "Go Daddy Class 2 CA" +# Serial: 0 +# MD5 Fingerprint: 91:de:06:25:ab:da:fd:32:17:0c:bb:25:17:2a:84:67 +# SHA1 Fingerprint: 27:96:ba:e6:3f:18:01:e2:77:26:1b:a0:d7:77:70:02:8f:20:ee:e4 +# SHA256 Fingerprint: c3:84:6b:f2:4b:9e:93:ca:64:27:4c:0e:c6:7c:1e:cc:5e:02:4f:fc:ac:d2:d7:40:19:35:0e:81:fe:54:6a:e4 +-----BEGIN CERTIFICATE----- +MIIEADCCAuigAwIBAgIBADANBgkqhkiG9w0BAQUFADBjMQswCQYDVQQGEwJVUzEh +MB8GA1UEChMYVGhlIEdvIERhZGR5IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBE +YWRkeSBDbGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTA0MDYyOTE3 +MDYyMFoXDTM0MDYyOTE3MDYyMFowYzELMAkGA1UEBhMCVVMxITAfBgNVBAoTGFRo +ZSBHbyBEYWRkeSBHcm91cCwgSW5jLjExMC8GA1UECxMoR28gRGFkZHkgQ2xhc3Mg +MiBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTCCASAwDQYJKoZIhvcNAQEBBQADggEN +ADCCAQgCggEBAN6d1+pXGEmhW+vXX0iG6r7d/+TvZxz0ZWizV3GgXne77ZtJ6XCA +PVYYYwhv2vLM0D9/AlQiVBDYsoHUwHU9S3/Hd8M+eKsaA7Ugay9qK7HFiH7Eux6w +wdhFJ2+qN1j3hybX2C32qRe3H3I2TqYXP2WYktsqbl2i/ojgC95/5Y0V4evLOtXi +EqITLdiOr18SPaAIBQi2XKVlOARFmR6jYGB0xUGlcmIbYsUfb18aQr4CUWWoriMY +avx4A6lNf4DD+qta/KFApMoZFv6yyO9ecw3ud72a9nmYvLEHZ6IVDd2gWMZEewo+ +YihfukEHU1jPEX44dMX4/7VpkI+EdOqXG68CAQOjgcAwgb0wHQYDVR0OBBYEFNLE +sNKR1EwRcbNhyz2h/t2oatTjMIGNBgNVHSMEgYUwgYKAFNLEsNKR1EwRcbNhyz2h +/t2oatTjoWekZTBjMQswCQYDVQQGEwJVUzEhMB8GA1UEChMYVGhlIEdvIERhZGR5 +IEdyb3VwLCBJbmMuMTEwLwYDVQQLEyhHbyBEYWRkeSBDbGFzcyAyIENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8wDQYJKoZIhvcNAQEFBQAD +ggEBADJL87LKPpH8EsahB4yOd6AzBhRckB4Y9wimPQoZ+YeAEW5p5JYXMP80kWNy +OO7MHAGjHZQopDH2esRU1/blMVgDoszOYtuURXO1v0XJJLXVggKtI3lpjbi2Tc7P +TMozI+gciKqdi0FuFskg5YmezTvacPd+mSYgFFQlq25zheabIZ0KbIIOqPjCDPoQ +HmyW74cNxA9hi63ugyuV+I6ShHI56yDqg+2DzZduCLzrTia2cyvk0/ZM/iZx4mER +dEr/VxqHD3VILs9RaRegAhJhldXRQLIQTO7ErBBDpqWeCtWVYpoNz4iCxTIM5Cuf +ReYNnyicsbkqWletNw+vHX/bvZ8= +-----END CERTIFICATE----- + +# Issuer: O=Starfield Technologies, Inc. OU=Starfield Class 2 Certification Authority +# Subject: O=Starfield Technologies, Inc. OU=Starfield Class 2 Certification Authority +# Label: "Starfield Class 2 CA" +# Serial: 0 +# MD5 Fingerprint: 32:4a:4b:bb:c8:63:69:9b:be:74:9a:c6:dd:1d:46:24 +# SHA1 Fingerprint: ad:7e:1c:28:b0:64:ef:8f:60:03:40:20:14:c3:d0:e3:37:0e:b5:8a +# SHA256 Fingerprint: 14:65:fa:20:53:97:b8:76:fa:a6:f0:a9:95:8e:55:90:e4:0f:cc:7f:aa:4f:b7:c2:c8:67:75:21:fb:5f:b6:58 +-----BEGIN CERTIFICATE----- +MIIEDzCCAvegAwIBAgIBADANBgkqhkiG9w0BAQUFADBoMQswCQYDVQQGEwJVUzEl +MCMGA1UEChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMp +U3RhcmZpZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDQw +NjI5MTczOTE2WhcNMzQwNjI5MTczOTE2WjBoMQswCQYDVQQGEwJVUzElMCMGA1UE +ChMcU3RhcmZpZWxkIFRlY2hub2xvZ2llcywgSW5jLjEyMDAGA1UECxMpU3RhcmZp +ZWxkIENsYXNzIDIgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwggEgMA0GCSqGSIb3 +DQEBAQUAA4IBDQAwggEIAoIBAQC3Msj+6XGmBIWtDBFk385N78gDGIc/oav7PKaf +8MOh2tTYbitTkPskpD6E8J7oX+zlJ0T1KKY/e97gKvDIr1MvnsoFAZMej2YcOadN ++lq2cwQlZut3f+dZxkqZJRRU6ybH838Z1TBwj6+wRir/resp7defqgSHo9T5iaU0 +X9tDkYI22WY8sbi5gv2cOj4QyDvvBmVmepsZGD3/cVE8MC5fvj13c7JdBmzDI1aa +K4UmkhynArPkPw2vCHmCuDY96pzTNbO8acr1zJ3o/WSNF4Azbl5KXZnJHoe0nRrA +1W4TNSNe35tfPe/W93bC6j67eA0cQmdrBNj41tpvi/JEoAGrAgEDo4HFMIHCMB0G +A1UdDgQWBBS/X7fRzt0fhvRbVazc1xDCDqmI5zCBkgYDVR0jBIGKMIGHgBS/X7fR +zt0fhvRbVazc1xDCDqmI56FspGowaDELMAkGA1UEBhMCVVMxJTAjBgNVBAoTHFN0 +YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAsTKVN0YXJmaWVsZCBD +bGFzcyAyIENlcnRpZmljYXRpb24gQXV0aG9yaXR5ggEAMAwGA1UdEwQFMAMBAf8w +DQYJKoZIhvcNAQEFBQADggEBAAWdP4id0ckaVaGsafPzWdqbAYcaT1epoXkJKtv3 +L7IezMdeatiDh6GX70k1PncGQVhiv45YuApnP+yz3SFmH8lU+nLMPUxA2IGvd56D +eruix/U0F47ZEUD0/CwqTRV/p2JdLiXTAAsgGh1o+Re49L2L7ShZ3U0WixeDyLJl +xy16paq8U4Zt3VekyvggQQto8PT7dL5WXXp59fkdheMtlb71cZBDzI0fmgAKhynp +VSJYACPq4xJDKVtHCN2MQWplBqjlIapBtJUhlbl90TSrE9atvNziPTnNvT51cKEY +WQPJIrSPnNVeKtelttQKbfi3QBFGmh95DmK/D5fs4C8fF5Q= +-----END CERTIFICATE----- + +# Issuer: O=Government Root Certification Authority +# Subject: O=Government Root Certification Authority +# Label: "Taiwan GRCA" +# Serial: 42023070807708724159991140556527066870 +# MD5 Fingerprint: 37:85:44:53:32:45:1f:20:f0:f3:95:e1:25:c4:43:4e +# SHA1 Fingerprint: f4:8b:11:bf:de:ab:be:94:54:20:71:e6:41:de:6b:be:88:2b:40:b9 +# SHA256 Fingerprint: 76:00:29:5e:ef:e8:5b:9e:1f:d6:24:db:76:06:2a:aa:ae:59:81:8a:54:d2:77:4c:d4:c0:b2:c0:11:31:e1:b3 +-----BEGIN CERTIFICATE----- +MIIFcjCCA1qgAwIBAgIQH51ZWtcvwgZEpYAIaeNe9jANBgkqhkiG9w0BAQUFADA/ +MQswCQYDVQQGEwJUVzEwMC4GA1UECgwnR292ZXJubWVudCBSb290IENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5MB4XDTAyMTIwNTEzMjMzM1oXDTMyMTIwNTEzMjMzM1ow +PzELMAkGA1UEBhMCVFcxMDAuBgNVBAoMJ0dvdmVybm1lbnQgUm9vdCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB +AJoluOzMonWoe/fOW1mKydGGEghU7Jzy50b2iPN86aXfTEc2pBsBHH8eV4qNw8XR +IePaJD9IK/ufLqGU5ywck9G/GwGHU5nOp/UKIXZ3/6m3xnOUT0b3EEk3+qhZSV1q +gQdW8or5BtD3cCJNtLdBuTK4sfCxw5w/cP1T3YGq2GN49thTbqGsaoQkclSGxtKy +yhwOeYHWtXBiCAEuTk8O1RGvqa/lmr/czIdtJuTJV6L7lvnM4T9TjGxMfptTCAts +F/tnyMKtsc2AtJfcdgEWFelq16TheEfOhtX7MfP6Mb40qij7cEwdScevLJ1tZqa2 +jWR+tSBqnTuBto9AAGdLiYa4zGX+FVPpBMHWXx1E1wovJ5pGfaENda1UhhXcSTvx +ls4Pm6Dso3pdvtUqdULle96ltqqvKKyskKw4t9VoNSZ63Pc78/1Fm9G7Q3hub/FC +VGqY8A2tl+lSXunVanLeavcbYBT0peS2cWeqH+riTcFCQP5nRhc4L0c/cZyu5SHK +YS1tB6iEfC3uUSXxY5Ce/eFXiGvviiNtsea9P63RPZYLhY3Naye7twWb7LuRqQoH +EgKXTiCQ8P8NHuJBO9NAOueNXdpm5AKwB1KYXA6OM5zCppX7VRluTI6uSw+9wThN +Xo+EHWbNxWCWtFJaBYmOlXqYwZE8lSOyDvR5tMl8wUohAgMBAAGjajBoMB0GA1Ud +DgQWBBTMzO/MKWCkO7GStjz6MmKPrCUVOzAMBgNVHRMEBTADAQH/MDkGBGcqBwAE +MTAvMC0CAQAwCQYFKw4DAhoFADAHBgVnKgMAAAQUA5vwIhP/lSg209yewDL7MTqK +UWUwDQYJKoZIhvcNAQEFBQADggIBAECASvomyc5eMN1PhnR2WPWus4MzeKR6dBcZ +TulStbngCnRiqmjKeKBMmo4sIy7VahIkv9Ro04rQ2JyftB8M3jh+Vzj8jeJPXgyf +qzvS/3WXy6TjZwj/5cAWtUgBfen5Cv8b5Wppv3ghqMKnI6mGq3ZW6A4M9hPdKmaK +ZEk9GhiHkASfQlK3T8v+R0F2Ne//AHY2RTKbxkaFXeIksB7jSJaYV0eUVXoPQbFE +JPPB/hprv4j9wabak2BegUqZIJxIZhm1AHlUD7gsL0u8qV1bYH+Mh6XgUmMqvtg7 +hUAV/h62ZT/FS9p+tXo1KaMuephgIqP0fSdOLeq0dDzpD6QzDxARvBMB1uUO07+1 +EqLhRSPAzAhuYbeJq4PjJB7mXQfnHyA+z2fI56wwbSdLaG5LKlwCCDTb+HbkZ6Mm +nD+iMsJKxYEYMRBWqoTvLQr/uB930r+lWKBi5NdLkXWNiYCYfm3LU05er/ayl4WX +udpVBrkk7tfGOB5jGxI7leFYrPLfhNVfmS8NVVvmONsuP3LpSIXLuykTjx44Vbnz +ssQwmSNOXfJIoRIM3BKQCZBUkQM8R+XVyWXgt0t97EfTsws+rZ7QdAAO671RrcDe +LMDDav7v3Aun+kbfYNucpllQdSNpc5Oy+fwC00fmcc4QAu4njIT/rEUNE1yDMuAl +pYYsfPQS +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Assured ID Root CA O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Assured ID Root CA" +# Serial: 17154717934120587862167794914071425081 +# MD5 Fingerprint: 87:ce:0b:7b:2a:0e:49:00:e1:58:71:9b:37:a8:93:72 +# SHA1 Fingerprint: 05:63:b8:63:0d:62:d7:5a:bb:c8:ab:1e:4b:df:b5:a8:99:b2:4d:43 +# SHA256 Fingerprint: 3e:90:99:b5:01:5e:8f:48:6c:00:bc:ea:9d:11:1e:e7:21:fa:ba:35:5a:89:bc:f1:df:69:56:1e:3d:c6:32:5c +-----BEGIN CERTIFICATE----- +MIIDtzCCAp+gAwIBAgIQDOfg5RfYRv6P5WD8G/AwOTANBgkqhkiG9w0BAQUFADBl +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv +b3QgQ0EwHhcNMDYxMTEwMDAwMDAwWhcNMzExMTEwMDAwMDAwWjBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl +cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgQ0EwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCtDhXO5EOAXLGH87dg+XESpa7c +JpSIqvTO9SA5KFhgDPiA2qkVlTJhPLWxKISKityfCgyDF3qPkKyK53lTXDGEKvYP +mDI2dsze3Tyoou9q+yHyUmHfnyDXH+Kx2f4YZNISW1/5WBg1vEfNoTb5a3/UsDg+ +wRvDjDPZ2C8Y/igPs6eD1sNuRMBhNZYW/lmci3Zt1/GiSw0r/wty2p5g0I6QNcZ4 +VYcgoc/lbQrISXwxmDNsIumH0DJaoroTghHtORedmTpyoeb6pNnVFzF1roV9Iq4/ +AUaG9ih5yLHa5FcXxH4cDrC0kqZWs72yl+2qp/C3xag/lRbQ/6GW6whfGHdPAgMB +AAGjYzBhMA4GA1UdDwEB/wQEAwIBhjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQW +BBRF66Kv9JLLgjEtUYunpyGd823IDzAfBgNVHSMEGDAWgBRF66Kv9JLLgjEtUYun +pyGd823IDzANBgkqhkiG9w0BAQUFAAOCAQEAog683+Lt8ONyc3pklL/3cmbYMuRC +dWKuh+vy1dneVrOfzM4UKLkNl2BcEkxY5NM9g0lFWJc1aRqoR+pWxnmrEthngYTf +fwk8lOa4JiwgvT2zKIn3X/8i4peEH+ll74fg38FnSbNd67IJKusm7Xi+fT8r87cm +NW1fiQG2SVufAQWbqz0lwcy2f8Lxb4bG+mRo64EtlOtCt/qMHt1i8b5QZ7dsvfPx +H2sMNgcWfzd8qVttevESRmCD1ycEvkvOl77DZypoEd+A5wwzZr8TDRRu838fYxAe ++o0bJW1sj6W3YQGx0qMmoRBxna3iw/nDmVG3KwcIzi7mULKn+gpFL6Lw8g== +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Global Root CA O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Global Root CA" +# Serial: 10944719598952040374951832963794454346 +# MD5 Fingerprint: 79:e4:a9:84:0d:7d:3a:96:d7:c0:4f:e2:43:4c:89:2e +# SHA1 Fingerprint: a8:98:5d:3a:65:e5:e5:c4:b2:d7:d6:6d:40:c6:dd:2f:b1:9c:54:36 +# SHA256 Fingerprint: 43:48:a0:e9:44:4c:78:cb:26:5e:05:8d:5e:89:44:b4:d8:4f:96:62:bd:26:db:25:7f:89:34:a4:43:c7:01:61 +-----BEGIN CERTIFICATE----- +MIIDrzCCApegAwIBAgIQCDvgVpBCRrGhdWrJWZHHSjANBgkqhkiG9w0BAQUFADBh +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBD +QTAeFw0wNjExMTAwMDAwMDBaFw0zMTExMTAwMDAwMDBaMGExCzAJBgNVBAYTAlVT +MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j +b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IENBMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEA4jvhEXLeqKTTo1eqUKKPC3eQyaKl7hLOllsB +CSDMAZOnTjC3U/dDxGkAV53ijSLdhwZAAIEJzs4bg7/fzTtxRuLWZscFs3YnFo97 +nh6Vfe63SKMI2tavegw5BmV/Sl0fvBf4q77uKNd0f3p4mVmFaG5cIzJLv07A6Fpt +43C/dxC//AH2hdmoRBBYMql1GNXRor5H4idq9Joz+EkIYIvUX7Q6hL+hqkpMfT7P +T19sdl6gSzeRntwi5m3OFBqOasv+zbMUZBfHWymeMr/y7vrTC0LUq7dBMtoM1O/4 +gdW7jVg/tRvoSSiicNoxBN33shbyTApOB6jtSj1etX+jkMOvJwIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUA95QNVbR +TLtm8KPiGxvDl7I90VUwHwYDVR0jBBgwFoAUA95QNVbRTLtm8KPiGxvDl7I90VUw +DQYJKoZIhvcNAQEFBQADggEBAMucN6pIExIK+t1EnE9SsPTfrgT1eXkIoyQY/Esr +hMAtudXH/vTBH1jLuG2cenTnmCmrEbXjcKChzUyImZOMkXDiqw8cvpOp/2PV5Adg +06O/nVsJ8dWO41P0jmP6P6fbtGbfYmbW0W5BjfIttep3Sp+dWOIrWcBAI+0tKIJF +PnlUkiaY4IBIqDfv8NZ5YBberOgOzW6sRBc4L0na4UU+Krk2U886UAb3LujEV0ls +YSEY1QSteDwsOoBrp+uvFRTp2InBuThs4pFsiv9kuXclVzDAGySj4dzp30d8tbQk +CAUw7C29C79Fv1C5qfPrmAESrciIxpg0X40KPMbp1ZWVbd4= +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert High Assurance EV Root CA O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert High Assurance EV Root CA" +# Serial: 3553400076410547919724730734378100087 +# MD5 Fingerprint: d4:74:de:57:5c:39:b2:d3:9c:85:83:c5:c0:65:49:8a +# SHA1 Fingerprint: 5f:b7:ee:06:33:e2:59:db:ad:0c:4c:9a:e6:d3:8f:1a:61:c7:dc:25 +# SHA256 Fingerprint: 74:31:e5:f4:c3:c1:ce:46:90:77:4f:0b:61:e0:54:40:88:3b:a9:a0:1e:d0:0b:a6:ab:d7:80:6e:d3:b1:18:cf +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIQAqxcJmoLQJuPC3nyrkYldzANBgkqhkiG9w0BAQUFADBs +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSswKQYDVQQDEyJEaWdpQ2VydCBIaWdoIEFzc3VyYW5j +ZSBFViBSb290IENBMB4XDTA2MTExMDAwMDAwMFoXDTMxMTExMDAwMDAwMFowbDEL +MAkGA1UEBhMCVVMxFTATBgNVBAoTDERpZ2lDZXJ0IEluYzEZMBcGA1UECxMQd3d3 +LmRpZ2ljZXJ0LmNvbTErMCkGA1UEAxMiRGlnaUNlcnQgSGlnaCBBc3N1cmFuY2Ug +RVYgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAMbM5XPm ++9S75S0tMqbf5YE/yc0lSbZxKsPVlDRnogocsF9ppkCxxLeyj9CYpKlBWTrT3JTW +PNt0OKRKzE0lgvdKpVMSOO7zSW1xkX5jtqumX8OkhPhPYlG++MXs2ziS4wblCJEM +xChBVfvLWokVfnHoNb9Ncgk9vjo4UFt3MRuNs8ckRZqnrG0AFFoEt7oT61EKmEFB +Ik5lYYeBQVCmeVyJ3hlKV9Uu5l0cUyx+mM0aBhakaHPQNAQTXKFx01p8VdteZOE3 +hzBWBOURtCmAEvF5OYiiAhF8J2a3iLd48soKqDirCmTCv2ZdlYTBoSUeh10aUAsg +EsxBu24LUTi4S8sCAwEAAaNjMGEwDgYDVR0PAQH/BAQDAgGGMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFLE+w2kD+L9HAdSYJhoIAu9jZCvDMB8GA1UdIwQYMBaA +FLE+w2kD+L9HAdSYJhoIAu9jZCvDMA0GCSqGSIb3DQEBBQUAA4IBAQAcGgaX3Nec +nzyIZgYIVyHbIUf4KmeqvxgydkAQV8GK83rZEWWONfqe/EW1ntlMMUu4kehDLI6z +eM7b41N5cdblIZQB2lWHmiRk9opmzN6cN82oNLFpmyPInngiK3BD41VHMWEZ71jF +hS9OMPagMRYjyOfiZRYzy78aG6A9+MpeizGLYAiJLQwGXFK3xPkKmNEVX58Svnw2 +Yzi9RKR/5CYrCsSXaQ3pjOLAEFe4yHYSkVXySGnYvCoCWw9E1CAx2/S6cCZdkGCe +vEsXCS+0yx5DaMkHJ8HSXPfqIbloEpw8nL+e/IBcm2PN7EeqJSdnoDfzAIJ9VNep ++OkuE6N36B9K +-----END CERTIFICATE----- + +# Issuer: CN=Class 2 Primary CA O=Certplus +# Subject: CN=Class 2 Primary CA O=Certplus +# Label: "Certplus Class 2 Primary CA" +# Serial: 177770208045934040241468760488327595043 +# MD5 Fingerprint: 88:2c:8c:52:b8:a2:3c:f3:f7:bb:03:ea:ae:ac:42:0b +# SHA1 Fingerprint: 74:20:74:41:72:9c:dd:92:ec:79:31:d8:23:10:8d:c2:81:92:e2:bb +# SHA256 Fingerprint: 0f:99:3c:8a:ef:97:ba:af:56:87:14:0e:d5:9a:d1:82:1b:b4:af:ac:f0:aa:9a:58:b5:d5:7a:33:8a:3a:fb:cb +-----BEGIN CERTIFICATE----- +MIIDkjCCAnqgAwIBAgIRAIW9S/PY2uNp9pTXX8OlRCMwDQYJKoZIhvcNAQEFBQAw +PTELMAkGA1UEBhMCRlIxETAPBgNVBAoTCENlcnRwbHVzMRswGQYDVQQDExJDbGFz +cyAyIFByaW1hcnkgQ0EwHhcNOTkwNzA3MTcwNTAwWhcNMTkwNzA2MjM1OTU5WjA9 +MQswCQYDVQQGEwJGUjERMA8GA1UEChMIQ2VydHBsdXMxGzAZBgNVBAMTEkNsYXNz +IDIgUHJpbWFyeSBDQTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANxQ +ltAS+DXSCHh6tlJw/W/uz7kRy1134ezpfgSN1sxvc0NXYKwzCkTsA18cgCSR5aiR +VhKC9+Ar9NuuYS6JEI1rbLqzAr3VNsVINyPi8Fo3UjMXEuLRYE2+L0ER4/YXJQyL +kcAbmXuZVg2v7tK8R1fjeUl7NIknJITesezpWE7+Tt9avkGtrAjFGA7v0lPubNCd +EgETjdyAYveVqUSISnFOYFWe2yMZeVYHDD9jC1yw4r5+FfyUM1hBOHTE4Y+L3yas +H7WLO7dDWWuwJKZtkIvEcupdM5i3y95ee++U8Rs+yskhwcWYAqqi9lt3m/V+llU0 +HGdpwPFC40es/CgcZlUCAwEAAaOBjDCBiTAPBgNVHRMECDAGAQH/AgEKMAsGA1Ud +DwQEAwIBBjAdBgNVHQ4EFgQU43Mt38sOKAze3bOkynm4jrvoMIkwEQYJYIZIAYb4 +QgEBBAQDAgEGMDcGA1UdHwQwMC4wLKAqoCiGJmh0dHA6Ly93d3cuY2VydHBsdXMu +Y29tL0NSTC9jbGFzczIuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQCnVM+IRBnL39R/ +AN9WM2K191EBkOvDP9GIROkkXe/nFL0gt5o8AP5tn9uQ3Nf0YtaLcF3n5QRIqWh8 +yfFC82x/xXp8HVGIutIKPidd3i1RTtMTZGnkLuPT55sJmabglZvOGtd/vjzOUrMR +FcEPF80Du5wlFbqidon8BvEY0JNLDnyCt6X09l/+7UCmnYR0ObncHoUW2ikbhiMA +ybuJfm6AiB4vFLQDJKgybwOaRywwvlbGp0ICcBvqQNi6BQNwB6SW//1IMwrh3KWB +kJtN3X3n57LNXMhqlfil9o3EXXgIvnsG1knPGTZQIy4I5p4FTUcY1Rbpsda2ENW7 +l7+ijrRU +-----END CERTIFICATE----- + +# Issuer: CN=DST Root CA X3 O=Digital Signature Trust Co. +# Subject: CN=DST Root CA X3 O=Digital Signature Trust Co. +# Label: "DST Root CA X3" +# Serial: 91299735575339953335919266965803778155 +# MD5 Fingerprint: 41:03:52:dc:0f:f7:50:1b:16:f0:02:8e:ba:6f:45:c5 +# SHA1 Fingerprint: da:c9:02:4f:54:d8:f6:df:94:93:5f:b1:73:26:38:ca:6a:d7:7c:13 +# SHA256 Fingerprint: 06:87:26:03:31:a7:24:03:d9:09:f1:05:e6:9b:cf:0d:32:e1:bd:24:93:ff:c6:d9:20:6d:11:bc:d6:77:07:39 +-----BEGIN CERTIFICATE----- +MIIDSjCCAjKgAwIBAgIQRK+wgNajJ7qJMDmGLvhAazANBgkqhkiG9w0BAQUFADA/ +MSQwIgYDVQQKExtEaWdpdGFsIFNpZ25hdHVyZSBUcnVzdCBDby4xFzAVBgNVBAMT +DkRTVCBSb290IENBIFgzMB4XDTAwMDkzMDIxMTIxOVoXDTIxMDkzMDE0MDExNVow +PzEkMCIGA1UEChMbRGlnaXRhbCBTaWduYXR1cmUgVHJ1c3QgQ28uMRcwFQYDVQQD +Ew5EU1QgUm9vdCBDQSBYMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEB +AN+v6ZdQCINXtMxiZfaQguzH0yxrMMpb7NnDfcdAwRgUi+DoM3ZJKuM/IUmTrE4O +rz5Iy2Xu/NMhD2XSKtkyj4zl93ewEnu1lcCJo6m67XMuegwGMoOifooUMM0RoOEq +OLl5CjH9UL2AZd+3UWODyOKIYepLYYHsUmu5ouJLGiifSKOeDNoJjj4XLh7dIN9b +xiqKqy69cK3FCxolkHRyxXtqqzTWMIn/5WgTe1QLyNau7Fqckh49ZLOMxt+/yUFw +7BZy1SbsOFU5Q9D8/RhcQPGX69Wam40dutolucbY38EVAjqr2m7xPi71XAicPNaD +aeQQmxkqtilX4+U9m5/wAl0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNV +HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFMSnsaR7LHH62+FLkHX/xBVghYkQMA0GCSqG +SIb3DQEBBQUAA4IBAQCjGiybFwBcqR7uKGY3Or+Dxz9LwwmglSBd49lZRNI+DT69 +ikugdB/OEIKcdBodfpga3csTS7MgROSR6cz8faXbauX+5v3gTt23ADq1cEmv8uXr +AvHRAosZy5Q6XkjEGB5YGV8eAlrwDPGxrancWYaLbumR9YbK+rlmM6pZW87ipxZz +R8srzJmwN0jP41ZL9c8PDHIyh8bwRLtTcm1D9SZImlJnt1ir/md2cXjbDaJWFBM5 +JDGFoqgCWjBH4d1QB7wCCZAA62RjYJsWvIjJEubSfZGL+T0yjWW06XyxV3bqxbYo +Ob8VZRzI9neWagqNdwvYkQsEjgfbKbYK7p2CNTUQ +-----END CERTIFICATE----- + +# Issuer: CN=SwissSign Gold CA - G2 O=SwissSign AG +# Subject: CN=SwissSign Gold CA - G2 O=SwissSign AG +# Label: "SwissSign Gold CA - G2" +# Serial: 13492815561806991280 +# MD5 Fingerprint: 24:77:d9:a8:91:d1:3b:fa:88:2d:c2:ff:f8:cd:33:93 +# SHA1 Fingerprint: d8:c5:38:8a:b7:30:1b:1b:6e:d4:7a:e6:45:25:3a:6f:9f:1a:27:61 +# SHA256 Fingerprint: 62:dd:0b:e9:b9:f5:0a:16:3e:a0:f8:e7:5c:05:3b:1e:ca:57:ea:55:c8:68:8f:64:7c:68:81:f2:c8:35:7b:95 +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +# Issuer: CN=SwissSign Silver CA - G2 O=SwissSign AG +# Subject: CN=SwissSign Silver CA - G2 O=SwissSign AG +# Label: "SwissSign Silver CA - G2" +# Serial: 5700383053117599563 +# MD5 Fingerprint: e0:06:a1:c9:7d:cf:c9:fc:0d:c0:56:75:96:d8:62:13 +# SHA1 Fingerprint: 9b:aa:e5:9f:56:ee:21:cb:43:5a:be:25:93:df:a7:f0:40:d1:1d:cb +# SHA256 Fingerprint: be:6c:4d:a2:bb:b9:ba:59:b6:f3:93:97:68:37:42:46:c3:c0:05:99:3f:a9:8f:02:0d:1d:ed:be:d4:8a:81:d5 +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +# Issuer: CN=GeoTrust Primary Certification Authority O=GeoTrust Inc. +# Subject: CN=GeoTrust Primary Certification Authority O=GeoTrust Inc. +# Label: "GeoTrust Primary Certification Authority" +# Serial: 32798226551256963324313806436981982369 +# MD5 Fingerprint: 02:26:c3:01:5e:08:30:37:43:a9:d0:7d:cf:37:e6:bf +# SHA1 Fingerprint: 32:3c:11:8e:1b:f7:b8:b6:52:54:e2:e2:10:0d:d6:02:90:37:f0:96 +# SHA256 Fingerprint: 37:d5:10:06:c5:12:ea:ab:62:64:21:f1:ec:8c:92:01:3f:c5:f8:2a:e9:8e:e5:33:eb:46:19:b8:de:b4:d0:6c +-----BEGIN CERTIFICATE----- +MIIDfDCCAmSgAwIBAgIQGKy1av1pthU6Y2yv2vrEoTANBgkqhkiG9w0BAQUFADBY +MQswCQYDVQQGEwJVUzEWMBQGA1UEChMNR2VvVHJ1c3QgSW5jLjExMC8GA1UEAxMo +R2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEx +MjcwMDAwMDBaFw0zNjA3MTYyMzU5NTlaMFgxCzAJBgNVBAYTAlVTMRYwFAYDVQQK +Ew1HZW9UcnVzdCBJbmMuMTEwLwYDVQQDEyhHZW9UcnVzdCBQcmltYXJ5IENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAvrgVe//UfH1nrYNke8hCUy3f9oQIIGHWAVlqnEQRr+92/ZV+zmEwu3qDXwK9 +AWbK7hWNb6EwnL2hhZ6UOvNWiAAxz9juapYC2e0DjPt1befquFUWBRaa9OBesYjA +ZIVcFU2Ix7e64HXprQU9nceJSOC7KMgD4TCTZF5SwFlwIjVXiIrxlQqD17wxcwE0 +7e9GceBrAqg1cmuXm2bgyxx5X9gaBGgeRwLmnWDiNpcB3841kt++Z8dtd1k7j53W +kBWUvEI0EME5+bEnPn7WinXFsq+W06Lem+SYvn3h6YGttm/81w7a4DSwDRp35+MI +mO9Y+pyEtzavwt+s0vQQBnBxNQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQULNVQQZcVi/CPNmFbSvtr2ZnJM5IwDQYJ +KoZIhvcNAQEFBQADggEBAFpwfyzdtzRP9YZRqSa+S7iq8XEN3GHHoOo0Hnp3DwQ1 +6CePbJC/kRYkRj5KTs4rFtULUh38H2eiAkUxT87z+gOneZ1TatnaYzr4gNfTmeGl +4b7UVXGYNTq+k+qurUKykG/g/CFNNWMziUnWm07Kx+dOCQD32sfvmWKZd7aVIl6K +oKv0uHiYyjgZmclynnjNS6yvGaBzEi38wkG6gZHaFloxt/m0cYASSJlyc1pZU8Fj +UjPtp8nSOQJw+uCxQmYpqptR7TBUIhRf2asdweSU8Pj1K/fqynhG1riR/aYNKxoU +AT6A8EKglQdebc3MS6RFjasS6LPeWuWgfOgPIh1a6Vk= +-----END CERTIFICATE----- + +# Issuer: CN=thawte Primary Root CA O=thawte, Inc. OU=Certification Services Division/(c) 2006 thawte, Inc. - For authorized use only +# Subject: CN=thawte Primary Root CA O=thawte, Inc. OU=Certification Services Division/(c) 2006 thawte, Inc. - For authorized use only +# Label: "thawte Primary Root CA" +# Serial: 69529181992039203566298953787712940909 +# MD5 Fingerprint: 8c:ca:dc:0b:22:ce:f5:be:72:ac:41:1a:11:a8:d8:12 +# SHA1 Fingerprint: 91:c6:d6:ee:3e:8a:c8:63:84:e5:48:c2:99:29:5c:75:6c:81:7b:81 +# SHA256 Fingerprint: 8d:72:2f:81:a9:c1:13:c0:79:1d:f1:36:a2:96:6d:b2:6c:95:0a:97:1d:b4:6b:41:99:f4:ea:54:b7:8b:fb:9f +-----BEGIN CERTIFICATE----- +MIIEIDCCAwigAwIBAgIQNE7VVyDV7exJ9C/ON9srbTANBgkqhkiG9w0BAQUFADCB +qTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf +Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw +MDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxHzAdBgNV +BAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwHhcNMDYxMTE3MDAwMDAwWhcNMzYw +NzE2MjM1OTU5WjCBqTELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5j +LjEoMCYGA1UECxMfQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYG +A1UECxMvKGMpIDIwMDYgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNl +IG9ubHkxHzAdBgNVBAMTFnRoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCsoPD7gFnUnMekz52hWXMJEEUMDSxuaPFs +W0hoSVk3/AszGcJ3f8wQLZU0HObrTQmnHNK4yZc2AreJ1CRfBsDMRJSUjQJib+ta +3RGNKJpchJAQeg29dGYvajig4tVUROsdB58Hum/u6f1OCyn1PoSgAfGcq/gcfomk +6KHYcWUNo1F77rzSImANuVud37r8UVsLr5iy6S7pBOhih94ryNdOwUxkHt3Ph1i6 +Sk/KaAcdHJ1KxtUvkcx8cXIcxcBn6zL9yZJclNqFwJu/U30rCfSMnZEfl2pSy94J +NqR32HuHUETVPm4pafs5SSYeCaWAe0At6+gnhcn+Yf1+5nyXHdWdAgMBAAGjQjBA +MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBR7W0XP +r87Lev0xkhpqtvNG61dIUDANBgkqhkiG9w0BAQUFAAOCAQEAeRHAS7ORtvzw6WfU +DW5FvlXok9LOAz/t2iWwHVfLHjp2oEzsUHboZHIMpKnxuIvW1oeEuzLlQRHAd9mz +YJ3rG9XRbkREqaYB7FViHXe4XI5ISXycO1cRrK1zN44veFyQaEfZYGDm/Ac9IiAX +xPcW6cTYcvnIc3zfFi8VqT79aie2oetaupgf1eNNZAqdE8hhuvU5HIe6uL17In/2 +/qxAeeWsEG89jxt5dovEN7MhGITlNgDrYyCZuen+MwS7QcjBAvlEYyCegc5C09Y/ +LHbTY5xZ3Y+m4Q6gLkH3LpVHz7z9M/P2C2F+fpErgUfCJzDupxBdN49cOSvkBPB7 +jVaMaA== +-----END CERTIFICATE----- + +# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G5 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2006 VeriSign, Inc. - For authorized use only +# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G5 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2006 VeriSign, Inc. - For authorized use only +# Label: "VeriSign Class 3 Public Primary Certification Authority - G5" +# Serial: 33037644167568058970164719475676101450 +# MD5 Fingerprint: cb:17:e4:31:67:3e:e2:09:fe:45:57:93:f3:0a:fa:1c +# SHA1 Fingerprint: 4e:b6:d5:78:49:9b:1c:cf:5f:58:1e:ad:56:be:3d:9b:67:44:a5:e5 +# SHA256 Fingerprint: 9a:cf:ab:7e:43:c8:d8:80:d0:6b:26:2a:94:de:ee:e4:b4:65:99:89:c3:d0:ca:f1:9b:af:64:05:e4:1a:b7:df +-----BEGIN CERTIFICATE----- +MIIE0zCCA7ugAwIBAgIQGNrRniZ96LtKIVjNzGs7SjANBgkqhkiG9w0BAQUFADCB +yjELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL +ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJp +U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxW +ZXJpU2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5IC0gRzUwHhcNMDYxMTA4MDAwMDAwWhcNMzYwNzE2MjM1OTU5WjCByjEL +MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW +ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNiBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp +U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y +aXR5IC0gRzUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvJAgIKXo1 +nmAMqudLO07cfLw8RRy7K+D+KQL5VwijZIUVJ/XxrcgxiV0i6CqqpkKzj/i5Vbex +t0uz/o9+B1fs70PbZmIVYc9gDaTY3vjgw2IIPVQT60nKWVSFJuUrjxuf6/WhkcIz +SdhDY2pSS9KP6HBRTdGJaXvHcPaz3BJ023tdS1bTlr8Vd6Gw9KIl8q8ckmcY5fQG +BO+QueQA5N06tRn/Arr0PO7gi+s3i+z016zy9vA9r911kTMZHRxAy3QkGSGT2RT+ +rCpSx4/VBEnkjWNHiDxpg8v+R70rfk/Fla4OndTRQ8Bnc+MUCH7lP59zuDMKz10/ +NIeWiu5T6CUVAgMBAAGjgbIwga8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8E +BAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJaW1hZ2UvZ2lmMCEwHzAH +BgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYjaHR0cDovL2xvZ28udmVy +aXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFH/TZafC3ey78DAJ80M5+gKv +MzEzMA0GCSqGSIb3DQEBBQUAA4IBAQCTJEowX2LP2BqYLz3q3JktvXf2pXkiOOzE +p6B4Eq1iDkVwZMXnl2YtmAl+X6/WzChl8gGqCBpH3vn5fJJaCGkgDdk+bW48DW7Y +5gaRQBi5+MHt39tBquCWIMnNZBU4gcmU7qKEKQsTb47bDN0lAtukixlE0kF6BWlK +WE9gyn6CagsCqiUXObXbf+eEZSqVir2G3l6BFoMtEMze/aiCKm0oHw0LxOXnGiYZ +4fQRbxC1lfznQgUy286dUV4otp6F01vvpX1FQHKOtw5rDgb7MzVIcbidJ4vEZV8N +hnacRHr2lVz2XTIIM6RUthg/aFzyQkqFOFSDX9HoLPKsEdao7WNq +-----END CERTIFICATE----- + +# Issuer: CN=SecureTrust CA O=SecureTrust Corporation +# Subject: CN=SecureTrust CA O=SecureTrust Corporation +# Label: "SecureTrust CA" +# Serial: 17199774589125277788362757014266862032 +# MD5 Fingerprint: dc:32:c3:a7:6d:25:57:c7:68:09:9d:ea:2d:a9:a2:d1 +# SHA1 Fingerprint: 87:82:c6:c3:04:35:3b:cf:d2:96:92:d2:59:3e:7d:44:d9:34:ff:11 +# SHA256 Fingerprint: f1:c1:b5:0a:e5:a2:0d:d8:03:0e:c9:f6:bc:24:82:3d:d3:67:b5:25:57:59:b4:e7:1b:61:fc:e9:f7:37:5d:73 +-----BEGIN CERTIFICATE----- +MIIDuDCCAqCgAwIBAgIQDPCOXAgWpa1Cf/DrJxhZ0DANBgkqhkiG9w0BAQUFADBI +MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x +FzAVBgNVBAMTDlNlY3VyZVRydXN0IENBMB4XDTA2MTEwNzE5MzExOFoXDTI5MTIz +MTE5NDA1NVowSDELMAkGA1UEBhMCVVMxIDAeBgNVBAoTF1NlY3VyZVRydXN0IENv +cnBvcmF0aW9uMRcwFQYDVQQDEw5TZWN1cmVUcnVzdCBDQTCCASIwDQYJKoZIhvcN +AQEBBQADggEPADCCAQoCggEBAKukgeWVzfX2FI7CT8rU4niVWJxB4Q2ZQCQXOZEz +Zum+4YOvYlyJ0fwkW2Gz4BERQRwdbvC4u/jep4G6pkjGnx29vo6pQT64lO0pGtSO +0gMdA+9tDWccV9cGrcrI9f4Or2YlSASWC12juhbDCE/RRvgUXPLIXgGZbf2IzIao +wW8xQmxSPmjL8xk037uHGFaAJsTQ3MBv396gwpEWoGQRS0S8Hvbn+mPeZqx2pHGj +7DaUaHp3pLHnDi+BeuK1cobvomuL8A/b01k/unK8RCSc43Oz969XL0Imnal0ugBS +8kvNU3xHCzaFDmapCJcWNFfBZveA4+1wVMeT4C4oFVmHursCAwEAAaOBnTCBmjAT +BgkrBgEEAYI3FAIEBh4EAEMAQTALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQUQjK2FvoE/f5dS3rD/fdMQB1aQ68wNAYDVR0fBC0wKzApoCeg +JYYjaHR0cDovL2NybC5zZWN1cmV0cnVzdC5jb20vU1RDQS5jcmwwEAYJKwYBBAGC +NxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBADDtT0rhWDpSclu1pqNlGKa7UTt3 +6Z3q059c4EVlew3KW+JwULKUBRSuSceNQQcSc5R+DCMh/bwQf2AQWnL1mA6s7Ll/ +3XpvXdMc9P+IBWlCqQVxyLesJugutIxq/3HcuLHfmbx8IVQr5Fiiu1cprp6poxkm +D5kuCLDv/WnPmRoJjeOnnyvJNjR7JLN4TJUXpAYmHrZkUjZfYGfZnMUFdAvnZyPS +CPyI6a6Lf+Ew9Dd+/cYy2i2eRDAwbO4H3tI0/NL/QPZL9GZGBlSm8jIKYyYwa5vR +3ItHuuG51WLQoqD0ZwV4KWMabwTW+MZMo5qxN7SN5ShLHZ4swrhovO0C7jE= +-----END CERTIFICATE----- + +# Issuer: CN=Secure Global CA O=SecureTrust Corporation +# Subject: CN=Secure Global CA O=SecureTrust Corporation +# Label: "Secure Global CA" +# Serial: 9751836167731051554232119481456978597 +# MD5 Fingerprint: cf:f4:27:0d:d4:ed:dc:65:16:49:6d:3d:da:bf:6e:de +# SHA1 Fingerprint: 3a:44:73:5a:e5:81:90:1f:24:86:61:46:1e:3b:9c:c4:5f:f5:3a:1b +# SHA256 Fingerprint: 42:00:f5:04:3a:c8:59:0e:bb:52:7d:20:9e:d1:50:30:29:fb:cb:d4:1c:a1:b5:06:ec:27:f1:5a:de:7d:ac:69 +-----BEGIN CERTIFICATE----- +MIIDvDCCAqSgAwIBAgIQB1YipOjUiolN9BPI8PjqpTANBgkqhkiG9w0BAQUFADBK +MQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3QgQ29ycG9yYXRpb24x +GTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwHhcNMDYxMTA3MTk0MjI4WhcNMjkx +MjMxMTk1MjA2WjBKMQswCQYDVQQGEwJVUzEgMB4GA1UEChMXU2VjdXJlVHJ1c3Qg +Q29ycG9yYXRpb24xGTAXBgNVBAMTEFNlY3VyZSBHbG9iYWwgQ0EwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQCvNS7YrGxVaQZx5RNoJLNP2MwhR/jxYDiJ +iQPpvepeRlMJ3Fz1Wuj3RSoC6zFh1ykzTM7HfAo3fg+6MpjhHZevj8fcyTiW89sa +/FHtaMbQbqR8JNGuQsiWUGMu4P51/pinX0kuleM5M2SOHqRfkNJnPLLZ/kG5VacJ +jnIFHovdRIWCQtBJwB1g8NEXLJXr9qXBkqPFwqcIYA1gBBCWeZ4WNOaptvolRTnI +HmX5k/Wq8VLcmZg9pYYaDDUz+kulBAYVHDGA76oYa8J719rO+TMg1fW9ajMtgQT7 +sFzUnKPiXB3jqUJ1XnvUd+85VLrJChgbEplJL4hL/VBi0XPnj3pDAgMBAAGjgZ0w +gZowEwYJKwYBBAGCNxQCBAYeBABDAEEwCwYDVR0PBAQDAgGGMA8GA1UdEwEB/wQF +MAMBAf8wHQYDVR0OBBYEFK9EBMJBfkiD2045AuzshHrmzsmkMDQGA1UdHwQtMCsw +KaAnoCWGI2h0dHA6Ly9jcmwuc2VjdXJldHJ1c3QuY29tL1NHQ0EuY3JsMBAGCSsG +AQQBgjcVAQQDAgEAMA0GCSqGSIb3DQEBBQUAA4IBAQBjGghAfaReUw132HquHw0L +URYD7xh8yOOvaliTFGCRsoTciE6+OYo68+aCiV0BN7OrJKQVDpI1WkpEXk5X+nXO +H0jOZvQ8QCaSmGwb7iRGDBezUqXbpZGRzzfTb+cnCDpOGR86p1hcF895P4vkp9Mm +I50mD1hp/Ed+stCNi5O/KU9DaXR2Z0vPB4zmAve14bRDtUstFJ/53CYNv6ZHdAbY +iNE6KTCEztI5gGIbqMdXSbxqVVFnFUq+NQfk1XWYN3kwFNspnWzFacxHVaIw98xc +f8LDmBxrThaA63p4ZUWiABqvDA1VZDRIuJK58bRQKfJPIx/abKwfROHdI3hRW8cW +-----END CERTIFICATE----- + +# Issuer: CN=COMODO Certification Authority O=COMODO CA Limited +# Subject: CN=COMODO Certification Authority O=COMODO CA Limited +# Label: "COMODO Certification Authority" +# Serial: 104350513648249232941998508985834464573 +# MD5 Fingerprint: 5c:48:dc:f7:42:72:ec:56:94:6d:1c:cc:71:35:80:75 +# SHA1 Fingerprint: 66:31:bf:9e:f7:4f:9e:b6:c9:d5:a6:0c:ba:6a:be:d1:f7:bd:ef:7b +# SHA256 Fingerprint: 0c:2c:d6:3d:f7:80:6f:a3:99:ed:e8:09:11:6b:57:5b:f8:79:89:f0:65:18:f9:80:8c:86:05:03:17:8b:af:66 +-----BEGIN CERTIFICATE----- +MIIEHTCCAwWgAwIBAgIQToEtioJl4AsC7j41AkblPTANBgkqhkiG9w0BAQUFADCB +gTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G +A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxJzAlBgNV +BAMTHkNPTU9ETyBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAeFw0wNjEyMDEwMDAw +MDBaFw0yOTEyMzEyMzU5NTlaMIGBMQswCQYDVQQGEwJHQjEbMBkGA1UECBMSR3Jl +YXRlciBNYW5jaGVzdGVyMRAwDgYDVQQHEwdTYWxmb3JkMRowGAYDVQQKExFDT01P +RE8gQ0EgTGltaXRlZDEnMCUGA1UEAxMeQ09NT0RPIENlcnRpZmljYXRpb24gQXV0 +aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA0ECLi3LjkRv3 +UcEbVASY06m/weaKXTuH+7uIzg3jLz8GlvCiKVCZrts7oVewdFFxze1CkU1B/qnI +2GqGd0S7WWaXUF601CxwRM/aN5VCaTwwxHGzUvAhTaHYujl8HJ6jJJ3ygxaYqhZ8 +Q5sVW7euNJH+1GImGEaaP+vB+fGQV+useg2L23IwambV4EajcNxo2f8ESIl33rXp ++2dtQem8Ob0y2WIC8bGoPW43nOIv4tOiJovGuFVDiOEjPqXSJDlqR6sA1KGzqSX+ +DT+nHbrTUcELpNqsOO9VUCQFZUaTNE8tja3G1CEZ0o7KBWFxB3NH5YoZEr0ETc5O +nKVIrLsm9wIDAQABo4GOMIGLMB0GA1UdDgQWBBQLWOWLxkwVN6RAqTCpIb5HNlpW +/zAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zBJBgNVHR8EQjBAMD6g +PKA6hjhodHRwOi8vY3JsLmNvbW9kb2NhLmNvbS9DT01PRE9DZXJ0aWZpY2F0aW9u +QXV0aG9yaXR5LmNybDANBgkqhkiG9w0BAQUFAAOCAQEAPpiem/Yb6dc5t3iuHXIY +SdOH5EOC6z/JqvWote9VfCFSZfnVDeFs9D6Mk3ORLgLETgdxb8CPOGEIqB6BCsAv +IC9Bi5HcSEW88cbeunZrM8gALTFGTO3nnc+IlP8zwFboJIYmuNg4ON8qa90SzMc/ +RxdMosIGlgnW2/4/PEZB31jiVg88O8EckzXZOFKs7sjsLjBOlDW0JB9LeGna8gI4 +zJVSk/BwJVmcIGfE7vmLV2H0knZ9P4SNVbfo5azV8fUZVqZa+5Acr5Pr5RzUZ5dd +BA6+C4OmF4O5MBKgxTMVBbkN+8cFduPYSo38NBejxiEovjBFMR7HeL5YYTisO+IB +ZQ== +-----END CERTIFICATE----- + +# Issuer: CN=Network Solutions Certificate Authority O=Network Solutions L.L.C. +# Subject: CN=Network Solutions Certificate Authority O=Network Solutions L.L.C. +# Label: "Network Solutions Certificate Authority" +# Serial: 116697915152937497490437556386812487904 +# MD5 Fingerprint: d3:f3:a6:16:c0:fa:6b:1d:59:b1:2d:96:4d:0e:11:2e +# SHA1 Fingerprint: 74:f8:a3:c3:ef:e7:b3:90:06:4b:83:90:3c:21:64:60:20:e5:df:ce +# SHA256 Fingerprint: 15:f0:ba:00:a3:ac:7a:f3:ac:88:4c:07:2b:10:11:a0:77:bd:77:c0:97:f4:01:64:b2:f8:59:8a:bd:83:86:0c +-----BEGIN CERTIFICATE----- +MIID5jCCAs6gAwIBAgIQV8szb8JcFuZHFhfjkDFo4DANBgkqhkiG9w0BAQUFADBi +MQswCQYDVQQGEwJVUzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMu +MTAwLgYDVQQDEydOZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3Jp +dHkwHhcNMDYxMjAxMDAwMDAwWhcNMjkxMjMxMjM1OTU5WjBiMQswCQYDVQQGEwJV +UzEhMB8GA1UEChMYTmV0d29yayBTb2x1dGlvbnMgTC5MLkMuMTAwLgYDVQQDEydO +ZXR3b3JrIFNvbHV0aW9ucyBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkwggEiMA0GCSqG +SIb3DQEBAQUAA4IBDwAwggEKAoIBAQDkvH6SMG3G2I4rC7xGzuAnlt7e+foS0zwz +c7MEL7xxjOWftiJgPl9dzgn/ggwbmlFQGiaJ3dVhXRncEg8tCqJDXRfQNJIg6nPP +OCwGJgl6cvf6UDL4wpPTaaIjzkGxzOTVHzbRijr4jGPiFFlp7Q3Tf2vouAPlT2rl +mGNpSAW+Lv8ztumXWWn4Zxmuk2GWRBXTcrA/vGp97Eh/jcOrqnErU2lBUzS1sLnF +BgrEsEX1QV1uiUV7PTsmjHTC5dLRfbIR1PtYMiKagMnc/Qzpf14Dl847ABSHJ3A4 +qY5usyd2mFHgBeMhqxrVhSI8KbWaFsWAqPS7azCPL0YCorEMIuDTAgMBAAGjgZcw +gZQwHQYDVR0OBBYEFCEwyfsA106Y2oeqKtCnLrFAMadMMA4GA1UdDwEB/wQEAwIB +BjAPBgNVHRMBAf8EBTADAQH/MFIGA1UdHwRLMEkwR6BFoEOGQWh0dHA6Ly9jcmwu +bmV0c29sc3NsLmNvbS9OZXR3b3JrU29sdXRpb25zQ2VydGlmaWNhdGVBdXRob3Jp +dHkuY3JsMA0GCSqGSIb3DQEBBQUAA4IBAQC7rkvnt1frf6ott3NHhWrB5KUd5Oc8 +6fRZZXe1eltajSU24HqXLjjAV2CDmAaDn7l2em5Q4LqILPxFzBiwmZVRDuwduIj/ +h1AcgsLj4DKAv6ALR8jDMe+ZZzKATxcheQxpXN5eNK4CtSbqUN9/GGUsyfJj4akH +/nxxH2szJGoeBfcFaMBqEssuXmHLrijTfsK0ZpEmXzwuJF/LWA/rKOyvEZbz3Htv +wKeI8lN3s2Berq4o2jUsbzRF0ybh3uxbTydrFny9RAQYgrOJeRcQcT16ohZO9QHN +pGxlaKFJdlxDydi8NmdspZS11My5vWo1ViHe2MPr+8ukYEywVaCge1ey +-----END CERTIFICATE----- + +# Issuer: CN=COMODO ECC Certification Authority O=COMODO CA Limited +# Subject: CN=COMODO ECC Certification Authority O=COMODO CA Limited +# Label: "COMODO ECC Certification Authority" +# Serial: 41578283867086692638256921589707938090 +# MD5 Fingerprint: 7c:62:ff:74:9d:31:53:5e:68:4a:d5:78:aa:1e:bf:23 +# SHA1 Fingerprint: 9f:74:4e:9f:2b:4d:ba:ec:0f:31:2c:50:b6:56:3b:8e:2d:93:c3:11 +# SHA256 Fingerprint: 17:93:92:7a:06:14:54:97:89:ad:ce:2f:8f:34:f7:f0:b6:6d:0f:3a:e3:a3:b8:4d:21:ec:15:db:ba:4f:ad:c7 +-----BEGIN CERTIFICATE----- +MIICiTCCAg+gAwIBAgIQH0evqmIAcFBUTAGem2OZKjAKBggqhkjOPQQDAzCBhTEL +MAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UE +BxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMT +IkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwMzA2MDAw +MDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdy +ZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09N +T0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBFQ0MgQ2VydGlmaWNhdGlv +biBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQDR3svdcmCFYX7deSR +FtSrYpn1PlILBs5BAH+X4QokPB0BBO490o0JlwzgdeT6+3eKKvUDYEs2ixYjFq0J +cfRK9ChQtP6IHG4/bC8vCVlbpVsLM5niwz2J+Wos77LTBumjQjBAMB0GA1UdDgQW +BBR1cacZSBm8nZ3qQUfflMRId5nTeTAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjEA7wNbeqy3eApyt4jf/7VGFAkK+qDm +fQjGGoe9GKhzvSbKYAydzpmfz1wPMOG+FDHqAjAU9JM8SaczepBGR7NjfRObTrdv +GDeAU/7dIOA1mjbRxwG55tzd8/8dLDoWV9mSOdY= +-----END CERTIFICATE----- + +# Issuer: CN=OISTE WISeKey Global Root GA CA O=WISeKey OU=Copyright (c) 2005/OISTE Foundation Endorsed +# Subject: CN=OISTE WISeKey Global Root GA CA O=WISeKey OU=Copyright (c) 2005/OISTE Foundation Endorsed +# Label: "OISTE WISeKey Global Root GA CA" +# Serial: 86718877871133159090080555911823548314 +# MD5 Fingerprint: bc:6c:51:33:a7:e9:d3:66:63:54:15:72:1b:21:92:93 +# SHA1 Fingerprint: 59:22:a1:e1:5a:ea:16:35:21:f8:98:39:6a:46:46:b0:44:1b:0f:a9 +# SHA256 Fingerprint: 41:c9:23:86:6a:b4:ca:d6:b7:ad:57:80:81:58:2e:02:07:97:a6:cb:df:4f:ff:78:ce:83:96:b3:89:37:d7:f5 +-----BEGIN CERTIFICATE----- +MIID8TCCAtmgAwIBAgIQQT1yx/RrH4FDffHSKFTfmjANBgkqhkiG9w0BAQUFADCB +ijELMAkGA1UEBhMCQ0gxEDAOBgNVBAoTB1dJU2VLZXkxGzAZBgNVBAsTEkNvcHly +aWdodCAoYykgMjAwNTEiMCAGA1UECxMZT0lTVEUgRm91bmRhdGlvbiBFbmRvcnNl +ZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9iYWwgUm9vdCBHQSBDQTAeFw0w +NTEyMTExNjAzNDRaFw0zNzEyMTExNjA5NTFaMIGKMQswCQYDVQQGEwJDSDEQMA4G +A1UEChMHV0lTZUtleTEbMBkGA1UECxMSQ29weXJpZ2h0IChjKSAyMDA1MSIwIAYD +VQQLExlPSVNURSBGb3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBX +SVNlS2V5IEdsb2JhbCBSb290IEdBIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAy0+zAJs9Nt350UlqaxBJH+zYK7LG+DKBKUOVTJoZIyEVRd7jyBxR +VVuuk+g3/ytr6dTqvirdqFEr12bDYVxgAsj1znJ7O7jyTmUIms2kahnBAbtzptf2 +w93NvKSLtZlhuAGio9RN1AU9ka34tAhxZK9w8RxrfvbDd50kc3vkDIzh2TbhmYsF +mQvtRTEJysIA2/dyoJaqlYfQjse2YXMNdmaM3Bu0Y6Kff5MTMPGhJ9vZ/yxViJGg +4E8HsChWjBgbl0SOid3gF27nKu+POQoxhILYQBRJLnpB5Kf+42TMwVlxSywhp1t9 +4B3RLoGbw9ho972WG6xwsRYUC9tguSYBBQIDAQABo1EwTzALBgNVHQ8EBAMCAYYw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUswN+rja8sHnR3JQmthG+IbJphpQw +EAYJKwYBBAGCNxUBBAMCAQAwDQYJKoZIhvcNAQEFBQADggEBAEuh/wuHbrP5wUOx +SPMowB0uyQlB+pQAHKSkq0lPjz0e701vvbyk9vImMMkQyh2I+3QZH4VFvbBsUfk2 +ftv1TDI6QU9bR8/oCy22xBmddMVHxjtqD6wU2zz0c5ypBd8A3HR4+vg1YFkCExh8 +vPtNsCBtQ7tgMHpnM1zFmdH4LTlSc/uMqpclXHLZCB6rTjzjgTGfA6b7wP4piFXa +hNVQA7bihKOmNqoROgHhGEvWRGizPflTdISzRpFGlgC3gCy24eMQ4tui5yiPAZZi +Fj4A4xylNoEYokxSdsARo27mHbrjWr42U8U+dY+GaSlYU7Wcu2+fXMUY7N0v4ZjJ +/L7fCg0= +-----END CERTIFICATE----- + +# Issuer: CN=Certigna O=Dhimyotis +# Subject: CN=Certigna O=Dhimyotis +# Label: "Certigna" +# Serial: 18364802974209362175 +# MD5 Fingerprint: ab:57:a6:5b:7d:42:82:19:b5:d8:58:26:28:5e:fd:ff +# SHA1 Fingerprint: b1:2e:13:63:45:86:a4:6f:1a:b2:60:68:37:58:2d:c4:ac:fd:94:97 +# SHA256 Fingerprint: e3:b6:a2:db:2e:d7:ce:48:84:2f:7a:c5:32:41:c7:b7:1d:54:14:4b:fb:40:c1:1f:3f:1d:0b:42:f5:ee:a1:2d +-----BEGIN CERTIFICATE----- +MIIDqDCCApCgAwIBAgIJAP7c4wEPyUj/MA0GCSqGSIb3DQEBBQUAMDQxCzAJBgNV +BAYTAkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hMB4X +DTA3MDYyOTE1MTMwNVoXDTI3MDYyOTE1MTMwNVowNDELMAkGA1UEBhMCRlIxEjAQ +BgNVBAoMCURoaW15b3RpczERMA8GA1UEAwwIQ2VydGlnbmEwggEiMA0GCSqGSIb3 +DQEBAQUAA4IBDwAwggEKAoIBAQDIaPHJ1tazNHUmgh7stL7qXOEm7RFHYeGifBZ4 +QCHkYJ5ayGPhxLGWkv8YbWkj4Sti993iNi+RB7lIzw7sebYs5zRLcAglozyHGxny +gQcPOJAZ0xH+hrTy0V4eHpbNgGzOOzGTtvKg0KmVEn2lmsxryIRWijOp5yIVUxbw +zBfsV1/pogqYCd7jX5xv3EjjhQsVWqa6n6xI4wmy9/Qy3l40vhx4XUJbzg4ij02Q +130yGLMLLGq/jj8UEYkgDncUtT2UCIf3JR7VsmAA7G8qKCVuKj4YYxclPz5EIBb2 +JsglrgVKtOdjLPOMFlN+XPsRGgjBRmKfIrjxwo1p3Po6WAbfAgMBAAGjgbwwgbkw +DwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUGu3+QTmQtCRZvgHyUtVF9lo53BEw +ZAYDVR0jBF0wW4AUGu3+QTmQtCRZvgHyUtVF9lo53BGhOKQ2MDQxCzAJBgNVBAYT +AkZSMRIwEAYDVQQKDAlEaGlteW90aXMxETAPBgNVBAMMCENlcnRpZ25hggkA/tzj +AQ/JSP8wDgYDVR0PAQH/BAQDAgEGMBEGCWCGSAGG+EIBAQQEAwIABzANBgkqhkiG +9w0BAQUFAAOCAQEAhQMeknH2Qq/ho2Ge6/PAD/Kl1NqV5ta+aDY9fm4fTIrv0Q8h +bV6lUmPOEvjvKtpv6zf+EwLHyzs+ImvaYS5/1HI93TDhHkxAGYwP15zRgzB7mFnc +fca5DClMoTOi62c6ZYTTluLtdkVwj7Ur3vkj1kluPBS1xp81HlDQwY9qcEQCYsuu +HWhBp6pX6FOqB9IG9tUUBguRA3UsbHK1YZWaDYu5Def131TN3ubY1gkIl2PlwS6w +t0QmwCbAr1UwnjvVNioZBPRcHv/PLLf/0P2HQBHVESO7SMAhqaQoLf0V+LBOK/Qw +WyH8EZE0vkHve52Xdf+XlcCWWC/qu0bXu+TZLg== +-----END CERTIFICATE----- + +# Issuer: CN=Deutsche Telekom Root CA 2 O=Deutsche Telekom AG OU=T-TeleSec Trust Center +# Subject: CN=Deutsche Telekom Root CA 2 O=Deutsche Telekom AG OU=T-TeleSec Trust Center +# Label: "Deutsche Telekom Root CA 2" +# Serial: 38 +# MD5 Fingerprint: 74:01:4a:91:b1:08:c4:58:ce:47:cd:f0:dd:11:53:08 +# SHA1 Fingerprint: 85:a4:08:c0:9c:19:3e:5d:51:58:7d:cd:d6:13:30:fd:8c:de:37:bf +# SHA256 Fingerprint: b6:19:1a:50:d0:c3:97:7f:7d:a9:9b:cd:aa:c8:6a:22:7d:ae:b9:67:9e:c7:0b:a3:b0:c9:d9:22:71:c1:70:d3 +-----BEGIN CERTIFICATE----- +MIIDnzCCAoegAwIBAgIBJjANBgkqhkiG9w0BAQUFADBxMQswCQYDVQQGEwJERTEc +MBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxlU2Vj +IFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290IENB +IDIwHhcNOTkwNzA5MTIxMTAwWhcNMTkwNzA5MjM1OTAwWjBxMQswCQYDVQQGEwJE +RTEcMBoGA1UEChMTRGV1dHNjaGUgVGVsZWtvbSBBRzEfMB0GA1UECxMWVC1UZWxl +U2VjIFRydXN0IENlbnRlcjEjMCEGA1UEAxMaRGV1dHNjaGUgVGVsZWtvbSBSb290 +IENBIDIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCrC6M14IspFLEU +ha88EOQ5bzVdSq7d6mGNlUn0b2SjGmBmpKlAIoTZ1KXleJMOaAGtuU1cOs7TuKhC +QN/Po7qCWWqSG6wcmtoIKyUn+WkjR/Hg6yx6m/UTAtB+NHzCnjwAWav12gz1Mjwr +rFDa1sPeg5TKqAyZMg4ISFZbavva4VhYAUlfckE8FQYBjl2tqriTtM2e66foai1S +NNs671x1Udrb8zH57nGYMsRUFUQM+ZtV7a3fGAigo4aKSe5TBY8ZTNXeWHmb0moc +QqvF1afPaA+W5OFhmHZhyJF81j4A4pFQh+GdCuatl9Idxjp9y7zaAzTVjlsB9WoH +txa2bkp/AgMBAAGjQjBAMB0GA1UdDgQWBBQxw3kbuvVT1xfgiXotF2wKsyudMzAP +BgNVHRMECDAGAQH/AgEFMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQUFAAOC +AQEAlGRZrTlk5ynrE/5aw4sTV8gEJPB0d8Bg42f76Ymmg7+Wgnxu1MM9756Abrsp +tJh6sTtU6zkXR34ajgv8HzFZMQSyzhfzLMdiNlXiItiJVbSYSKpk+tYcNthEeFpa +IzpXl/V6ME+un2pMSyuOoAPjPuCp1NJ70rOo4nI8rZ7/gFnkm0W09juwzTkZmDLl +6iFhkOQxIY40sfcvNUqFENrnijchvllj4PKFiDFT1FQUhXB59C4Gdyd1Lx+4ivn+ +xbrYNuSD7Odlt79jWvNGr4GUN9RBjNYj1h7P9WgbRGOiWrqnNVmh5XAFmw4jV5mU +Cm26OWMohpLzGITY+9HPBVZkVw== +-----END CERTIFICATE----- + +# Issuer: CN=Cybertrust Global Root O=Cybertrust, Inc +# Subject: CN=Cybertrust Global Root O=Cybertrust, Inc +# Label: "Cybertrust Global Root" +# Serial: 4835703278459682877484360 +# MD5 Fingerprint: 72:e4:4a:87:e3:69:40:80:77:ea:bc:e3:f4:ff:f0:e1 +# SHA1 Fingerprint: 5f:43:e5:b1:bf:f8:78:8c:ac:1c:c7:ca:4a:9a:c6:22:2b:cc:34:c6 +# SHA256 Fingerprint: 96:0a:df:00:63:e9:63:56:75:0c:29:65:dd:0a:08:67:da:0b:9c:bd:6e:77:71:4a:ea:fb:23:49:ab:39:3d:a3 +-----BEGIN CERTIFICATE----- +MIIDoTCCAomgAwIBAgILBAAAAAABD4WqLUgwDQYJKoZIhvcNAQEFBQAwOzEYMBYG +A1UEChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2Jh +bCBSb290MB4XDTA2MTIxNTA4MDAwMFoXDTIxMTIxNTA4MDAwMFowOzEYMBYGA1UE +ChMPQ3liZXJ0cnVzdCwgSW5jMR8wHQYDVQQDExZDeWJlcnRydXN0IEdsb2JhbCBS +b290MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA+Mi8vRRQZhP/8NN5 +7CPytxrHjoXxEnOmGaoQ25yiZXRadz5RfVb23CO21O1fWLE3TdVJDm71aofW0ozS +J8bi/zafmGWgE07GKmSb1ZASzxQG9Dvj1Ci+6A74q05IlG2OlTEQXO2iLb3VOm2y +HLtgwEZLAfVJrn5GitB0jaEMAs7u/OePuGtm839EAL9mJRQr3RAwHQeWP032a7iP +t3sMpTjr3kfb1V05/Iin89cqdPHoWqI7n1C6poxFNcJQZZXcY4Lv3b93TZxiyWNz +FtApD0mpSPCzqrdsxacwOUBdrsTiXSZT8M4cIwhhqJQZugRiQOwfOHB3EgZxpzAY +XSUnpQIDAQABo4GlMIGiMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/ +MB0GA1UdDgQWBBS2CHsNesysIEyGVjJez6tuhS1wVzA/BgNVHR8EODA2MDSgMqAw +hi5odHRwOi8vd3d3Mi5wdWJsaWMtdHJ1c3QuY29tL2NybC9jdC9jdHJvb3QuY3Js +MB8GA1UdIwQYMBaAFLYIew16zKwgTIZWMl7Pq26FLXBXMA0GCSqGSIb3DQEBBQUA +A4IBAQBW7wojoFROlZfJ+InaRcHUowAl9B8Tq7ejhVhpwjCt2BWKLePJzYFa+HMj +Wqd8BfP9IjsO0QbE2zZMcwSO5bAi5MXzLqXZI+O4Tkogp24CJJ8iYGd7ix1yCcUx +XOl5n4BHPa2hCwcUPUf/A2kaDAtE52Mlp3+yybh2hO0j9n0Hq0V+09+zv+mKts2o +omcrUtW3ZfA5TGOgkXmTUg9U3YO7n9GPp1Nzw8v/MOx8BLjYRB+TX3EJIrduPuoc +A06dGiBh+4E37F78CkWr1+cXVdCg6mCbpvbjjFspwgZgFJ0tl0ypkxWdYcQBX0jW +WL1WMRJOEcgh4LMRkWXbtKaIOM5V +-----END CERTIFICATE----- + +# Issuer: O=Chunghwa Telecom Co., Ltd. OU=ePKI Root Certification Authority +# Subject: O=Chunghwa Telecom Co., Ltd. OU=ePKI Root Certification Authority +# Label: "ePKI Root Certification Authority" +# Serial: 28956088682735189655030529057352760477 +# MD5 Fingerprint: 1b:2e:00:ca:26:06:90:3d:ad:fe:6f:15:68:d3:6b:b3 +# SHA1 Fingerprint: 67:65:0d:f1:7e:8e:7e:5b:82:40:a4:f4:56:4b:cf:e2:3d:69:c6:f0 +# SHA256 Fingerprint: c0:a6:f4:dc:63:a2:4b:fd:cf:54:ef:2a:6a:08:2a:0a:72:de:35:80:3e:2f:f5:ff:52:7a:e5:d8:72:06:df:d5 +-----BEGIN CERTIFICATE----- +MIIFsDCCA5igAwIBAgIQFci9ZUdcr7iXAF7kBtK8nTANBgkqhkiG9w0BAQUFADBe +MQswCQYDVQQGEwJUVzEjMCEGA1UECgwaQ2h1bmdod2EgVGVsZWNvbSBDby4sIEx0 +ZC4xKjAoBgNVBAsMIWVQS0kgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe +Fw0wNDEyMjAwMjMxMjdaFw0zNDEyMjAwMjMxMjdaMF4xCzAJBgNVBAYTAlRXMSMw +IQYDVQQKDBpDaHVuZ2h3YSBUZWxlY29tIENvLiwgTHRkLjEqMCgGA1UECwwhZVBL +SSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIICIjANBgkqhkiG9w0BAQEF +AAOCAg8AMIICCgKCAgEA4SUP7o3biDN1Z82tH306Tm2d0y8U82N0ywEhajfqhFAH +SyZbCUNsIZ5qyNUD9WBpj8zwIuQf5/dqIjG3LBXy4P4AakP/h2XGtRrBp0xtInAh +ijHyl3SJCRImHJ7K2RKilTza6We/CKBk49ZCt0Xvl/T29de1ShUCWH2YWEtgvM3X +DZoTM1PRYfl61dd4s5oz9wCGzh1NlDivqOx4UXCKXBCDUSH3ET00hl7lSM2XgYI1 +TBnsZfZrxQWh7kcT1rMhJ5QQCtkkO7q+RBNGMD+XPNjX12ruOzjjK9SXDrkb5wdJ +fzcq+Xd4z1TtW0ado4AOkUPB1ltfFLqfpo0kR0BZv3I4sjZsN/+Z0V0OWQqraffA +sgRFelQArr5T9rXn4fg8ozHSqf4hUmTFpmfwdQcGlBSBVcYn5AGPF8Fqcde+S/uU +WH1+ETOxQvdibBjWzwloPn9s9h6PYq2lY9sJpx8iQkEeb5mKPtf5P0B6ebClAZLS +nT0IFaUQAS2zMnaolQ2zepr7BxB4EW/hj8e6DyUadCrlHJhBmd8hh+iVBmoKs2pH +dmX2Os+PYhcZewoozRrSgx4hxyy/vv9haLdnG7t4TY3OZ+XkwY63I2binZB1NJip +NiuKmpS5nezMirH4JYlcWrYvjB9teSSnUmjDhDXiZo1jDiVN1Rmy5nk3pyKdVDEC +AwEAAaNqMGgwHQYDVR0OBBYEFB4M97Zn8uGSJglFwFU5Lnc/QkqiMAwGA1UdEwQF +MAMBAf8wOQYEZyoHAAQxMC8wLQIBADAJBgUrDgMCGgUAMAcGBWcqAwAABBRFsMLH +ClZ87lt4DJX5GFPBphzYEDANBgkqhkiG9w0BAQUFAAOCAgEACbODU1kBPpVJufGB +uvl2ICO1J2B01GqZNF5sAFPZn/KmsSQHRGoqxqWOeBLoR9lYGxMqXnmbnwoqZ6Yl +PwZpVnPDimZI+ymBV3QGypzqKOg4ZyYr8dW1P2WT+DZdjo2NQCCHGervJ8A9tDkP +JXtoUHRVnAxZfVo9QZQlUgjgRywVMRnVvwdVxrsStZf0X4OFunHB2WyBEXYKCrC/ +gpf36j36+uwtqSiUO1bd0lEursC9CBWMd1I0ltabrNMdjmEPNXubrjlpC2JgQCA2 +j6/7Nu4tCEoduL+bXPjqpRugc6bY+G7gMwRfaKonh+3ZwZCc7b3jajWvY9+rGNm6 +5ulK6lCKD2GTHuItGeIwlDWSXQ62B68ZgI9HkFFLLk3dheLSClIKF5r8GrBQAuUB +o2M3IUxExJtRmREOc5wGj1QupyheRDmHVi03vYVElOEMSyycw5KFNGHLD7ibSkNS +/jQ6fbjpKdx2qcgw+BRxgMYeNkh0IkFch4LoGHGLQYlE535YW6i4jRPpp2zDR+2z +Gp1iro2C6pSe3VkQw63d4k3jMdXH7OjysP6SHhYKGvzZ8/gntsm+HbRsZJB/9OTE +W9c3rkIO3aQab3yIVMUWbuF6aC74Or8NpDyJO3inTmODBCEIZ43ygknQW/2xzQ+D +hNQ+IIX3Sj0rnP0qCglN6oH4EZw= +-----END CERTIFICATE----- + +# Issuer: O=certSIGN OU=certSIGN ROOT CA +# Subject: O=certSIGN OU=certSIGN ROOT CA +# Label: "certSIGN ROOT CA" +# Serial: 35210227249154 +# MD5 Fingerprint: 18:98:c0:d6:e9:3a:fc:f9:b0:f5:0c:f7:4b:01:44:17 +# SHA1 Fingerprint: fa:b7:ee:36:97:26:62:fb:2d:b0:2a:f6:bf:03:fd:e8:7c:4b:2f:9b +# SHA256 Fingerprint: ea:a9:62:c4:fa:4a:6b:af:eb:e4:15:19:6d:35:1c:cd:88:8d:4f:53:f3:fa:8a:e6:d7:c4:66:a9:4e:60:42:bb +-----BEGIN CERTIFICATE----- +MIIDODCCAiCgAwIBAgIGIAYFFnACMA0GCSqGSIb3DQEBBQUAMDsxCzAJBgNVBAYT +AlJPMREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBD +QTAeFw0wNjA3MDQxNzIwMDRaFw0zMTA3MDQxNzIwMDRaMDsxCzAJBgNVBAYTAlJP +MREwDwYDVQQKEwhjZXJ0U0lHTjEZMBcGA1UECxMQY2VydFNJR04gUk9PVCBDQTCC +ASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALczuX7IJUqOtdu0KBuqV5Do +0SLTZLrTk+jUrIZhQGpgV2hUhE28alQCBf/fm5oqrl0Hj0rDKH/v+yv6efHHrfAQ +UySQi2bJqIirr1qjAOm+ukbuW3N7LBeCgV5iLKECZbO9xSsAfsT8AzNXDe3i+s5d +RdY4zTW2ssHQnIFKquSyAVwdj1+ZxLGt24gh65AIgoDzMKND5pCCrlUoSe1b16kQ +OA7+j0xbm0bqQfWwCHTD0IgztnzXdN/chNFDDnU5oSVAKOp4yw4sLjmdjItuFhwv +JoIQ4uNllAoEwF73XVv4EOLQunpL+943AAAaWyjj0pxzPjKHmKHJUS/X3qwzs08C +AwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAcYwHQYDVR0O +BBYEFOCMm9slSbPxfIbWskKHC9BroNnkMA0GCSqGSIb3DQEBBQUAA4IBAQA+0hyJ +LjX8+HXd5n9liPRyTMks1zJO890ZeUe9jjtbkw9QSSQTaxQGcu8J06Gh40CEyecY +MnQ8SG4Pn0vU9x7Tk4ZkVJdjclDVVc/6IJMCopvDI5NOFlV2oHB5bc0hH88vLbwZ +44gx+FkagQnIl6Z0x2DEW8xXjrJ1/RsCCdtZb3KTafcxQdaIOL+Hsr0Wefmq5L6I +Jd1hJyMctTEHBDa0GpC9oHRxUIltvBTjD4au8as+x6AJzKNI0eDbZOeStc+vckNw +i/nDhDwTqn6Sm1dTk/pwwpEOMfmbZ13pljheX7NzTogVZ96edhBiIL5VaZVDADlN +9u6wWk5JRFRYX0KD +-----END CERTIFICATE----- + +# Issuer: CN=GeoTrust Primary Certification Authority - G3 O=GeoTrust Inc. OU=(c) 2008 GeoTrust Inc. - For authorized use only +# Subject: CN=GeoTrust Primary Certification Authority - G3 O=GeoTrust Inc. OU=(c) 2008 GeoTrust Inc. - For authorized use only +# Label: "GeoTrust Primary Certification Authority - G3" +# Serial: 28809105769928564313984085209975885599 +# MD5 Fingerprint: b5:e8:34:36:c9:10:44:58:48:70:6d:2e:83:d4:b8:05 +# SHA1 Fingerprint: 03:9e:ed:b8:0b:e7:a0:3c:69:53:89:3b:20:d2:d9:32:3a:4c:2a:fd +# SHA256 Fingerprint: b4:78:b8:12:25:0d:f8:78:63:5c:2a:a7:ec:7d:15:5e:aa:62:5e:e8:29:16:e2:cd:29:43:61:88:6c:d1:fb:d4 +-----BEGIN CERTIFICATE----- +MIID/jCCAuagAwIBAgIQFaxulBmyeUtB9iepwxgPHzANBgkqhkiG9w0BAQsFADCB +mDELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsT +MChjKSAyMDA4IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25s +eTE2MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhv +cml0eSAtIEczMB4XDTA4MDQwMjAwMDAwMFoXDTM3MTIwMTIzNTk1OVowgZgxCzAJ +BgNVBAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykg +MjAwOCBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0 +BgNVBAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkg +LSBHMzCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANziXmJYHTNXOTIz ++uvLh4yn1ErdBojqZI4xmKU4kB6Yzy5jK/BGvESyiaHAKAxJcCGVn2TAppMSAmUm +hsalifD614SgcK9PGpc/BkTVyetyEH3kMSj7HGHmKAdEc5IiaacDiGydY8hS2pgn +5whMcD60yRLBxWeDXTPzAxHsatBT4tG6NmCUgLthY2xbF37fQJQeqw3CIShwiP/W +JmxsYAQlTlV+fe+/lEjetx3dcI0FX4ilm/LC7urRQEFtYjgdVgbFA0dRIBn8exAL +DmKudlW/X3e+PkkBUz2YJQN2JFodtNuJ6nnltrM7P7pMKEF/BqxqjsHQ9gUdfeZC +huOl1UcCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYw +HQYDVR0OBBYEFMR5yo6hTgMdHNxr2zFblD4/MH8tMA0GCSqGSIb3DQEBCwUAA4IB +AQAtxRPPVoB7eni9n64smefv2t+UXglpp+duaIy9cr5HqQ6XErhK8WTTOd8lNNTB +zU6B8A8ExCSzNJbGpqow32hhc9f5joWJ7w5elShKKiePEI4ufIbEAp7aDHdlDkQN +kv39sxY2+hENHYwOB4lqKVb3cvTdFZx3NWZXqxNT2I7BQMXXExZacse3aQHEerGD +AWh9jUGhlBjBJVz88P6DAod8DQ3PLghcSkANPuyBYeYk28rgDi0Hsj5W3I31QYUH +SJsMC8tJP33st/3LjWeJGqvtux6jAAgIFyqCXDFdRootD4abdNlF+9RAsXqqaC2G +spki4cErx5z481+oghLrGREt +-----END CERTIFICATE----- + +# Issuer: CN=thawte Primary Root CA - G2 O=thawte, Inc. OU=(c) 2007 thawte, Inc. - For authorized use only +# Subject: CN=thawte Primary Root CA - G2 O=thawte, Inc. OU=(c) 2007 thawte, Inc. - For authorized use only +# Label: "thawte Primary Root CA - G2" +# Serial: 71758320672825410020661621085256472406 +# MD5 Fingerprint: 74:9d:ea:60:24:c4:fd:22:53:3e:cc:3a:72:d9:29:4f +# SHA1 Fingerprint: aa:db:bc:22:23:8f:c4:01:a1:27:bb:38:dd:f4:1d:db:08:9e:f0:12 +# SHA256 Fingerprint: a4:31:0d:50:af:18:a6:44:71:90:37:2a:86:af:af:8b:95:1f:fb:43:1d:83:7f:1e:56:88:b4:59:71:ed:15:57 +-----BEGIN CERTIFICATE----- +MIICiDCCAg2gAwIBAgIQNfwmXNmET8k9Jj1Xm67XVjAKBggqhkjOPQQDAzCBhDEL +MAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjE4MDYGA1UECxMvKGMp +IDIwMDcgdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAi +BgNVBAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMjAeFw0wNzExMDUwMDAw +MDBaFw0zODAxMTgyMzU5NTlaMIGEMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhh +d3RlLCBJbmMuMTgwNgYDVQQLEy8oYykgMjAwNyB0aGF3dGUsIEluYy4gLSBGb3Ig +YXV0aG9yaXplZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9v +dCBDQSAtIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAEotWcgnuVnfFSeIf+iha/ +BebfowJPDQfGAFG6DAJSLSKkQjnE/o/qycG+1E3/n3qe4rF8mq2nhglzh9HnmuN6 +papu+7qzcMBniKI11KOasf2twu8x+qi58/sIxpHR+ymVo0IwQDAPBgNVHRMBAf8E +BTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUmtgAMADna3+FGO6Lts6K +DPgR4bswCgYIKoZIzj0EAwMDaQAwZgIxAN344FdHW6fmCsO99YCKlzUNG4k8VIZ3 +KMqh9HneteY4sPBlcIx/AlTCv//YoT7ZzwIxAMSNlPzcU9LcnXgWHxUzI1NS41ox +XZ3Krr0TKUQNJ1uo52icEvdYPy5yAlejj6EULg== +-----END CERTIFICATE----- + +# Issuer: CN=thawte Primary Root CA - G3 O=thawte, Inc. OU=Certification Services Division/(c) 2008 thawte, Inc. - For authorized use only +# Subject: CN=thawte Primary Root CA - G3 O=thawte, Inc. OU=Certification Services Division/(c) 2008 thawte, Inc. - For authorized use only +# Label: "thawte Primary Root CA - G3" +# Serial: 127614157056681299805556476275995414779 +# MD5 Fingerprint: fb:1b:5d:43:8a:94:cd:44:c6:76:f2:43:4b:47:e7:31 +# SHA1 Fingerprint: f1:8b:53:8d:1b:e9:03:b6:a6:f0:56:43:5b:17:15:89:ca:f3:6b:f2 +# SHA256 Fingerprint: 4b:03:f4:58:07:ad:70:f2:1b:fc:2c:ae:71:c9:fd:e4:60:4c:06:4c:f5:ff:b6:86:ba:e5:db:aa:d7:fd:d3:4c +-----BEGIN CERTIFICATE----- +MIIEKjCCAxKgAwIBAgIQYAGXt0an6rS0mtZLL/eQ+zANBgkqhkiG9w0BAQsFADCB +rjELMAkGA1UEBhMCVVMxFTATBgNVBAoTDHRoYXd0ZSwgSW5jLjEoMCYGA1UECxMf +Q2VydGlmaWNhdGlvbiBTZXJ2aWNlcyBEaXZpc2lvbjE4MDYGA1UECxMvKGMpIDIw +MDggdGhhd3RlLCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxJDAiBgNV +BAMTG3RoYXd0ZSBQcmltYXJ5IFJvb3QgQ0EgLSBHMzAeFw0wODA0MDIwMDAwMDBa +Fw0zNzEyMDEyMzU5NTlaMIGuMQswCQYDVQQGEwJVUzEVMBMGA1UEChMMdGhhd3Rl +LCBJbmMuMSgwJgYDVQQLEx9DZXJ0aWZpY2F0aW9uIFNlcnZpY2VzIERpdmlzaW9u +MTgwNgYDVQQLEy8oYykgMjAwOCB0aGF3dGUsIEluYy4gLSBGb3IgYXV0aG9yaXpl +ZCB1c2Ugb25seTEkMCIGA1UEAxMbdGhhd3RlIFByaW1hcnkgUm9vdCBDQSAtIEcz +MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAsr8nLPvb2FvdeHsbnndm +gcs+vHyu86YnmjSjaDFxODNi5PNxZnmxqWWjpYvVj2AtP0LMqmsywCPLLEHd5N/8 +YZzic7IilRFDGF/Eth9XbAoFWCLINkw6fKXRz4aviKdEAhN0cXMKQlkC+BsUa0Lf +b1+6a4KinVvnSr0eAXLbS3ToO39/fR8EtCab4LRarEc9VbjXsCZSKAExQGbY2SS9 +9irY7CFJXJv2eul/VTV+lmuNk5Mny5K76qxAwJ/C+IDPXfRa3M50hqY+bAtTyr2S +zhkGcuYMXDhpxwTWvGzOW/b3aJzcJRVIiKHpqfiYnODz1TEoYRFsZ5aNOZnLwkUk +OQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNV +HQ4EFgQUrWyqlGCc7eT/+j4KdCtjA/e2Wb8wDQYJKoZIhvcNAQELBQADggEBABpA +2JVlrAmSicY59BDlqQ5mU1143vokkbvnRFHfxhY0Cu9qRFHqKweKA3rD6z8KLFIW +oCtDuSWQP3CpMyVtRRooOyfPqsMpQhvfO0zAMzRbQYi/aytlryjvsvXDqmbOe1bu +t8jLZ8HJnBoYuMTDSQPxYA5QzUbF83d597YV4Djbxy8ooAw/dyZ02SUS2jHaGh7c +KUGRIjxpp7sC8rZcJwOJ9Abqm+RyguOhCcHpABnTPtRwa7pxpqpYrvS76Wy274fM +m7v/OeZWYdMKp8RcTGB7BXcmer/YB1IsYvdwY9k5vG8cwnncdimvzsUsZAReiDZu +MdRAGmI0Nj81Aa6sY6A= +-----END CERTIFICATE----- + +# Issuer: CN=GeoTrust Primary Certification Authority - G2 O=GeoTrust Inc. OU=(c) 2007 GeoTrust Inc. - For authorized use only +# Subject: CN=GeoTrust Primary Certification Authority - G2 O=GeoTrust Inc. OU=(c) 2007 GeoTrust Inc. - For authorized use only +# Label: "GeoTrust Primary Certification Authority - G2" +# Serial: 80682863203381065782177908751794619243 +# MD5 Fingerprint: 01:5e:d8:6b:bd:6f:3d:8e:a1:31:f8:12:e0:98:73:6a +# SHA1 Fingerprint: 8d:17:84:d5:37:f3:03:7d:ec:70:fe:57:8b:51:9a:99:e6:10:d7:b0 +# SHA256 Fingerprint: 5e:db:7a:c4:3b:82:a0:6a:87:61:e8:d7:be:49:79:eb:f2:61:1f:7d:d7:9b:f9:1c:1c:6b:56:6a:21:9e:d7:66 +-----BEGIN CERTIFICATE----- +MIICrjCCAjWgAwIBAgIQPLL0SAoA4v7rJDteYD7DazAKBggqhkjOPQQDAzCBmDEL +MAkGA1UEBhMCVVMxFjAUBgNVBAoTDUdlb1RydXN0IEluYy4xOTA3BgNVBAsTMChj +KSAyMDA3IEdlb1RydXN0IEluYy4gLSBGb3IgYXV0aG9yaXplZCB1c2Ugb25seTE2 +MDQGA1UEAxMtR2VvVHJ1c3QgUHJpbWFyeSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0 +eSAtIEcyMB4XDTA3MTEwNTAwMDAwMFoXDTM4MDExODIzNTk1OVowgZgxCzAJBgNV +BAYTAlVTMRYwFAYDVQQKEw1HZW9UcnVzdCBJbmMuMTkwNwYDVQQLEzAoYykgMjAw +NyBHZW9UcnVzdCBJbmMuIC0gRm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxNjA0BgNV +BAMTLUdlb1RydXN0IFByaW1hcnkgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgLSBH +MjB2MBAGByqGSM49AgEGBSuBBAAiA2IABBWx6P0DFUPlrOuHNxFi79KDNlJ9RVcL +So17VDs6bl8VAsBQps8lL33KSLjHUGMcKiEIfJo22Av+0SbFWDEwKCXzXV2juLal +tJLtbCyf691DiaI8S0iRHVDsJt/WYC69IaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBVfNVdRVfslsq0DafwBo/q+EVXVMAoG +CCqGSM49BAMDA2cAMGQCMGSWWaboCd6LuvpaiIjwH5HTRqjySkwCY/tsXzjbLkGT +qQ7mndwxHLKgpxgceeHHNgIwOlavmnRs9vuD4DPTCF+hnMJbn0bWtsuRBmOiBucz +rD6ogRLQy7rQkgu2npaqBA+K +-----END CERTIFICATE----- + +# Issuer: CN=VeriSign Universal Root Certification Authority O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2008 VeriSign, Inc. - For authorized use only +# Subject: CN=VeriSign Universal Root Certification Authority O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2008 VeriSign, Inc. - For authorized use only +# Label: "VeriSign Universal Root Certification Authority" +# Serial: 85209574734084581917763752644031726877 +# MD5 Fingerprint: 8e:ad:b5:01:aa:4d:81:e4:8c:1d:d1:e1:14:00:95:19 +# SHA1 Fingerprint: 36:79:ca:35:66:87:72:30:4d:30:a5:fb:87:3b:0f:a7:7b:b7:0d:54 +# SHA256 Fingerprint: 23:99:56:11:27:a5:71:25:de:8c:ef:ea:61:0d:df:2f:a0:78:b5:c8:06:7f:4e:82:82:90:bf:b8:60:e8:4b:3c +-----BEGIN CERTIFICATE----- +MIIEuTCCA6GgAwIBAgIQQBrEZCGzEyEDDrvkEhrFHTANBgkqhkiG9w0BAQsFADCB +vTELMAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQL +ExZWZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwOCBWZXJp +U2lnbiwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MTgwNgYDVQQDEy9W +ZXJpU2lnbiBVbml2ZXJzYWwgUm9vdCBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTAe +Fw0wODA0MDIwMDAwMDBaFw0zNzEyMDEyMzU5NTlaMIG9MQswCQYDVQQGEwJVUzEX +MBUGA1UEChMOVmVyaVNpZ24sIEluYy4xHzAdBgNVBAsTFlZlcmlTaWduIFRydXN0 +IE5ldHdvcmsxOjA4BgNVBAsTMShjKSAyMDA4IFZlcmlTaWduLCBJbmMuIC0gRm9y +IGF1dGhvcml6ZWQgdXNlIG9ubHkxODA2BgNVBAMTL1ZlcmlTaWduIFVuaXZlcnNh +bCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5MIIBIjANBgkqhkiG9w0BAQEF +AAOCAQ8AMIIBCgKCAQEAx2E3XrEBNNti1xWb/1hajCMj1mCOkdeQmIN65lgZOIzF +9uVkhbSicfvtvbnazU0AtMgtc6XHaXGVHzk8skQHnOgO+k1KxCHfKWGPMiJhgsWH +H26MfF8WIFFE0XBPV+rjHOPMee5Y2A7Cs0WTwCznmhcrewA3ekEzeOEz4vMQGn+H +LL729fdC4uW/h2KJXwBL38Xd5HVEMkE6HnFuacsLdUYI0crSK5XQz/u5QGtkjFdN +/BMReYTtXlT2NJ8IAfMQJQYXStrxHXpma5hgZqTZ79IugvHw7wnqRMkVauIDbjPT +rJ9VAMf2CGqUuV/c4DPxhGD5WycRtPwW8rtWaoAljQIDAQABo4GyMIGvMA8GA1Ud +EwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMG0GCCsGAQUFBwEMBGEwX6FdoFsw +WTBXMFUWCWltYWdlL2dpZjAhMB8wBwYFKw4DAhoEFI/l0xqGrI2Oa8PPgGrUSBgs +exkuMCUWI2h0dHA6Ly9sb2dvLnZlcmlzaWduLmNvbS92c2xvZ28uZ2lmMB0GA1Ud +DgQWBBS2d/ppSEefUxLVwuoHMnYH0ZcHGTANBgkqhkiG9w0BAQsFAAOCAQEASvj4 +sAPmLGd75JR3Y8xuTPl9Dg3cyLk1uXBPY/ok+myDjEedO2Pzmvl2MpWRsXe8rJq+ +seQxIcaBlVZaDrHC1LGmWazxY8u4TB1ZkErvkBYoH1quEPuBUDgMbMzxPcP1Y+Oz +4yHJJDnp/RVmRvQbEdBNc6N9Rvk97ahfYtTxP/jgdFcrGJ2BtMQo2pSXpXDrrB2+ +BxHw1dvd5Yzw1TKwg+ZX4o+/vqGqvz0dtdQ46tewXDpPaj+PwGZsY6rp2aQW9IHR +lRQOfc2VNNnSj3BzgXucfr2YYdhFh5iQxeuGMMY1v/D/w1WIg0vvBZIGcfK4mJO3 +7M2CYfE45k+XmCpajQ== +-----END CERTIFICATE----- + +# Issuer: CN=VeriSign Class 3 Public Primary Certification Authority - G4 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2007 VeriSign, Inc. - For authorized use only +# Subject: CN=VeriSign Class 3 Public Primary Certification Authority - G4 O=VeriSign, Inc. OU=VeriSign Trust Network/(c) 2007 VeriSign, Inc. - For authorized use only +# Label: "VeriSign Class 3 Public Primary Certification Authority - G4" +# Serial: 63143484348153506665311985501458640051 +# MD5 Fingerprint: 3a:52:e1:e7:fd:6f:3a:e3:6f:f3:6f:99:1b:f9:22:41 +# SHA1 Fingerprint: 22:d5:d8:df:8f:02:31:d1:8d:f7:9d:b7:cf:8a:2d:64:c9:3f:6c:3a +# SHA256 Fingerprint: 69:dd:d7:ea:90:bb:57:c9:3e:13:5d:c8:5e:a6:fc:d5:48:0b:60:32:39:bd:c4:54:fc:75:8b:2a:26:cf:7f:79 +-----BEGIN CERTIFICATE----- +MIIDhDCCAwqgAwIBAgIQL4D+I4wOIg9IZxIokYesszAKBggqhkjOPQQDAzCByjEL +MAkGA1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZW +ZXJpU2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2ln +biwgSW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJp +U2lnbiBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9y +aXR5IC0gRzQwHhcNMDcxMTA1MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCByjELMAkG +A1UEBhMCVVMxFzAVBgNVBAoTDlZlcmlTaWduLCBJbmMuMR8wHQYDVQQLExZWZXJp +U2lnbiBUcnVzdCBOZXR3b3JrMTowOAYDVQQLEzEoYykgMjAwNyBWZXJpU2lnbiwg +SW5jLiAtIEZvciBhdXRob3JpemVkIHVzZSBvbmx5MUUwQwYDVQQDEzxWZXJpU2ln +biBDbGFzcyAzIFB1YmxpYyBQcmltYXJ5IENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +IC0gRzQwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAASnVnp8Utpkmw4tXNherJI9/gHm +GUo9FANL+mAnINmDiWn6VMaaGF5VKmTeBvaNSjutEDxlPZCIBIngMGGzrl0Bp3ve +fLK+ymVhAIau2o970ImtTR1ZmkGxvEeA3J5iw/mjgbIwga8wDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwbQYIKwYBBQUHAQwEYTBfoV2gWzBZMFcwVRYJ +aW1hZ2UvZ2lmMCEwHzAHBgUrDgMCGgQUj+XTGoasjY5rw8+AatRIGCx7GS4wJRYj +aHR0cDovL2xvZ28udmVyaXNpZ24uY29tL3ZzbG9nby5naWYwHQYDVR0OBBYEFLMW +kf3upm7ktS5Jj4d4gYDs5bG1MAoGCCqGSM49BAMDA2gAMGUCMGYhDBgmYFo4e1ZC +4Kf8NoRRkSAsdk1DPcQdhCPQrNZ8NQbOzWm9kA3bbEhCHQ6qQgIxAJw9SDkjOVga +FRJZap7v1VmyHVIsmXHNxynfGyphe3HR3vPA5Q06Sqotp9iGKt0uEA== +-----END CERTIFICATE----- + +# Issuer: CN=NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny O=NetLock Kft. OU=Tan\xfas\xedtv\xe1nykiad\xf3k (Certification Services) +# Subject: CN=NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny O=NetLock Kft. OU=Tan\xfas\xedtv\xe1nykiad\xf3k (Certification Services) +# Label: "NetLock Arany (Class Gold) F\u0151tan\xfas\xedtv\xe1ny" +# Serial: 80544274841616 +# MD5 Fingerprint: c5:a1:b7:ff:73:dd:d6:d7:34:32:18:df:fc:3c:ad:88 +# SHA1 Fingerprint: 06:08:3f:59:3f:15:a1:04:a0:69:a4:6b:a9:03:d0:06:b7:97:09:91 +# SHA256 Fingerprint: 6c:61:da:c3:a2:de:f0:31:50:6b:e0:36:d2:a6:fe:40:19:94:fb:d1:3d:f9:c8:d4:66:59:92:74:c4:46:ec:98 +-----BEGIN CERTIFICATE----- +MIIEFTCCAv2gAwIBAgIGSUEs5AAQMA0GCSqGSIb3DQEBCwUAMIGnMQswCQYDVQQG +EwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFTATBgNVBAoMDE5ldExvY2sgS2Z0LjE3 +MDUGA1UECwwuVGFuw7pzw610dsOhbnlraWFkw7NrIChDZXJ0aWZpY2F0aW9uIFNl +cnZpY2VzKTE1MDMGA1UEAwwsTmV0TG9jayBBcmFueSAoQ2xhc3MgR29sZCkgRsWR +dGFuw7pzw610dsOhbnkwHhcNMDgxMjExMTUwODIxWhcNMjgxMjA2MTUwODIxWjCB +pzELMAkGA1UEBhMCSFUxETAPBgNVBAcMCEJ1ZGFwZXN0MRUwEwYDVQQKDAxOZXRM +b2NrIEtmdC4xNzA1BgNVBAsMLlRhbsO6c8OtdHbDoW55a2lhZMOzayAoQ2VydGlm +aWNhdGlvbiBTZXJ2aWNlcykxNTAzBgNVBAMMLE5ldExvY2sgQXJhbnkgKENsYXNz +IEdvbGQpIEbFkXRhbsO6c8OtdHbDoW55MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8A +MIIBCgKCAQEAxCRec75LbRTDofTjl5Bu0jBFHjzuZ9lk4BqKf8owyoPjIMHj9DrT +lF8afFttvzBPhCf2nx9JvMaZCpDyD/V/Q4Q3Y1GLeqVw/HpYzY6b7cNGbIRwXdrz +AZAj/E4wqX7hJ2Pn7WQ8oLjJM2P+FpD/sLj916jAwJRDC7bVWaaeVtAkH3B5r9s5 +VA1lddkVQZQBr17s9o3x/61k/iCa11zr/qYfCGSji3ZVrR47KGAuhyXoqq8fxmRG +ILdwfzzeSNuWU7c5d+Qa4scWhHaXWy+7GRWF+GmF9ZmnqfI0p6m2pgP8b4Y9VHx2 +BJtr+UBdADTHLpl1neWIA6pN+APSQnbAGwIDAKiLo0UwQzASBgNVHRMBAf8ECDAG +AQH/AgEEMA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUzPpnk/C2uNClwB7zU/2M +U9+D15YwDQYJKoZIhvcNAQELBQADggEBAKt/7hwWqZw8UQCgwBEIBaeZ5m8BiFRh +bvG5GK1Krf6BQCOUL/t1fC8oS2IkgYIL9WHxHG64YTjrgfpioTtaYtOUZcTh5m2C ++C8lcLIhJsFyUR+MLMOEkMNaj7rP9KdlpeuY0fsFskZ1FSNqb4VjMIDw1Z4fKRzC +bLBQWV2QWzuoDTDPv31/zvGdg73JRm4gpvlhUbohL3u+pRVjodSVh/GeufOJ8z2F +uLjbvrW5KfnaNwUASZQDhETnv0Mxz3WLJdH0pmT1kvarBes96aULNmLazAZfNou2 +XjG4Kvte9nHfRCaexOYNkbQudZWAUWpLMKawYqGT8ZvYzsRjdT9ZR7E= +-----END CERTIFICATE----- + +# Issuer: CN=Staat der Nederlanden Root CA - G2 O=Staat der Nederlanden +# Subject: CN=Staat der Nederlanden Root CA - G2 O=Staat der Nederlanden +# Label: "Staat der Nederlanden Root CA - G2" +# Serial: 10000012 +# MD5 Fingerprint: 7c:a5:0f:f8:5b:9a:7d:6d:30:ae:54:5a:e3:42:a2:8a +# SHA1 Fingerprint: 59:af:82:79:91:86:c7:b4:75:07:cb:cf:03:57:46:eb:04:dd:b7:16 +# SHA256 Fingerprint: 66:8c:83:94:7d:a6:3b:72:4b:ec:e1:74:3c:31:a0:e6:ae:d0:db:8e:c5:b3:1b:e3:77:bb:78:4f:91:b6:71:6f +-----BEGIN CERTIFICATE----- +MIIFyjCCA7KgAwIBAgIEAJiWjDANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO +TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh +dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEcyMB4XDTA4MDMyNjExMTgxN1oX +DTIwMDMyNTExMDMxMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl +ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv +b3QgQ0EgLSBHMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMVZ5291 +qj5LnLW4rJ4L5PnZyqtdj7U5EILXr1HgO+EASGrP2uEGQxGZqhQlEq0i6ABtQ8Sp +uOUfiUtnvWFI7/3S4GCI5bkYYCjDdyutsDeqN95kWSpGV+RLufg3fNU254DBtvPU +Z5uW6M7XxgpT0GtJlvOjCwV3SPcl5XCsMBQgJeN/dVrlSPhOewMHBPqCYYdu8DvE +pMfQ9XQ+pV0aCPKbJdL2rAQmPlU6Yiile7Iwr/g3wtG61jj99O9JMDeZJiFIhQGp +5Rbn3JBV3w/oOM2ZNyFPXfUib2rFEhZgF1XyZWampzCROME4HYYEhLoaJXhena/M +UGDWE4dS7WMfbWV9whUYdMrhfmQpjHLYFhN9C0lK8SgbIHRrxT3dsKpICT0ugpTN +GmXZK4iambwYfp/ufWZ8Pr2UuIHOzZgweMFvZ9C+X+Bo7d7iscksWXiSqt8rYGPy +5V6548r6f1CGPqI0GAwJaCgRHOThuVw+R7oyPxjMW4T182t0xHJ04eOLoEq9jWYv +6q012iDTiIJh8BIitrzQ1aTsr1SIJSQ8p22xcik/Plemf1WvbibG/ufMQFxRRIEK +eN5KzlW/HdXZt1bv8Hb/C3m1r737qWmRRpdogBQ2HbN/uymYNqUg+oJgYjOk7Na6 +B6duxc8UpufWkjTYgfX8HV2qXB72o007uPc5AgMBAAGjgZcwgZQwDwYDVR0TAQH/ +BAUwAwEB/zBSBgNVHSAESzBJMEcGBFUdIAAwPzA9BggrBgEFBQcCARYxaHR0cDov +L3d3dy5wa2lvdmVyaGVpZC5ubC9wb2xpY2llcy9yb290LXBvbGljeS1HMjAOBgNV +HQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJFoMocVHYnitfGsNig0jQt8YojrMA0GCSqG +SIb3DQEBCwUAA4ICAQCoQUpnKpKBglBu4dfYszk78wIVCVBR7y29JHuIhjv5tLyS +CZa59sCrI2AGeYwRTlHSeYAz+51IvuxBQ4EffkdAHOV6CMqqi3WtFMTC6GY8ggen +5ieCWxjmD27ZUD6KQhgpxrRW/FYQoAUXvQwjf/ST7ZwaUb7dRUG/kSS0H4zpX897 +IZmflZ85OkYcbPnNe5yQzSipx6lVu6xiNGI1E0sUOlWDuYaNkqbG9AclVMwWVxJK +gnjIFNkXgiYtXSAfea7+1HAWFpWD2DU5/1JddRwWxRNVz0fMdWVSSt7wsKfkCpYL ++63C4iWEst3kvX5ZbJvw8NjnyvLplzh+ib7M+zkXYT9y2zqR2GUBGR2tUKRXCnxL +vJxxcypFURmFzI79R6d0lR2o0a9OF7FpJsKqeFdbxU2n5Z4FF5TKsl+gSRiNNOkm +bEgeqmiSBeGCc1qb3AdbCG19ndeNIdn8FCCqwkXfP+cAslHkwvgFuXkajDTznlvk +N1trSt8sV4pAWja63XVECDdCcAz+3F4hoKOKwJCcaNpQ5kUQR3i2TtJlycM33+FC +Y7BXN0Ute4qcvwXqZVUz9zkQxSgqIXobisQk+T8VyJoVIPVVYpbtbZNQvOSqeK3Z +ywplh6ZmwcSBo3c6WB4L7oOLnR7SUqTMHW+wmG2UMbX4cQrcufx9MmDm66+KAQ== +-----END CERTIFICATE----- + +# Issuer: CN=Hongkong Post Root CA 1 O=Hongkong Post +# Subject: CN=Hongkong Post Root CA 1 O=Hongkong Post +# Label: "Hongkong Post Root CA 1" +# Serial: 1000 +# MD5 Fingerprint: a8:0d:6f:39:78:b9:43:6d:77:42:6d:98:5a:cc:23:ca +# SHA1 Fingerprint: d6:da:a8:20:8d:09:d2:15:4d:24:b5:2f:cb:34:6e:b2:58:b2:8a:58 +# SHA256 Fingerprint: f9:e6:7d:33:6c:51:00:2a:c0:54:c6:32:02:2d:66:dd:a2:e7:e3:ff:f1:0a:d0:61:ed:31:d8:bb:b4:10:cf:b2 +-----BEGIN CERTIFICATE----- +MIIDMDCCAhigAwIBAgICA+gwDQYJKoZIhvcNAQEFBQAwRzELMAkGA1UEBhMCSEsx +FjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdrb25nIFBvc3Qg +Um9vdCBDQSAxMB4XDTAzMDUxNTA1MTMxNFoXDTIzMDUxNTA0NTIyOVowRzELMAkG +A1UEBhMCSEsxFjAUBgNVBAoTDUhvbmdrb25nIFBvc3QxIDAeBgNVBAMTF0hvbmdr +b25nIFBvc3QgUm9vdCBDQSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEArP84tulmAknjorThkPlAj3n54r15/gK97iSSHSL22oVyaf7XPwnU3ZG1ApzQ +jVrhVcNQhrkpJsLj2aDxaQMoIIBFIi1WpztUlVYiWR8o3x8gPW2iNr4joLFutbEn +PzlTCeqrauh0ssJlXI6/fMN4hM2eFvz1Lk8gKgifd/PFHsSaUmYeSF7jEAaPIpjh +ZY4bXSNmO7ilMlHIhqqhqZ5/dpTCpmy3QfDVyAY45tQM4vM7TG1QjMSDJ8EThFk9 +nnV0ttgCXjqQesBCNnLsak3c78QA3xMYV18meMjWCnl3v/evt3a5pQuEF10Q6m/h +q5URX208o1xNg1vysxmKgIsLhwIDAQABoyYwJDASBgNVHRMBAf8ECDAGAQH/AgED +MA4GA1UdDwEB/wQEAwIBxjANBgkqhkiG9w0BAQUFAAOCAQEADkbVPK7ih9legYsC +mEEIjEy82tvuJxuC52pF7BaLT4Wg87JwvVqWuspube5Gi27nKi6Wsxkz67SfqLI3 +7piol7Yutmcn1KZJ/RyTZXaeQi/cImyaT/JaFTmxcdcrUehtHJjA2Sr0oYJ71clB +oiMBdDhViw+5LmeiIAQ32pwL0xch4I+XeTRvhEgCIDMb5jREn5Fw9IBehEPCKdJs +EhTkYY2sEJCehFC78JZvRZ+K88psT/oROhUVRsPNH4NbLUES7VBnQRM9IauUiqpO +fMGx+6fWtScvl6tu4B3i0RwsH0Ti/L6RoZz71ilTc4afU9hDDl3WY4JxHYB0yvbi +AmvZWg== +-----END CERTIFICATE----- + +# Issuer: CN=SecureSign RootCA11 O=Japan Certification Services, Inc. +# Subject: CN=SecureSign RootCA11 O=Japan Certification Services, Inc. +# Label: "SecureSign RootCA11" +# Serial: 1 +# MD5 Fingerprint: b7:52:74:e2:92:b4:80:93:f2:75:e4:cc:d7:f2:ea:26 +# SHA1 Fingerprint: 3b:c4:9f:48:f8:f3:73:a0:9c:1e:bd:f8:5b:b1:c3:65:c7:d8:11:b3 +# SHA256 Fingerprint: bf:0f:ee:fb:9e:3a:58:1a:d5:f9:e9:db:75:89:98:57:43:d2:61:08:5c:4d:31:4f:6f:5d:72:59:aa:42:16:12 +-----BEGIN CERTIFICATE----- +MIIDbTCCAlWgAwIBAgIBATANBgkqhkiG9w0BAQUFADBYMQswCQYDVQQGEwJKUDEr +MCkGA1UEChMiSmFwYW4gQ2VydGlmaWNhdGlvbiBTZXJ2aWNlcywgSW5jLjEcMBoG +A1UEAxMTU2VjdXJlU2lnbiBSb290Q0ExMTAeFw0wOTA0MDgwNDU2NDdaFw0yOTA0 +MDgwNDU2NDdaMFgxCzAJBgNVBAYTAkpQMSswKQYDVQQKEyJKYXBhbiBDZXJ0aWZp +Y2F0aW9uIFNlcnZpY2VzLCBJbmMuMRwwGgYDVQQDExNTZWN1cmVTaWduIFJvb3RD +QTExMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA/XeqpRyQBTvLTJsz +i1oURaTnkBbR31fSIRCkF/3frNYfp+TbfPfs37gD2pRY/V1yfIw/XwFndBWW4wI8 +h9uuywGOwvNmxoVF9ALGOrVisq/6nL+k5tSAMJjzDbaTj6nU2DbysPyKyiyhFTOV +MdrAG/LuYpmGYz+/3ZMqg6h2uRMft85OQoWPIucuGvKVCbIFtUROd6EgvanyTgp9 +UK31BQ1FT0Zx/Sg+U/sE2C3XZR1KG/rPO7AxmjVuyIsG0wCR8pQIZUyxNAYAeoni +8McDWc/V1uinMrPmmECGxc0nEovMe863ETxiYAcjPitAbpSACW22s293bzUIUPsC +h8U+iQIDAQABo0IwQDAdBgNVHQ4EFgQUW/hNT7KlhtQ60vFjmqC+CfZXt94wDgYD +VR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEFBQADggEB +AKChOBZmLqdWHyGcBvod7bkixTgm2E5P7KN/ed5GIaGHd48HCJqypMWvDzKYC3xm +KbabfSVSSUOrTC4rbnpwrxYO4wJs+0LmGJ1F2FXI6Dvd5+H0LgscNFxsWEr7jIhQ +X5Ucv+2rIrVls4W6ng+4reV6G4pQOh29Dbx7VFALuUKvVaAYga1lme++5Jy/xIWr +QbJUb9wlze144o4MjQlJ3WN7WmmWAiGovVJZ6X01y8hSyn+B/tlr0/cR7SXf+Of5 +pPpyl4RTDaXQMhhRdlkUbA/r7F+AjHVDg8OFmP9Mni0N5HeDk061lgeLKBObjBmN +QSdJQO7e5iNEOdyhIta6A/I= +-----END CERTIFICATE----- + +# Issuer: CN=Microsec e-Szigno Root CA 2009 O=Microsec Ltd. +# Subject: CN=Microsec e-Szigno Root CA 2009 O=Microsec Ltd. +# Label: "Microsec e-Szigno Root CA 2009" +# Serial: 14014712776195784473 +# MD5 Fingerprint: f8:49:f4:03:bc:44:2d:83:be:48:69:7d:29:64:fc:b1 +# SHA1 Fingerprint: 89:df:74:fe:5c:f4:0f:4a:80:f9:e3:37:7d:54:da:91:e1:01:31:8e +# SHA256 Fingerprint: 3c:5f:81:fe:a5:fa:b8:2c:64:bf:a2:ea:ec:af:cd:e8:e0:77:fc:86:20:a7:ca:e5:37:16:3d:f3:6e:db:f3:78 +-----BEGIN CERTIFICATE----- +MIIECjCCAvKgAwIBAgIJAMJ+QwRORz8ZMA0GCSqGSIb3DQEBCwUAMIGCMQswCQYD +VQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3QxFjAUBgNVBAoMDU1pY3Jvc2VjIEx0 +ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3ppZ25vIFJvb3QgQ0EgMjAwOTEfMB0G +CSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5odTAeFw0wOTA2MTYxMTMwMThaFw0y +OTEyMzAxMTMwMThaMIGCMQswCQYDVQQGEwJIVTERMA8GA1UEBwwIQnVkYXBlc3Qx +FjAUBgNVBAoMDU1pY3Jvc2VjIEx0ZC4xJzAlBgNVBAMMHk1pY3Jvc2VjIGUtU3pp +Z25vIFJvb3QgQ0EgMjAwOTEfMB0GCSqGSIb3DQEJARYQaW5mb0BlLXN6aWduby5o +dTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAOn4j/NjrdqG2KfgQvvP +kd6mJviZpWNwrZuuyjNAfW2WbqEORO7hE52UQlKavXWFdCyoDh2Tthi3jCyoz/tc +cbna7P7ofo/kLx2yqHWH2Leh5TvPmUpG0IMZfcChEhyVbUr02MelTTMuhTlAdX4U +fIASmFDHQWe4oIBhVKZsTh/gnQ4H6cm6M+f+wFUoLAKApxn1ntxVUwOXewdI/5n7 +N4okxFnMUBBjjqqpGrCEGob5X7uxUG6k0QrM1XF+H6cbfPVTbiJfyyvm1HxdrtbC +xkzlBQHZ7Vf8wSN5/PrIJIOV87VqUQHQd9bpEqH5GoP7ghu5sJf0dgYzQ0mg/wu1 ++rUCAwEAAaOBgDB+MA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0G +A1UdDgQWBBTLD8bfQkPMPcu1SCOhGnqmKrs0aDAfBgNVHSMEGDAWgBTLD8bfQkPM +Pcu1SCOhGnqmKrs0aDAbBgNVHREEFDASgRBpbmZvQGUtc3ppZ25vLmh1MA0GCSqG +SIb3DQEBCwUAA4IBAQDJ0Q5eLtXMs3w+y/w9/w0olZMEyL/azXm4Q5DwpL7v8u8h +mLzU1F0G9u5C7DBsoKqpyvGvivo/C3NqPuouQH4frlRheesuCDfXI/OMn74dseGk +ddug4lQUsbocKaQY9hK6ohQU4zE1yED/t+AFdlfBHFny+L/k7SViXITwfn4fs775 +tyERzAMBVnCnEJIeGzSBHq2cGsMEPO0CYdYeBvNfOofyK/FFh+U9rNHHV4S9a67c +2Pm2G2JwCz02yULyMtd6YebS2z3PyKnJm9zbWETXbzivf3jTo60adbocwTZ8jx5t +HMN1Rq41Bab2XD0h7lbwyYIiLXpUq3DDfSJlgnCW +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign Root CA - R3 +# Label: "GlobalSign Root CA - R3" +# Serial: 4835703278459759426209954 +# MD5 Fingerprint: c5:df:b8:49:ca:05:13:55:ee:2d:ba:1a:c3:3e:b0:28 +# SHA1 Fingerprint: d6:9b:56:11:48:f0:1c:77:c5:45:78:c1:09:26:df:5b:85:69:76:ad +# SHA256 Fingerprint: cb:b5:22:d7:b7:f1:27:ad:6a:01:13:86:5b:df:1c:d4:10:2e:7d:07:59:af:63:5a:7c:f4:72:0d:c9:63:c5:3b +-----BEGIN CERTIFICATE----- +MIIDXzCCAkegAwIBAgILBAAAAAABIVhTCKIwDQYJKoZIhvcNAQELBQAwTDEgMB4G +A1UECxMXR2xvYmFsU2lnbiBSb290IENBIC0gUjMxEzARBgNVBAoTCkdsb2JhbFNp +Z24xEzARBgNVBAMTCkdsb2JhbFNpZ24wHhcNMDkwMzE4MTAwMDAwWhcNMjkwMzE4 +MTAwMDAwWjBMMSAwHgYDVQQLExdHbG9iYWxTaWduIFJvb3QgQ0EgLSBSMzETMBEG +A1UEChMKR2xvYmFsU2lnbjETMBEGA1UEAxMKR2xvYmFsU2lnbjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAMwldpB5BngiFvXAg7aEyiie/QV2EcWtiHL8 +RgJDx7KKnQRfJMsuS+FggkbhUqsMgUdwbN1k0ev1LKMPgj0MK66X17YUhhB5uzsT +gHeMCOFJ0mpiLx9e+pZo34knlTifBtc+ycsmWQ1z3rDI6SYOgxXG71uL0gRgykmm +KPZpO/bLyCiR5Z2KYVc3rHQU3HTgOu5yLy6c+9C7v/U9AOEGM+iCK65TpjoWc4zd +QQ4gOsC0p6Hpsk+QLjJg6VfLuQSSaGjlOCZgdbKfd/+RFO+uIEn8rUAVSNECMWEZ +XriX7613t2Saer9fwRPvm2L7DWzgVGkWqQPabumDk3F2xmmFghcCAwEAAaNCMEAw +DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFI/wS3+o +LkUkrk1Q+mOai97i3Ru8MA0GCSqGSIb3DQEBCwUAA4IBAQBLQNvAUKr+yAzv95ZU +RUm7lgAJQayzE4aGKAczymvmdLm6AC2upArT9fHxD4q/c2dKg8dEe3jgr25sbwMp +jjM5RcOO5LlXbKr8EpbsU8Yt5CRsuZRj+9xTaGdWPoO4zzUhw8lo/s7awlOqzJCK +6fBdRoyV3XpYKBovHd7NADdBj+1EbddTKJd+82cEHhXXipa0095MJ6RMG3NzdvQX +mcIfeg7jLQitChws/zyrVQ4PkX4268NXSb7hLi18YIvDQVETI53O9zJrlAGomecs +Mx86OyXShkDOOyyGeMlhLxS67ttVb9+E7gUJTb0o2HLO02JQZR7rkpeDMdmztcpH +WD9f +-----END CERTIFICATE----- + +# Issuer: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068 +# Subject: CN=Autoridad de Certificacion Firmaprofesional CIF A62634068 +# Label: "Autoridad de Certificacion Firmaprofesional CIF A62634068" +# Serial: 6047274297262753887 +# MD5 Fingerprint: 73:3a:74:7a:ec:bb:a3:96:a6:c2:e4:e2:c8:9b:c0:c3 +# SHA1 Fingerprint: ae:c5:fb:3f:c8:e1:bf:c4:e5:4f:03:07:5a:9a:e8:00:b7:f7:b6:fa +# SHA256 Fingerprint: 04:04:80:28:bf:1f:28:64:d4:8f:9a:d4:d8:32:94:36:6a:82:88:56:55:3f:3b:14:30:3f:90:14:7f:5d:40:ef +-----BEGIN CERTIFICATE----- +MIIGFDCCA/ygAwIBAgIIU+w77vuySF8wDQYJKoZIhvcNAQEFBQAwUTELMAkGA1UE +BhMCRVMxQjBABgNVBAMMOUF1dG9yaWRhZCBkZSBDZXJ0aWZpY2FjaW9uIEZpcm1h +cHJvZmVzaW9uYWwgQ0lGIEE2MjYzNDA2ODAeFw0wOTA1MjAwODM4MTVaFw0zMDEy +MzEwODM4MTVaMFExCzAJBgNVBAYTAkVTMUIwQAYDVQQDDDlBdXRvcmlkYWQgZGUg +Q2VydGlmaWNhY2lvbiBGaXJtYXByb2Zlc2lvbmFsIENJRiBBNjI2MzQwNjgwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDKlmuO6vj78aI14H9M2uDDUtd9 +thDIAl6zQyrET2qyyhxdKJp4ERppWVevtSBC5IsP5t9bpgOSL/UR5GLXMnE42QQM +cas9UX4PB99jBVzpv5RvwSmCwLTaUbDBPLutN0pcyvFLNg4kq7/DhHf9qFD0sefG +L9ItWY16Ck6WaVICqjaY7Pz6FIMMNx/Jkjd/14Et5cS54D40/mf0PmbR0/RAz15i +NA9wBj4gGFrO93IbJWyTdBSTo3OxDqqHECNZXyAFGUftaI6SEspd/NYrspI8IM/h +X68gvqB2f3bl7BqGYTM+53u0P6APjqK5am+5hyZvQWyIplD9amML9ZMWGxmPsu2b +m8mQ9QEM3xk9Dz44I8kvjwzRAv4bVdZO0I08r0+k8/6vKtMFnXkIoctXMbScyJCy +Z/QYFpM6/EfY0XiWMR+6KwxfXZmtY4laJCB22N/9q06mIqqdXuYnin1oKaPnirja +EbsXLZmdEyRG98Xi2J+Of8ePdG1asuhy9azuJBCtLxTa/y2aRnFHvkLfuwHb9H/T +KI8xWVvTyQKmtFLKbpf7Q8UIJm+K9Lv9nyiqDdVF8xM6HdjAeI9BZzwelGSuewvF +6NkBiDkal4ZkQdU7hwxu+g/GvUgUvzlN1J5Bto+WHWOWk9mVBngxaJ43BjuAiUVh +OSPHG0SjFeUc+JIwuwIDAQABo4HvMIHsMBIGA1UdEwEB/wQIMAYBAf8CAQEwDgYD +VR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRlzeurNR4APn7VdMActHNHDhpkLzCBpgYD +VR0gBIGeMIGbMIGYBgRVHSAAMIGPMC8GCCsGAQUFBwIBFiNodHRwOi8vd3d3LmZp +cm1hcHJvZmVzaW9uYWwuY29tL2NwczBcBggrBgEFBQcCAjBQHk4AUABhAHMAZQBv +ACAAZABlACAAbABhACAAQgBvAG4AYQBuAG8AdgBhACAANAA3ACAAQgBhAHIAYwBl +AGwAbwBuAGEAIAAwADgAMAAxADcwDQYJKoZIhvcNAQEFBQADggIBABd9oPm03cXF +661LJLWhAqvdpYhKsg9VSytXjDvlMd3+xDLx51tkljYyGOylMnfX40S2wBEqgLk9 +am58m9Ot/MPWo+ZkKXzR4Tgegiv/J2Wv+xYVxC5xhOW1//qkR71kMrv2JYSiJ0L1 +ILDCExARzRAVukKQKtJE4ZYm6zFIEv0q2skGz3QeqUvVhyj5eTSSPi5E6PaPT481 +PyWzOdxjKpBrIF/EUhJOlywqrJ2X3kjyo2bbwtKDlaZmp54lD+kLM5FlClrD2VQS +3a/DTg4fJl4N3LON7NWBcN7STyQF82xO9UxJZo3R/9ILJUFI/lGExkKvgATP0H5k +SeTy36LssUzAKh3ntLFlosS88Zj0qnAHY7S42jtM+kAiMFsRpvAFDsYCA0irhpuF +3dvd6qJ2gHN99ZwExEWN57kci57q13XRcrHedUTnQn3iV2t93Jm8PYMo6oCTjcVM +ZcFwgbg4/EMxsvYDNEeyrPsiBsse3RdHHF9mudMaotoRsaS8I8nkvof/uZS2+F0g +StRf571oe2XyFR7SOqkt6dhrJKyXWERHrVkY8SFlcN7ONGCoQPHzPKTDKCOM/icz +Q0CgFzzr6juwcqajuUpLXhZI9LK8yIySxZ2frHI2vDSANGupi5LAuBft7HZT9SQB +jLMi6Et8Vcad+qMUu2WFbm5PEn4KPJ2V +-----END CERTIFICATE----- + +# Issuer: CN=Izenpe.com O=IZENPE S.A. +# Subject: CN=Izenpe.com O=IZENPE S.A. +# Label: "Izenpe.com" +# Serial: 917563065490389241595536686991402621 +# MD5 Fingerprint: a6:b0:cd:85:80:da:5c:50:34:a3:39:90:2f:55:67:73 +# SHA1 Fingerprint: 2f:78:3d:25:52:18:a7:4a:65:39:71:b5:2c:a2:9c:45:15:6f:e9:19 +# SHA256 Fingerprint: 25:30:cc:8e:98:32:15:02:ba:d9:6f:9b:1f:ba:1b:09:9e:2d:29:9e:0f:45:48:bb:91:4f:36:3b:c0:d4:53:1f +-----BEGIN CERTIFICATE----- +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 +-----END CERTIFICATE----- + +# Issuer: CN=Chambers of Commerce Root - 2008 O=AC Camerfirma S.A. +# Subject: CN=Chambers of Commerce Root - 2008 O=AC Camerfirma S.A. +# Label: "Chambers of Commerce Root - 2008" +# Serial: 11806822484801597146 +# MD5 Fingerprint: 5e:80:9e:84:5a:0e:65:0b:17:02:f3:55:18:2a:3e:d7 +# SHA1 Fingerprint: 78:6a:74:ac:76:ab:14:7f:9c:6a:30:50:ba:9e:a8:7e:fe:9a:ce:3c +# SHA256 Fingerprint: 06:3e:4a:fa:c4:91:df:d3:32:f3:08:9b:85:42:e9:46:17:d8:93:d7:fe:94:4e:10:a7:93:7e:e2:9d:96:93:c0 +-----BEGIN CERTIFICATE----- +MIIHTzCCBTegAwIBAgIJAKPaQn6ksa7aMA0GCSqGSIb3DQEBBQUAMIGuMQswCQYD +VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0 +IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3 +MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xKTAnBgNVBAMTIENoYW1iZXJz +IG9mIENvbW1lcmNlIFJvb3QgLSAyMDA4MB4XDTA4MDgwMTEyMjk1MFoXDTM4MDcz +MTEyMjk1MFowga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpNYWRyaWQgKHNlZSBj +dXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29tL2FkZHJlc3MpMRIw +EAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVyZmlybWEgUy5BLjEp +MCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAtIDIwMDgwggIiMA0G +CSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCvAMtwNyuAWko6bHiUfaN/Gh/2NdW9 +28sNRHI+JrKQUrpjOyhYb6WzbZSm891kDFX29ufyIiKAXuFixrYp4YFs8r/lfTJq +VKAyGVn+H4vXPWCGhSRv4xGzdz4gljUha7MI2XAuZPeEklPWDrCQiorjh40G072Q +DuKZoRuGDtqaCrsLYVAGUvGef3bsyw/QHg3PmTA9HMRFEFis1tPo1+XqxQEHd9ZR +5gN/ikilTWh1uem8nk4ZcfUyS5xtYBkL+8ydddy/Js2Pk3g5eXNeJQ7KXOt3EgfL +ZEFHcpOrUMPrCXZkNNI5t3YRCQ12RcSprj1qr7V9ZS+UWBDsXHyvfuK2GNnQm05a +Sd+pZgvMPMZ4fKecHePOjlO+Bd5gD2vlGts/4+EhySnB8esHnFIbAURRPHsl18Tl +UlRdJQfKFiC4reRB7noI/plvg6aRArBsNlVq5331lubKgdaX8ZSD6e2wsWsSaR6s ++12pxZjptFtYer49okQ6Y1nUCyXeG0+95QGezdIp1Z8XGQpvvwyQ0wlf2eOKNcx5 +Wk0ZN5K3xMGtr/R5JJqyAQuxr1yW84Ay+1w9mPGgP0revq+ULtlVmhduYJ1jbLhj +ya6BXBg14JC7vjxPNyK5fuvPnnchpj04gftI2jE9K+OJ9dC1vX7gUMQSibMjmhAx +hduub+84Mxh2EQIDAQABo4IBbDCCAWgwEgYDVR0TAQH/BAgwBgEB/wIBDDAdBgNV +HQ4EFgQU+SSsD7K1+HnA+mCIG8TZTQKeFxkwgeMGA1UdIwSB2zCB2IAU+SSsD7K1 ++HnA+mCIG8TZTQKeFxmhgbSkgbEwga4xCzAJBgNVBAYTAkVVMUMwQQYDVQQHEzpN +YWRyaWQgKHNlZSBjdXJyZW50IGFkZHJlc3MgYXQgd3d3LmNhbWVyZmlybWEuY29t +L2FkZHJlc3MpMRIwEAYDVQQFEwlBODI3NDMyODcxGzAZBgNVBAoTEkFDIENhbWVy +ZmlybWEgUy5BLjEpMCcGA1UEAxMgQ2hhbWJlcnMgb2YgQ29tbWVyY2UgUm9vdCAt +IDIwMDiCCQCj2kJ+pLGu2jAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRV +HSAAMCowKAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20w +DQYJKoZIhvcNAQEFBQADggIBAJASryI1wqM58C7e6bXpeHxIvj99RZJe6dqxGfwW +PJ+0W2aeaufDuV2I6A+tzyMP3iU6XsxPpcG1Lawk0lgH3qLPaYRgM+gQDROpI9CF +5Y57pp49chNyM/WqfcZjHwj0/gF/JM8rLFQJ3uIrbZLGOU8W6jx+ekbURWpGqOt1 +glanq6B8aBMz9p0w8G8nOSQjKpD9kCk18pPfNKXG9/jvjA9iSnyu0/VU+I22mlaH +FoI6M6taIgj3grrqLuBHmrS1RaMFO9ncLkVAO+rcf+g769HsJtg1pDDFOqxXnrN2 +pSB7+R5KBWIBpih1YJeSDW4+TTdDDZIVnBgizVGZoCkaPF+KMjNbMMeJL0eYD6MD +xvbxrN8y8NmBGuScvfaAFPDRLLmF9dijscilIeUcE5fuDr3fKanvNFNb0+RqE4QG +tjICxFKuItLcsiFCGtpA8CnJ7AoMXOLQusxI0zcKzBIKinmwPQN/aUv0NCB9szTq +jktk9T79syNnFQ0EuPAtwQlRPLJsFfClI9eDdOTlLsn+mCdCxqvGnrDQWzilm1De +fhiYtUU79nm06PcaewaD+9CL2rvHvRirCG88gGtAPxkZumWK5r7VXNM21+9AUiRg +OGcEMeyP84LG3rlV8zsxkVrctQgVrXYlCg17LofiDKYGvCYQbTed7N14jHyAxfDZ +d0jQ +-----END CERTIFICATE----- + +# Issuer: CN=Global Chambersign Root - 2008 O=AC Camerfirma S.A. +# Subject: CN=Global Chambersign Root - 2008 O=AC Camerfirma S.A. +# Label: "Global Chambersign Root - 2008" +# Serial: 14541511773111788494 +# MD5 Fingerprint: 9e:80:ff:78:01:0c:2e:c1:36:bd:fe:96:90:6e:08:f3 +# SHA1 Fingerprint: 4a:bd:ee:ec:95:0d:35:9c:89:ae:c7:52:a1:2c:5b:29:f6:d6:aa:0c +# SHA256 Fingerprint: 13:63:35:43:93:34:a7:69:80:16:a0:d3:24:de:72:28:4e:07:9d:7b:52:20:bb:8f:bd:74:78:16:ee:be:ba:ca +-----BEGIN CERTIFICATE----- +MIIHSTCCBTGgAwIBAgIJAMnN0+nVfSPOMA0GCSqGSIb3DQEBBQUAMIGsMQswCQYD +VQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3VycmVudCBhZGRyZXNzIGF0 +IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAGA1UEBRMJQTgyNzQzMjg3 +MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAlBgNVBAMTHkdsb2JhbCBD +aGFtYmVyc2lnbiBSb290IC0gMjAwODAeFw0wODA4MDExMjMxNDBaFw0zODA3MzEx +MjMxNDBaMIGsMQswCQYDVQQGEwJFVTFDMEEGA1UEBxM6TWFkcmlkIChzZWUgY3Vy +cmVudCBhZGRyZXNzIGF0IHd3dy5jYW1lcmZpcm1hLmNvbS9hZGRyZXNzKTESMBAG +A1UEBRMJQTgyNzQzMjg3MRswGQYDVQQKExJBQyBDYW1lcmZpcm1hIFMuQS4xJzAl +BgNVBAMTHkdsb2JhbCBDaGFtYmVyc2lnbiBSb290IC0gMjAwODCCAiIwDQYJKoZI +hvcNAQEBBQADggIPADCCAgoCggIBAMDfVtPkOpt2RbQT2//BthmLN0EYlVJH6xed +KYiONWwGMi5HYvNJBL99RDaxccy9Wglz1dmFRP+RVyXfXjaOcNFccUMd2drvXNL7 +G706tcuto8xEpw2uIRU/uXpbknXYpBI4iRmKt4DS4jJvVpyR1ogQC7N0ZJJ0YPP2 +zxhPYLIj0Mc7zmFLmY/CDNBAspjcDahOo7kKrmCgrUVSY7pmvWjg+b4aqIG7HkF4 +ddPB/gBVsIdU6CeQNR1MM62X/JcumIS/LMmjv9GYERTtY/jKmIhYF5ntRQOXfjyG +HoiMvvKRhI9lNNgATH23MRdaKXoKGCQwoze1eqkBfSbW+Q6OWfH9GzO1KTsXO0G2 +Id3UwD2ln58fQ1DJu7xsepeY7s2MH/ucUa6LcL0nn3HAa6x9kGbo1106DbDVwo3V +yJ2dwW3Q0L9R5OP4wzg2rtandeavhENdk5IMagfeOx2YItaswTXbo6Al/3K1dh3e +beksZixShNBFks4c5eUzHdwHU1SjqoI7mjcv3N2gZOnm3b2u/GSFHTynyQbehP9r +6GsaPMWis0L7iwk+XwhSx2LE1AVxv8Rk5Pihg+g+EpuoHtQ2TS9x9o0o9oOpE9Jh +wZG7SMA0j0GMS0zbaRL/UJScIINZc+18ofLx/d33SdNDWKBWY8o9PeU1VlnpDsog +zCtLkykPAgMBAAGjggFqMIIBZjASBgNVHRMBAf8ECDAGAQH/AgEMMB0GA1UdDgQW +BBS5CcqcHtvTbDprru1U8VuTBjUuXjCB4QYDVR0jBIHZMIHWgBS5CcqcHtvTbDpr +ru1U8VuTBjUuXqGBsqSBrzCBrDELMAkGA1UEBhMCRVUxQzBBBgNVBAcTOk1hZHJp +ZCAoc2VlIGN1cnJlbnQgYWRkcmVzcyBhdCB3d3cuY2FtZXJmaXJtYS5jb20vYWRk +cmVzcykxEjAQBgNVBAUTCUE4Mjc0MzI4NzEbMBkGA1UEChMSQUMgQ2FtZXJmaXJt +YSBTLkEuMScwJQYDVQQDEx5HbG9iYWwgQ2hhbWJlcnNpZ24gUm9vdCAtIDIwMDiC +CQDJzdPp1X0jzjAOBgNVHQ8BAf8EBAMCAQYwPQYDVR0gBDYwNDAyBgRVHSAAMCow +KAYIKwYBBQUHAgEWHGh0dHA6Ly9wb2xpY3kuY2FtZXJmaXJtYS5jb20wDQYJKoZI +hvcNAQEFBQADggIBAICIf3DekijZBZRG/5BXqfEv3xoNa/p8DhxJJHkn2EaqbylZ +UohwEurdPfWbU1Rv4WCiqAm57OtZfMY18dwY6fFn5a+6ReAJ3spED8IXDneRRXoz +X1+WLGiLwUePmJs9wOzL9dWCkoQ10b42OFZyMVtHLaoXpGNR6woBrX/sdZ7LoR/x +fxKxueRkf2fWIyr0uDldmOghp+G9PUIadJpwr2hsUF1Jz//7Dl3mLEfXgTpZALVz +a2Mg9jFFCDkO9HB+QHBaP9BrQql0PSgvAm11cpUJjUhjxsYjV5KTXjXBjfkK9yyd +Yhz2rXzdpjEetrHHfoUm+qRqtdpjMNHvkzeyZi99Bffnt0uYlDXA2TopwZ2yUDMd +SqlapskD7+3056huirRXhOukP9DuqqqHW2Pok+JrqNS4cnhrG+055F3Lm6qH1U9O +AP7Zap88MQ8oAgF9mOinsKJknnn4SPIVqczmyETrP3iZ8ntxPjzxmKfFGBI/5rso +M0LpRQp8bfKGeS/Fghl9CYl8slR2iK7ewfPM4W7bMdaTrpmg7yVqc5iJWzouE4ge +v8CSlDQb4ye3ix5vQv/n6TebUB0tovkC7stYWDpxvGjjqsGvHCgfotwjZT+B6q6Z +09gwzxMNTxXJhLynSC34MCN32EZLeW32jO06f2ARePTpm67VVMB0gNELQp/B +-----END CERTIFICATE----- + +# Issuer: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc. +# Subject: CN=Go Daddy Root Certificate Authority - G2 O=GoDaddy.com, Inc. +# Label: "Go Daddy Root Certificate Authority - G2" +# Serial: 0 +# MD5 Fingerprint: 80:3a:bc:22:c1:e6:fb:8d:9b:3b:27:4a:32:1b:9a:01 +# SHA1 Fingerprint: 47:be:ab:c9:22:ea:e8:0e:78:78:34:62:a7:9f:45:c2:54:fd:e6:8b +# SHA256 Fingerprint: 45:14:0b:32:47:eb:9c:c8:c5:b4:f0:d7:b5:30:91:f7:32:92:08:9e:6e:5a:63:e2:74:9d:d3:ac:a9:19:8e:da +-----BEGIN CERTIFICATE----- +MIIDxTCCAq2gAwIBAgIBADANBgkqhkiG9w0BAQsFADCBgzELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxGjAYBgNVBAoT +EUdvRGFkZHkuY29tLCBJbmMuMTEwLwYDVQQDEyhHbyBEYWRkeSBSb290IENlcnRp +ZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAwMFoXDTM3MTIzMTIz +NTk1OVowgYMxCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6b25hMRMwEQYDVQQH +EwpTY290dHNkYWxlMRowGAYDVQQKExFHb0RhZGR5LmNvbSwgSW5jLjExMC8GA1UE +AxMoR28gRGFkZHkgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIw +DQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBAL9xYgjx+lk09xvJGKP3gElY6SKD +E6bFIEMBO4Tx5oVJnyfq9oQbTqC023CYxzIBsQU+B07u9PpPL1kwIuerGVZr4oAH +/PMWdYA5UXvl+TW2dE6pjYIT5LY/qQOD+qK+ihVqf94Lw7YZFAXK6sOoBJQ7Rnwy +DfMAZiLIjWltNowRGLfTshxgtDj6AozO091GB94KPutdfMh8+7ArU6SSYmlRJQVh +GkSBjCypQ5Yj36w6gZoOKcUcqeldHraenjAKOc7xiID7S13MMuyFYkMlNAJWJwGR +tDtwKj9useiciAF9n9T521NtYJ2/LOdYq7hfRvzOxBsDPAnrSTFcaUaz4EcCAwEA +AaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYE +FDqahQcQZyi27/a9BUFuIMGU2g/eMA0GCSqGSIb3DQEBCwUAA4IBAQCZ21151fmX +WWcDYfF+OwYxdS2hII5PZYe096acvNjpL9DbWu7PdIxztDhC2gV7+AJ1uP2lsdeu +9tfeE8tTEH6KRtGX+rcuKxGrkLAngPnon1rpN5+r5N9ss4UXnT3ZJE95kTXWXwTr +gIOrmgIttRD02JDHBHNA7XIloKmf7J6raBKZV8aPEjoJpL1E/QYVN8Gb5DKj7Tjo +2GTzLH4U/ALqn83/B2gX2yKQOC16jdFU8WnjXzPKej17CuPKf1855eJ1usV2GDPO +LPAvTK33sefOT6jEm0pUBsV/fdUID+Ic/n4XuKxe9tQWskMJDE32p2u0mYRlynqI +4uJEvlz36hz1 +-----END CERTIFICATE----- + +# Issuer: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Subject: CN=Starfield Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Label: "Starfield Root Certificate Authority - G2" +# Serial: 0 +# MD5 Fingerprint: d6:39:81:c6:52:7e:96:69:fc:fc:ca:66:ed:05:f2:96 +# SHA1 Fingerprint: b5:1c:06:7c:ee:2b:0c:3d:f8:55:ab:2d:92:f4:fe:39:d4:e7:0f:0e +# SHA256 Fingerprint: 2c:e1:cb:0b:f9:d2:f9:e1:02:99:3f:be:21:51:52:c3:b2:dd:0c:ab:de:1c:68:e5:31:9b:83:91:54:db:b7:f5 +-----BEGIN CERTIFICATE----- +MIID3TCCAsWgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBjzELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT +HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xMjAwBgNVBAMTKVN0YXJmaWVs +ZCBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5MDkwMTAwMDAw +MFoXDTM3MTIzMTIzNTk1OVowgY8xCzAJBgNVBAYTAlVTMRAwDgYDVQQIEwdBcml6 +b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFyZmllbGQgVGVj +aG5vbG9naWVzLCBJbmMuMTIwMAYDVQQDEylTdGFyZmllbGQgUm9vdCBDZXJ0aWZp +Y2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoC +ggEBAL3twQP89o/8ArFvW59I2Z154qK3A2FWGMNHttfKPTUuiUP3oWmb3ooa/RMg +nLRJdzIpVv257IzdIvpy3Cdhl+72WoTsbhm5iSzchFvVdPtrX8WJpRBSiUZV9Lh1 +HOZ/5FSuS/hVclcCGfgXcVnrHigHdMWdSL5stPSksPNkN3mSwOxGXn/hbVNMYq/N +Hwtjuzqd+/x5AJhhdM8mgkBj87JyahkNmcrUDnXMN/uLicFZ8WJ/X7NfZTD4p7dN +dloedl40wOiWVpmKs/B/pM293DIxfJHP4F8R+GuqSVzRmZTRouNjWwl2tVZi4Ut0 +HZbUJtQIBFnQmA4O5t78w+wfkPECAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAO +BgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFHwMMh+n2TB/xH1oo2Kooc6rB1snMA0G +CSqGSIb3DQEBCwUAA4IBAQARWfolTwNvlJk7mh+ChTnUdgWUXuEok21iXQnCoKjU +sHU48TRqneSfioYmUeYs0cYtbpUgSpIB7LiKZ3sx4mcujJUDJi5DnUox9g61DLu3 +4jd/IroAow57UvtruzvE03lRTs2Q9GcHGcg8RnoNAX3FWOdt5oUwF5okxBDgBPfg +8n/Uqgr/Qh037ZTlZFkSIHc40zI+OIF1lnP6aI+xy84fxez6nH7PfrHxBy22/L/K +pL/QlwVKvOoYKAKQvVR4CSFx09F9HdkWsKlhPdAKACL8x3vLCWRFCztAgfd9fDL1 +mMpYjn0q7pBZc2T5NnReJaH1ZgUufzkVqSr7UIuOhWn0 +-----END CERTIFICATE----- + +# Issuer: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Subject: CN=Starfield Services Root Certificate Authority - G2 O=Starfield Technologies, Inc. +# Label: "Starfield Services Root Certificate Authority - G2" +# Serial: 0 +# MD5 Fingerprint: 17:35:74:af:7b:61:1c:eb:f4:f9:3c:e2:ee:40:f9:a2 +# SHA1 Fingerprint: 92:5a:8f:8d:2c:6d:04:e0:66:5f:59:6a:ff:22:d8:63:e8:25:6f:3f +# SHA256 Fingerprint: 56:8d:69:05:a2:c8:87:08:a4:b3:02:51:90:ed:cf:ed:b1:97:4a:60:6a:13:c6:e5:29:0f:cb:2a:e6:3e:da:b5 +-----BEGIN CERTIFICATE----- +MIID7zCCAtegAwIBAgIBADANBgkqhkiG9w0BAQsFADCBmDELMAkGA1UEBhMCVVMx +EDAOBgNVBAgTB0FyaXpvbmExEzARBgNVBAcTClNjb3R0c2RhbGUxJTAjBgNVBAoT +HFN0YXJmaWVsZCBUZWNobm9sb2dpZXMsIEluYy4xOzA5BgNVBAMTMlN0YXJmaWVs +ZCBTZXJ2aWNlcyBSb290IENlcnRpZmljYXRlIEF1dGhvcml0eSAtIEcyMB4XDTA5 +MDkwMTAwMDAwMFoXDTM3MTIzMTIzNTk1OVowgZgxCzAJBgNVBAYTAlVTMRAwDgYD +VQQIEwdBcml6b25hMRMwEQYDVQQHEwpTY290dHNkYWxlMSUwIwYDVQQKExxTdGFy +ZmllbGQgVGVjaG5vbG9naWVzLCBJbmMuMTswOQYDVQQDEzJTdGFyZmllbGQgU2Vy +dmljZXMgUm9vdCBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkgLSBHMjCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBANUMOsQq+U7i9b4Zl1+OiFOxHz/Lz58gE20p +OsgPfTz3a3Y4Y9k2YKibXlwAgLIvWX/2h/klQ4bnaRtSmpDhcePYLQ1Ob/bISdm2 +8xpWriu2dBTrz/sm4xq6HZYuajtYlIlHVv8loJNwU4PahHQUw2eeBGg6345AWh1K +Ts9DkTvnVtYAcMtS7nt9rjrnvDH5RfbCYM8TWQIrgMw0R9+53pBlbQLPLJGmpufe +hRhJfGZOozptqbXuNC66DQO4M99H67FrjSXZm86B0UVGMpZwh94CDklDhbZsc7tk +6mFBrMnUVN+HL8cisibMn1lUaJ/8viovxFUcdUBgF4UCVTmLfwUCAwEAAaNCMEAw +DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFJxfAN+q +AdcwKziIorhtSpzyEZGDMA0GCSqGSIb3DQEBCwUAA4IBAQBLNqaEd2ndOxmfZyMI +bw5hyf2E3F/YNoHN2BtBLZ9g3ccaaNnRbobhiCPPE95Dz+I0swSdHynVv/heyNXB +ve6SbzJ08pGCL72CQnqtKrcgfU28elUSwhXqvfdqlS5sdJ/PHLTyxQGjhdByPq1z +qwubdQxtRbeOlKyWN7Wg0I8VRw7j6IPdj/3vQQF3zCepYoUz8jcI73HPdwbeyBkd +iEDPfUYd/x7H4c7/I9vG+o1VTqkC50cRRj70/b17KSa7qWFiNyi2LSr2EIZkyXCn +0q23KXB56jzaYyWf/Wi3MOxw+3WKt21gZ7IeyLnp2KhvAotnDU0mV3HaIPzBSlCN +sSi6 +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Commercial O=AffirmTrust +# Subject: CN=AffirmTrust Commercial O=AffirmTrust +# Label: "AffirmTrust Commercial" +# Serial: 8608355977964138876 +# MD5 Fingerprint: 82:92:ba:5b:ef:cd:8a:6f:a6:3d:55:f9:84:f6:d6:b7 +# SHA1 Fingerprint: f9:b5:b6:32:45:5f:9c:be:ec:57:5f:80:dc:e9:6e:2c:c7:b2:78:b7 +# SHA256 Fingerprint: 03:76:ab:1d:54:c5:f9:80:3c:e4:b2:e2:01:a0:ee:7e:ef:7b:57:b6:36:e8:a9:3c:9b:8d:48:60:c9:6f:5f:a7 +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIId3cGJyapsXwwDQYJKoZIhvcNAQELBQAwRDELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz +dCBDb21tZXJjaWFsMB4XDTEwMDEyOTE0MDYwNloXDTMwMTIzMTE0MDYwNlowRDEL +MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp +cm1UcnVzdCBDb21tZXJjaWFsMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEA9htPZwcroRX1BiLLHwGy43NFBkRJLLtJJRTWzsO3qyxPxkEylFf6EqdbDuKP +Hx6GGaeqtS25Xw2Kwq+FNXkyLbscYjfysVtKPcrNcV/pQr6U6Mje+SJIZMblq8Yr +ba0F8PrVC8+a5fBQpIs7R6UjW3p6+DM/uO+Zl+MgwdYoic+U+7lF7eNAFxHUdPAL +MeIrJmqbTFeurCA+ukV6BfO9m2kVrn1OIGPENXY6BwLJN/3HR+7o8XYdcxXyl6S1 +yHp52UKqK39c/s4mT6NmgTWvRLpUHhwwMmWd5jyTXlBOeuM61G7MGvv50jeuJCqr +VwMiKA1JdX+3KNp1v47j3A55MQIDAQABo0IwQDAdBgNVHQ4EFgQUnZPGU4teyq8/ +nx4P5ZmVvCT2lI8wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ +KoZIhvcNAQELBQADggEBAFis9AQOzcAN/wr91LoWXym9e2iZWEnStB03TX8nfUYG +XUPGhi4+c7ImfU+TqbbEKpqrIZcUsd6M06uJFdhrJNTxFq7YpFzUf1GO7RgBsZNj +vbz4YYCanrHOQnDiqX0GJX0nof5v7LMeJNrjS1UaADs1tDvZ110w/YETifLCBivt +Z8SOyUOyXGsViQK8YvxO8rUzqrJv0wqiUOP2O+guRMLbZjipM1ZI8W0bM40NjD9g +N53Tym1+NH4Nn3J2ixufcv1SNUFFApYvHLKac0khsUlHRUe072o0EclNmsxZt9YC +nlpOZbWUrhvfKbAW8b8Angc6F2S1BLUjIZkKlTuXfO8= +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Networking O=AffirmTrust +# Subject: CN=AffirmTrust Networking O=AffirmTrust +# Label: "AffirmTrust Networking" +# Serial: 8957382827206547757 +# MD5 Fingerprint: 42:65:ca:be:01:9a:9a:4c:a9:8c:41:49:cd:c0:d5:7f +# SHA1 Fingerprint: 29:36:21:02:8b:20:ed:02:f5:66:c5:32:d1:d6:ed:90:9f:45:00:2f +# SHA256 Fingerprint: 0a:81:ec:5a:92:97:77:f1:45:90:4a:f3:8d:5d:50:9f:66:b5:e2:c5:8f:cd:b5:31:05:8b:0e:17:f3:f0:b4:1b +-----BEGIN CERTIFICATE----- +MIIDTDCCAjSgAwIBAgIIfE8EORzUmS0wDQYJKoZIhvcNAQEFBQAwRDELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZpcm1UcnVz +dCBOZXR3b3JraW5nMB4XDTEwMDEyOTE0MDgyNFoXDTMwMTIzMTE0MDgyNFowRDEL +MAkGA1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MR8wHQYDVQQDDBZBZmZp +cm1UcnVzdCBOZXR3b3JraW5nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKC +AQEAtITMMxcua5Rsa2FSoOujz3mUTOWUgJnLVWREZY9nZOIG41w3SfYvm4SEHi3y +YJ0wTsyEheIszx6e/jarM3c1RNg1lho9Nuh6DtjVR6FqaYvZ/Ls6rnla1fTWcbua +kCNrmreIdIcMHl+5ni36q1Mr3Lt2PpNMCAiMHqIjHNRqrSK6mQEubWXLviRmVSRL +QESxG9fhwoXA3hA/Pe24/PHxI1Pcv2WXb9n5QHGNfb2V1M6+oF4nI979ptAmDgAp +6zxG8D1gvz9Q0twmQVGeFDdCBKNwV6gbh+0t+nvujArjqWaJGctB+d1ENmHP4ndG +yH329JKBNv3bNPFyfvMMFr20FQIDAQABo0IwQDAdBgNVHQ4EFgQUBx/S55zawm6i +QLSwelAQUHTEyL0wDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwDQYJ +KoZIhvcNAQEFBQADggEBAIlXshZ6qML91tmbmzTCnLQyFE2npN/svqe++EPbkTfO +tDIuUFUaNU52Q3Eg75N3ThVwLofDwR1t3Mu1J9QsVtFSUzpE0nPIxBsFZVpikpzu +QY0x2+c06lkh1QF612S4ZDnNye2v7UsDSKegmQGA3GWjNq5lWUhPgkvIZfFXHeVZ +Lgo/bNjR9eUJtGxUAArgFU2HdW23WJZa3W3SAKD0m0i+wzekujbgfIeFlxoVot4u +olu9rxj5kFDNcFn4J2dHy8egBzp90SxdbBk6ZrV9/ZFvgrG+CJPbFEfxojfHRZ48 +x3evZKiT3/Zpg4Jg8klCNO1aAFSFHBY2kgxc+qatv9s= +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Premium O=AffirmTrust +# Subject: CN=AffirmTrust Premium O=AffirmTrust +# Label: "AffirmTrust Premium" +# Serial: 7893706540734352110 +# MD5 Fingerprint: c4:5d:0e:48:b6:ac:28:30:4e:0a:bc:f9:38:16:87:57 +# SHA1 Fingerprint: d8:a6:33:2c:e0:03:6f:b1:85:f6:63:4f:7d:6a:06:65:26:32:28:27 +# SHA256 Fingerprint: 70:a7:3f:7f:37:6b:60:07:42:48:90:45:34:b1:14:82:d5:bf:0e:69:8e:cc:49:8d:f5:25:77:eb:f2:e9:3b:9a +-----BEGIN CERTIFICATE----- +MIIFRjCCAy6gAwIBAgIIbYwURrGmCu4wDQYJKoZIhvcNAQEMBQAwQTELMAkGA1UE +BhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1UcnVz +dCBQcmVtaXVtMB4XDTEwMDEyOTE0MTAzNloXDTQwMTIzMTE0MTAzNlowQTELMAkG +A1UEBhMCVVMxFDASBgNVBAoMC0FmZmlybVRydXN0MRwwGgYDVQQDDBNBZmZpcm1U +cnVzdCBQcmVtaXVtMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAxBLf +qV/+Qd3d9Z+K4/as4Tx4mrzY8H96oDMq3I0gW64tb+eT2TZwamjPjlGjhVtnBKAQ +JG9dKILBl1fYSCkTtuG+kU3fhQxTGJoeJKJPj/CihQvL9Cl/0qRY7iZNyaqoe5rZ ++jjeRFcV5fiMyNlI4g0WJx0eyIOFJbe6qlVBzAMiSy2RjYvmia9mx+n/K+k8rNrS +s8PhaJyJ+HoAVt70VZVs+7pk3WKL3wt3MutizCaam7uqYoNMtAZ6MMgpv+0GTZe5 +HMQxK9VfvFMSF5yZVylmd2EhMQcuJUmdGPLu8ytxjLW6OQdJd/zvLpKQBY0tL3d7 +70O/Nbua2Plzpyzy0FfuKE4mX4+QaAkvuPjcBukumj5Rp9EixAqnOEhss/n/fauG +V+O61oV4d7pD6kh/9ti+I20ev9E2bFhc8e6kGVQa9QPSdubhjL08s9NIS+LI+H+S +qHZGnEJlPqQewQcDWkYtuJfzt9WyVSHvutxMAJf7FJUnM7/oQ0dG0giZFmA7mn7S +5u046uwBHjxIVkkJx0w3AJ6IDsBz4W9m6XJHMD4Q5QsDyZpCAGzFlH5hxIrff4Ia +C1nEWTJ3s7xgaVY5/bQGeyzWZDbZvUjthB9+pSKPKrhC9IK31FOQeE4tGv2Bb0TX +OwF0lkLgAOIua+rF7nKsu7/+6qqo+Nz2snmKtmcCAwEAAaNCMEAwHQYDVR0OBBYE +FJ3AZ6YMItkm9UWrpmVSESfYRaxjMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgEGMA0GCSqGSIb3DQEBDAUAA4ICAQCzV00QYk465KzquByvMiPIs0laUZx2 +KI15qldGF9X1Uva3ROgIRL8YhNILgM3FEv0AVQVhh0HctSSePMTYyPtwni94loMg +Nt58D2kTiKV1NpgIpsbfrM7jWNa3Pt668+s0QNiigfV4Py/VpfzZotReBA4Xrf5B +8OWycvpEgjNC6C1Y91aMYj+6QrCcDFx+LmUmXFNPALJ4fqENmS2NuB2OosSw/WDQ +MKSOyARiqcTtNd56l+0OOF6SL5Nwpamcb6d9Ex1+xghIsV5n61EIJenmJWtSKZGc +0jlzCFfemQa0W50QBuHCAKi4HEoCChTQwUHK+4w1IX2COPKpVJEZNZOUbWo6xbLQ +u4mGk+ibyQ86p3q4ofB4Rvr8Ny/lioTz3/4E2aFooC8k4gmVBtWVyuEklut89pMF +u+1z6S3RdTnX5yTb2E5fQ4+e0BQ5v1VwSJlXMbSc7kqYA5YwH2AG7hsj/oFgIxpH +YoWlzBk0gG+zrBrjn/B7SK3VAdlntqlyk+otZrWyuOQ9PLLvTIzq6we/qzWaVYa8 +GKa1qF60g2xraUDTn9zxw2lrueFtCfTxqlB2Cnp9ehehVZZCmTEJ3WARjQUwfuaO +RtGdFNrHF+QFlozEJLUbzxQHskD4o55BhrwE0GuWyCqANP2/7waj3VjFhT0+j/6e +KeC2uAloGRwYQw== +-----END CERTIFICATE----- + +# Issuer: CN=AffirmTrust Premium ECC O=AffirmTrust +# Subject: CN=AffirmTrust Premium ECC O=AffirmTrust +# Label: "AffirmTrust Premium ECC" +# Serial: 8401224907861490260 +# MD5 Fingerprint: 64:b0:09:55:cf:b1:d5:99:e2:be:13:ab:a6:5d:ea:4d +# SHA1 Fingerprint: b8:23:6b:00:2f:1d:16:86:53:01:55:6c:11:a4:37:ca:eb:ff:c3:bb +# SHA256 Fingerprint: bd:71:fd:f6:da:97:e4:cf:62:d1:64:7a:dd:25:81:b0:7d:79:ad:f8:39:7e:b4:ec:ba:9c:5e:84:88:82:14:23 +-----BEGIN CERTIFICATE----- +MIIB/jCCAYWgAwIBAgIIdJclisc/elQwCgYIKoZIzj0EAwMwRTELMAkGA1UEBhMC +VVMxFDASBgNVBAoMC0FmZmlybVRydXN0MSAwHgYDVQQDDBdBZmZpcm1UcnVzdCBQ +cmVtaXVtIEVDQzAeFw0xMDAxMjkxNDIwMjRaFw00MDEyMzExNDIwMjRaMEUxCzAJ +BgNVBAYTAlVTMRQwEgYDVQQKDAtBZmZpcm1UcnVzdDEgMB4GA1UEAwwXQWZmaXJt +VHJ1c3QgUHJlbWl1bSBFQ0MwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQNMF4bFZ0D +0KF5Nbc6PJJ6yhUczWLznCZcBz3lVPqj1swS6vQUX+iOGasvLkjmrBhDeKzQN8O9 +ss0s5kfiGuZjuD0uL3jET9v0D6RoTFVya5UdThhClXjMNzyR4ptlKymjQjBAMB0G +A1UdDgQWBBSaryl6wBE1NSZRMADDav5A1a7WPDAPBgNVHRMBAf8EBTADAQH/MA4G +A1UdDwEB/wQEAwIBBjAKBggqhkjOPQQDAwNnADBkAjAXCfOHiFBar8jAQr9HX/Vs +aobgxCd05DhT1wV/GzTjxi+zygk8N53X57hG8f2h4nECMEJZh0PUUd+60wkyWs6I +flc9nF9Ca/UHLbXwgpP5WW+uZPpY5Yse42O+tYHNbwKMeQ== +-----END CERTIFICATE----- + +# Issuer: CN=Certum Trusted Network CA O=Unizeto Technologies S.A. OU=Certum Certification Authority +# Subject: CN=Certum Trusted Network CA O=Unizeto Technologies S.A. OU=Certum Certification Authority +# Label: "Certum Trusted Network CA" +# Serial: 279744 +# MD5 Fingerprint: d5:e9:81:40:c5:18:69:fc:46:2c:89:75:62:0f:aa:78 +# SHA1 Fingerprint: 07:e0:32:e0:20:b7:2c:3f:19:2f:06:28:a2:59:3a:19:a7:0f:06:9e +# SHA256 Fingerprint: 5c:58:46:8d:55:f5:8e:49:7e:74:39:82:d2:b5:00:10:b6:d1:65:37:4a:cf:83:a7:d4:a3:2d:b7:68:c4:40:8e +-----BEGIN CERTIFICATE----- +MIIDuzCCAqOgAwIBAgIDBETAMA0GCSqGSIb3DQEBBQUAMH4xCzAJBgNVBAYTAlBM +MSIwIAYDVQQKExlVbml6ZXRvIFRlY2hub2xvZ2llcyBTLkEuMScwJQYDVQQLEx5D +ZXJ0dW0gQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkxIjAgBgNVBAMTGUNlcnR1bSBU +cnVzdGVkIE5ldHdvcmsgQ0EwHhcNMDgxMDIyMTIwNzM3WhcNMjkxMjMxMTIwNzM3 +WjB+MQswCQYDVQQGEwJQTDEiMCAGA1UEChMZVW5pemV0byBUZWNobm9sb2dpZXMg +Uy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MSIw +IAYDVQQDExlDZXJ0dW0gVHJ1c3RlZCBOZXR3b3JrIENBMIIBIjANBgkqhkiG9w0B +AQEFAAOCAQ8AMIIBCgKCAQEA4/t9o3K6wvDJFIf1awFO4W5AB7ptJ11/91sts1rH +UV+rpDKmYYe2bg+G0jACl/jXaVehGDldamR5xgFZrDwxSjh80gTSSyjoIF87B6LM +TXPb865Px1bVWqeWifrzq2jUI4ZZJ88JJ7ysbnKDHDBy3+Ci6dLhdHUZvSqeexVU +BBvXQzmtVSjF4hq79MDkrjhJM8x2hZ85RdKknvISjFH4fOQtf/WsX+sWn7Et0brM +kUJ3TCXJkDhv2/DM+44el1k+1WBO5gUo7Ul5E0u6SNsv+XLTOcr+H9g0cvW0QM8x +AcPs3hEtF10fuFDRXhmnad4HMyjKUJX5p1TLVIZQRan5SQIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBQIds3LB/8k9sXN7buQvOKEN0Z19zAOBgNV +HQ8BAf8EBAMCAQYwDQYJKoZIhvcNAQEFBQADggEBAKaorSLOAT2mo/9i0Eidi15y +sHhE49wcrwn9I0j6vSrEuVUEtRCjjSfeC4Jj0O7eDDd5QVsisrCaQVymcODU0HfL +I9MA4GxWL+FpDQ3Zqr8hgVDZBqWo/5U30Kr+4rP1mS1FhIrlQgnXdAIv94nYmem8 +J9RHjboNRhx3zxSkHLmkMcScKHQDNP8zGSal6Q10tz6XxnboJ5ajZt3hrvJBW8qY +VoNzcOSGGtIxQbovvi0TWnZvTuhOgQ4/WwMioBK+ZlgRSssDxLQqKi2WF+A5VLxI +03YnnZotBqbJ7DnSq9ufmgsnAjUpsUCV5/nonFWIGUbWtzT1fs45mtk48VH3Tyw= +-----END CERTIFICATE----- + +# Issuer: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA +# Subject: CN=TWCA Root Certification Authority O=TAIWAN-CA OU=Root CA +# Label: "TWCA Root Certification Authority" +# Serial: 1 +# MD5 Fingerprint: aa:08:8f:f6:f9:7b:b7:f2:b1:a7:1e:9b:ea:ea:bd:79 +# SHA1 Fingerprint: cf:9e:87:6d:d3:eb:fc:42:26:97:a3:b5:a3:7a:a0:76:a9:06:23:48 +# SHA256 Fingerprint: bf:d8:8f:e1:10:1c:41:ae:3e:80:1b:f8:be:56:35:0e:e9:ba:d1:a6:b9:bd:51:5e:dc:5c:6d:5b:87:11:ac:44 +-----BEGIN CERTIFICATE----- +MIIDezCCAmOgAwIBAgIBATANBgkqhkiG9w0BAQUFADBfMQswCQYDVQQGEwJUVzES +MBAGA1UECgwJVEFJV0FOLUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFU +V0NBIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMDgwODI4MDcyNDMz +WhcNMzAxMjMxMTU1OTU5WjBfMQswCQYDVQQGEwJUVzESMBAGA1UECgwJVEFJV0FO +LUNBMRAwDgYDVQQLDAdSb290IENBMSowKAYDVQQDDCFUV0NBIFJvb3QgQ2VydGlm +aWNhdGlvbiBBdXRob3JpdHkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIB +AQCwfnK4pAOU5qfeCTiRShFAh6d8WWQUe7UREN3+v9XAu1bihSX0NXIP+FPQQeFE +AcK0HMMxQhZHhTMidrIKbw/lJVBPhYa+v5guEGcevhEFhgWQxFnQfHgQsIBct+HH +K3XLfJ+utdGdIzdjp9xCoi2SBBtQwXu4PhvJVgSLL1KbralW6cH/ralYhzC2gfeX +RfwZVzsrb+RH9JlF/h3x+JejiB03HFyP4HYlmlD4oFT/RJB2I9IyxsOrBr/8+7/z +rX2SYgJbKdM1o5OaQ2RgXbL6Mv87BK9NQGr5x+PvI/1ry+UPizgN7gr8/g+YnzAx +3WxSZfmLgb4i4RxYA7qRG4kHAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqOFsmjd6LWvJPelSDGRjjCDWmujANBgkq +hkiG9w0BAQUFAAOCAQEAPNV3PdrfibqHDAhUaiBQkr6wQT25JmSDCi/oQMCXKCeC +MErJk/9q56YAf4lCmtYR5VPOL8zy2gXE/uJQxDqGfczafhAJO5I1KlOy/usrBdls +XebQ79NqZp4VKIV66IIArB6nCWlWQtNoURi+VJq/REG6Sb4gumlc7rh3zc5sH62D +lhh9DrUUOYTxKOkto557HnpyWoOzeW/vtPzQCqVYT0bf+215WfKEIlKuD8z7fDvn +aspHYcN6+NOSBB+4IIThNlQWx0DeO4pz3N/GCUzf7Nr/1FNCocnyYh0igzyXxfkZ +YiesZSLX0zzG5Y6yU8xJzrww/nsOM5D77dIUkR8Hrw== +-----END CERTIFICATE----- + +# Issuer: O=SECOM Trust Systems CO.,LTD. OU=Security Communication RootCA2 +# Subject: O=SECOM Trust Systems CO.,LTD. OU=Security Communication RootCA2 +# Label: "Security Communication RootCA2" +# Serial: 0 +# MD5 Fingerprint: 6c:39:7d:a4:0e:55:59:b2:3f:d6:41:b1:12:50:de:43 +# SHA1 Fingerprint: 5f:3b:8c:f2:f8:10:b3:7d:78:b4:ce:ec:19:19:c3:73:34:b9:c7:74 +# SHA256 Fingerprint: 51:3b:2c:ec:b8:10:d4:cd:e5:dd:85:39:1a:df:c6:c2:dd:60:d8:7b:b7:36:d2:b5:21:48:4a:a4:7a:0e:be:f6 +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIBADANBgkqhkiG9w0BAQsFADBdMQswCQYDVQQGEwJKUDEl +MCMGA1UEChMcU0VDT00gVHJ1c3QgU3lzdGVtcyBDTy4sTFRELjEnMCUGA1UECxMe +U2VjdXJpdHkgQ29tbXVuaWNhdGlvbiBSb290Q0EyMB4XDTA5MDUyOTA1MDAzOVoX +DTI5MDUyOTA1MDAzOVowXTELMAkGA1UEBhMCSlAxJTAjBgNVBAoTHFNFQ09NIFRy +dXN0IFN5c3RlbXMgQ08uLExURC4xJzAlBgNVBAsTHlNlY3VyaXR5IENvbW11bmlj +YXRpb24gUm9vdENBMjCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBANAV +OVKxUrO6xVmCxF1SrjpDZYBLx/KWvNs2l9amZIyoXvDjChz335c9S672XewhtUGr +zbl+dp+++T42NKA7wfYxEUV0kz1XgMX5iZnK5atq1LXaQZAQwdbWQonCv/Q4EpVM +VAX3NuRFg3sUZdbcDE3R3n4MqzvEFb46VqZab3ZpUql6ucjrappdUtAtCms1FgkQ +hNBqyjoGADdH5H5XTz+L62e4iKrFvlNVspHEfbmwhRkGeC7bYRr6hfVKkaHnFtWO +ojnflLhwHyg/i/xAXmODPIMqGplrz95Zajv8bxbXH/1KEOtOghY6rCcMU/Gt1SSw +awNQwS08Ft1ENCcadfsCAwEAAaNCMEAwHQYDVR0OBBYEFAqFqXdlBZh8QIH4D5cs +OPEK7DzPMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MA0GCSqGSIb3 +DQEBCwUAA4IBAQBMOqNErLlFsceTfsgLCkLfZOoc7llsCLqJX2rKSpWeeo8HxdpF +coJxDjrSzG+ntKEju/Ykn8sX/oymzsLS28yN/HH8AynBbF0zX2S2ZTuJbxh2ePXc +okgfGT+Ok+vx+hfuzU7jBBJV1uXk3fs+BXziHV7Gp7yXT2g69ekuCkO2r1dcYmh8 +t/2jioSgrGK+KwmHNPBqAbubKVY8/gA3zyNs8U6qtnRGEmyR7jTV7JqR50S+kDFy +1UkC9gLl9B/rfNmWVan/7Ir5mUf/NVoCqgTLiluHcSmRvaS0eg29mvVXIwAHIRc/ +SjnRBUkLp7Y3gaVdjKozXoEofKd9J+sAro03 +-----END CERTIFICATE----- + +# Issuer: CN=Hellenic Academic and Research Institutions RootCA 2011 O=Hellenic Academic and Research Institutions Cert. Authority +# Subject: CN=Hellenic Academic and Research Institutions RootCA 2011 O=Hellenic Academic and Research Institutions Cert. Authority +# Label: "Hellenic Academic and Research Institutions RootCA 2011" +# Serial: 0 +# MD5 Fingerprint: 73:9f:4c:4b:73:5b:79:e9:fa:ba:1c:ef:6e:cb:d5:c9 +# SHA1 Fingerprint: fe:45:65:9b:79:03:5b:98:a1:61:b5:51:2e:ac:da:58:09:48:22:4d +# SHA256 Fingerprint: bc:10:4f:15:a4:8b:e7:09:dc:a5:42:a7:e1:d4:b9:df:6f:05:45:27:e8:02:ea:a9:2d:59:54:44:25:8a:fe:71 +-----BEGIN CERTIFICATE----- +MIIEMTCCAxmgAwIBAgIBADANBgkqhkiG9w0BAQUFADCBlTELMAkGA1UEBhMCR1Ix +RDBCBgNVBAoTO0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1 +dGlvbnMgQ2VydC4gQXV0aG9yaXR5MUAwPgYDVQQDEzdIZWxsZW5pYyBBY2FkZW1p +YyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIFJvb3RDQSAyMDExMB4XDTExMTIw +NjEzNDk1MloXDTMxMTIwMTEzNDk1MlowgZUxCzAJBgNVBAYTAkdSMUQwQgYDVQQK +EztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0dXRpb25zIENl +cnQuIEF1dGhvcml0eTFAMD4GA1UEAxM3SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl +c2VhcmNoIEluc3RpdHV0aW9ucyBSb290Q0EgMjAxMTCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBAKlTAOMupvaO+mDYLZU++CwqVE7NuYRhlFhPjz2L5EPz +dYmNUeTDN9KKiE15HrcS3UN4SoqS5tdI1Q+kOilENbgH9mgdVc04UfCMJDGFr4PJ +fel3r+0ae50X+bOdOFAPplp5kYCvN66m0zH7tSYJnTxa71HFK9+WXesyHgLacEns +bgzImjeN9/E2YEsmLIKe0HjzDQ9jpFEw4fkrJxIH2Oq9GGKYsFk3fb7u8yBRQlqD +75O6aRXxYp2fmTmCobd0LovUxQt7L/DICto9eQqakxylKHJzkUOap9FNhYS5qXSP +FEDH3N6sQWRstBmbAmNtJGSPRLIl6s5ddAxjMlyNh+UCAwEAAaOBiTCBhjAPBgNV +HRMBAf8EBTADAQH/MAsGA1UdDwQEAwIBBjAdBgNVHQ4EFgQUppFC/RNhSiOeCKQp +5dgTBCPuQSUwRwYDVR0eBEAwPqA8MAWCAy5ncjAFggMuZXUwBoIELmVkdTAGggQu +b3JnMAWBAy5ncjAFgQMuZXUwBoEELmVkdTAGgQQub3JnMA0GCSqGSIb3DQEBBQUA +A4IBAQAf73lB4XtuP7KMhjdCSk4cNx6NZrokgclPEg8hwAOXhiVtXdMiKahsog2p +6z0GW5k6x8zDmjR/qw7IThzh+uTczQ2+vyT+bOdrwg3IBp5OjWEopmr95fZi6hg8 +TqBTnbI6nOulnJEWtk2C4AwFSKls9cz4y51JtPACpf1wA+2KIaWuE4ZJwzNzvoc7 +dIsXRSZMFpGD/md9zU1jZ/rzAxKWeAaNsWftjj++n08C9bMJL/NMh98qy5V8Acys +Nnq/onN694/BtZqhFLKPM58N7yLcZnuEvUUXBj08yrl3NI/K6s8/MT7jiOOASSXI +l7WdmplNsDz4SgCbZN2fOUvRJ9e4 +-----END CERTIFICATE----- + +# Issuer: CN=Actalis Authentication Root CA O=Actalis S.p.A./03358520967 +# Subject: CN=Actalis Authentication Root CA O=Actalis S.p.A./03358520967 +# Label: "Actalis Authentication Root CA" +# Serial: 6271844772424770508 +# MD5 Fingerprint: 69:c1:0d:4f:07:a3:1b:c3:fe:56:3d:04:bc:11:f6:a6 +# SHA1 Fingerprint: f3:73:b3:87:06:5a:28:84:8a:f2:f3:4a:ce:19:2b:dd:c7:8e:9c:ac +# SHA256 Fingerprint: 55:92:60:84:ec:96:3a:64:b9:6e:2a:be:01:ce:0b:a8:6a:64:fb:fe:bc:c7:aa:b5:af:c1:55:b3:7f:d7:60:66 +-----BEGIN CERTIFICATE----- +MIIFuzCCA6OgAwIBAgIIVwoRl0LE48wwDQYJKoZIhvcNAQELBQAwazELMAkGA1UE +BhMCSVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8w +MzM1ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290 +IENBMB4XDTExMDkyMjExMjIwMloXDTMwMDkyMjExMjIwMlowazELMAkGA1UEBhMC +SVQxDjAMBgNVBAcMBU1pbGFuMSMwIQYDVQQKDBpBY3RhbGlzIFMucC5BLi8wMzM1 +ODUyMDk2NzEnMCUGA1UEAwweQWN0YWxpcyBBdXRoZW50aWNhdGlvbiBSb290IENB +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAp8bEpSmkLO/lGMWwUKNv +UTufClrJwkg4CsIcoBh/kbWHuUA/3R1oHwiD1S0eiKD4j1aPbZkCkpAW1V8IbInX +4ay8IMKx4INRimlNAJZaby/ARH6jDuSRzVju3PvHHkVH3Se5CAGfpiEd9UEtL0z9 +KK3giq0itFZljoZUj5NDKd45RnijMCO6zfB9E1fAXdKDa0hMxKufgFpbOr3JpyI/ +gCczWw63igxdBzcIy2zSekciRDXFzMwujt0q7bd9Zg1fYVEiVRvjRuPjPdA1Yprb +rxTIW6HMiRvhMCb8oJsfgadHHwTrozmSBp+Z07/T6k9QnBn+locePGX2oxgkg4YQ +51Q+qDp2JE+BIcXjDwL4k5RHILv+1A7TaLndxHqEguNTVHnd25zS8gebLra8Pu2F +be8lEfKXGkJh90qX6IuxEAf6ZYGyojnP9zz/GPvG8VqLWeICrHuS0E4UT1lF9gxe +KF+w6D9Fz8+vm2/7hNN3WpVvrJSEnu68wEqPSpP4RCHiMUVhUE4Q2OM1fEwZtN4F +v6MGn8i1zeQf1xcGDXqVdFUNaBr8EBtiZJ1t4JWgw5QHVw0U5r0F+7if5t+L4sbn +fpb2U8WANFAoWPASUHEXMLrmeGO89LKtmyuy/uE5jF66CyCU3nuDuP/jVo23Eek7 +jPKxwV2dpAtMK9myGPW1n0sCAwEAAaNjMGEwHQYDVR0OBBYEFFLYiDrIn3hm7Ynz +ezhwlMkCAjbQMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUUtiIOsifeGbt +ifN7OHCUyQICNtAwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAL +e3KHwGCmSUyIWOYdiPcUZEim2FgKDk8TNd81HdTtBjHIgT5q1d07GjLukD0R0i70 +jsNjLiNmsGe+b7bAEzlgqqI0JZN1Ut6nna0Oh4lScWoWPBkdg/iaKWW+9D+a2fDz +WochcYBNy+A4mz+7+uAwTc+G02UQGRjRlwKxK3JCaKygvU5a2hi/a5iB0P2avl4V +SM0RFbnAKVy06Ij3Pjaut2L9HmLecHgQHEhb2rykOLpn7VU+Xlff1ANATIGk0k9j +pwlCCRT8AKnCgHNPLsBA2RF7SOp6AsDT6ygBJlh0wcBzIm2Tlf05fbsq4/aC4yyX +X04fkZT6/iyj2HYauE2yOE+b+h1IYHkm4vP9qdCa6HCPSXrW5b0KDtst842/6+Ok +fcvHlXHo2qN8xcL4dJIEG4aspCJTQLas/kx2z/uUMsA1n3Y/buWQbqCmJqK4LL7R +K4X9p2jIugErsWx0Hbhzlefut8cl8ABMALJ+tguLHPPAUJ4lueAI3jZm/zel0btU +ZCzJJ7VLkn5l/9Mt4blOvH+kQSGQQXemOR/qnuOf0GZvBeyqdn6/axag67XH/JJU +LysRJyU3eExRarDzzFhdFPFqSBX/wge2sY0PjlxQRrM9vwGYT7JZVEc+NHt4bVaT +LnPqZih4zR0Uv6CPLy64Lo7yFIrM6bV8+2ydDKXhlg== +-----END CERTIFICATE----- + +# Issuer: O=Trustis Limited OU=Trustis FPS Root CA +# Subject: O=Trustis Limited OU=Trustis FPS Root CA +# Label: "Trustis FPS Root CA" +# Serial: 36053640375399034304724988975563710553 +# MD5 Fingerprint: 30:c9:e7:1e:6b:e6:14:eb:65:b2:16:69:20:31:67:4d +# SHA1 Fingerprint: 3b:c0:38:0b:33:c3:f6:a6:0c:86:15:22:93:d9:df:f5:4b:81:c0:04 +# SHA256 Fingerprint: c1:b4:82:99:ab:a5:20:8f:e9:63:0a:ce:55:ca:68:a0:3e:da:5a:51:9c:88:02:a0:d3:a6:73:be:8f:8e:55:7d +-----BEGIN CERTIFICATE----- +MIIDZzCCAk+gAwIBAgIQGx+ttiD5JNM2a/fH8YygWTANBgkqhkiG9w0BAQUFADBF +MQswCQYDVQQGEwJHQjEYMBYGA1UEChMPVHJ1c3RpcyBMaW1pdGVkMRwwGgYDVQQL +ExNUcnVzdGlzIEZQUyBSb290IENBMB4XDTAzMTIyMzEyMTQwNloXDTI0MDEyMTEx +MzY1NFowRTELMAkGA1UEBhMCR0IxGDAWBgNVBAoTD1RydXN0aXMgTGltaXRlZDEc +MBoGA1UECxMTVHJ1c3RpcyBGUFMgUm9vdCBDQTCCASIwDQYJKoZIhvcNAQEBBQAD +ggEPADCCAQoCggEBAMVQe547NdDfxIzNjpvto8A2mfRC6qc+gIMPpqdZh8mQRUN+ +AOqGeSoDvT03mYlmt+WKVoaTnGhLaASMk5MCPjDSNzoiYYkchU59j9WvezX2fihH +iTHcDnlkH5nSW7r+f2C/revnPDgpai/lkQtV/+xvWNUtyd5MZnGPDNcE2gfmHhjj +vSkCqPoc4Vu5g6hBSLwacY3nYuUtsuvffM/bq1rKMfFMIvMFE/eC+XN5DL7XSxzA +0RU8k0Fk0ea+IxciAIleH2ulrG6nS4zto3Lmr2NNL4XSFDWaLk6M6jKYKIahkQlB +OrTh4/L68MkKokHdqeMDx4gVOxzUGpTXn2RZEm0CAwEAAaNTMFEwDwYDVR0TAQH/ +BAUwAwEB/zAfBgNVHSMEGDAWgBS6+nEleYtXQSUhhgtx67JkDoshZzAdBgNVHQ4E +FgQUuvpxJXmLV0ElIYYLceuyZA6LIWcwDQYJKoZIhvcNAQEFBQADggEBAH5Y//01 +GX2cGE+esCu8jowU/yyg2kdbw++BLa8F6nRIW/M+TgfHbcWzk88iNVy2P3UnXwmW +zaD+vkAMXBJV+JOCyinpXj9WV4s4NvdFGkwozZ5BuO1WTISkQMi4sKUraXAEasP4 +1BIy+Q7DsdwyhEQsb8tGD+pmQQ9P8Vilpg0ND2HepZ5dfWWhPBfnqFVO76DH7cZE +f1T1o+CP8HxVIo8ptoGj4W1OLBuAZ+ytIJ8MYmHVl/9D7S3B2l0pKoU/rGXuhg8F +jZBf3+6f9L/uHfuY5H+QK4R4EA5sSVPvFVtlRkpdr7r7OnIdzfYliB6XzCGcKQEN +ZetX2fNXlrtIzYE= +-----END CERTIFICATE----- + +# Issuer: CN=Buypass Class 2 Root CA O=Buypass AS-983163327 +# Subject: CN=Buypass Class 2 Root CA O=Buypass AS-983163327 +# Label: "Buypass Class 2 Root CA" +# Serial: 2 +# MD5 Fingerprint: 46:a7:d2:fe:45:fb:64:5a:a8:59:90:9b:78:44:9b:29 +# SHA1 Fingerprint: 49:0a:75:74:de:87:0a:47:fe:58:ee:f6:c7:6b:eb:c6:0b:12:40:99 +# SHA256 Fingerprint: 9a:11:40:25:19:7c:5b:b9:5d:94:e6:3d:55:cd:43:79:08:47:b6:46:b2:3c:df:11:ad:a4:a0:0e:ff:15:fb:48 +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd +MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg +Q2xhc3MgMiBSb290IENBMB4XDTEwMTAyNjA4MzgwM1oXDTQwMTAyNjA4MzgwM1ow +TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw +HgYDVQQDDBdCdXlwYXNzIENsYXNzIDIgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB +BQADggIPADCCAgoCggIBANfHXvfBB9R3+0Mh9PT1aeTuMgHbo4Yf5FkNuud1g1Lr +6hxhFUi7HQfKjK6w3Jad6sNgkoaCKHOcVgb/S2TwDCo3SbXlzwx87vFKu3MwZfPV +L4O2fuPn9Z6rYPnT8Z2SdIrkHJasW4DptfQxh6NR/Md+oW+OU3fUl8FVM5I+GC91 +1K2GScuVr1QGbNgGE41b/+EmGVnAJLqBcXmQRFBoJJRfuLMR8SlBYaNByyM21cHx +MlAQTn/0hpPshNOOvEu/XAFOBz3cFIqUCqTqc/sLUegTBxj6DvEr0VQVfTzh97QZ +QmdiXnfgolXsttlpF9U6r0TtSsWe5HonfOV116rLJeffawrbD02TTqigzXsu8lkB +arcNuAeBfos4GzjmCleZPe4h6KP1DBbdi+w0jpwqHAAVF41og9JwnxgIzRFo1clr +Us3ERo/ctfPYV3Me6ZQ5BL/T3jjetFPsaRyifsSP5BtwrfKi+fv3FmRmaZ9JUaLi +FRhnBkp/1Wy1TbMz4GHrXb7pmA8y1x1LPC5aAVKRCfLf6o3YBkBjqhHk/sM3nhRS +P/TizPJhk9H9Z2vXUq6/aKtAQ6BXNVN48FP4YUIHZMbXb5tMOA1jrGKvNouicwoN +9SG9dKpN6nIDSdvHXx1iY8f93ZHsM+71bbRuMGjeyNYmsHVee7QHIJihdjK4TWxP +AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFMmAd+BikoL1Rpzz +uvdMw964o605MA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAU18h +9bqwOlI5LJKwbADJ784g7wbylp7ppHR/ehb8t/W2+xUbP6umwHJdELFx7rxP462s +A20ucS6vxOOto70MEae0/0qyexAQH6dXQbLArvQsWdZHEIjzIVEpMMpghq9Gqx3t +OluwlN5E40EIosHsHdb9T7bWR9AUC8rmyrV7d35BH16Dx7aMOZawP5aBQW9gkOLo ++fsicdl9sz1Gv7SEr5AcD48Saq/v7h56rgJKihcrdv6sVIkkLE8/trKnToyokZf7 +KcZ7XC25y2a2t6hbElGFtQl+Ynhw/qlqYLYdDnkM/crqJIByw5c/8nerQyIKx+u2 +DISCLIBrQYoIwOula9+ZEsuK1V6ADJHgJgg2SMX6OBE1/yWDLfJ6v9r9jv6ly0Us +H8SIU653DtmadsWOLB2jutXsMq7Aqqz30XpN69QH4kj3Io6wpJ9qzo6ysmD0oyLQ +I+uUWnpp3Q+/QFesa1lQ2aOZ4W7+jQF5JyMV3pKdewlNWudLSDBaGOYKbeaP4NK7 +5t98biGCwWg5TbSYWGZizEqQXsP6JwSxeRV0mcy+rSDeJmAc61ZRpqPq5KM/p/9h +3PFaTWwyI0PurKju7koSCTxdccK+efrCh2gdC/1cacwG0Jp9VJkqyTkaGa9LKkPz +Y11aWOIv4x3kqdbQCtCev9eBCfHJxyYNrJgWVqA= +-----END CERTIFICATE----- + +# Issuer: CN=Buypass Class 3 Root CA O=Buypass AS-983163327 +# Subject: CN=Buypass Class 3 Root CA O=Buypass AS-983163327 +# Label: "Buypass Class 3 Root CA" +# Serial: 2 +# MD5 Fingerprint: 3d:3b:18:9e:2c:64:5a:e8:d5:88:ce:0e:f9:37:c2:ec +# SHA1 Fingerprint: da:fa:f7:fa:66:84:ec:06:8f:14:50:bd:c7:c2:81:a5:bc:a9:64:57 +# SHA256 Fingerprint: ed:f7:eb:bc:a2:7a:2a:38:4d:38:7b:7d:40:10:c6:66:e2:ed:b4:84:3e:4c:29:b4:ae:1d:5b:93:32:e6:b2:4d +-----BEGIN CERTIFICATE----- +MIIFWTCCA0GgAwIBAgIBAjANBgkqhkiG9w0BAQsFADBOMQswCQYDVQQGEwJOTzEd +MBsGA1UECgwUQnV5cGFzcyBBUy05ODMxNjMzMjcxIDAeBgNVBAMMF0J1eXBhc3Mg +Q2xhc3MgMyBSb290IENBMB4XDTEwMTAyNjA4Mjg1OFoXDTQwMTAyNjA4Mjg1OFow +TjELMAkGA1UEBhMCTk8xHTAbBgNVBAoMFEJ1eXBhc3MgQVMtOTgzMTYzMzI3MSAw +HgYDVQQDDBdCdXlwYXNzIENsYXNzIDMgUm9vdCBDQTCCAiIwDQYJKoZIhvcNAQEB +BQADggIPADCCAgoCggIBAKXaCpUWUOOV8l6ddjEGMnqb8RB2uACatVI2zSRHsJ8Y +ZLya9vrVediQYkwiL944PdbgqOkcLNt4EemOaFEVcsfzM4fkoF0LXOBXByow9c3E +N3coTRiR5r/VUv1xLXA+58bEiuPwKAv0dpihi4dVsjoT/Lc+JzeOIuOoTyrvYLs9 +tznDDgFHmV0ST9tD+leh7fmdvhFHJlsTmKtdFoqwNxxXnUX/iJY2v7vKB3tvh2PX +0DJq1l1sDPGzbjniazEuOQAnFN44wOwZZoYS6J1yFhNkUsepNxz9gjDthBgd9K5c +/3ATAOux9TN6S9ZV+AWNS2mw9bMoNlwUxFFzTWsL8TQH2xc519woe2v1n/MuwU8X +KhDzzMro6/1rqy6any2CbgTUUgGTLT2G/H783+9CHaZr77kgxve9oKeV/afmiSTY +zIw0bOIjL9kSGiG5VZFvC5F5GQytQIgLcOJ60g7YaEi7ghM5EFjp2CoHxhLbWNvS +O1UQRwUVZ2J+GGOmRj8JDlQyXr8NYnon74Do29lLBlo3WiXQCBJ31G8JUJc9yB3D +34xFMFbG02SrZvPAXpacw8Tvw3xrizp5f7NJzz3iiZ+gMEuFuZyUJHmPfWupRWgP +K9Dx2hzLabjKSWJtyNBjYt1gD1iqj6G8BaVmos8bdrKEZLFMOVLAMLrwjEsCsLa3 +AgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFEe4zf/lb+74suwv +Tg75JbCOPGvDMA4GA1UdDwEB/wQEAwIBBjANBgkqhkiG9w0BAQsFAAOCAgEAACAj +QTUEkMJAYmDv4jVM1z+s4jSQuKFvdvoWFqRINyzpkMLyPPgKn9iB5btb2iUspKdV +cSQy9sgL8rxq+JOssgfCX5/bzMiKqr5qb+FJEMwx14C7u8jYog5kV+qi9cKpMRXS +IGrs/CIBKM+GuIAeqcwRpTzyFrNHnfzSgCHEy9BHcEGhyoMZCCxt8l13nIoUE9Q2 +HJLw5QY33KbmkJs4j1xrG0aGQ0JfPgEHU1RdZX33inOhmlRaHylDFCfChQ+1iHsa +O5S3HWCntZznKWlXWpuTekMwGwPXYshApqr8ZORK15FTAaggiG6cX0S5y2CBNOxv +033aSF/rtJC8LakcC6wc1aJoIIAE1vyxjy+7SjENSoYc6+I2KSb12tjE8nVhz36u +dmNKekBlk4f4HoCMhuWG1o8O/FMsYOgWYRqiPkN7zTlgVGr18okmAWiDSKIz6MkE +kbIRNBE+6tBDGR8Dk5AM/1E9V/RBbuHLoL7ryWPNbczk+DaqaJ3tvV2XcEQNtg41 +3OEMXbugUZTLfhbrES+jkkXITHHZvMmZUldGL1DPvTVp9D0VzgalLA8+9oG6lLvD +u79leNKGef9JOxqDDPDeeOzI8k1MGt6CKfjBWtrt7uYnXuhF0J0cUahoq0Tj0Itq +4/g7u9xN12TyUb7mqqta6THuBrxzvxNiCp/HuZc= +-----END CERTIFICATE----- + +# Issuer: CN=T-TeleSec GlobalRoot Class 3 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center +# Subject: CN=T-TeleSec GlobalRoot Class 3 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center +# Label: "T-TeleSec GlobalRoot Class 3" +# Serial: 1 +# MD5 Fingerprint: ca:fb:40:a8:4e:39:92:8a:1d:fe:8e:2f:c4:27:ea:ef +# SHA1 Fingerprint: 55:a6:72:3e:cb:f2:ec:cd:c3:23:74:70:19:9d:2a:be:11:e3:81:d1 +# SHA256 Fingerprint: fd:73:da:d3:1c:64:4f:f1:b4:3b:ef:0c:cd:da:96:71:0b:9c:d9:87:5e:ca:7e:31:70:7a:f3:e9:6d:52:2b:bd +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx +KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd +BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl +YyBHbG9iYWxSb290IENsYXNzIDMwHhcNMDgxMDAxMTAyOTU2WhcNMzMxMDAxMjM1 +OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy +aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50 +ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDMwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC9dZPwYiJvJK7genasfb3ZJNW4t/zN +8ELg63iIVl6bmlQdTQyK9tPPcPRStdiTBONGhnFBSivwKixVA9ZIw+A5OO3yXDw/ +RLyTPWGrTs0NvvAgJ1gORH8EGoel15YUNpDQSXuhdfsaa3Ox+M6pCSzyU9XDFES4 +hqX2iys52qMzVNn6chr3IhUciJFrf2blw2qAsCTz34ZFiP0Zf3WHHx+xGwpzJFu5 +ZeAsVMhg02YXP+HMVDNzkQI6pn97djmiH5a2OK61yJN0HZ65tOVgnS9W0eDrXltM +EnAMbEQgqxHY9Bn20pxSN+f6tsIxO0rUFJmtxxr1XV/6B7h8DR/Wgx6zAgMBAAGj +QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS1 +A/d2O2GCahKqGFPrAyGUv/7OyjANBgkqhkiG9w0BAQsFAAOCAQEAVj3vlNW92nOy +WL6ukK2YJ5f+AbGwUgC4TeQbIXQbfsDuXmkqJa9c1h3a0nnJ85cp4IaH3gRZD/FZ +1GSFS5mvJQQeyUapl96Cshtwn5z2r3Ex3XsFpSzTucpH9sry9uetuUg/vBa3wW30 +6gmv7PO15wWeph6KU1HWk4HMdJP2udqmJQV0eVp+QD6CSyYRMG7hP0HHRwA11fXT +91Q+gT3aSWqas+8QPebrb9HIIkfLzM8BMZLZGOMivgkeGj5asuRrDFR6fUNOuIml +e9eiPZaGzPImNC1qkp2aGtAw4l1OBLBfiyB+d8E9lYLRRpo7PHi4b6HQDWSieB4p +TpPDpFQUWw== +-----END CERTIFICATE----- + +# Issuer: CN=EE Certification Centre Root CA O=AS Sertifitseerimiskeskus +# Subject: CN=EE Certification Centre Root CA O=AS Sertifitseerimiskeskus +# Label: "EE Certification Centre Root CA" +# Serial: 112324828676200291871926431888494945866 +# MD5 Fingerprint: 43:5e:88:d4:7d:1a:4a:7e:fd:84:2e:52:eb:01:d4:6f +# SHA1 Fingerprint: c9:a8:b9:e7:55:80:5e:58:e3:53:77:a7:25:eb:af:c3:7b:27:cc:d7 +# SHA256 Fingerprint: 3e:84:ba:43:42:90:85:16:e7:75:73:c0:99:2f:09:79:ca:08:4e:46:85:68:1f:f1:95:cc:ba:8a:22:9b:8a:76 +-----BEGIN CERTIFICATE----- +MIIEAzCCAuugAwIBAgIQVID5oHPtPwBMyonY43HmSjANBgkqhkiG9w0BAQUFADB1 +MQswCQYDVQQGEwJFRTEiMCAGA1UECgwZQVMgU2VydGlmaXRzZWVyaW1pc2tlc2t1 +czEoMCYGA1UEAwwfRUUgQ2VydGlmaWNhdGlvbiBDZW50cmUgUm9vdCBDQTEYMBYG +CSqGSIb3DQEJARYJcGtpQHNrLmVlMCIYDzIwMTAxMDMwMTAxMDMwWhgPMjAzMDEy +MTcyMzU5NTlaMHUxCzAJBgNVBAYTAkVFMSIwIAYDVQQKDBlBUyBTZXJ0aWZpdHNl +ZXJpbWlza2Vza3VzMSgwJgYDVQQDDB9FRSBDZXJ0aWZpY2F0aW9uIENlbnRyZSBS +b290IENBMRgwFgYJKoZIhvcNAQkBFglwa2lAc2suZWUwggEiMA0GCSqGSIb3DQEB +AQUAA4IBDwAwggEKAoIBAQDIIMDs4MVLqwd4lfNE7vsLDP90jmG7sWLqI9iroWUy +euuOF0+W2Ap7kaJjbMeMTC55v6kF/GlclY1i+blw7cNRfdCT5mzrMEvhvH2/UpvO +bntl8jixwKIy72KyaOBhU8E2lf/slLo2rpwcpzIP5Xy0xm90/XsY6KxX7QYgSzIw +WFv9zajmofxwvI6Sc9uXp3whrj3B9UiHbCe9nyV0gVWw93X2PaRka9ZP585ArQ/d +MtO8ihJTmMmJ+xAdTX7Nfh9WDSFwhfYggx/2uh8Ej+p3iDXE/+pOoYtNP2MbRMNE +1CV2yreN1x5KZmTNXMWcg+HCCIia7E6j8T4cLNlsHaFLAgMBAAGjgYowgYcwDwYD +VR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFBLyWj7qVhy/ +zQas8fElyalL1BSZMEUGA1UdJQQ+MDwGCCsGAQUFBwMCBggrBgEFBQcDAQYIKwYB +BQUHAwMGCCsGAQUFBwMEBggrBgEFBQcDCAYIKwYBBQUHAwkwDQYJKoZIhvcNAQEF +BQADggEBAHv25MANqhlHt01Xo/6tu7Fq1Q+e2+RjxY6hUFaTlrg4wCQiZrxTFGGV +v9DHKpY5P30osxBAIWrEr7BSdxjhlthWXePdNl4dp1BUoMUq5KqMlIpPnTX/dqQG +E5Gion0ARD9V04I8GtVbvFZMIi5GQ4okQC3zErg7cBqklrkar4dBGmoYDQZPxz5u +uSlNDUmJEYcyW+ZLBMjkXOZ0c5RdFpgTlf7727FE5TpwrDdr5rMzcijJs1eg9gIW +iAYLtqZLICjU3j2LrTcFU3T+bsy8QxdxXvnFzBqpYe73dgzzcvRyrc9yAjYHR8/v +GVCJYMzpJJUPwssd8m92kMfMdcGWxZ0= +-----END CERTIFICATE----- + +# Issuer: CN=D-TRUST Root Class 3 CA 2 2009 O=D-Trust GmbH +# Subject: CN=D-TRUST Root Class 3 CA 2 2009 O=D-Trust GmbH +# Label: "D-TRUST Root Class 3 CA 2 2009" +# Serial: 623603 +# MD5 Fingerprint: cd:e0:25:69:8d:47:ac:9c:89:35:90:f7:fd:51:3d:2f +# SHA1 Fingerprint: 58:e8:ab:b0:36:15:33:fb:80:f7:9b:1b:6d:29:d3:ff:8d:5f:00:f0 +# SHA256 Fingerprint: 49:e7:a4:42:ac:f0:ea:62:87:05:00:54:b5:25:64:b6:50:e4:f4:9e:42:e3:48:d6:aa:38:e0:39:e9:57:b1:c1 +-----BEGIN CERTIFICATE----- +MIIEMzCCAxugAwIBAgIDCYPzMA0GCSqGSIb3DQEBCwUAME0xCzAJBgNVBAYTAkRF +MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMMHkQtVFJVU1QgUm9vdCBD +bGFzcyAzIENBIDIgMjAwOTAeFw0wOTExMDUwODM1NThaFw0yOTExMDUwODM1NTha +ME0xCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxJzAlBgNVBAMM +HkQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgMjAwOTCCASIwDQYJKoZIhvcNAQEB +BQADggEPADCCAQoCggEBANOySs96R+91myP6Oi/WUEWJNTrGa9v+2wBoqOADER03 +UAifTUpolDWzU9GUY6cgVq/eUXjsKj3zSEhQPgrfRlWLJ23DEE0NkVJD2IfgXU42 +tSHKXzlABF9bfsyjxiupQB7ZNoTWSPOSHjRGICTBpFGOShrvUD9pXRl/RcPHAY9R +ySPocq60vFYJfxLLHLGvKZAKyVXMD9O0Gu1HNVpK7ZxzBCHQqr0ME7UAyiZsxGsM +lFqVlNpQmvH/pStmMaTJOKDfHR+4CS7zp+hnUquVH+BGPtikw8paxTGA6Eian5Rp +/hnd2HN8gcqW3o7tszIFZYQ05ub9VxC1X3a/L7AQDcUCAwEAAaOCARowggEWMA8G +A1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFP3aFMSfMN4hvR5COfyrYyNJ4PGEMA4G +A1UdDwEB/wQEAwIBBjCB0wYDVR0fBIHLMIHIMIGAoH6gfIZ6bGRhcDovL2RpcmVj +dG9yeS5kLXRydXN0Lm5ldC9DTj1ELVRSVVNUJTIwUm9vdCUyMENsYXNzJTIwMyUy +MENBJTIwMiUyMDIwMDksTz1ELVRydXN0JTIwR21iSCxDPURFP2NlcnRpZmljYXRl +cmV2b2NhdGlvbmxpc3QwQ6BBoD+GPWh0dHA6Ly93d3cuZC10cnVzdC5uZXQvY3Js +L2QtdHJ1c3Rfcm9vdF9jbGFzc18zX2NhXzJfMjAwOS5jcmwwDQYJKoZIhvcNAQEL +BQADggEBAH+X2zDI36ScfSF6gHDOFBJpiBSVYEQBrLLpME+bUMJm2H6NMLVwMeni +acfzcNsgFYbQDfC+rAF1hM5+n02/t2A7nPPKHeJeaNijnZflQGDSNiH+0LS4F9p0 +o3/U37CYAqxva2ssJSRyoWXuJVrl5jLn8t+rSfrzkGkj2wTZ51xY/GXUl77M/C4K +zCUqNQT4YJEVdT1B/yMfGchs64JTBKbkTCJNjYy6zltz7GRUUG3RnFX7acM2w4y8 +PIWmawomDeCTmGCufsYkl4phX5GOZpIJhzbNi5stPvZR1FDUWSi9g/LMKHtThm3Y +Johw1+qRzT65ysCQblrGXnRl11z+o+I= +-----END CERTIFICATE----- + +# Issuer: CN=D-TRUST Root Class 3 CA 2 EV 2009 O=D-Trust GmbH +# Subject: CN=D-TRUST Root Class 3 CA 2 EV 2009 O=D-Trust GmbH +# Label: "D-TRUST Root Class 3 CA 2 EV 2009" +# Serial: 623604 +# MD5 Fingerprint: aa:c6:43:2c:5e:2d:cd:c4:34:c0:50:4f:11:02:4f:b6 +# SHA1 Fingerprint: 96:c9:1b:0b:95:b4:10:98:42:fa:d0:d8:22:79:fe:60:fa:b9:16:83 +# SHA256 Fingerprint: ee:c5:49:6b:98:8c:e9:86:25:b9:34:09:2e:ec:29:08:be:d0:b0:f3:16:c2:d4:73:0c:84:ea:f1:f3:d3:48:81 +-----BEGIN CERTIFICATE----- +MIIEQzCCAyugAwIBAgIDCYP0MA0GCSqGSIb3DQEBCwUAMFAxCzAJBgNVBAYTAkRF +MRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNVBAMMIUQtVFJVU1QgUm9vdCBD +bGFzcyAzIENBIDIgRVYgMjAwOTAeFw0wOTExMDUwODUwNDZaFw0yOTExMDUwODUw +NDZaMFAxCzAJBgNVBAYTAkRFMRUwEwYDVQQKDAxELVRydXN0IEdtYkgxKjAoBgNV +BAMMIUQtVFJVU1QgUm9vdCBDbGFzcyAzIENBIDIgRVYgMjAwOTCCASIwDQYJKoZI +hvcNAQEBBQADggEPADCCAQoCggEBAJnxhDRwui+3MKCOvXwEz75ivJn9gpfSegpn +ljgJ9hBOlSJzmY3aFS3nBfwZcyK3jpgAvDw9rKFs+9Z5JUut8Mxk2og+KbgPCdM0 +3TP1YtHhzRnp7hhPTFiu4h7WDFsVWtg6uMQYZB7jM7K1iXdODL/ZlGsTl28So/6Z +qQTMFexgaDbtCHu39b+T7WYxg4zGcTSHThfqr4uRjRxWQa4iN1438h3Z0S0NL2lR +p75mpoo6Kr3HGrHhFPC+Oh25z1uxav60sUYgovseO3Dvk5h9jHOW8sXvhXCtKSb8 +HgQ+HKDYD8tSg2J87otTlZCpV6LqYQXY+U3EJ/pure3511H3a6UCAwEAAaOCASQw +ggEgMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNOUikxiEyoZLsyvcop9Ntea +HNxnMA4GA1UdDwEB/wQEAwIBBjCB3QYDVR0fBIHVMIHSMIGHoIGEoIGBhn9sZGFw +Oi8vZGlyZWN0b3J5LmQtdHJ1c3QubmV0L0NOPUQtVFJVU1QlMjBSb290JTIwQ2xh +c3MlMjAzJTIwQ0ElMjAyJTIwRVYlMjAyMDA5LE89RC1UcnVzdCUyMEdtYkgsQz1E +RT9jZXJ0aWZpY2F0ZXJldm9jYXRpb25saXN0MEagRKBChkBodHRwOi8vd3d3LmQt +dHJ1c3QubmV0L2NybC9kLXRydXN0X3Jvb3RfY2xhc3NfM19jYV8yX2V2XzIwMDku +Y3JsMA0GCSqGSIb3DQEBCwUAA4IBAQA07XtaPKSUiO8aEXUHL7P+PPoeUSbrh/Yp +3uDx1MYkCenBz1UbtDDZzhr+BlGmFaQt77JLvyAoJUnRpjZ3NOhk31KxEcdzes05 +nsKtjHEh8lprr988TlWvsoRlFIm5d8sqMb7Po23Pb0iUMkZv53GMoKaEGTcH8gNF +CSuGdXzfX2lXANtu2KZyIktQ1HWYVt+3GP9DQ1CuekR78HlR10M9p9OB0/DJT7na +xpeG0ILD5EJt/rDiZE4OJudANCa1CInXCGNjOCd1HjPqbqjdn5lPdE2BiYBL3ZqX +KVwvvoFBuYz/6n1gBp7N1z3TLqMVvKjmJuVvw9y4AyHqnxbxLFS1 +-----END CERTIFICATE----- + +# Issuer: CN=CA Disig Root R2 O=Disig a.s. +# Subject: CN=CA Disig Root R2 O=Disig a.s. +# Label: "CA Disig Root R2" +# Serial: 10572350602393338211 +# MD5 Fingerprint: 26:01:fb:d8:27:a7:17:9a:45:54:38:1a:43:01:3b:03 +# SHA1 Fingerprint: b5:61:eb:ea:a4:de:e4:25:4b:69:1a:98:a5:57:47:c2:34:c7:d9:71 +# SHA256 Fingerprint: e2:3d:4a:03:6d:7b:70:e9:f5:95:b1:42:20:79:d2:b9:1e:df:bb:1f:b6:51:a0:63:3e:aa:8a:9d:c5:f8:07:03 +-----BEGIN CERTIFICATE----- +MIIFaTCCA1GgAwIBAgIJAJK4iNuwisFjMA0GCSqGSIb3DQEBCwUAMFIxCzAJBgNV +BAYTAlNLMRMwEQYDVQQHEwpCcmF0aXNsYXZhMRMwEQYDVQQKEwpEaXNpZyBhLnMu +MRkwFwYDVQQDExBDQSBEaXNpZyBSb290IFIyMB4XDTEyMDcxOTA5MTUzMFoXDTQy +MDcxOTA5MTUzMFowUjELMAkGA1UEBhMCU0sxEzARBgNVBAcTCkJyYXRpc2xhdmEx +EzARBgNVBAoTCkRpc2lnIGEucy4xGTAXBgNVBAMTEENBIERpc2lnIFJvb3QgUjIw +ggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCio8QACdaFXS1tFPbCw3Oe +NcJxVX6B+6tGUODBfEl45qt5WDza/3wcn9iXAng+a0EE6UG9vgMsRfYvZNSrXaNH +PWSb6WiaxswbP7q+sos0Ai6YVRn8jG+qX9pMzk0DIaPY0jSTVpbLTAwAFjxfGs3I +x2ymrdMxp7zo5eFm1tL7A7RBZckQrg4FY8aAamkw/dLukO8NJ9+flXP04SXabBbe +QTg06ov80egEFGEtQX6sx3dOy1FU+16SGBsEWmjGycT6txOgmLcRK7fWV8x8nhfR +yyX+hk4kLlYMeE2eARKmK6cBZW58Yh2EhN/qwGu1pSqVg8NTEQxzHQuyRpDRQjrO +QG6Vrf/GlK1ul4SOfW+eioANSW1z4nuSHsPzwfPrLgVv2RvPN3YEyLRa5Beny912 +H9AZdugsBbPWnDTYltxhh5EF5EQIM8HauQhl1K6yNg3ruji6DOWbnuuNZt2Zz9aJ +QfYEkoopKW1rOhzndX0CcQ7zwOe9yxndnWCywmZgtrEE7snmhrmaZkCo5xHtgUUD +i/ZnWejBBhG93c+AAk9lQHhcR1DIm+YfgXvkRKhbhZri3lrVx/k6RGZL5DJUfORs +nLMOPReisjQS1n6yqEm70XooQL6iFh/f5DcfEXP7kAplQ6INfPgGAVUzfbANuPT1 +rqVCV3w2EYx7XsQDnYx5nQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1Ud +DwEB/wQEAwIBBjAdBgNVHQ4EFgQUtZn4r7CU9eMg1gqtzk5WpC5uQu0wDQYJKoZI +hvcNAQELBQADggIBACYGXnDnZTPIgm7ZnBc6G3pmsgH2eDtpXi/q/075KMOYKmFM +tCQSin1tERT3nLXK5ryeJ45MGcipvXrA1zYObYVybqjGom32+nNjf7xueQgcnYqf +GopTpti72TVVsRHFqQOzVju5hJMiXn7B9hJSi+osZ7z+Nkz1uM/Rs0mSO9MpDpkb +lvdhuDvEK7Z4bLQjb/D907JedR+Zlais9trhxTF7+9FGs9K8Z7RiVLoJ92Owk6Ka ++elSLotgEqv89WBW7xBci8QaQtyDW2QOy7W81k/BfDxujRNt+3vrMNDcTa/F1bal +TFtxyegxvug4BkihGuLq0t4SOVga/4AOgnXmt8kHbA7v/zjxmHHEt38OFdAlab0i +nSvtBfZGR6ztwPDUO+Ls7pZbkBNOHlY667DvlruWIxG68kOGdGSVyCh13x01utI3 +gzhTODY7z2zp+WsO0PsE6E9312UBeIYMej4hYvF/Y3EMyZ9E26gnonW+boE+18Dr +G5gPcFw0sorMwIUY6256s/daoQe/qUKS82Ail+QUoQebTnbAjn39pCXHR+3/H3Os +zMOl6W8KjptlwlCFtaOgUxLMVYdh84GuEEZhvUQhuMI9dM9+JDX6HAcOmz0iyu8x +L4ysEr3vQCj8KWefshNPZiTEUxnpHikV7+ZtsH8tZ/3zbBt1RqPlShfppNcL +-----END CERTIFICATE----- + +# Issuer: CN=ACCVRAIZ1 O=ACCV OU=PKIACCV +# Subject: CN=ACCVRAIZ1 O=ACCV OU=PKIACCV +# Label: "ACCVRAIZ1" +# Serial: 6828503384748696800 +# MD5 Fingerprint: d0:a0:5a:ee:05:b6:09:94:21:a1:7d:f1:b2:29:82:02 +# SHA1 Fingerprint: 93:05:7a:88:15:c6:4f:ce:88:2f:fa:91:16:52:28:78:bc:53:64:17 +# SHA256 Fingerprint: 9a:6e:c0:12:e1:a7:da:9d:be:34:19:4d:47:8a:d7:c0:db:18:22:fb:07:1d:f1:29:81:49:6e:d1:04:38:41:13 +-----BEGIN CERTIFICATE----- +MIIH0zCCBbugAwIBAgIIXsO3pkN/pOAwDQYJKoZIhvcNAQEFBQAwQjESMBAGA1UE +AwwJQUNDVlJBSVoxMRAwDgYDVQQLDAdQS0lBQ0NWMQ0wCwYDVQQKDARBQ0NWMQsw +CQYDVQQGEwJFUzAeFw0xMTA1MDUwOTM3MzdaFw0zMDEyMzEwOTM3MzdaMEIxEjAQ +BgNVBAMMCUFDQ1ZSQUlaMTEQMA4GA1UECwwHUEtJQUNDVjENMAsGA1UECgwEQUND +VjELMAkGA1UEBhMCRVMwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCb +qau/YUqXry+XZpp0X9DZlv3P4uRm7x8fRzPCRKPfmt4ftVTdFXxpNRFvu8gMjmoY +HtiP2Ra8EEg2XPBjs5BaXCQ316PWywlxufEBcoSwfdtNgM3802/J+Nq2DoLSRYWo +G2ioPej0RGy9ocLLA76MPhMAhN9KSMDjIgro6TenGEyxCQ0jVn8ETdkXhBilyNpA +lHPrzg5XPAOBOp0KoVdDaaxXbXmQeOW1tDvYvEyNKKGno6e6Ak4l0Squ7a4DIrhr +IA8wKFSVf+DuzgpmndFALW4ir50awQUZ0m/A8p/4e7MCQvtQqR0tkw8jq8bBD5L/ +0KIV9VMJcRz/RROE5iZe+OCIHAr8Fraocwa48GOEAqDGWuzndN9wrqODJerWx5eH +k6fGioozl2A3ED6XPm4pFdahD9GILBKfb6qkxkLrQaLjlUPTAYVtjrs78yM2x/47 +4KElB0iryYl0/wiPgL/AlmXz7uxLaL2diMMxs0Dx6M/2OLuc5NF/1OVYm3z61PMO +m3WR5LpSLhl+0fXNWhn8ugb2+1KoS5kE3fj5tItQo05iifCHJPqDQsGH+tUtKSpa +cXpkatcnYGMN285J9Y0fkIkyF/hzQ7jSWpOGYdbhdQrqeWZ2iE9x6wQl1gpaepPl +uUsXQA+xtrn13k/c4LOsOxFwYIRKQ26ZIMApcQrAZQIDAQABo4ICyzCCAscwfQYI +KwYBBQUHAQEEcTBvMEwGCCsGAQUFBzAChkBodHRwOi8vd3d3LmFjY3YuZXMvZmls +ZWFkbWluL0FyY2hpdm9zL2NlcnRpZmljYWRvcy9yYWl6YWNjdjEuY3J0MB8GCCsG +AQUFBzABhhNodHRwOi8vb2NzcC5hY2N2LmVzMB0GA1UdDgQWBBTSh7Tj3zcnk1X2 +VuqB5TbMjB4/vTAPBgNVHRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFNKHtOPfNyeT +VfZW6oHlNsyMHj+9MIIBcwYDVR0gBIIBajCCAWYwggFiBgRVHSAAMIIBWDCCASIG +CCsGAQUFBwICMIIBFB6CARAAQQB1AHQAbwByAGkAZABhAGQAIABkAGUAIABDAGUA +cgB0AGkAZgBpAGMAYQBjAGkA8wBuACAAUgBhAO0AegAgAGQAZQAgAGwAYQAgAEEA +QwBDAFYAIAAoAEEAZwBlAG4AYwBpAGEAIABkAGUAIABUAGUAYwBuAG8AbABvAGcA +7QBhACAAeQAgAEMAZQByAHQAaQBmAGkAYwBhAGMAaQDzAG4AIABFAGwAZQBjAHQA +cgDzAG4AaQBjAGEALAAgAEMASQBGACAAUQA0ADYAMAAxADEANQA2AEUAKQAuACAA +QwBQAFMAIABlAG4AIABoAHQAdABwADoALwAvAHcAdwB3AC4AYQBjAGMAdgAuAGUA +czAwBggrBgEFBQcCARYkaHR0cDovL3d3dy5hY2N2LmVzL2xlZ2lzbGFjaW9uX2Mu +aHRtMFUGA1UdHwROMEwwSqBIoEaGRGh0dHA6Ly93d3cuYWNjdi5lcy9maWxlYWRt +aW4vQXJjaGl2b3MvY2VydGlmaWNhZG9zL3JhaXphY2N2MV9kZXIuY3JsMA4GA1Ud +DwEB/wQEAwIBBjAXBgNVHREEEDAOgQxhY2N2QGFjY3YuZXMwDQYJKoZIhvcNAQEF +BQADggIBAJcxAp/n/UNnSEQU5CmH7UwoZtCPNdpNYbdKl02125DgBS4OxnnQ8pdp +D70ER9m+27Up2pvZrqmZ1dM8MJP1jaGo/AaNRPTKFpV8M9xii6g3+CfYCS0b78gU +JyCpZET/LtZ1qmxNYEAZSUNUY9rizLpm5U9EelvZaoErQNV/+QEnWCzI7UiRfD+m +AM/EKXMRNt6GGT6d7hmKG9Ww7Y49nCrADdg9ZuM8Db3VlFzi4qc1GwQA9j9ajepD +vV+JHanBsMyZ4k0ACtrJJ1vnE5Bc5PUzolVt3OAJTS+xJlsndQAJxGJ3KQhfnlms +tn6tn1QwIgPBHnFk/vk4CpYY3QIUrCPLBhwepH2NDd4nQeit2hW3sCPdK6jT2iWH +7ehVRE2I9DZ+hJp4rPcOVkkO1jMl1oRQQmwgEh0q1b688nCBpHBgvgW1m54ERL5h +I6zppSSMEYCUWqKiuUnSwdzRp+0xESyeGabu4VXhwOrPDYTkF7eifKXeVSUG7szA +h1xA2syVP1XgNce4hL60Xc16gwFy7ofmXx2utYXGJt/mwZrpHgJHnyqobalbz+xF +d3+YJ5oyXSrjhO7FmGYvliAd3djDJ9ew+f7Zfc3Qn48LFFhRny+Lwzgt3uiP1o2H +pPVWQxaZLPSkVrQ0uGE3ycJYgBugl6H8WY3pEfbRD0tVNEYqi4Y7 +-----END CERTIFICATE----- + +# Issuer: CN=TWCA Global Root CA O=TAIWAN-CA OU=Root CA +# Subject: CN=TWCA Global Root CA O=TAIWAN-CA OU=Root CA +# Label: "TWCA Global Root CA" +# Serial: 3262 +# MD5 Fingerprint: f9:03:7e:cf:e6:9e:3c:73:7a:2a:90:07:69:ff:2b:96 +# SHA1 Fingerprint: 9c:bb:48:53:f6:a4:f6:d3:52:a4:e8:32:52:55:60:13:f5:ad:af:65 +# SHA256 Fingerprint: 59:76:90:07:f7:68:5d:0f:cd:50:87:2f:9f:95:d5:75:5a:5b:2b:45:7d:81:f3:69:2b:61:0a:98:67:2f:0e:1b +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgICDL4wDQYJKoZIhvcNAQELBQAwUTELMAkGA1UEBhMCVFcx +EjAQBgNVBAoTCVRBSVdBTi1DQTEQMA4GA1UECxMHUm9vdCBDQTEcMBoGA1UEAxMT +VFdDQSBHbG9iYWwgUm9vdCBDQTAeFw0xMjA2MjcwNjI4MzNaFw0zMDEyMzExNTU5 +NTlaMFExCzAJBgNVBAYTAlRXMRIwEAYDVQQKEwlUQUlXQU4tQ0ExEDAOBgNVBAsT +B1Jvb3QgQ0ExHDAaBgNVBAMTE1RXQ0EgR2xvYmFsIFJvb3QgQ0EwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQCwBdvI64zEbooh745NnHEKH1Jw7W2CnJfF +10xORUnLQEK1EjRsGcJ0pDFfhQKX7EMzClPSnIyOt7h52yvVavKOZsTuKwEHktSz +0ALfUPZVr2YOy+BHYC8rMjk1Ujoog/h7FsYYuGLWRyWRzvAZEk2tY/XTP3VfKfCh +MBwqoJimFb3u/Rk28OKRQ4/6ytYQJ0lM793B8YVwm8rqqFpD/G2Gb3PpN0Wp8DbH +zIh1HrtsBv+baz4X7GGqcXzGHaL3SekVtTzWoWH1EfcFbx39Eb7QMAfCKbAJTibc +46KokWofwpFFiFzlmLhxpRUZyXx1EcxwdE8tmx2RRP1WKKD+u4ZqyPpcC1jcxkt2 +yKsi2XMPpfRaAok/T54igu6idFMqPVMnaR1sjjIsZAAmY2E2TqNGtz99sy2sbZCi +laLOz9qC5wc0GZbpuCGqKX6mOL6OKUohZnkfs8O1CWfe1tQHRvMq2uYiN2DLgbYP +oA/pyJV/v1WRBXrPPRXAb94JlAGD1zQbzECl8LibZ9WYkTunhHiVJqRaCPgrdLQA +BDzfuBSO6N+pjWxnkjMdwLfS7JLIvgm/LCkFbwJrnu+8vyq8W8BQj0FwcYeyTbcE +qYSjMq+u7msXi7Kx/mzhkIyIqJdIzshNy/MGz19qCkKxHh53L46g5pIOBvwFItIm +4TFRfTLcDwIDAQABoyMwITAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zANBgkqhkiG9w0BAQsFAAOCAgEAXzSBdu+WHdXltdkCY4QWwa6gcFGn90xHNcgL +1yg9iXHZqjNB6hQbbCEAwGxCGX6faVsgQt+i0trEfJdLjbDorMjupWkEmQqSpqsn +LhpNgb+E1HAerUf+/UqdM+DyucRFCCEK2mlpc3INvjT+lIutwx4116KD7+U4x6WF +H6vPNOw/KP4M8VeGTslV9xzU2KV9Bnpv1d8Q34FOIWWxtuEXeZVFBs5fzNxGiWNo +RI2T9GRwoD2dKAXDOXC4Ynsg/eTb6QihuJ49CcdP+yz4k3ZB3lLg4VfSnQO8d57+ +nile98FRYB/e2guyLXW3Q0iT5/Z5xoRdgFlglPx4mI88k1HtQJAH32RjJMtOcQWh +15QaiDLxInQirqWm2BJpTGCjAu4r7NRjkgtevi92a6O2JryPA9gK8kxkRr05YuWW +6zRjESjMlfGt7+/cgFhI6Uu46mWs6fyAtbXIRfmswZ/ZuepiiI7E8UuDEq3mi4TW +nsLrgxifarsbJGAzcMzs9zLzXNl5fe+epP7JI8Mk7hWSsT2RTyaGvWZzJBPqpK5j +wa19hAM8EHiGG3njxPPyBJUgriOCxLM6AGK/5jYk4Ve6xx6QddVfP5VhK8E7zeWz +aGHQRiapIVJpLesux+t3zqY6tQMzT3bR51xUAV3LePTJDL/PEo4XLSNolOer/qmy +KwbQBM0= +-----END CERTIFICATE----- + +# Issuer: CN=TeliaSonera Root CA v1 O=TeliaSonera +# Subject: CN=TeliaSonera Root CA v1 O=TeliaSonera +# Label: "TeliaSonera Root CA v1" +# Serial: 199041966741090107964904287217786801558 +# MD5 Fingerprint: 37:41:49:1b:18:56:9a:26:f5:ad:c2:66:fb:40:a5:4c +# SHA1 Fingerprint: 43:13:bb:96:f1:d5:86:9b:c1:4e:6a:92:f6:cf:f6:34:69:87:82:37 +# SHA256 Fingerprint: dd:69:36:fe:21:f8:f0:77:c1:23:a1:a5:21:c1:22:24:f7:22:55:b7:3e:03:a7:26:06:93:e8:a2:4b:0f:a3:89 +-----BEGIN CERTIFICATE----- +MIIFODCCAyCgAwIBAgIRAJW+FqD3LkbxezmCcvqLzZYwDQYJKoZIhvcNAQEFBQAw +NzEUMBIGA1UECgwLVGVsaWFTb25lcmExHzAdBgNVBAMMFlRlbGlhU29uZXJhIFJv +b3QgQ0EgdjEwHhcNMDcxMDE4MTIwMDUwWhcNMzIxMDE4MTIwMDUwWjA3MRQwEgYD +VQQKDAtUZWxpYVNvbmVyYTEfMB0GA1UEAwwWVGVsaWFTb25lcmEgUm9vdCBDQSB2 +MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAMK+6yfwIaPzaSZVfp3F +VRaRXP3vIb9TgHot0pGMYzHw7CTww6XScnwQbfQ3t+XmfHnqjLWCi65ItqwA3GV1 +7CpNX8GH9SBlK4GoRz6JI5UwFpB/6FcHSOcZrr9FZ7E3GwYq/t75rH2D+1665I+X +Z75Ljo1kB1c4VWk0Nj0TSO9P4tNmHqTPGrdeNjPUtAa9GAH9d4RQAEX1jF3oI7x+ +/jXh7VB7qTCNGdMJjmhnXb88lxhTuylixcpecsHHltTbLaC0H2kD7OriUPEMPPCs +81Mt8Bz17Ww5OXOAFshSsCPN4D7c3TxHoLs1iuKYaIu+5b9y7tL6pe0S7fyYGKkm +dtwoSxAgHNN/Fnct7W+A90m7UwW7XWjH1Mh1Fj+JWov3F0fUTPHSiXk+TT2YqGHe +Oh7S+F4D4MHJHIzTjU3TlTazN19jY5szFPAtJmtTfImMMsJu7D0hADnJoWjiUIMu +sDor8zagrC/kb2HCUQk5PotTubtn2txTuXZZNp1D5SDgPTJghSJRt8czu90VL6R4 +pgd7gUY2BIbdeTXHlSw7sKMXNeVzH7RcWe/a6hBle3rQf5+ztCo3O3CLm1u5K7fs +slESl1MpWtTwEhDcTwK7EpIvYtQ/aUN8Ddb8WHUBiJ1YFkveupD/RwGJBmr2X7KQ +arMCpgKIv7NHfirZ1fpoeDVNAgMBAAGjPzA9MA8GA1UdEwEB/wQFMAMBAf8wCwYD +VR0PBAQDAgEGMB0GA1UdDgQWBBTwj1k4ALP1j5qWDNXr+nuqF+gTEjANBgkqhkiG +9w0BAQUFAAOCAgEAvuRcYk4k9AwI//DTDGjkk0kiP0Qnb7tt3oNmzqjMDfz1mgbl +dxSR651Be5kqhOX//CHBXfDkH1e3damhXwIm/9fH907eT/j3HEbAek9ALCI18Bmx +0GtnLLCo4MBANzX2hFxc469CeP6nyQ1Q6g2EdvZR74NTxnr/DlZJLo961gzmJ1Tj +TQpgcmLNkQfWpb/ImWvtxBnmq0wROMVvMeJuScg/doAmAyYp4Db29iBT4xdwNBed +Y2gea+zDTYa4EzAvXUYNR0PVG6pZDrlcjQZIrXSHX8f8MVRBE+LHIQ6e4B4N4cB7 +Q4WQxYpYxmUKeFfyxiMPAdkgS94P+5KFdSpcc41teyWRyu5FrgZLAMzTsVlQ2jqI +OylDRl6XK1TOU2+NSueW+r9xDkKLfP0ooNBIytrEgUy7onOTJsjrDNYmiLbAJM+7 +vVvrdX3pCI6GMyx5dwlppYn8s3CQh3aP0yK7Qs69cwsgJirQmz1wHiRszYd2qReW +t88NkvuOGKmYSdGe/mBEciG5Ge3C9THxOUiIkCR1VBatzvT4aRRkOfujuLpwQMcn +HL/EVlP6Y2XQ8xwOFvVrhlhNGNTkDY6lnVuR3HYkUD/GKvvZt5y11ubQ2egZixVx +SK236thZiNSQvxaz2emsWWFUyBy6ysHK4bkgTI86k4mloMy/0/Z1pHWWbVY= +-----END CERTIFICATE----- + +# Issuer: CN=E-Tugra Certification Authority O=E-Tu\u011fra EBG Bili\u015fim Teknolojileri ve Hizmetleri A.\u015e. OU=E-Tugra Sertifikasyon Merkezi +# Subject: CN=E-Tugra Certification Authority O=E-Tu\u011fra EBG Bili\u015fim Teknolojileri ve Hizmetleri A.\u015e. OU=E-Tugra Sertifikasyon Merkezi +# Label: "E-Tugra Certification Authority" +# Serial: 7667447206703254355 +# MD5 Fingerprint: b8:a1:03:63:b0:bd:21:71:70:8a:6f:13:3a:bb:79:49 +# SHA1 Fingerprint: 51:c6:e7:08:49:06:6e:f3:92:d4:5c:a0:0d:6d:a3:62:8f:c3:52:39 +# SHA256 Fingerprint: b0:bf:d5:2b:b0:d7:d9:bd:92:bf:5d:4d:c1:3d:a2:55:c0:2c:54:2f:37:83:65:ea:89:39:11:f5:5e:55:f2:3c +-----BEGIN CERTIFICATE----- +MIIGSzCCBDOgAwIBAgIIamg+nFGby1MwDQYJKoZIhvcNAQELBQAwgbIxCzAJBgNV +BAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+BgNVBAoMN0UtVHXEn3JhIEVCRyBC +aWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhpem1ldGxlcmkgQS7Fni4xJjAkBgNV +BAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBNZXJrZXppMSgwJgYDVQQDDB9FLVR1 +Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MB4XDTEzMDMwNTEyMDk0OFoXDTIz +MDMwMzEyMDk0OFowgbIxCzAJBgNVBAYTAlRSMQ8wDQYDVQQHDAZBbmthcmExQDA+ +BgNVBAoMN0UtVHXEn3JhIEVCRyBCaWxpxZ9pbSBUZWtub2xvamlsZXJpIHZlIEhp +em1ldGxlcmkgQS7Fni4xJjAkBgNVBAsMHUUtVHVncmEgU2VydGlmaWthc3lvbiBN +ZXJrZXppMSgwJgYDVQQDDB9FLVR1Z3JhIENlcnRpZmljYXRpb24gQXV0aG9yaXR5 +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA4vU/kwVRHoViVF56C/UY +B4Oufq9899SKa6VjQzm5S/fDxmSJPZQuVIBSOTkHS0vdhQd2h8y/L5VMzH2nPbxH +D5hw+IyFHnSOkm0bQNGZDbt1bsipa5rAhDGvykPL6ys06I+XawGb1Q5KCKpbknSF +Q9OArqGIW66z6l7LFpp3RMih9lRozt6Plyu6W0ACDGQXwLWTzeHxE2bODHnv0ZEo +q1+gElIwcxmOj+GMB6LDu0rw6h8VqO4lzKRG+Bsi77MOQ7osJLjFLFzUHPhdZL3D +k14opz8n8Y4e0ypQBaNV2cvnOVPAmJ6MVGKLJrD3fY185MaeZkJVgkfnsliNZvcH +fC425lAcP9tDJMW/hkd5s3kc91r0E+xs+D/iWR+V7kI+ua2oMoVJl0b+SzGPWsut +dEcf6ZG33ygEIqDUD13ieU/qbIWGvaimzuT6w+Gzrt48Ue7LE3wBf4QOXVGUnhMM +ti6lTPk5cDZvlsouDERVxcr6XQKj39ZkjFqzAQqptQpHF//vkUAqjqFGOjGY5RH8 +zLtJVor8udBhmm9lbObDyz51Sf6Pp+KJxWfXnUYTTjF2OySznhFlhqt/7x3U+Lzn +rFpct1pHXFXOVbQicVtbC/DP3KBhZOqp12gKY6fgDT+gr9Oq0n7vUaDmUStVkhUX +U8u3Zg5mTPj5dUyQ5xJwx0UCAwEAAaNjMGEwHQYDVR0OBBYEFC7j27JJ0JxUeVz6 +Jyr+zE7S6E5UMA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAULuPbsknQnFR5 +XPonKv7MTtLoTlQwDgYDVR0PAQH/BAQDAgEGMA0GCSqGSIb3DQEBCwUAA4ICAQAF +Nzr0TbdF4kV1JI+2d1LoHNgQk2Xz8lkGpD4eKexd0dCrfOAKkEh47U6YA5n+KGCR +HTAduGN8qOY1tfrTYXbm1gdLymmasoR6d5NFFxWfJNCYExL/u6Au/U5Mh/jOXKqY +GwXgAEZKgoClM4so3O0409/lPun++1ndYYRP0lSWE2ETPo+Aab6TR7U1Q9Jauz1c +77NCR807VRMGsAnb/WP2OogKmW9+4c4bU2pEZiNRCHu8W1Ki/QY3OEBhj0qWuJA3 ++GbHeJAAFS6LrVE1Uweoa2iu+U48BybNCAVwzDk/dr2l02cmAYamU9JgO3xDf1WK +vJUawSg5TB9D0pH0clmKuVb8P7Sd2nCcdlqMQ1DujjByTd//SffGqWfZbawCEeI6 +FiWnWAjLb1NBnEg4R2gz0dfHj9R0IdTDBZB6/86WiLEVKV0jq9BgoRJP3vQXzTLl +yb/IQ639Lo7xr+L0mPoSHyDYwKcMhcWQ9DstliaxLL5Mq+ux0orJ23gTDx4JnW2P +AJ8C2sH6H3p6CcRK5ogql5+Ji/03X186zjhZhkuvcQu02PJwT58yE+Owp1fl2tpD +y4Q08ijE6m30Ku/Ba3ba+367hTzSU8JNvnHhRdH9I2cNE3X7z2VnIp2usAnRCf8d +NL/+I5c30jn6PQ0GC7TbO6Orb1wdtn7os4I07QZcJA== +-----END CERTIFICATE----- + +# Issuer: CN=T-TeleSec GlobalRoot Class 2 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center +# Subject: CN=T-TeleSec GlobalRoot Class 2 O=T-Systems Enterprise Services GmbH OU=T-Systems Trust Center +# Label: "T-TeleSec GlobalRoot Class 2" +# Serial: 1 +# MD5 Fingerprint: 2b:9b:9e:e4:7b:6c:1f:00:72:1a:cc:c1:77:79:df:6a +# SHA1 Fingerprint: 59:0d:2d:7d:88:4f:40:2e:61:7e:a5:62:32:17:65:cf:17:d8:94:e9 +# SHA256 Fingerprint: 91:e2:f5:78:8d:58:10:eb:a7:ba:58:73:7d:e1:54:8a:8e:ca:cd:01:45:98:bc:0b:14:3e:04:1b:17:05:25:52 +-----BEGIN CERTIFICATE----- +MIIDwzCCAqugAwIBAgIBATANBgkqhkiG9w0BAQsFADCBgjELMAkGA1UEBhMCREUx +KzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnByaXNlIFNlcnZpY2VzIEdtYkgxHzAd +BgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50ZXIxJTAjBgNVBAMMHFQtVGVsZVNl +YyBHbG9iYWxSb290IENsYXNzIDIwHhcNMDgxMDAxMTA0MDE0WhcNMzMxMDAxMjM1 +OTU5WjCBgjELMAkGA1UEBhMCREUxKzApBgNVBAoMIlQtU3lzdGVtcyBFbnRlcnBy +aXNlIFNlcnZpY2VzIEdtYkgxHzAdBgNVBAsMFlQtU3lzdGVtcyBUcnVzdCBDZW50 +ZXIxJTAjBgNVBAMMHFQtVGVsZVNlYyBHbG9iYWxSb290IENsYXNzIDIwggEiMA0G +CSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCqX9obX+hzkeXaXPSi5kfl82hVYAUd +AqSzm1nzHoqvNK38DcLZSBnuaY/JIPwhqgcZ7bBcrGXHX+0CfHt8LRvWurmAwhiC +FoT6ZrAIxlQjgeTNuUk/9k9uN0goOA/FvudocP05l03Sx5iRUKrERLMjfTlH6VJi +1hKTXrcxlkIF+3anHqP1wvzpesVsqXFP6st4vGCvx9702cu+fjOlbpSD8DT6Iavq +jnKgP6TeMFvvhk1qlVtDRKgQFRzlAVfFmPHmBiiRqiDFt1MmUUOyCxGVWOHAD3bZ +wI18gfNycJ5v/hqO2V81xrJvNHy+SE/iWjnX2J14np+GPgNeGYtEotXHAgMBAAGj +QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBS/ +WSA2AHmgoCJrjNXyYdK4LMuCSjANBgkqhkiG9w0BAQsFAAOCAQEAMQOiYQsfdOhy +NsZt+U2e+iKo4YFWz827n+qrkRk4r6p8FU3ztqONpfSO9kSpp+ghla0+AGIWiPAC +uvxhI+YzmzB6azZie60EI4RYZeLbK4rnJVM3YlNfvNoBYimipidx5joifsFvHZVw +IEoHNN/q/xWA5brXethbdXwFeilHfkCoMRN3zUA7tFFHei4R40cR3p1m0IvVVGb6 +g1XqfMIpiRvpb7PO4gWEyS8+eIVibslfwXhjdFjASBgMmTnrpMwatXlajRWc2BQN +9noHV8cigwUtPJslJj0Ys6lDfMjIq2SPDqO/nBudMNva0Bkuqjzx+zOAduTNrRlP +BSeOE6Fuwg== +-----END CERTIFICATE----- + +# Issuer: CN=Atos TrustedRoot 2011 O=Atos +# Subject: CN=Atos TrustedRoot 2011 O=Atos +# Label: "Atos TrustedRoot 2011" +# Serial: 6643877497813316402 +# MD5 Fingerprint: ae:b9:c4:32:4b:ac:7f:5d:66:cc:77:94:bb:2a:77:56 +# SHA1 Fingerprint: 2b:b1:f5:3e:55:0c:1d:c5:f1:d4:e6:b7:6a:46:4b:55:06:02:ac:21 +# SHA256 Fingerprint: f3:56:be:a2:44:b7:a9:1e:b3:5d:53:ca:9a:d7:86:4a:ce:01:8e:2d:35:d5:f8:f9:6d:df:68:a6:f4:1a:a4:74 +-----BEGIN CERTIFICATE----- +MIIDdzCCAl+gAwIBAgIIXDPLYixfszIwDQYJKoZIhvcNAQELBQAwPDEeMBwGA1UE +AwwVQXRvcyBUcnVzdGVkUm9vdCAyMDExMQ0wCwYDVQQKDARBdG9zMQswCQYDVQQG +EwJERTAeFw0xMTA3MDcxNDU4MzBaFw0zMDEyMzEyMzU5NTlaMDwxHjAcBgNVBAMM +FUF0b3MgVHJ1c3RlZFJvb3QgMjAxMTENMAsGA1UECgwEQXRvczELMAkGA1UEBhMC +REUwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCVhTuXbyo7LjvPpvMp +Nb7PGKw+qtn4TaA+Gke5vJrf8v7MPkfoepbCJI419KkM/IL9bcFyYie96mvr54rM +VD6QUM+A1JX76LWC1BTFtqlVJVfbsVD2sGBkWXppzwO3bw2+yj5vdHLqqjAqc2K+ +SZFhyBH+DgMq92og3AIVDV4VavzjgsG1xZ1kCWyjWZgHJ8cblithdHFsQ/H3NYkQ +4J7sVaE3IqKHBAUsR320HLliKWYoyrfhk/WklAOZuXCFteZI6o1Q/NnezG8HDt0L +cp2AMBYHlT8oDv3FdU9T1nSatCQujgKRz3bFmx5VdJx4IbHwLfELn8LVlhgf8FQi +eowHAgMBAAGjfTB7MB0GA1UdDgQWBBSnpQaxLKYJYO7Rl+lwrrw7GWzbITAPBgNV +HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFKelBrEspglg7tGX6XCuvDsZbNshMBgG +A1UdIAQRMA8wDQYLKwYBBAGwLQMEAQEwDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3 +DQEBCwUAA4IBAQAmdzTblEiGKkGdLD4GkGDEjKwLVLgfuXvTBznk+j57sj1O7Z8j +vZfza1zv7v1Apt+hk6EKhqzvINB5Ab149xnYJDE0BAGmuhWawyfc2E8PzBhj/5kP +DpFrdRbhIfzYJsdHt6bPWHJxfrrhTZVHO8mvbaG0weyJ9rQPOLXiZNwlz6bb65pc +maHFCN795trV1lpFDMS3wrUU77QR/w4VtfX128a961qn8FYiqTxlVMYVqL2Gns2D +lmh6cYGJ4Qvh6hEbaAjMaZ7snkGeRDImeuKHCnE96+RapNLbxc3G3mB/ufNPRJLv +KrcYPqcZ2Qt9sTdBQrC6YB3y/gkRsPCHe6ed +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root CA 1 G3 O=QuoVadis Limited +# Subject: CN=QuoVadis Root CA 1 G3 O=QuoVadis Limited +# Label: "QuoVadis Root CA 1 G3" +# Serial: 687049649626669250736271037606554624078720034195 +# MD5 Fingerprint: a4:bc:5b:3f:fe:37:9a:fa:64:f0:e2:fa:05:3d:0b:ab +# SHA1 Fingerprint: 1b:8e:ea:57:96:29:1a:c9:39:ea:b8:0a:81:1a:73:73:c0:93:79:67 +# SHA256 Fingerprint: 8a:86:6f:d1:b2:76:b5:7e:57:8e:92:1c:65:82:8a:2b:ed:58:e9:f2:f2:88:05:41:34:b7:f1:f4:bf:c9:cc:74 +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIUeFhfLq0sGUvjNwc1NBMotZbUZZMwDQYJKoZIhvcNAQEL +BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc +BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMSBHMzAeFw0xMjAxMTIxNzI3NDRaFw00 +MjAxMTIxNzI3NDRaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDEgRzMwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQCgvlAQjunybEC0BJyFuTHK3C3kEakEPBtV +wedYMB0ktMPvhd6MLOHBPd+C5k+tR4ds7FtJwUrVu4/sh6x/gpqG7D0DmVIB0jWe +rNrwU8lmPNSsAgHaJNM7qAJGr6Qc4/hzWHa39g6QDbXwz8z6+cZM5cOGMAqNF341 +68Xfuw6cwI2H44g4hWf6Pser4BOcBRiYz5P1sZK0/CPTz9XEJ0ngnjybCKOLXSoh +4Pw5qlPafX7PGglTvF0FBM+hSo+LdoINofjSxxR3W5A2B4GbPgb6Ul5jxaYA/qXp +UhtStZI5cgMJYr2wYBZupt0lwgNm3fME0UDiTouG9G/lg6AnhF4EwfWQvTA9xO+o +abw4m6SkltFi2mnAAZauy8RRNOoMqv8hjlmPSlzkYZqn0ukqeI1RPToV7qJZjqlc +3sX5kCLliEVx3ZGZbHqfPT2YfF72vhZooF6uCyP8Wg+qInYtyaEQHeTTRCOQiJ/G +KubX9ZqzWB4vMIkIG1SitZgj7Ah3HJVdYdHLiZxfokqRmu8hqkkWCKi9YSgxyXSt +hfbZxbGL0eUQMk1fiyA6PEkfM4VZDdvLCXVDaXP7a3F98N/ETH3Goy7IlXnLc6KO +Tk0k+17kBL5yG6YnLUlamXrXXAkgt3+UuU/xDRxeiEIbEbfnkduebPRq34wGmAOt +zCjvpUfzUwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQUo5fW816iEOGrRZ88F2Q87gFwnMwwDQYJKoZIhvcNAQELBQAD +ggIBABj6W3X8PnrHX3fHyt/PX8MSxEBd1DKquGrX1RUVRpgjpeaQWxiZTOOtQqOC +MTaIzen7xASWSIsBx40Bz1szBpZGZnQdT+3Btrm0DWHMY37XLneMlhwqI2hrhVd2 +cDMT/uFPpiN3GPoajOi9ZcnPP/TJF9zrx7zABC4tRi9pZsMbj/7sPtPKlL92CiUN +qXsCHKnQO18LwIE6PWThv6ctTr1NxNgpxiIY0MWscgKCP6o6ojoilzHdCGPDdRS5 +YCgtW2jgFqlmgiNR9etT2DGbe+m3nUvriBbP+V04ikkwj+3x6xn0dxoxGE1nVGwv +b2X52z3sIexe9PSLymBlVNFxZPT5pqOBMzYzcfCkeF9OrYMh3jRJjehZrJ3ydlo2 +8hP0r+AJx2EqbPfgna67hkooby7utHnNkDPDs3b69fBsnQGQ+p6Q9pxyz0fawx/k +NSBT8lTR32GDpgLiJTjehTItXnOQUl1CxM49S+H5GYQd1aJQzEH7QRTDvdbJWqNj +ZgKAvQU6O0ec7AAmTPWIUb+oI38YB7AL7YsmoWTTYUrrXJ/es69nA7Mf3W1daWhp +q1467HxpvMc7hU6eFbm0FU/DlXpY18ls6Wy58yljXrQs8C097Vpl4KlbQMJImYFt +nh8GKjwStIsPm6Ik8KaN1nrgS7ZklmOVhMJKzRwuJIczYOXD +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root CA 2 G3 O=QuoVadis Limited +# Subject: CN=QuoVadis Root CA 2 G3 O=QuoVadis Limited +# Label: "QuoVadis Root CA 2 G3" +# Serial: 390156079458959257446133169266079962026824725800 +# MD5 Fingerprint: af:0c:86:6e:bf:40:2d:7f:0b:3e:12:50:ba:12:3d:06 +# SHA1 Fingerprint: 09:3c:61:f3:8b:8b:dc:7d:55:df:75:38:02:05:00:e1:25:f5:c8:36 +# SHA256 Fingerprint: 8f:e4:fb:0a:f9:3a:4d:0d:67:db:0b:eb:b2:3e:37:c7:1b:f3:25:dc:bc:dd:24:0e:a0:4d:af:58:b4:7e:18:40 +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIURFc0JFuBiZs18s64KztbpybwdSgwDQYJKoZIhvcNAQEL +BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc +BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMiBHMzAeFw0xMjAxMTIxODU5MzJaFw00 +MjAxMTIxODU5MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDIgRzMwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQChriWyARjcV4g/Ruv5r+LrI3HimtFhZiFf +qq8nUeVuGxbULX1QsFN3vXg6YOJkApt8hpvWGo6t/x8Vf9WVHhLL5hSEBMHfNrMW +n4rjyduYNM7YMxcoRvynyfDStNVNCXJJ+fKH46nafaF9a7I6JaltUkSs+L5u+9ym +c5GQYaYDFCDy54ejiK2toIz/pgslUiXnFgHVy7g1gQyjO/Dh4fxaXc6AcW34Sas+ +O7q414AB+6XrW7PFXmAqMaCvN+ggOp+oMiwMzAkd056OXbxMmO7FGmh77FOm6RQ1 +o9/NgJ8MSPsc9PG/Srj61YxxSscfrf5BmrODXfKEVu+lV0POKa2Mq1W/xPtbAd0j +IaFYAI7D0GoT7RPjEiuA3GfmlbLNHiJuKvhB1PLKFAeNilUSxmn1uIZoL1NesNKq +IcGY5jDjZ1XHm26sGahVpkUG0CM62+tlXSoREfA7T8pt9DTEceT/AFr2XK4jYIVz +8eQQsSWu1ZK7E8EM4DnatDlXtas1qnIhO4M15zHfeiFuuDIIfR0ykRVKYnLP43eh +vNURG3YBZwjgQQvD6xVu+KQZ2aKrr+InUlYrAoosFCT5v0ICvybIxo/gbjh9Uy3l +7ZizlWNof/k19N+IxWA1ksB8aRxhlRbQ694Lrz4EEEVlWFA4r0jyWbYW8jwNkALG +cC4BrTwV1wIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQU7edvdlq/YOxJW8ald7tyFnGbxD0wDQYJKoZIhvcNAQELBQAD +ggIBAJHfgD9DCX5xwvfrs4iP4VGyvD11+ShdyLyZm3tdquXK4Qr36LLTn91nMX66 +AarHakE7kNQIXLJgapDwyM4DYvmL7ftuKtwGTTwpD4kWilhMSA/ohGHqPHKmd+RC +roijQ1h5fq7KpVMNqT1wvSAZYaRsOPxDMuHBR//47PERIjKWnML2W2mWeyAMQ0Ga +W/ZZGYjeVYg3UQt4XAoeo0L9x52ID8DyeAIkVJOviYeIyUqAHerQbj5hLja7NQ4n +lv1mNDthcnPxFlxHBlRJAHpYErAK74X9sbgzdWqTHBLmYF5vHX/JHyPLhGGfHoJE ++V+tYlUkmlKY7VHnoX6XOuYvHxHaU4AshZ6rNRDbIl9qxV6XU/IyAgkwo1jwDQHV +csaxfGl7w/U2Rcxhbl5MlMVerugOXou/983g7aEOGzPuVBj+D77vfoRrQ+NwmNtd +dbINWQeFFSM51vHfqSYP1kjHs6Yi9TM3WpVHn3u6GBVv/9YUZINJ0gpnIdsPNWNg +KCLjsZWDzYWm3S8P52dSbrsvhXz1SnPnxT7AvSESBT/8twNJAlvIJebiVDj1eYeM +HVOyToV7BjjHLPj4sHKNJeV3UvQDHEimUF+IIDBu8oJDqz2XhOdT+yHBTw8imoa4 +WSr2Rz0ZiC3oheGe7IUIarFsNMkd7EgrO3jtZsSOeWmD3n+M +-----END CERTIFICATE----- + +# Issuer: CN=QuoVadis Root CA 3 G3 O=QuoVadis Limited +# Subject: CN=QuoVadis Root CA 3 G3 O=QuoVadis Limited +# Label: "QuoVadis Root CA 3 G3" +# Serial: 268090761170461462463995952157327242137089239581 +# MD5 Fingerprint: df:7d:b9:ad:54:6f:68:a1:df:89:57:03:97:43:b0:d7 +# SHA1 Fingerprint: 48:12:bd:92:3c:a8:c4:39:06:e7:30:6d:27:96:e6:a4:cf:22:2e:7d +# SHA256 Fingerprint: 88:ef:81:de:20:2e:b0:18:45:2e:43:f8:64:72:5c:ea:5f:bd:1f:c2:d9:d2:05:73:07:09:c5:d8:b8:69:0f:46 +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIULvWbAiin23r/1aOp7r0DoM8Sah0wDQYJKoZIhvcNAQEL +BQAwSDELMAkGA1UEBhMCQk0xGTAXBgNVBAoTEFF1b1ZhZGlzIExpbWl0ZWQxHjAc +BgNVBAMTFVF1b1ZhZGlzIFJvb3QgQ0EgMyBHMzAeFw0xMjAxMTIyMDI2MzJaFw00 +MjAxMTIyMDI2MzJaMEgxCzAJBgNVBAYTAkJNMRkwFwYDVQQKExBRdW9WYWRpcyBM +aW1pdGVkMR4wHAYDVQQDExVRdW9WYWRpcyBSb290IENBIDMgRzMwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQCzyw4QZ47qFJenMioKVjZ/aEzHs286IxSR +/xl/pcqs7rN2nXrpixurazHb+gtTTK/FpRp5PIpM/6zfJd5O2YIyC0TeytuMrKNu +FoM7pmRLMon7FhY4futD4tN0SsJiCnMK3UmzV9KwCoWdcTzeo8vAMvMBOSBDGzXR +U7Ox7sWTaYI+FrUoRqHe6okJ7UO4BUaKhvVZR74bbwEhELn9qdIoyhA5CcoTNs+c +ra1AdHkrAj80//ogaX3T7mH1urPnMNA3I4ZyYUUpSFlob3emLoG+B01vr87ERROR +FHAGjx+f+IdpsQ7vw4kZ6+ocYfx6bIrc1gMLnia6Et3UVDmrJqMz6nWB2i3ND0/k +A9HvFZcba5DFApCTZgIhsUfei5pKgLlVj7WiL8DWM2fafsSntARE60f75li59wzw +eyuxwHApw0BiLTtIadwjPEjrewl5qW3aqDCYz4ByA4imW0aucnl8CAMhZa634Ryl +sSqiMd5mBPfAdOhx3v89WcyWJhKLhZVXGqtrdQtEPREoPHtht+KPZ0/l7DxMYIBp +VzgeAVuNVejH38DMdyM0SXV89pgR6y3e7UEuFAUCf+D+IOs15xGsIs5XPd7JMG0Q +A4XN8f+MFrXBsj6IbGB/kE+V9/YtrQE5BwT6dYB9v0lQ7e/JxHwc64B+27bQ3RP+ +ydOc17KXqQIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB +BjAdBgNVHQ4EFgQUxhfQvKjqAkPyGwaZXSuQILnXnOQwDQYJKoZIhvcNAQELBQAD +ggIBADRh2Va1EodVTd2jNTFGu6QHcrxfYWLopfsLN7E8trP6KZ1/AvWkyaiTt3px +KGmPc+FSkNrVvjrlt3ZqVoAh313m6Tqe5T72omnHKgqwGEfcIHB9UqM+WXzBusnI +FUBhynLWcKzSt/Ac5IYp8M7vaGPQtSCKFWGafoaYtMnCdvvMujAWzKNhxnQT5Wvv +oxXqA/4Ti2Tk08HS6IT7SdEQTXlm66r99I0xHnAUrdzeZxNMgRVhvLfZkXdxGYFg +u/BYpbWcC/ePIlUnwEsBbTuZDdQdm2NnL9DuDcpmvJRPpq3t/O5jrFc/ZSXPsoaP +0Aj/uHYUbt7lJ+yreLVTubY/6CD50qi+YUbKh4yE8/nxoGibIh6BJpsQBJFxwAYf +3KDTuVan45gtf4Od34wrnDKOMpTwATwiKp9Dwi7DmDkHOHv8XgBCH/MyJnmDhPbl +8MFREsALHgQjDFSlTC9JxUrRtm5gDWv8a4uFJGS3iQ6rJUdbPM9+Sb3H6QrG2vd+ +DhcI00iX0HGS8A85PjRqHH3Y8iKuu2n0M7SmSFXRDw4m6Oy2Cy2nhTXN/VnIn9HN +PlopNLk9hM6xZdRZkZFWdSHBd575euFgndOtBBj0fOtek49TSiIp+EgrPk2GrFt/ +ywaZWWDYWGWVjUTR939+J399roD1B0y2PpxxVJkES/1Y+Zj0 +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Assured ID Root G2 O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Assured ID Root G2 O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Assured ID Root G2" +# Serial: 15385348160840213938643033620894905419 +# MD5 Fingerprint: 92:38:b9:f8:63:24:82:65:2c:57:33:e6:fe:81:8f:9d +# SHA1 Fingerprint: a1:4b:48:d9:43:ee:0a:0e:40:90:4f:3c:e0:a4:c0:91:93:51:5d:3f +# SHA256 Fingerprint: 7d:05:eb:b6:82:33:9f:8c:94:51:ee:09:4e:eb:fe:fa:79:53:a1:14:ed:b2:f4:49:49:45:2f:ab:7d:2f:c1:85 +-----BEGIN CERTIFICATE----- +MIIDljCCAn6gAwIBAgIQC5McOtY5Z+pnI7/Dr5r0SzANBgkqhkiG9w0BAQsFADBl +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJv +b3QgRzIwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQG +EwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNl +cnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzIwggEi +MA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDZ5ygvUj82ckmIkzTz+GoeMVSA +n61UQbVH35ao1K+ALbkKz3X9iaV9JPrjIgwrvJUXCzO/GU1BBpAAvQxNEP4Htecc +biJVMWWXvdMX0h5i89vqbFCMP4QMls+3ywPgym2hFEwbid3tALBSfK+RbLE4E9Hp +EgjAALAcKxHad3A2m67OeYfcgnDmCXRwVWmvo2ifv922ebPynXApVfSr/5Vh88lA +bx3RvpO704gqu52/clpWcTs/1PPRCv4o76Pu2ZmvA9OPYLfykqGxvYmJHzDNw6Yu +YjOuFgJ3RFrngQo8p0Quebg/BLxcoIfhG69Rjs3sLPr4/m3wOnyqi+RnlTGNAgMB +AAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQW +BBTOw0q5mVXyuNtgv6l+vVa1lzan1jANBgkqhkiG9w0BAQsFAAOCAQEAyqVVjOPI +QW5pJ6d1Ee88hjZv0p3GeDgdaZaikmkuOGybfQTUiaWxMTeKySHMq2zNixya1r9I +0jJmwYrA8y8678Dj1JGG0VDjA9tzd29KOVPt3ibHtX2vK0LRdWLjSisCx1BL4Gni +lmwORGYQRI+tBev4eaymG+g3NJ1TyWGqolKvSnAWhsI6yLETcDbYz+70CjTVW0z9 +B5yiutkBclzzTcHdDrEcDcRjvq30FPuJ7KJBDkzMyFdA0G4Dqs0MjomZmWzwPDCv +ON9vvKO+KSAnq3T/EyJ43pdSVR6DtVQgA+6uwE9W3jfMw3+qBCe703e4YtsXfJwo +IhNzbM8m9Yop5w== +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Assured ID Root G3 O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Assured ID Root G3 O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Assured ID Root G3" +# Serial: 15459312981008553731928384953135426796 +# MD5 Fingerprint: 7c:7f:65:31:0c:81:df:8d:ba:3e:99:e2:5c:ad:6e:fb +# SHA1 Fingerprint: f5:17:a2:4f:9a:48:c6:c9:f8:a2:00:26:9f:dc:0f:48:2c:ab:30:89 +# SHA256 Fingerprint: 7e:37:cb:8b:4c:47:09:0c:ab:36:55:1b:a6:f4:5d:b8:40:68:0f:ba:16:6a:95:2d:b1:00:71:7f:43:05:3f:c2 +-----BEGIN CERTIFICATE----- +MIICRjCCAc2gAwIBAgIQC6Fa+h3foLVJRK/NJKBs7DAKBggqhkjOPQQDAzBlMQsw +CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu +ZGlnaWNlcnQuY29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3Qg +RzMwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBlMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu +Y29tMSQwIgYDVQQDExtEaWdpQ2VydCBBc3N1cmVkIElEIFJvb3QgRzMwdjAQBgcq +hkjOPQIBBgUrgQQAIgNiAAQZ57ysRGXtzbg/WPuNsVepRC0FFfLvC/8QdJ+1YlJf +Zn4f5dwbRXkLzMZTCp2NXQLZqVneAlr2lSoOjThKiknGvMYDOAdfVdp+CW7if17Q +RSAPWXYQ1qAk8C3eNvJsKTmjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/ +BAQDAgGGMB0GA1UdDgQWBBTL0L2p4ZgFUaFNN6KDec6NHSrkhDAKBggqhkjOPQQD +AwNnADBkAjAlpIFFAmsSS3V0T8gj43DydXLefInwz5FyYZ5eEJJZVrmDxxDnOOlY +JjZ91eQ0hjkCMHw2U/Aw5WJjOpnitqM7mzT6HtoQknFekROn3aRukswy1vUhZscv +6pZjamVFkpUBtA== +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Global Root G2 O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Global Root G2 O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Global Root G2" +# Serial: 4293743540046975378534879503202253541 +# MD5 Fingerprint: e4:a6:8a:c8:54:ac:52:42:46:0a:fd:72:48:1b:2a:44 +# SHA1 Fingerprint: df:3c:24:f9:bf:d6:66:76:1b:26:80:73:fe:06:d1:cc:8d:4f:82:a4 +# SHA256 Fingerprint: cb:3c:cb:b7:60:31:e5:e0:13:8f:8d:d3:9a:23:f9:de:47:ff:c3:5e:43:c1:14:4c:ea:27:d4:6a:5a:b1:cb:5f +-----BEGIN CERTIFICATE----- +MIIDjjCCAnagAwIBAgIQAzrx5qcRqaC7KGSxHQn65TANBgkqhkiG9w0BAQsFADBh +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBH +MjAeFw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVT +MRUwEwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5j +b20xIDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEcyMIIBIjANBgkqhkiG +9w0BAQEFAAOCAQ8AMIIBCgKCAQEAuzfNNNx7a8myaJCtSnX/RrohCgiN9RlUyfuI +2/Ou8jqJkTx65qsGGmvPrC3oXgkkRLpimn7Wo6h+4FR1IAWsULecYxpsMNzaHxmx +1x7e/dfgy5SDN67sH0NO3Xss0r0upS/kqbitOtSZpLYl6ZtrAGCSYP9PIUkY92eQ +q2EGnI/yuum06ZIya7XzV+hdG82MHauVBJVJ8zUtluNJbd134/tJS7SsVQepj5Wz +tCO7TG1F8PapspUwtP1MVYwnSlcUfIKdzXOS0xZKBgyMUNGPHgm+F6HmIcr9g+UQ +vIOlCsRnKPZzFBQ9RnbDhxSJITRNrw9FDKZJobq7nMWxM4MphQIDAQABo0IwQDAP +BgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAdBgNVHQ4EFgQUTiJUIBiV +5uNu5g/6+rkS7QYXjzkwDQYJKoZIhvcNAQELBQADggEBAGBnKJRvDkhj6zHd6mcY +1Yl9PMWLSn/pvtsrF9+wX3N3KjITOYFnQoQj8kVnNeyIv/iPsGEMNKSuIEyExtv4 +NeF22d+mQrvHRAiGfzZ0JFrabA0UWTW98kndth/Jsw1HKj2ZL7tcu7XUIOGZX1NG +Fdtom/DzMNU+MeKNhJ7jitralj41E6Vf8PlwUHBHQRFXGU7Aj64GxJUTFy8bJZ91 +8rGOmaFvE7FBcf6IKshPECBV1/MUReXgRPTqh5Uykw7+U0b6LJ3/iyK5S9kJRaTe +pLiaWN0bfVKfjllDiIGknibVb63dDcY3fe0Dkhvld1927jyNxF1WW6LZZm6zNTfl +MrY= +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Global Root G3 O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Global Root G3 O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Global Root G3" +# Serial: 7089244469030293291760083333884364146 +# MD5 Fingerprint: f5:5d:a4:50:a5:fb:28:7e:1e:0f:0d:cc:96:57:56:ca +# SHA1 Fingerprint: 7e:04:de:89:6a:3e:66:6d:00:e6:87:d3:3f:fa:d9:3b:e8:3d:34:9e +# SHA256 Fingerprint: 31:ad:66:48:f8:10:41:38:c7:38:f3:9e:a4:32:01:33:39:3e:3a:18:cc:02:29:6e:f9:7c:2a:c9:ef:67:31:d0 +-----BEGIN CERTIFICATE----- +MIICPzCCAcWgAwIBAgIQBVVWvPJepDU1w6QP1atFcjAKBggqhkjOPQQDAzBhMQsw +CQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cu +ZGlnaWNlcnQuY29tMSAwHgYDVQQDExdEaWdpQ2VydCBHbG9iYWwgUm9vdCBHMzAe +Fw0xMzA4MDExMjAwMDBaFw0zODAxMTUxMjAwMDBaMGExCzAJBgNVBAYTAlVTMRUw +EwYDVQQKEwxEaWdpQ2VydCBJbmMxGTAXBgNVBAsTEHd3dy5kaWdpY2VydC5jb20x +IDAeBgNVBAMTF0RpZ2lDZXJ0IEdsb2JhbCBSb290IEczMHYwEAYHKoZIzj0CAQYF +K4EEACIDYgAE3afZu4q4C/sLfyHS8L6+c/MzXRq8NOrexpu80JX28MzQC7phW1FG +fp4tn+6OYwwX7Adw9c+ELkCDnOg/QW07rdOkFFk2eJ0DQ+4QE2xy3q6Ip6FrtUPO +Z9wj/wMco+I+o0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBhjAd +BgNVHQ4EFgQUs9tIpPmhxdiuNkHMEWNpYim8S8YwCgYIKoZIzj0EAwMDaAAwZQIx +AK288mw/EkrRLTnDCgmXc/SINoyIJ7vmiI1Qhadj+Z4y3maTD/HMsQmP3Wyr+mt/ +oAIwOWZbwmSNuJ5Q3KjVSaLtx9zRSX8XAbjIho9OjIgrqJqpisXRAL34VOKa5Vt8 +sycX +-----END CERTIFICATE----- + +# Issuer: CN=DigiCert Trusted Root G4 O=DigiCert Inc OU=www.digicert.com +# Subject: CN=DigiCert Trusted Root G4 O=DigiCert Inc OU=www.digicert.com +# Label: "DigiCert Trusted Root G4" +# Serial: 7451500558977370777930084869016614236 +# MD5 Fingerprint: 78:f2:fc:aa:60:1f:2f:b4:eb:c9:37:ba:53:2e:75:49 +# SHA1 Fingerprint: dd:fb:16:cd:49:31:c9:73:a2:03:7d:3f:c8:3a:4d:7d:77:5d:05:e4 +# SHA256 Fingerprint: 55:2f:7b:dc:f1:a7:af:9e:6c:e6:72:01:7f:4f:12:ab:f7:72:40:c7:8e:76:1a:c2:03:d1:d9:d2:0a:c8:99:88 +-----BEGIN CERTIFICATE----- +MIIFkDCCA3igAwIBAgIQBZsbV56OITLiOQe9p3d1XDANBgkqhkiG9w0BAQwFADBi +MQswCQYDVQQGEwJVUzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3 +d3cuZGlnaWNlcnQuY29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3Qg +RzQwHhcNMTMwODAxMTIwMDAwWhcNMzgwMTE1MTIwMDAwWjBiMQswCQYDVQQGEwJV +UzEVMBMGA1UEChMMRGlnaUNlcnQgSW5jMRkwFwYDVQQLExB3d3cuZGlnaWNlcnQu +Y29tMSEwHwYDVQQDExhEaWdpQ2VydCBUcnVzdGVkIFJvb3QgRzQwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQC/5pBzaN675F1KPDAiMGkz7MKnJS7JIT3y +ithZwuEppz1Yq3aaza57G4QNxDAf8xukOBbrVsaXbR2rsnnyyhHS5F/WBTxSD1If +xp4VpX6+n6lXFllVcq9ok3DCsrp1mWpzMpTREEQQLt+C8weE5nQ7bXHiLQwb7iDV +ySAdYyktzuxeTsiT+CFhmzTrBcZe7FsavOvJz82sNEBfsXpm7nfISKhmV1efVFiO +DCu3T6cw2Vbuyntd463JT17lNecxy9qTXtyOj4DatpGYQJB5w3jHtrHEtWoYOAMQ +jdjUN6QuBX2I9YI+EJFwq1WCQTLX2wRzKm6RAXwhTNS8rhsDdV14Ztk6MUSaM0C/ +CNdaSaTC5qmgZ92kJ7yhTzm1EVgX9yRcRo9k98FpiHaYdj1ZXUJ2h4mXaXpI8OCi +EhtmmnTK3kse5w5jrubU75KSOp493ADkRSWJtppEGSt+wJS00mFt6zPZxd9LBADM +fRyVw4/3IbKyEbe7f/LVjHAsQWCqsWMYRJUadmJ+9oCw++hkpjPRiQfhvbfmQ6QY +uKZ3AeEPlAwhHbJUKSWJbOUOUlFHdL4mrLZBdd56rF+NP8m800ERElvlEFDrMcXK +chYiCd98THU/Y+whX8QgUWtvsauGi0/C1kVfnSD8oR7FwI+isX4KJpn15GkvmB0t +9dmpsh3lGwIDAQABo0IwQDAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIB +hjAdBgNVHQ4EFgQU7NfjgtJxXWRM3y5nP+e6mK4cD08wDQYJKoZIhvcNAQEMBQAD +ggIBALth2X2pbL4XxJEbw6GiAI3jZGgPVs93rnD5/ZpKmbnJeFwMDF/k5hQpVgs2 +SV1EY+CtnJYYZhsjDT156W1r1lT40jzBQ0CuHVD1UvyQO7uYmWlrx8GnqGikJ9yd ++SeuMIW59mdNOj6PWTkiU0TryF0Dyu1Qen1iIQqAyHNm0aAFYF/opbSnr6j3bTWc +fFqK1qI4mfN4i/RN0iAL3gTujJtHgXINwBQy7zBZLq7gcfJW5GqXb5JQbZaNaHqa +sjYUegbyJLkJEVDXCLG4iXqEI2FCKeWjzaIgQdfRnGTZ6iahixTXTBmyUEFxPT9N +cCOGDErcgdLMMpSEDQgJlxxPwO5rIHQw0uA5NBCFIRUBCOhVMt5xSdkoF1BN5r5N +0XWs0Mr7QbhDparTwwVETyw2m+L64kW4I1NsBm9nVX9GtUw/bihaeSbSpKhil9Ie +4u1Ki7wb/UdKDd9nZn6yW0HQO+T0O/QEY+nvwlQAUaCKKsnOeMzV6ocEGLPOr0mI +r/OSmbaz5mEP0oUA51Aa5BuVnRmhuZyxm7EAHu/QD09CbMkKvO5D+jpxpchNJqU1 +/YldvIViHTLSoCtU7ZpXwdv6EM8Zt4tKG48BtieVU+i2iW1bvGjUI+iLUaJW+fCm +gKDWHrO8Dw9TdSmq6hN35N6MgSGtBxBHEa2HPQfRdbzP82Z+ +-----END CERTIFICATE----- + +# Issuer: CN=COMODO RSA Certification Authority O=COMODO CA Limited +# Subject: CN=COMODO RSA Certification Authority O=COMODO CA Limited +# Label: "COMODO RSA Certification Authority" +# Serial: 101909084537582093308941363524873193117 +# MD5 Fingerprint: 1b:31:b0:71:40:36:cc:14:36:91:ad:c4:3e:fd:ec:18 +# SHA1 Fingerprint: af:e5:d2:44:a8:d1:19:42:30:ff:47:9f:e2:f8:97:bb:cd:7a:8c:b4 +# SHA256 Fingerprint: 52:f0:e1:c4:e5:8e:c6:29:29:1b:60:31:7f:07:46:71:b8:5d:7e:a8:0d:5b:07:27:34:63:53:4b:32:b4:02:34 +-----BEGIN CERTIFICATE----- +MIIF2DCCA8CgAwIBAgIQTKr5yttjb+Af907YWwOGnTANBgkqhkiG9w0BAQwFADCB +hTELMAkGA1UEBhMCR0IxGzAZBgNVBAgTEkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4G +A1UEBxMHU2FsZm9yZDEaMBgGA1UEChMRQ09NT0RPIENBIExpbWl0ZWQxKzApBgNV +BAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMTE5 +MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBhTELMAkGA1UEBhMCR0IxGzAZBgNVBAgT +EkdyZWF0ZXIgTWFuY2hlc3RlcjEQMA4GA1UEBxMHU2FsZm9yZDEaMBgGA1UEChMR +Q09NT0RPIENBIExpbWl0ZWQxKzApBgNVBAMTIkNPTU9ETyBSU0EgQ2VydGlmaWNh +dGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQCR +6FSS0gpWsawNJN3Fz0RndJkrN6N9I3AAcbxT38T6KhKPS38QVr2fcHK3YX/JSw8X +pz3jsARh7v8Rl8f0hj4K+j5c+ZPmNHrZFGvnnLOFoIJ6dq9xkNfs/Q36nGz637CC +9BR++b7Epi9Pf5l/tfxnQ3K9DADWietrLNPtj5gcFKt+5eNu/Nio5JIk2kNrYrhV +/erBvGy2i/MOjZrkm2xpmfh4SDBF1a3hDTxFYPwyllEnvGfDyi62a+pGx8cgoLEf +Zd5ICLqkTqnyg0Y3hOvozIFIQ2dOciqbXL1MGyiKXCJ7tKuY2e7gUYPDCUZObT6Z ++pUX2nwzV0E8jVHtC7ZcryxjGt9XyD+86V3Em69FmeKjWiS0uqlWPc9vqv9JWL7w +qP/0uK3pN/u6uPQLOvnoQ0IeidiEyxPx2bvhiWC4jChWrBQdnArncevPDt09qZah +SL0896+1DSJMwBGB7FY79tOi4lu3sgQiUpWAk2nojkxl8ZEDLXB0AuqLZxUpaVIC +u9ffUGpVRr+goyhhf3DQw6KqLCGqR84onAZFdr+CGCe01a60y1Dma/RMhnEw6abf +Fobg2P9A3fvQQoh/ozM6LlweQRGBY84YcWsr7KaKtzFcOmpH4MN5WdYgGq/yapiq +crxXStJLnbsQ/LBMQeXtHT1eKJ2czL+zUdqnR+WEUwIDAQABo0IwQDAdBgNVHQ4E +FgQUu69+Aj36pvE8hI6t7jiY7NkyMtQwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB +/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAArx1UaEt65Ru2yyTUEUAJNMnMvl +wFTPoCWOAvn9sKIN9SCYPBMtrFaisNZ+EZLpLrqeLppysb0ZRGxhNaKatBYSaVqM +4dc+pBroLwP0rmEdEBsqpIt6xf4FpuHA1sj+nq6PK7o9mfjYcwlYRm6mnPTXJ9OV +2jeDchzTc+CiR5kDOF3VSXkAKRzH7JsgHAckaVd4sjn8OoSgtZx8jb8uk2Intzna +FxiuvTwJaP+EmzzV1gsD41eeFPfR60/IvYcjt7ZJQ3mFXLrrkguhxuhoqEwWsRqZ +CuhTLJK7oQkYdQxlqHvLI7cawiiFwxv/0Cti76R7CZGYZ4wUAc1oBmpjIXUDgIiK +boHGhfKppC3n9KUkEEeDys30jXlYsQab5xoq2Z0B15R97QNKyvDb6KkBPvVWmcke +jkk9u+UJueBPSZI9FoJAzMxZxuY67RIuaTxslbH9qh17f4a+Hg4yRvv7E491f0yL +S0Zj/gA0QHDBw7mh3aZw4gSzQbzpgJHqZJx64SIDqZxubw5lT2yHh17zbqD5daWb +QOhTsiedSrnAdyGN/4fy3ryM7xfft0kL0fJuMAsaDk527RH89elWsn2/x20Kk4yl +0MC2Hb46TpSi125sC8KKfPog88Tk5c0NqMuRkrF8hey1FGlmDoLnzc7ILaZRfyHB +NVOFBkpdn627G190 +-----END CERTIFICATE----- + +# Issuer: CN=USERTrust RSA Certification Authority O=The USERTRUST Network +# Subject: CN=USERTrust RSA Certification Authority O=The USERTRUST Network +# Label: "USERTrust RSA Certification Authority" +# Serial: 2645093764781058787591871645665788717 +# MD5 Fingerprint: 1b:fe:69:d1:91:b7:19:33:a3:72:a8:0f:e1:55:e5:b5 +# SHA1 Fingerprint: 2b:8f:1b:57:33:0d:bb:a2:d0:7a:6c:51:f7:0e:e9:0d:da:b9:ad:8e +# SHA256 Fingerprint: e7:93:c9:b0:2f:d8:aa:13:e2:1c:31:22:8a:cc:b0:81:19:64:3b:74:9c:89:89:64:b1:74:6d:46:c3:d4:cb:d2 +-----BEGIN CERTIFICATE----- +MIIF3jCCA8agAwIBAgIQAf1tMPyjylGoG7xkDjUDLTANBgkqhkiG9w0BAQwFADCB +iDELMAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0pl +cnNleSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNV +BAMTJVVTRVJUcnVzdCBSU0EgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAw +MjAxMDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNV +BAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVU +aGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBSU0EgQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK +AoICAQCAEmUXNg7D2wiz0KxXDXbtzSfTTK1Qg2HiqiBNCS1kCdzOiZ/MPans9s/B +3PHTsdZ7NygRK0faOca8Ohm0X6a9fZ2jY0K2dvKpOyuR+OJv0OwWIJAJPuLodMkY +tJHUYmTbf6MG8YgYapAiPLz+E/CHFHv25B+O1ORRxhFnRghRy4YUVD+8M/5+bJz/ +Fp0YvVGONaanZshyZ9shZrHUm3gDwFA66Mzw3LyeTP6vBZY1H1dat//O+T23LLb2 +VN3I5xI6Ta5MirdcmrS3ID3KfyI0rn47aGYBROcBTkZTmzNg95S+UzeQc0PzMsNT +79uq/nROacdrjGCT3sTHDN/hMq7MkztReJVni+49Vv4M0GkPGw/zJSZrM233bkf6 +c0Plfg6lZrEpfDKEY1WJxA3Bk1QwGROs0303p+tdOmw1XNtB1xLaqUkL39iAigmT +Yo61Zs8liM2EuLE/pDkP2QKe6xJMlXzzawWpXhaDzLhn4ugTncxbgtNMs+1b/97l +c6wjOy0AvzVVdAlJ2ElYGn+SNuZRkg7zJn0cTRe8yexDJtC/QV9AqURE9JnnV4ee +UB9XVKg+/XRjL7FQZQnmWEIuQxpMtPAlR1n6BB6T1CZGSlCBst6+eLf8ZxXhyVeE +Hg9j1uliutZfVS7qXMYoCAQlObgOK6nyTJccBz8NUvXt7y+CDwIDAQABo0IwQDAd +BgNVHQ4EFgQUU3m/WqorSs9UgOHYm8Cd8rIDZsswDgYDVR0PAQH/BAQDAgEGMA8G +A1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEMBQADggIBAFzUfA3P9wF9QZllDHPF +Up/L+M+ZBn8b2kMVn54CVVeWFPFSPCeHlCjtHzoBN6J2/FNQwISbxmtOuowhT6KO +VWKR82kV2LyI48SqC/3vqOlLVSoGIG1VeCkZ7l8wXEskEVX/JJpuXior7gtNn3/3 +ATiUFJVDBwn7YKnuHKsSjKCaXqeYalltiz8I+8jRRa8YFWSQEg9zKC7F4iRO/Fjs +8PRF/iKz6y+O0tlFYQXBl2+odnKPi4w2r78NBc5xjeambx9spnFixdjQg3IM8WcR +iQycE0xyNN+81XHfqnHd4blsjDwSXWXavVcStkNr/+XeTWYRUc+ZruwXtuhxkYze +Sf7dNXGiFSeUHM9h4ya7b6NnJSFd5t0dCy5oGzuCr+yDZ4XUmFF0sbmZgIn/f3gZ +XHlKYC6SQK5MNyosycdiyA5d9zZbyuAlJQG03RoHnHcAP9Dc1ew91Pq7P8yF1m9/ +qS3fuQL39ZeatTXaw2ewh0qpKJ4jjv9cJ2vhsE/zB+4ALtRZh8tSQZXq9EfX7mRB +VXyNWQKV3WKdwrnuWih0hKWbt5DHDAff9Yk2dDLWKMGwsAvgnEzDHNb842m1R0aB +L6KCq9NjRHDEjf8tM7qtj3u1cIiuPhnPQCjY/MiQu12ZIvVS5ljFH4gxQ+6IHdfG +jjxDah2nGN59PRbxYvnKkKj9 +-----END CERTIFICATE----- + +# Issuer: CN=USERTrust ECC Certification Authority O=The USERTRUST Network +# Subject: CN=USERTrust ECC Certification Authority O=The USERTRUST Network +# Label: "USERTrust ECC Certification Authority" +# Serial: 123013823720199481456569720443997572134 +# MD5 Fingerprint: fa:68:bc:d9:b5:7f:ad:fd:c9:1d:06:83:28:cc:24:c1 +# SHA1 Fingerprint: d1:cb:ca:5d:b2:d5:2a:7f:69:3b:67:4d:e5:f0:5a:1d:0c:95:7d:f0 +# SHA256 Fingerprint: 4f:f4:60:d5:4b:9c:86:da:bf:bc:fc:57:12:e0:40:0d:2b:ed:3f:bc:4d:4f:bd:aa:86:e0:6a:dc:d2:a9:ad:7a +-----BEGIN CERTIFICATE----- +MIICjzCCAhWgAwIBAgIQXIuZxVqUxdJxVt7NiYDMJjAKBggqhkjOPQQDAzCBiDEL +MAkGA1UEBhMCVVMxEzARBgNVBAgTCk5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNl +eSBDaXR5MR4wHAYDVQQKExVUaGUgVVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMT +JVVTRVJUcnVzdCBFQ0MgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkwHhcNMTAwMjAx +MDAwMDAwWhcNMzgwMTE4MjM1OTU5WjCBiDELMAkGA1UEBhMCVVMxEzARBgNVBAgT +Ck5ldyBKZXJzZXkxFDASBgNVBAcTC0plcnNleSBDaXR5MR4wHAYDVQQKExVUaGUg +VVNFUlRSVVNUIE5ldHdvcmsxLjAsBgNVBAMTJVVTRVJUcnVzdCBFQ0MgQ2VydGlm +aWNhdGlvbiBBdXRob3JpdHkwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAAQarFRaqflo +I+d61SRvU8Za2EurxtW20eZzca7dnNYMYf3boIkDuAUU7FfO7l0/4iGzzvfUinng +o4N+LZfQYcTxmdwlkWOrfzCjtHDix6EznPO/LlxTsV+zfTJ/ijTjeXmjQjBAMB0G +A1UdDgQWBBQ64QmG1M8ZwpZ2dEl23OA1xmNjmjAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zAKBggqhkjOPQQDAwNoADBlAjA2Z6EWCNzklwBBHU6+4WMB +zzuqQhFkoJ2UOQIReVx7Hfpkue4WQrO/isIJxOzksU0CMQDpKmFHjFJKS04YcPbW +RNZu9YO6bVi9JNlWSOrvxKJGgYhqOkbRqZtNyWHa0V1Xahg= +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R4 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R4 +# Label: "GlobalSign ECC Root CA - R4" +# Serial: 14367148294922964480859022125800977897474 +# MD5 Fingerprint: 20:f0:27:68:d1:7e:a0:9d:0e:e6:2a:ca:df:5c:89:8e +# SHA1 Fingerprint: 69:69:56:2e:40:80:f4:24:a1:e7:19:9f:14:ba:f3:ee:58:ab:6a:bb +# SHA256 Fingerprint: be:c9:49:11:c2:95:56:76:db:6c:0a:55:09:86:d7:6e:3b:a0:05:66:7c:44:2c:97:62:b4:fb:b7:73:de:22:8c +-----BEGIN CERTIFICATE----- +MIIB4TCCAYegAwIBAgIRKjikHJYKBN5CsiilC+g0mAIwCgYIKoZIzj0EAwIwUDEk +MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI0MRMwEQYDVQQKEwpH +bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX +DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD +QSAtIFI0MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu +MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAEuMZ5049sJQ6fLjkZHAOkrprlOQcJ +FspjsbmG+IpXwVfOQvpzofdlQv8ewQCybnMO/8ch5RikqtlxP6jUuc6MHaNCMEAw +DgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFFSwe61F +uOJAf/sKbvu+M8k8o4TVMAoGCCqGSM49BAMCA0gAMEUCIQDckqGgE6bPA7DmxCGX +kPoUVy0D7O48027KqGx2vKLeuwIgJ6iFJzWbVsaj8kfSt24bAgAXqmemFZHe+pTs +ewv4n4Q= +-----END CERTIFICATE----- + +# Issuer: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R5 +# Subject: CN=GlobalSign O=GlobalSign OU=GlobalSign ECC Root CA - R5 +# Label: "GlobalSign ECC Root CA - R5" +# Serial: 32785792099990507226680698011560947931244 +# MD5 Fingerprint: 9f:ad:3b:1c:02:1e:8a:ba:17:74:38:81:0c:a2:bc:08 +# SHA1 Fingerprint: 1f:24:c6:30:cd:a4:18:ef:20:69:ff:ad:4f:dd:5f:46:3a:1b:69:aa +# SHA256 Fingerprint: 17:9f:bc:14:8a:3d:d0:0f:d2:4e:a1:34:58:cc:43:bf:a7:f5:9c:81:82:d7:83:a5:13:f6:eb:ec:10:0c:89:24 +-----BEGIN CERTIFICATE----- +MIICHjCCAaSgAwIBAgIRYFlJ4CYuu1X5CneKcflK2GwwCgYIKoZIzj0EAwMwUDEk +MCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBDQSAtIFI1MRMwEQYDVQQKEwpH +bG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWduMB4XDTEyMTExMzAwMDAwMFoX +DTM4MDExOTAzMTQwN1owUDEkMCIGA1UECxMbR2xvYmFsU2lnbiBFQ0MgUm9vdCBD +QSAtIFI1MRMwEQYDVQQKEwpHbG9iYWxTaWduMRMwEQYDVQQDEwpHbG9iYWxTaWdu +MHYwEAYHKoZIzj0CAQYFK4EEACIDYgAER0UOlvt9Xb/pOdEh+J8LttV7HpI6SFkc +8GIxLcB6KP4ap1yztsyX50XUWPrRd21DosCHZTQKH3rd6zwzocWdTaRvQZU4f8ke +hOvRnkmSh5SHDDqFSmafnVmTTZdhBoZKo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYD +VR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUPeYpSJvqB8ohREom3m7e0oPQn1kwCgYI +KoZIzj0EAwMDaAAwZQIxAOVpEslu28YxuglB4Zf4+/2a4n0Sye18ZNPLBSWLVtmg +515dTguDnFt2KaAJJiFqYgIwcdK1j1zqO+F4CYWodZI7yFz9SO8NdCKoCOJuxUnO +xwy8p2Fp8fc74SrL+SvzZpA3 +-----END CERTIFICATE----- + +# Issuer: CN=Staat der Nederlanden Root CA - G3 O=Staat der Nederlanden +# Subject: CN=Staat der Nederlanden Root CA - G3 O=Staat der Nederlanden +# Label: "Staat der Nederlanden Root CA - G3" +# Serial: 10003001 +# MD5 Fingerprint: 0b:46:67:07:db:10:2f:19:8c:35:50:60:d1:0b:f4:37 +# SHA1 Fingerprint: d8:eb:6b:41:51:92:59:e0:f3:e7:85:00:c0:3d:b6:88:97:c9:ee:fc +# SHA256 Fingerprint: 3c:4f:b0:b9:5a:b8:b3:00:32:f4:32:b8:6f:53:5f:e1:72:c1:85:d0:fd:39:86:58:37:cf:36:18:7f:a6:f4:28 +-----BEGIN CERTIFICATE----- +MIIFdDCCA1ygAwIBAgIEAJiiOTANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJO +TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSswKQYDVQQDDCJTdGFh +dCBkZXIgTmVkZXJsYW5kZW4gUm9vdCBDQSAtIEczMB4XDTEzMTExNDExMjg0MloX +DTI4MTExMzIzMDAwMFowWjELMAkGA1UEBhMCTkwxHjAcBgNVBAoMFVN0YWF0IGRl +ciBOZWRlcmxhbmRlbjErMCkGA1UEAwwiU3RhYXQgZGVyIE5lZGVybGFuZGVuIFJv +b3QgQ0EgLSBHMzCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAL4yolQP +cPssXFnrbMSkUeiFKrPMSjTysF/zDsccPVMeiAho2G89rcKezIJnByeHaHE6n3WW +IkYFsO2tx1ueKt6c/DrGlaf1F2cY5y9JCAxcz+bMNO14+1Cx3Gsy8KL+tjzk7FqX +xz8ecAgwoNzFs21v0IJyEavSgWhZghe3eJJg+szeP4TrjTgzkApyI/o1zCZxMdFy +KJLZWyNtZrVtB0LrpjPOktvA9mxjeM3KTj215VKb8b475lRgsGYeCasH/lSJEULR +9yS6YHgamPfJEf0WwTUaVHXvQ9Plrk7O53vDxk5hUUurmkVLoR9BvUhTFXFkC4az +5S6+zqQbwSmEorXLCCN2QyIkHxcE1G6cxvx/K2Ya7Irl1s9N9WMJtxU51nus6+N8 +6U78dULI7ViVDAZCopz35HCz33JvWjdAidiFpNfxC95DGdRKWCyMijmev4SH8RY7 +Ngzp07TKbBlBUgmhHbBqv4LvcFEhMtwFdozL92TkA1CvjJFnq8Xy7ljY3r735zHP +bMk7ccHViLVlvMDoFxcHErVc0qsgk7TmgoNwNsXNo42ti+yjwUOH5kPiNL6VizXt +BznaqB16nzaeErAMZRKQFWDZJkBE41ZgpRDUajz9QdwOWke275dhdU/Z/seyHdTt +XUmzqWrLZoQT1Vyg3N9udwbRcXXIV2+vD3dbAgMBAAGjQjBAMA8GA1UdEwEB/wQF +MAMBAf8wDgYDVR0PAQH/BAQDAgEGMB0GA1UdDgQWBBRUrfrHkleuyjWcLhL75Lpd +INyUVzANBgkqhkiG9w0BAQsFAAOCAgEAMJmdBTLIXg47mAE6iqTnB/d6+Oea31BD +U5cqPco8R5gu4RV78ZLzYdqQJRZlwJ9UXQ4DO1t3ApyEtg2YXzTdO2PCwyiBwpwp +LiniyMMB8jPqKqrMCQj3ZWfGzd/TtiunvczRDnBfuCPRy5FOCvTIeuXZYzbB1N/8 +Ipf3YF3qKS9Ysr1YvY2WTxB1v0h7PVGHoTx0IsL8B3+A3MSs/mrBcDCw6Y5p4ixp +gZQJut3+TcCDjJRYwEYgr5wfAvg1VUkvRtTA8KCWAg8zxXHzniN9lLf9OtMJgwYh +/WA9rjLA0u6NpvDntIJ8CsxwyXmA+P5M9zWEGYox+wrZ13+b8KKaa8MFSu1BYBQw +0aoRQm7TIwIEC8Zl3d1Sd9qBa7Ko+gE4uZbqKmxnl4mUnrzhVNXkanjvSr0rmj1A +fsbAddJu+2gw7OyLnflJNZoaLNmzlTnVHpL3prllL+U9bTpITAjc5CgSKL59NVzq +4BZ+Extq1z7XnvwtdbLBFNUjA9tbbws+eC8N3jONFrdI54OagQ97wUNNVQQXOEpR +1VmiiXTTn74eS9fGbbeIJG9gkaSChVtWQbzQRKtqE77RLFi3EjNYsjdj3BP1lB0/ +QFH1T/U67cjF68IeHRaVesd+QnGTbksVtzDfqu1XhUisHWrdOWnk4Xl4vs4Fv6EM +94B7IWcnMFk= +-----END CERTIFICATE----- + +# Issuer: CN=Staat der Nederlanden EV Root CA O=Staat der Nederlanden +# Subject: CN=Staat der Nederlanden EV Root CA O=Staat der Nederlanden +# Label: "Staat der Nederlanden EV Root CA" +# Serial: 10000013 +# MD5 Fingerprint: fc:06:af:7b:e8:1a:f1:9a:b4:e8:d2:70:1f:c0:f5:ba +# SHA1 Fingerprint: 76:e2:7e:c1:4f:db:82:c1:c0:a6:75:b5:05:be:3d:29:b4:ed:db:bb +# SHA256 Fingerprint: 4d:24:91:41:4c:fe:95:67:46:ec:4c:ef:a6:cf:6f:72:e2:8a:13:29:43:2f:9d:8a:90:7a:c4:cb:5d:ad:c1:5a +-----BEGIN CERTIFICATE----- +MIIFcDCCA1igAwIBAgIEAJiWjTANBgkqhkiG9w0BAQsFADBYMQswCQYDVQQGEwJO +TDEeMBwGA1UECgwVU3RhYXQgZGVyIE5lZGVybGFuZGVuMSkwJwYDVQQDDCBTdGFh +dCBkZXIgTmVkZXJsYW5kZW4gRVYgUm9vdCBDQTAeFw0xMDEyMDgxMTE5MjlaFw0y +MjEyMDgxMTEwMjhaMFgxCzAJBgNVBAYTAk5MMR4wHAYDVQQKDBVTdGFhdCBkZXIg +TmVkZXJsYW5kZW4xKTAnBgNVBAMMIFN0YWF0IGRlciBOZWRlcmxhbmRlbiBFViBS +b290IENBMIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEA48d+ifkkSzrS +M4M1LGns3Amk41GoJSt5uAg94JG6hIXGhaTK5skuU6TJJB79VWZxXSzFYGgEt9nC +UiY4iKTWO0Cmws0/zZiTs1QUWJZV1VD+hq2kY39ch/aO5ieSZxeSAgMs3NZmdO3d +Z//BYY1jTw+bbRcwJu+r0h8QoPnFfxZpgQNH7R5ojXKhTbImxrpsX23Wr9GxE46p +rfNeaXUmGD5BKyF/7otdBwadQ8QpCiv8Kj6GyzyDOvnJDdrFmeK8eEEzduG/L13l +pJhQDBXd4Pqcfzho0LKmeqfRMb1+ilgnQ7O6M5HTp5gVXJrm0w912fxBmJc+qiXb +j5IusHsMX/FjqTf5m3VpTCgmJdrV8hJwRVXj33NeN/UhbJCONVrJ0yPr08C+eKxC +KFhmpUZtcALXEPlLVPxdhkqHz3/KRawRWrUgUY0viEeXOcDPusBCAUCZSCELa6fS +/ZbV0b5GnUngC6agIk440ME8MLxwjyx1zNDFjFE7PZQIZCZhfbnDZY8UnCHQqv0X +cgOPvZuM5l5Tnrmd74K74bzickFbIZTTRTeU0d8JOV3nI6qaHcptqAqGhYqCvkIH +1vI4gnPah1vlPNOePqc7nvQDs/nxfRN0Av+7oeX6AHkcpmZBiFxgV6YuCcS6/ZrP +px9Aw7vMWgpVSzs4dlG4Y4uElBbmVvMCAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB +/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFP6rAJCYniT8qcwaivsnuL8wbqg7 +MA0GCSqGSIb3DQEBCwUAA4ICAQDPdyxuVr5Os7aEAJSrR8kN0nbHhp8dB9O2tLsI +eK9p0gtJ3jPFrK3CiAJ9Brc1AsFgyb/E6JTe1NOpEyVa/m6irn0F3H3zbPB+po3u +2dfOWBfoqSmuc0iH55vKbimhZF8ZE/euBhD/UcabTVUlT5OZEAFTdfETzsemQUHS +v4ilf0X8rLiltTMMgsT7B/Zq5SWEXwbKwYY5EdtYzXc7LMJMD16a4/CrPmEbUCTC +wPTxGfARKbalGAKb12NMcIxHowNDXLldRqANb/9Zjr7dn3LDWyvfjFvO5QxGbJKy +CqNMVEIYFRIYvdr8unRu/8G2oGTYqV9Vrp9canaW2HNnh/tNf1zuacpzEPuKqf2e +vTY4SUmH9A4U8OmHuD+nT3pajnnUk+S7aFKErGzp85hwVXIy+TSrK0m1zSBi5Dp6 +Z2Orltxtrpfs/J92VoguZs9btsmksNcFuuEnL5O7Jiqik7Ab846+HUCjuTaPPoIa +Gl6I6lD4WeKDRikL40Rc4ZW2aZCaFG+XroHPaO+Zmr615+F/+PoTRxZMzG0IQOeL +eG9QgkRQP2YGiqtDhFZKDyAthg710tvSeopLzaXoTvFeJiUBWSOgftL2fiFX1ye8 +FVdMpEbB4IMeDExNH08GGeL5qPQ6gqGyeUN51q1veieQA6TqJIc/2b3Z6fJfUEkc +7uzXLg== +-----END CERTIFICATE----- + +# Issuer: CN=IdenTrust Commercial Root CA 1 O=IdenTrust +# Subject: CN=IdenTrust Commercial Root CA 1 O=IdenTrust +# Label: "IdenTrust Commercial Root CA 1" +# Serial: 13298821034946342390520003877796839426 +# MD5 Fingerprint: b3:3e:77:73:75:ee:a0:d3:e3:7e:49:63:49:59:bb:c7 +# SHA1 Fingerprint: df:71:7e:aa:4a:d9:4e:c9:55:84:99:60:2d:48:de:5f:bc:f0:3a:25 +# SHA256 Fingerprint: 5d:56:49:9b:e4:d2:e0:8b:cf:ca:d0:8a:3e:38:72:3d:50:50:3b:de:70:69:48:e4:2f:55:60:30:19:e5:28:ae +-----BEGIN CERTIFICATE----- +MIIFYDCCA0igAwIBAgIQCgFCgAAAAUUjyES1AAAAAjANBgkqhkiG9w0BAQsFADBK +MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScwJQYDVQQDEx5JZGVu +VHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwHhcNMTQwMTE2MTgxMjIzWhcNMzQw +MTE2MTgxMjIzWjBKMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MScw +JQYDVQQDEx5JZGVuVHJ1c3QgQ29tbWVyY2lhbCBSb290IENBIDEwggIiMA0GCSqG +SIb3DQEBAQUAA4ICDwAwggIKAoICAQCnUBneP5k91DNG8W9RYYKyqU+PZ4ldhNlT +3Qwo2dfw/66VQ3KZ+bVdfIrBQuExUHTRgQ18zZshq0PirK1ehm7zCYofWjK9ouuU ++ehcCuz/mNKvcbO0U59Oh++SvL3sTzIwiEsXXlfEU8L2ApeN2WIrvyQfYo3fw7gp +S0l4PJNgiCL8mdo2yMKi1CxUAGc1bnO/AljwpN3lsKImesrgNqUZFvX9t++uP0D1 +bVoE/c40yiTcdCMbXTMTEl3EASX2MN0CXZ/g1Ue9tOsbobtJSdifWwLziuQkkORi +T0/Br4sOdBeo0XKIanoBScy0RnnGF7HamB4HWfp1IYVl3ZBWzvurpWCdxJ35UrCL +vYf5jysjCiN2O/cz4ckA82n5S6LgTrx+kzmEB/dEcH7+B1rlsazRGMzyNeVJSQjK +Vsk9+w8YfYs7wRPCTY/JTw436R+hDmrfYi7LNQZReSzIJTj0+kuniVyc0uMNOYZK +dHzVWYfCP04MXFL0PfdSgvHqo6z9STQaKPNBiDoT7uje/5kdX7rL6B7yuVBgwDHT +c+XvvqDtMwt0viAgxGds8AgDelWAf0ZOlqf0Hj7h9tgJ4TNkK2PXMl6f+cB7D3hv +l7yTmvmcEpB4eoCHFddydJxVdHixuuFucAS6T6C6aMN7/zHwcz09lCqxC0EOoP5N +iGVreTO01wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB +/zAdBgNVHQ4EFgQU7UQZwNPwBovupHu+QucmVMiONnYwDQYJKoZIhvcNAQELBQAD +ggIBAA2ukDL2pkt8RHYZYR4nKM1eVO8lvOMIkPkp165oCOGUAFjvLi5+U1KMtlwH +6oi6mYtQlNeCgN9hCQCTrQ0U5s7B8jeUeLBfnLOic7iPBZM4zY0+sLj7wM+x8uwt +LRvM7Kqas6pgghstO8OEPVeKlh6cdbjTMM1gCIOQ045U8U1mwF10A0Cj7oV+wh93 +nAbowacYXVKV7cndJZ5t+qntozo00Fl72u1Q8zW/7esUTTHHYPTa8Yec4kjixsU3 ++wYQ+nVZZjFHKdp2mhzpgq7vmrlR94gjmmmVYjzlVYA211QC//G5Xc7UI2/YRYRK +W2XviQzdFKcgyxilJbQN+QHwotL0AMh0jqEqSI5l2xPE4iUXfeu+h1sXIFRRk0pT +AwvsXcoz7WL9RccvW9xYoIA55vrX/hMUpu09lEpCdNTDd1lzzY9GvlU47/rokTLq +l1gEIt44w8y8bckzOmoKaT+gyOpyj4xjhiO9bTyWnpXgSUyqorkqG5w2gXjtw+hG +4iZZRHUe2XWJUc0QhJ1hYMtd+ZciTY6Y5uN/9lu7rs3KSoFrXgvzUeF0K+l+J6fZ +mUlO+KWA2yUPHGNiiskzZ2s8EIPGrd6ozRaOjfAHN3Gf8qv8QfXBi+wAN10J5U6A +7/qxXDgGpRtK4dw4LTzcqx+QGtVKnO7RcGzM7vRX+Bi6hG6H +-----END CERTIFICATE----- + +# Issuer: CN=IdenTrust Public Sector Root CA 1 O=IdenTrust +# Subject: CN=IdenTrust Public Sector Root CA 1 O=IdenTrust +# Label: "IdenTrust Public Sector Root CA 1" +# Serial: 13298821034946342390521976156843933698 +# MD5 Fingerprint: 37:06:a5:b0:fc:89:9d:ba:f4:6b:8c:1a:64:cd:d5:ba +# SHA1 Fingerprint: ba:29:41:60:77:98:3f:f4:f3:ef:f2:31:05:3b:2e:ea:6d:4d:45:fd +# SHA256 Fingerprint: 30:d0:89:5a:9a:44:8a:26:20:91:63:55:22:d1:f5:20:10:b5:86:7a:ca:e1:2c:78:ef:95:8f:d4:f4:38:9f:2f +-----BEGIN CERTIFICATE----- +MIIFZjCCA06gAwIBAgIQCgFCgAAAAUUjz0Z8AAAAAjANBgkqhkiG9w0BAQsFADBN +MQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0MSowKAYDVQQDEyFJZGVu +VHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwHhcNMTQwMTE2MTc1MzMyWhcN +MzQwMTE2MTc1MzMyWjBNMQswCQYDVQQGEwJVUzESMBAGA1UEChMJSWRlblRydXN0 +MSowKAYDVQQDEyFJZGVuVHJ1c3QgUHVibGljIFNlY3RvciBSb290IENBIDEwggIi +MA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC2IpT8pEiv6EdrCvsnduTyP4o7 +ekosMSqMjbCpwzFrqHd2hCa2rIFCDQjrVVi7evi8ZX3yoG2LqEfpYnYeEe4IFNGy +RBb06tD6Hi9e28tzQa68ALBKK0CyrOE7S8ItneShm+waOh7wCLPQ5CQ1B5+ctMlS +bdsHyo+1W/CD80/HLaXIrcuVIKQxKFdYWuSNG5qrng0M8gozOSI5Cpcu81N3uURF +/YTLNiCBWS2ab21ISGHKTN9T0a9SvESfqy9rg3LvdYDaBjMbXcjaY8ZNzaxmMc3R +3j6HEDbhuaR672BQssvKplbgN6+rNBM5Jeg5ZuSYeqoSmJxZZoY+rfGwyj4GD3vw +EUs3oERte8uojHH01bWRNszwFcYr3lEXsZdMUD2xlVl8BX0tIdUAvwFnol57plzy +9yLxkA2T26pEUWbMfXYD62qoKjgZl3YNa4ph+bz27nb9cCvdKTz4Ch5bQhyLVi9V +GxyhLrXHFub4qjySjmm2AcG1hp2JDws4lFTo6tyePSW8Uybt1as5qsVATFSrsrTZ +2fjXctscvG29ZV/viDUqZi/u9rNl8DONfJhBaUYPQxxp+pu10GFqzcpL2UyQRqsV +WaFHVCkugyhfHMKiq3IXAAaOReyL4jM9f9oZRORicsPfIsbyVtTdX5Vy7W1f90gD +W/3FKqD2cyOEEBsB5wIDAQABo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/ +BAUwAwEB/zAdBgNVHQ4EFgQU43HgntinQtnbcZFrlJPrw6PRFKMwDQYJKoZIhvcN +AQELBQADggIBAEf63QqwEZE4rU1d9+UOl1QZgkiHVIyqZJnYWv6IAcVYpZmxI1Qj +t2odIFflAWJBF9MJ23XLblSQdf4an4EKwt3X9wnQW3IV5B4Jaj0z8yGa5hV+rVHV +DRDtfULAj+7AmgjVQdZcDiFpboBhDhXAuM/FSRJSzL46zNQuOAXeNf0fb7iAaJg9 +TaDKQGXSc3z1i9kKlT/YPyNtGtEqJBnZhbMX73huqVjRI9PHE+1yJX9dsXNw0H8G +lwmEKYBhHfpe/3OsoOOJuBxxFcbeMX8S3OFtm6/n6J91eEyrRjuazr8FGF1NFTwW +mhlQBJqymm9li1JfPFgEKCXAZmExfrngdbkaqIHWchezxQMxNRF4eKLg6TCMf4Df +WN88uieW4oA0beOY02QnrEh+KHdcxiVhJfiFDGX6xDIvpZgF5PgLZxYWxoK4Mhn5 ++bl53B/N66+rDt0b20XkeucC4pVd/GnwU2lhlXV5C15V5jgclKlZM57IcXR5f1GJ +tshquDDIajjDbp7hNxbqBWJMWxJH7ae0s1hWx0nzfxJoCTFx8G34Tkf71oXuxVhA +GaQdp/lLQzfcaFpPz+vCZHTetBXZ9FRUGi8c15dxVJCO2SCdUyt/q4/i6jC8UDfv +8Ue1fXwsBOxonbRJRBD0ckscZOf85muQ3Wl9af0AVqW3rLatt8o+Ae+c +-----END CERTIFICATE----- + +# Issuer: CN=Entrust Root Certification Authority - G2 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2009 Entrust, Inc. - for authorized use only +# Subject: CN=Entrust Root Certification Authority - G2 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2009 Entrust, Inc. - for authorized use only +# Label: "Entrust Root Certification Authority - G2" +# Serial: 1246989352 +# MD5 Fingerprint: 4b:e2:c9:91:96:65:0c:f4:0e:5a:93:92:a0:0a:fe:b2 +# SHA1 Fingerprint: 8c:f4:27:fd:79:0c:3a:d1:66:06:8d:e8:1e:57:ef:bb:93:22:72:d4 +# SHA256 Fingerprint: 43:df:57:74:b0:3e:7f:ef:5f:e4:0d:93:1a:7b:ed:f1:bb:2e:6b:42:73:8c:4e:6d:38:41:10:3d:3a:a7:f3:39 +-----BEGIN CERTIFICATE----- +MIIEPjCCAyagAwIBAgIESlOMKDANBgkqhkiG9w0BAQsFADCBvjELMAkGA1UEBhMC +VVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50 +cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3Qs +IEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVz +dCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRzIwHhcNMDkwNzA3MTcy +NTU0WhcNMzAxMjA3MTc1NTU0WjCBvjELMAkGA1UEBhMCVVMxFjAUBgNVBAoTDUVu +dHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3d3cuZW50cnVzdC5uZXQvbGVnYWwt +dGVybXMxOTA3BgNVBAsTMChjKSAyMDA5IEVudHJ1c3QsIEluYy4gLSBmb3IgYXV0 +aG9yaXplZCB1c2Ugb25seTEyMDAGA1UEAxMpRW50cnVzdCBSb290IENlcnRpZmlj +YXRpb24gQXV0aG9yaXR5IC0gRzIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEK +AoIBAQC6hLZy254Ma+KZ6TABp3bqMriVQRrJ2mFOWHLP/vaCeb9zYQYKpSfYs1/T +RU4cctZOMvJyig/3gxnQaoCAAEUesMfnmr8SVycco2gvCoe9amsOXmXzHHfV1IWN +cCG0szLni6LVhjkCsbjSR87kyUnEO6fe+1R9V77w6G7CebI6C1XiUJgWMhNcL3hW +wcKUs/Ja5CeanyTXxuzQmyWC48zCxEXFjJd6BmsqEZ+pCm5IO2/b1BEZQvePB7/1 +U1+cPvQXLOZprE4yTGJ36rfo5bs0vBmLrpxR57d+tVOxMyLlbc9wPBr64ptntoP0 +jaWvYkxN4FisZDQSA/i2jZRjJKRxAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAP +BgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRqciZ60B7vfec7aVHUbI2fkBJmqzAN +BgkqhkiG9w0BAQsFAAOCAQEAeZ8dlsa2eT8ijYfThwMEYGprmi5ZiXMRrEPR9RP/ +jTkrwPK9T3CMqS/qF8QLVJ7UG5aYMzyorWKiAHarWWluBh1+xLlEjZivEtRh2woZ +Rkfz6/djwUAFQKXSt/S1mja/qYh2iARVBCuch38aNzx+LaUa2NSJXsq9rD1s2G2v +1fN2D807iDginWyTmsQ9v4IbZT+mD12q/OWyFcq1rca8PdCE6OoGcrBNOTJ4vz4R +nAuknZoh8/CbCzB428Hch0P+vGOaysXCHMnHjf87ElgI5rY97HosTvuDls4MPGmH +VHOkc8KT/1EQrBVUAdj8BbGJoX90g5pJ19xOe4pIb4tF9g== +-----END CERTIFICATE----- + +# Issuer: CN=Entrust Root Certification Authority - EC1 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2012 Entrust, Inc. - for authorized use only +# Subject: CN=Entrust Root Certification Authority - EC1 O=Entrust, Inc. OU=See www.entrust.net/legal-terms/(c) 2012 Entrust, Inc. - for authorized use only +# Label: "Entrust Root Certification Authority - EC1" +# Serial: 51543124481930649114116133369 +# MD5 Fingerprint: b6:7e:1d:f0:58:c5:49:6c:24:3b:3d:ed:98:18:ed:bc +# SHA1 Fingerprint: 20:d8:06:40:df:9b:25:f5:12:25:3a:11:ea:f7:59:8a:eb:14:b5:47 +# SHA256 Fingerprint: 02:ed:0e:b2:8c:14:da:45:16:5c:56:67:91:70:0d:64:51:d7:fb:56:f0:b2:ab:1d:3b:8e:b0:70:e5:6e:df:f5 +-----BEGIN CERTIFICATE----- +MIIC+TCCAoCgAwIBAgINAKaLeSkAAAAAUNCR+TAKBggqhkjOPQQDAzCBvzELMAkG +A1UEBhMCVVMxFjAUBgNVBAoTDUVudHJ1c3QsIEluYy4xKDAmBgNVBAsTH1NlZSB3 +d3cuZW50cnVzdC5uZXQvbGVnYWwtdGVybXMxOTA3BgNVBAsTMChjKSAyMDEyIEVu +dHJ1c3QsIEluYy4gLSBmb3IgYXV0aG9yaXplZCB1c2Ugb25seTEzMDEGA1UEAxMq +RW50cnVzdCBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IC0gRUMxMB4XDTEy +MTIxODE1MjUzNloXDTM3MTIxODE1NTUzNlowgb8xCzAJBgNVBAYTAlVTMRYwFAYD +VQQKEw1FbnRydXN0LCBJbmMuMSgwJgYDVQQLEx9TZWUgd3d3LmVudHJ1c3QubmV0 +L2xlZ2FsLXRlcm1zMTkwNwYDVQQLEzAoYykgMjAxMiBFbnRydXN0LCBJbmMuIC0g +Zm9yIGF1dGhvcml6ZWQgdXNlIG9ubHkxMzAxBgNVBAMTKkVudHJ1c3QgUm9vdCBD +ZXJ0aWZpY2F0aW9uIEF1dGhvcml0eSAtIEVDMTB2MBAGByqGSM49AgEGBSuBBAAi +A2IABIQTydC6bUF74mzQ61VfZgIaJPRbiWlH47jCffHyAsWfoPZb1YsGGYZPUxBt +ByQnoaD41UcZYUx9ypMn6nQM72+WCf5j7HBdNq1nd67JnXxVRDqiY1Ef9eNi1KlH +Bz7MIKNCMEAwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0O +BBYEFLdj5xrdjekIplWDpOBqUEFlEUJJMAoGCCqGSM49BAMDA2cAMGQCMGF52OVC +R98crlOZF7ZvHH3hvxGU0QOIdeSNiaSKd0bebWHvAvX7td/M/k7//qnmpwIwW5nX +hTcGtXsI/esni0qU+eH6p44mCOh8kmhtc9hvJqwhAriZtyZBWyVgrtBIGu4G +-----END CERTIFICATE----- + +# Issuer: CN=CFCA EV ROOT O=China Financial Certification Authority +# Subject: CN=CFCA EV ROOT O=China Financial Certification Authority +# Label: "CFCA EV ROOT" +# Serial: 407555286 +# MD5 Fingerprint: 74:e1:b6:ed:26:7a:7a:44:30:33:94:ab:7b:27:81:30 +# SHA1 Fingerprint: e2:b8:29:4b:55:84:ab:6b:58:c2:90:46:6c:ac:3f:b8:39:8f:84:83 +# SHA256 Fingerprint: 5c:c3:d7:8e:4e:1d:5e:45:54:7a:04:e6:87:3e:64:f9:0c:f9:53:6d:1c:cc:2e:f8:00:f3:55:c4:c5:fd:70:fd +-----BEGIN CERTIFICATE----- +MIIFjTCCA3WgAwIBAgIEGErM1jANBgkqhkiG9w0BAQsFADBWMQswCQYDVQQGEwJD +TjEwMC4GA1UECgwnQ2hpbmEgRmluYW5jaWFsIENlcnRpZmljYXRpb24gQXV0aG9y +aXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJPT1QwHhcNMTIwODA4MDMwNzAxWhcNMjkx +MjMxMDMwNzAxWjBWMQswCQYDVQQGEwJDTjEwMC4GA1UECgwnQ2hpbmEgRmluYW5j +aWFsIENlcnRpZmljYXRpb24gQXV0aG9yaXR5MRUwEwYDVQQDDAxDRkNBIEVWIFJP +T1QwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQDXXWvNED8fBVnVBU03 +sQ7smCuOFR36k0sXgiFxEFLXUWRwFsJVaU2OFW2fvwwbwuCjZ9YMrM8irq93VCpL +TIpTUnrD7i7es3ElweldPe6hL6P3KjzJIx1qqx2hp/Hz7KDVRM8Vz3IvHWOX6Jn5 +/ZOkVIBMUtRSqy5J35DNuF++P96hyk0g1CXohClTt7GIH//62pCfCqktQT+x8Rgp +7hZZLDRJGqgG16iI0gNyejLi6mhNbiyWZXvKWfry4t3uMCz7zEasxGPrb382KzRz +EpR/38wmnvFyXVBlWY9ps4deMm/DGIq1lY+wejfeWkU7xzbh72fROdOXW3NiGUgt +hxwG+3SYIElz8AXSG7Ggo7cbcNOIabla1jj0Ytwli3i/+Oh+uFzJlU9fpy25IGvP +a931DfSCt/SyZi4QKPaXWnuWFo8BGS1sbn85WAZkgwGDg8NNkt0yxoekN+kWzqot +aK8KgWU6cMGbrU1tVMoqLUuFG7OA5nBFDWteNfB/O7ic5ARwiRIlk9oKmSJgamNg +TnYGmE69g60dWIolhdLHZR4tjsbftsbhf4oEIRUpdPA+nJCdDC7xij5aqgwJHsfV +PKPtl8MeNPo4+QgO48BdK4PRVmrJtqhUUy54Mmc9gn900PvhtgVguXDbjgv5E1hv +cWAQUhC5wUEJ73IfZzF4/5YFjQIDAQABo2MwYTAfBgNVHSMEGDAWgBTj/i39KNAL +tbq2osS/BqoFjJP7LzAPBgNVHRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAd +BgNVHQ4EFgQU4/4t/SjQC7W6tqLEvwaqBYyT+y8wDQYJKoZIhvcNAQELBQADggIB +ACXGumvrh8vegjmWPfBEp2uEcwPenStPuiB/vHiyz5ewG5zz13ku9Ui20vsXiObT +ej/tUxPQ4i9qecsAIyjmHjdXNYmEwnZPNDatZ8POQQaIxffu2Bq41gt/UP+TqhdL +jOztUmCypAbqTuv0axn96/Ua4CUqmtzHQTb3yHQFhDmVOdYLO6Qn+gjYXB74BGBS +ESgoA//vU2YApUo0FmZ8/Qmkrp5nGm9BC2sGE5uPhnEFtC+NiWYzKXZUmhH4J/qy +P5Hgzg0b8zAarb8iXRvTvyUFTeGSGn+ZnzxEk8rUQElsgIfXBDrDMlI1Dlb4pd19 +xIsNER9Tyx6yF7Zod1rg1MvIB671Oi6ON7fQAUtDKXeMOZePglr4UeWJoBjnaH9d +Ci77o0cOPaYjesYBx4/IXr9tgFa+iiS6M+qf4TIRnvHST4D2G0CvOJ4RUHlzEhLN +5mydLIhyPDCBBpEi6lmt2hkuIsKNuYyH4Ga8cyNfIWRjgEj1oDwYPZTISEEdQLpe +/v5WOaHIz16eGWRGENoXkbcFgKyLmZJ956LYBws2J+dIeWCKw9cTXPhyQN9Ky8+Z +AAoACxGV2lZFA4gKn2fQ1XmxqI1AbQ3CekD6819kR5LLU7m7Wc5P/dAVUwHY3+vZ +5nbv0CO7O6l5s9UCKc2Jo5YPSjXnTkLAdc0Hz+Ys63su +-----END CERTIFICATE----- + +# Issuer: CN=T\xdcRKTRUST Elektronik Sertifika Hizmet Sa\u011flay\u0131c\u0131s\u0131 H5 O=T\xdcRKTRUST Bilgi \u0130leti\u015fim ve Bili\u015fim G\xfcvenli\u011fi Hizmetleri A.\u015e. +# Subject: CN=T\xdcRKTRUST Elektronik Sertifika Hizmet Sa\u011flay\u0131c\u0131s\u0131 H5 O=T\xdcRKTRUST Bilgi \u0130leti\u015fim ve Bili\u015fim G\xfcvenli\u011fi Hizmetleri A.\u015e. +# Label: "T\xdcRKTRUST Elektronik Sertifika Hizmet Sa\u011flay\u0131c\u0131s\u0131 H5" +# Serial: 156233699172481 +# MD5 Fingerprint: da:70:8e:f0:22:df:93:26:f6:5f:9f:d3:15:06:52:4e +# SHA1 Fingerprint: c4:18:f6:4d:46:d1:df:00:3d:27:30:13:72:43:a9:12:11:c6:75:fb +# SHA256 Fingerprint: 49:35:1b:90:34:44:c1:85:cc:dc:5c:69:3d:24:d8:55:5c:b2:08:d6:a8:14:13:07:69:9f:4a:f0:63:19:9d:78 +-----BEGIN CERTIFICATE----- +MIIEJzCCAw+gAwIBAgIHAI4X/iQggTANBgkqhkiG9w0BAQsFADCBsTELMAkGA1UE +BhMCVFIxDzANBgNVBAcMBkFua2FyYTFNMEsGA1UECgxEVMOcUktUUlVTVCBCaWxn +aSDEsGxldGnFn2ltIHZlIEJpbGnFn2ltIEfDvHZlbmxpxJ9pIEhpem1ldGxlcmkg +QS7Fni4xQjBABgNVBAMMOVTDnFJLVFJVU1QgRWxla3Ryb25payBTZXJ0aWZpa2Eg +SGl6bWV0IFNhxJ9sYXnEsWPEsXPEsSBINTAeFw0xMzA0MzAwODA3MDFaFw0yMzA0 +MjgwODA3MDFaMIGxMQswCQYDVQQGEwJUUjEPMA0GA1UEBwwGQW5rYXJhMU0wSwYD +VQQKDERUw5xSS1RSVVNUIEJpbGdpIMSwbGV0acWfaW0gdmUgQmlsacWfaW0gR8O8 +dmVubGnEn2kgSGl6bWV0bGVyaSBBLsWeLjFCMEAGA1UEAww5VMOcUktUUlVTVCBF +bGVrdHJvbmlrIFNlcnRpZmlrYSBIaXptZXQgU2HEn2xhecSxY8Sxc8SxIEg1MIIB +IjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEApCUZ4WWe60ghUEoI5RHwWrom +/4NZzkQqL/7hzmAD/I0Dpe3/a6i6zDQGn1k19uwsu537jVJp45wnEFPzpALFp/kR +Gml1bsMdi9GYjZOHp3GXDSHHmflS0yxjXVW86B8BSLlg/kJK9siArs1mep5Fimh3 +4khon6La8eHBEJ/rPCmBp+EyCNSgBbGM+42WAA4+Jd9ThiI7/PS98wl+d+yG6w8z +5UNP9FR1bSmZLmZaQ9/LXMrI5Tjxfjs1nQ/0xVqhzPMggCTTV+wVunUlm+hkS7M0 +hO8EuPbJbKoCPrZV4jI3X/xml1/N1p7HIL9Nxqw/dV8c7TKcfGkAaZHjIxhT6QID +AQABo0IwQDAdBgNVHQ4EFgQUVpkHHtOsDGlktAxQR95DLL4gwPswDgYDVR0PAQH/ +BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQELBQADggEBAJ5FdnsX +SDLyOIspve6WSk6BGLFRRyDN0GSxDsnZAdkJzsiZ3GglE9Rc8qPoBP5yCccLqh0l +VX6Wmle3usURehnmp349hQ71+S4pL+f5bFgWV1Al9j4uPqrtd3GqqpmWRgqujuwq +URawXs3qZwQcWDD1YIq9pr1N5Za0/EKJAWv2cMhQOQwt1WbZyNKzMrcbGW3LM/nf +peYVhDfwwvJllpKQd/Ct9JDpEXjXk4nAPQu6KfTomZ1yju2dL+6SfaHx/126M2CF +Yv4HAqGEVka+lgqaE9chTLd8B59OTj+RdPsnnRHM3eaxynFNExc5JsUpISuTKWqW ++qtB4Uu2NQvAmxU= +-----END CERTIFICATE----- + +# Issuer: CN=Certinomis - Root CA O=Certinomis OU=0002 433998903 +# Subject: CN=Certinomis - Root CA O=Certinomis OU=0002 433998903 +# Label: "Certinomis - Root CA" +# Serial: 1 +# MD5 Fingerprint: 14:0a:fd:8d:a8:28:b5:38:69:db:56:7e:61:22:03:3f +# SHA1 Fingerprint: 9d:70:bb:01:a5:a4:a0:18:11:2e:f7:1c:01:b9:32:c5:34:e7:88:a8 +# SHA256 Fingerprint: 2a:99:f5:bc:11:74:b7:3c:bb:1d:62:08:84:e0:1c:34:e5:1c:cb:39:78:da:12:5f:0e:33:26:88:83:bf:41:58 +-----BEGIN CERTIFICATE----- +MIIFkjCCA3qgAwIBAgIBATANBgkqhkiG9w0BAQsFADBaMQswCQYDVQQGEwJGUjET +MBEGA1UEChMKQ2VydGlub21pczEXMBUGA1UECxMOMDAwMiA0MzM5OTg5MDMxHTAb +BgNVBAMTFENlcnRpbm9taXMgLSBSb290IENBMB4XDTEzMTAyMTA5MTcxOFoXDTMz +MTAyMTA5MTcxOFowWjELMAkGA1UEBhMCRlIxEzARBgNVBAoTCkNlcnRpbm9taXMx +FzAVBgNVBAsTDjAwMDIgNDMzOTk4OTAzMR0wGwYDVQQDExRDZXJ0aW5vbWlzIC0g +Um9vdCBDQTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBANTMCQosP5L2 +fxSeC5yaah1AMGT9qt8OHgZbn1CF6s2Nq0Nn3rD6foCWnoR4kkjW4znuzuRZWJfl +LieY6pOod5tK8O90gC3rMB+12ceAnGInkYjwSond3IjmFPnVAy//ldu9n+ws+hQV +WZUKxkd8aRi5pwP5ynapz8dvtF4F/u7BUrJ1Mofs7SlmO/NKFoL21prbcpjp3vDF +TKWrteoB4owuZH9kb/2jJZOLyKIOSY008B/sWEUuNKqEUL3nskoTuLAPrjhdsKkb +5nPJWqHZZkCqqU2mNAKthH6yI8H7KsZn9DS2sJVqM09xRLWtwHkziOC/7aOgFLSc +CbAK42C++PhmiM1b8XcF4LVzbsF9Ri6OSyemzTUK/eVNfaoqoynHWmgE6OXWk6Ri +wsXm9E/G+Z8ajYJJGYrKWUM66A0ywfRMEwNvbqY/kXPLynNvEiCL7sCCeN5LLsJJ +wx3tFvYk9CcbXFcx3FXuqB5vbKziRcxXV4p1VxngtViZSTYxPDMBbRZKzbgqg4SG +m/lg0h9tkQPTYKbVPZrdd5A9NaSfD171UkRpucC63M9933zZxKyGIjK8e2uR73r4 +F2iw4lNVYC2vPsKD2NkJK/DAZNuHi5HMkesE/Xa0lZrmFAYb1TQdvtj/dBxThZng +WVJKYe2InmtJiUZ+IFrZ50rlau7SZRFDAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIB +BjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBTvkUz1pcMw6C8I6tNxIqSSaHh0 +2TAfBgNVHSMEGDAWgBTvkUz1pcMw6C8I6tNxIqSSaHh02TANBgkqhkiG9w0BAQsF +AAOCAgEAfj1U2iJdGlg+O1QnurrMyOMaauo++RLrVl89UM7g6kgmJs95Vn6RHJk/ +0KGRHCwPT5iVWVO90CLYiF2cN/z7ZMF4jIuaYAnq1fohX9B0ZedQxb8uuQsLrbWw +F6YSjNRieOpWauwK0kDDPAUwPk2Ut59KA9N9J0u2/kTO+hkzGm2kQtHdzMjI1xZS +g081lLMSVX3l4kLr5JyTCcBMWwerx20RoFAXlCOotQqSD7J6wWAsOMwaplv/8gzj +qh8c3LigkyfeY+N/IZ865Z764BNqdeuWXGKRlI5nU7aJ+BIJy29SWwNyhlCVCNSN +h4YVH5Uk2KRvms6knZtt0rJ2BobGVgjF6wnaNsIbW0G+YSrjcOa4pvi2WsS9Iff/ +ql+hbHY5ZtbqTFXhADObE5hjyW/QASAJN1LnDE8+zbz1X5YnpyACleAu6AdBBR8V +btaw5BngDwKTACdyxYvRVB9dSsNAl35VpnzBMwQUAR1JIGkLGZOdblgi90AMRgwj +Y/M50n92Uaf0yKHxDHYiI0ZSKS3io0EHVmmY0gUJvGnHWmHNj4FgFU2A3ZDifcRQ +8ow7bkrHxuaAKzyBvBGAFhAn1/DNP3nMcyrDflOR1m749fPH0FFNjkulW+YZFzvW +gQncItzujrnEj1PhZ7szuIgVRs/taTX/dQ1G885x4cVrhkIGuUE= +-----END CERTIFICATE----- + +# Issuer: CN=OISTE WISeKey Global Root GB CA O=WISeKey OU=OISTE Foundation Endorsed +# Subject: CN=OISTE WISeKey Global Root GB CA O=WISeKey OU=OISTE Foundation Endorsed +# Label: "OISTE WISeKey Global Root GB CA" +# Serial: 157768595616588414422159278966750757568 +# MD5 Fingerprint: a4:eb:b9:61:28:2e:b7:2f:98:b0:35:26:90:99:51:1d +# SHA1 Fingerprint: 0f:f9:40:76:18:d3:d7:6a:4b:98:f0:a8:35:9e:0c:fd:27:ac:cc:ed +# SHA256 Fingerprint: 6b:9c:08:e8:6e:b0:f7:67:cf:ad:65:cd:98:b6:21:49:e5:49:4a:67:f5:84:5e:7b:d1:ed:01:9f:27:b8:6b:d6 +-----BEGIN CERTIFICATE----- +MIIDtTCCAp2gAwIBAgIQdrEgUnTwhYdGs/gjGvbCwDANBgkqhkiG9w0BAQsFADBt +MQswCQYDVQQGEwJDSDEQMA4GA1UEChMHV0lTZUtleTEiMCAGA1UECxMZT0lTVEUg +Rm91bmRhdGlvbiBFbmRvcnNlZDEoMCYGA1UEAxMfT0lTVEUgV0lTZUtleSBHbG9i +YWwgUm9vdCBHQiBDQTAeFw0xNDEyMDExNTAwMzJaFw0zOTEyMDExNTEwMzFaMG0x +CzAJBgNVBAYTAkNIMRAwDgYDVQQKEwdXSVNlS2V5MSIwIAYDVQQLExlPSVNURSBG +b3VuZGF0aW9uIEVuZG9yc2VkMSgwJgYDVQQDEx9PSVNURSBXSVNlS2V5IEdsb2Jh +bCBSb290IEdCIENBMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA2Be3 +HEokKtaXscriHvt9OO+Y9bI5mE4nuBFde9IllIiCFSZqGzG7qFshISvYD06fWvGx +WuR51jIjK+FTzJlFXHtPrby/h0oLS5daqPZI7H17Dc0hBt+eFf1Biki3IPShehtX +1F1Q/7pn2COZH8g/497/b1t3sWtuuMlk9+HKQUYOKXHQuSP8yYFfTvdv37+ErXNk +u7dCjmn21HYdfp2nuFeKUWdy19SouJVUQHMD9ur06/4oQnc/nSMbsrY9gBQHTC5P +99UKFg29ZkM3fiNDecNAhvVMKdqOmq0NpQSHiB6F4+lT1ZvIiwNjeOvgGUpuuy9r +M2RYk61pv48b74JIxwIDAQABo1EwTzALBgNVHQ8EBAMCAYYwDwYDVR0TAQH/BAUw +AwEB/zAdBgNVHQ4EFgQUNQ/INmNe4qPs+TtmFc5RUuORmj0wEAYJKwYBBAGCNxUB +BAMCAQAwDQYJKoZIhvcNAQELBQADggEBAEBM+4eymYGQfp3FsLAmzYh7KzKNbrgh +cViXfa43FK8+5/ea4n32cZiZBKpDdHij40lhPnOMTZTg+XHEthYOU3gf1qKHLwI5 +gSk8rxWYITD+KJAAjNHhy/peyP34EEY7onhCkRd0VQreUGdNZtGn//3ZwLWoo4rO +ZvUPQ82nK1d7Y0Zqqi5S2PTt4W2tKZB4SLrhI6qjiey1q5bAtEuiHZeeevJuQHHf +aPFlTc58Bd9TZaml8LGXBHAVRgOY1NK/VLSgWH1Sb9pWJmLU2NuJMW8c8CLC02Ic +Nc1MaRVUGpCY3useX8p3x8uOPUNpnJpY0CQ73xtAln41rYHHTnG6iBM= +-----END CERTIFICATE----- + +# Issuer: CN=SZAFIR ROOT CA2 O=Krajowa Izba Rozliczeniowa S.A. +# Subject: CN=SZAFIR ROOT CA2 O=Krajowa Izba Rozliczeniowa S.A. +# Label: "SZAFIR ROOT CA2" +# Serial: 357043034767186914217277344587386743377558296292 +# MD5 Fingerprint: 11:64:c1:89:b0:24:b1:8c:b1:07:7e:89:9e:51:9e:99 +# SHA1 Fingerprint: e2:52:fa:95:3f:ed:db:24:60:bd:6e:28:f3:9c:cc:cf:5e:b3:3f:de +# SHA256 Fingerprint: a1:33:9d:33:28:1a:0b:56:e5:57:d3:d3:2b:1c:e7:f9:36:7e:b0:94:bd:5f:a7:2a:7e:50:04:c8:de:d7:ca:fe +-----BEGIN CERTIFICATE----- +MIIDcjCCAlqgAwIBAgIUPopdB+xV0jLVt+O2XwHrLdzk1uQwDQYJKoZIhvcNAQEL +BQAwUTELMAkGA1UEBhMCUEwxKDAmBgNVBAoMH0tyYWpvd2EgSXpiYSBSb3psaWN6 +ZW5pb3dhIFMuQS4xGDAWBgNVBAMMD1NaQUZJUiBST09UIENBMjAeFw0xNTEwMTkw +NzQzMzBaFw0zNTEwMTkwNzQzMzBaMFExCzAJBgNVBAYTAlBMMSgwJgYDVQQKDB9L +cmFqb3dhIEl6YmEgUm96bGljemVuaW93YSBTLkEuMRgwFgYDVQQDDA9TWkFGSVIg +Uk9PVCBDQTIwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQC3vD5QqEvN +QLXOYeeWyrSh2gwisPq1e3YAd4wLz32ohswmUeQgPYUM1ljj5/QqGJ3a0a4m7utT +3PSQ1hNKDJA8w/Ta0o4NkjrcsbH/ON7Dui1fgLkCvUqdGw+0w8LBZwPd3BucPbOw +3gAeqDRHu5rr/gsUvTaE2g0gv/pby6kWIK05YO4vdbbnl5z5Pv1+TW9NL++IDWr6 +3fE9biCloBK0TXC5ztdyO4mTp4CEHCdJckm1/zuVnsHMyAHs6A6KCpbns6aH5db5 +BSsNl0BwPLqsdVqc1U2dAgrSS5tmS0YHF2Wtn2yIANwiieDhZNRnvDF5YTy7ykHN +XGoAyDw4jlivAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQD +AgEGMB0GA1UdDgQWBBQuFqlKGLXLzPVvUPMjX/hd56zwyDANBgkqhkiG9w0BAQsF +AAOCAQEAtXP4A9xZWx126aMqe5Aosk3AM0+qmrHUuOQn/6mWmc5G4G18TKI4pAZw +8PRBEew/R40/cof5O/2kbytTAOD/OblqBw7rHRz2onKQy4I9EYKL0rufKq8h5mOG +nXkZ7/e7DDWQw4rtTw/1zBLZpD67oPwglV9PJi8RI4NOdQcPv5vRtB3pEAT+ymCP +oky4rc/hkA/NrgrHXXu3UNLUYfrVFdvXn4dRVOul4+vJhaAlIDf7js4MNIThPIGy +d05DpYhfhmehPea0XGG2Ptv+tyjFogeutcrKjSoS75ftwjCkySp6+/NNIxuZMzSg +LvWpCz/UXeHPhJ/iGcJfitYgHuNztw== +-----END CERTIFICATE----- + +# Issuer: CN=Certum Trusted Network CA 2 O=Unizeto Technologies S.A. OU=Certum Certification Authority +# Subject: CN=Certum Trusted Network CA 2 O=Unizeto Technologies S.A. OU=Certum Certification Authority +# Label: "Certum Trusted Network CA 2" +# Serial: 44979900017204383099463764357512596969 +# MD5 Fingerprint: 6d:46:9e:d9:25:6d:08:23:5b:5e:74:7d:1e:27:db:f2 +# SHA1 Fingerprint: d3:dd:48:3e:2b:bf:4c:05:e8:af:10:f5:fa:76:26:cf:d3:dc:30:92 +# SHA256 Fingerprint: b6:76:f2:ed:da:e8:77:5c:d3:6c:b0:f6:3c:d1:d4:60:39:61:f4:9e:62:65:ba:01:3a:2f:03:07:b6:d0:b8:04 +-----BEGIN CERTIFICATE----- +MIIF0jCCA7qgAwIBAgIQIdbQSk8lD8kyN/yqXhKN6TANBgkqhkiG9w0BAQ0FADCB +gDELMAkGA1UEBhMCUEwxIjAgBgNVBAoTGVVuaXpldG8gVGVjaG5vbG9naWVzIFMu +QS4xJzAlBgNVBAsTHkNlcnR1bSBDZXJ0aWZpY2F0aW9uIEF1dGhvcml0eTEkMCIG +A1UEAxMbQ2VydHVtIFRydXN0ZWQgTmV0d29yayBDQSAyMCIYDzIwMTExMDA2MDgz +OTU2WhgPMjA0NjEwMDYwODM5NTZaMIGAMQswCQYDVQQGEwJQTDEiMCAGA1UEChMZ +VW5pemV0byBUZWNobm9sb2dpZXMgUy5BLjEnMCUGA1UECxMeQ2VydHVtIENlcnRp +ZmljYXRpb24gQXV0aG9yaXR5MSQwIgYDVQQDExtDZXJ0dW0gVHJ1c3RlZCBOZXR3 +b3JrIENBIDIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoICAQC9+Xj45tWA +DGSdhhuWZGc/IjoedQF97/tcZ4zJzFxrqZHmuULlIEub2pt7uZld2ZuAS9eEQCsn +0+i6MLs+CRqnSZXvK0AkwpfHp+6bJe+oCgCXhVqqndwpyeI1B+twTUrWwbNWuKFB +OJvR+zF/j+Bf4bE/D44WSWDXBo0Y+aomEKsq09DRZ40bRr5HMNUuctHFY9rnY3lE +fktjJImGLjQ/KUxSiyqnwOKRKIm5wFv5HdnnJ63/mgKXwcZQkpsCLL2puTRZCr+E +Sv/f/rOf69me4Jgj7KZrdxYq28ytOxykh9xGc14ZYmhFV+SQgkK7QtbwYeDBoz1m +o130GO6IyY0XRSmZMnUCMe4pJshrAua1YkV/NxVaI2iJ1D7eTiew8EAMvE0Xy02i +sx7QBlrd9pPPV3WZ9fqGGmd4s7+W/jTcvedSVuWz5XV710GRBdxdaeOVDUO5/IOW +OZV7bIBaTxNyxtd9KXpEulKkKtVBRgkg/iKgtlswjbyJDNXXcPiHUv3a76xRLgez +Tv7QCdpw75j6VuZt27VXS9zlLCUVyJ4ueE742pyehizKV/Ma5ciSixqClnrDvFAS +adgOWkaLOusm+iPJtrCBvkIApPjW/jAux9JG9uWOdf3yzLnQh1vMBhBgu4M1t15n +3kfsmUjxpKEV/q2MYo45VU85FrmxY53/twIDAQABo0IwQDAPBgNVHRMBAf8EBTAD +AQH/MB0GA1UdDgQWBBS2oVQ5AsOgP46KvPrU+Bym0ToO/TAOBgNVHQ8BAf8EBAMC +AQYwDQYJKoZIhvcNAQENBQADggIBAHGlDs7k6b8/ONWJWsQCYftMxRQXLYtPU2sQ +F/xlhMcQSZDe28cmk4gmb3DWAl45oPePq5a1pRNcgRRtDoGCERuKTsZPpd1iHkTf +CVn0W3cLN+mLIMb4Ck4uWBzrM9DPhmDJ2vuAL55MYIR4PSFk1vtBHxgP58l1cb29 +XN40hz5BsA72udY/CROWFC/emh1auVbONTqwX3BNXuMp8SMoclm2q8KMZiYcdywm +djWLKKdpoPk79SPdhRB0yZADVpHnr7pH1BKXESLjokmUbOe3lEu6LaTaM4tMpkT/ +WjzGHWTYtTHkpjx6qFcL2+1hGsvxznN3Y6SHb0xRONbkX8eftoEq5IVIeVheO/jb +AoJnwTnbw3RLPTYe+SmTiGhbqEQZIfCn6IENLOiTNrQ3ssqwGyZ6miUfmpqAnksq +P/ujmv5zMnHCnsZy4YpoJ/HkD7TETKVhk/iXEAcqMCWpuchxuO9ozC1+9eB+D4Ko +b7a6bINDd82Kkhehnlt4Fj1F4jNy3eFmypnTycUm/Q1oBEauttmbjL4ZvrHG8hnj +XALKLNhvSgfZyTXaQHXyxKcZb55CEJh15pWLYLztxRLXis7VmFxWlgPF7ncGNf/P +5O4/E2Hu29othfDNrp2yGAlFw5Khchf8R7agCyzxxN5DaAhqXzvwdmP7zAYspsbi +DrW5viSP +-----END CERTIFICATE----- + +# Issuer: CN=Hellenic Academic and Research Institutions RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority +# Subject: CN=Hellenic Academic and Research Institutions RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority +# Label: "Hellenic Academic and Research Institutions RootCA 2015" +# Serial: 0 +# MD5 Fingerprint: ca:ff:e2:db:03:d9:cb:4b:e9:0f:ad:84:fd:7b:18:ce +# SHA1 Fingerprint: 01:0c:06:95:a6:98:19:14:ff:bf:5f:c6:b0:b6:95:ea:29:e9:12:a6 +# SHA256 Fingerprint: a0:40:92:9a:02:ce:53:b4:ac:f4:f2:ff:c6:98:1c:e4:49:6f:75:5e:6d:45:fe:0b:2a:69:2b:cd:52:52:3f:36 +-----BEGIN CERTIFICATE----- +MIIGCzCCA/OgAwIBAgIBADANBgkqhkiG9w0BAQsFADCBpjELMAkGA1UEBhMCR1Ix +DzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5k +IFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxQDA+BgNVBAMT +N0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgUm9v +dENBIDIwMTUwHhcNMTUwNzA3MTAxMTIxWhcNNDAwNjMwMTAxMTIxWjCBpjELMAkG +A1UEBhMCR1IxDzANBgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNh +ZGVtaWMgYW5kIFJlc2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkx +QDA+BgNVBAMTN0hlbGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1 +dGlvbnMgUm9vdENBIDIwMTUwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +AQDC+Kk/G4n8PDwEXT2QNrCROnk8ZlrvbTkBSRq0t89/TSNTt5AA4xMqKKYx8ZEA +4yjsriFBzh/a/X0SWwGDD7mwX5nh8hKDgE0GPt+sr+ehiGsxr/CL0BgzuNtFajT0 +AoAkKAoCFZVedioNmToUW/bLy1O8E00BiDeUJRtCvCLYjqOWXjrZMts+6PAQZe10 +4S+nfK8nNLspfZu2zwnI5dMK/IhlZXQK3HMcXM1AsRzUtoSMTFDPaI6oWa7CJ06C +ojXdFPQf/7J31Ycvqm59JCfnxssm5uX+Zwdj2EUN3TpZZTlYepKZcj2chF6IIbjV +9Cz82XBST3i4vTwri5WY9bPRaM8gFH5MXF/ni+X1NYEZN9cRCLdmvtNKzoNXADrD +gfgXy5I2XdGj2HUb4Ysn6npIQf1FGQatJ5lOwXBH3bWfgVMS5bGMSF0xQxfjjMZ6 +Y5ZLKTBOhE5iGV48zpeQpX8B653g+IuJ3SWYPZK2fu/Z8VFRfS0myGlZYeCsargq +NhEEelC9MoS+L9xy1dcdFkfkR2YgP/SWxa+OAXqlD3pk9Q0Yh9muiNX6hME6wGko +LfINaFGq46V3xqSQDqE3izEjR8EJCOtu93ib14L8hCCZSRm2Ekax+0VVFqmjZayc +Bw/qa9wfLgZy7IaIEuQt218FL+TwA9MmM+eAws1CoRc0CwIDAQABo0IwQDAPBgNV +HRMBAf8EBTADAQH/MA4GA1UdDwEB/wQEAwIBBjAdBgNVHQ4EFgQUcRVnyMjJvXVd +ctA4GGqd83EkVAswDQYJKoZIhvcNAQELBQADggIBAHW7bVRLqhBYRjTyYtcWNl0I +XtVsyIe9tC5G8jH4fOpCtZMWVdyhDBKg2mF+D1hYc2Ryx+hFjtyp8iY/xnmMsVMI +M4GwVhO+5lFc2JsKT0ucVlMC6U/2DWDqTUJV6HwbISHTGzrMd/K4kPFox/la/vot +9L/J9UUbzjgQKjeKeaO04wlshYaT/4mWJ3iBj2fjRnRUjtkNaeJK9E10A/+yd+2V +Z5fkscWrv2oj6NSU4kQoYsRL4vDY4ilrGnB+JGGTe08DMiUNRSQrlrRGar9KC/ea +j8GsGsVn82800vpzY4zvFrCopEYq+OsS7HK07/grfoxSwIuEVPkvPuNVqNxmsdnh +X9izjFk0WaSrT2y7HxjbdavYy5LNlDhhDgcGH0tGEPEVvo2FXDtKK4F5D7Rpn0lQ +l033DlZdwJVqwjbDG2jJ9SrcR5q+ss7FJej6A7na+RZukYT1HCjI/CbM1xyQVqdf +bzoEvM14iQuODy+jqk+iGxI9FghAD/FGTNeqewjBCvVtJ94Cj8rDtSvK6evIIVM4 +pcw72Hc3MKJP2W/R8kCtQXoXxdZKNYm3QdV8hn9VTYNKpXMgwDqvkPGaJI7ZjnHK +e7iG2rKPmT4dEw0SEe7Uq/DpFXYC5ODfqiAeW2GFZECpkJcNrVPSWh2HagCXZWK0 +vm9qp/UsQu0yrbYhnr68 +-----END CERTIFICATE----- + +# Issuer: CN=Hellenic Academic and Research Institutions ECC RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority +# Subject: CN=Hellenic Academic and Research Institutions ECC RootCA 2015 O=Hellenic Academic and Research Institutions Cert. Authority +# Label: "Hellenic Academic and Research Institutions ECC RootCA 2015" +# Serial: 0 +# MD5 Fingerprint: 81:e5:b4:17:eb:c2:f5:e1:4b:0d:41:7b:49:92:fe:ef +# SHA1 Fingerprint: 9f:f1:71:8d:92:d5:9a:f3:7d:74:97:b4:bc:6f:84:68:0b:ba:b6:66 +# SHA256 Fingerprint: 44:b5:45:aa:8a:25:e6:5a:73:ca:15:dc:27:fc:36:d2:4c:1c:b9:95:3a:06:65:39:b1:15:82:dc:48:7b:48:33 +-----BEGIN CERTIFICATE----- +MIICwzCCAkqgAwIBAgIBADAKBggqhkjOPQQDAjCBqjELMAkGA1UEBhMCR1IxDzAN +BgNVBAcTBkF0aGVuczFEMEIGA1UEChM7SGVsbGVuaWMgQWNhZGVtaWMgYW5kIFJl +c2VhcmNoIEluc3RpdHV0aW9ucyBDZXJ0LiBBdXRob3JpdHkxRDBCBgNVBAMTO0hl +bGxlbmljIEFjYWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgRUNDIFJv +b3RDQSAyMDE1MB4XDTE1MDcwNzEwMzcxMloXDTQwMDYzMDEwMzcxMlowgaoxCzAJ +BgNVBAYTAkdSMQ8wDQYDVQQHEwZBdGhlbnMxRDBCBgNVBAoTO0hlbGxlbmljIEFj +YWRlbWljIGFuZCBSZXNlYXJjaCBJbnN0aXR1dGlvbnMgQ2VydC4gQXV0aG9yaXR5 +MUQwQgYDVQQDEztIZWxsZW5pYyBBY2FkZW1pYyBhbmQgUmVzZWFyY2ggSW5zdGl0 +dXRpb25zIEVDQyBSb290Q0EgMjAxNTB2MBAGByqGSM49AgEGBSuBBAAiA2IABJKg +QehLgoRc4vgxEZmGZE4JJS+dQS8KrjVPdJWyUWRrjWvmP3CV8AVER6ZyOFB2lQJa +jq4onvktTpnvLEhvTCUp6NFxW98dwXU3tNf6e3pCnGoKVlp8aQuqgAkkbH7BRqNC +MEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFLQi +C4KZJAEOnLvkDv2/+5cgk5kqMAoGCCqGSM49BAMCA2cAMGQCMGfOFmI4oqxiRaep +lSTAGiecMjvAwNW6qef4BENThe5SId6d9SWDPp5YSy/XZxMOIQIwBeF1Ad5o7Sof +TUwJCA3sS61kFyjndc5FZXIhF8siQQ6ME5g4mlRtm8rifOoCWCKR +-----END CERTIFICATE----- + +# Issuer: CN=Certplus Root CA G1 O=Certplus +# Subject: CN=Certplus Root CA G1 O=Certplus +# Label: "Certplus Root CA G1" +# Serial: 1491911565779898356709731176965615564637713 +# MD5 Fingerprint: 7f:09:9c:f7:d9:b9:5c:69:69:56:d5:37:3e:14:0d:42 +# SHA1 Fingerprint: 22:fd:d0:b7:fd:a2:4e:0d:ac:49:2c:a0:ac:a6:7b:6a:1f:e3:f7:66 +# SHA256 Fingerprint: 15:2a:40:2b:fc:df:2c:d5:48:05:4d:22:75:b3:9c:7f:ca:3e:c0:97:80:78:b0:f0:ea:76:e5:61:a6:c7:43:3e +-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgISESBVg+QtPlRWhS2DN7cs3EYRMA0GCSqGSIb3DQEBDQUA +MD4xCzAJBgNVBAYTAkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2Vy +dHBsdXMgUm9vdCBDQSBHMTAeFw0xNDA1MjYwMDAwMDBaFw0zODAxMTUwMDAwMDBa +MD4xCzAJBgNVBAYTAkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2Vy +dHBsdXMgUm9vdCBDQSBHMTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIB +ANpQh7bauKk+nWT6VjOaVj0W5QOVsjQcmm1iBdTYj+eJZJ+622SLZOZ5KmHNr49a +iZFluVj8tANfkT8tEBXgfs+8/H9DZ6itXjYj2JizTfNDnjl8KvzsiNWI7nC9hRYt +6kuJPKNxQv4c/dMcLRC4hlTqQ7jbxofaqK6AJc96Jh2qkbBIb6613p7Y1/oA/caP +0FG7Yn2ksYyy/yARujVjBYZHYEMzkPZHogNPlk2dT8Hq6pyi/jQu3rfKG3akt62f +6ajUeD94/vI4CTYd0hYCyOwqaK/1jpTvLRN6HkJKHRUxrgwEV/xhc/MxVoYxgKDE +EW4wduOU8F8ExKyHcomYxZ3MVwia9Az8fXoFOvpHgDm2z4QTd28n6v+WZxcIbekN +1iNQMLAVdBM+5S//Ds3EC0pd8NgAM0lm66EYfFkuPSi5YXHLtaW6uOrc4nBvCGrc +h2c0798wct3zyT8j/zXhviEpIDCB5BmlIOklynMxdCm+4kLV87ImZsdo/Rmz5yCT +mehd4F6H50boJZwKKSTUzViGUkAksnsPmBIgJPaQbEfIDbsYIC7Z/fyL8inqh3SV +4EJQeIQEQWGw9CEjjy3LKCHyamz0GqbFFLQ3ZU+V/YDI+HLlJWvEYLF7bY5KinPO +WftwenMGE9nTdDckQQoRb5fc5+R+ob0V8rqHDz1oihYHAgMBAAGjYzBhMA4GA1Ud +DwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBSowcCbkahDFXxd +Bie0KlHYlwuBsTAfBgNVHSMEGDAWgBSowcCbkahDFXxdBie0KlHYlwuBsTANBgkq +hkiG9w0BAQ0FAAOCAgEAnFZvAX7RvUz1isbwJh/k4DgYzDLDKTudQSk0YcbX8ACh +66Ryj5QXvBMsdbRX7gp8CXrc1cqh0DQT+Hern+X+2B50ioUHj3/MeXrKls3N/U/7 +/SMNkPX0XtPGYX2eEeAC7gkE2Qfdpoq3DIMku4NQkv5gdRE+2J2winq14J2by5BS +S7CTKtQ+FjPlnsZlFT5kOwQ/2wyPX1wdaR+v8+khjPPvl/aatxm2hHSco1S1cE5j +2FddUyGbQJJD+tZ3VTNPZNX70Cxqjm0lpu+F6ALEUz65noe8zDUa3qHpimOHZR4R +Kttjd5cUvpoUmRGywO6wT/gUITJDT5+rosuoD6o7BlXGEilXCNQ314cnrUlZp5Gr +RHpejXDbl85IULFzk/bwg2D5zfHhMf1bfHEhYxQUqq/F3pN+aLHsIqKqkHWetUNy +6mSjhEv9DKgma3GX7lZjZuhCVPnHHd/Qj1vfyDBviP4NxDMcU6ij/UgQ8uQKTuEV +V/xuZDDCVRHc6qnNSlSsKWNEz0pAoNZoWRsz+e86i9sgktxChL8Bq4fA1SCC28a5 +g4VCXA9DO2pJNdWY9BW/+mGBDAkgGNLQFwzLSABQ6XaCjGTXOqAHVcweMcDvOrRl +++O/QmueD6i9a5jc2NvLi6Td11n0bt3+qsOR0C5CB8AMTVPNJLFMWx5R9N/pkvo= +-----END CERTIFICATE----- + +# Issuer: CN=Certplus Root CA G2 O=Certplus +# Subject: CN=Certplus Root CA G2 O=Certplus +# Label: "Certplus Root CA G2" +# Serial: 1492087096131536844209563509228951875861589 +# MD5 Fingerprint: a7:ee:c4:78:2d:1b:ee:2d:b9:29:ce:d6:a7:96:32:31 +# SHA1 Fingerprint: 4f:65:8e:1f:e9:06:d8:28:02:e9:54:47:41:c9:54:25:5d:69:cc:1a +# SHA256 Fingerprint: 6c:c0:50:41:e6:44:5e:74:69:6c:4c:fb:c9:f8:0f:54:3b:7e:ab:bb:44:b4:ce:6f:78:7c:6a:99:71:c4:2f:17 +-----BEGIN CERTIFICATE----- +MIICHDCCAaKgAwIBAgISESDZkc6uo+jF5//pAq/Pc7xVMAoGCCqGSM49BAMDMD4x +CzAJBgNVBAYTAkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBs +dXMgUm9vdCBDQSBHMjAeFw0xNDA1MjYwMDAwMDBaFw0zODAxMTUwMDAwMDBaMD4x +CzAJBgNVBAYTAkZSMREwDwYDVQQKDAhDZXJ0cGx1czEcMBoGA1UEAwwTQ2VydHBs +dXMgUm9vdCBDQSBHMjB2MBAGByqGSM49AgEGBSuBBAAiA2IABM0PW1aC3/BFGtat +93nwHcmsltaeTpwftEIRyoa/bfuFo8XlGVzX7qY/aWfYeOKmycTbLXku54uNAm8x +Ik0G42ByRZ0OQneezs/lf4WbGOT8zC5y0xaTTsqZY1yhBSpsBqNjMGEwDgYDVR0P +AQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wHQYDVR0OBBYEFNqDYwJ5jtpMxjwj +FNiPwyCrKGBZMB8GA1UdIwQYMBaAFNqDYwJ5jtpMxjwjFNiPwyCrKGBZMAoGCCqG +SM49BAMDA2gAMGUCMHD+sAvZ94OX7PNVHdTcswYO/jOYnYs5kGuUIe22113WTNch +p+e/IQ8rzfcq3IUHnQIxAIYUFuXcsGXCwI4Un78kFmjlvPl5adytRSv3tjFzzAal +U5ORGpOucGpnutee5WEaXw== +-----END CERTIFICATE----- + +# Issuer: CN=OpenTrust Root CA G1 O=OpenTrust +# Subject: CN=OpenTrust Root CA G1 O=OpenTrust +# Label: "OpenTrust Root CA G1" +# Serial: 1492036577811947013770400127034825178844775 +# MD5 Fingerprint: 76:00:cc:81:29:cd:55:5e:88:6a:7a:2e:f7:4d:39:da +# SHA1 Fingerprint: 79:91:e8:34:f7:e2:ee:dd:08:95:01:52:e9:55:2d:14:e9:58:d5:7e +# SHA256 Fingerprint: 56:c7:71:28:d9:8c:18:d9:1b:4c:fd:ff:bc:25:ee:91:03:d4:75:8e:a2:ab:ad:82:6a:90:f3:45:7d:46:0e:b4 +-----BEGIN CERTIFICATE----- +MIIFbzCCA1egAwIBAgISESCzkFU5fX82bWTCp59rY45nMA0GCSqGSIb3DQEBCwUA +MEAxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9w +ZW5UcnVzdCBSb290IENBIEcxMB4XDTE0MDUyNjA4NDU1MFoXDTM4MDExNTAwMDAw +MFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCU9wZW5UcnVzdDEdMBsGA1UEAwwU +T3BlblRydXN0IFJvb3QgQ0EgRzEwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK +AoICAQD4eUbalsUwXopxAy1wpLuwxQjczeY1wICkES3d5oeuXT2R0odsN7faYp6b +wiTXj/HbpqbfRm9RpnHLPhsxZ2L3EVs0J9V5ToybWL0iEA1cJwzdMOWo010hOHQX +/uMftk87ay3bfWAfjH1MBcLrARYVmBSO0ZB3Ij/swjm4eTrwSSTilZHcYTSSjFR0 +77F9jAHiOH3BX2pfJLKOYheteSCtqx234LSWSE9mQxAGFiQD4eCcjsZGT44ameGP +uY4zbGneWK2gDqdkVBFpRGZPTBKnjix9xNRbxQA0MMHZmf4yzgeEtE7NCv82TWLx +p2NX5Ntqp66/K7nJ5rInieV+mhxNaMbBGN4zK1FGSxyO9z0M+Yo0FMT7MzUj8czx +Kselu7Cizv5Ta01BG2Yospb6p64KTrk5M0ScdMGTHPjgniQlQ/GbI4Kq3ywgsNw2 +TgOzfALU5nsaqocTvz6hdLubDuHAk5/XpGbKuxs74zD0M1mKB3IDVedzagMxbm+W +G+Oin6+Sx+31QrclTDsTBM8clq8cIqPQqwWyTBIjUtz9GVsnnB47ev1CI9sjgBPw +vFEVVJSmdz7QdFG9URQIOTfLHzSpMJ1ShC5VkLG631UAC9hWLbFJSXKAqWLXwPYY +EQRVzXR7z2FwefR7LFxckvzluFqrTJOVoSfupb7PcSNCupt2LQIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUl0YhVyE1 +2jZVx/PxN3DlCPaTKbYwHwYDVR0jBBgwFoAUl0YhVyE12jZVx/PxN3DlCPaTKbYw +DQYJKoZIhvcNAQELBQADggIBAB3dAmB84DWn5ph76kTOZ0BP8pNuZtQ5iSas000E +PLuHIT839HEl2ku6q5aCgZG27dmxpGWX4m9kWaSW7mDKHyP7Rbr/jyTwyqkxf3kf +gLMtMrpkZ2CvuVnN35pJ06iCsfmYlIrM4LvgBBuZYLFGZdwIorJGnkSI6pN+VxbS +FXJfLkur1J1juONI5f6ELlgKn0Md/rcYkoZDSw6cMoYsYPXpSOqV7XAp8dUv/TW0 +V8/bhUiZucJvbI/NeJWsZCj9VrDDb8O+WVLhX4SPgPL0DTatdrOjteFkdjpY3H1P +XlZs5VVZV6Xf8YpmMIzUUmI4d7S+KNfKNsSbBfD4Fdvb8e80nR14SohWZ25g/4/I +i+GOvUKpMwpZQhISKvqxnUOOBZuZ2mKtVzazHbYNeS2WuOvyDEsMpZTGMKcmGS3t +TAZQMPH9WD25SxdfGbRqhFS0OE85og2WaMMolP3tLR9Ka0OWLpABEPs4poEL0L91 +09S5zvE/bw4cHjdx5RiHdRk/ULlepEU0rbDK5uUTdg8xFKmOLZTW1YVNcxVPS/Ky +Pu1svf0OnWZzsD2097+o4BGkxK51CUpjAEggpsadCwmKtODmzj7HPiY46SvepghJ +AwSQiumPv+i2tCqjI40cHLI5kqiPAlxAOXXUc0ECd97N4EOH1uS6SsNsEn/+KuYj +1oxx +-----END CERTIFICATE----- + +# Issuer: CN=OpenTrust Root CA G2 O=OpenTrust +# Subject: CN=OpenTrust Root CA G2 O=OpenTrust +# Label: "OpenTrust Root CA G2" +# Serial: 1492012448042702096986875987676935573415441 +# MD5 Fingerprint: 57:24:b6:59:24:6b:ae:c8:fe:1c:0c:20:f2:c0:4e:eb +# SHA1 Fingerprint: 79:5f:88:60:c5:ab:7c:3d:92:e6:cb:f4:8d:e1:45:cd:11:ef:60:0b +# SHA256 Fingerprint: 27:99:58:29:fe:6a:75:15:c1:bf:e8:48:f9:c4:76:1d:b1:6c:22:59:29:25:7b:f4:0d:08:94:f2:9e:a8:ba:f2 +-----BEGIN CERTIFICATE----- +MIIFbzCCA1egAwIBAgISESChaRu/vbm9UpaPI+hIvyYRMA0GCSqGSIb3DQEBDQUA +MEAxCzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9w +ZW5UcnVzdCBSb290IENBIEcyMB4XDTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAw +MFowQDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCU9wZW5UcnVzdDEdMBsGA1UEAwwU +T3BlblRydXN0IFJvb3QgQ0EgRzIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK +AoICAQDMtlelM5QQgTJT32F+D3Y5z1zCU3UdSXqWON2ic2rxb95eolq5cSG+Ntmh +/LzubKh8NBpxGuga2F8ORAbtp+Dz0mEL4DKiltE48MLaARf85KxP6O6JHnSrT78e +CbY2albz4e6WiWYkBuTNQjpK3eCasMSCRbP+yatcfD7J6xcvDH1urqWPyKwlCm/6 +1UWY0jUJ9gNDlP7ZvyCVeYCYitmJNbtRG6Q3ffyZO6v/v6wNj0OxmXsWEH4db0fE +FY8ElggGQgT4hNYdvJGmQr5J1WqIP7wtUdGejeBSzFfdNTVY27SPJIjki9/ca1TS +gSuyzpJLHB9G+h3Ykst2Z7UJmQnlrBcUVXDGPKBWCgOz3GIZ38i1MH/1PCZ1Eb3X +G7OHngevZXHloM8apwkQHZOJZlvoPGIytbU6bumFAYueQ4xncyhZW+vj3CzMpSZy +YhK05pyDRPZRpOLAeiRXyg6lPzq1O4vldu5w5pLeFlwoW5cZJ5L+epJUzpM5ChaH +vGOz9bGTXOBut9Dq+WIyiET7vycotjCVXRIouZW+j1MY5aIYFuJWpLIsEPUdN6b4 +t/bQWVyJ98LVtZR00dX+G7bw5tYee9I8y6jj9RjzIR9u701oBnstXW5DiabA+aC/ +gh7PU3+06yzbXfZqfUAkBXKJOAGTy3HCOV0GEfZvePg3DTmEJwIDAQABo2MwYTAO +BgNVHQ8BAf8EBAMCAQYwDwYDVR0TAQH/BAUwAwEB/zAdBgNVHQ4EFgQUajn6QiL3 +5okATV59M4PLuG53hq8wHwYDVR0jBBgwFoAUajn6QiL35okATV59M4PLuG53hq8w +DQYJKoZIhvcNAQENBQADggIBAJjLq0A85TMCl38th6aP1F5Kr7ge57tx+4BkJamz +Gj5oXScmp7oq4fBXgwpkTx4idBvpkF/wrM//T2h6OKQQbA2xx6R3gBi2oihEdqc0 +nXGEL8pZ0keImUEiyTCYYW49qKgFbdEfwFFEVn8nNQLdXpgKQuswv42hm1GqO+qT +RmTFAHneIWv2V6CG1wZy7HBGS4tz3aAhdT7cHcCP009zHIXZ/n9iyJVvttN7jLpT +wm+bREx50B1ws9efAvSyB7DH5fitIw6mVskpEndI2S9G/Tvw/HRwkqWOOAgfZDC2 +t0v7NqwQjqBSM2OdAzVWxWm9xiNaJ5T2pBL4LTM8oValX9YZ6e18CL13zSdkzJTa +TkZQh+D5wVOAHrut+0dSixv9ovneDiK3PTNZbNTe9ZUGMg1RGUFcPk8G97krgCf2 +o6p6fAbhQ8MTOWIaNr3gKC6UAuQpLmBVrkA9sHSSXvAgZJY/X0VdiLWK2gKgW0VU +3jg9CcCoSmVGFvyqv1ROTVu+OEO3KMqLM6oaJbolXCkvW0pujOotnCr2BXbgd5eA +iN1nE28daCSLT7d0geX0YJ96Vdc+N9oWaz53rK4YcJUIeSkDiv7BO7M/Gg+kO14f +WKGVyasvc0rQLW6aWQ9VGHgtPFGml4vmu7JwqkwR3v98KzfUetF3NI/n+UL3PIEM +S1IK +-----END CERTIFICATE----- + +# Issuer: CN=OpenTrust Root CA G3 O=OpenTrust +# Subject: CN=OpenTrust Root CA G3 O=OpenTrust +# Label: "OpenTrust Root CA G3" +# Serial: 1492104908271485653071219941864171170455615 +# MD5 Fingerprint: 21:37:b4:17:16:92:7b:67:46:70:a9:96:d7:a8:13:24 +# SHA1 Fingerprint: 6e:26:64:f3:56:bf:34:55:bf:d1:93:3f:7c:01:de:d8:13:da:8a:a6 +# SHA256 Fingerprint: b7:c3:62:31:70:6e:81:07:8c:36:7c:b8:96:19:8f:1e:32:08:dd:92:69:49:dd:8f:57:09:a4:10:f7:5b:62:92 +-----BEGIN CERTIFICATE----- +MIICITCCAaagAwIBAgISESDm+Ez8JLC+BUCs2oMbNGA/MAoGCCqGSM49BAMDMEAx +CzAJBgNVBAYTAkZSMRIwEAYDVQQKDAlPcGVuVHJ1c3QxHTAbBgNVBAMMFE9wZW5U +cnVzdCBSb290IENBIEczMB4XDTE0MDUyNjAwMDAwMFoXDTM4MDExNTAwMDAwMFow +QDELMAkGA1UEBhMCRlIxEjAQBgNVBAoMCU9wZW5UcnVzdDEdMBsGA1UEAwwUT3Bl +blRydXN0IFJvb3QgQ0EgRzMwdjAQBgcqhkjOPQIBBgUrgQQAIgNiAARK7liuTcpm +3gY6oxH84Bjwbhy6LTAMidnW7ptzg6kjFYwvWYpa3RTqnVkrQ7cG7DK2uu5Bta1d +oYXM6h0UZqNnfkbilPPntlahFVmhTzeXuSIevRHr9LIfXsMUmuXZl5mjYzBhMA4G +A1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBRHd8MUi2I5 +DMlv4VBN0BBY3JWIbTAfBgNVHSMEGDAWgBRHd8MUi2I5DMlv4VBN0BBY3JWIbTAK +BggqhkjOPQQDAwNpADBmAjEAj6jcnboMBBf6Fek9LykBl7+BFjNAk2z8+e2AcG+q +j9uEwov1NcoG3GRvaBbhj5G5AjEA2Euly8LQCGzpGPta3U1fJAuwACEl74+nBCZx +4nxp5V2a+EEfOzmTk51V6s2N8fvB +-----END CERTIFICATE----- + +# Issuer: CN=ISRG Root X1 O=Internet Security Research Group +# Subject: CN=ISRG Root X1 O=Internet Security Research Group +# Label: "ISRG Root X1" +# Serial: 172886928669790476064670243504169061120 +# MD5 Fingerprint: 0c:d2:f9:e0:da:17:73:e9:ed:86:4d:a5:e3:70:e7:4e +# SHA1 Fingerprint: ca:bd:2a:79:a1:07:6a:31:f2:1d:25:36:35:cb:03:9d:43:29:a5:e8 +# SHA256 Fingerprint: 96:bc:ec:06:26:49:76:f3:74:60:77:9a:cf:28:c5:a7:cf:e8:a3:c0:aa:e1:1a:8f:fc:ee:05:c0:bd:df:08:c6 +-----BEGIN CERTIFICATE----- +MIIFazCCA1OgAwIBAgIRAIIQz7DSQONZRGPgu2OCiwAwDQYJKoZIhvcNAQELBQAw +TzELMAkGA1UEBhMCVVMxKTAnBgNVBAoTIEludGVybmV0IFNlY3VyaXR5IFJlc2Vh +cmNoIEdyb3VwMRUwEwYDVQQDEwxJU1JHIFJvb3QgWDEwHhcNMTUwNjA0MTEwNDM4 +WhcNMzUwNjA0MTEwNDM4WjBPMQswCQYDVQQGEwJVUzEpMCcGA1UEChMgSW50ZXJu +ZXQgU2VjdXJpdHkgUmVzZWFyY2ggR3JvdXAxFTATBgNVBAMTDElTUkcgUm9vdCBY +MTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK3oJHP0FDfzm54rVygc +h77ct984kIxuPOZXoHj3dcKi/vVqbvYATyjb3miGbESTtrFj/RQSa78f0uoxmyF+ +0TM8ukj13Xnfs7j/EvEhmkvBioZxaUpmZmyPfjxwv60pIgbz5MDmgK7iS4+3mX6U +A5/TR5d8mUgjU+g4rk8Kb4Mu0UlXjIB0ttov0DiNewNwIRt18jA8+o+u3dpjq+sW +T8KOEUt+zwvo/7V3LvSye0rgTBIlDHCNAymg4VMk7BPZ7hm/ELNKjD+Jo2FR3qyH +B5T0Y3HsLuJvW5iB4YlcNHlsdu87kGJ55tukmi8mxdAQ4Q7e2RCOFvu396j3x+UC +B5iPNgiV5+I3lg02dZ77DnKxHZu8A/lJBdiB3QW0KtZB6awBdpUKD9jf1b0SHzUv +KBds0pjBqAlkd25HN7rOrFleaJ1/ctaJxQZBKT5ZPt0m9STJEadao0xAH0ahmbWn +OlFuhjuefXKnEgV4We0+UXgVCwOPjdAvBbI+e0ocS3MFEvzG6uBQE3xDk3SzynTn +jh8BCNAw1FtxNrQHusEwMFxIt4I7mKZ9YIqioymCzLq9gwQbooMDQaHWBfEbwrbw +qHyGO0aoSCqI3Haadr8faqU9GY/rOPNk3sgrDQoo//fb4hVC1CLQJ13hef4Y53CI +rU7m2Ys6xt0nUW7/vGT1M0NPAgMBAAGjQjBAMA4GA1UdDwEB/wQEAwIBBjAPBgNV +HRMBAf8EBTADAQH/MB0GA1UdDgQWBBR5tFnme7bl5AFzgAiIyBpY9umbbjANBgkq +hkiG9w0BAQsFAAOCAgEAVR9YqbyyqFDQDLHYGmkgJykIrGF1XIpu+ILlaS/V9lZL +ubhzEFnTIZd+50xx+7LSYK05qAvqFyFWhfFQDlnrzuBZ6brJFe+GnY+EgPbk6ZGQ +3BebYhtF8GaV0nxvwuo77x/Py9auJ/GpsMiu/X1+mvoiBOv/2X/qkSsisRcOj/KK +NFtY2PwByVS5uCbMiogziUwthDyC3+6WVwW6LLv3xLfHTjuCvjHIInNzktHCgKQ5 +ORAzI4JMPJ+GslWYHb4phowim57iaztXOoJwTdwJx4nLCgdNbOhdjsnvzqvHu7Ur +TkXWStAmzOVyyghqpZXjFaH3pO3JLF+l+/+sKAIuvtd7u+Nxe5AW0wdeRlN8NwdC +jNPElpzVmbUq4JUagEiuTDkHzsxHpFKVK7q4+63SM1N95R1NbdWhscdCb+ZAJzVc +oyi3B43njTOQ5yOf+1CceWxG1bQVs5ZufpsMljq4Ui0/1lvh+wjChP4kqKOJ2qxq +4RgqsahDYVvTH9w7jXbyLeiNdd8XM2w9U/t7y0Ff/9yi0GE44Za4rF2LN9d11TPA +mRGunUHBcnWEvgJBQl9nJEiU0Zsnvgc/ubhPgXRR4Xq37Z0j4r7g1SgEEzwxA57d +emyPxgcYxn/eR44/KJ4EBs+lVDR3veyJm+kXQ99b21/+jh5Xos1AnX5iItreGCc= +-----END CERTIFICATE----- + +# Issuer: O=FNMT-RCM OU=AC RAIZ FNMT-RCM +# Subject: O=FNMT-RCM OU=AC RAIZ FNMT-RCM +# Label: "AC RAIZ FNMT-RCM" +# Serial: 485876308206448804701554682760554759 +# MD5 Fingerprint: e2:09:04:b4:d3:bd:d1:a0:14:fd:1a:d2:47:c4:57:1d +# SHA1 Fingerprint: ec:50:35:07:b2:15:c4:95:62:19:e2:a8:9a:5b:42:99:2c:4c:2c:20 +# SHA256 Fingerprint: eb:c5:57:0c:29:01:8c:4d:67:b1:aa:12:7b:af:12:f7:03:b4:61:1e:bc:17:b7:da:b5:57:38:94:17:9b:93:fa +-----BEGIN CERTIFICATE----- +MIIFgzCCA2ugAwIBAgIPXZONMGc2yAYdGsdUhGkHMA0GCSqGSIb3DQEBCwUAMDsx +CzAJBgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJ +WiBGTk1ULVJDTTAeFw0wODEwMjkxNTU5NTZaFw0zMDAxMDEwMDAwMDBaMDsxCzAJ +BgNVBAYTAkVTMREwDwYDVQQKDAhGTk1ULVJDTTEZMBcGA1UECwwQQUMgUkFJWiBG +Tk1ULVJDTTCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBALpxgHpMhm5/ +yBNtwMZ9HACXjywMI7sQmkCpGreHiPibVmr75nuOi5KOpyVdWRHbNi63URcfqQgf +BBckWKo3Shjf5TnUV/3XwSyRAZHiItQDwFj8d0fsjz50Q7qsNI1NOHZnjrDIbzAz +WHFctPVrbtQBULgTfmxKo0nRIBnuvMApGGWn3v7v3QqQIecaZ5JCEJhfTzC8PhxF +tBDXaEAUwED653cXeuYLj2VbPNmaUtu1vZ5Gzz3rkQUCwJaydkxNEJY7kvqcfw+Z +374jNUUeAlz+taibmSXaXvMiwzn15Cou08YfxGyqxRxqAQVKL9LFwag0Jl1mpdIC +IfkYtwb1TplvqKtMUejPUBjFd8g5CSxJkjKZqLsXF3mwWsXmo8RZZUc1g16p6DUL +mbvkzSDGm0oGObVo/CK67lWMK07q87Hj/LaZmtVC+nFNCM+HHmpxffnTtOmlcYF7 +wk5HlqX2doWjKI/pgG6BU6VtX7hI+cL5NqYuSf+4lsKMB7ObiFj86xsc3i1w4peS +MKGJ47xVqCfWS+2QrYv6YyVZLag13cqXM7zlzced0ezvXg5KkAYmY6252TUtB7p2 +ZSysV4999AeU14ECll2jB0nVetBX+RvnU0Z1qrB5QstocQjpYL05ac70r8NWQMet +UqIJ5G+GR4of6ygnXYMgrwTJbFaai0b1AgMBAAGjgYMwgYAwDwYDVR0TAQH/BAUw +AwEB/zAOBgNVHQ8BAf8EBAMCAQYwHQYDVR0OBBYEFPd9xf3E6Jobd2Sn9R2gzL+H +YJptMD4GA1UdIAQ3MDUwMwYEVR0gADArMCkGCCsGAQUFBwIBFh1odHRwOi8vd3d3 +LmNlcnQuZm5tdC5lcy9kcGNzLzANBgkqhkiG9w0BAQsFAAOCAgEAB5BK3/MjTvDD +nFFlm5wioooMhfNzKWtN/gHiqQxjAb8EZ6WdmF/9ARP67Jpi6Yb+tmLSbkyU+8B1 +RXxlDPiyN8+sD8+Nb/kZ94/sHvJwnvDKuO+3/3Y3dlv2bojzr2IyIpMNOmqOFGYM +LVN0V2Ue1bLdI4E7pWYjJ2cJj+F3qkPNZVEI7VFY/uY5+ctHhKQV8Xa7pO6kO8Rf +77IzlhEYt8llvhjho6Tc+hj507wTmzl6NLrTQfv6MooqtyuGC2mDOL7Nii4LcK2N +JpLuHvUBKwrZ1pebbuCoGRw6IYsMHkCtA+fdZn71uSANA+iW+YJF1DngoABd15jm +fZ5nc8OaKveri6E6FO80vFIOiZiaBECEHX5FaZNXzuvO+FB8TxxuBEOb+dY7Ixjp +6o7RTUaN8Tvkasq6+yO3m/qZASlaWFot4/nUbQ4mrcFuNLwy+AwF+mWj2zs3gyLp +1txyM/1d8iC9djwj2ij3+RvrWWTV3F9yfiD8zYm1kGdNYno/Tq0dwzn+evQoFt9B +9kiABdcPUXmsEKvU7ANm5mqwujGSQkBqvjrTcuFqN1W8rB2Vt2lh8kORdOag0wok +RqEIr9baRRmW1FMdW4R58MD3R++Lj8UGrp1MYp3/RgT408m2ECVAdf4WqslKYIYv +uu8wd+RU4riEmViAqhOLUTpPSPaLtrM= +-----END CERTIFICATE----- + +# Issuer: CN=Amazon Root CA 1 O=Amazon +# Subject: CN=Amazon Root CA 1 O=Amazon +# Label: "Amazon Root CA 1" +# Serial: 143266978916655856878034712317230054538369994 +# MD5 Fingerprint: 43:c6:bf:ae:ec:fe:ad:2f:18:c6:88:68:30:fc:c8:e6 +# SHA1 Fingerprint: 8d:a7:f9:65:ec:5e:fc:37:91:0f:1c:6e:59:fd:c1:cc:6a:6e:de:16 +# SHA256 Fingerprint: 8e:cd:e6:88:4f:3d:87:b1:12:5b:a3:1a:c3:fc:b1:3d:70:16:de:7f:57:cc:90:4f:e1:cb:97:c6:ae:98:19:6e +-----BEGIN CERTIFICATE----- +MIIDQTCCAimgAwIBAgITBmyfz5m/jAo54vB4ikPmljZbyjANBgkqhkiG9w0BAQsF +ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6 +b24gUm9vdCBDQSAxMB4XDTE1MDUyNjAwMDAwMFoXDTM4MDExNzAwMDAwMFowOTEL +MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv +b3QgQ0EgMTCCASIwDQYJKoZIhvcNAQEBBQADggEPADCCAQoCggEBALJ4gHHKeNXj +ca9HgFB0fW7Y14h29Jlo91ghYPl0hAEvrAIthtOgQ3pOsqTQNroBvo3bSMgHFzZM +9O6II8c+6zf1tRn4SWiw3te5djgdYZ6k/oI2peVKVuRF4fn9tBb6dNqcmzU5L/qw +IFAGbHrQgLKm+a/sRxmPUDgH3KKHOVj4utWp+UhnMJbulHheb4mjUcAwhmahRWa6 +VOujw5H5SNz/0egwLX0tdHA114gk957EWW67c4cX8jJGKLhD+rcdqsq08p8kDi1L +93FcXmn/6pUCyziKrlA4b9v7LWIbxcceVOF34GfID5yHI9Y/QCB/IIDEgEw+OyQm +jgSubJrIqg0CAwEAAaNCMEAwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMC +AYYwHQYDVR0OBBYEFIQYzIU07LwMlJQuCFmcx7IQTgoIMA0GCSqGSIb3DQEBCwUA +A4IBAQCY8jdaQZChGsV2USggNiMOruYou6r4lK5IpDB/G/wkjUu0yKGX9rbxenDI +U5PMCCjjmCXPI6T53iHTfIUJrU6adTrCC2qJeHZERxhlbI1Bjjt/msv0tadQ1wUs +N+gDS63pYaACbvXy8MWy7Vu33PqUXHeeE6V/Uq2V8viTO96LXFvKWlJbYK8U90vv +o/ufQJVtMVT8QtPHRh8jrdkPSHCa2XV4cdFyQzR1bldZwgJcJmApzyMZFo6IQ6XU +5MsI+yMRQ+hDKXJioaldXgjUkK642M4UwtBV8ob2xJNDd2ZhwLnoQdeXeGADbkpy +rqXRfboQnoZsG4q5WTP468SQvvG5 +-----END CERTIFICATE----- + +# Issuer: CN=Amazon Root CA 2 O=Amazon +# Subject: CN=Amazon Root CA 2 O=Amazon +# Label: "Amazon Root CA 2" +# Serial: 143266982885963551818349160658925006970653239 +# MD5 Fingerprint: c8:e5:8d:ce:a8:42:e2:7a:c0:2a:5c:7c:9e:26:bf:66 +# SHA1 Fingerprint: 5a:8c:ef:45:d7:a6:98:59:76:7a:8c:8b:44:96:b5:78:cf:47:4b:1a +# SHA256 Fingerprint: 1b:a5:b2:aa:8c:65:40:1a:82:96:01:18:f8:0b:ec:4f:62:30:4d:83:ce:c4:71:3a:19:c3:9c:01:1e:a4:6d:b4 +-----BEGIN CERTIFICATE----- +MIIFQTCCAymgAwIBAgITBmyf0pY1hp8KD+WGePhbJruKNzANBgkqhkiG9w0BAQwF +ADA5MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6 +b24gUm9vdCBDQSAyMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTEL +MAkGA1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJv +b3QgQ0EgMjCCAiIwDQYJKoZIhvcNAQEBBQADggIPADCCAgoCggIBAK2Wny2cSkxK +gXlRmeyKy2tgURO8TW0G/LAIjd0ZEGrHJgw12MBvIITplLGbhQPDW9tK6Mj4kHbZ +W0/jTOgGNk3Mmqw9DJArktQGGWCsN0R5hYGCrVo34A3MnaZMUnbqQ523BNFQ9lXg +1dKmSYXpN+nKfq5clU1Imj+uIFptiJXZNLhSGkOQsL9sBbm2eLfq0OQ6PBJTYv9K +8nu+NQWpEjTj82R0Yiw9AElaKP4yRLuH3WUnAnE72kr3H9rN9yFVkE8P7K6C4Z9r +2UXTu/Bfh+08LDmG2j/e7HJV63mjrdvdfLC6HM783k81ds8P+HgfajZRRidhW+me +z/CiVX18JYpvL7TFz4QuK/0NURBs+18bvBt+xa47mAExkv8LV/SasrlX6avvDXbR +8O70zoan4G7ptGmh32n2M8ZpLpcTnqWHsFcQgTfJU7O7f/aS0ZzQGPSSbtqDT6Zj +mUyl+17vIWR6IF9sZIUVyzfpYgwLKhbcAS4y2j5L9Z469hdAlO+ekQiG+r5jqFoz +7Mt0Q5X5bGlSNscpb/xVA1wf+5+9R+vnSUeVC06JIglJ4PVhHvG/LopyboBZ/1c6 ++XUyo05f7O0oYtlNc/LMgRdg7c3r3NunysV+Ar3yVAhU/bQtCSwXVEqY0VThUWcI +0u1ufm8/0i2BWSlmy5A5lREedCf+3euvAgMBAAGjQjBAMA8GA1UdEwEB/wQFMAMB +Af8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSwDPBMMPQFWAJI/TPlUq9LhONm +UjANBgkqhkiG9w0BAQwFAAOCAgEAqqiAjw54o+Ci1M3m9Zh6O+oAA7CXDpO8Wqj2 +LIxyh6mx/H9z/WNxeKWHWc8w4Q0QshNabYL1auaAn6AFC2jkR2vHat+2/XcycuUY ++gn0oJMsXdKMdYV2ZZAMA3m3MSNjrXiDCYZohMr/+c8mmpJ5581LxedhpxfL86kS +k5Nrp+gvU5LEYFiwzAJRGFuFjWJZY7attN6a+yb3ACfAXVU3dJnJUH/jWS5E4ywl +7uxMMne0nxrpS10gxdr9HIcWxkPo1LsmmkVwXqkLN1PiRnsn/eBG8om3zEK2yygm +btmlyTrIQRNg91CMFa6ybRoVGld45pIq2WWQgj9sAq+uEjonljYE1x2igGOpm/Hl +urR8FLBOybEfdF849lHqm/osohHUqS0nGkWxr7JOcQ3AWEbWaQbLU8uz/mtBzUF+ +fUwPfHJ5elnNXkoOrJupmHN5fLT0zLm4BwyydFy4x2+IoZCn9Kr5v2c69BoVYh63 +n749sSmvZ6ES8lgQGVMDMBu4Gon2nL2XA46jCfMdiyHxtN/kHNGfZQIG6lzWE7OE +76KlXIx3KadowGuuQNKotOrN8I1LOJwZmhsoVLiJkO/KdYE+HvJkJMcYr07/R54H +9jVlpNMKVv/1F2Rs76giJUmTtt8AF9pYfl3uxRuw0dFfIRDH+fO6AgonB8Xx1sfT +4PsJYGw= +-----END CERTIFICATE----- + +# Issuer: CN=Amazon Root CA 3 O=Amazon +# Subject: CN=Amazon Root CA 3 O=Amazon +# Label: "Amazon Root CA 3" +# Serial: 143266986699090766294700635381230934788665930 +# MD5 Fingerprint: a0:d4:ef:0b:f7:b5:d8:49:95:2a:ec:f5:c4:fc:81:87 +# SHA1 Fingerprint: 0d:44:dd:8c:3c:8c:1a:1a:58:75:64:81:e9:0f:2e:2a:ff:b3:d2:6e +# SHA256 Fingerprint: 18:ce:6c:fe:7b:f1:4e:60:b2:e3:47:b8:df:e8:68:cb:31:d0:2e:bb:3a:da:27:15:69:f5:03:43:b4:6d:b3:a4 +-----BEGIN CERTIFICATE----- +MIIBtjCCAVugAwIBAgITBmyf1XSXNmY/Owua2eiedgPySjAKBggqhkjOPQQDAjA5 +MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g +Um9vdCBDQSAzMB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG +A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg +Q0EgMzBZMBMGByqGSM49AgEGCCqGSM49AwEHA0IABCmXp8ZBf8ANm+gBG1bG8lKl +ui2yEujSLtf6ycXYqm0fc4E7O5hrOXwzpcVOho6AF2hiRVd9RFgdszflZwjrZt6j +QjBAMA8GA1UdEwEB/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMB0GA1UdDgQWBBSr +ttvXBp43rDCGB5Fwx5zEGbF4wDAKBggqhkjOPQQDAgNJADBGAiEA4IWSoxe3jfkr +BqWTrBqYaGFy+uGh0PsceGCmQ5nFuMQCIQCcAu/xlJyzlvnrxir4tiz+OpAUFteM +YyRIHN8wfdVoOw== +-----END CERTIFICATE----- + +# Issuer: CN=Amazon Root CA 4 O=Amazon +# Subject: CN=Amazon Root CA 4 O=Amazon +# Label: "Amazon Root CA 4" +# Serial: 143266989758080763974105200630763877849284878 +# MD5 Fingerprint: 89:bc:27:d5:eb:17:8d:06:6a:69:d5:fd:89:47:b4:cd +# SHA1 Fingerprint: f6:10:84:07:d6:f8:bb:67:98:0c:c2:e2:44:c2:eb:ae:1c:ef:63:be +# SHA256 Fingerprint: e3:5d:28:41:9e:d0:20:25:cf:a6:90:38:cd:62:39:62:45:8d:a5:c6:95:fb:de:a3:c2:2b:0b:fb:25:89:70:92 +-----BEGIN CERTIFICATE----- +MIIB8jCCAXigAwIBAgITBmyf18G7EEwpQ+Vxe3ssyBrBDjAKBggqhkjOPQQDAzA5 +MQswCQYDVQQGEwJVUzEPMA0GA1UEChMGQW1hem9uMRkwFwYDVQQDExBBbWF6b24g +Um9vdCBDQSA0MB4XDTE1MDUyNjAwMDAwMFoXDTQwMDUyNjAwMDAwMFowOTELMAkG +A1UEBhMCVVMxDzANBgNVBAoTBkFtYXpvbjEZMBcGA1UEAxMQQW1hem9uIFJvb3Qg +Q0EgNDB2MBAGByqGSM49AgEGBSuBBAAiA2IABNKrijdPo1MN/sGKe0uoe0ZLY7Bi +9i0b2whxIdIA6GO9mif78DluXeo9pcmBqqNbIJhFXRbb/egQbeOc4OO9X4Ri83Bk +M6DLJC9wuoihKqB1+IGuYgbEgds5bimwHvouXKNCMEAwDwYDVR0TAQH/BAUwAwEB +/zAOBgNVHQ8BAf8EBAMCAYYwHQYDVR0OBBYEFNPsxzplbszh2naaVvuc84ZtV+WB +MAoGCCqGSM49BAMDA2gAMGUCMDqLIfG9fhGt0O9Yli/W651+kI0rz2ZVwyzjKKlw +CkcO8DdZEv8tmZQoTipPNU0zWgIxAOp1AE47xDqUEpHJWEadIRNyp4iciuRMStuW +1KyLa2tJElMzrdfkviT8tQp21KW8EA== +-----END CERTIFICATE----- + +# Issuer: CN=LuxTrust Global Root 2 O=LuxTrust S.A. +# Subject: CN=LuxTrust Global Root 2 O=LuxTrust S.A. +# Label: "LuxTrust Global Root 2" +# Serial: 59914338225734147123941058376788110305822489521 +# MD5 Fingerprint: b2:e1:09:00:61:af:f7:f1:91:6f:c4:ad:8d:5e:3b:7c +# SHA1 Fingerprint: 1e:0e:56:19:0a:d1:8b:25:98:b2:04:44:ff:66:8a:04:17:99:5f:3f +# SHA256 Fingerprint: 54:45:5f:71:29:c2:0b:14:47:c4:18:f9:97:16:8f:24:c5:8f:c5:02:3b:f5:da:5b:e2:eb:6e:1d:d8:90:2e:d5 +-----BEGIN CERTIFICATE----- +MIIFwzCCA6ugAwIBAgIUCn6m30tEntpqJIWe5rgV0xZ/u7EwDQYJKoZIhvcNAQEL +BQAwRjELMAkGA1UEBhMCTFUxFjAUBgNVBAoMDUx1eFRydXN0IFMuQS4xHzAdBgNV +BAMMFkx1eFRydXN0IEdsb2JhbCBSb290IDIwHhcNMTUwMzA1MTMyMTU3WhcNMzUw +MzA1MTMyMTU3WjBGMQswCQYDVQQGEwJMVTEWMBQGA1UECgwNTHV4VHJ1c3QgUy5B +LjEfMB0GA1UEAwwWTHV4VHJ1c3QgR2xvYmFsIFJvb3QgMjCCAiIwDQYJKoZIhvcN +AQEBBQADggIPADCCAgoCggIBANeFl78RmOnwYoNMPIf5U2o3C/IPPIfOb9wmKb3F +ibrJgz337spbxm1Jc7TJRqMbNBM/wYlFV/TZsfs2ZUv7COJIcRHIbjuend+JZTem +hfY7RBi2xjcwYkSSl2l9QjAk5A0MiWtj3sXh306pFGxT4GHO9hcvHTy95iJMHZP1 +EMShduxq3sVs35a0VkBCwGKSMKEtFZSg0iAGCW5qbeXrt77U8PEVfIvmTroTzEsn +Xpk8F12PgX8zPU/TPxvsXD/wPEx1bvKm1Z3aLQdjAsZy6ZS8TEmVT4hSyNvoaYL4 +zDRbIvCGp4m9SAptZoFtyMhk+wHh9OHe2Z7d21vUKpkmFRseTJIpgp7VkoGSQXAZ +96Tlk0u8d2cx3Rz9MXANF5kM+Qw5GSoXtTBxVdUPrljhPS80m8+f9niFwpN6cj5m +j5wWEWCPnolvZ77gR1o7DJpni89Gxq44o/KnvObWhWszJHAiS8sIm7vI+AIpHb4g +DEa/a4ebsypmQjVGbKq6rfmYe+lQVRQxv7HaLe2ArWgk+2mr2HETMOZns4dA/Yl+ +8kPREd8vZS9kzl8UubG/Mb2HeFpZZYiq/FkySIbWTLkpS5XTdvN3JW1CHDiDTf2j +X5t/Lax5Gw5CMZdjpPuKadUiDTSQMC6otOBttpSsvItO13D8xTiOZCXhTTmQzsmH +hFhxAgMBAAGjgagwgaUwDwYDVR0TAQH/BAUwAwEB/zBCBgNVHSAEOzA5MDcGByuB +KwEBAQowLDAqBggrBgEFBQcCARYeaHR0cHM6Ly9yZXBvc2l0b3J5Lmx1eHRydXN0 +Lmx1MA4GA1UdDwEB/wQEAwIBBjAfBgNVHSMEGDAWgBT/GCh2+UgFLKGu8SsbK7JT ++Et8szAdBgNVHQ4EFgQU/xgodvlIBSyhrvErGyuyU/hLfLMwDQYJKoZIhvcNAQEL +BQADggIBAGoZFO1uecEsh9QNcH7X9njJCwROxLHOk3D+sFTAMs2ZMGQXvw/l4jP9 +BzZAcg4atmpZ1gDlaCDdLnINH2pkMSCEfUmmWjfrRcmF9dTHF5kH5ptV5AzoqbTO +jFu1EVzPig4N1qx3gf4ynCSecs5U89BvolbW7MM3LGVYvlcAGvI1+ut7MV3CwRI9 +loGIlonBWVx65n9wNOeD4rHh4bhY79SV5GCc8JaXcozrhAIuZY+kt9J/Z93I055c +qqmkoCUUBpvsT34tC38ddfEz2O3OuHVtPlu5mB0xDVbYQw8wkbIEa91WvpWAVWe+ +2M2D2RjuLg+GLZKecBPs3lHJQ3gCpU3I+V/EkVhGFndadKpAvAefMLmx9xIX3eP/ +JEAdemrRTxgKqpAd60Ae36EeRJIQmvKN4dFLRp7oRUKX6kWZ8+xm1QL68qZKJKre +zrnK+T+Tb/mjuuqlPpmt/f97mfVl7vBZKGfXkJWkE4SphMHozs51k2MavDzq1WQf +LSoSOcbDWjLtR5EWDrw4wVDej8oqkDQc7kGUnF4ZLvhFSZl0kbAEb+MEWrGrKqv+ +x9CWttrhSmQGbmBNvUJO/3jaJMobtNeWOWyu8Q6qp31IiyBMz2TWuJdGsE7RKlY6 +oJO9r4Ak4Ap+58rVyuiFVdw2KuGUaJPHZnJED4AhMmwlxyOAgwrr +-----END CERTIFICATE----- + +# Issuer: CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK OU=Kamu Sertifikasyon Merkezi - Kamu SM +# Subject: CN=TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1 O=Turkiye Bilimsel ve Teknolojik Arastirma Kurumu - TUBITAK OU=Kamu Sertifikasyon Merkezi - Kamu SM +# Label: "TUBITAK Kamu SM SSL Kok Sertifikasi - Surum 1" +# Serial: 1 +# MD5 Fingerprint: dc:00:81:dc:69:2f:3e:2f:b0:3b:f6:3d:5a:91:8e:49 +# SHA1 Fingerprint: 31:43:64:9b:ec:ce:27:ec:ed:3a:3f:0b:8f:0d:e4:e8:91:dd:ee:ca +# SHA256 Fingerprint: 46:ed:c3:68:90:46:d5:3a:45:3f:b3:10:4a:b8:0d:ca:ec:65:8b:26:60:ea:16:29:dd:7e:86:79:90:64:87:16 +-----BEGIN CERTIFICATE----- +MIIEYzCCA0ugAwIBAgIBATANBgkqhkiG9w0BAQsFADCB0jELMAkGA1UEBhMCVFIx +GDAWBgNVBAcTD0dlYnplIC0gS29jYWVsaTFCMEAGA1UEChM5VHVya2l5ZSBCaWxp +bXNlbCB2ZSBUZWtub2xvamlrIEFyYXN0aXJtYSBLdXJ1bXUgLSBUVUJJVEFLMS0w +KwYDVQQLEyRLYW11IFNlcnRpZmlrYXN5b24gTWVya2V6aSAtIEthbXUgU00xNjA0 +BgNVBAMTLVRVQklUQUsgS2FtdSBTTSBTU0wgS29rIFNlcnRpZmlrYXNpIC0gU3Vy +dW0gMTAeFw0xMzExMjUwODI1NTVaFw00MzEwMjUwODI1NTVaMIHSMQswCQYDVQQG +EwJUUjEYMBYGA1UEBxMPR2ViemUgLSBLb2NhZWxpMUIwQAYDVQQKEzlUdXJraXll +IEJpbGltc2VsIHZlIFRla25vbG9qaWsgQXJhc3Rpcm1hIEt1cnVtdSAtIFRVQklU +QUsxLTArBgNVBAsTJEthbXUgU2VydGlmaWthc3lvbiBNZXJrZXppIC0gS2FtdSBT +TTE2MDQGA1UEAxMtVFVCSVRBSyBLYW11IFNNIFNTTCBLb2sgU2VydGlmaWthc2kg +LSBTdXJ1bSAxMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAr3UwM6q7 +a9OZLBI3hNmNe5eA027n/5tQlT6QlVZC1xl8JoSNkvoBHToP4mQ4t4y86Ij5iySr +LqP1N+RAjhgleYN1Hzv/bKjFxlb4tO2KRKOrbEz8HdDc72i9z+SqzvBV96I01INr +N3wcwv61A+xXzry0tcXtAA9TNypN9E8Mg/uGz8v+jE69h/mniyFXnHrfA2eJLJ2X +YacQuFWQfw4tJzh03+f92k4S400VIgLI4OD8D62K18lUUMw7D8oWgITQUVbDjlZ/ +iSIzL+aFCr2lqBs23tPcLG07xxO9WSMs5uWk99gL7eqQQESolbuT1dCANLZGeA4f +AJNG4e7p+exPFwIDAQABo0IwQDAdBgNVHQ4EFgQUZT/HiobGPN08VFw1+DrtUgxH +V8gwDgYDVR0PAQH/BAQDAgEGMA8GA1UdEwEB/wQFMAMBAf8wDQYJKoZIhvcNAQEL +BQADggEBACo/4fEyjq7hmFxLXs9rHmoJ0iKpEsdeV31zVmSAhHqT5Am5EM2fKifh +AHe+SMg1qIGf5LgsyX8OsNJLN13qudULXjS99HMpw+0mFZx+CFOKWI3QSyjfwbPf +IPP54+M638yclNhOT8NrF7f3cuitZjO1JVOr4PhMqZ398g26rrnZqsZr+ZO7rqu4 +lzwDGrpDxpa5RXI4s6ehlj2Re37AIVNMh+3yC1SVUZPVIqUNivGTDj5UDrDYyU7c +8jEyVupk+eq1nRZmQnLzf9OxMUP8pI4X8W0jq5Rm+K37DwhuJi1/FwcJsoz7UMCf +lo3Ptv0AnVoUmr8CRPXBwp8iXqIPoeM= +-----END CERTIFICATE----- + +# Issuer: CN=GDCA TrustAUTH R5 ROOT O=GUANG DONG CERTIFICATE AUTHORITY CO.,LTD. +# Subject: CN=GDCA TrustAUTH R5 ROOT O=GUANG DONG CERTIFICATE AUTHORITY CO.,LTD. +# Label: "GDCA TrustAUTH R5 ROOT" +# Serial: 9009899650740120186 +# MD5 Fingerprint: 63:cc:d9:3d:34:35:5c:6f:53:a3:e2:08:70:48:1f:b4 +# SHA1 Fingerprint: 0f:36:38:5b:81:1a:25:c3:9b:31:4e:83:ca:e9:34:66:70:cc:74:b4 +# SHA256 Fingerprint: bf:ff:8f:d0:44:33:48:7d:6a:8a:a6:0c:1a:29:76:7a:9f:c2:bb:b0:5e:42:0f:71:3a:13:b9:92:89:1d:38:93 +-----BEGIN CERTIFICATE----- +MIIFiDCCA3CgAwIBAgIIfQmX/vBH6nowDQYJKoZIhvcNAQELBQAwYjELMAkGA1UE +BhMCQ04xMjAwBgNVBAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZ +IENPLixMVEQuMR8wHQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMB4XDTE0 +MTEyNjA1MTMxNVoXDTQwMTIzMTE1NTk1OVowYjELMAkGA1UEBhMCQ04xMjAwBgNV +BAoMKUdVQU5HIERPTkcgQ0VSVElGSUNBVEUgQVVUSE9SSVRZIENPLixMVEQuMR8w +HQYDVQQDDBZHRENBIFRydXN0QVVUSCBSNSBST09UMIICIjANBgkqhkiG9w0BAQEF +AAOCAg8AMIICCgKCAgEA2aMW8Mh0dHeb7zMNOwZ+Vfy1YI92hhJCfVZmPoiC7XJj +Dp6L3TQsAlFRwxn9WVSEyfFrs0yw6ehGXTjGoqcuEVe6ghWinI9tsJlKCvLriXBj +TnnEt1u9ol2x8kECK62pOqPseQrsXzrj/e+APK00mxqriCZ7VqKChh/rNYmDf1+u +KU49tm7srsHwJ5uu4/Ts765/94Y9cnrrpftZTqfrlYwiOXnhLQiPzLyRuEH3FMEj +qcOtmkVEs7LXLM3GKeJQEK5cy4KOFxg2fZfmiJqwTTQJ9Cy5WmYqsBebnh52nUpm +MUHfP/vFBu8btn4aRjb3ZGM74zkYI+dndRTVdVeSN72+ahsmUPI2JgaQxXABZG12 +ZuGR224HwGGALrIuL4xwp9E7PLOR5G62xDtw8mySlwnNR30YwPO7ng/Wi64HtloP +zgsMR6flPri9fcebNaBhlzpBdRfMK5Z3KpIhHtmVdiBnaM8Nvd/WHwlqmuLMc3Gk +L30SgLdTMEZeS1SZD2fJpcjyIMGC7J0R38IC+xo70e0gmu9lZJIQDSri3nDxGGeC +jGHeuLzRL5z7D9Ar7Rt2ueQ5Vfj4oR24qoAATILnsn8JuLwwoC8N9VKejveSswoA +HQBUlwbgsQfZxw9cZX08bVlX5O2ljelAU58VS6Bx9hoh49pwBiFYFIeFd3mqgnkC +AwEAAaNCMEAwHQYDVR0OBBYEFOLJQJ9NzuiaoXzPDj9lxSmIahlRMA8GA1UdEwEB +/wQFMAMBAf8wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQDRSVfg +p8xoWLoBDysZzY2wYUWsEe1jUGn4H3++Fo/9nesLqjJHdtJnJO29fDMylyrHBYZm +DRd9FBUb1Ov9H5r2XpdptxolpAqzkT9fNqyL7FeoPueBihhXOYV0GkLH6VsTX4/5 +COmSdI31R9KrO9b7eGZONn356ZLpBN79SWP8bfsUcZNnL0dKt7n/HipzcEYwv1ry +L3ml4Y0M2fmyYzeMN2WFcGpcWwlyua1jPLHd+PwyvzeG5LuOmCd+uh8W4XAR8gPf +JWIyJyYYMoSf/wA6E7qaTfRPuBRwIrHKK5DOKcFw9C+df/KQHtZa37dG/OaG+svg +IHZ6uqbL9XzeYqWxi+7egmaKTjowHz+Ay60nugxe19CxVsp3cbK1daFQqUBDF8Io +2c9Si1vIY9RCPqAzekYu9wogRlR+ak8x8YF+QnQ4ZXMn7sZ8uI7XpTrXmKGcjBBV +09tL7ECQ8s1uV9JiDnxXk7Gnbc2dg7sq5+W2O3FYrf3RRbxake5TFW/TRQl1brqQ +XR4EzzffHqhmsYzmIGrv/EhOdJhCrylvLmrH+33RZjEizIYAfmaDDEL0vTSSwxrq +T8p+ck0LcIymSLumoRT2+1hEmRSuqguTaaApJUqlyyvdimYHFngVV3Eb7PVHhPOe +MTd61X8kreS8/f3MboPoDKi3QWwH3b08hpcv0g== +-----END CERTIFICATE----- + +# Issuer: CN=TrustCor RootCert CA-1 O=TrustCor Systems S. de R.L. OU=TrustCor Certificate Authority +# Subject: CN=TrustCor RootCert CA-1 O=TrustCor Systems S. de R.L. OU=TrustCor Certificate Authority +# Label: "TrustCor RootCert CA-1" +# Serial: 15752444095811006489 +# MD5 Fingerprint: 6e:85:f1:dc:1a:00:d3:22:d5:b2:b2:ac:6b:37:05:45 +# SHA1 Fingerprint: ff:bd:cd:e7:82:c8:43:5e:3c:6f:26:86:5c:ca:a8:3a:45:5b:c3:0a +# SHA256 Fingerprint: d4:0e:9c:86:cd:8f:e4:68:c1:77:69:59:f4:9e:a7:74:fa:54:86:84:b6:c4:06:f3:90:92:61:f4:dc:e2:57:5c +-----BEGIN CERTIFICATE----- +MIIEMDCCAxigAwIBAgIJANqb7HHzA7AZMA0GCSqGSIb3DQEBCwUAMIGkMQswCQYD +VQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEk +MCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U +cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRydXN0Q29y +IFJvb3RDZXJ0IENBLTEwHhcNMTYwMjA0MTIzMjE2WhcNMjkxMjMxMTcyMzE2WjCB +pDELMAkGA1UEBhMCUEExDzANBgNVBAgMBlBhbmFtYTEUMBIGA1UEBwwLUGFuYW1h +IENpdHkxJDAiBgNVBAoMG1RydXN0Q29yIFN5c3RlbXMgUy4gZGUgUi5MLjEnMCUG +A1UECwweVHJ1c3RDb3IgQ2VydGlmaWNhdGUgQXV0aG9yaXR5MR8wHQYDVQQDDBZU +cnVzdENvciBSb290Q2VydCBDQS0xMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIB +CgKCAQEAv463leLCJhJrMxnHQFgKq1mqjQCj/IDHUHuO1CAmujIS2CNUSSUQIpid +RtLByZ5OGy4sDjjzGiVoHKZaBeYei0i/mJZ0PmnK6bV4pQa81QBeCQryJ3pS/C3V +seq0iWEk8xoT26nPUu0MJLq5nux+AHT6k61sKZKuUbS701e/s/OojZz0JEsq1pme +9J7+wH5COucLlVPat2gOkEz7cD+PSiyU8ybdY2mplNgQTsVHCJCZGxdNuWxu72CV +EY4hgLW9oHPY0LJ3xEXqWib7ZnZ2+AYfYW0PVcWDtxBWcgYHpfOxGgMFZA6dWorW +hnAbJN7+KIor0Gqw/Hqi3LJ5DotlDwIDAQABo2MwYTAdBgNVHQ4EFgQU7mtJPHo/ +DeOxCbeKyKsZn3MzUOcwHwYDVR0jBBgwFoAU7mtJPHo/DeOxCbeKyKsZn3MzUOcw +DwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYwDQYJKoZIhvcNAQELBQAD +ggEBACUY1JGPE+6PHh0RU9otRCkZoB5rMZ5NDp6tPVxBb5UrJKF5mDo4Nvu7Zp5I +/5CQ7z3UuJu0h3U/IJvOcs+hVcFNZKIZBqEHMwwLKeXx6quj7LUKdJDHfXLy11yf +ke+Ri7fc7Waiz45mO7yfOgLgJ90WmMCV1Aqk5IGadZQ1nJBfiDcGrVmVCrDRZ9MZ +yonnMlo2HD6CqFqTvsbQZJG2z9m2GM/bftJlo6bEjhcxwft+dtvTheNYsnd6djts +L1Ac59v2Z3kf9YKVmgenFK+P3CghZwnS1k1aHBkcjndcw5QkPTJrS37UeJSDvjdN +zl/HHk484IkzlQsPpTLWPFp5LBk= +-----END CERTIFICATE----- + +# Issuer: CN=TrustCor RootCert CA-2 O=TrustCor Systems S. de R.L. OU=TrustCor Certificate Authority +# Subject: CN=TrustCor RootCert CA-2 O=TrustCor Systems S. de R.L. OU=TrustCor Certificate Authority +# Label: "TrustCor RootCert CA-2" +# Serial: 2711694510199101698 +# MD5 Fingerprint: a2:e1:f8:18:0b:ba:45:d5:c7:41:2a:bb:37:52:45:64 +# SHA1 Fingerprint: b8:be:6d:cb:56:f1:55:b9:63:d4:12:ca:4e:06:34:c7:94:b2:1c:c0 +# SHA256 Fingerprint: 07:53:e9:40:37:8c:1b:d5:e3:83:6e:39:5d:ae:a5:cb:83:9e:50:46:f1:bd:0e:ae:19:51:cf:10:fe:c7:c9:65 +-----BEGIN CERTIFICATE----- +MIIGLzCCBBegAwIBAgIIJaHfyjPLWQIwDQYJKoZIhvcNAQELBQAwgaQxCzAJBgNV +BAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQw +IgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRy +dXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0eTEfMB0GA1UEAwwWVHJ1c3RDb3Ig +Um9vdENlcnQgQ0EtMjAeFw0xNjAyMDQxMjMyMjNaFw0zNDEyMzExNzI2MzlaMIGk +MQswCQYDVQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEg +Q2l0eTEkMCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYD +VQQLDB5UcnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxHzAdBgNVBAMMFlRy +dXN0Q29yIFJvb3RDZXJ0IENBLTIwggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIK +AoICAQCnIG7CKqJiJJWQdsg4foDSq8GbZQWU9MEKENUCrO2fk8eHyLAnK0IMPQo+ +QVqedd2NyuCb7GgypGmSaIwLgQ5WoD4a3SwlFIIvl9NkRvRUqdw6VC0xK5mC8tkq +1+9xALgxpL56JAfDQiDyitSSBBtlVkxs1Pu2YVpHI7TYabS3OtB0PAx1oYxOdqHp +2yqlO/rOsP9+aij9JxzIsekp8VduZLTQwRVtDr4uDkbIXvRR/u8OYzo7cbrPb1nK +DOObXUm4TOJXsZiKQlecdu/vvdFoqNL0Cbt3Nb4lggjEFixEIFapRBF37120Hape +az6LMvYHL1cEksr1/p3C6eizjkxLAjHZ5DxIgif3GIJ2SDpxsROhOdUuxTTCHWKF +3wP+TfSvPd9cW436cOGlfifHhi5qjxLGhF5DUVCcGZt45vz27Ud+ez1m7xMTiF88 +oWP7+ayHNZ/zgp6kPwqcMWmLmaSISo5uZk3vFsQPeSghYA2FFn3XVDjxklb9tTNM +g9zXEJ9L/cb4Qr26fHMC4P99zVvh1Kxhe1fVSntb1IVYJ12/+CtgrKAmrhQhJ8Z3 +mjOAPF5GP/fDsaOGM8boXg25NSyqRsGFAnWAoOsk+xWq5Gd/bnc/9ASKL3x74xdh +8N0JqSDIvgmk0H5Ew7IwSjiqqewYmgeCK9u4nBit2uBGF6zPXQIDAQABo2MwYTAd +BgNVHQ4EFgQU2f4hQG6UnrybPZx9mCAZ5YwwYrIwHwYDVR0jBBgwFoAU2f4hQG6U +nrybPZx9mCAZ5YwwYrIwDwYDVR0TAQH/BAUwAwEB/zAOBgNVHQ8BAf8EBAMCAYYw +DQYJKoZIhvcNAQELBQADggIBAJ5Fngw7tu/hOsh80QA9z+LqBrWyOrsGS2h60COX +dKcs8AjYeVrXWoSK2BKaG9l9XE1wxaX5q+WjiYndAfrs3fnpkpfbsEZC89NiqpX+ +MWcUaViQCqoL7jcjx1BRtPV+nuN79+TMQjItSQzL/0kMmx40/W5ulop5A7Zv2wnL +/V9lFDfhOPXzYRZY5LVtDQsEGz9QLX+zx3oaFoBg+Iof6Rsqxvm6ARppv9JYx1RX +CI/hOWB3S6xZhBqI8d3LT3jX5+EzLfzuQfogsL7L9ziUwOHQhQ+77Sxzq+3+knYa +ZH9bDTMJBzN7Bj8RpFxwPIXAz+OQqIN3+tvmxYxoZxBnpVIt8MSZj3+/0WvitUfW +2dCFmU2Umw9Lje4AWkcdEQOsQRivh7dvDDqPys/cA8GiCcjl/YBeyGBCARsaU1q7 +N6a3vLqE6R5sGtRk2tRD/pOLS/IseRYQ1JMLiI+h2IYURpFHmygk71dSTlxCnKr3 +Sewn6EAes6aJInKc9Q0ztFijMDvd1GpUk74aTfOTlPf8hAs/hCBcNANExdqtvArB +As8e5ZTZ845b2EzwnexhF7sUMlQMAimTHpKG9n/v55IFDlndmQguLvqcAFLTxWYp +5KeXRKQOKIETNcX2b2TmQcTVL8w0RSXPQQCWPUouwpaYT05KnJe32x+SMsj/D1Fu +1uwJ +-----END CERTIFICATE----- + +# Issuer: CN=TrustCor ECA-1 O=TrustCor Systems S. de R.L. OU=TrustCor Certificate Authority +# Subject: CN=TrustCor ECA-1 O=TrustCor Systems S. de R.L. OU=TrustCor Certificate Authority +# Label: "TrustCor ECA-1" +# Serial: 9548242946988625984 +# MD5 Fingerprint: 27:92:23:1d:0a:f5:40:7c:e9:e6:6b:9d:d8:f5:e7:6c +# SHA1 Fingerprint: 58:d1:df:95:95:67:6b:63:c0:f0:5b:1c:17:4d:8b:84:0b:c8:78:bd +# SHA256 Fingerprint: 5a:88:5d:b1:9c:01:d9:12:c5:75:93:88:93:8c:af:bb:df:03:1a:b2:d4:8e:91:ee:15:58:9b:42:97:1d:03:9c +-----BEGIN CERTIFICATE----- +MIIEIDCCAwigAwIBAgIJAISCLF8cYtBAMA0GCSqGSIb3DQEBCwUAMIGcMQswCQYD +VQQGEwJQQTEPMA0GA1UECAwGUGFuYW1hMRQwEgYDVQQHDAtQYW5hbWEgQ2l0eTEk +MCIGA1UECgwbVHJ1c3RDb3IgU3lzdGVtcyBTLiBkZSBSLkwuMScwJQYDVQQLDB5U +cnVzdENvciBDZXJ0aWZpY2F0ZSBBdXRob3JpdHkxFzAVBgNVBAMMDlRydXN0Q29y +IEVDQS0xMB4XDTE2MDIwNDEyMzIzM1oXDTI5MTIzMTE3MjgwN1owgZwxCzAJBgNV +BAYTAlBBMQ8wDQYDVQQIDAZQYW5hbWExFDASBgNVBAcMC1BhbmFtYSBDaXR5MSQw +IgYDVQQKDBtUcnVzdENvciBTeXN0ZW1zIFMuIGRlIFIuTC4xJzAlBgNVBAsMHlRy +dXN0Q29yIENlcnRpZmljYXRlIEF1dGhvcml0eTEXMBUGA1UEAwwOVHJ1c3RDb3Ig +RUNBLTEwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQDPj+ARtZ+odnbb +3w9U73NjKYKtR8aja+3+XzP4Q1HpGjORMRegdMTUpwHmspI+ap3tDvl0mEDTPwOA +BoJA6LHip1GnHYMma6ve+heRK9jGrB6xnhkB1Zem6g23xFUfJ3zSCNV2HykVh0A5 +3ThFEXXQmqc04L/NyFIduUd+Dbi7xgz2c1cWWn5DkR9VOsZtRASqnKmcp0yJF4Ou +owReUoCLHhIlERnXDH19MURB6tuvsBzvgdAsxZohmz3tQjtQJvLsznFhBmIhVE5/ +wZ0+fyCMgMsq2JdiyIMzkX2woloPV+g7zPIlstR8L+xNxqE6FXrntl019fZISjZF +ZtS6mFjBAgMBAAGjYzBhMB0GA1UdDgQWBBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAf +BgNVHSMEGDAWgBREnkj1zG1I1KBLf/5ZJC+Dl5mahjAPBgNVHRMBAf8EBTADAQH/ +MA4GA1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAQEABT41XBVwm8nHc2Fv +civUwo/yQ10CzsSUuZQRg2dd4mdsdXa/uwyqNsatR5Nj3B5+1t4u/ukZMjgDfxT2 +AHMsWbEhBuH7rBiVDKP/mZb3Kyeb1STMHd3BOuCYRLDE5D53sXOpZCz2HAF8P11F +hcCF5yWPldwX8zyfGm6wyuMdKulMY/okYWLW2n62HGz1Ah3UKt1VkOsqEUc8Ll50 +soIipX1TH0XsJ5F95yIW6MBoNtjG8U+ARDL54dHRHareqKucBK+tIA5kmE2la8BI +WJZpTdwHjFGTot+fDz2LYLSCjaoITmJF4PkL0uDgPFveXHEnJcLmA4GLEFPjx1Wi +tJ/X5g== +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com Root Certification Authority RSA O=SSL Corporation +# Subject: CN=SSL.com Root Certification Authority RSA O=SSL Corporation +# Label: "SSL.com Root Certification Authority RSA" +# Serial: 8875640296558310041 +# MD5 Fingerprint: 86:69:12:c0:70:f1:ec:ac:ac:c2:d5:bc:a5:5b:a1:29 +# SHA1 Fingerprint: b7:ab:33:08:d1:ea:44:77:ba:14:80:12:5a:6f:bd:a9:36:49:0c:bb +# SHA256 Fingerprint: 85:66:6a:56:2e:e0:be:5c:e9:25:c1:d8:89:0a:6f:76:a8:7e:c1:6d:4d:7d:5f:29:ea:74:19:cf:20:12:3b:69 +-----BEGIN CERTIFICATE----- +MIIF3TCCA8WgAwIBAgIIeyyb0xaAMpkwDQYJKoZIhvcNAQELBQAwfDELMAkGA1UE +BhMCVVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQK +DA9TU0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eSBSU0EwHhcNMTYwMjEyMTczOTM5WhcNNDEwMjEyMTcz +OTM5WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv +dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNv +bSBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IFJTQTCCAiIwDQYJKoZIhvcN +AQEBBQADggIPADCCAgoCggIBAPkP3aMrfcvQKv7sZ4Wm5y4bunfh4/WvpOz6Sl2R +xFdHaxh3a3by/ZPkPQ/CFp4LZsNWlJ4Xg4XOVu/yFv0AYvUiCVToZRdOQbngT0aX +qhvIuG5iXmmxX9sqAn78bMrzQdjt0Oj8P2FI7bADFB0QDksZ4LtO7IZl/zbzXmcC +C52GVWH9ejjt/uIZALdvoVBidXQ8oPrIJZK0bnoix/geoeOy3ZExqysdBP+lSgQ3 +6YWkMyv94tZVNHwZpEpox7Ko07fKoZOI68GXvIz5HdkihCR0xwQ9aqkpk8zruFvh +/l8lqjRYyMEjVJ0bmBHDOJx+PYZspQ9AhnwC9FwCTyjLrnGfDzrIM/4RJTXq/LrF +YD3ZfBjVsqnTdXgDciLKOsMf7yzlLqn6niy2UUb9rwPW6mBo6oUWNmuF6R7As93E +JNyAKoFBbZQ+yODJgUEAnl6/f8UImKIYLEJAs/lvOCdLToD0PYFH4Ih86hzOtXVc +US4cK38acijnALXRdMbX5J+tB5O2UzU1/Dfkw/ZdFr4hc96SCvigY2q8lpJqPvi8 +ZVWb3vUNiSYE/CUapiVpy8JtynziWV+XrOvvLsi81xtZPCvM8hnIk2snYxnP/Okm ++Mpxm3+T/jRnhE6Z6/yzeAkzcLpmpnbtG3PrGqUNxCITIJRWCk4sbE6x/c+cCbqi +M+2HAgMBAAGjYzBhMB0GA1UdDgQWBBTdBAkHovV6fVJTEpKV7jiAJQ2mWTAPBgNV +HRMBAf8EBTADAQH/MB8GA1UdIwQYMBaAFN0ECQei9Xp9UlMSkpXuOIAlDaZZMA4G +A1UdDwEB/wQEAwIBhjANBgkqhkiG9w0BAQsFAAOCAgEAIBgRlCn7Jp0cHh5wYfGV +cpNxJK1ok1iOMq8bs3AD/CUrdIWQPXhq9LmLpZc7tRiRux6n+UBbkflVma8eEdBc +Hadm47GUBwwyOabqG7B52B2ccETjit3E+ZUfijhDPwGFpUenPUayvOUiaPd7nNgs +PgohyC0zrL/FgZkxdMF1ccW+sfAjRfSda/wZY52jvATGGAslu1OJD7OAUN5F7kR/ +q5R4ZJjT9ijdh9hwZXT7DrkT66cPYakylszeu+1jTBi7qUD3oFRuIIhxdRjqerQ0 +cuAjJ3dctpDqhiVAq+8zD8ufgr6iIPv2tS0a5sKFsXQP+8hlAqRSAUfdSSLBv9jr +a6x+3uxjMxW3IwiPxg+NQVrdjsW5j+VFP3jbutIbQLH+cU0/4IGiul607BXgk90I +H37hVZkLId6Tngr75qNJvTYw/ud3sqB1l7UtgYgXZSD32pAAn8lSzDLKNXz1PQ/Y +K9f1JmzJBjSWFupwWRoyeXkLtoh/D1JIPb9s2KJELtFOt3JY04kTlf5Eq/jXixtu +nLwsoFvVagCvXzfh1foQC5ichucmj87w7G6KVwuA406ywKBjYZC6VWg3dGq2ktuf +oYYitmUnDuy2n0Jg5GfCtdpBC8TTi2EbvPofkSvXRAdeuims2cXp71NIWuuA8ShY +Ic2wBlX7Jz9TkHCpBB5XJ7k= +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com Root Certification Authority ECC O=SSL Corporation +# Subject: CN=SSL.com Root Certification Authority ECC O=SSL Corporation +# Label: "SSL.com Root Certification Authority ECC" +# Serial: 8495723813297216424 +# MD5 Fingerprint: 2e:da:e4:39:7f:9c:8f:37:d1:70:9f:26:17:51:3a:8e +# SHA1 Fingerprint: c3:19:7c:39:24:e6:54:af:1b:c4:ab:20:95:7a:e2:c3:0e:13:02:6a +# SHA256 Fingerprint: 34:17:bb:06:cc:60:07:da:1b:96:1c:92:0b:8a:b4:ce:3f:ad:82:0e:4a:a3:0b:9a:cb:c4:a7:4e:bd:ce:bc:65 +-----BEGIN CERTIFICATE----- +MIICjTCCAhSgAwIBAgIIdebfy8FoW6gwCgYIKoZIzj0EAwIwfDELMAkGA1UEBhMC +VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T +U0wgQ29ycG9yYXRpb24xMTAvBgNVBAMMKFNTTC5jb20gUm9vdCBDZXJ0aWZpY2F0 +aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNDAzWhcNNDEwMjEyMTgxNDAz +WjB8MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hvdXN0 +b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjExMC8GA1UEAwwoU1NMLmNvbSBS +b290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49AgEGBSuB +BAAiA2IABEVuqVDEpiM2nl8ojRfLliJkP9x6jh3MCLOicSS6jkm5BBtHllirLZXI +7Z4INcgn64mMU1jrYor+8FsPazFSY0E7ic3s7LaNGdM0B9y7xgZ/wkWV7Mt/qCPg +CemB+vNH06NjMGEwHQYDVR0OBBYEFILRhXMw5zUE044CkvvlpNHEIejNMA8GA1Ud +EwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUgtGFczDnNQTTjgKS++Wk0cQh6M0wDgYD +VR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2cAMGQCMG/n61kRpGDPYbCWe+0F+S8T +kdzt5fxQaxFGRrMcIQBiu77D5+jNB5n5DQtdcj7EqgIwH7y6C+IwJPt8bYBVCpk+ +gA0z5Wajs6O7pdWLjwkspl1+4vAHCGht0nxpbl/f5Wpl +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com EV Root Certification Authority RSA R2 O=SSL Corporation +# Subject: CN=SSL.com EV Root Certification Authority RSA R2 O=SSL Corporation +# Label: "SSL.com EV Root Certification Authority RSA R2" +# Serial: 6248227494352943350 +# MD5 Fingerprint: e1:1e:31:58:1a:ae:54:53:02:f6:17:6a:11:7b:4d:95 +# SHA1 Fingerprint: 74:3a:f0:52:9b:d0:32:a0:f4:4a:83:cd:d4:ba:a9:7b:7c:2e:c4:9a +# SHA256 Fingerprint: 2e:7b:f1:6c:c2:24:85:a7:bb:e2:aa:86:96:75:07:61:b0:ae:39:be:3b:2f:e9:d0:cc:6d:4e:f7:34:91:42:5c +-----BEGIN CERTIFICATE----- +MIIF6zCCA9OgAwIBAgIIVrYpzTS8ePYwDQYJKoZIhvcNAQELBQAwgYIxCzAJBgNV +BAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4GA1UEBwwHSG91c3RvbjEYMBYGA1UE +CgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQDDC5TU0wuY29tIEVWIFJvb3QgQ2Vy +dGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIyMB4XDTE3MDUzMTE4MTQzN1oXDTQy +MDUzMDE4MTQzN1owgYIxCzAJBgNVBAYTAlVTMQ4wDAYDVQQIDAVUZXhhczEQMA4G +A1UEBwwHSG91c3RvbjEYMBYGA1UECgwPU1NMIENvcnBvcmF0aW9uMTcwNQYDVQQD +DC5TU0wuY29tIEVWIFJvb3QgQ2VydGlmaWNhdGlvbiBBdXRob3JpdHkgUlNBIFIy +MIICIjANBgkqhkiG9w0BAQEFAAOCAg8AMIICCgKCAgEAjzZlQOHWTcDXtOlG2mvq +M0fNTPl9fb69LT3w23jhhqXZuglXaO1XPqDQCEGD5yhBJB/jchXQARr7XnAjssuf +OePPxU7Gkm0mxnu7s9onnQqG6YE3Bf7wcXHswxzpY6IXFJ3vG2fThVUCAtZJycxa +4bH3bzKfydQ7iEGonL3Lq9ttewkfokxykNorCPzPPFTOZw+oz12WGQvE43LrrdF9 +HSfvkusQv1vrO6/PgN3B0pYEW3p+pKk8OHakYo6gOV7qd89dAFmPZiw+B6KjBSYR +aZfqhbcPlgtLyEDhULouisv3D5oi53+aNxPN8k0TayHRwMwi8qFG9kRpnMphNQcA +b9ZhCBHqurj26bNg5U257J8UZslXWNvNh2n4ioYSA0e/ZhN2rHd9NCSFg83XqpyQ +Gp8hLH94t2S42Oim9HizVcuE0jLEeK6jj2HdzghTreyI/BXkmg3mnxp3zkyPuBQV +PWKchjgGAGYS5Fl2WlPAApiiECtoRHuOec4zSnaqW4EWG7WK2NAAe15itAnWhmMO +pgWVSbooi4iTsjQc2KRVbrcc0N6ZVTsj9CLg+SlmJuwgUHfbSguPvuUCYHBBXtSu +UDkiFCbLsjtzdFVHB3mBOagwE0TlBIqulhMlQg+5U8Sb/M3kHN48+qvWBkofZ6aY +MBzdLNvcGJVXZsb/XItW9XcCAwEAAaNjMGEwDwYDVR0TAQH/BAUwAwEB/zAfBgNV +HSMEGDAWgBT5YLvU49U09rj1BoAlp3PbRmmonjAdBgNVHQ4EFgQU+WC71OPVNPa4 +9QaAJadz20ZpqJ4wDgYDVR0PAQH/BAQDAgGGMA0GCSqGSIb3DQEBCwUAA4ICAQBW +s47LCp1Jjr+kxJG7ZhcFUZh1++VQLHqe8RT6q9OKPv+RKY9ji9i0qVQBDb6Thi/5 +Sm3HXvVX+cpVHBK+Rw82xd9qt9t1wkclf7nxY/hoLVUE0fKNsKTPvDxeH3jnpaAg +cLAExbf3cqfeIg29MyVGjGSSJuM+LmOW2puMPfgYCdcDzH2GguDKBAdRUNf/ktUM +79qGn5nX67evaOI5JpS6aLe/g9Pqemc9YmeuJeVy6OLk7K4S9ksrPJ/psEDzOFSz +/bdoyNrGj1E8svuR3Bznm53htw1yj+KkxKl4+esUrMZDBcJlOSgYAsOCsp0FvmXt +ll9ldDz7CTUue5wT/RsPXcdtgTpWD8w74a8CLyKsRspGPKAcTNZEtF4uXBVmCeEm +Kf7GUmG6sXP/wwyc5WxqlD8UykAWlYTzWamsX0xhk23RO8yilQwipmdnRC652dKK +QbNmC1r7fSOl8hqw/96bg5Qu0T/fkreRrwU7ZcegbLHNYhLDkBvjJc40vG93drEQ +w/cFGsDWr3RiSBd3kmmQYRzelYB0VI8YHMPzA9C/pEN1hlMYegouCRw2n5H9gooi +S9EOUCXdywMMF8mDAAhONU2Ki+3wApRmLER/y5UnlhetCTCstnEXbosX9hwJ1C07 +mKVx01QT2WDz9UtmT/rx7iASjbSsV7FFY6GsdqnC+w== +-----END CERTIFICATE----- + +# Issuer: CN=SSL.com EV Root Certification Authority ECC O=SSL Corporation +# Subject: CN=SSL.com EV Root Certification Authority ECC O=SSL Corporation +# Label: "SSL.com EV Root Certification Authority ECC" +# Serial: 3182246526754555285 +# MD5 Fingerprint: 59:53:22:65:83:42:01:54:c0:ce:42:b9:5a:7c:f2:90 +# SHA1 Fingerprint: 4c:dd:51:a3:d1:f5:20:32:14:b0:c6:c5:32:23:03:91:c7:46:42:6d +# SHA256 Fingerprint: 22:a2:c1:f7:bd:ed:70:4c:c1:e7:01:b5:f4:08:c3:10:88:0f:e9:56:b5:de:2a:4a:44:f9:9c:87:3a:25:a7:c8 +-----BEGIN CERTIFICATE----- +MIIClDCCAhqgAwIBAgIILCmcWxbtBZUwCgYIKoZIzj0EAwIwfzELMAkGA1UEBhMC +VVMxDjAMBgNVBAgMBVRleGFzMRAwDgYDVQQHDAdIb3VzdG9uMRgwFgYDVQQKDA9T +U0wgQ29ycG9yYXRpb24xNDAyBgNVBAMMK1NTTC5jb20gRVYgUm9vdCBDZXJ0aWZp +Y2F0aW9uIEF1dGhvcml0eSBFQ0MwHhcNMTYwMjEyMTgxNTIzWhcNNDEwMjEyMTgx +NTIzWjB/MQswCQYDVQQGEwJVUzEOMAwGA1UECAwFVGV4YXMxEDAOBgNVBAcMB0hv +dXN0b24xGDAWBgNVBAoMD1NTTCBDb3Jwb3JhdGlvbjE0MDIGA1UEAwwrU1NMLmNv +bSBFViBSb290IENlcnRpZmljYXRpb24gQXV0aG9yaXR5IEVDQzB2MBAGByqGSM49 +AgEGBSuBBAAiA2IABKoSR5CYG/vvw0AHgyBO8TCCogbR8pKGYfL2IWjKAMTH6kMA +VIbc/R/fALhBYlzccBYy3h+Z1MzFB8gIH2EWB1E9fVwHU+M1OIzfzZ/ZLg1Kthku +WnBaBu2+8KGwytAJKaNjMGEwHQYDVR0OBBYEFFvKXuXe0oGqzagtZFG22XKbl+ZP +MA8GA1UdEwEB/wQFMAMBAf8wHwYDVR0jBBgwFoAUW8pe5d7SgarNqC1kUbbZcpuX +5k8wDgYDVR0PAQH/BAQDAgGGMAoGCCqGSM49BAMCA2gAMGUCMQCK5kCJN+vp1RPZ +ytRrJPOwPYdGWBrssd9v+1a6cGvHOMzosYxPD/fxZ3YOg9AeUY8CMD32IygmTMZg +h5Mmm7I1HrrW9zzRHM76JTymGoEVW/MSD2zuZYrJh6j5B+BimoxcSg== +-----END CERTIFICATE----- diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/certifi/core.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/certifi/core.py new file mode 100644 index 00000000..eab9d1d1 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/certifi/core.py @@ -0,0 +1,37 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +certifi.py +~~~~~~~~~~ + +This module returns the installation location of cacert.pem. +""" +import os +import warnings + + +class DeprecatedBundleWarning(DeprecationWarning): + """ + The weak security bundle is being deprecated. Please bother your service + provider to get them to stop using cross-signed roots. + """ + + +def where(): + f = os.path.dirname(__file__) + + return os.path.join(f, 'cacert.pem') + + +def old_where(): + warnings.warn( + "The weak security bundle has been removed. certifi.old_where() is now an alias " + "of certifi.where(). Please update your code to use certifi.where() instead. " + "certifi.old_where() will be removed in 2018.", + DeprecatedBundleWarning + ) + return where() + +if __name__ == '__main__': + print(where()) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/__init__.py new file mode 100644 index 00000000..0f9f820e --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/__init__.py @@ -0,0 +1,39 @@ +######################## BEGIN LICENSE BLOCK ######################## +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + + +from .compat import PY2, PY3 +from .universaldetector import UniversalDetector +from .version import __version__, VERSION + + +def detect(byte_str): + """ + Detect the encoding of the given byte string. + + :param byte_str: The byte sequence to examine. + :type byte_str: ``bytes`` or ``bytearray`` + """ + if not isinstance(byte_str, bytearray): + if not isinstance(byte_str, bytes): + raise TypeError('Expected object of type bytes or bytearray, got: ' + '{0}'.format(type(byte_str))) + else: + byte_str = bytearray(byte_str) + detector = UniversalDetector() + detector.feed(byte_str) + return detector.close() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/big5freq.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/big5freq.py new file mode 100644 index 00000000..38f32517 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/big5freq.py @@ -0,0 +1,386 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Communicator client code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +# Big5 frequency table +# by Taiwan's Mandarin Promotion Council +# <http://www.edu.tw:81/mandr/> +# +# 128 --> 0.42261 +# 256 --> 0.57851 +# 512 --> 0.74851 +# 1024 --> 0.89384 +# 2048 --> 0.97583 +# +# Ideal Distribution Ratio = 0.74851/(1-0.74851) =2.98 +# Random Distribution Ration = 512/(5401-512)=0.105 +# +# Typical Distribution Ratio about 25% of Ideal one, still much higher than RDR + +BIG5_TYPICAL_DISTRIBUTION_RATIO = 0.75 + +#Char to FreqOrder table +BIG5_TABLE_SIZE = 5376 + +BIG5_CHAR_TO_FREQ_ORDER = ( + 1,1801,1506, 255,1431, 198, 9, 82, 6,5008, 177, 202,3681,1256,2821, 110, # 16 +3814, 33,3274, 261, 76, 44,2114, 16,2946,2187,1176, 659,3971, 26,3451,2653, # 32 +1198,3972,3350,4202, 410,2215, 302, 590, 361,1964, 8, 204, 58,4510,5009,1932, # 48 + 63,5010,5011, 317,1614, 75, 222, 159,4203,2417,1480,5012,3555,3091, 224,2822, # 64 +3682, 3, 10,3973,1471, 29,2787,1135,2866,1940, 873, 130,3275,1123, 312,5013, # 80 +4511,2052, 507, 252, 682,5014, 142,1915, 124, 206,2947, 34,3556,3204, 64, 604, # 96 +5015,2501,1977,1978, 155,1991, 645, 641,1606,5016,3452, 337, 72, 406,5017, 80, # 112 + 630, 238,3205,1509, 263, 939,1092,2654, 756,1440,1094,3453, 449, 69,2987, 591, # 128 + 179,2096, 471, 115,2035,1844, 60, 50,2988, 134, 806,1869, 734,2036,3454, 180, # 144 + 995,1607, 156, 537,2907, 688,5018, 319,1305, 779,2145, 514,2379, 298,4512, 359, # 160 +2502, 90,2716,1338, 663, 11, 906,1099,2553, 20,2441, 182, 532,1716,5019, 732, # 176 +1376,4204,1311,1420,3206, 25,2317,1056, 113, 399, 382,1950, 242,3455,2474, 529, # 192 +3276, 475,1447,3683,5020, 117, 21, 656, 810,1297,2300,2334,3557,5021, 126,4205, # 208 + 706, 456, 150, 613,4513, 71,1118,2037,4206, 145,3092, 85, 835, 486,2115,1246, # 224 +1426, 428, 727,1285,1015, 800, 106, 623, 303,1281,5022,2128,2359, 347,3815, 221, # 240 +3558,3135,5023,1956,1153,4207, 83, 296,1199,3093, 192, 624, 93,5024, 822,1898, # 256 +2823,3136, 795,2065, 991,1554,1542,1592, 27, 43,2867, 859, 139,1456, 860,4514, # 272 + 437, 712,3974, 164,2397,3137, 695, 211,3037,2097, 195,3975,1608,3559,3560,3684, # 288 +3976, 234, 811,2989,2098,3977,2233,1441,3561,1615,2380, 668,2077,1638, 305, 228, # 304 +1664,4515, 467, 415,5025, 262,2099,1593, 239, 108, 300, 200,1033, 512,1247,2078, # 320 +5026,5027,2176,3207,3685,2682, 593, 845,1062,3277, 88,1723,2038,3978,1951, 212, # 336 + 266, 152, 149, 468,1899,4208,4516, 77, 187,5028,3038, 37, 5,2990,5029,3979, # 352 +5030,5031, 39,2524,4517,2908,3208,2079, 55, 148, 74,4518, 545, 483,1474,1029, # 368 +1665, 217,1870,1531,3138,1104,2655,4209, 24, 172,3562, 900,3980,3563,3564,4519, # 384 + 32,1408,2824,1312, 329, 487,2360,2251,2717, 784,2683, 4,3039,3351,1427,1789, # 400 + 188, 109, 499,5032,3686,1717,1790, 888,1217,3040,4520,5033,3565,5034,3352,1520, # 416 +3687,3981, 196,1034, 775,5035,5036, 929,1816, 249, 439, 38,5037,1063,5038, 794, # 432 +3982,1435,2301, 46, 178,3278,2066,5039,2381,5040, 214,1709,4521, 804, 35, 707, # 448 + 324,3688,1601,2554, 140, 459,4210,5041,5042,1365, 839, 272, 978,2262,2580,3456, # 464 +2129,1363,3689,1423, 697, 100,3094, 48, 70,1231, 495,3139,2196,5043,1294,5044, # 480 +2080, 462, 586,1042,3279, 853, 256, 988, 185,2382,3457,1698, 434,1084,5045,3458, # 496 + 314,2625,2788,4522,2335,2336, 569,2285, 637,1817,2525, 757,1162,1879,1616,3459, # 512 + 287,1577,2116, 768,4523,1671,2868,3566,2526,1321,3816, 909,2418,5046,4211, 933, # 528 +3817,4212,2053,2361,1222,4524, 765,2419,1322, 786,4525,5047,1920,1462,1677,2909, # 544 +1699,5048,4526,1424,2442,3140,3690,2600,3353,1775,1941,3460,3983,4213, 309,1369, # 560 +1130,2825, 364,2234,1653,1299,3984,3567,3985,3986,2656, 525,1085,3041, 902,2001, # 576 +1475, 964,4527, 421,1845,1415,1057,2286, 940,1364,3141, 376,4528,4529,1381, 7, # 592 +2527, 983,2383, 336,1710,2684,1846, 321,3461, 559,1131,3042,2752,1809,1132,1313, # 608 + 265,1481,1858,5049, 352,1203,2826,3280, 167,1089, 420,2827, 776, 792,1724,3568, # 624 +4214,2443,3281,5050,4215,5051, 446, 229, 333,2753, 901,3818,1200,1557,4530,2657, # 640 +1921, 395,2754,2685,3819,4216,1836, 125, 916,3209,2626,4531,5052,5053,3820,5054, # 656 +5055,5056,4532,3142,3691,1133,2555,1757,3462,1510,2318,1409,3569,5057,2146, 438, # 672 +2601,2910,2384,3354,1068, 958,3043, 461, 311,2869,2686,4217,1916,3210,4218,1979, # 688 + 383, 750,2755,2627,4219, 274, 539, 385,1278,1442,5058,1154,1965, 384, 561, 210, # 704 + 98,1295,2556,3570,5059,1711,2420,1482,3463,3987,2911,1257, 129,5060,3821, 642, # 720 + 523,2789,2790,2658,5061, 141,2235,1333, 68, 176, 441, 876, 907,4220, 603,2602, # 736 + 710, 171,3464, 404, 549, 18,3143,2398,1410,3692,1666,5062,3571,4533,2912,4534, # 752 +5063,2991, 368,5064, 146, 366, 99, 871,3693,1543, 748, 807,1586,1185, 22,2263, # 768 + 379,3822,3211,5065,3212, 505,1942,2628,1992,1382,2319,5066, 380,2362, 218, 702, # 784 +1818,1248,3465,3044,3572,3355,3282,5067,2992,3694, 930,3283,3823,5068, 59,5069, # 800 + 585, 601,4221, 497,3466,1112,1314,4535,1802,5070,1223,1472,2177,5071, 749,1837, # 816 + 690,1900,3824,1773,3988,1476, 429,1043,1791,2236,2117, 917,4222, 447,1086,1629, # 832 +5072, 556,5073,5074,2021,1654, 844,1090, 105, 550, 966,1758,2828,1008,1783, 686, # 848 +1095,5075,2287, 793,1602,5076,3573,2603,4536,4223,2948,2302,4537,3825, 980,2503, # 864 + 544, 353, 527,4538, 908,2687,2913,5077, 381,2629,1943,1348,5078,1341,1252, 560, # 880 +3095,5079,3467,2870,5080,2054, 973, 886,2081, 143,4539,5081,5082, 157,3989, 496, # 896 +4224, 57, 840, 540,2039,4540,4541,3468,2118,1445, 970,2264,1748,1966,2082,4225, # 912 +3144,1234,1776,3284,2829,3695, 773,1206,2130,1066,2040,1326,3990,1738,1725,4226, # 928 + 279,3145, 51,1544,2604, 423,1578,2131,2067, 173,4542,1880,5083,5084,1583, 264, # 944 + 610,3696,4543,2444, 280, 154,5085,5086,5087,1739, 338,1282,3096, 693,2871,1411, # 960 +1074,3826,2445,5088,4544,5089,5090,1240, 952,2399,5091,2914,1538,2688, 685,1483, # 976 +4227,2475,1436, 953,4228,2055,4545, 671,2400, 79,4229,2446,3285, 608, 567,2689, # 992 +3469,4230,4231,1691, 393,1261,1792,2401,5092,4546,5093,5094,5095,5096,1383,1672, # 1008 +3827,3213,1464, 522,1119, 661,1150, 216, 675,4547,3991,1432,3574, 609,4548,2690, # 1024 +2402,5097,5098,5099,4232,3045, 0,5100,2476, 315, 231,2447, 301,3356,4549,2385, # 1040 +5101, 233,4233,3697,1819,4550,4551,5102, 96,1777,1315,2083,5103, 257,5104,1810, # 1056 +3698,2718,1139,1820,4234,2022,1124,2164,2791,1778,2659,5105,3097, 363,1655,3214, # 1072 +5106,2993,5107,5108,5109,3992,1567,3993, 718, 103,3215, 849,1443, 341,3357,2949, # 1088 +1484,5110,1712, 127, 67, 339,4235,2403, 679,1412, 821,5111,5112, 834, 738, 351, # 1104 +2994,2147, 846, 235,1497,1881, 418,1993,3828,2719, 186,1100,2148,2756,3575,1545, # 1120 +1355,2950,2872,1377, 583,3994,4236,2581,2995,5113,1298,3699,1078,2557,3700,2363, # 1136 + 78,3829,3830, 267,1289,2100,2002,1594,4237, 348, 369,1274,2197,2178,1838,4552, # 1152 +1821,2830,3701,2757,2288,2003,4553,2951,2758, 144,3358, 882,4554,3995,2759,3470, # 1168 +4555,2915,5114,4238,1726, 320,5115,3996,3046, 788,2996,5116,2831,1774,1327,2873, # 1184 +3997,2832,5117,1306,4556,2004,1700,3831,3576,2364,2660, 787,2023, 506, 824,3702, # 1200 + 534, 323,4557,1044,3359,2024,1901, 946,3471,5118,1779,1500,1678,5119,1882,4558, # 1216 + 165, 243,4559,3703,2528, 123, 683,4239, 764,4560, 36,3998,1793, 589,2916, 816, # 1232 + 626,1667,3047,2237,1639,1555,1622,3832,3999,5120,4000,2874,1370,1228,1933, 891, # 1248 +2084,2917, 304,4240,5121, 292,2997,2720,3577, 691,2101,4241,1115,4561, 118, 662, # 1264 +5122, 611,1156, 854,2386,1316,2875, 2, 386, 515,2918,5123,5124,3286, 868,2238, # 1280 +1486, 855,2661, 785,2216,3048,5125,1040,3216,3578,5126,3146, 448,5127,1525,5128, # 1296 +2165,4562,5129,3833,5130,4242,2833,3579,3147, 503, 818,4001,3148,1568, 814, 676, # 1312 +1444, 306,1749,5131,3834,1416,1030, 197,1428, 805,2834,1501,4563,5132,5133,5134, # 1328 +1994,5135,4564,5136,5137,2198, 13,2792,3704,2998,3149,1229,1917,5138,3835,2132, # 1344 +5139,4243,4565,2404,3580,5140,2217,1511,1727,1120,5141,5142, 646,3836,2448, 307, # 1360 +5143,5144,1595,3217,5145,5146,5147,3705,1113,1356,4002,1465,2529,2530,5148, 519, # 1376 +5149, 128,2133, 92,2289,1980,5150,4003,1512, 342,3150,2199,5151,2793,2218,1981, # 1392 +3360,4244, 290,1656,1317, 789, 827,2365,5152,3837,4566, 562, 581,4004,5153, 401, # 1408 +4567,2252, 94,4568,5154,1399,2794,5155,1463,2025,4569,3218,1944,5156, 828,1105, # 1424 +4245,1262,1394,5157,4246, 605,4570,5158,1784,2876,5159,2835, 819,2102, 578,2200, # 1440 +2952,5160,1502, 436,3287,4247,3288,2836,4005,2919,3472,3473,5161,2721,2320,5162, # 1456 +5163,2337,2068, 23,4571, 193, 826,3838,2103, 699,1630,4248,3098, 390,1794,1064, # 1472 +3581,5164,1579,3099,3100,1400,5165,4249,1839,1640,2877,5166,4572,4573, 137,4250, # 1488 + 598,3101,1967, 780, 104, 974,2953,5167, 278, 899, 253, 402, 572, 504, 493,1339, # 1504 +5168,4006,1275,4574,2582,2558,5169,3706,3049,3102,2253, 565,1334,2722, 863, 41, # 1520 +5170,5171,4575,5172,1657,2338, 19, 463,2760,4251, 606,5173,2999,3289,1087,2085, # 1536 +1323,2662,3000,5174,1631,1623,1750,4252,2691,5175,2878, 791,2723,2663,2339, 232, # 1552 +2421,5176,3001,1498,5177,2664,2630, 755,1366,3707,3290,3151,2026,1609, 119,1918, # 1568 +3474, 862,1026,4253,5178,4007,3839,4576,4008,4577,2265,1952,2477,5179,1125, 817, # 1584 +4254,4255,4009,1513,1766,2041,1487,4256,3050,3291,2837,3840,3152,5180,5181,1507, # 1600 +5182,2692, 733, 40,1632,1106,2879, 345,4257, 841,2531, 230,4578,3002,1847,3292, # 1616 +3475,5183,1263, 986,3476,5184, 735, 879, 254,1137, 857, 622,1300,1180,1388,1562, # 1632 +4010,4011,2954, 967,2761,2665,1349, 592,2134,1692,3361,3003,1995,4258,1679,4012, # 1648 +1902,2188,5185, 739,3708,2724,1296,1290,5186,4259,2201,2202,1922,1563,2605,2559, # 1664 +1871,2762,3004,5187, 435,5188, 343,1108, 596, 17,1751,4579,2239,3477,3709,5189, # 1680 +4580, 294,3582,2955,1693, 477, 979, 281,2042,3583, 643,2043,3710,2631,2795,2266, # 1696 +1031,2340,2135,2303,3584,4581, 367,1249,2560,5190,3585,5191,4582,1283,3362,2005, # 1712 + 240,1762,3363,4583,4584, 836,1069,3153, 474,5192,2149,2532, 268,3586,5193,3219, # 1728 +1521,1284,5194,1658,1546,4260,5195,3587,3588,5196,4261,3364,2693,1685,4262, 961, # 1744 +1673,2632, 190,2006,2203,3841,4585,4586,5197, 570,2504,3711,1490,5198,4587,2633, # 1760 +3293,1957,4588, 584,1514, 396,1045,1945,5199,4589,1968,2449,5200,5201,4590,4013, # 1776 + 619,5202,3154,3294, 215,2007,2796,2561,3220,4591,3221,4592, 763,4263,3842,4593, # 1792 +5203,5204,1958,1767,2956,3365,3712,1174, 452,1477,4594,3366,3155,5205,2838,1253, # 1808 +2387,2189,1091,2290,4264, 492,5206, 638,1169,1825,2136,1752,4014, 648, 926,1021, # 1824 +1324,4595, 520,4596, 997, 847,1007, 892,4597,3843,2267,1872,3713,2405,1785,4598, # 1840 +1953,2957,3103,3222,1728,4265,2044,3714,4599,2008,1701,3156,1551, 30,2268,4266, # 1856 +5207,2027,4600,3589,5208, 501,5209,4267, 594,3478,2166,1822,3590,3479,3591,3223, # 1872 + 829,2839,4268,5210,1680,3157,1225,4269,5211,3295,4601,4270,3158,2341,5212,4602, # 1888 +4271,5213,4015,4016,5214,1848,2388,2606,3367,5215,4603, 374,4017, 652,4272,4273, # 1904 + 375,1140, 798,5216,5217,5218,2366,4604,2269, 546,1659, 138,3051,2450,4605,5219, # 1920 +2254, 612,1849, 910, 796,3844,1740,1371, 825,3845,3846,5220,2920,2562,5221, 692, # 1936 + 444,3052,2634, 801,4606,4274,5222,1491, 244,1053,3053,4275,4276, 340,5223,4018, # 1952 +1041,3005, 293,1168, 87,1357,5224,1539, 959,5225,2240, 721, 694,4277,3847, 219, # 1968 +1478, 644,1417,3368,2666,1413,1401,1335,1389,4019,5226,5227,3006,2367,3159,1826, # 1984 + 730,1515, 184,2840, 66,4607,5228,1660,2958, 246,3369, 378,1457, 226,3480, 975, # 2000 +4020,2959,1264,3592, 674, 696,5229, 163,5230,1141,2422,2167, 713,3593,3370,4608, # 2016 +4021,5231,5232,1186, 15,5233,1079,1070,5234,1522,3224,3594, 276,1050,2725, 758, # 2032 +1126, 653,2960,3296,5235,2342, 889,3595,4022,3104,3007, 903,1250,4609,4023,3481, # 2048 +3596,1342,1681,1718, 766,3297, 286, 89,2961,3715,5236,1713,5237,2607,3371,3008, # 2064 +5238,2962,2219,3225,2880,5239,4610,2505,2533, 181, 387,1075,4024, 731,2190,3372, # 2080 +5240,3298, 310, 313,3482,2304, 770,4278, 54,3054, 189,4611,3105,3848,4025,5241, # 2096 +1230,1617,1850, 355,3597,4279,4612,3373, 111,4280,3716,1350,3160,3483,3055,4281, # 2112 +2150,3299,3598,5242,2797,4026,4027,3009, 722,2009,5243,1071, 247,1207,2343,2478, # 2128 +1378,4613,2010, 864,1437,1214,4614, 373,3849,1142,2220, 667,4615, 442,2763,2563, # 2144 +3850,4028,1969,4282,3300,1840, 837, 170,1107, 934,1336,1883,5244,5245,2119,4283, # 2160 +2841, 743,1569,5246,4616,4284, 582,2389,1418,3484,5247,1803,5248, 357,1395,1729, # 2176 +3717,3301,2423,1564,2241,5249,3106,3851,1633,4617,1114,2086,4285,1532,5250, 482, # 2192 +2451,4618,5251,5252,1492, 833,1466,5253,2726,3599,1641,2842,5254,1526,1272,3718, # 2208 +4286,1686,1795, 416,2564,1903,1954,1804,5255,3852,2798,3853,1159,2321,5256,2881, # 2224 +4619,1610,1584,3056,2424,2764, 443,3302,1163,3161,5257,5258,4029,5259,4287,2506, # 2240 +3057,4620,4030,3162,2104,1647,3600,2011,1873,4288,5260,4289, 431,3485,5261, 250, # 2256 + 97, 81,4290,5262,1648,1851,1558, 160, 848,5263, 866, 740,1694,5264,2204,2843, # 2272 +3226,4291,4621,3719,1687, 950,2479, 426, 469,3227,3720,3721,4031,5265,5266,1188, # 2288 + 424,1996, 861,3601,4292,3854,2205,2694, 168,1235,3602,4293,5267,2087,1674,4622, # 2304 +3374,3303, 220,2565,1009,5268,3855, 670,3010, 332,1208, 717,5269,5270,3603,2452, # 2320 +4032,3375,5271, 513,5272,1209,2882,3376,3163,4623,1080,5273,5274,5275,5276,2534, # 2336 +3722,3604, 815,1587,4033,4034,5277,3605,3486,3856,1254,4624,1328,3058,1390,4035, # 2352 +1741,4036,3857,4037,5278, 236,3858,2453,3304,5279,5280,3723,3859,1273,3860,4625, # 2368 +5281, 308,5282,4626, 245,4627,1852,2480,1307,2583, 430, 715,2137,2454,5283, 270, # 2384 + 199,2883,4038,5284,3606,2727,1753, 761,1754, 725,1661,1841,4628,3487,3724,5285, # 2400 +5286, 587, 14,3305, 227,2608, 326, 480,2270, 943,2765,3607, 291, 650,1884,5287, # 2416 +1702,1226, 102,1547, 62,3488, 904,4629,3489,1164,4294,5288,5289,1224,1548,2766, # 2432 + 391, 498,1493,5290,1386,1419,5291,2056,1177,4630, 813, 880,1081,2368, 566,1145, # 2448 +4631,2291,1001,1035,2566,2609,2242, 394,1286,5292,5293,2069,5294, 86,1494,1730, # 2464 +4039, 491,1588, 745, 897,2963, 843,3377,4040,2767,2884,3306,1768, 998,2221,2070, # 2480 + 397,1827,1195,1970,3725,3011,3378, 284,5295,3861,2507,2138,2120,1904,5296,4041, # 2496 +2151,4042,4295,1036,3490,1905, 114,2567,4296, 209,1527,5297,5298,2964,2844,2635, # 2512 +2390,2728,3164, 812,2568,5299,3307,5300,1559, 737,1885,3726,1210, 885, 28,2695, # 2528 +3608,3862,5301,4297,1004,1780,4632,5302, 346,1982,2222,2696,4633,3863,1742, 797, # 2544 +1642,4043,1934,1072,1384,2152, 896,4044,3308,3727,3228,2885,3609,5303,2569,1959, # 2560 +4634,2455,1786,5304,5305,5306,4045,4298,1005,1308,3728,4299,2729,4635,4636,1528, # 2576 +2610, 161,1178,4300,1983, 987,4637,1101,4301, 631,4046,1157,3229,2425,1343,1241, # 2592 +1016,2243,2570, 372, 877,2344,2508,1160, 555,1935, 911,4047,5307, 466,1170, 169, # 2608 +1051,2921,2697,3729,2481,3012,1182,2012,2571,1251,2636,5308, 992,2345,3491,1540, # 2624 +2730,1201,2071,2406,1997,2482,5309,4638, 528,1923,2191,1503,1874,1570,2369,3379, # 2640 +3309,5310, 557,1073,5311,1828,3492,2088,2271,3165,3059,3107, 767,3108,2799,4639, # 2656 +1006,4302,4640,2346,1267,2179,3730,3230, 778,4048,3231,2731,1597,2667,5312,4641, # 2672 +5313,3493,5314,5315,5316,3310,2698,1433,3311, 131, 95,1504,4049, 723,4303,3166, # 2688 +1842,3610,2768,2192,4050,2028,2105,3731,5317,3013,4051,1218,5318,3380,3232,4052, # 2704 +4304,2584, 248,1634,3864, 912,5319,2845,3732,3060,3865, 654, 53,5320,3014,5321, # 2720 +1688,4642, 777,3494,1032,4053,1425,5322, 191, 820,2121,2846, 971,4643, 931,3233, # 2736 + 135, 664, 783,3866,1998, 772,2922,1936,4054,3867,4644,2923,3234, 282,2732, 640, # 2752 +1372,3495,1127, 922, 325,3381,5323,5324, 711,2045,5325,5326,4055,2223,2800,1937, # 2768 +4056,3382,2224,2255,3868,2305,5327,4645,3869,1258,3312,4057,3235,2139,2965,4058, # 2784 +4059,5328,2225, 258,3236,4646, 101,1227,5329,3313,1755,5330,1391,3314,5331,2924, # 2800 +2057, 893,5332,5333,5334,1402,4305,2347,5335,5336,3237,3611,5337,5338, 878,1325, # 2816 +1781,2801,4647, 259,1385,2585, 744,1183,2272,4648,5339,4060,2509,5340, 684,1024, # 2832 +4306,5341, 472,3612,3496,1165,3315,4061,4062, 322,2153, 881, 455,1695,1152,1340, # 2848 + 660, 554,2154,4649,1058,4650,4307, 830,1065,3383,4063,4651,1924,5342,1703,1919, # 2864 +5343, 932,2273, 122,5344,4652, 947, 677,5345,3870,2637, 297,1906,1925,2274,4653, # 2880 +2322,3316,5346,5347,4308,5348,4309, 84,4310, 112, 989,5349, 547,1059,4064, 701, # 2896 +3613,1019,5350,4311,5351,3497, 942, 639, 457,2306,2456, 993,2966, 407, 851, 494, # 2912 +4654,3384, 927,5352,1237,5353,2426,3385, 573,4312, 680, 921,2925,1279,1875, 285, # 2928 + 790,1448,1984, 719,2168,5354,5355,4655,4065,4066,1649,5356,1541, 563,5357,1077, # 2944 +5358,3386,3061,3498, 511,3015,4067,4068,3733,4069,1268,2572,3387,3238,4656,4657, # 2960 +5359, 535,1048,1276,1189,2926,2029,3167,1438,1373,2847,2967,1134,2013,5360,4313, # 2976 +1238,2586,3109,1259,5361, 700,5362,2968,3168,3734,4314,5363,4315,1146,1876,1907, # 2992 +4658,2611,4070, 781,2427, 132,1589, 203, 147, 273,2802,2407, 898,1787,2155,4071, # 3008 +4072,5364,3871,2803,5365,5366,4659,4660,5367,3239,5368,1635,3872, 965,5369,1805, # 3024 +2699,1516,3614,1121,1082,1329,3317,4073,1449,3873, 65,1128,2848,2927,2769,1590, # 3040 +3874,5370,5371, 12,2668, 45, 976,2587,3169,4661, 517,2535,1013,1037,3240,5372, # 3056 +3875,2849,5373,3876,5374,3499,5375,2612, 614,1999,2323,3877,3110,2733,2638,5376, # 3072 +2588,4316, 599,1269,5377,1811,3735,5378,2700,3111, 759,1060, 489,1806,3388,3318, # 3088 +1358,5379,5380,2391,1387,1215,2639,2256, 490,5381,5382,4317,1759,2392,2348,5383, # 3104 +4662,3878,1908,4074,2640,1807,3241,4663,3500,3319,2770,2349, 874,5384,5385,3501, # 3120 +3736,1859, 91,2928,3737,3062,3879,4664,5386,3170,4075,2669,5387,3502,1202,1403, # 3136 +3880,2969,2536,1517,2510,4665,3503,2511,5388,4666,5389,2701,1886,1495,1731,4076, # 3152 +2370,4667,5390,2030,5391,5392,4077,2702,1216, 237,2589,4318,2324,4078,3881,4668, # 3168 +4669,2703,3615,3504, 445,4670,5393,5394,5395,5396,2771, 61,4079,3738,1823,4080, # 3184 +5397, 687,2046, 935, 925, 405,2670, 703,1096,1860,2734,4671,4081,1877,1367,2704, # 3200 +3389, 918,2106,1782,2483, 334,3320,1611,1093,4672, 564,3171,3505,3739,3390, 945, # 3216 +2641,2058,4673,5398,1926, 872,4319,5399,3506,2705,3112, 349,4320,3740,4082,4674, # 3232 +3882,4321,3741,2156,4083,4675,4676,4322,4677,2408,2047, 782,4084, 400, 251,4323, # 3248 +1624,5400,5401, 277,3742, 299,1265, 476,1191,3883,2122,4324,4325,1109, 205,5402, # 3264 +2590,1000,2157,3616,1861,5403,5404,5405,4678,5406,4679,2573, 107,2484,2158,4085, # 3280 +3507,3172,5407,1533, 541,1301, 158, 753,4326,2886,3617,5408,1696, 370,1088,4327, # 3296 +4680,3618, 579, 327, 440, 162,2244, 269,1938,1374,3508, 968,3063, 56,1396,3113, # 3312 +2107,3321,3391,5409,1927,2159,4681,3016,5410,3619,5411,5412,3743,4682,2485,5413, # 3328 +2804,5414,1650,4683,5415,2613,5416,5417,4086,2671,3392,1149,3393,4087,3884,4088, # 3344 +5418,1076, 49,5419, 951,3242,3322,3323, 450,2850, 920,5420,1812,2805,2371,4328, # 3360 +1909,1138,2372,3885,3509,5421,3243,4684,1910,1147,1518,2428,4685,3886,5422,4686, # 3376 +2393,2614, 260,1796,3244,5423,5424,3887,3324, 708,5425,3620,1704,5426,3621,1351, # 3392 +1618,3394,3017,1887, 944,4329,3395,4330,3064,3396,4331,5427,3744, 422, 413,1714, # 3408 +3325, 500,2059,2350,4332,2486,5428,1344,1911, 954,5429,1668,5430,5431,4089,2409, # 3424 +4333,3622,3888,4334,5432,2307,1318,2512,3114, 133,3115,2887,4687, 629, 31,2851, # 3440 +2706,3889,4688, 850, 949,4689,4090,2970,1732,2089,4335,1496,1853,5433,4091, 620, # 3456 +3245, 981,1242,3745,3397,1619,3746,1643,3326,2140,2457,1971,1719,3510,2169,5434, # 3472 +3246,5435,5436,3398,1829,5437,1277,4690,1565,2048,5438,1636,3623,3116,5439, 869, # 3488 +2852, 655,3890,3891,3117,4092,3018,3892,1310,3624,4691,5440,5441,5442,1733, 558, # 3504 +4692,3747, 335,1549,3065,1756,4336,3748,1946,3511,1830,1291,1192, 470,2735,2108, # 3520 +2806, 913,1054,4093,5443,1027,5444,3066,4094,4693, 982,2672,3399,3173,3512,3247, # 3536 +3248,1947,2807,5445, 571,4694,5446,1831,5447,3625,2591,1523,2429,5448,2090, 984, # 3552 +4695,3749,1960,5449,3750, 852, 923,2808,3513,3751, 969,1519, 999,2049,2325,1705, # 3568 +5450,3118, 615,1662, 151, 597,4095,2410,2326,1049, 275,4696,3752,4337, 568,3753, # 3584 +3626,2487,4338,3754,5451,2430,2275, 409,3249,5452,1566,2888,3514,1002, 769,2853, # 3600 + 194,2091,3174,3755,2226,3327,4339, 628,1505,5453,5454,1763,2180,3019,4096, 521, # 3616 +1161,2592,1788,2206,2411,4697,4097,1625,4340,4341, 412, 42,3119, 464,5455,2642, # 3632 +4698,3400,1760,1571,2889,3515,2537,1219,2207,3893,2643,2141,2373,4699,4700,3328, # 3648 +1651,3401,3627,5456,5457,3628,2488,3516,5458,3756,5459,5460,2276,2092, 460,5461, # 3664 +4701,5462,3020, 962, 588,3629, 289,3250,2644,1116, 52,5463,3067,1797,5464,5465, # 3680 +5466,1467,5467,1598,1143,3757,4342,1985,1734,1067,4702,1280,3402, 465,4703,1572, # 3696 + 510,5468,1928,2245,1813,1644,3630,5469,4704,3758,5470,5471,2673,1573,1534,5472, # 3712 +5473, 536,1808,1761,3517,3894,3175,2645,5474,5475,5476,4705,3518,2929,1912,2809, # 3728 +5477,3329,1122, 377,3251,5478, 360,5479,5480,4343,1529, 551,5481,2060,3759,1769, # 3744 +2431,5482,2930,4344,3330,3120,2327,2109,2031,4706,1404, 136,1468,1479, 672,1171, # 3760 +3252,2308, 271,3176,5483,2772,5484,2050, 678,2736, 865,1948,4707,5485,2014,4098, # 3776 +2971,5486,2737,2227,1397,3068,3760,4708,4709,1735,2931,3403,3631,5487,3895, 509, # 3792 +2854,2458,2890,3896,5488,5489,3177,3178,4710,4345,2538,4711,2309,1166,1010, 552, # 3808 + 681,1888,5490,5491,2972,2973,4099,1287,1596,1862,3179, 358, 453, 736, 175, 478, # 3824 +1117, 905,1167,1097,5492,1854,1530,5493,1706,5494,2181,3519,2292,3761,3520,3632, # 3840 +4346,2093,4347,5495,3404,1193,2489,4348,1458,2193,2208,1863,1889,1421,3331,2932, # 3856 +3069,2182,3521, 595,2123,5496,4100,5497,5498,4349,1707,2646, 223,3762,1359, 751, # 3872 +3121, 183,3522,5499,2810,3021, 419,2374, 633, 704,3897,2394, 241,5500,5501,5502, # 3888 + 838,3022,3763,2277,2773,2459,3898,1939,2051,4101,1309,3122,2246,1181,5503,1136, # 3904 +2209,3899,2375,1446,4350,2310,4712,5504,5505,4351,1055,2615, 484,3764,5506,4102, # 3920 + 625,4352,2278,3405,1499,4353,4103,5507,4104,4354,3253,2279,2280,3523,5508,5509, # 3936 +2774, 808,2616,3765,3406,4105,4355,3123,2539, 526,3407,3900,4356, 955,5510,1620, # 3952 +4357,2647,2432,5511,1429,3766,1669,1832, 994, 928,5512,3633,1260,5513,5514,5515, # 3968 +1949,2293, 741,2933,1626,4358,2738,2460, 867,1184, 362,3408,1392,5516,5517,4106, # 3984 +4359,1770,1736,3254,2934,4713,4714,1929,2707,1459,1158,5518,3070,3409,2891,1292, # 4000 +1930,2513,2855,3767,1986,1187,2072,2015,2617,4360,5519,2574,2514,2170,3768,2490, # 4016 +3332,5520,3769,4715,5521,5522, 666,1003,3023,1022,3634,4361,5523,4716,1814,2257, # 4032 + 574,3901,1603, 295,1535, 705,3902,4362, 283, 858, 417,5524,5525,3255,4717,4718, # 4048 +3071,1220,1890,1046,2281,2461,4107,1393,1599, 689,2575, 388,4363,5526,2491, 802, # 4064 +5527,2811,3903,2061,1405,2258,5528,4719,3904,2110,1052,1345,3256,1585,5529, 809, # 4080 +5530,5531,5532, 575,2739,3524, 956,1552,1469,1144,2328,5533,2329,1560,2462,3635, # 4096 +3257,4108, 616,2210,4364,3180,2183,2294,5534,1833,5535,3525,4720,5536,1319,3770, # 4112 +3771,1211,3636,1023,3258,1293,2812,5537,5538,5539,3905, 607,2311,3906, 762,2892, # 4128 +1439,4365,1360,4721,1485,3072,5540,4722,1038,4366,1450,2062,2648,4367,1379,4723, # 4144 +2593,5541,5542,4368,1352,1414,2330,2935,1172,5543,5544,3907,3908,4724,1798,1451, # 4160 +5545,5546,5547,5548,2936,4109,4110,2492,2351, 411,4111,4112,3637,3333,3124,4725, # 4176 +1561,2674,1452,4113,1375,5549,5550, 47,2974, 316,5551,1406,1591,2937,3181,5552, # 4192 +1025,2142,3125,3182, 354,2740, 884,2228,4369,2412, 508,3772, 726,3638, 996,2433, # 4208 +3639, 729,5553, 392,2194,1453,4114,4726,3773,5554,5555,2463,3640,2618,1675,2813, # 4224 + 919,2352,2975,2353,1270,4727,4115, 73,5556,5557, 647,5558,3259,2856,2259,1550, # 4240 +1346,3024,5559,1332, 883,3526,5560,5561,5562,5563,3334,2775,5564,1212, 831,1347, # 4256 +4370,4728,2331,3909,1864,3073, 720,3910,4729,4730,3911,5565,4371,5566,5567,4731, # 4272 +5568,5569,1799,4732,3774,2619,4733,3641,1645,2376,4734,5570,2938, 669,2211,2675, # 4288 +2434,5571,2893,5572,5573,1028,3260,5574,4372,2413,5575,2260,1353,5576,5577,4735, # 4304 +3183, 518,5578,4116,5579,4373,1961,5580,2143,4374,5581,5582,3025,2354,2355,3912, # 4320 + 516,1834,1454,4117,2708,4375,4736,2229,2620,1972,1129,3642,5583,2776,5584,2976, # 4336 +1422, 577,1470,3026,1524,3410,5585,5586, 432,4376,3074,3527,5587,2594,1455,2515, # 4352 +2230,1973,1175,5588,1020,2741,4118,3528,4737,5589,2742,5590,1743,1361,3075,3529, # 4368 +2649,4119,4377,4738,2295, 895, 924,4378,2171, 331,2247,3076, 166,1627,3077,1098, # 4384 +5591,1232,2894,2231,3411,4739, 657, 403,1196,2377, 542,3775,3412,1600,4379,3530, # 4400 +5592,4740,2777,3261, 576, 530,1362,4741,4742,2540,2676,3776,4120,5593, 842,3913, # 4416 +5594,2814,2032,1014,4121, 213,2709,3413, 665, 621,4380,5595,3777,2939,2435,5596, # 4432 +2436,3335,3643,3414,4743,4381,2541,4382,4744,3644,1682,4383,3531,1380,5597, 724, # 4448 +2282, 600,1670,5598,1337,1233,4745,3126,2248,5599,1621,4746,5600, 651,4384,5601, # 4464 +1612,4385,2621,5602,2857,5603,2743,2312,3078,5604, 716,2464,3079, 174,1255,2710, # 4480 +4122,3645, 548,1320,1398, 728,4123,1574,5605,1891,1197,3080,4124,5606,3081,3082, # 4496 +3778,3646,3779, 747,5607, 635,4386,4747,5608,5609,5610,4387,5611,5612,4748,5613, # 4512 +3415,4749,2437, 451,5614,3780,2542,2073,4388,2744,4389,4125,5615,1764,4750,5616, # 4528 +4390, 350,4751,2283,2395,2493,5617,4391,4126,2249,1434,4127, 488,4752, 458,4392, # 4544 +4128,3781, 771,1330,2396,3914,2576,3184,2160,2414,1553,2677,3185,4393,5618,2494, # 4560 +2895,2622,1720,2711,4394,3416,4753,5619,2543,4395,5620,3262,4396,2778,5621,2016, # 4576 +2745,5622,1155,1017,3782,3915,5623,3336,2313, 201,1865,4397,1430,5624,4129,5625, # 4592 +5626,5627,5628,5629,4398,1604,5630, 414,1866, 371,2595,4754,4755,3532,2017,3127, # 4608 +4756,1708, 960,4399, 887, 389,2172,1536,1663,1721,5631,2232,4130,2356,2940,1580, # 4624 +5632,5633,1744,4757,2544,4758,4759,5634,4760,5635,2074,5636,4761,3647,3417,2896, # 4640 +4400,5637,4401,2650,3418,2815, 673,2712,2465, 709,3533,4131,3648,4402,5638,1148, # 4656 + 502, 634,5639,5640,1204,4762,3649,1575,4763,2623,3783,5641,3784,3128, 948,3263, # 4672 + 121,1745,3916,1110,5642,4403,3083,2516,3027,4132,3785,1151,1771,3917,1488,4133, # 4688 +1987,5643,2438,3534,5644,5645,2094,5646,4404,3918,1213,1407,2816, 531,2746,2545, # 4704 +3264,1011,1537,4764,2779,4405,3129,1061,5647,3786,3787,1867,2897,5648,2018, 120, # 4720 +4406,4407,2063,3650,3265,2314,3919,2678,3419,1955,4765,4134,5649,3535,1047,2713, # 4736 +1266,5650,1368,4766,2858, 649,3420,3920,2546,2747,1102,2859,2679,5651,5652,2000, # 4752 +5653,1111,3651,2977,5654,2495,3921,3652,2817,1855,3421,3788,5655,5656,3422,2415, # 4768 +2898,3337,3266,3653,5657,2577,5658,3654,2818,4135,1460, 856,5659,3655,5660,2899, # 4784 +2978,5661,2900,3922,5662,4408, 632,2517, 875,3923,1697,3924,2296,5663,5664,4767, # 4800 +3028,1239, 580,4768,4409,5665, 914, 936,2075,1190,4136,1039,2124,5666,5667,5668, # 4816 +5669,3423,1473,5670,1354,4410,3925,4769,2173,3084,4137, 915,3338,4411,4412,3339, # 4832 +1605,1835,5671,2748, 398,3656,4413,3926,4138, 328,1913,2860,4139,3927,1331,4414, # 4848 +3029, 937,4415,5672,3657,4140,4141,3424,2161,4770,3425, 524, 742, 538,3085,1012, # 4864 +5673,5674,3928,2466,5675, 658,1103, 225,3929,5676,5677,4771,5678,4772,5679,3267, # 4880 +1243,5680,4142, 963,2250,4773,5681,2714,3658,3186,5682,5683,2596,2332,5684,4774, # 4896 +5685,5686,5687,3536, 957,3426,2547,2033,1931,2941,2467, 870,2019,3659,1746,2780, # 4912 +2781,2439,2468,5688,3930,5689,3789,3130,3790,3537,3427,3791,5690,1179,3086,5691, # 4928 +3187,2378,4416,3792,2548,3188,3131,2749,4143,5692,3428,1556,2549,2297, 977,2901, # 4944 +2034,4144,1205,3429,5693,1765,3430,3189,2125,1271, 714,1689,4775,3538,5694,2333, # 4960 +3931, 533,4417,3660,2184, 617,5695,2469,3340,3539,2315,5696,5697,3190,5698,5699, # 4976 +3932,1988, 618, 427,2651,3540,3431,5700,5701,1244,1690,5702,2819,4418,4776,5703, # 4992 +3541,4777,5704,2284,1576, 473,3661,4419,3432, 972,5705,3662,5706,3087,5707,5708, # 5008 +4778,4779,5709,3793,4145,4146,5710, 153,4780, 356,5711,1892,2902,4420,2144, 408, # 5024 + 803,2357,5712,3933,5713,4421,1646,2578,2518,4781,4782,3934,5714,3935,4422,5715, # 5040 +2416,3433, 752,5716,5717,1962,3341,2979,5718, 746,3030,2470,4783,4423,3794, 698, # 5056 +4784,1893,4424,3663,2550,4785,3664,3936,5719,3191,3434,5720,1824,1302,4147,2715, # 5072 +3937,1974,4425,5721,4426,3192, 823,1303,1288,1236,2861,3542,4148,3435, 774,3938, # 5088 +5722,1581,4786,1304,2862,3939,4787,5723,2440,2162,1083,3268,4427,4149,4428, 344, # 5104 +1173, 288,2316, 454,1683,5724,5725,1461,4788,4150,2597,5726,5727,4789, 985, 894, # 5120 +5728,3436,3193,5729,1914,2942,3795,1989,5730,2111,1975,5731,4151,5732,2579,1194, # 5136 + 425,5733,4790,3194,1245,3796,4429,5734,5735,2863,5736, 636,4791,1856,3940, 760, # 5152 +1800,5737,4430,2212,1508,4792,4152,1894,1684,2298,5738,5739,4793,4431,4432,2213, # 5168 + 479,5740,5741, 832,5742,4153,2496,5743,2980,2497,3797, 990,3132, 627,1815,2652, # 5184 +4433,1582,4434,2126,2112,3543,4794,5744, 799,4435,3195,5745,4795,2113,1737,3031, # 5200 +1018, 543, 754,4436,3342,1676,4796,4797,4154,4798,1489,5746,3544,5747,2624,2903, # 5216 +4155,5748,5749,2981,5750,5751,5752,5753,3196,4799,4800,2185,1722,5754,3269,3270, # 5232 +1843,3665,1715, 481, 365,1976,1857,5755,5756,1963,2498,4801,5757,2127,3666,3271, # 5248 + 433,1895,2064,2076,5758, 602,2750,5759,5760,5761,5762,5763,3032,1628,3437,5764, # 5264 +3197,4802,4156,2904,4803,2519,5765,2551,2782,5766,5767,5768,3343,4804,2905,5769, # 5280 +4805,5770,2864,4806,4807,1221,2982,4157,2520,5771,5772,5773,1868,1990,5774,5775, # 5296 +5776,1896,5777,5778,4808,1897,4158, 318,5779,2095,4159,4437,5780,5781, 485,5782, # 5312 + 938,3941, 553,2680, 116,5783,3942,3667,5784,3545,2681,2783,3438,3344,2820,5785, # 5328 +3668,2943,4160,1747,2944,2983,5786,5787, 207,5788,4809,5789,4810,2521,5790,3033, # 5344 + 890,3669,3943,5791,1878,3798,3439,5792,2186,2358,3440,1652,5793,5794,5795, 941, # 5360 +2299, 208,3546,4161,2020, 330,4438,3944,2906,2499,3799,4439,4811,5796,5797,5798, # 5376 +) + diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/big5prober.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/big5prober.py new file mode 100644 index 00000000..98f99701 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/big5prober.py @@ -0,0 +1,47 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Communicator client code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +from .mbcharsetprober import MultiByteCharSetProber +from .codingstatemachine import CodingStateMachine +from .chardistribution import Big5DistributionAnalysis +from .mbcssm import BIG5_SM_MODEL + + +class Big5Prober(MultiByteCharSetProber): + def __init__(self): + super(Big5Prober, self).__init__() + self.coding_sm = CodingStateMachine(BIG5_SM_MODEL) + self.distribution_analyzer = Big5DistributionAnalysis() + self.reset() + + @property + def charset_name(self): + return "Big5" + + @property + def language(self): + return "Chinese" diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/chardistribution.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/chardistribution.py new file mode 100644 index 00000000..c0395f4a --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/chardistribution.py @@ -0,0 +1,233 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Communicator client code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +from .euctwfreq import (EUCTW_CHAR_TO_FREQ_ORDER, EUCTW_TABLE_SIZE, + EUCTW_TYPICAL_DISTRIBUTION_RATIO) +from .euckrfreq import (EUCKR_CHAR_TO_FREQ_ORDER, EUCKR_TABLE_SIZE, + EUCKR_TYPICAL_DISTRIBUTION_RATIO) +from .gb2312freq import (GB2312_CHAR_TO_FREQ_ORDER, GB2312_TABLE_SIZE, + GB2312_TYPICAL_DISTRIBUTION_RATIO) +from .big5freq import (BIG5_CHAR_TO_FREQ_ORDER, BIG5_TABLE_SIZE, + BIG5_TYPICAL_DISTRIBUTION_RATIO) +from .jisfreq import (JIS_CHAR_TO_FREQ_ORDER, JIS_TABLE_SIZE, + JIS_TYPICAL_DISTRIBUTION_RATIO) + + +class CharDistributionAnalysis(object): + ENOUGH_DATA_THRESHOLD = 1024 + SURE_YES = 0.99 + SURE_NO = 0.01 + MINIMUM_DATA_THRESHOLD = 3 + + def __init__(self): + # Mapping table to get frequency order from char order (get from + # GetOrder()) + self._char_to_freq_order = None + self._table_size = None # Size of above table + # This is a constant value which varies from language to language, + # used in calculating confidence. See + # http://www.mozilla.org/projects/intl/UniversalCharsetDetection.html + # for further detail. + self.typical_distribution_ratio = None + self._done = None + self._total_chars = None + self._freq_chars = None + self.reset() + + def reset(self): + """reset analyser, clear any state""" + # If this flag is set to True, detection is done and conclusion has + # been made + self._done = False + self._total_chars = 0 # Total characters encountered + # The number of characters whose frequency order is less than 512 + self._freq_chars = 0 + + def feed(self, char, char_len): + """feed a character with known length""" + if char_len == 2: + # we only care about 2-bytes character in our distribution analysis + order = self.get_order(char) + else: + order = -1 + if order >= 0: + self._total_chars += 1 + # order is valid + if order < self._table_size: + if 512 > self._char_to_freq_order[order]: + self._freq_chars += 1 + + def get_confidence(self): + """return confidence based on existing data""" + # if we didn't receive any character in our consideration range, + # return negative answer + if self._total_chars <= 0 or self._freq_chars <= self.MINIMUM_DATA_THRESHOLD: + return self.SURE_NO + + if self._total_chars != self._freq_chars: + r = (self._freq_chars / ((self._total_chars - self._freq_chars) + * self.typical_distribution_ratio)) + if r < self.SURE_YES: + return r + + # normalize confidence (we don't want to be 100% sure) + return self.SURE_YES + + def got_enough_data(self): + # It is not necessary to receive all data to draw conclusion. + # For charset detection, certain amount of data is enough + return self._total_chars > self.ENOUGH_DATA_THRESHOLD + + def get_order(self, byte_str): + # We do not handle characters based on the original encoding string, + # but convert this encoding string to a number, here called order. + # This allows multiple encodings of a language to share one frequency + # table. + return -1 + + +class EUCTWDistributionAnalysis(CharDistributionAnalysis): + def __init__(self): + super(EUCTWDistributionAnalysis, self).__init__() + self._char_to_freq_order = EUCTW_CHAR_TO_FREQ_ORDER + self._table_size = EUCTW_TABLE_SIZE + self.typical_distribution_ratio = EUCTW_TYPICAL_DISTRIBUTION_RATIO + + def get_order(self, byte_str): + # for euc-TW encoding, we are interested + # first byte range: 0xc4 -- 0xfe + # second byte range: 0xa1 -- 0xfe + # no validation needed here. State machine has done that + first_char = byte_str[0] + if first_char >= 0xC4: + return 94 * (first_char - 0xC4) + byte_str[1] - 0xA1 + else: + return -1 + + +class EUCKRDistributionAnalysis(CharDistributionAnalysis): + def __init__(self): + super(EUCKRDistributionAnalysis, self).__init__() + self._char_to_freq_order = EUCKR_CHAR_TO_FREQ_ORDER + self._table_size = EUCKR_TABLE_SIZE + self.typical_distribution_ratio = EUCKR_TYPICAL_DISTRIBUTION_RATIO + + def get_order(self, byte_str): + # for euc-KR encoding, we are interested + # first byte range: 0xb0 -- 0xfe + # second byte range: 0xa1 -- 0xfe + # no validation needed here. State machine has done that + first_char = byte_str[0] + if first_char >= 0xB0: + return 94 * (first_char - 0xB0) + byte_str[1] - 0xA1 + else: + return -1 + + +class GB2312DistributionAnalysis(CharDistributionAnalysis): + def __init__(self): + super(GB2312DistributionAnalysis, self).__init__() + self._char_to_freq_order = GB2312_CHAR_TO_FREQ_ORDER + self._table_size = GB2312_TABLE_SIZE + self.typical_distribution_ratio = GB2312_TYPICAL_DISTRIBUTION_RATIO + + def get_order(self, byte_str): + # for GB2312 encoding, we are interested + # first byte range: 0xb0 -- 0xfe + # second byte range: 0xa1 -- 0xfe + # no validation needed here. State machine has done that + first_char, second_char = byte_str[0], byte_str[1] + if (first_char >= 0xB0) and (second_char >= 0xA1): + return 94 * (first_char - 0xB0) + second_char - 0xA1 + else: + return -1 + + +class Big5DistributionAnalysis(CharDistributionAnalysis): + def __init__(self): + super(Big5DistributionAnalysis, self).__init__() + self._char_to_freq_order = BIG5_CHAR_TO_FREQ_ORDER + self._table_size = BIG5_TABLE_SIZE + self.typical_distribution_ratio = BIG5_TYPICAL_DISTRIBUTION_RATIO + + def get_order(self, byte_str): + # for big5 encoding, we are interested + # first byte range: 0xa4 -- 0xfe + # second byte range: 0x40 -- 0x7e , 0xa1 -- 0xfe + # no validation needed here. State machine has done that + first_char, second_char = byte_str[0], byte_str[1] + if first_char >= 0xA4: + if second_char >= 0xA1: + return 157 * (first_char - 0xA4) + second_char - 0xA1 + 63 + else: + return 157 * (first_char - 0xA4) + second_char - 0x40 + else: + return -1 + + +class SJISDistributionAnalysis(CharDistributionAnalysis): + def __init__(self): + super(SJISDistributionAnalysis, self).__init__() + self._char_to_freq_order = JIS_CHAR_TO_FREQ_ORDER + self._table_size = JIS_TABLE_SIZE + self.typical_distribution_ratio = JIS_TYPICAL_DISTRIBUTION_RATIO + + def get_order(self, byte_str): + # for sjis encoding, we are interested + # first byte range: 0x81 -- 0x9f , 0xe0 -- 0xfe + # second byte range: 0x40 -- 0x7e, 0x81 -- oxfe + # no validation needed here. State machine has done that + first_char, second_char = byte_str[0], byte_str[1] + if (first_char >= 0x81) and (first_char <= 0x9F): + order = 188 * (first_char - 0x81) + elif (first_char >= 0xE0) and (first_char <= 0xEF): + order = 188 * (first_char - 0xE0 + 31) + else: + return -1 + order = order + second_char - 0x40 + if second_char > 0x7F: + order = -1 + return order + + +class EUCJPDistributionAnalysis(CharDistributionAnalysis): + def __init__(self): + super(EUCJPDistributionAnalysis, self).__init__() + self._char_to_freq_order = JIS_CHAR_TO_FREQ_ORDER + self._table_size = JIS_TABLE_SIZE + self.typical_distribution_ratio = JIS_TYPICAL_DISTRIBUTION_RATIO + + def get_order(self, byte_str): + # for euc-JP encoding, we are interested + # first byte range: 0xa0 -- 0xfe + # second byte range: 0xa1 -- 0xfe + # no validation needed here. State machine has done that + char = byte_str[0] + if char >= 0xA0: + return 94 * (char - 0xA1) + byte_str[1] - 0xa1 + else: + return -1 diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/charsetgroupprober.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/charsetgroupprober.py new file mode 100644 index 00000000..8b3738ef --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/charsetgroupprober.py @@ -0,0 +1,106 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Communicator client code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +from .enums import ProbingState +from .charsetprober import CharSetProber + + +class CharSetGroupProber(CharSetProber): + def __init__(self, lang_filter=None): + super(CharSetGroupProber, self).__init__(lang_filter=lang_filter) + self._active_num = 0 + self.probers = [] + self._best_guess_prober = None + + def reset(self): + super(CharSetGroupProber, self).reset() + self._active_num = 0 + for prober in self.probers: + if prober: + prober.reset() + prober.active = True + self._active_num += 1 + self._best_guess_prober = None + + @property + def charset_name(self): + if not self._best_guess_prober: + self.get_confidence() + if not self._best_guess_prober: + return None + return self._best_guess_prober.charset_name + + @property + def language(self): + if not self._best_guess_prober: + self.get_confidence() + if not self._best_guess_prober: + return None + return self._best_guess_prober.language + + def feed(self, byte_str): + for prober in self.probers: + if not prober: + continue + if not prober.active: + continue + state = prober.feed(byte_str) + if not state: + continue + if state == ProbingState.FOUND_IT: + self._best_guess_prober = prober + return self.state + elif state == ProbingState.NOT_ME: + prober.active = False + self._active_num -= 1 + if self._active_num <= 0: + self._state = ProbingState.NOT_ME + return self.state + return self.state + + def get_confidence(self): + state = self.state + if state == ProbingState.FOUND_IT: + return 0.99 + elif state == ProbingState.NOT_ME: + return 0.01 + best_conf = 0.0 + self._best_guess_prober = None + for prober in self.probers: + if not prober: + continue + if not prober.active: + self.logger.debug('%s not active', prober.charset_name) + continue + conf = prober.get_confidence() + self.logger.debug('%s %s confidence = %s', prober.charset_name, prober.language, conf) + if best_conf < conf: + best_conf = conf + self._best_guess_prober = prober + if not self._best_guess_prober: + return 0.0 + return best_conf diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/charsetprober.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/charsetprober.py new file mode 100644 index 00000000..eac4e598 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/charsetprober.py @@ -0,0 +1,145 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Universal charset detector code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 2001 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# Shy Shalom - original C code +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +import logging +import re + +from .enums import ProbingState + + +class CharSetProber(object): + + SHORTCUT_THRESHOLD = 0.95 + + def __init__(self, lang_filter=None): + self._state = None + self.lang_filter = lang_filter + self.logger = logging.getLogger(__name__) + + def reset(self): + self._state = ProbingState.DETECTING + + @property + def charset_name(self): + return None + + def feed(self, buf): + pass + + @property + def state(self): + return self._state + + def get_confidence(self): + return 0.0 + + @staticmethod + def filter_high_byte_only(buf): + buf = re.sub(b'([\x00-\x7F])+', b' ', buf) + return buf + + @staticmethod + def filter_international_words(buf): + """ + We define three types of bytes: + alphabet: english alphabets [a-zA-Z] + international: international characters [\x80-\xFF] + marker: everything else [^a-zA-Z\x80-\xFF] + + The input buffer can be thought to contain a series of words delimited + by markers. This function works to filter all words that contain at + least one international character. All contiguous sequences of markers + are replaced by a single space ascii character. + + This filter applies to all scripts which do not use English characters. + """ + filtered = bytearray() + + # This regex expression filters out only words that have at-least one + # international character. The word may include one marker character at + # the end. + words = re.findall(b'[a-zA-Z]*[\x80-\xFF]+[a-zA-Z]*[^a-zA-Z\x80-\xFF]?', + buf) + + for word in words: + filtered.extend(word[:-1]) + + # If the last character in the word is a marker, replace it with a + # space as markers shouldn't affect our analysis (they are used + # similarly across all languages and may thus have similar + # frequencies). + last_char = word[-1:] + if not last_char.isalpha() and last_char < b'\x80': + last_char = b' ' + filtered.extend(last_char) + + return filtered + + @staticmethod + def filter_with_english_letters(buf): + """ + Returns a copy of ``buf`` that retains only the sequences of English + alphabet and high byte characters that are not between <> characters. + Also retains English alphabet and high byte characters immediately + before occurrences of >. + + This filter can be applied to all scripts which contain both English + characters and extended ASCII characters, but is currently only used by + ``Latin1Prober``. + """ + filtered = bytearray() + in_tag = False + prev = 0 + + for curr in range(len(buf)): + # Slice here to get bytes instead of an int with Python 3 + buf_char = buf[curr:curr + 1] + # Check if we're coming out of or entering an HTML tag + if buf_char == b'>': + in_tag = False + elif buf_char == b'<': + in_tag = True + + # If current character is not extended-ASCII and not alphabetic... + if buf_char < b'\x80' and not buf_char.isalpha(): + # ...and we're not in a tag + if curr > prev and not in_tag: + # Keep everything after last non-extended-ASCII, + # non-alphabetic character + filtered.extend(buf[prev:curr]) + # Output a space to delimit stretch we kept + filtered.extend(b' ') + prev = curr + 1 + + # If we're not in a tag... + if not in_tag: + # Keep everything after last non-extended-ASCII, non-alphabetic + # character + filtered.extend(buf[prev:]) + + return filtered diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/cli/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/cli/__init__.py new file mode 100644 index 00000000..8b137891 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/cli/__init__.py @@ -0,0 +1 @@ + diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/cli/chardetect.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/cli/chardetect.py new file mode 100644 index 00000000..c61136b6 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/cli/chardetect.py @@ -0,0 +1,85 @@ +#!/usr/bin/env python +""" +Script which takes one or more file paths and reports on their detected +encodings + +Example:: + + % chardetect somefile someotherfile + somefile: windows-1252 with confidence 0.5 + someotherfile: ascii with confidence 1.0 + +If no paths are provided, it takes its input from stdin. + +""" + +from __future__ import absolute_import, print_function, unicode_literals + +import argparse +import sys + +from pip._vendor.chardet import __version__ +from pip._vendor.chardet.compat import PY2 +from pip._vendor.chardet.universaldetector import UniversalDetector + + +def description_of(lines, name='stdin'): + """ + Return a string describing the probable encoding of a file or + list of strings. + + :param lines: The lines to get the encoding of. + :type lines: Iterable of bytes + :param name: Name of file or collection of lines + :type name: str + """ + u = UniversalDetector() + for line in lines: + line = bytearray(line) + u.feed(line) + # shortcut out of the loop to save reading further - particularly useful if we read a BOM. + if u.done: + break + u.close() + result = u.result + if PY2: + name = name.decode(sys.getfilesystemencoding(), 'ignore') + if result['encoding']: + return '{0}: {1} with confidence {2}'.format(name, result['encoding'], + result['confidence']) + else: + return '{0}: no result'.format(name) + + +def main(argv=None): + """ + Handles command line arguments and gets things started. + + :param argv: List of arguments, as if specified on the command-line. + If None, ``sys.argv[1:]`` is used instead. + :type argv: list of str + """ + # Get command line arguments + parser = argparse.ArgumentParser( + description="Takes one or more file paths and reports their detected \ + encodings") + parser.add_argument('input', + help='File whose encoding we would like to determine. \ + (default: stdin)', + type=argparse.FileType('rb'), nargs='*', + default=[sys.stdin if PY2 else sys.stdin.buffer]) + parser.add_argument('--version', action='version', + version='%(prog)s {0}'.format(__version__)) + args = parser.parse_args(argv) + + for f in args.input: + if f.isatty(): + print("You are running chardetect interactively. Press " + + "CTRL-D twice at the start of a blank line to signal the " + + "end of your input. If you want help, run chardetect " + + "--help\n", file=sys.stderr) + print(description_of(f, f.name)) + + +if __name__ == '__main__': + main() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/codingstatemachine.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/codingstatemachine.py new file mode 100644 index 00000000..68fba44f --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/codingstatemachine.py @@ -0,0 +1,88 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +import logging + +from .enums import MachineState + + +class CodingStateMachine(object): + """ + A state machine to verify a byte sequence for a particular encoding. For + each byte the detector receives, it will feed that byte to every active + state machine available, one byte at a time. The state machine changes its + state based on its previous state and the byte it receives. There are 3 + states in a state machine that are of interest to an auto-detector: + + START state: This is the state to start with, or a legal byte sequence + (i.e. a valid code point) for character has been identified. + + ME state: This indicates that the state machine identified a byte sequence + that is specific to the charset it is designed for and that + there is no other possible encoding which can contain this byte + sequence. This will to lead to an immediate positive answer for + the detector. + + ERROR state: This indicates the state machine identified an illegal byte + sequence for that encoding. This will lead to an immediate + negative answer for this encoding. Detector will exclude this + encoding from consideration from here on. + """ + def __init__(self, sm): + self._model = sm + self._curr_byte_pos = 0 + self._curr_char_len = 0 + self._curr_state = None + self.logger = logging.getLogger(__name__) + self.reset() + + def reset(self): + self._curr_state = MachineState.START + + def next_state(self, c): + # for each byte we get its class + # if it is first byte, we also get byte length + byte_class = self._model['class_table'][c] + if self._curr_state == MachineState.START: + self._curr_byte_pos = 0 + self._curr_char_len = self._model['char_len_table'][byte_class] + # from byte's class and state_table, we get its next state + curr_state = (self._curr_state * self._model['class_factor'] + + byte_class) + self._curr_state = self._model['state_table'][curr_state] + self._curr_byte_pos += 1 + return self._curr_state + + def get_current_charlen(self): + return self._curr_char_len + + def get_coding_state_machine(self): + return self._model['name'] + + @property + def language(self): + return self._model['language'] diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/compat.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/compat.py new file mode 100644 index 00000000..ddd74687 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/compat.py @@ -0,0 +1,34 @@ +######################## BEGIN LICENSE BLOCK ######################## +# Contributor(s): +# Dan Blanchard +# Ian Cordasco +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +import sys + + +if sys.version_info < (3, 0): + PY2 = True + PY3 = False + base_str = (str, unicode) + text_type = unicode +else: + PY2 = False + PY3 = True + base_str = (bytes, str) + text_type = str diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/cp949prober.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/cp949prober.py new file mode 100644 index 00000000..efd793ab --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/cp949prober.py @@ -0,0 +1,49 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +from .chardistribution import EUCKRDistributionAnalysis +from .codingstatemachine import CodingStateMachine +from .mbcharsetprober import MultiByteCharSetProber +from .mbcssm import CP949_SM_MODEL + + +class CP949Prober(MultiByteCharSetProber): + def __init__(self): + super(CP949Prober, self).__init__() + self.coding_sm = CodingStateMachine(CP949_SM_MODEL) + # NOTE: CP949 is a superset of EUC-KR, so the distribution should be + # not different. + self.distribution_analyzer = EUCKRDistributionAnalysis() + self.reset() + + @property + def charset_name(self): + return "CP949" + + @property + def language(self): + return "Korean" diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/enums.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/enums.py new file mode 100644 index 00000000..04512072 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/enums.py @@ -0,0 +1,76 @@ +""" +All of the Enums that are used throughout the chardet package. + +:author: Dan Blanchard (dan.blanchard@gmail.com) +""" + + +class InputState(object): + """ + This enum represents the different states a universal detector can be in. + """ + PURE_ASCII = 0 + ESC_ASCII = 1 + HIGH_BYTE = 2 + + +class LanguageFilter(object): + """ + This enum represents the different language filters we can apply to a + ``UniversalDetector``. + """ + CHINESE_SIMPLIFIED = 0x01 + CHINESE_TRADITIONAL = 0x02 + JAPANESE = 0x04 + KOREAN = 0x08 + NON_CJK = 0x10 + ALL = 0x1F + CHINESE = CHINESE_SIMPLIFIED | CHINESE_TRADITIONAL + CJK = CHINESE | JAPANESE | KOREAN + + +class ProbingState(object): + """ + This enum represents the different states a prober can be in. + """ + DETECTING = 0 + FOUND_IT = 1 + NOT_ME = 2 + + +class MachineState(object): + """ + This enum represents the different states a state machine can be in. + """ + START = 0 + ERROR = 1 + ITS_ME = 2 + + +class SequenceLikelihood(object): + """ + This enum represents the likelihood of a character following the previous one. + """ + NEGATIVE = 0 + UNLIKELY = 1 + LIKELY = 2 + POSITIVE = 3 + + @classmethod + def get_num_categories(cls): + """:returns: The number of likelihood categories in the enum.""" + return 4 + + +class CharacterCategory(object): + """ + This enum represents the different categories language models for + ``SingleByteCharsetProber`` put characters into. + + Anything less than CONTROL is considered a letter. + """ + UNDEFINED = 255 + LINE_BREAK = 254 + SYMBOL = 253 + DIGIT = 252 + CONTROL = 251 diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/escprober.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/escprober.py new file mode 100644 index 00000000..c70493f2 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/escprober.py @@ -0,0 +1,101 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +from .charsetprober import CharSetProber +from .codingstatemachine import CodingStateMachine +from .enums import LanguageFilter, ProbingState, MachineState +from .escsm import (HZ_SM_MODEL, ISO2022CN_SM_MODEL, ISO2022JP_SM_MODEL, + ISO2022KR_SM_MODEL) + + +class EscCharSetProber(CharSetProber): + """ + This CharSetProber uses a "code scheme" approach for detecting encodings, + whereby easily recognizable escape or shift sequences are relied on to + identify these encodings. + """ + + def __init__(self, lang_filter=None): + super(EscCharSetProber, self).__init__(lang_filter=lang_filter) + self.coding_sm = [] + if self.lang_filter & LanguageFilter.CHINESE_SIMPLIFIED: + self.coding_sm.append(CodingStateMachine(HZ_SM_MODEL)) + self.coding_sm.append(CodingStateMachine(ISO2022CN_SM_MODEL)) + if self.lang_filter & LanguageFilter.JAPANESE: + self.coding_sm.append(CodingStateMachine(ISO2022JP_SM_MODEL)) + if self.lang_filter & LanguageFilter.KOREAN: + self.coding_sm.append(CodingStateMachine(ISO2022KR_SM_MODEL)) + self.active_sm_count = None + self._detected_charset = None + self._detected_language = None + self._state = None + self.reset() + + def reset(self): + super(EscCharSetProber, self).reset() + for coding_sm in self.coding_sm: + if not coding_sm: + continue + coding_sm.active = True + coding_sm.reset() + self.active_sm_count = len(self.coding_sm) + self._detected_charset = None + self._detected_language = None + + @property + def charset_name(self): + return self._detected_charset + + @property + def language(self): + return self._detected_language + + def get_confidence(self): + if self._detected_charset: + return 0.99 + else: + return 0.00 + + def feed(self, byte_str): + for c in byte_str: + for coding_sm in self.coding_sm: + if not coding_sm or not coding_sm.active: + continue + coding_state = coding_sm.next_state(c) + if coding_state == MachineState.ERROR: + coding_sm.active = False + self.active_sm_count -= 1 + if self.active_sm_count <= 0: + self._state = ProbingState.NOT_ME + return self.state + elif coding_state == MachineState.ITS_ME: + self._state = ProbingState.FOUND_IT + self._detected_charset = coding_sm.get_coding_state_machine() + self._detected_language = coding_sm.language + return self.state + + return self.state diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/escsm.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/escsm.py new file mode 100644 index 00000000..0069523a --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/escsm.py @@ -0,0 +1,246 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +from .enums import MachineState + +HZ_CLS = ( +1,0,0,0,0,0,0,0, # 00 - 07 +0,0,0,0,0,0,0,0, # 08 - 0f +0,0,0,0,0,0,0,0, # 10 - 17 +0,0,0,1,0,0,0,0, # 18 - 1f +0,0,0,0,0,0,0,0, # 20 - 27 +0,0,0,0,0,0,0,0, # 28 - 2f +0,0,0,0,0,0,0,0, # 30 - 37 +0,0,0,0,0,0,0,0, # 38 - 3f +0,0,0,0,0,0,0,0, # 40 - 47 +0,0,0,0,0,0,0,0, # 48 - 4f +0,0,0,0,0,0,0,0, # 50 - 57 +0,0,0,0,0,0,0,0, # 58 - 5f +0,0,0,0,0,0,0,0, # 60 - 67 +0,0,0,0,0,0,0,0, # 68 - 6f +0,0,0,0,0,0,0,0, # 70 - 77 +0,0,0,4,0,5,2,0, # 78 - 7f +1,1,1,1,1,1,1,1, # 80 - 87 +1,1,1,1,1,1,1,1, # 88 - 8f +1,1,1,1,1,1,1,1, # 90 - 97 +1,1,1,1,1,1,1,1, # 98 - 9f +1,1,1,1,1,1,1,1, # a0 - a7 +1,1,1,1,1,1,1,1, # a8 - af +1,1,1,1,1,1,1,1, # b0 - b7 +1,1,1,1,1,1,1,1, # b8 - bf +1,1,1,1,1,1,1,1, # c0 - c7 +1,1,1,1,1,1,1,1, # c8 - cf +1,1,1,1,1,1,1,1, # d0 - d7 +1,1,1,1,1,1,1,1, # d8 - df +1,1,1,1,1,1,1,1, # e0 - e7 +1,1,1,1,1,1,1,1, # e8 - ef +1,1,1,1,1,1,1,1, # f0 - f7 +1,1,1,1,1,1,1,1, # f8 - ff +) + +HZ_ST = ( +MachineState.START,MachineState.ERROR, 3,MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,# 00-07 +MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,# 08-0f +MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START, 4,MachineState.ERROR,# 10-17 + 5,MachineState.ERROR, 6,MachineState.ERROR, 5, 5, 4,MachineState.ERROR,# 18-1f + 4,MachineState.ERROR, 4, 4, 4,MachineState.ERROR, 4,MachineState.ERROR,# 20-27 + 4,MachineState.ITS_ME,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,# 28-2f +) + +HZ_CHAR_LEN_TABLE = (0, 0, 0, 0, 0, 0) + +HZ_SM_MODEL = {'class_table': HZ_CLS, + 'class_factor': 6, + 'state_table': HZ_ST, + 'char_len_table': HZ_CHAR_LEN_TABLE, + 'name': "HZ-GB-2312", + 'language': 'Chinese'} + +ISO2022CN_CLS = ( +2,0,0,0,0,0,0,0, # 00 - 07 +0,0,0,0,0,0,0,0, # 08 - 0f +0,0,0,0,0,0,0,0, # 10 - 17 +0,0,0,1,0,0,0,0, # 18 - 1f +0,0,0,0,0,0,0,0, # 20 - 27 +0,3,0,0,0,0,0,0, # 28 - 2f +0,0,0,0,0,0,0,0, # 30 - 37 +0,0,0,0,0,0,0,0, # 38 - 3f +0,0,0,4,0,0,0,0, # 40 - 47 +0,0,0,0,0,0,0,0, # 48 - 4f +0,0,0,0,0,0,0,0, # 50 - 57 +0,0,0,0,0,0,0,0, # 58 - 5f +0,0,0,0,0,0,0,0, # 60 - 67 +0,0,0,0,0,0,0,0, # 68 - 6f +0,0,0,0,0,0,0,0, # 70 - 77 +0,0,0,0,0,0,0,0, # 78 - 7f +2,2,2,2,2,2,2,2, # 80 - 87 +2,2,2,2,2,2,2,2, # 88 - 8f +2,2,2,2,2,2,2,2, # 90 - 97 +2,2,2,2,2,2,2,2, # 98 - 9f +2,2,2,2,2,2,2,2, # a0 - a7 +2,2,2,2,2,2,2,2, # a8 - af +2,2,2,2,2,2,2,2, # b0 - b7 +2,2,2,2,2,2,2,2, # b8 - bf +2,2,2,2,2,2,2,2, # c0 - c7 +2,2,2,2,2,2,2,2, # c8 - cf +2,2,2,2,2,2,2,2, # d0 - d7 +2,2,2,2,2,2,2,2, # d8 - df +2,2,2,2,2,2,2,2, # e0 - e7 +2,2,2,2,2,2,2,2, # e8 - ef +2,2,2,2,2,2,2,2, # f0 - f7 +2,2,2,2,2,2,2,2, # f8 - ff +) + +ISO2022CN_ST = ( +MachineState.START, 3,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,# 00-07 +MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 08-0f +MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,# 10-17 +MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 4,MachineState.ERROR,# 18-1f +MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 20-27 + 5, 6,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 28-2f +MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 30-37 +MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,MachineState.START,# 38-3f +) + +ISO2022CN_CHAR_LEN_TABLE = (0, 0, 0, 0, 0, 0, 0, 0, 0) + +ISO2022CN_SM_MODEL = {'class_table': ISO2022CN_CLS, + 'class_factor': 9, + 'state_table': ISO2022CN_ST, + 'char_len_table': ISO2022CN_CHAR_LEN_TABLE, + 'name': "ISO-2022-CN", + 'language': 'Chinese'} + +ISO2022JP_CLS = ( +2,0,0,0,0,0,0,0, # 00 - 07 +0,0,0,0,0,0,2,2, # 08 - 0f +0,0,0,0,0,0,0,0, # 10 - 17 +0,0,0,1,0,0,0,0, # 18 - 1f +0,0,0,0,7,0,0,0, # 20 - 27 +3,0,0,0,0,0,0,0, # 28 - 2f +0,0,0,0,0,0,0,0, # 30 - 37 +0,0,0,0,0,0,0,0, # 38 - 3f +6,0,4,0,8,0,0,0, # 40 - 47 +0,9,5,0,0,0,0,0, # 48 - 4f +0,0,0,0,0,0,0,0, # 50 - 57 +0,0,0,0,0,0,0,0, # 58 - 5f +0,0,0,0,0,0,0,0, # 60 - 67 +0,0,0,0,0,0,0,0, # 68 - 6f +0,0,0,0,0,0,0,0, # 70 - 77 +0,0,0,0,0,0,0,0, # 78 - 7f +2,2,2,2,2,2,2,2, # 80 - 87 +2,2,2,2,2,2,2,2, # 88 - 8f +2,2,2,2,2,2,2,2, # 90 - 97 +2,2,2,2,2,2,2,2, # 98 - 9f +2,2,2,2,2,2,2,2, # a0 - a7 +2,2,2,2,2,2,2,2, # a8 - af +2,2,2,2,2,2,2,2, # b0 - b7 +2,2,2,2,2,2,2,2, # b8 - bf +2,2,2,2,2,2,2,2, # c0 - c7 +2,2,2,2,2,2,2,2, # c8 - cf +2,2,2,2,2,2,2,2, # d0 - d7 +2,2,2,2,2,2,2,2, # d8 - df +2,2,2,2,2,2,2,2, # e0 - e7 +2,2,2,2,2,2,2,2, # e8 - ef +2,2,2,2,2,2,2,2, # f0 - f7 +2,2,2,2,2,2,2,2, # f8 - ff +) + +ISO2022JP_ST = ( +MachineState.START, 3,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,# 00-07 +MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 08-0f +MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,# 10-17 +MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,# 18-1f +MachineState.ERROR, 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 4,MachineState.ERROR,MachineState.ERROR,# 20-27 +MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 6,MachineState.ITS_ME,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,# 28-2f +MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,# 30-37 +MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 38-3f +MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,MachineState.START,MachineState.START,# 40-47 +) + +ISO2022JP_CHAR_LEN_TABLE = (0, 0, 0, 0, 0, 0, 0, 0, 0, 0) + +ISO2022JP_SM_MODEL = {'class_table': ISO2022JP_CLS, + 'class_factor': 10, + 'state_table': ISO2022JP_ST, + 'char_len_table': ISO2022JP_CHAR_LEN_TABLE, + 'name': "ISO-2022-JP", + 'language': 'Japanese'} + +ISO2022KR_CLS = ( +2,0,0,0,0,0,0,0, # 00 - 07 +0,0,0,0,0,0,0,0, # 08 - 0f +0,0,0,0,0,0,0,0, # 10 - 17 +0,0,0,1,0,0,0,0, # 18 - 1f +0,0,0,0,3,0,0,0, # 20 - 27 +0,4,0,0,0,0,0,0, # 28 - 2f +0,0,0,0,0,0,0,0, # 30 - 37 +0,0,0,0,0,0,0,0, # 38 - 3f +0,0,0,5,0,0,0,0, # 40 - 47 +0,0,0,0,0,0,0,0, # 48 - 4f +0,0,0,0,0,0,0,0, # 50 - 57 +0,0,0,0,0,0,0,0, # 58 - 5f +0,0,0,0,0,0,0,0, # 60 - 67 +0,0,0,0,0,0,0,0, # 68 - 6f +0,0,0,0,0,0,0,0, # 70 - 77 +0,0,0,0,0,0,0,0, # 78 - 7f +2,2,2,2,2,2,2,2, # 80 - 87 +2,2,2,2,2,2,2,2, # 88 - 8f +2,2,2,2,2,2,2,2, # 90 - 97 +2,2,2,2,2,2,2,2, # 98 - 9f +2,2,2,2,2,2,2,2, # a0 - a7 +2,2,2,2,2,2,2,2, # a8 - af +2,2,2,2,2,2,2,2, # b0 - b7 +2,2,2,2,2,2,2,2, # b8 - bf +2,2,2,2,2,2,2,2, # c0 - c7 +2,2,2,2,2,2,2,2, # c8 - cf +2,2,2,2,2,2,2,2, # d0 - d7 +2,2,2,2,2,2,2,2, # d8 - df +2,2,2,2,2,2,2,2, # e0 - e7 +2,2,2,2,2,2,2,2, # e8 - ef +2,2,2,2,2,2,2,2, # f0 - f7 +2,2,2,2,2,2,2,2, # f8 - ff +) + +ISO2022KR_ST = ( +MachineState.START, 3,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,# 00-07 +MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,# 08-0f +MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 4,MachineState.ERROR,MachineState.ERROR,# 10-17 +MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,# 18-1f +MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.START,MachineState.START,MachineState.START,MachineState.START,# 20-27 +) + +ISO2022KR_CHAR_LEN_TABLE = (0, 0, 0, 0, 0, 0) + +ISO2022KR_SM_MODEL = {'class_table': ISO2022KR_CLS, + 'class_factor': 6, + 'state_table': ISO2022KR_ST, + 'char_len_table': ISO2022KR_CHAR_LEN_TABLE, + 'name': "ISO-2022-KR", + 'language': 'Korean'} + + diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/eucjpprober.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/eucjpprober.py new file mode 100644 index 00000000..20ce8f7d --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/eucjpprober.py @@ -0,0 +1,92 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +from .enums import ProbingState, MachineState +from .mbcharsetprober import MultiByteCharSetProber +from .codingstatemachine import CodingStateMachine +from .chardistribution import EUCJPDistributionAnalysis +from .jpcntx import EUCJPContextAnalysis +from .mbcssm import EUCJP_SM_MODEL + + +class EUCJPProber(MultiByteCharSetProber): + def __init__(self): + super(EUCJPProber, self).__init__() + self.coding_sm = CodingStateMachine(EUCJP_SM_MODEL) + self.distribution_analyzer = EUCJPDistributionAnalysis() + self.context_analyzer = EUCJPContextAnalysis() + self.reset() + + def reset(self): + super(EUCJPProber, self).reset() + self.context_analyzer.reset() + + @property + def charset_name(self): + return "EUC-JP" + + @property + def language(self): + return "Japanese" + + def feed(self, byte_str): + for i in range(len(byte_str)): + # PY3K: byte_str is a byte array, so byte_str[i] is an int, not a byte + coding_state = self.coding_sm.next_state(byte_str[i]) + if coding_state == MachineState.ERROR: + self.logger.debug('%s %s prober hit error at byte %s', + self.charset_name, self.language, i) + self._state = ProbingState.NOT_ME + break + elif coding_state == MachineState.ITS_ME: + self._state = ProbingState.FOUND_IT + break + elif coding_state == MachineState.START: + char_len = self.coding_sm.get_current_charlen() + if i == 0: + self._last_char[1] = byte_str[0] + self.context_analyzer.feed(self._last_char, char_len) + self.distribution_analyzer.feed(self._last_char, char_len) + else: + self.context_analyzer.feed(byte_str[i - 1:i + 1], + char_len) + self.distribution_analyzer.feed(byte_str[i - 1:i + 1], + char_len) + + self._last_char[0] = byte_str[-1] + + if self.state == ProbingState.DETECTING: + if (self.context_analyzer.got_enough_data() and + (self.get_confidence() > self.SHORTCUT_THRESHOLD)): + self._state = ProbingState.FOUND_IT + + return self.state + + def get_confidence(self): + context_conf = self.context_analyzer.get_confidence() + distrib_conf = self.distribution_analyzer.get_confidence() + return max(context_conf, distrib_conf) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/euckrfreq.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/euckrfreq.py new file mode 100644 index 00000000..b68078cb --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/euckrfreq.py @@ -0,0 +1,195 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Communicator client code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +# Sampling from about 20M text materials include literature and computer technology + +# 128 --> 0.79 +# 256 --> 0.92 +# 512 --> 0.986 +# 1024 --> 0.99944 +# 2048 --> 0.99999 +# +# Idea Distribution Ratio = 0.98653 / (1-0.98653) = 73.24 +# Random Distribution Ration = 512 / (2350-512) = 0.279. +# +# Typical Distribution Ratio + +EUCKR_TYPICAL_DISTRIBUTION_RATIO = 6.0 + +EUCKR_TABLE_SIZE = 2352 + +# Char to FreqOrder table , +EUCKR_CHAR_TO_FREQ_ORDER = ( + 13, 130, 120,1396, 481,1719,1720, 328, 609, 212,1721, 707, 400, 299,1722, 87, +1397,1723, 104, 536,1117,1203,1724,1267, 685,1268, 508,1725,1726,1727,1728,1398, +1399,1729,1730,1731, 141, 621, 326,1057, 368,1732, 267, 488, 20,1733,1269,1734, + 945,1400,1735, 47, 904,1270,1736,1737, 773, 248,1738, 409, 313, 786, 429,1739, + 116, 987, 813,1401, 683, 75,1204, 145,1740,1741,1742,1743, 16, 847, 667, 622, + 708,1744,1745,1746, 966, 787, 304, 129,1747, 60, 820, 123, 676,1748,1749,1750, +1751, 617,1752, 626,1753,1754,1755,1756, 653,1757,1758,1759,1760,1761,1762, 856, + 344,1763,1764,1765,1766, 89, 401, 418, 806, 905, 848,1767,1768,1769, 946,1205, + 709,1770,1118,1771, 241,1772,1773,1774,1271,1775, 569,1776, 999,1777,1778,1779, +1780, 337, 751,1058, 28, 628, 254,1781, 177, 906, 270, 349, 891,1079,1782, 19, +1783, 379,1784, 315,1785, 629, 754,1402, 559,1786, 636, 203,1206,1787, 710, 567, +1788, 935, 814,1789,1790,1207, 766, 528,1791,1792,1208,1793,1794,1795,1796,1797, +1403,1798,1799, 533,1059,1404,1405,1156,1406, 936, 884,1080,1800, 351,1801,1802, +1803,1804,1805, 801,1806,1807,1808,1119,1809,1157, 714, 474,1407,1810, 298, 899, + 885,1811,1120, 802,1158,1812, 892,1813,1814,1408, 659,1815,1816,1121,1817,1818, +1819,1820,1821,1822, 319,1823, 594, 545,1824, 815, 937,1209,1825,1826, 573,1409, +1022,1827,1210,1828,1829,1830,1831,1832,1833, 556, 722, 807,1122,1060,1834, 697, +1835, 900, 557, 715,1836,1410, 540,1411, 752,1159, 294, 597,1211, 976, 803, 770, +1412,1837,1838, 39, 794,1413, 358,1839, 371, 925,1840, 453, 661, 788, 531, 723, + 544,1023,1081, 869, 91,1841, 392, 430, 790, 602,1414, 677,1082, 457,1415,1416, +1842,1843, 475, 327,1024,1417, 795, 121,1844, 733, 403,1418,1845,1846,1847, 300, + 119, 711,1212, 627,1848,1272, 207,1849,1850, 796,1213, 382,1851, 519,1852,1083, + 893,1853,1854,1855, 367, 809, 487, 671,1856, 663,1857,1858, 956, 471, 306, 857, +1859,1860,1160,1084,1861,1862,1863,1864,1865,1061,1866,1867,1868,1869,1870,1871, + 282, 96, 574,1872, 502,1085,1873,1214,1874, 907,1875,1876, 827, 977,1419,1420, +1421, 268,1877,1422,1878,1879,1880, 308,1881, 2, 537,1882,1883,1215,1884,1885, + 127, 791,1886,1273,1423,1887, 34, 336, 404, 643,1888, 571, 654, 894, 840,1889, + 0, 886,1274, 122, 575, 260, 908, 938,1890,1275, 410, 316,1891,1892, 100,1893, +1894,1123, 48,1161,1124,1025,1895, 633, 901,1276,1896,1897, 115, 816,1898, 317, +1899, 694,1900, 909, 734,1424, 572, 866,1425, 691, 85, 524,1010, 543, 394, 841, +1901,1902,1903,1026,1904,1905,1906,1907,1908,1909, 30, 451, 651, 988, 310,1910, +1911,1426, 810,1216, 93,1912,1913,1277,1217,1914, 858, 759, 45, 58, 181, 610, + 269,1915,1916, 131,1062, 551, 443,1000, 821,1427, 957, 895,1086,1917,1918, 375, +1919, 359,1920, 687,1921, 822,1922, 293,1923,1924, 40, 662, 118, 692, 29, 939, + 887, 640, 482, 174,1925, 69,1162, 728,1428, 910,1926,1278,1218,1279, 386, 870, + 217, 854,1163, 823,1927,1928,1929,1930, 834,1931, 78,1932, 859,1933,1063,1934, +1935,1936,1937, 438,1164, 208, 595,1938,1939,1940,1941,1219,1125,1942, 280, 888, +1429,1430,1220,1431,1943,1944,1945,1946,1947,1280, 150, 510,1432,1948,1949,1950, +1951,1952,1953,1954,1011,1087,1955,1433,1043,1956, 881,1957, 614, 958,1064,1065, +1221,1958, 638,1001, 860, 967, 896,1434, 989, 492, 553,1281,1165,1959,1282,1002, +1283,1222,1960,1961,1962,1963, 36, 383, 228, 753, 247, 454,1964, 876, 678,1965, +1966,1284, 126, 464, 490, 835, 136, 672, 529, 940,1088,1435, 473,1967,1968, 467, + 50, 390, 227, 587, 279, 378, 598, 792, 968, 240, 151, 160, 849, 882,1126,1285, + 639,1044, 133, 140, 288, 360, 811, 563,1027, 561, 142, 523,1969,1970,1971, 7, + 103, 296, 439, 407, 506, 634, 990,1972,1973,1974,1975, 645,1976,1977,1978,1979, +1980,1981, 236,1982,1436,1983,1984,1089, 192, 828, 618, 518,1166, 333,1127,1985, + 818,1223,1986,1987,1988,1989,1990,1991,1992,1993, 342,1128,1286, 746, 842,1994, +1995, 560, 223,1287, 98, 8, 189, 650, 978,1288,1996,1437,1997, 17, 345, 250, + 423, 277, 234, 512, 226, 97, 289, 42, 167,1998, 201,1999,2000, 843, 836, 824, + 532, 338, 783,1090, 182, 576, 436,1438,1439, 527, 500,2001, 947, 889,2002,2003, +2004,2005, 262, 600, 314, 447,2006, 547,2007, 693, 738,1129,2008, 71,1440, 745, + 619, 688,2009, 829,2010,2011, 147,2012, 33, 948,2013,2014, 74, 224,2015, 61, + 191, 918, 399, 637,2016,1028,1130, 257, 902,2017,2018,2019,2020,2021,2022,2023, +2024,2025,2026, 837,2027,2028,2029,2030, 179, 874, 591, 52, 724, 246,2031,2032, +2033,2034,1167, 969,2035,1289, 630, 605, 911,1091,1168,2036,2037,2038,1441, 912, +2039, 623,2040,2041, 253,1169,1290,2042,1442, 146, 620, 611, 577, 433,2043,1224, + 719,1170, 959, 440, 437, 534, 84, 388, 480,1131, 159, 220, 198, 679,2044,1012, + 819,1066,1443, 113,1225, 194, 318,1003,1029,2045,2046,2047,2048,1067,2049,2050, +2051,2052,2053, 59, 913, 112,2054, 632,2055, 455, 144, 739,1291,2056, 273, 681, + 499,2057, 448,2058,2059, 760,2060,2061, 970, 384, 169, 245,1132,2062,2063, 414, +1444,2064,2065, 41, 235,2066, 157, 252, 877, 568, 919, 789, 580,2067, 725,2068, +2069,1292,2070,2071,1445,2072,1446,2073,2074, 55, 588, 66,1447, 271,1092,2075, +1226,2076, 960,1013, 372,2077,2078,2079,2080,2081,1293,2082,2083,2084,2085, 850, +2086,2087,2088,2089,2090, 186,2091,1068, 180,2092,2093,2094, 109,1227, 522, 606, +2095, 867,1448,1093, 991,1171, 926, 353,1133,2096, 581,2097,2098,2099,1294,1449, +1450,2100, 596,1172,1014,1228,2101,1451,1295,1173,1229,2102,2103,1296,1134,1452, + 949,1135,2104,2105,1094,1453,1454,1455,2106,1095,2107,2108,2109,2110,2111,2112, +2113,2114,2115,2116,2117, 804,2118,2119,1230,1231, 805,1456, 405,1136,2120,2121, +2122,2123,2124, 720, 701,1297, 992,1457, 927,1004,2125,2126,2127,2128,2129,2130, + 22, 417,2131, 303,2132, 385,2133, 971, 520, 513,2134,1174, 73,1096, 231, 274, + 962,1458, 673,2135,1459,2136, 152,1137,2137,2138,2139,2140,1005,1138,1460,1139, +2141,2142,2143,2144, 11, 374, 844,2145, 154,1232, 46,1461,2146, 838, 830, 721, +1233, 106,2147, 90, 428, 462, 578, 566,1175, 352,2148,2149, 538,1234, 124,1298, +2150,1462, 761, 565,2151, 686,2152, 649,2153, 72, 173,2154, 460, 415,2155,1463, +2156,1235, 305,2157,2158,2159,2160,2161,2162, 579,2163,2164,2165,2166,2167, 747, +2168,2169,2170,2171,1464, 669,2172,2173,2174,2175,2176,1465,2177, 23, 530, 285, +2178, 335, 729,2179, 397,2180,2181,2182,1030,2183,2184, 698,2185,2186, 325,2187, +2188, 369,2189, 799,1097,1015, 348,2190,1069, 680,2191, 851,1466,2192,2193, 10, +2194, 613, 424,2195, 979, 108, 449, 589, 27, 172, 81,1031, 80, 774, 281, 350, +1032, 525, 301, 582,1176,2196, 674,1045,2197,2198,1467, 730, 762,2199,2200,2201, +2202,1468,2203, 993,2204,2205, 266,1070, 963,1140,2206,2207,2208, 664,1098, 972, +2209,2210,2211,1177,1469,1470, 871,2212,2213,2214,2215,2216,1471,2217,2218,2219, +2220,2221,2222,2223,2224,2225,2226,2227,1472,1236,2228,2229,2230,2231,2232,2233, +2234,2235,1299,2236,2237, 200,2238, 477, 373,2239,2240, 731, 825, 777,2241,2242, +2243, 521, 486, 548,2244,2245,2246,1473,1300, 53, 549, 137, 875, 76, 158,2247, +1301,1474, 469, 396,1016, 278, 712,2248, 321, 442, 503, 767, 744, 941,1237,1178, +1475,2249, 82, 178,1141,1179, 973,2250,1302,2251, 297,2252,2253, 570,2254,2255, +2256, 18, 450, 206,2257, 290, 292,1142,2258, 511, 162, 99, 346, 164, 735,2259, +1476,1477, 4, 554, 343, 798,1099,2260,1100,2261, 43, 171,1303, 139, 215,2262, +2263, 717, 775,2264,1033, 322, 216,2265, 831,2266, 149,2267,1304,2268,2269, 702, +1238, 135, 845, 347, 309,2270, 484,2271, 878, 655, 238,1006,1478,2272, 67,2273, + 295,2274,2275, 461,2276, 478, 942, 412,2277,1034,2278,2279,2280, 265,2281, 541, +2282,2283,2284,2285,2286, 70, 852,1071,2287,2288,2289,2290, 21, 56, 509, 117, + 432,2291,2292, 331, 980, 552,1101, 148, 284, 105, 393,1180,1239, 755,2293, 187, +2294,1046,1479,2295, 340,2296, 63,1047, 230,2297,2298,1305, 763,1306, 101, 800, + 808, 494,2299,2300,2301, 903,2302, 37,1072, 14, 5,2303, 79, 675,2304, 312, +2305,2306,2307,2308,2309,1480, 6,1307,2310,2311,2312, 1, 470, 35, 24, 229, +2313, 695, 210, 86, 778, 15, 784, 592, 779, 32, 77, 855, 964,2314, 259,2315, + 501, 380,2316,2317, 83, 981, 153, 689,1308,1481,1482,1483,2318,2319, 716,1484, +2320,2321,2322,2323,2324,2325,1485,2326,2327, 128, 57, 68, 261,1048, 211, 170, +1240, 31,2328, 51, 435, 742,2329,2330,2331, 635,2332, 264, 456,2333,2334,2335, + 425,2336,1486, 143, 507, 263, 943,2337, 363, 920,1487, 256,1488,1102, 243, 601, +1489,2338,2339,2340,2341,2342,2343,2344, 861,2345,2346,2347,2348,2349,2350, 395, +2351,1490,1491, 62, 535, 166, 225,2352,2353, 668, 419,1241, 138, 604, 928,2354, +1181,2355,1492,1493,2356,2357,2358,1143,2359, 696,2360, 387, 307,1309, 682, 476, +2361,2362, 332, 12, 222, 156,2363, 232,2364, 641, 276, 656, 517,1494,1495,1035, + 416, 736,1496,2365,1017, 586,2366,2367,2368,1497,2369, 242,2370,2371,2372,1498, +2373, 965, 713,2374,2375,2376,2377, 740, 982,1499, 944,1500,1007,2378,2379,1310, +1501,2380,2381,2382, 785, 329,2383,2384,1502,2385,2386,2387, 932,2388,1503,2389, +2390,2391,2392,1242,2393,2394,2395,2396,2397, 994, 950,2398,2399,2400,2401,1504, +1311,2402,2403,2404,2405,1049, 749,2406,2407, 853, 718,1144,1312,2408,1182,1505, +2409,2410, 255, 516, 479, 564, 550, 214,1506,1507,1313, 413, 239, 444, 339,1145, +1036,1508,1509,1314,1037,1510,1315,2411,1511,2412,2413,2414, 176, 703, 497, 624, + 593, 921, 302,2415, 341, 165,1103,1512,2416,1513,2417,2418,2419, 376,2420, 700, +2421,2422,2423, 258, 768,1316,2424,1183,2425, 995, 608,2426,2427,2428,2429, 221, +2430,2431,2432,2433,2434,2435,2436,2437, 195, 323, 726, 188, 897, 983,1317, 377, + 644,1050, 879,2438, 452,2439,2440,2441,2442,2443,2444, 914,2445,2446,2447,2448, + 915, 489,2449,1514,1184,2450,2451, 515, 64, 427, 495,2452, 583,2453, 483, 485, +1038, 562, 213,1515, 748, 666,2454,2455,2456,2457, 334,2458, 780, 996,1008, 705, +1243,2459,2460,2461,2462,2463, 114,2464, 493,1146, 366, 163,1516, 961,1104,2465, + 291,2466,1318,1105,2467,1517, 365,2468, 355, 951,1244,2469,1319,2470, 631,2471, +2472, 218,1320, 364, 320, 756,1518,1519,1321,1520,1322,2473,2474,2475,2476, 997, +2477,2478,2479,2480, 665,1185,2481, 916,1521,2482,2483,2484, 584, 684,2485,2486, + 797,2487,1051,1186,2488,2489,2490,1522,2491,2492, 370,2493,1039,1187, 65,2494, + 434, 205, 463,1188,2495, 125, 812, 391, 402, 826, 699, 286, 398, 155, 781, 771, + 585,2496, 590, 505,1073,2497, 599, 244, 219, 917,1018, 952, 646,1523,2498,1323, +2499,2500, 49, 984, 354, 741,2501, 625,2502,1324,2503,1019, 190, 357, 757, 491, + 95, 782, 868,2504,2505,2506,2507,2508,2509, 134,1524,1074, 422,1525, 898,2510, + 161,2511,2512,2513,2514, 769,2515,1526,2516,2517, 411,1325,2518, 472,1527,2519, +2520,2521,2522,2523,2524, 985,2525,2526,2527,2528,2529,2530, 764,2531,1245,2532, +2533, 25, 204, 311,2534, 496,2535,1052,2536,2537,2538,2539,2540,2541,2542, 199, + 704, 504, 468, 758, 657,1528, 196, 44, 839,1246, 272, 750,2543, 765, 862,2544, +2545,1326,2546, 132, 615, 933,2547, 732,2548,2549,2550,1189,1529,2551, 283,1247, +1053, 607, 929,2552,2553,2554, 930, 183, 872, 616,1040,1147,2555,1148,1020, 441, + 249,1075,2556,2557,2558, 466, 743,2559,2560,2561, 92, 514, 426, 420, 526,2562, +2563,2564,2565,2566,2567,2568, 185,2569,2570,2571,2572, 776,1530, 658,2573, 362, +2574, 361, 922,1076, 793,2575,2576,2577,2578,2579,2580,1531, 251,2581,2582,2583, +2584,1532, 54, 612, 237,1327,2585,2586, 275, 408, 647, 111,2587,1533,1106, 465, + 3, 458, 9, 38,2588, 107, 110, 890, 209, 26, 737, 498,2589,1534,2590, 431, + 202, 88,1535, 356, 287,1107, 660,1149,2591, 381,1536, 986,1150, 445,1248,1151, + 974,2592,2593, 846,2594, 446, 953, 184,1249,1250, 727,2595, 923, 193, 883,2596, +2597,2598, 102, 324, 539, 817,2599, 421,1041,2600, 832,2601, 94, 175, 197, 406, +2602, 459,2603,2604,2605,2606,2607, 330, 555,2608,2609,2610, 706,1108, 389,2611, +2612,2613,2614, 233,2615, 833, 558, 931, 954,1251,2616,2617,1537, 546,2618,2619, +1009,2620,2621,2622,1538, 690,1328,2623, 955,2624,1539,2625,2626, 772,2627,2628, +2629,2630,2631, 924, 648, 863, 603,2632,2633, 934,1540, 864, 865,2634, 642,1042, + 670,1190,2635,2636,2637,2638, 168,2639, 652, 873, 542,1054,1541,2640,2641,2642, # 512, 256 +) + diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/euckrprober.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/euckrprober.py new file mode 100644 index 00000000..345a060d --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/euckrprober.py @@ -0,0 +1,47 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +from .mbcharsetprober import MultiByteCharSetProber +from .codingstatemachine import CodingStateMachine +from .chardistribution import EUCKRDistributionAnalysis +from .mbcssm import EUCKR_SM_MODEL + + +class EUCKRProber(MultiByteCharSetProber): + def __init__(self): + super(EUCKRProber, self).__init__() + self.coding_sm = CodingStateMachine(EUCKR_SM_MODEL) + self.distribution_analyzer = EUCKRDistributionAnalysis() + self.reset() + + @property + def charset_name(self): + return "EUC-KR" + + @property + def language(self): + return "Korean" diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/euctwfreq.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/euctwfreq.py new file mode 100644 index 00000000..ed7a995a --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/euctwfreq.py @@ -0,0 +1,387 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Communicator client code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +# EUCTW frequency table +# Converted from big5 work +# by Taiwan's Mandarin Promotion Council +# <http:#www.edu.tw:81/mandr/> + +# 128 --> 0.42261 +# 256 --> 0.57851 +# 512 --> 0.74851 +# 1024 --> 0.89384 +# 2048 --> 0.97583 +# +# Idea Distribution Ratio = 0.74851/(1-0.74851) =2.98 +# Random Distribution Ration = 512/(5401-512)=0.105 +# +# Typical Distribution Ratio about 25% of Ideal one, still much higher than RDR + +EUCTW_TYPICAL_DISTRIBUTION_RATIO = 0.75 + +# Char to FreqOrder table , +EUCTW_TABLE_SIZE = 5376 + +EUCTW_CHAR_TO_FREQ_ORDER = ( + 1,1800,1506, 255,1431, 198, 9, 82, 6,7310, 177, 202,3615,1256,2808, 110, # 2742 +3735, 33,3241, 261, 76, 44,2113, 16,2931,2184,1176, 659,3868, 26,3404,2643, # 2758 +1198,3869,3313,4060, 410,2211, 302, 590, 361,1963, 8, 204, 58,4296,7311,1931, # 2774 + 63,7312,7313, 317,1614, 75, 222, 159,4061,2412,1480,7314,3500,3068, 224,2809, # 2790 +3616, 3, 10,3870,1471, 29,2774,1135,2852,1939, 873, 130,3242,1123, 312,7315, # 2806 +4297,2051, 507, 252, 682,7316, 142,1914, 124, 206,2932, 34,3501,3173, 64, 604, # 2822 +7317,2494,1976,1977, 155,1990, 645, 641,1606,7318,3405, 337, 72, 406,7319, 80, # 2838 + 630, 238,3174,1509, 263, 939,1092,2644, 756,1440,1094,3406, 449, 69,2969, 591, # 2854 + 179,2095, 471, 115,2034,1843, 60, 50,2970, 134, 806,1868, 734,2035,3407, 180, # 2870 + 995,1607, 156, 537,2893, 688,7320, 319,1305, 779,2144, 514,2374, 298,4298, 359, # 2886 +2495, 90,2707,1338, 663, 11, 906,1099,2545, 20,2436, 182, 532,1716,7321, 732, # 2902 +1376,4062,1311,1420,3175, 25,2312,1056, 113, 399, 382,1949, 242,3408,2467, 529, # 2918 +3243, 475,1447,3617,7322, 117, 21, 656, 810,1297,2295,2329,3502,7323, 126,4063, # 2934 + 706, 456, 150, 613,4299, 71,1118,2036,4064, 145,3069, 85, 835, 486,2114,1246, # 2950 +1426, 428, 727,1285,1015, 800, 106, 623, 303,1281,7324,2127,2354, 347,3736, 221, # 2966 +3503,3110,7325,1955,1153,4065, 83, 296,1199,3070, 192, 624, 93,7326, 822,1897, # 2982 +2810,3111, 795,2064, 991,1554,1542,1592, 27, 43,2853, 859, 139,1456, 860,4300, # 2998 + 437, 712,3871, 164,2392,3112, 695, 211,3017,2096, 195,3872,1608,3504,3505,3618, # 3014 +3873, 234, 811,2971,2097,3874,2229,1441,3506,1615,2375, 668,2076,1638, 305, 228, # 3030 +1664,4301, 467, 415,7327, 262,2098,1593, 239, 108, 300, 200,1033, 512,1247,2077, # 3046 +7328,7329,2173,3176,3619,2673, 593, 845,1062,3244, 88,1723,2037,3875,1950, 212, # 3062 + 266, 152, 149, 468,1898,4066,4302, 77, 187,7330,3018, 37, 5,2972,7331,3876, # 3078 +7332,7333, 39,2517,4303,2894,3177,2078, 55, 148, 74,4304, 545, 483,1474,1029, # 3094 +1665, 217,1869,1531,3113,1104,2645,4067, 24, 172,3507, 900,3877,3508,3509,4305, # 3110 + 32,1408,2811,1312, 329, 487,2355,2247,2708, 784,2674, 4,3019,3314,1427,1788, # 3126 + 188, 109, 499,7334,3620,1717,1789, 888,1217,3020,4306,7335,3510,7336,3315,1520, # 3142 +3621,3878, 196,1034, 775,7337,7338, 929,1815, 249, 439, 38,7339,1063,7340, 794, # 3158 +3879,1435,2296, 46, 178,3245,2065,7341,2376,7342, 214,1709,4307, 804, 35, 707, # 3174 + 324,3622,1601,2546, 140, 459,4068,7343,7344,1365, 839, 272, 978,2257,2572,3409, # 3190 +2128,1363,3623,1423, 697, 100,3071, 48, 70,1231, 495,3114,2193,7345,1294,7346, # 3206 +2079, 462, 586,1042,3246, 853, 256, 988, 185,2377,3410,1698, 434,1084,7347,3411, # 3222 + 314,2615,2775,4308,2330,2331, 569,2280, 637,1816,2518, 757,1162,1878,1616,3412, # 3238 + 287,1577,2115, 768,4309,1671,2854,3511,2519,1321,3737, 909,2413,7348,4069, 933, # 3254 +3738,7349,2052,2356,1222,4310, 765,2414,1322, 786,4311,7350,1919,1462,1677,2895, # 3270 +1699,7351,4312,1424,2437,3115,3624,2590,3316,1774,1940,3413,3880,4070, 309,1369, # 3286 +1130,2812, 364,2230,1653,1299,3881,3512,3882,3883,2646, 525,1085,3021, 902,2000, # 3302 +1475, 964,4313, 421,1844,1415,1057,2281, 940,1364,3116, 376,4314,4315,1381, 7, # 3318 +2520, 983,2378, 336,1710,2675,1845, 321,3414, 559,1131,3022,2742,1808,1132,1313, # 3334 + 265,1481,1857,7352, 352,1203,2813,3247, 167,1089, 420,2814, 776, 792,1724,3513, # 3350 +4071,2438,3248,7353,4072,7354, 446, 229, 333,2743, 901,3739,1200,1557,4316,2647, # 3366 +1920, 395,2744,2676,3740,4073,1835, 125, 916,3178,2616,4317,7355,7356,3741,7357, # 3382 +7358,7359,4318,3117,3625,1133,2547,1757,3415,1510,2313,1409,3514,7360,2145, 438, # 3398 +2591,2896,2379,3317,1068, 958,3023, 461, 311,2855,2677,4074,1915,3179,4075,1978, # 3414 + 383, 750,2745,2617,4076, 274, 539, 385,1278,1442,7361,1154,1964, 384, 561, 210, # 3430 + 98,1295,2548,3515,7362,1711,2415,1482,3416,3884,2897,1257, 129,7363,3742, 642, # 3446 + 523,2776,2777,2648,7364, 141,2231,1333, 68, 176, 441, 876, 907,4077, 603,2592, # 3462 + 710, 171,3417, 404, 549, 18,3118,2393,1410,3626,1666,7365,3516,4319,2898,4320, # 3478 +7366,2973, 368,7367, 146, 366, 99, 871,3627,1543, 748, 807,1586,1185, 22,2258, # 3494 + 379,3743,3180,7368,3181, 505,1941,2618,1991,1382,2314,7369, 380,2357, 218, 702, # 3510 +1817,1248,3418,3024,3517,3318,3249,7370,2974,3628, 930,3250,3744,7371, 59,7372, # 3526 + 585, 601,4078, 497,3419,1112,1314,4321,1801,7373,1223,1472,2174,7374, 749,1836, # 3542 + 690,1899,3745,1772,3885,1476, 429,1043,1790,2232,2116, 917,4079, 447,1086,1629, # 3558 +7375, 556,7376,7377,2020,1654, 844,1090, 105, 550, 966,1758,2815,1008,1782, 686, # 3574 +1095,7378,2282, 793,1602,7379,3518,2593,4322,4080,2933,2297,4323,3746, 980,2496, # 3590 + 544, 353, 527,4324, 908,2678,2899,7380, 381,2619,1942,1348,7381,1341,1252, 560, # 3606 +3072,7382,3420,2856,7383,2053, 973, 886,2080, 143,4325,7384,7385, 157,3886, 496, # 3622 +4081, 57, 840, 540,2038,4326,4327,3421,2117,1445, 970,2259,1748,1965,2081,4082, # 3638 +3119,1234,1775,3251,2816,3629, 773,1206,2129,1066,2039,1326,3887,1738,1725,4083, # 3654 + 279,3120, 51,1544,2594, 423,1578,2130,2066, 173,4328,1879,7386,7387,1583, 264, # 3670 + 610,3630,4329,2439, 280, 154,7388,7389,7390,1739, 338,1282,3073, 693,2857,1411, # 3686 +1074,3747,2440,7391,4330,7392,7393,1240, 952,2394,7394,2900,1538,2679, 685,1483, # 3702 +4084,2468,1436, 953,4085,2054,4331, 671,2395, 79,4086,2441,3252, 608, 567,2680, # 3718 +3422,4087,4088,1691, 393,1261,1791,2396,7395,4332,7396,7397,7398,7399,1383,1672, # 3734 +3748,3182,1464, 522,1119, 661,1150, 216, 675,4333,3888,1432,3519, 609,4334,2681, # 3750 +2397,7400,7401,7402,4089,3025, 0,7403,2469, 315, 231,2442, 301,3319,4335,2380, # 3766 +7404, 233,4090,3631,1818,4336,4337,7405, 96,1776,1315,2082,7406, 257,7407,1809, # 3782 +3632,2709,1139,1819,4091,2021,1124,2163,2778,1777,2649,7408,3074, 363,1655,3183, # 3798 +7409,2975,7410,7411,7412,3889,1567,3890, 718, 103,3184, 849,1443, 341,3320,2934, # 3814 +1484,7413,1712, 127, 67, 339,4092,2398, 679,1412, 821,7414,7415, 834, 738, 351, # 3830 +2976,2146, 846, 235,1497,1880, 418,1992,3749,2710, 186,1100,2147,2746,3520,1545, # 3846 +1355,2935,2858,1377, 583,3891,4093,2573,2977,7416,1298,3633,1078,2549,3634,2358, # 3862 + 78,3750,3751, 267,1289,2099,2001,1594,4094, 348, 369,1274,2194,2175,1837,4338, # 3878 +1820,2817,3635,2747,2283,2002,4339,2936,2748, 144,3321, 882,4340,3892,2749,3423, # 3894 +4341,2901,7417,4095,1726, 320,7418,3893,3026, 788,2978,7419,2818,1773,1327,2859, # 3910 +3894,2819,7420,1306,4342,2003,1700,3752,3521,2359,2650, 787,2022, 506, 824,3636, # 3926 + 534, 323,4343,1044,3322,2023,1900, 946,3424,7421,1778,1500,1678,7422,1881,4344, # 3942 + 165, 243,4345,3637,2521, 123, 683,4096, 764,4346, 36,3895,1792, 589,2902, 816, # 3958 + 626,1667,3027,2233,1639,1555,1622,3753,3896,7423,3897,2860,1370,1228,1932, 891, # 3974 +2083,2903, 304,4097,7424, 292,2979,2711,3522, 691,2100,4098,1115,4347, 118, 662, # 3990 +7425, 611,1156, 854,2381,1316,2861, 2, 386, 515,2904,7426,7427,3253, 868,2234, # 4006 +1486, 855,2651, 785,2212,3028,7428,1040,3185,3523,7429,3121, 448,7430,1525,7431, # 4022 +2164,4348,7432,3754,7433,4099,2820,3524,3122, 503, 818,3898,3123,1568, 814, 676, # 4038 +1444, 306,1749,7434,3755,1416,1030, 197,1428, 805,2821,1501,4349,7435,7436,7437, # 4054 +1993,7438,4350,7439,7440,2195, 13,2779,3638,2980,3124,1229,1916,7441,3756,2131, # 4070 +7442,4100,4351,2399,3525,7443,2213,1511,1727,1120,7444,7445, 646,3757,2443, 307, # 4086 +7446,7447,1595,3186,7448,7449,7450,3639,1113,1356,3899,1465,2522,2523,7451, 519, # 4102 +7452, 128,2132, 92,2284,1979,7453,3900,1512, 342,3125,2196,7454,2780,2214,1980, # 4118 +3323,7455, 290,1656,1317, 789, 827,2360,7456,3758,4352, 562, 581,3901,7457, 401, # 4134 +4353,2248, 94,4354,1399,2781,7458,1463,2024,4355,3187,1943,7459, 828,1105,4101, # 4150 +1262,1394,7460,4102, 605,4356,7461,1783,2862,7462,2822, 819,2101, 578,2197,2937, # 4166 +7463,1502, 436,3254,4103,3255,2823,3902,2905,3425,3426,7464,2712,2315,7465,7466, # 4182 +2332,2067, 23,4357, 193, 826,3759,2102, 699,1630,4104,3075, 390,1793,1064,3526, # 4198 +7467,1579,3076,3077,1400,7468,4105,1838,1640,2863,7469,4358,4359, 137,4106, 598, # 4214 +3078,1966, 780, 104, 974,2938,7470, 278, 899, 253, 402, 572, 504, 493,1339,7471, # 4230 +3903,1275,4360,2574,2550,7472,3640,3029,3079,2249, 565,1334,2713, 863, 41,7473, # 4246 +7474,4361,7475,1657,2333, 19, 463,2750,4107, 606,7476,2981,3256,1087,2084,1323, # 4262 +2652,2982,7477,1631,1623,1750,4108,2682,7478,2864, 791,2714,2653,2334, 232,2416, # 4278 +7479,2983,1498,7480,2654,2620, 755,1366,3641,3257,3126,2025,1609, 119,1917,3427, # 4294 + 862,1026,4109,7481,3904,3760,4362,3905,4363,2260,1951,2470,7482,1125, 817,4110, # 4310 +4111,3906,1513,1766,2040,1487,4112,3030,3258,2824,3761,3127,7483,7484,1507,7485, # 4326 +2683, 733, 40,1632,1106,2865, 345,4113, 841,2524, 230,4364,2984,1846,3259,3428, # 4342 +7486,1263, 986,3429,7487, 735, 879, 254,1137, 857, 622,1300,1180,1388,1562,3907, # 4358 +3908,2939, 967,2751,2655,1349, 592,2133,1692,3324,2985,1994,4114,1679,3909,1901, # 4374 +2185,7488, 739,3642,2715,1296,1290,7489,4115,2198,2199,1921,1563,2595,2551,1870, # 4390 +2752,2986,7490, 435,7491, 343,1108, 596, 17,1751,4365,2235,3430,3643,7492,4366, # 4406 + 294,3527,2940,1693, 477, 979, 281,2041,3528, 643,2042,3644,2621,2782,2261,1031, # 4422 +2335,2134,2298,3529,4367, 367,1249,2552,7493,3530,7494,4368,1283,3325,2004, 240, # 4438 +1762,3326,4369,4370, 836,1069,3128, 474,7495,2148,2525, 268,3531,7496,3188,1521, # 4454 +1284,7497,1658,1546,4116,7498,3532,3533,7499,4117,3327,2684,1685,4118, 961,1673, # 4470 +2622, 190,2005,2200,3762,4371,4372,7500, 570,2497,3645,1490,7501,4373,2623,3260, # 4486 +1956,4374, 584,1514, 396,1045,1944,7502,4375,1967,2444,7503,7504,4376,3910, 619, # 4502 +7505,3129,3261, 215,2006,2783,2553,3189,4377,3190,4378, 763,4119,3763,4379,7506, # 4518 +7507,1957,1767,2941,3328,3646,1174, 452,1477,4380,3329,3130,7508,2825,1253,2382, # 4534 +2186,1091,2285,4120, 492,7509, 638,1169,1824,2135,1752,3911, 648, 926,1021,1324, # 4550 +4381, 520,4382, 997, 847,1007, 892,4383,3764,2262,1871,3647,7510,2400,1784,4384, # 4566 +1952,2942,3080,3191,1728,4121,2043,3648,4385,2007,1701,3131,1551, 30,2263,4122, # 4582 +7511,2026,4386,3534,7512, 501,7513,4123, 594,3431,2165,1821,3535,3432,3536,3192, # 4598 + 829,2826,4124,7514,1680,3132,1225,4125,7515,3262,4387,4126,3133,2336,7516,4388, # 4614 +4127,7517,3912,3913,7518,1847,2383,2596,3330,7519,4389, 374,3914, 652,4128,4129, # 4630 + 375,1140, 798,7520,7521,7522,2361,4390,2264, 546,1659, 138,3031,2445,4391,7523, # 4646 +2250, 612,1848, 910, 796,3765,1740,1371, 825,3766,3767,7524,2906,2554,7525, 692, # 4662 + 444,3032,2624, 801,4392,4130,7526,1491, 244,1053,3033,4131,4132, 340,7527,3915, # 4678 +1041,2987, 293,1168, 87,1357,7528,1539, 959,7529,2236, 721, 694,4133,3768, 219, # 4694 +1478, 644,1417,3331,2656,1413,1401,1335,1389,3916,7530,7531,2988,2362,3134,1825, # 4710 + 730,1515, 184,2827, 66,4393,7532,1660,2943, 246,3332, 378,1457, 226,3433, 975, # 4726 +3917,2944,1264,3537, 674, 696,7533, 163,7534,1141,2417,2166, 713,3538,3333,4394, # 4742 +3918,7535,7536,1186, 15,7537,1079,1070,7538,1522,3193,3539, 276,1050,2716, 758, # 4758 +1126, 653,2945,3263,7539,2337, 889,3540,3919,3081,2989, 903,1250,4395,3920,3434, # 4774 +3541,1342,1681,1718, 766,3264, 286, 89,2946,3649,7540,1713,7541,2597,3334,2990, # 4790 +7542,2947,2215,3194,2866,7543,4396,2498,2526, 181, 387,1075,3921, 731,2187,3335, # 4806 +7544,3265, 310, 313,3435,2299, 770,4134, 54,3034, 189,4397,3082,3769,3922,7545, # 4822 +1230,1617,1849, 355,3542,4135,4398,3336, 111,4136,3650,1350,3135,3436,3035,4137, # 4838 +2149,3266,3543,7546,2784,3923,3924,2991, 722,2008,7547,1071, 247,1207,2338,2471, # 4854 +1378,4399,2009, 864,1437,1214,4400, 373,3770,1142,2216, 667,4401, 442,2753,2555, # 4870 +3771,3925,1968,4138,3267,1839, 837, 170,1107, 934,1336,1882,7548,7549,2118,4139, # 4886 +2828, 743,1569,7550,4402,4140, 582,2384,1418,3437,7551,1802,7552, 357,1395,1729, # 4902 +3651,3268,2418,1564,2237,7553,3083,3772,1633,4403,1114,2085,4141,1532,7554, 482, # 4918 +2446,4404,7555,7556,1492, 833,1466,7557,2717,3544,1641,2829,7558,1526,1272,3652, # 4934 +4142,1686,1794, 416,2556,1902,1953,1803,7559,3773,2785,3774,1159,2316,7560,2867, # 4950 +4405,1610,1584,3036,2419,2754, 443,3269,1163,3136,7561,7562,3926,7563,4143,2499, # 4966 +3037,4406,3927,3137,2103,1647,3545,2010,1872,4144,7564,4145, 431,3438,7565, 250, # 4982 + 97, 81,4146,7566,1648,1850,1558, 160, 848,7567, 866, 740,1694,7568,2201,2830, # 4998 +3195,4147,4407,3653,1687, 950,2472, 426, 469,3196,3654,3655,3928,7569,7570,1188, # 5014 + 424,1995, 861,3546,4148,3775,2202,2685, 168,1235,3547,4149,7571,2086,1674,4408, # 5030 +3337,3270, 220,2557,1009,7572,3776, 670,2992, 332,1208, 717,7573,7574,3548,2447, # 5046 +3929,3338,7575, 513,7576,1209,2868,3339,3138,4409,1080,7577,7578,7579,7580,2527, # 5062 +3656,3549, 815,1587,3930,3931,7581,3550,3439,3777,1254,4410,1328,3038,1390,3932, # 5078 +1741,3933,3778,3934,7582, 236,3779,2448,3271,7583,7584,3657,3780,1273,3781,4411, # 5094 +7585, 308,7586,4412, 245,4413,1851,2473,1307,2575, 430, 715,2136,2449,7587, 270, # 5110 + 199,2869,3935,7588,3551,2718,1753, 761,1754, 725,1661,1840,4414,3440,3658,7589, # 5126 +7590, 587, 14,3272, 227,2598, 326, 480,2265, 943,2755,3552, 291, 650,1883,7591, # 5142 +1702,1226, 102,1547, 62,3441, 904,4415,3442,1164,4150,7592,7593,1224,1548,2756, # 5158 + 391, 498,1493,7594,1386,1419,7595,2055,1177,4416, 813, 880,1081,2363, 566,1145, # 5174 +4417,2286,1001,1035,2558,2599,2238, 394,1286,7596,7597,2068,7598, 86,1494,1730, # 5190 +3936, 491,1588, 745, 897,2948, 843,3340,3937,2757,2870,3273,1768, 998,2217,2069, # 5206 + 397,1826,1195,1969,3659,2993,3341, 284,7599,3782,2500,2137,2119,1903,7600,3938, # 5222 +2150,3939,4151,1036,3443,1904, 114,2559,4152, 209,1527,7601,7602,2949,2831,2625, # 5238 +2385,2719,3139, 812,2560,7603,3274,7604,1559, 737,1884,3660,1210, 885, 28,2686, # 5254 +3553,3783,7605,4153,1004,1779,4418,7606, 346,1981,2218,2687,4419,3784,1742, 797, # 5270 +1642,3940,1933,1072,1384,2151, 896,3941,3275,3661,3197,2871,3554,7607,2561,1958, # 5286 +4420,2450,1785,7608,7609,7610,3942,4154,1005,1308,3662,4155,2720,4421,4422,1528, # 5302 +2600, 161,1178,4156,1982, 987,4423,1101,4157, 631,3943,1157,3198,2420,1343,1241, # 5318 +1016,2239,2562, 372, 877,2339,2501,1160, 555,1934, 911,3944,7611, 466,1170, 169, # 5334 +1051,2907,2688,3663,2474,2994,1182,2011,2563,1251,2626,7612, 992,2340,3444,1540, # 5350 +2721,1201,2070,2401,1996,2475,7613,4424, 528,1922,2188,1503,1873,1570,2364,3342, # 5366 +3276,7614, 557,1073,7615,1827,3445,2087,2266,3140,3039,3084, 767,3085,2786,4425, # 5382 +1006,4158,4426,2341,1267,2176,3664,3199, 778,3945,3200,2722,1597,2657,7616,4427, # 5398 +7617,3446,7618,7619,7620,3277,2689,1433,3278, 131, 95,1504,3946, 723,4159,3141, # 5414 +1841,3555,2758,2189,3947,2027,2104,3665,7621,2995,3948,1218,7622,3343,3201,3949, # 5430 +4160,2576, 248,1634,3785, 912,7623,2832,3666,3040,3786, 654, 53,7624,2996,7625, # 5446 +1688,4428, 777,3447,1032,3950,1425,7626, 191, 820,2120,2833, 971,4429, 931,3202, # 5462 + 135, 664, 783,3787,1997, 772,2908,1935,3951,3788,4430,2909,3203, 282,2723, 640, # 5478 +1372,3448,1127, 922, 325,3344,7627,7628, 711,2044,7629,7630,3952,2219,2787,1936, # 5494 +3953,3345,2220,2251,3789,2300,7631,4431,3790,1258,3279,3954,3204,2138,2950,3955, # 5510 +3956,7632,2221, 258,3205,4432, 101,1227,7633,3280,1755,7634,1391,3281,7635,2910, # 5526 +2056, 893,7636,7637,7638,1402,4161,2342,7639,7640,3206,3556,7641,7642, 878,1325, # 5542 +1780,2788,4433, 259,1385,2577, 744,1183,2267,4434,7643,3957,2502,7644, 684,1024, # 5558 +4162,7645, 472,3557,3449,1165,3282,3958,3959, 322,2152, 881, 455,1695,1152,1340, # 5574 + 660, 554,2153,4435,1058,4436,4163, 830,1065,3346,3960,4437,1923,7646,1703,1918, # 5590 +7647, 932,2268, 122,7648,4438, 947, 677,7649,3791,2627, 297,1905,1924,2269,4439, # 5606 +2317,3283,7650,7651,4164,7652,4165, 84,4166, 112, 989,7653, 547,1059,3961, 701, # 5622 +3558,1019,7654,4167,7655,3450, 942, 639, 457,2301,2451, 993,2951, 407, 851, 494, # 5638 +4440,3347, 927,7656,1237,7657,2421,3348, 573,4168, 680, 921,2911,1279,1874, 285, # 5654 + 790,1448,1983, 719,2167,7658,7659,4441,3962,3963,1649,7660,1541, 563,7661,1077, # 5670 +7662,3349,3041,3451, 511,2997,3964,3965,3667,3966,1268,2564,3350,3207,4442,4443, # 5686 +7663, 535,1048,1276,1189,2912,2028,3142,1438,1373,2834,2952,1134,2012,7664,4169, # 5702 +1238,2578,3086,1259,7665, 700,7666,2953,3143,3668,4170,7667,4171,1146,1875,1906, # 5718 +4444,2601,3967, 781,2422, 132,1589, 203, 147, 273,2789,2402, 898,1786,2154,3968, # 5734 +3969,7668,3792,2790,7669,7670,4445,4446,7671,3208,7672,1635,3793, 965,7673,1804, # 5750 +2690,1516,3559,1121,1082,1329,3284,3970,1449,3794, 65,1128,2835,2913,2759,1590, # 5766 +3795,7674,7675, 12,2658, 45, 976,2579,3144,4447, 517,2528,1013,1037,3209,7676, # 5782 +3796,2836,7677,3797,7678,3452,7679,2602, 614,1998,2318,3798,3087,2724,2628,7680, # 5798 +2580,4172, 599,1269,7681,1810,3669,7682,2691,3088, 759,1060, 489,1805,3351,3285, # 5814 +1358,7683,7684,2386,1387,1215,2629,2252, 490,7685,7686,4173,1759,2387,2343,7687, # 5830 +4448,3799,1907,3971,2630,1806,3210,4449,3453,3286,2760,2344, 874,7688,7689,3454, # 5846 +3670,1858, 91,2914,3671,3042,3800,4450,7690,3145,3972,2659,7691,3455,1202,1403, # 5862 +3801,2954,2529,1517,2503,4451,3456,2504,7692,4452,7693,2692,1885,1495,1731,3973, # 5878 +2365,4453,7694,2029,7695,7696,3974,2693,1216, 237,2581,4174,2319,3975,3802,4454, # 5894 +4455,2694,3560,3457, 445,4456,7697,7698,7699,7700,2761, 61,3976,3672,1822,3977, # 5910 +7701, 687,2045, 935, 925, 405,2660, 703,1096,1859,2725,4457,3978,1876,1367,2695, # 5926 +3352, 918,2105,1781,2476, 334,3287,1611,1093,4458, 564,3146,3458,3673,3353, 945, # 5942 +2631,2057,4459,7702,1925, 872,4175,7703,3459,2696,3089, 349,4176,3674,3979,4460, # 5958 +3803,4177,3675,2155,3980,4461,4462,4178,4463,2403,2046, 782,3981, 400, 251,4179, # 5974 +1624,7704,7705, 277,3676, 299,1265, 476,1191,3804,2121,4180,4181,1109, 205,7706, # 5990 +2582,1000,2156,3561,1860,7707,7708,7709,4464,7710,4465,2565, 107,2477,2157,3982, # 6006 +3460,3147,7711,1533, 541,1301, 158, 753,4182,2872,3562,7712,1696, 370,1088,4183, # 6022 +4466,3563, 579, 327, 440, 162,2240, 269,1937,1374,3461, 968,3043, 56,1396,3090, # 6038 +2106,3288,3354,7713,1926,2158,4467,2998,7714,3564,7715,7716,3677,4468,2478,7717, # 6054 +2791,7718,1650,4469,7719,2603,7720,7721,3983,2661,3355,1149,3356,3984,3805,3985, # 6070 +7722,1076, 49,7723, 951,3211,3289,3290, 450,2837, 920,7724,1811,2792,2366,4184, # 6086 +1908,1138,2367,3806,3462,7725,3212,4470,1909,1147,1518,2423,4471,3807,7726,4472, # 6102 +2388,2604, 260,1795,3213,7727,7728,3808,3291, 708,7729,3565,1704,7730,3566,1351, # 6118 +1618,3357,2999,1886, 944,4185,3358,4186,3044,3359,4187,7731,3678, 422, 413,1714, # 6134 +3292, 500,2058,2345,4188,2479,7732,1344,1910, 954,7733,1668,7734,7735,3986,2404, # 6150 +4189,3567,3809,4190,7736,2302,1318,2505,3091, 133,3092,2873,4473, 629, 31,2838, # 6166 +2697,3810,4474, 850, 949,4475,3987,2955,1732,2088,4191,1496,1852,7737,3988, 620, # 6182 +3214, 981,1242,3679,3360,1619,3680,1643,3293,2139,2452,1970,1719,3463,2168,7738, # 6198 +3215,7739,7740,3361,1828,7741,1277,4476,1565,2047,7742,1636,3568,3093,7743, 869, # 6214 +2839, 655,3811,3812,3094,3989,3000,3813,1310,3569,4477,7744,7745,7746,1733, 558, # 6230 +4478,3681, 335,1549,3045,1756,4192,3682,1945,3464,1829,1291,1192, 470,2726,2107, # 6246 +2793, 913,1054,3990,7747,1027,7748,3046,3991,4479, 982,2662,3362,3148,3465,3216, # 6262 +3217,1946,2794,7749, 571,4480,7750,1830,7751,3570,2583,1523,2424,7752,2089, 984, # 6278 +4481,3683,1959,7753,3684, 852, 923,2795,3466,3685, 969,1519, 999,2048,2320,1705, # 6294 +7754,3095, 615,1662, 151, 597,3992,2405,2321,1049, 275,4482,3686,4193, 568,3687, # 6310 +3571,2480,4194,3688,7755,2425,2270, 409,3218,7756,1566,2874,3467,1002, 769,2840, # 6326 + 194,2090,3149,3689,2222,3294,4195, 628,1505,7757,7758,1763,2177,3001,3993, 521, # 6342 +1161,2584,1787,2203,2406,4483,3994,1625,4196,4197, 412, 42,3096, 464,7759,2632, # 6358 +4484,3363,1760,1571,2875,3468,2530,1219,2204,3814,2633,2140,2368,4485,4486,3295, # 6374 +1651,3364,3572,7760,7761,3573,2481,3469,7762,3690,7763,7764,2271,2091, 460,7765, # 6390 +4487,7766,3002, 962, 588,3574, 289,3219,2634,1116, 52,7767,3047,1796,7768,7769, # 6406 +7770,1467,7771,1598,1143,3691,4198,1984,1734,1067,4488,1280,3365, 465,4489,1572, # 6422 + 510,7772,1927,2241,1812,1644,3575,7773,4490,3692,7774,7775,2663,1573,1534,7776, # 6438 +7777,4199, 536,1807,1761,3470,3815,3150,2635,7778,7779,7780,4491,3471,2915,1911, # 6454 +2796,7781,3296,1122, 377,3220,7782, 360,7783,7784,4200,1529, 551,7785,2059,3693, # 6470 +1769,2426,7786,2916,4201,3297,3097,2322,2108,2030,4492,1404, 136,1468,1479, 672, # 6486 +1171,3221,2303, 271,3151,7787,2762,7788,2049, 678,2727, 865,1947,4493,7789,2013, # 6502 +3995,2956,7790,2728,2223,1397,3048,3694,4494,4495,1735,2917,3366,3576,7791,3816, # 6518 + 509,2841,2453,2876,3817,7792,7793,3152,3153,4496,4202,2531,4497,2304,1166,1010, # 6534 + 552, 681,1887,7794,7795,2957,2958,3996,1287,1596,1861,3154, 358, 453, 736, 175, # 6550 + 478,1117, 905,1167,1097,7796,1853,1530,7797,1706,7798,2178,3472,2287,3695,3473, # 6566 +3577,4203,2092,4204,7799,3367,1193,2482,4205,1458,2190,2205,1862,1888,1421,3298, # 6582 +2918,3049,2179,3474, 595,2122,7800,3997,7801,7802,4206,1707,2636, 223,3696,1359, # 6598 + 751,3098, 183,3475,7803,2797,3003, 419,2369, 633, 704,3818,2389, 241,7804,7805, # 6614 +7806, 838,3004,3697,2272,2763,2454,3819,1938,2050,3998,1309,3099,2242,1181,7807, # 6630 +1136,2206,3820,2370,1446,4207,2305,4498,7808,7809,4208,1055,2605, 484,3698,7810, # 6646 +3999, 625,4209,2273,3368,1499,4210,4000,7811,4001,4211,3222,2274,2275,3476,7812, # 6662 +7813,2764, 808,2606,3699,3369,4002,4212,3100,2532, 526,3370,3821,4213, 955,7814, # 6678 +1620,4214,2637,2427,7815,1429,3700,1669,1831, 994, 928,7816,3578,1260,7817,7818, # 6694 +7819,1948,2288, 741,2919,1626,4215,2729,2455, 867,1184, 362,3371,1392,7820,7821, # 6710 +4003,4216,1770,1736,3223,2920,4499,4500,1928,2698,1459,1158,7822,3050,3372,2877, # 6726 +1292,1929,2506,2842,3701,1985,1187,2071,2014,2607,4217,7823,2566,2507,2169,3702, # 6742 +2483,3299,7824,3703,4501,7825,7826, 666,1003,3005,1022,3579,4218,7827,4502,1813, # 6758 +2253, 574,3822,1603, 295,1535, 705,3823,4219, 283, 858, 417,7828,7829,3224,4503, # 6774 +4504,3051,1220,1889,1046,2276,2456,4004,1393,1599, 689,2567, 388,4220,7830,2484, # 6790 + 802,7831,2798,3824,2060,1405,2254,7832,4505,3825,2109,1052,1345,3225,1585,7833, # 6806 + 809,7834,7835,7836, 575,2730,3477, 956,1552,1469,1144,2323,7837,2324,1560,2457, # 6822 +3580,3226,4005, 616,2207,3155,2180,2289,7838,1832,7839,3478,4506,7840,1319,3704, # 6838 +3705,1211,3581,1023,3227,1293,2799,7841,7842,7843,3826, 607,2306,3827, 762,2878, # 6854 +1439,4221,1360,7844,1485,3052,7845,4507,1038,4222,1450,2061,2638,4223,1379,4508, # 6870 +2585,7846,7847,4224,1352,1414,2325,2921,1172,7848,7849,3828,3829,7850,1797,1451, # 6886 +7851,7852,7853,7854,2922,4006,4007,2485,2346, 411,4008,4009,3582,3300,3101,4509, # 6902 +1561,2664,1452,4010,1375,7855,7856, 47,2959, 316,7857,1406,1591,2923,3156,7858, # 6918 +1025,2141,3102,3157, 354,2731, 884,2224,4225,2407, 508,3706, 726,3583, 996,2428, # 6934 +3584, 729,7859, 392,2191,1453,4011,4510,3707,7860,7861,2458,3585,2608,1675,2800, # 6950 + 919,2347,2960,2348,1270,4511,4012, 73,7862,7863, 647,7864,3228,2843,2255,1550, # 6966 +1346,3006,7865,1332, 883,3479,7866,7867,7868,7869,3301,2765,7870,1212, 831,1347, # 6982 +4226,4512,2326,3830,1863,3053, 720,3831,4513,4514,3832,7871,4227,7872,7873,4515, # 6998 +7874,7875,1798,4516,3708,2609,4517,3586,1645,2371,7876,7877,2924, 669,2208,2665, # 7014 +2429,7878,2879,7879,7880,1028,3229,7881,4228,2408,7882,2256,1353,7883,7884,4518, # 7030 +3158, 518,7885,4013,7886,4229,1960,7887,2142,4230,7888,7889,3007,2349,2350,3833, # 7046 + 516,1833,1454,4014,2699,4231,4519,2225,2610,1971,1129,3587,7890,2766,7891,2961, # 7062 +1422, 577,1470,3008,1524,3373,7892,7893, 432,4232,3054,3480,7894,2586,1455,2508, # 7078 +2226,1972,1175,7895,1020,2732,4015,3481,4520,7896,2733,7897,1743,1361,3055,3482, # 7094 +2639,4016,4233,4521,2290, 895, 924,4234,2170, 331,2243,3056, 166,1627,3057,1098, # 7110 +7898,1232,2880,2227,3374,4522, 657, 403,1196,2372, 542,3709,3375,1600,4235,3483, # 7126 +7899,4523,2767,3230, 576, 530,1362,7900,4524,2533,2666,3710,4017,7901, 842,3834, # 7142 +7902,2801,2031,1014,4018, 213,2700,3376, 665, 621,4236,7903,3711,2925,2430,7904, # 7158 +2431,3302,3588,3377,7905,4237,2534,4238,4525,3589,1682,4239,3484,1380,7906, 724, # 7174 +2277, 600,1670,7907,1337,1233,4526,3103,2244,7908,1621,4527,7909, 651,4240,7910, # 7190 +1612,4241,2611,7911,2844,7912,2734,2307,3058,7913, 716,2459,3059, 174,1255,2701, # 7206 +4019,3590, 548,1320,1398, 728,4020,1574,7914,1890,1197,3060,4021,7915,3061,3062, # 7222 +3712,3591,3713, 747,7916, 635,4242,4528,7917,7918,7919,4243,7920,7921,4529,7922, # 7238 +3378,4530,2432, 451,7923,3714,2535,2072,4244,2735,4245,4022,7924,1764,4531,7925, # 7254 +4246, 350,7926,2278,2390,2486,7927,4247,4023,2245,1434,4024, 488,4532, 458,4248, # 7270 +4025,3715, 771,1330,2391,3835,2568,3159,2159,2409,1553,2667,3160,4249,7928,2487, # 7286 +2881,2612,1720,2702,4250,3379,4533,7929,2536,4251,7930,3231,4252,2768,7931,2015, # 7302 +2736,7932,1155,1017,3716,3836,7933,3303,2308, 201,1864,4253,1430,7934,4026,7935, # 7318 +7936,7937,7938,7939,4254,1604,7940, 414,1865, 371,2587,4534,4535,3485,2016,3104, # 7334 +4536,1708, 960,4255, 887, 389,2171,1536,1663,1721,7941,2228,4027,2351,2926,1580, # 7350 +7942,7943,7944,1744,7945,2537,4537,4538,7946,4539,7947,2073,7948,7949,3592,3380, # 7366 +2882,4256,7950,4257,2640,3381,2802, 673,2703,2460, 709,3486,4028,3593,4258,7951, # 7382 +1148, 502, 634,7952,7953,1204,4540,3594,1575,4541,2613,3717,7954,3718,3105, 948, # 7398 +3232, 121,1745,3837,1110,7955,4259,3063,2509,3009,4029,3719,1151,1771,3838,1488, # 7414 +4030,1986,7956,2433,3487,7957,7958,2093,7959,4260,3839,1213,1407,2803, 531,2737, # 7430 +2538,3233,1011,1537,7960,2769,4261,3106,1061,7961,3720,3721,1866,2883,7962,2017, # 7446 + 120,4262,4263,2062,3595,3234,2309,3840,2668,3382,1954,4542,7963,7964,3488,1047, # 7462 +2704,1266,7965,1368,4543,2845, 649,3383,3841,2539,2738,1102,2846,2669,7966,7967, # 7478 +1999,7968,1111,3596,2962,7969,2488,3842,3597,2804,1854,3384,3722,7970,7971,3385, # 7494 +2410,2884,3304,3235,3598,7972,2569,7973,3599,2805,4031,1460, 856,7974,3600,7975, # 7510 +2885,2963,7976,2886,3843,7977,4264, 632,2510, 875,3844,1697,3845,2291,7978,7979, # 7526 +4544,3010,1239, 580,4545,4265,7980, 914, 936,2074,1190,4032,1039,2123,7981,7982, # 7542 +7983,3386,1473,7984,1354,4266,3846,7985,2172,3064,4033, 915,3305,4267,4268,3306, # 7558 +1605,1834,7986,2739, 398,3601,4269,3847,4034, 328,1912,2847,4035,3848,1331,4270, # 7574 +3011, 937,4271,7987,3602,4036,4037,3387,2160,4546,3388, 524, 742, 538,3065,1012, # 7590 +7988,7989,3849,2461,7990, 658,1103, 225,3850,7991,7992,4547,7993,4548,7994,3236, # 7606 +1243,7995,4038, 963,2246,4549,7996,2705,3603,3161,7997,7998,2588,2327,7999,4550, # 7622 +8000,8001,8002,3489,3307, 957,3389,2540,2032,1930,2927,2462, 870,2018,3604,1746, # 7638 +2770,2771,2434,2463,8003,3851,8004,3723,3107,3724,3490,3390,3725,8005,1179,3066, # 7654 +8006,3162,2373,4272,3726,2541,3163,3108,2740,4039,8007,3391,1556,2542,2292, 977, # 7670 +2887,2033,4040,1205,3392,8008,1765,3393,3164,2124,1271,1689, 714,4551,3491,8009, # 7686 +2328,3852, 533,4273,3605,2181, 617,8010,2464,3308,3492,2310,8011,8012,3165,8013, # 7702 +8014,3853,1987, 618, 427,2641,3493,3394,8015,8016,1244,1690,8017,2806,4274,4552, # 7718 +8018,3494,8019,8020,2279,1576, 473,3606,4275,3395, 972,8021,3607,8022,3067,8023, # 7734 +8024,4553,4554,8025,3727,4041,4042,8026, 153,4555, 356,8027,1891,2888,4276,2143, # 7750 + 408, 803,2352,8028,3854,8029,4277,1646,2570,2511,4556,4557,3855,8030,3856,4278, # 7766 +8031,2411,3396, 752,8032,8033,1961,2964,8034, 746,3012,2465,8035,4279,3728, 698, # 7782 +4558,1892,4280,3608,2543,4559,3609,3857,8036,3166,3397,8037,1823,1302,4043,2706, # 7798 +3858,1973,4281,8038,4282,3167, 823,1303,1288,1236,2848,3495,4044,3398, 774,3859, # 7814 +8039,1581,4560,1304,2849,3860,4561,8040,2435,2161,1083,3237,4283,4045,4284, 344, # 7830 +1173, 288,2311, 454,1683,8041,8042,1461,4562,4046,2589,8043,8044,4563, 985, 894, # 7846 +8045,3399,3168,8046,1913,2928,3729,1988,8047,2110,1974,8048,4047,8049,2571,1194, # 7862 + 425,8050,4564,3169,1245,3730,4285,8051,8052,2850,8053, 636,4565,1855,3861, 760, # 7878 +1799,8054,4286,2209,1508,4566,4048,1893,1684,2293,8055,8056,8057,4287,4288,2210, # 7894 + 479,8058,8059, 832,8060,4049,2489,8061,2965,2490,3731, 990,3109, 627,1814,2642, # 7910 +4289,1582,4290,2125,2111,3496,4567,8062, 799,4291,3170,8063,4568,2112,1737,3013, # 7926 +1018, 543, 754,4292,3309,1676,4569,4570,4050,8064,1489,8065,3497,8066,2614,2889, # 7942 +4051,8067,8068,2966,8069,8070,8071,8072,3171,4571,4572,2182,1722,8073,3238,3239, # 7958 +1842,3610,1715, 481, 365,1975,1856,8074,8075,1962,2491,4573,8076,2126,3611,3240, # 7974 + 433,1894,2063,2075,8077, 602,2741,8078,8079,8080,8081,8082,3014,1628,3400,8083, # 7990 +3172,4574,4052,2890,4575,2512,8084,2544,2772,8085,8086,8087,3310,4576,2891,8088, # 8006 +4577,8089,2851,4578,4579,1221,2967,4053,2513,8090,8091,8092,1867,1989,8093,8094, # 8022 +8095,1895,8096,8097,4580,1896,4054, 318,8098,2094,4055,4293,8099,8100, 485,8101, # 8038 + 938,3862, 553,2670, 116,8102,3863,3612,8103,3498,2671,2773,3401,3311,2807,8104, # 8054 +3613,2929,4056,1747,2930,2968,8105,8106, 207,8107,8108,2672,4581,2514,8109,3015, # 8070 + 890,3614,3864,8110,1877,3732,3402,8111,2183,2353,3403,1652,8112,8113,8114, 941, # 8086 +2294, 208,3499,4057,2019, 330,4294,3865,2892,2492,3733,4295,8115,8116,8117,8118, # 8102 +) + diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/euctwprober.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/euctwprober.py new file mode 100644 index 00000000..35669cc4 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/euctwprober.py @@ -0,0 +1,46 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +from .mbcharsetprober import MultiByteCharSetProber +from .codingstatemachine import CodingStateMachine +from .chardistribution import EUCTWDistributionAnalysis +from .mbcssm import EUCTW_SM_MODEL + +class EUCTWProber(MultiByteCharSetProber): + def __init__(self): + super(EUCTWProber, self).__init__() + self.coding_sm = CodingStateMachine(EUCTW_SM_MODEL) + self.distribution_analyzer = EUCTWDistributionAnalysis() + self.reset() + + @property + def charset_name(self): + return "EUC-TW" + + @property + def language(self): + return "Taiwan" diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/gb2312freq.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/gb2312freq.py new file mode 100644 index 00000000..697837bd --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/gb2312freq.py @@ -0,0 +1,283 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Communicator client code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +# GB2312 most frequently used character table +# +# Char to FreqOrder table , from hz6763 + +# 512 --> 0.79 -- 0.79 +# 1024 --> 0.92 -- 0.13 +# 2048 --> 0.98 -- 0.06 +# 6768 --> 1.00 -- 0.02 +# +# Ideal Distribution Ratio = 0.79135/(1-0.79135) = 3.79 +# Random Distribution Ration = 512 / (3755 - 512) = 0.157 +# +# Typical Distribution Ratio about 25% of Ideal one, still much higher that RDR + +GB2312_TYPICAL_DISTRIBUTION_RATIO = 0.9 + +GB2312_TABLE_SIZE = 3760 + +GB2312_CHAR_TO_FREQ_ORDER = ( +1671, 749,1443,2364,3924,3807,2330,3921,1704,3463,2691,1511,1515, 572,3191,2205, +2361, 224,2558, 479,1711, 963,3162, 440,4060,1905,2966,2947,3580,2647,3961,3842, +2204, 869,4207, 970,2678,5626,2944,2956,1479,4048, 514,3595, 588,1346,2820,3409, + 249,4088,1746,1873,2047,1774, 581,1813, 358,1174,3590,1014,1561,4844,2245, 670, +1636,3112, 889,1286, 953, 556,2327,3060,1290,3141, 613, 185,3477,1367, 850,3820, +1715,2428,2642,2303,2732,3041,2562,2648,3566,3946,1349, 388,3098,2091,1360,3585, + 152,1687,1539, 738,1559, 59,1232,2925,2267,1388,1249,1741,1679,2960, 151,1566, +1125,1352,4271, 924,4296, 385,3166,4459, 310,1245,2850, 70,3285,2729,3534,3575, +2398,3298,3466,1960,2265, 217,3647, 864,1909,2084,4401,2773,1010,3269,5152, 853, +3051,3121,1244,4251,1895, 364,1499,1540,2313,1180,3655,2268, 562, 715,2417,3061, + 544, 336,3768,2380,1752,4075, 950, 280,2425,4382, 183,2759,3272, 333,4297,2155, +1688,2356,1444,1039,4540, 736,1177,3349,2443,2368,2144,2225, 565, 196,1482,3406, + 927,1335,4147, 692, 878,1311,1653,3911,3622,1378,4200,1840,2969,3149,2126,1816, +2534,1546,2393,2760, 737,2494, 13, 447, 245,2747, 38,2765,2129,2589,1079, 606, + 360, 471,3755,2890, 404, 848, 699,1785,1236, 370,2221,1023,3746,2074,2026,2023, +2388,1581,2119, 812,1141,3091,2536,1519, 804,2053, 406,1596,1090, 784, 548,4414, +1806,2264,2936,1100, 343,4114,5096, 622,3358, 743,3668,1510,1626,5020,3567,2513, +3195,4115,5627,2489,2991, 24,2065,2697,1087,2719, 48,1634, 315, 68, 985,2052, + 198,2239,1347,1107,1439, 597,2366,2172, 871,3307, 919,2487,2790,1867, 236,2570, +1413,3794, 906,3365,3381,1701,1982,1818,1524,2924,1205, 616,2586,2072,2004, 575, + 253,3099, 32,1365,1182, 197,1714,2454,1201, 554,3388,3224,2748, 756,2587, 250, +2567,1507,1517,3529,1922,2761,2337,3416,1961,1677,2452,2238,3153, 615, 911,1506, +1474,2495,1265,1906,2749,3756,3280,2161, 898,2714,1759,3450,2243,2444, 563, 26, +3286,2266,3769,3344,2707,3677, 611,1402, 531,1028,2871,4548,1375, 261,2948, 835, +1190,4134, 353, 840,2684,1900,3082,1435,2109,1207,1674, 329,1872,2781,4055,2686, +2104, 608,3318,2423,2957,2768,1108,3739,3512,3271,3985,2203,1771,3520,1418,2054, +1681,1153, 225,1627,2929, 162,2050,2511,3687,1954, 124,1859,2431,1684,3032,2894, + 585,4805,3969,2869,2704,2088,2032,2095,3656,2635,4362,2209, 256, 518,2042,2105, +3777,3657, 643,2298,1148,1779, 190, 989,3544, 414, 11,2135,2063,2979,1471, 403, +3678, 126, 770,1563, 671,2499,3216,2877, 600,1179, 307,2805,4937,1268,1297,2694, + 252,4032,1448,1494,1331,1394, 127,2256, 222,1647,1035,1481,3056,1915,1048, 873, +3651, 210, 33,1608,2516, 200,1520, 415, 102, 0,3389,1287, 817, 91,3299,2940, + 836,1814, 549,2197,1396,1669,2987,3582,2297,2848,4528,1070, 687, 20,1819, 121, +1552,1364,1461,1968,2617,3540,2824,2083, 177, 948,4938,2291, 110,4549,2066, 648, +3359,1755,2110,2114,4642,4845,1693,3937,3308,1257,1869,2123, 208,1804,3159,2992, +2531,2549,3361,2418,1350,2347,2800,2568,1291,2036,2680, 72, 842,1990, 212,1233, +1154,1586, 75,2027,3410,4900,1823,1337,2710,2676, 728,2810,1522,3026,4995, 157, + 755,1050,4022, 710, 785,1936,2194,2085,1406,2777,2400, 150,1250,4049,1206, 807, +1910, 534, 529,3309,1721,1660, 274, 39,2827, 661,2670,1578, 925,3248,3815,1094, +4278,4901,4252, 41,1150,3747,2572,2227,4501,3658,4902,3813,3357,3617,2884,2258, + 887, 538,4187,3199,1294,2439,3042,2329,2343,2497,1255, 107, 543,1527, 521,3478, +3568, 194,5062, 15, 961,3870,1241,1192,2664, 66,5215,3260,2111,1295,1127,2152, +3805,4135, 901,1164,1976, 398,1278, 530,1460, 748, 904,1054,1966,1426, 53,2909, + 509, 523,2279,1534, 536,1019, 239,1685, 460,2353, 673,1065,2401,3600,4298,2272, +1272,2363, 284,1753,3679,4064,1695, 81, 815,2677,2757,2731,1386, 859, 500,4221, +2190,2566, 757,1006,2519,2068,1166,1455, 337,2654,3203,1863,1682,1914,3025,1252, +1409,1366, 847, 714,2834,2038,3209, 964,2970,1901, 885,2553,1078,1756,3049, 301, +1572,3326, 688,2130,1996,2429,1805,1648,2930,3421,2750,3652,3088, 262,1158,1254, + 389,1641,1812, 526,1719, 923,2073,1073,1902, 468, 489,4625,1140, 857,2375,3070, +3319,2863, 380, 116,1328,2693,1161,2244, 273,1212,1884,2769,3011,1775,1142, 461, +3066,1200,2147,2212, 790, 702,2695,4222,1601,1058, 434,2338,5153,3640, 67,2360, +4099,2502, 618,3472,1329, 416,1132, 830,2782,1807,2653,3211,3510,1662, 192,2124, + 296,3979,1739,1611,3684, 23, 118, 324, 446,1239,1225, 293,2520,3814,3795,2535, +3116, 17,1074, 467,2692,2201, 387,2922, 45,1326,3055,1645,3659,2817, 958, 243, +1903,2320,1339,2825,1784,3289, 356, 576, 865,2315,2381,3377,3916,1088,3122,1713, +1655, 935, 628,4689,1034,1327, 441, 800, 720, 894,1979,2183,1528,5289,2702,1071, +4046,3572,2399,1571,3281, 79, 761,1103, 327, 134, 758,1899,1371,1615, 879, 442, + 215,2605,2579, 173,2048,2485,1057,2975,3317,1097,2253,3801,4263,1403,1650,2946, + 814,4968,3487,1548,2644,1567,1285, 2, 295,2636, 97, 946,3576, 832, 141,4257, +3273, 760,3821,3521,3156,2607, 949,1024,1733,1516,1803,1920,2125,2283,2665,3180, +1501,2064,3560,2171,1592, 803,3518,1416, 732,3897,4258,1363,1362,2458, 119,1427, + 602,1525,2608,1605,1639,3175, 694,3064, 10, 465, 76,2000,4846,4208, 444,3781, +1619,3353,2206,1273,3796, 740,2483, 320,1723,2377,3660,2619,1359,1137,1762,1724, +2345,2842,1850,1862, 912, 821,1866, 612,2625,1735,2573,3369,1093, 844, 89, 937, + 930,1424,3564,2413,2972,1004,3046,3019,2011, 711,3171,1452,4178, 428, 801,1943, + 432, 445,2811, 206,4136,1472, 730, 349, 73, 397,2802,2547, 998,1637,1167, 789, + 396,3217, 154,1218, 716,1120,1780,2819,4826,1931,3334,3762,2139,1215,2627, 552, +3664,3628,3232,1405,2383,3111,1356,2652,3577,3320,3101,1703, 640,1045,1370,1246, +4996, 371,1575,2436,1621,2210, 984,4033,1734,2638, 16,4529, 663,2755,3255,1451, +3917,2257,1253,1955,2234,1263,2951, 214,1229, 617, 485, 359,1831,1969, 473,2310, + 750,2058, 165, 80,2864,2419, 361,4344,2416,2479,1134, 796,3726,1266,2943, 860, +2715, 938, 390,2734,1313,1384, 248, 202, 877,1064,2854, 522,3907, 279,1602, 297, +2357, 395,3740, 137,2075, 944,4089,2584,1267,3802, 62,1533,2285, 178, 176, 780, +2440, 201,3707, 590, 478,1560,4354,2117,1075, 30, 74,4643,4004,1635,1441,2745, + 776,2596, 238,1077,1692,1912,2844, 605, 499,1742,3947, 241,3053, 980,1749, 936, +2640,4511,2582, 515,1543,2162,5322,2892,2993, 890,2148,1924, 665,1827,3581,1032, + 968,3163, 339,1044,1896, 270, 583,1791,1720,4367,1194,3488,3669, 43,2523,1657, + 163,2167, 290,1209,1622,3378, 550, 634,2508,2510, 695,2634,2384,2512,1476,1414, + 220,1469,2341,2138,2852,3183,2900,4939,2865,3502,1211,3680, 854,3227,1299,2976, +3172, 186,2998,1459, 443,1067,3251,1495, 321,1932,3054, 909, 753,1410,1828, 436, +2441,1119,1587,3164,2186,1258, 227, 231,1425,1890,3200,3942, 247, 959, 725,5254, +2741, 577,2158,2079, 929, 120, 174, 838,2813, 591,1115, 417,2024, 40,3240,1536, +1037, 291,4151,2354, 632,1298,2406,2500,3535,1825,1846,3451, 205,1171, 345,4238, + 18,1163, 811, 685,2208,1217, 425,1312,1508,1175,4308,2552,1033, 587,1381,3059, +2984,3482, 340,1316,4023,3972, 792,3176, 519, 777,4690, 918, 933,4130,2981,3741, + 90,3360,2911,2200,5184,4550, 609,3079,2030, 272,3379,2736, 363,3881,1130,1447, + 286, 779, 357,1169,3350,3137,1630,1220,2687,2391, 747,1277,3688,2618,2682,2601, +1156,3196,5290,4034,3102,1689,3596,3128, 874, 219,2783, 798, 508,1843,2461, 269, +1658,1776,1392,1913,2983,3287,2866,2159,2372, 829,4076, 46,4253,2873,1889,1894, + 915,1834,1631,2181,2318, 298, 664,2818,3555,2735, 954,3228,3117, 527,3511,2173, + 681,2712,3033,2247,2346,3467,1652, 155,2164,3382, 113,1994, 450, 899, 494, 994, +1237,2958,1875,2336,1926,3727, 545,1577,1550, 633,3473, 204,1305,3072,2410,1956, +2471, 707,2134, 841,2195,2196,2663,3843,1026,4940, 990,3252,4997, 368,1092, 437, +3212,3258,1933,1829, 675,2977,2893, 412, 943,3723,4644,3294,3283,2230,2373,5154, +2389,2241,2661,2323,1404,2524, 593, 787, 677,3008,1275,2059, 438,2709,2609,2240, +2269,2246,1446, 36,1568,1373,3892,1574,2301,1456,3962, 693,2276,5216,2035,1143, +2720,1919,1797,1811,2763,4137,2597,1830,1699,1488,1198,2090, 424,1694, 312,3634, +3390,4179,3335,2252,1214, 561,1059,3243,2295,2561, 975,5155,2321,2751,3772, 472, +1537,3282,3398,1047,2077,2348,2878,1323,3340,3076, 690,2906, 51, 369, 170,3541, +1060,2187,2688,3670,2541,1083,1683, 928,3918, 459, 109,4427, 599,3744,4286, 143, +2101,2730,2490, 82,1588,3036,2121, 281,1860, 477,4035,1238,2812,3020,2716,3312, +1530,2188,2055,1317, 843, 636,1808,1173,3495, 649, 181,1002, 147,3641,1159,2414, +3750,2289,2795, 813,3123,2610,1136,4368, 5,3391,4541,2174, 420, 429,1728, 754, +1228,2115,2219, 347,2223,2733, 735,1518,3003,2355,3134,1764,3948,3329,1888,2424, +1001,1234,1972,3321,3363,1672,1021,1450,1584, 226, 765, 655,2526,3404,3244,2302, +3665, 731, 594,2184, 319,1576, 621, 658,2656,4299,2099,3864,1279,2071,2598,2739, + 795,3086,3699,3908,1707,2352,2402,1382,3136,2475,1465,4847,3496,3865,1085,3004, +2591,1084, 213,2287,1963,3565,2250, 822, 793,4574,3187,1772,1789,3050, 595,1484, +1959,2770,1080,2650, 456, 422,2996, 940,3322,4328,4345,3092,2742, 965,2784, 739, +4124, 952,1358,2498,2949,2565, 332,2698,2378, 660,2260,2473,4194,3856,2919, 535, +1260,2651,1208,1428,1300,1949,1303,2942, 433,2455,2450,1251,1946, 614,1269, 641, +1306,1810,2737,3078,2912, 564,2365,1419,1415,1497,4460,2367,2185,1379,3005,1307, +3218,2175,1897,3063, 682,1157,4040,4005,1712,1160,1941,1399, 394, 402,2952,1573, +1151,2986,2404, 862, 299,2033,1489,3006, 346, 171,2886,3401,1726,2932, 168,2533, + 47,2507,1030,3735,1145,3370,1395,1318,1579,3609,4560,2857,4116,1457,2529,1965, + 504,1036,2690,2988,2405, 745,5871, 849,2397,2056,3081, 863,2359,3857,2096, 99, +1397,1769,2300,4428,1643,3455,1978,1757,3718,1440, 35,4879,3742,1296,4228,2280, + 160,5063,1599,2013, 166, 520,3479,1646,3345,3012, 490,1937,1545,1264,2182,2505, +1096,1188,1369,1436,2421,1667,2792,2460,1270,2122, 727,3167,2143, 806,1706,1012, +1800,3037, 960,2218,1882, 805, 139,2456,1139,1521, 851,1052,3093,3089, 342,2039, + 744,5097,1468,1502,1585,2087, 223, 939, 326,2140,2577, 892,2481,1623,4077, 982, +3708, 135,2131, 87,2503,3114,2326,1106, 876,1616, 547,2997,2831,2093,3441,4530, +4314, 9,3256,4229,4148, 659,1462,1986,1710,2046,2913,2231,4090,4880,5255,3392, +3274,1368,3689,4645,1477, 705,3384,3635,1068,1529,2941,1458,3782,1509, 100,1656, +2548, 718,2339, 408,1590,2780,3548,1838,4117,3719,1345,3530, 717,3442,2778,3220, +2898,1892,4590,3614,3371,2043,1998,1224,3483, 891, 635, 584,2559,3355, 733,1766, +1729,1172,3789,1891,2307, 781,2982,2271,1957,1580,5773,2633,2005,4195,3097,1535, +3213,1189,1934,5693,3262, 586,3118,1324,1598, 517,1564,2217,1868,1893,4445,3728, +2703,3139,1526,1787,1992,3882,2875,1549,1199,1056,2224,1904,2711,5098,4287, 338, +1993,3129,3489,2689,1809,2815,1997, 957,1855,3898,2550,3275,3057,1105,1319, 627, +1505,1911,1883,3526, 698,3629,3456,1833,1431, 746, 77,1261,2017,2296,1977,1885, + 125,1334,1600, 525,1798,1109,2222,1470,1945, 559,2236,1186,3443,2476,1929,1411, +2411,3135,1777,3372,2621,1841,1613,3229, 668,1430,1839,2643,2916, 195,1989,2671, +2358,1387, 629,3205,2293,5256,4439, 123,1310, 888,1879,4300,3021,3605,1003,1162, +3192,2910,2010, 140,2395,2859, 55,1082,2012,2901, 662, 419,2081,1438, 680,2774, +4654,3912,1620,1731,1625,5035,4065,2328, 512,1344, 802,5443,2163,2311,2537, 524, +3399, 98,1155,2103,1918,2606,3925,2816,1393,2465,1504,3773,2177,3963,1478,4346, + 180,1113,4655,3461,2028,1698, 833,2696,1235,1322,1594,4408,3623,3013,3225,2040, +3022, 541,2881, 607,3632,2029,1665,1219, 639,1385,1686,1099,2803,3231,1938,3188, +2858, 427, 676,2772,1168,2025, 454,3253,2486,3556, 230,1950, 580, 791,1991,1280, +1086,1974,2034, 630, 257,3338,2788,4903,1017, 86,4790, 966,2789,1995,1696,1131, + 259,3095,4188,1308, 179,1463,5257, 289,4107,1248, 42,3413,1725,2288, 896,1947, + 774,4474,4254, 604,3430,4264, 392,2514,2588, 452, 237,1408,3018, 988,4531,1970, +3034,3310, 540,2370,1562,1288,2990, 502,4765,1147, 4,1853,2708, 207, 294,2814, +4078,2902,2509, 684, 34,3105,3532,2551, 644, 709,2801,2344, 573,1727,3573,3557, +2021,1081,3100,4315,2100,3681, 199,2263,1837,2385, 146,3484,1195,2776,3949, 997, +1939,3973,1008,1091,1202,1962,1847,1149,4209,5444,1076, 493, 117,5400,2521, 972, +1490,2934,1796,4542,2374,1512,2933,2657, 413,2888,1135,2762,2314,2156,1355,2369, + 766,2007,2527,2170,3124,2491,2593,2632,4757,2437, 234,3125,3591,1898,1750,1376, +1942,3468,3138, 570,2127,2145,3276,4131, 962, 132,1445,4196, 19, 941,3624,3480, +3366,1973,1374,4461,3431,2629, 283,2415,2275, 808,2887,3620,2112,2563,1353,3610, + 955,1089,3103,1053, 96, 88,4097, 823,3808,1583, 399, 292,4091,3313, 421,1128, + 642,4006, 903,2539,1877,2082, 596, 29,4066,1790, 722,2157, 130, 995,1569, 769, +1485, 464, 513,2213, 288,1923,1101,2453,4316, 133, 486,2445, 50, 625, 487,2207, + 57, 423, 481,2962, 159,3729,1558, 491, 303, 482, 501, 240,2837, 112,3648,2392, +1783, 362, 8,3433,3422, 610,2793,3277,1390,1284,1654, 21,3823, 734, 367, 623, + 193, 287, 374,1009,1483, 816, 476, 313,2255,2340,1262,2150,2899,1146,2581, 782, +2116,1659,2018,1880, 255,3586,3314,1110,2867,2137,2564, 986,2767,5185,2006, 650, + 158, 926, 762, 881,3157,2717,2362,3587, 306,3690,3245,1542,3077,2427,1691,2478, +2118,2985,3490,2438, 539,2305, 983, 129,1754, 355,4201,2386, 827,2923, 104,1773, +2838,2771, 411,2905,3919, 376, 767, 122,1114, 828,2422,1817,3506, 266,3460,1007, +1609,4998, 945,2612,4429,2274, 726,1247,1964,2914,2199,2070,4002,4108, 657,3323, +1422, 579, 455,2764,4737,1222,2895,1670, 824,1223,1487,2525, 558, 861,3080, 598, +2659,2515,1967, 752,2583,2376,2214,4180, 977, 704,2464,4999,2622,4109,1210,2961, + 819,1541, 142,2284, 44, 418, 457,1126,3730,4347,4626,1644,1876,3671,1864, 302, +1063,5694, 624, 723,1984,3745,1314,1676,2488,1610,1449,3558,3569,2166,2098, 409, +1011,2325,3704,2306, 818,1732,1383,1824,1844,3757, 999,2705,3497,1216,1423,2683, +2426,2954,2501,2726,2229,1475,2554,5064,1971,1794,1666,2014,1343, 783, 724, 191, +2434,1354,2220,5065,1763,2752,2472,4152, 131, 175,2885,3434, 92,1466,4920,2616, +3871,3872,3866, 128,1551,1632, 669,1854,3682,4691,4125,1230, 188,2973,3290,1302, +1213, 560,3266, 917, 763,3909,3249,1760, 868,1958, 764,1782,2097, 145,2277,3774, +4462, 64,1491,3062, 971,2132,3606,2442, 221,1226,1617, 218, 323,1185,3207,3147, + 571, 619,1473,1005,1744,2281, 449,1887,2396,3685, 275, 375,3816,1743,3844,3731, + 845,1983,2350,4210,1377, 773, 967,3499,3052,3743,2725,4007,1697,1022,3943,1464, +3264,2855,2722,1952,1029,2839,2467, 84,4383,2215, 820,1391,2015,2448,3672, 377, +1948,2168, 797,2545,3536,2578,2645, 94,2874,1678, 405,1259,3071, 771, 546,1315, + 470,1243,3083, 895,2468, 981, 969,2037, 846,4181, 653,1276,2928, 14,2594, 557, +3007,2474, 156, 902,1338,1740,2574, 537,2518, 973,2282,2216,2433,1928, 138,2903, +1293,2631,1612, 646,3457, 839,2935, 111, 496,2191,2847, 589,3186, 149,3994,2060, +4031,2641,4067,3145,1870, 37,3597,2136,1025,2051,3009,3383,3549,1121,1016,3261, +1301, 251,2446,2599,2153, 872,3246, 637, 334,3705, 831, 884, 921,3065,3140,4092, +2198,1944, 246,2964, 108,2045,1152,1921,2308,1031, 203,3173,4170,1907,3890, 810, +1401,2003,1690, 506, 647,1242,2828,1761,1649,3208,2249,1589,3709,2931,5156,1708, + 498, 666,2613, 834,3817,1231, 184,2851,1124, 883,3197,2261,3710,1765,1553,2658, +1178,2639,2351, 93,1193, 942,2538,2141,4402, 235,1821, 870,1591,2192,1709,1871, +3341,1618,4126,2595,2334, 603, 651, 69, 701, 268,2662,3411,2555,1380,1606, 503, + 448, 254,2371,2646, 574,1187,2309,1770, 322,2235,1292,1801, 305, 566,1133, 229, +2067,2057, 706, 167, 483,2002,2672,3295,1820,3561,3067, 316, 378,2746,3452,1112, + 136,1981, 507,1651,2917,1117, 285,4591, 182,2580,3522,1304, 335,3303,1835,2504, +1795,1792,2248, 674,1018,2106,2449,1857,2292,2845, 976,3047,1781,2600,2727,1389, +1281, 52,3152, 153, 265,3950, 672,3485,3951,4463, 430,1183, 365, 278,2169, 27, +1407,1336,2304, 209,1340,1730,2202,1852,2403,2883, 979,1737,1062, 631,2829,2542, +3876,2592, 825,2086,2226,3048,3625, 352,1417,3724, 542, 991, 431,1351,3938,1861, +2294, 826,1361,2927,3142,3503,1738, 463,2462,2723, 582,1916,1595,2808, 400,3845, +3891,2868,3621,2254, 58,2492,1123, 910,2160,2614,1372,1603,1196,1072,3385,1700, +3267,1980, 696, 480,2430, 920, 799,1570,2920,1951,2041,4047,2540,1321,4223,2469, +3562,2228,1271,2602, 401,2833,3351,2575,5157, 907,2312,1256, 410, 263,3507,1582, + 996, 678,1849,2316,1480, 908,3545,2237, 703,2322, 667,1826,2849,1531,2604,2999, +2407,3146,2151,2630,1786,3711, 469,3542, 497,3899,2409, 858, 837,4446,3393,1274, + 786, 620,1845,2001,3311, 484, 308,3367,1204,1815,3691,2332,1532,2557,1842,2020, +2724,1927,2333,4440, 567, 22,1673,2728,4475,1987,1858,1144,1597, 101,1832,3601, + 12, 974,3783,4391, 951,1412, 1,3720, 453,4608,4041, 528,1041,1027,3230,2628, +1129, 875,1051,3291,1203,2262,1069,2860,2799,2149,2615,3278, 144,1758,3040, 31, + 475,1680, 366,2685,3184, 311,1642,4008,2466,5036,1593,1493,2809, 216,1420,1668, + 233, 304,2128,3284, 232,1429,1768,1040,2008,3407,2740,2967,2543, 242,2133, 778, +1565,2022,2620, 505,2189,2756,1098,2273, 372,1614, 708, 553,2846,2094,2278, 169, +3626,2835,4161, 228,2674,3165, 809,1454,1309, 466,1705,1095, 900,3423, 880,2667, +3751,5258,2317,3109,2571,4317,2766,1503,1342, 866,4447,1118, 63,2076, 314,1881, +1348,1061, 172, 978,3515,1747, 532, 511,3970, 6, 601, 905,2699,3300,1751, 276, +1467,3725,2668, 65,4239,2544,2779,2556,1604, 578,2451,1802, 992,2331,2624,1320, +3446, 713,1513,1013, 103,2786,2447,1661, 886,1702, 916, 654,3574,2031,1556, 751, +2178,2821,2179,1498,1538,2176, 271, 914,2251,2080,1325, 638,1953,2937,3877,2432, +2754, 95,3265,1716, 260,1227,4083, 775, 106,1357,3254, 426,1607, 555,2480, 772, +1985, 244,2546, 474, 495,1046,2611,1851,2061, 71,2089,1675,2590, 742,3758,2843, +3222,1433, 267,2180,2576,2826,2233,2092,3913,2435, 956,1745,3075, 856,2113,1116, + 451, 3,1988,2896,1398, 993,2463,1878,2049,1341,2718,2721,2870,2108, 712,2904, +4363,2753,2324, 277,2872,2349,2649, 384, 987, 435, 691,3000, 922, 164,3939, 652, +1500,1184,4153,2482,3373,2165,4848,2335,3775,3508,3154,2806,2830,1554,2102,1664, +2530,1434,2408, 893,1547,2623,3447,2832,2242,2532,3169,2856,3223,2078, 49,3770, +3469, 462, 318, 656,2259,3250,3069, 679,1629,2758, 344,1138,1104,3120,1836,1283, +3115,2154,1437,4448, 934, 759,1999, 794,2862,1038, 533,2560,1722,2342, 855,2626, +1197,1663,4476,3127, 85,4240,2528, 25,1111,1181,3673, 407,3470,4561,2679,2713, + 768,1925,2841,3986,1544,1165, 932, 373,1240,2146,1930,2673, 721,4766, 354,4333, + 391,2963, 187, 61,3364,1442,1102, 330,1940,1767, 341,3809,4118, 393,2496,2062, +2211, 105, 331, 300, 439, 913,1332, 626, 379,3304,1557, 328, 689,3952, 309,1555, + 931, 317,2517,3027, 325, 569, 686,2107,3084, 60,1042,1333,2794, 264,3177,4014, +1628, 258,3712, 7,4464,1176,1043,1778, 683, 114,1975, 78,1492, 383,1886, 510, + 386, 645,5291,2891,2069,3305,4138,3867,2939,2603,2493,1935,1066,1848,3588,1015, +1282,1289,4609, 697,1453,3044,2666,3611,1856,2412, 54, 719,1330, 568,3778,2459, +1748, 788, 492, 551,1191,1000, 488,3394,3763, 282,1799, 348,2016,1523,3155,2390, +1049, 382,2019,1788,1170, 729,2968,3523, 897,3926,2785,2938,3292, 350,2319,3238, +1718,1717,2655,3453,3143,4465, 161,2889,2980,2009,1421, 56,1908,1640,2387,2232, +1917,1874,2477,4921, 148, 83,3438, 592,4245,2882,1822,1055, 741, 115,1496,1624, + 381,1638,4592,1020, 516,3214, 458, 947,4575,1432, 211,1514,2926,1865,2142, 189, + 852,1221,1400,1486, 882,2299,4036, 351, 28,1122, 700,6479,6480,6481,6482,6483, #last 512 +) + diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/gb2312prober.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/gb2312prober.py new file mode 100644 index 00000000..8446d2dd --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/gb2312prober.py @@ -0,0 +1,46 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +from .mbcharsetprober import MultiByteCharSetProber +from .codingstatemachine import CodingStateMachine +from .chardistribution import GB2312DistributionAnalysis +from .mbcssm import GB2312_SM_MODEL + +class GB2312Prober(MultiByteCharSetProber): + def __init__(self): + super(GB2312Prober, self).__init__() + self.coding_sm = CodingStateMachine(GB2312_SM_MODEL) + self.distribution_analyzer = GB2312DistributionAnalysis() + self.reset() + + @property + def charset_name(self): + return "GB2312" + + @property + def language(self): + return "Chinese" diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/hebrewprober.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/hebrewprober.py new file mode 100644 index 00000000..b0e1bf49 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/hebrewprober.py @@ -0,0 +1,292 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Universal charset detector code. +# +# The Initial Developer of the Original Code is +# Shy Shalom +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +from .charsetprober import CharSetProber +from .enums import ProbingState + +# This prober doesn't actually recognize a language or a charset. +# It is a helper prober for the use of the Hebrew model probers + +### General ideas of the Hebrew charset recognition ### +# +# Four main charsets exist in Hebrew: +# "ISO-8859-8" - Visual Hebrew +# "windows-1255" - Logical Hebrew +# "ISO-8859-8-I" - Logical Hebrew +# "x-mac-hebrew" - ?? Logical Hebrew ?? +# +# Both "ISO" charsets use a completely identical set of code points, whereas +# "windows-1255" and "x-mac-hebrew" are two different proper supersets of +# these code points. windows-1255 defines additional characters in the range +# 0x80-0x9F as some misc punctuation marks as well as some Hebrew-specific +# diacritics and additional 'Yiddish' ligature letters in the range 0xc0-0xd6. +# x-mac-hebrew defines similar additional code points but with a different +# mapping. +# +# As far as an average Hebrew text with no diacritics is concerned, all four +# charsets are identical with respect to code points. Meaning that for the +# main Hebrew alphabet, all four map the same values to all 27 Hebrew letters +# (including final letters). +# +# The dominant difference between these charsets is their directionality. +# "Visual" directionality means that the text is ordered as if the renderer is +# not aware of a BIDI rendering algorithm. The renderer sees the text and +# draws it from left to right. The text itself when ordered naturally is read +# backwards. A buffer of Visual Hebrew generally looks like so: +# "[last word of first line spelled backwards] [whole line ordered backwards +# and spelled backwards] [first word of first line spelled backwards] +# [end of line] [last word of second line] ... etc' " +# adding punctuation marks, numbers and English text to visual text is +# naturally also "visual" and from left to right. +# +# "Logical" directionality means the text is ordered "naturally" according to +# the order it is read. It is the responsibility of the renderer to display +# the text from right to left. A BIDI algorithm is used to place general +# punctuation marks, numbers and English text in the text. +# +# Texts in x-mac-hebrew are almost impossible to find on the Internet. From +# what little evidence I could find, it seems that its general directionality +# is Logical. +# +# To sum up all of the above, the Hebrew probing mechanism knows about two +# charsets: +# Visual Hebrew - "ISO-8859-8" - backwards text - Words and sentences are +# backwards while line order is natural. For charset recognition purposes +# the line order is unimportant (In fact, for this implementation, even +# word order is unimportant). +# Logical Hebrew - "windows-1255" - normal, naturally ordered text. +# +# "ISO-8859-8-I" is a subset of windows-1255 and doesn't need to be +# specifically identified. +# "x-mac-hebrew" is also identified as windows-1255. A text in x-mac-hebrew +# that contain special punctuation marks or diacritics is displayed with +# some unconverted characters showing as question marks. This problem might +# be corrected using another model prober for x-mac-hebrew. Due to the fact +# that x-mac-hebrew texts are so rare, writing another model prober isn't +# worth the effort and performance hit. +# +#### The Prober #### +# +# The prober is divided between two SBCharSetProbers and a HebrewProber, +# all of which are managed, created, fed data, inquired and deleted by the +# SBCSGroupProber. The two SBCharSetProbers identify that the text is in +# fact some kind of Hebrew, Logical or Visual. The final decision about which +# one is it is made by the HebrewProber by combining final-letter scores +# with the scores of the two SBCharSetProbers to produce a final answer. +# +# The SBCSGroupProber is responsible for stripping the original text of HTML +# tags, English characters, numbers, low-ASCII punctuation characters, spaces +# and new lines. It reduces any sequence of such characters to a single space. +# The buffer fed to each prober in the SBCS group prober is pure text in +# high-ASCII. +# The two SBCharSetProbers (model probers) share the same language model: +# Win1255Model. +# The first SBCharSetProber uses the model normally as any other +# SBCharSetProber does, to recognize windows-1255, upon which this model was +# built. The second SBCharSetProber is told to make the pair-of-letter +# lookup in the language model backwards. This in practice exactly simulates +# a visual Hebrew model using the windows-1255 logical Hebrew model. +# +# The HebrewProber is not using any language model. All it does is look for +# final-letter evidence suggesting the text is either logical Hebrew or visual +# Hebrew. Disjointed from the model probers, the results of the HebrewProber +# alone are meaningless. HebrewProber always returns 0.00 as confidence +# since it never identifies a charset by itself. Instead, the pointer to the +# HebrewProber is passed to the model probers as a helper "Name Prober". +# When the Group prober receives a positive identification from any prober, +# it asks for the name of the charset identified. If the prober queried is a +# Hebrew model prober, the model prober forwards the call to the +# HebrewProber to make the final decision. In the HebrewProber, the +# decision is made according to the final-letters scores maintained and Both +# model probers scores. The answer is returned in the form of the name of the +# charset identified, either "windows-1255" or "ISO-8859-8". + +class HebrewProber(CharSetProber): + # windows-1255 / ISO-8859-8 code points of interest + FINAL_KAF = 0xea + NORMAL_KAF = 0xeb + FINAL_MEM = 0xed + NORMAL_MEM = 0xee + FINAL_NUN = 0xef + NORMAL_NUN = 0xf0 + FINAL_PE = 0xf3 + NORMAL_PE = 0xf4 + FINAL_TSADI = 0xf5 + NORMAL_TSADI = 0xf6 + + # Minimum Visual vs Logical final letter score difference. + # If the difference is below this, don't rely solely on the final letter score + # distance. + MIN_FINAL_CHAR_DISTANCE = 5 + + # Minimum Visual vs Logical model score difference. + # If the difference is below this, don't rely at all on the model score + # distance. + MIN_MODEL_DISTANCE = 0.01 + + VISUAL_HEBREW_NAME = "ISO-8859-8" + LOGICAL_HEBREW_NAME = "windows-1255" + + def __init__(self): + super(HebrewProber, self).__init__() + self._final_char_logical_score = None + self._final_char_visual_score = None + self._prev = None + self._before_prev = None + self._logical_prober = None + self._visual_prober = None + self.reset() + + def reset(self): + self._final_char_logical_score = 0 + self._final_char_visual_score = 0 + # The two last characters seen in the previous buffer, + # mPrev and mBeforePrev are initialized to space in order to simulate + # a word delimiter at the beginning of the data + self._prev = ' ' + self._before_prev = ' ' + # These probers are owned by the group prober. + + def set_model_probers(self, logicalProber, visualProber): + self._logical_prober = logicalProber + self._visual_prober = visualProber + + def is_final(self, c): + return c in [self.FINAL_KAF, self.FINAL_MEM, self.FINAL_NUN, + self.FINAL_PE, self.FINAL_TSADI] + + def is_non_final(self, c): + # The normal Tsadi is not a good Non-Final letter due to words like + # 'lechotet' (to chat) containing an apostrophe after the tsadi. This + # apostrophe is converted to a space in FilterWithoutEnglishLetters + # causing the Non-Final tsadi to appear at an end of a word even + # though this is not the case in the original text. + # The letters Pe and Kaf rarely display a related behavior of not being + # a good Non-Final letter. Words like 'Pop', 'Winamp' and 'Mubarak' + # for example legally end with a Non-Final Pe or Kaf. However, the + # benefit of these letters as Non-Final letters outweighs the damage + # since these words are quite rare. + return c in [self.NORMAL_KAF, self.NORMAL_MEM, + self.NORMAL_NUN, self.NORMAL_PE] + + def feed(self, byte_str): + # Final letter analysis for logical-visual decision. + # Look for evidence that the received buffer is either logical Hebrew + # or visual Hebrew. + # The following cases are checked: + # 1) A word longer than 1 letter, ending with a final letter. This is + # an indication that the text is laid out "naturally" since the + # final letter really appears at the end. +1 for logical score. + # 2) A word longer than 1 letter, ending with a Non-Final letter. In + # normal Hebrew, words ending with Kaf, Mem, Nun, Pe or Tsadi, + # should not end with the Non-Final form of that letter. Exceptions + # to this rule are mentioned above in isNonFinal(). This is an + # indication that the text is laid out backwards. +1 for visual + # score + # 3) A word longer than 1 letter, starting with a final letter. Final + # letters should not appear at the beginning of a word. This is an + # indication that the text is laid out backwards. +1 for visual + # score. + # + # The visual score and logical score are accumulated throughout the + # text and are finally checked against each other in GetCharSetName(). + # No checking for final letters in the middle of words is done since + # that case is not an indication for either Logical or Visual text. + # + # We automatically filter out all 7-bit characters (replace them with + # spaces) so the word boundary detection works properly. [MAP] + + if self.state == ProbingState.NOT_ME: + # Both model probers say it's not them. No reason to continue. + return ProbingState.NOT_ME + + byte_str = self.filter_high_byte_only(byte_str) + + for cur in byte_str: + if cur == ' ': + # We stand on a space - a word just ended + if self._before_prev != ' ': + # next-to-last char was not a space so self._prev is not a + # 1 letter word + if self.is_final(self._prev): + # case (1) [-2:not space][-1:final letter][cur:space] + self._final_char_logical_score += 1 + elif self.is_non_final(self._prev): + # case (2) [-2:not space][-1:Non-Final letter][ + # cur:space] + self._final_char_visual_score += 1 + else: + # Not standing on a space + if ((self._before_prev == ' ') and + (self.is_final(self._prev)) and (cur != ' ')): + # case (3) [-2:space][-1:final letter][cur:not space] + self._final_char_visual_score += 1 + self._before_prev = self._prev + self._prev = cur + + # Forever detecting, till the end or until both model probers return + # ProbingState.NOT_ME (handled above) + return ProbingState.DETECTING + + @property + def charset_name(self): + # Make the decision: is it Logical or Visual? + # If the final letter score distance is dominant enough, rely on it. + finalsub = self._final_char_logical_score - self._final_char_visual_score + if finalsub >= self.MIN_FINAL_CHAR_DISTANCE: + return self.LOGICAL_HEBREW_NAME + if finalsub <= -self.MIN_FINAL_CHAR_DISTANCE: + return self.VISUAL_HEBREW_NAME + + # It's not dominant enough, try to rely on the model scores instead. + modelsub = (self._logical_prober.get_confidence() + - self._visual_prober.get_confidence()) + if modelsub > self.MIN_MODEL_DISTANCE: + return self.LOGICAL_HEBREW_NAME + if modelsub < -self.MIN_MODEL_DISTANCE: + return self.VISUAL_HEBREW_NAME + + # Still no good, back to final letter distance, maybe it'll save the + # day. + if finalsub < 0.0: + return self.VISUAL_HEBREW_NAME + + # (finalsub > 0 - Logical) or (don't know what to do) default to + # Logical. + return self.LOGICAL_HEBREW_NAME + + @property + def language(self): + return 'Hebrew' + + @property + def state(self): + # Remain active as long as any of the model probers are active. + if (self._logical_prober.state == ProbingState.NOT_ME) and \ + (self._visual_prober.state == ProbingState.NOT_ME): + return ProbingState.NOT_ME + return ProbingState.DETECTING diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/jisfreq.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/jisfreq.py new file mode 100644 index 00000000..83fc082b --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/jisfreq.py @@ -0,0 +1,325 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Communicator client code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +# Sampling from about 20M text materials include literature and computer technology +# +# Japanese frequency table, applied to both S-JIS and EUC-JP +# They are sorted in order. + +# 128 --> 0.77094 +# 256 --> 0.85710 +# 512 --> 0.92635 +# 1024 --> 0.97130 +# 2048 --> 0.99431 +# +# Ideal Distribution Ratio = 0.92635 / (1-0.92635) = 12.58 +# Random Distribution Ration = 512 / (2965+62+83+86-512) = 0.191 +# +# Typical Distribution Ratio, 25% of IDR + +JIS_TYPICAL_DISTRIBUTION_RATIO = 3.0 + +# Char to FreqOrder table , +JIS_TABLE_SIZE = 4368 + +JIS_CHAR_TO_FREQ_ORDER = ( + 40, 1, 6, 182, 152, 180, 295,2127, 285, 381,3295,4304,3068,4606,3165,3510, # 16 +3511,1822,2785,4607,1193,2226,5070,4608, 171,2996,1247, 18, 179,5071, 856,1661, # 32 +1262,5072, 619, 127,3431,3512,3230,1899,1700, 232, 228,1294,1298, 284, 283,2041, # 48 +2042,1061,1062, 48, 49, 44, 45, 433, 434,1040,1041, 996, 787,2997,1255,4305, # 64 +2108,4609,1684,1648,5073,5074,5075,5076,5077,5078,3687,5079,4610,5080,3927,3928, # 80 +5081,3296,3432, 290,2285,1471,2187,5082,2580,2825,1303,2140,1739,1445,2691,3375, # 96 +1691,3297,4306,4307,4611, 452,3376,1182,2713,3688,3069,4308,5083,5084,5085,5086, # 112 +5087,5088,5089,5090,5091,5092,5093,5094,5095,5096,5097,5098,5099,5100,5101,5102, # 128 +5103,5104,5105,5106,5107,5108,5109,5110,5111,5112,4097,5113,5114,5115,5116,5117, # 144 +5118,5119,5120,5121,5122,5123,5124,5125,5126,5127,5128,5129,5130,5131,5132,5133, # 160 +5134,5135,5136,5137,5138,5139,5140,5141,5142,5143,5144,5145,5146,5147,5148,5149, # 176 +5150,5151,5152,4612,5153,5154,5155,5156,5157,5158,5159,5160,5161,5162,5163,5164, # 192 +5165,5166,5167,5168,5169,5170,5171,5172,5173,5174,5175,1472, 598, 618, 820,1205, # 208 +1309,1412,1858,1307,1692,5176,5177,5178,5179,5180,5181,5182,1142,1452,1234,1172, # 224 +1875,2043,2149,1793,1382,2973, 925,2404,1067,1241, 960,1377,2935,1491, 919,1217, # 240 +1865,2030,1406,1499,2749,4098,5183,5184,5185,5186,5187,5188,2561,4099,3117,1804, # 256 +2049,3689,4309,3513,1663,5189,3166,3118,3298,1587,1561,3433,5190,3119,1625,2998, # 272 +3299,4613,1766,3690,2786,4614,5191,5192,5193,5194,2161, 26,3377, 2,3929, 20, # 288 +3691, 47,4100, 50, 17, 16, 35, 268, 27, 243, 42, 155, 24, 154, 29, 184, # 304 + 4, 91, 14, 92, 53, 396, 33, 289, 9, 37, 64, 620, 21, 39, 321, 5, # 320 + 12, 11, 52, 13, 3, 208, 138, 0, 7, 60, 526, 141, 151,1069, 181, 275, # 336 +1591, 83, 132,1475, 126, 331, 829, 15, 69, 160, 59, 22, 157, 55,1079, 312, # 352 + 109, 38, 23, 25, 10, 19, 79,5195, 61, 382,1124, 8, 30,5196,5197,5198, # 368 +5199,5200,5201,5202,5203,5204,5205,5206, 89, 62, 74, 34,2416, 112, 139, 196, # 384 + 271, 149, 84, 607, 131, 765, 46, 88, 153, 683, 76, 874, 101, 258, 57, 80, # 400 + 32, 364, 121,1508, 169,1547, 68, 235, 145,2999, 41, 360,3027, 70, 63, 31, # 416 + 43, 259, 262,1383, 99, 533, 194, 66, 93, 846, 217, 192, 56, 106, 58, 565, # 432 + 280, 272, 311, 256, 146, 82, 308, 71, 100, 128, 214, 655, 110, 261, 104,1140, # 448 + 54, 51, 36, 87, 67,3070, 185,2618,2936,2020, 28,1066,2390,2059,5207,5208, # 464 +5209,5210,5211,5212,5213,5214,5215,5216,4615,5217,5218,5219,5220,5221,5222,5223, # 480 +5224,5225,5226,5227,5228,5229,5230,5231,5232,5233,5234,5235,5236,3514,5237,5238, # 496 +5239,5240,5241,5242,5243,5244,2297,2031,4616,4310,3692,5245,3071,5246,3598,5247, # 512 +4617,3231,3515,5248,4101,4311,4618,3808,4312,4102,5249,4103,4104,3599,5250,5251, # 528 +5252,5253,5254,5255,5256,5257,5258,5259,5260,5261,5262,5263,5264,5265,5266,5267, # 544 +5268,5269,5270,5271,5272,5273,5274,5275,5276,5277,5278,5279,5280,5281,5282,5283, # 560 +5284,5285,5286,5287,5288,5289,5290,5291,5292,5293,5294,5295,5296,5297,5298,5299, # 576 +5300,5301,5302,5303,5304,5305,5306,5307,5308,5309,5310,5311,5312,5313,5314,5315, # 592 +5316,5317,5318,5319,5320,5321,5322,5323,5324,5325,5326,5327,5328,5329,5330,5331, # 608 +5332,5333,5334,5335,5336,5337,5338,5339,5340,5341,5342,5343,5344,5345,5346,5347, # 624 +5348,5349,5350,5351,5352,5353,5354,5355,5356,5357,5358,5359,5360,5361,5362,5363, # 640 +5364,5365,5366,5367,5368,5369,5370,5371,5372,5373,5374,5375,5376,5377,5378,5379, # 656 +5380,5381, 363, 642,2787,2878,2788,2789,2316,3232,2317,3434,2011, 165,1942,3930, # 672 +3931,3932,3933,5382,4619,5383,4620,5384,5385,5386,5387,5388,5389,5390,5391,5392, # 688 +5393,5394,5395,5396,5397,5398,5399,5400,5401,5402,5403,5404,5405,5406,5407,5408, # 704 +5409,5410,5411,5412,5413,5414,5415,5416,5417,5418,5419,5420,5421,5422,5423,5424, # 720 +5425,5426,5427,5428,5429,5430,5431,5432,5433,5434,5435,5436,5437,5438,5439,5440, # 736 +5441,5442,5443,5444,5445,5446,5447,5448,5449,5450,5451,5452,5453,5454,5455,5456, # 752 +5457,5458,5459,5460,5461,5462,5463,5464,5465,5466,5467,5468,5469,5470,5471,5472, # 768 +5473,5474,5475,5476,5477,5478,5479,5480,5481,5482,5483,5484,5485,5486,5487,5488, # 784 +5489,5490,5491,5492,5493,5494,5495,5496,5497,5498,5499,5500,5501,5502,5503,5504, # 800 +5505,5506,5507,5508,5509,5510,5511,5512,5513,5514,5515,5516,5517,5518,5519,5520, # 816 +5521,5522,5523,5524,5525,5526,5527,5528,5529,5530,5531,5532,5533,5534,5535,5536, # 832 +5537,5538,5539,5540,5541,5542,5543,5544,5545,5546,5547,5548,5549,5550,5551,5552, # 848 +5553,5554,5555,5556,5557,5558,5559,5560,5561,5562,5563,5564,5565,5566,5567,5568, # 864 +5569,5570,5571,5572,5573,5574,5575,5576,5577,5578,5579,5580,5581,5582,5583,5584, # 880 +5585,5586,5587,5588,5589,5590,5591,5592,5593,5594,5595,5596,5597,5598,5599,5600, # 896 +5601,5602,5603,5604,5605,5606,5607,5608,5609,5610,5611,5612,5613,5614,5615,5616, # 912 +5617,5618,5619,5620,5621,5622,5623,5624,5625,5626,5627,5628,5629,5630,5631,5632, # 928 +5633,5634,5635,5636,5637,5638,5639,5640,5641,5642,5643,5644,5645,5646,5647,5648, # 944 +5649,5650,5651,5652,5653,5654,5655,5656,5657,5658,5659,5660,5661,5662,5663,5664, # 960 +5665,5666,5667,5668,5669,5670,5671,5672,5673,5674,5675,5676,5677,5678,5679,5680, # 976 +5681,5682,5683,5684,5685,5686,5687,5688,5689,5690,5691,5692,5693,5694,5695,5696, # 992 +5697,5698,5699,5700,5701,5702,5703,5704,5705,5706,5707,5708,5709,5710,5711,5712, # 1008 +5713,5714,5715,5716,5717,5718,5719,5720,5721,5722,5723,5724,5725,5726,5727,5728, # 1024 +5729,5730,5731,5732,5733,5734,5735,5736,5737,5738,5739,5740,5741,5742,5743,5744, # 1040 +5745,5746,5747,5748,5749,5750,5751,5752,5753,5754,5755,5756,5757,5758,5759,5760, # 1056 +5761,5762,5763,5764,5765,5766,5767,5768,5769,5770,5771,5772,5773,5774,5775,5776, # 1072 +5777,5778,5779,5780,5781,5782,5783,5784,5785,5786,5787,5788,5789,5790,5791,5792, # 1088 +5793,5794,5795,5796,5797,5798,5799,5800,5801,5802,5803,5804,5805,5806,5807,5808, # 1104 +5809,5810,5811,5812,5813,5814,5815,5816,5817,5818,5819,5820,5821,5822,5823,5824, # 1120 +5825,5826,5827,5828,5829,5830,5831,5832,5833,5834,5835,5836,5837,5838,5839,5840, # 1136 +5841,5842,5843,5844,5845,5846,5847,5848,5849,5850,5851,5852,5853,5854,5855,5856, # 1152 +5857,5858,5859,5860,5861,5862,5863,5864,5865,5866,5867,5868,5869,5870,5871,5872, # 1168 +5873,5874,5875,5876,5877,5878,5879,5880,5881,5882,5883,5884,5885,5886,5887,5888, # 1184 +5889,5890,5891,5892,5893,5894,5895,5896,5897,5898,5899,5900,5901,5902,5903,5904, # 1200 +5905,5906,5907,5908,5909,5910,5911,5912,5913,5914,5915,5916,5917,5918,5919,5920, # 1216 +5921,5922,5923,5924,5925,5926,5927,5928,5929,5930,5931,5932,5933,5934,5935,5936, # 1232 +5937,5938,5939,5940,5941,5942,5943,5944,5945,5946,5947,5948,5949,5950,5951,5952, # 1248 +5953,5954,5955,5956,5957,5958,5959,5960,5961,5962,5963,5964,5965,5966,5967,5968, # 1264 +5969,5970,5971,5972,5973,5974,5975,5976,5977,5978,5979,5980,5981,5982,5983,5984, # 1280 +5985,5986,5987,5988,5989,5990,5991,5992,5993,5994,5995,5996,5997,5998,5999,6000, # 1296 +6001,6002,6003,6004,6005,6006,6007,6008,6009,6010,6011,6012,6013,6014,6015,6016, # 1312 +6017,6018,6019,6020,6021,6022,6023,6024,6025,6026,6027,6028,6029,6030,6031,6032, # 1328 +6033,6034,6035,6036,6037,6038,6039,6040,6041,6042,6043,6044,6045,6046,6047,6048, # 1344 +6049,6050,6051,6052,6053,6054,6055,6056,6057,6058,6059,6060,6061,6062,6063,6064, # 1360 +6065,6066,6067,6068,6069,6070,6071,6072,6073,6074,6075,6076,6077,6078,6079,6080, # 1376 +6081,6082,6083,6084,6085,6086,6087,6088,6089,6090,6091,6092,6093,6094,6095,6096, # 1392 +6097,6098,6099,6100,6101,6102,6103,6104,6105,6106,6107,6108,6109,6110,6111,6112, # 1408 +6113,6114,2044,2060,4621, 997,1235, 473,1186,4622, 920,3378,6115,6116, 379,1108, # 1424 +4313,2657,2735,3934,6117,3809, 636,3233, 573,1026,3693,3435,2974,3300,2298,4105, # 1440 + 854,2937,2463, 393,2581,2417, 539, 752,1280,2750,2480, 140,1161, 440, 708,1569, # 1456 + 665,2497,1746,1291,1523,3000, 164,1603, 847,1331, 537,1997, 486, 508,1693,2418, # 1472 +1970,2227, 878,1220, 299,1030, 969, 652,2751, 624,1137,3301,2619, 65,3302,2045, # 1488 +1761,1859,3120,1930,3694,3516, 663,1767, 852, 835,3695, 269, 767,2826,2339,1305, # 1504 + 896,1150, 770,1616,6118, 506,1502,2075,1012,2519, 775,2520,2975,2340,2938,4314, # 1520 +3028,2086,1224,1943,2286,6119,3072,4315,2240,1273,1987,3935,1557, 175, 597, 985, # 1536 +3517,2419,2521,1416,3029, 585, 938,1931,1007,1052,1932,1685,6120,3379,4316,4623, # 1552 + 804, 599,3121,1333,2128,2539,1159,1554,2032,3810, 687,2033,2904, 952, 675,1467, # 1568 +3436,6121,2241,1096,1786,2440,1543,1924, 980,1813,2228, 781,2692,1879, 728,1918, # 1584 +3696,4624, 548,1950,4625,1809,1088,1356,3303,2522,1944, 502, 972, 373, 513,2827, # 1600 + 586,2377,2391,1003,1976,1631,6122,2464,1084, 648,1776,4626,2141, 324, 962,2012, # 1616 +2177,2076,1384, 742,2178,1448,1173,1810, 222, 102, 301, 445, 125,2420, 662,2498, # 1632 + 277, 200,1476,1165,1068, 224,2562,1378,1446, 450,1880, 659, 791, 582,4627,2939, # 1648 +3936,1516,1274, 555,2099,3697,1020,1389,1526,3380,1762,1723,1787,2229, 412,2114, # 1664 +1900,2392,3518, 512,2597, 427,1925,2341,3122,1653,1686,2465,2499, 697, 330, 273, # 1680 + 380,2162, 951, 832, 780, 991,1301,3073, 965,2270,3519, 668,2523,2636,1286, 535, # 1696 +1407, 518, 671, 957,2658,2378, 267, 611,2197,3030,6123, 248,2299, 967,1799,2356, # 1712 + 850,1418,3437,1876,1256,1480,2828,1718,6124,6125,1755,1664,2405,6126,4628,2879, # 1728 +2829, 499,2179, 676,4629, 557,2329,2214,2090, 325,3234, 464, 811,3001, 992,2342, # 1744 +2481,1232,1469, 303,2242, 466,1070,2163, 603,1777,2091,4630,2752,4631,2714, 322, # 1760 +2659,1964,1768, 481,2188,1463,2330,2857,3600,2092,3031,2421,4632,2318,2070,1849, # 1776 +2598,4633,1302,2254,1668,1701,2422,3811,2905,3032,3123,2046,4106,1763,1694,4634, # 1792 +1604, 943,1724,1454, 917, 868,2215,1169,2940, 552,1145,1800,1228,1823,1955, 316, # 1808 +1080,2510, 361,1807,2830,4107,2660,3381,1346,1423,1134,4108,6127, 541,1263,1229, # 1824 +1148,2540, 545, 465,1833,2880,3438,1901,3074,2482, 816,3937, 713,1788,2500, 122, # 1840 +1575, 195,1451,2501,1111,6128, 859, 374,1225,2243,2483,4317, 390,1033,3439,3075, # 1856 +2524,1687, 266, 793,1440,2599, 946, 779, 802, 507, 897,1081, 528,2189,1292, 711, # 1872 +1866,1725,1167,1640, 753, 398,2661,1053, 246, 348,4318, 137,1024,3440,1600,2077, # 1888 +2129, 825,4319, 698, 238, 521, 187,2300,1157,2423,1641,1605,1464,1610,1097,2541, # 1904 +1260,1436, 759,2255,1814,2150, 705,3235, 409,2563,3304, 561,3033,2005,2564, 726, # 1920 +1956,2343,3698,4109, 949,3812,3813,3520,1669, 653,1379,2525, 881,2198, 632,2256, # 1936 +1027, 778,1074, 733,1957, 514,1481,2466, 554,2180, 702,3938,1606,1017,1398,6129, # 1952 +1380,3521, 921, 993,1313, 594, 449,1489,1617,1166, 768,1426,1360, 495,1794,3601, # 1968 +1177,3602,1170,4320,2344, 476, 425,3167,4635,3168,1424, 401,2662,1171,3382,1998, # 1984 +1089,4110, 477,3169, 474,6130,1909, 596,2831,1842, 494, 693,1051,1028,1207,3076, # 2000 + 606,2115, 727,2790,1473,1115, 743,3522, 630, 805,1532,4321,2021, 366,1057, 838, # 2016 + 684,1114,2142,4322,2050,1492,1892,1808,2271,3814,2424,1971,1447,1373,3305,1090, # 2032 +1536,3939,3523,3306,1455,2199, 336, 369,2331,1035, 584,2393, 902, 718,2600,6131, # 2048 +2753, 463,2151,1149,1611,2467, 715,1308,3124,1268, 343,1413,3236,1517,1347,2663, # 2064 +2093,3940,2022,1131,1553,2100,2941,1427,3441,2942,1323,2484,6132,1980, 872,2368, # 2080 +2441,2943, 320,2369,2116,1082, 679,1933,3941,2791,3815, 625,1143,2023, 422,2200, # 2096 +3816,6133, 730,1695, 356,2257,1626,2301,2858,2637,1627,1778, 937, 883,2906,2693, # 2112 +3002,1769,1086, 400,1063,1325,3307,2792,4111,3077, 456,2345,1046, 747,6134,1524, # 2128 + 884,1094,3383,1474,2164,1059, 974,1688,2181,2258,1047, 345,1665,1187, 358, 875, # 2144 +3170, 305, 660,3524,2190,1334,1135,3171,1540,1649,2542,1527, 927, 968,2793, 885, # 2160 +1972,1850, 482, 500,2638,1218,1109,1085,2543,1654,2034, 876, 78,2287,1482,1277, # 2176 + 861,1675,1083,1779, 724,2754, 454, 397,1132,1612,2332, 893, 672,1237, 257,2259, # 2192 +2370, 135,3384, 337,2244, 547, 352, 340, 709,2485,1400, 788,1138,2511, 540, 772, # 2208 +1682,2260,2272,2544,2013,1843,1902,4636,1999,1562,2288,4637,2201,1403,1533, 407, # 2224 + 576,3308,1254,2071, 978,3385, 170, 136,1201,3125,2664,3172,2394, 213, 912, 873, # 2240 +3603,1713,2202, 699,3604,3699, 813,3442, 493, 531,1054, 468,2907,1483, 304, 281, # 2256 +4112,1726,1252,2094, 339,2319,2130,2639, 756,1563,2944, 748, 571,2976,1588,2425, # 2272 +2715,1851,1460,2426,1528,1392,1973,3237, 288,3309, 685,3386, 296, 892,2716,2216, # 2288 +1570,2245, 722,1747,2217, 905,3238,1103,6135,1893,1441,1965, 251,1805,2371,3700, # 2304 +2601,1919,1078, 75,2182,1509,1592,1270,2640,4638,2152,6136,3310,3817, 524, 706, # 2320 +1075, 292,3818,1756,2602, 317, 98,3173,3605,3525,1844,2218,3819,2502, 814, 567, # 2336 + 385,2908,1534,6137, 534,1642,3239, 797,6138,1670,1529, 953,4323, 188,1071, 538, # 2352 + 178, 729,3240,2109,1226,1374,2000,2357,2977, 731,2468,1116,2014,2051,6139,1261, # 2368 +1593, 803,2859,2736,3443, 556, 682, 823,1541,6140,1369,2289,1706,2794, 845, 462, # 2384 +2603,2665,1361, 387, 162,2358,1740, 739,1770,1720,1304,1401,3241,1049, 627,1571, # 2400 +2427,3526,1877,3942,1852,1500, 431,1910,1503, 677, 297,2795, 286,1433,1038,1198, # 2416 +2290,1133,1596,4113,4639,2469,1510,1484,3943,6141,2442, 108, 712,4640,2372, 866, # 2432 +3701,2755,3242,1348, 834,1945,1408,3527,2395,3243,1811, 824, 994,1179,2110,1548, # 2448 +1453, 790,3003, 690,4324,4325,2832,2909,3820,1860,3821, 225,1748, 310, 346,1780, # 2464 +2470, 821,1993,2717,2796, 828, 877,3528,2860,2471,1702,2165,2910,2486,1789, 453, # 2480 + 359,2291,1676, 73,1164,1461,1127,3311, 421, 604, 314,1037, 589, 116,2487, 737, # 2496 + 837,1180, 111, 244, 735,6142,2261,1861,1362, 986, 523, 418, 581,2666,3822, 103, # 2512 + 855, 503,1414,1867,2488,1091, 657,1597, 979, 605,1316,4641,1021,2443,2078,2001, # 2528 +1209, 96, 587,2166,1032, 260,1072,2153, 173, 94, 226,3244, 819,2006,4642,4114, # 2544 +2203, 231,1744, 782, 97,2667, 786,3387, 887, 391, 442,2219,4326,1425,6143,2694, # 2560 + 633,1544,1202, 483,2015, 592,2052,1958,2472,1655, 419, 129,4327,3444,3312,1714, # 2576 +1257,3078,4328,1518,1098, 865,1310,1019,1885,1512,1734, 469,2444, 148, 773, 436, # 2592 +1815,1868,1128,1055,4329,1245,2756,3445,2154,1934,1039,4643, 579,1238, 932,2320, # 2608 + 353, 205, 801, 115,2428, 944,2321,1881, 399,2565,1211, 678, 766,3944, 335,2101, # 2624 +1459,1781,1402,3945,2737,2131,1010, 844, 981,1326,1013, 550,1816,1545,2620,1335, # 2640 +1008, 371,2881, 936,1419,1613,3529,1456,1395,2273,1834,2604,1317,2738,2503, 416, # 2656 +1643,4330, 806,1126, 229, 591,3946,1314,1981,1576,1837,1666, 347,1790, 977,3313, # 2672 + 764,2861,1853, 688,2429,1920,1462, 77, 595, 415,2002,3034, 798,1192,4115,6144, # 2688 +2978,4331,3035,2695,2582,2072,2566, 430,2430,1727, 842,1396,3947,3702, 613, 377, # 2704 + 278, 236,1417,3388,3314,3174, 757,1869, 107,3530,6145,1194, 623,2262, 207,1253, # 2720 +2167,3446,3948, 492,1117,1935, 536,1838,2757,1246,4332, 696,2095,2406,1393,1572, # 2736 +3175,1782, 583, 190, 253,1390,2230, 830,3126,3389, 934,3245,1703,1749,2979,1870, # 2752 +2545,1656,2204, 869,2346,4116,3176,1817, 496,1764,4644, 942,1504, 404,1903,1122, # 2768 +1580,3606,2945,1022, 515, 372,1735, 955,2431,3036,6146,2797,1110,2302,2798, 617, # 2784 +6147, 441, 762,1771,3447,3607,3608,1904, 840,3037, 86, 939,1385, 572,1370,2445, # 2800 +1336, 114,3703, 898, 294, 203,3315, 703,1583,2274, 429, 961,4333,1854,1951,3390, # 2816 +2373,3704,4334,1318,1381, 966,1911,2322,1006,1155, 309, 989, 458,2718,1795,1372, # 2832 +1203, 252,1689,1363,3177, 517,1936, 168,1490, 562, 193,3823,1042,4117,1835, 551, # 2848 + 470,4645, 395, 489,3448,1871,1465,2583,2641, 417,1493, 279,1295, 511,1236,1119, # 2864 + 72,1231,1982,1812,3004, 871,1564, 984,3449,1667,2696,2096,4646,2347,2833,1673, # 2880 +3609, 695,3246,2668, 807,1183,4647, 890, 388,2333,1801,1457,2911,1765,1477,1031, # 2896 +3316,3317,1278,3391,2799,2292,2526, 163,3450,4335,2669,1404,1802,6148,2323,2407, # 2912 +1584,1728,1494,1824,1269, 298, 909,3318,1034,1632, 375, 776,1683,2061, 291, 210, # 2928 +1123, 809,1249,1002,2642,3038, 206,1011,2132, 144, 975, 882,1565, 342, 667, 754, # 2944 +1442,2143,1299,2303,2062, 447, 626,2205,1221,2739,2912,1144,1214,2206,2584, 760, # 2960 +1715, 614, 950,1281,2670,2621, 810, 577,1287,2546,4648, 242,2168, 250,2643, 691, # 2976 + 123,2644, 647, 313,1029, 689,1357,2946,1650, 216, 771,1339,1306, 808,2063, 549, # 2992 + 913,1371,2913,2914,6149,1466,1092,1174,1196,1311,2605,2396,1783,1796,3079, 406, # 3008 +2671,2117,3949,4649, 487,1825,2220,6150,2915, 448,2348,1073,6151,2397,1707, 130, # 3024 + 900,1598, 329, 176,1959,2527,1620,6152,2275,4336,3319,1983,2191,3705,3610,2155, # 3040 +3706,1912,1513,1614,6153,1988, 646, 392,2304,1589,3320,3039,1826,1239,1352,1340, # 3056 +2916, 505,2567,1709,1437,2408,2547, 906,6154,2672, 384,1458,1594,1100,1329, 710, # 3072 + 423,3531,2064,2231,2622,1989,2673,1087,1882, 333, 841,3005,1296,2882,2379, 580, # 3088 +1937,1827,1293,2585, 601, 574, 249,1772,4118,2079,1120, 645, 901,1176,1690, 795, # 3104 +2207, 478,1434, 516,1190,1530, 761,2080, 930,1264, 355, 435,1552, 644,1791, 987, # 3120 + 220,1364,1163,1121,1538, 306,2169,1327,1222, 546,2645, 218, 241, 610,1704,3321, # 3136 +1984,1839,1966,2528, 451,6155,2586,3707,2568, 907,3178, 254,2947, 186,1845,4650, # 3152 + 745, 432,1757, 428,1633, 888,2246,2221,2489,3611,2118,1258,1265, 956,3127,1784, # 3168 +4337,2490, 319, 510, 119, 457,3612, 274,2035,2007,4651,1409,3128, 970,2758, 590, # 3184 +2800, 661,2247,4652,2008,3950,1420,1549,3080,3322,3951,1651,1375,2111, 485,2491, # 3200 +1429,1156,6156,2548,2183,1495, 831,1840,2529,2446, 501,1657, 307,1894,3247,1341, # 3216 + 666, 899,2156,1539,2549,1559, 886, 349,2208,3081,2305,1736,3824,2170,2759,1014, # 3232 +1913,1386, 542,1397,2948, 490, 368, 716, 362, 159, 282,2569,1129,1658,1288,1750, # 3248 +2674, 276, 649,2016, 751,1496, 658,1818,1284,1862,2209,2087,2512,3451, 622,2834, # 3264 + 376, 117,1060,2053,1208,1721,1101,1443, 247,1250,3179,1792,3952,2760,2398,3953, # 3280 +6157,2144,3708, 446,2432,1151,2570,3452,2447,2761,2835,1210,2448,3082, 424,2222, # 3296 +1251,2449,2119,2836, 504,1581,4338, 602, 817, 857,3825,2349,2306, 357,3826,1470, # 3312 +1883,2883, 255, 958, 929,2917,3248, 302,4653,1050,1271,1751,2307,1952,1430,2697, # 3328 +2719,2359, 354,3180, 777, 158,2036,4339,1659,4340,4654,2308,2949,2248,1146,2232, # 3344 +3532,2720,1696,2623,3827,6158,3129,1550,2698,1485,1297,1428, 637, 931,2721,2145, # 3360 + 914,2550,2587, 81,2450, 612, 827,2646,1242,4655,1118,2884, 472,1855,3181,3533, # 3376 +3534, 569,1353,2699,1244,1758,2588,4119,2009,2762,2171,3709,1312,1531,6159,1152, # 3392 +1938, 134,1830, 471,3710,2276,1112,1535,3323,3453,3535, 982,1337,2950, 488, 826, # 3408 + 674,1058,1628,4120,2017, 522,2399, 211, 568,1367,3454, 350, 293,1872,1139,3249, # 3424 +1399,1946,3006,1300,2360,3324, 588, 736,6160,2606, 744, 669,3536,3828,6161,1358, # 3440 + 199, 723, 848, 933, 851,1939,1505,1514,1338,1618,1831,4656,1634,3613, 443,2740, # 3456 +3829, 717,1947, 491,1914,6162,2551,1542,4121,1025,6163,1099,1223, 198,3040,2722, # 3472 + 370, 410,1905,2589, 998,1248,3182,2380, 519,1449,4122,1710, 947, 928,1153,4341, # 3488 +2277, 344,2624,1511, 615, 105, 161,1212,1076,1960,3130,2054,1926,1175,1906,2473, # 3504 + 414,1873,2801,6164,2309, 315,1319,3325, 318,2018,2146,2157, 963, 631, 223,4342, # 3520 +4343,2675, 479,3711,1197,2625,3712,2676,2361,6165,4344,4123,6166,2451,3183,1886, # 3536 +2184,1674,1330,1711,1635,1506, 799, 219,3250,3083,3954,1677,3713,3326,2081,3614, # 3552 +1652,2073,4657,1147,3041,1752, 643,1961, 147,1974,3955,6167,1716,2037, 918,3007, # 3568 +1994, 120,1537, 118, 609,3184,4345, 740,3455,1219, 332,1615,3830,6168,1621,2980, # 3584 +1582, 783, 212, 553,2350,3714,1349,2433,2082,4124, 889,6169,2310,1275,1410, 973, # 3600 + 166,1320,3456,1797,1215,3185,2885,1846,2590,2763,4658, 629, 822,3008, 763, 940, # 3616 +1990,2862, 439,2409,1566,1240,1622, 926,1282,1907,2764, 654,2210,1607, 327,1130, # 3632 +3956,1678,1623,6170,2434,2192, 686, 608,3831,3715, 903,3957,3042,6171,2741,1522, # 3648 +1915,1105,1555,2552,1359, 323,3251,4346,3457, 738,1354,2553,2311,2334,1828,2003, # 3664 +3832,1753,2351,1227,6172,1887,4125,1478,6173,2410,1874,1712,1847, 520,1204,2607, # 3680 + 264,4659, 836,2677,2102, 600,4660,3833,2278,3084,6174,4347,3615,1342, 640, 532, # 3696 + 543,2608,1888,2400,2591,1009,4348,1497, 341,1737,3616,2723,1394, 529,3252,1321, # 3712 + 983,4661,1515,2120, 971,2592, 924, 287,1662,3186,4349,2700,4350,1519, 908,1948, # 3728 +2452, 156, 796,1629,1486,2223,2055, 694,4126,1259,1036,3392,1213,2249,2742,1889, # 3744 +1230,3958,1015, 910, 408, 559,3617,4662, 746, 725, 935,4663,3959,3009,1289, 563, # 3760 + 867,4664,3960,1567,2981,2038,2626, 988,2263,2381,4351, 143,2374, 704,1895,6175, # 3776 +1188,3716,2088, 673,3085,2362,4352, 484,1608,1921,2765,2918, 215, 904,3618,3537, # 3792 + 894, 509, 976,3043,2701,3961,4353,2837,2982, 498,6176,6177,1102,3538,1332,3393, # 3808 +1487,1636,1637, 233, 245,3962, 383, 650, 995,3044, 460,1520,1206,2352, 749,3327, # 3824 + 530, 700, 389,1438,1560,1773,3963,2264, 719,2951,2724,3834, 870,1832,1644,1000, # 3840 + 839,2474,3717, 197,1630,3394, 365,2886,3964,1285,2133, 734, 922, 818,1106, 732, # 3856 + 480,2083,1774,3458, 923,2279,1350, 221,3086, 85,2233,2234,3835,1585,3010,2147, # 3872 +1387,1705,2382,1619,2475, 133, 239,2802,1991,1016,2084,2383, 411,2838,1113, 651, # 3888 +1985,1160,3328, 990,1863,3087,1048,1276,2647, 265,2627,1599,3253,2056, 150, 638, # 3904 +2019, 656, 853, 326,1479, 680,1439,4354,1001,1759, 413,3459,3395,2492,1431, 459, # 3920 +4355,1125,3329,2265,1953,1450,2065,2863, 849, 351,2678,3131,3254,3255,1104,1577, # 3936 + 227,1351,1645,2453,2193,1421,2887, 812,2121, 634, 95,2435, 201,2312,4665,1646, # 3952 +1671,2743,1601,2554,2702,2648,2280,1315,1366,2089,3132,1573,3718,3965,1729,1189, # 3968 + 328,2679,1077,1940,1136, 558,1283, 964,1195, 621,2074,1199,1743,3460,3619,1896, # 3984 +1916,1890,3836,2952,1154,2112,1064, 862, 378,3011,2066,2113,2803,1568,2839,6178, # 4000 +3088,2919,1941,1660,2004,1992,2194, 142, 707,1590,1708,1624,1922,1023,1836,1233, # 4016 +1004,2313, 789, 741,3620,6179,1609,2411,1200,4127,3719,3720,4666,2057,3721, 593, # 4032 +2840, 367,2920,1878,6180,3461,1521, 628,1168, 692,2211,2649, 300, 720,2067,2571, # 4048 +2953,3396, 959,2504,3966,3539,3462,1977, 701,6181, 954,1043, 800, 681, 183,3722, # 4064 +1803,1730,3540,4128,2103, 815,2314, 174, 467, 230,2454,1093,2134, 755,3541,3397, # 4080 +1141,1162,6182,1738,2039, 270,3256,2513,1005,1647,2185,3837, 858,1679,1897,1719, # 4096 +2954,2324,1806, 402, 670, 167,4129,1498,2158,2104, 750,6183, 915, 189,1680,1551, # 4112 + 455,4356,1501,2455, 405,1095,2955, 338,1586,1266,1819, 570, 641,1324, 237,1556, # 4128 +2650,1388,3723,6184,1368,2384,1343,1978,3089,2436, 879,3724, 792,1191, 758,3012, # 4144 +1411,2135,1322,4357, 240,4667,1848,3725,1574,6185, 420,3045,1546,1391, 714,4358, # 4160 +1967, 941,1864, 863, 664, 426, 560,1731,2680,1785,2864,1949,2363, 403,3330,1415, # 4176 +1279,2136,1697,2335, 204, 721,2097,3838, 90,6186,2085,2505, 191,3967, 124,2148, # 4192 +1376,1798,1178,1107,1898,1405, 860,4359,1243,1272,2375,2983,1558,2456,1638, 113, # 4208 +3621, 578,1923,2609, 880, 386,4130, 784,2186,2266,1422,2956,2172,1722, 497, 263, # 4224 +2514,1267,2412,2610, 177,2703,3542, 774,1927,1344, 616,1432,1595,1018, 172,4360, # 4240 +2325, 911,4361, 438,1468,3622, 794,3968,2024,2173,1681,1829,2957, 945, 895,3090, # 4256 + 575,2212,2476, 475,2401,2681, 785,2744,1745,2293,2555,1975,3133,2865, 394,4668, # 4272 +3839, 635,4131, 639, 202,1507,2195,2766,1345,1435,2572,3726,1908,1184,1181,2457, # 4288 +3727,3134,4362, 843,2611, 437, 916,4669, 234, 769,1884,3046,3047,3623, 833,6187, # 4304 +1639,2250,2402,1355,1185,2010,2047, 999, 525,1732,1290,1488,2612, 948,1578,3728, # 4320 +2413,2477,1216,2725,2159, 334,3840,1328,3624,2921,1525,4132, 564,1056, 891,4363, # 4336 +1444,1698,2385,2251,3729,1365,2281,2235,1717,6188, 864,3841,2515, 444, 527,2767, # 4352 +2922,3625, 544, 461,6189, 566, 209,2437,3398,2098,1065,2068,3331,3626,3257,2137, # 4368 #last 512 +) + + diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/jpcntx.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/jpcntx.py new file mode 100644 index 00000000..20044e4b --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/jpcntx.py @@ -0,0 +1,233 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Communicator client code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + + +# This is hiragana 2-char sequence table, the number in each cell represents its frequency category +jp2CharContext = ( +(0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1), +(2,4,0,4,0,3,0,4,0,3,4,4,4,2,4,3,3,4,3,2,3,3,4,2,3,3,3,2,4,1,4,3,3,1,5,4,3,4,3,4,3,5,3,0,3,5,4,2,0,3,1,0,3,3,0,3,3,0,1,1,0,4,3,0,3,3,0,4,0,2,0,3,5,5,5,5,4,0,4,1,0,3,4), +(0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2), +(0,4,0,5,0,5,0,4,0,4,5,4,4,3,5,3,5,1,5,3,4,3,4,4,3,4,3,3,4,3,5,4,4,3,5,5,3,5,5,5,3,5,5,3,4,5,5,3,1,3,2,0,3,4,0,4,2,0,4,2,1,5,3,2,3,5,0,4,0,2,0,5,4,4,5,4,5,0,4,0,0,4,4), +(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), +(0,3,0,4,0,3,0,3,0,4,5,4,3,3,3,3,4,3,5,4,4,3,5,4,4,3,4,3,4,4,4,4,5,3,4,4,3,4,5,5,4,5,5,1,4,5,4,3,0,3,3,1,3,3,0,4,4,0,3,3,1,5,3,3,3,5,0,4,0,3,0,4,4,3,4,3,3,0,4,1,1,3,4), +(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), +(0,4,0,3,0,3,0,4,0,3,4,4,3,2,2,1,2,1,3,1,3,3,3,3,3,4,3,1,3,3,5,3,3,0,4,3,0,5,4,3,3,5,4,4,3,4,4,5,0,1,2,0,1,2,0,2,2,0,1,0,0,5,2,2,1,4,0,3,0,1,0,4,4,3,5,4,3,0,2,1,0,4,3), +(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), +(0,3,0,5,0,4,0,2,1,4,4,2,4,1,4,2,4,2,4,3,3,3,4,3,3,3,3,1,4,2,3,3,3,1,4,4,1,1,1,4,3,3,2,0,2,4,3,2,0,3,3,0,3,1,1,0,0,0,3,3,0,4,2,2,3,4,0,4,0,3,0,4,4,5,3,4,4,0,3,0,0,1,4), +(1,4,0,4,0,4,0,4,0,3,5,4,4,3,4,3,5,4,3,3,4,3,5,4,4,4,4,3,4,2,4,3,3,1,5,4,3,2,4,5,4,5,5,4,4,5,4,4,0,3,2,2,3,3,0,4,3,1,3,2,1,4,3,3,4,5,0,3,0,2,0,4,5,5,4,5,4,0,4,0,0,5,4), +(0,5,0,5,0,4,0,3,0,4,4,3,4,3,3,3,4,0,4,4,4,3,4,3,4,3,3,1,4,2,4,3,4,0,5,4,1,4,5,4,4,5,3,2,4,3,4,3,2,4,1,3,3,3,2,3,2,0,4,3,3,4,3,3,3,4,0,4,0,3,0,4,5,4,4,4,3,0,4,1,0,1,3), +(0,3,1,4,0,3,0,2,0,3,4,4,3,1,4,2,3,3,4,3,4,3,4,3,4,4,3,2,3,1,5,4,4,1,4,4,3,5,4,4,3,5,5,4,3,4,4,3,1,2,3,1,2,2,0,3,2,0,3,1,0,5,3,3,3,4,3,3,3,3,4,4,4,4,5,4,2,0,3,3,2,4,3), +(0,2,0,3,0,1,0,1,0,0,3,2,0,0,2,0,1,0,2,1,3,3,3,1,2,3,1,0,1,0,4,2,1,1,3,3,0,4,3,3,1,4,3,3,0,3,3,2,0,0,0,0,1,0,0,2,0,0,0,0,0,4,1,0,2,3,2,2,2,1,3,3,3,4,4,3,2,0,3,1,0,3,3), +(0,4,0,4,0,3,0,3,0,4,4,4,3,3,3,3,3,3,4,3,4,2,4,3,4,3,3,2,4,3,4,5,4,1,4,5,3,5,4,5,3,5,4,0,3,5,5,3,1,3,3,2,2,3,0,3,4,1,3,3,2,4,3,3,3,4,0,4,0,3,0,4,5,4,4,5,3,0,4,1,0,3,4), +(0,2,0,3,0,3,0,0,0,2,2,2,1,0,1,0,0,0,3,0,3,0,3,0,1,3,1,0,3,1,3,3,3,1,3,3,3,0,1,3,1,3,4,0,0,3,1,1,0,3,2,0,0,0,0,1,3,0,1,0,0,3,3,2,0,3,0,0,0,0,0,3,4,3,4,3,3,0,3,0,0,2,3), +(2,3,0,3,0,2,0,1,0,3,3,4,3,1,3,1,1,1,3,1,4,3,4,3,3,3,0,0,3,1,5,4,3,1,4,3,2,5,5,4,4,4,4,3,3,4,4,4,0,2,1,1,3,2,0,1,2,0,0,1,0,4,1,3,3,3,0,3,0,1,0,4,4,4,5,5,3,0,2,0,0,4,4), +(0,2,0,1,0,3,1,3,0,2,3,3,3,0,3,1,0,0,3,0,3,2,3,1,3,2,1,1,0,0,4,2,1,0,2,3,1,4,3,2,0,4,4,3,1,3,1,3,0,1,0,0,1,0,0,0,1,0,0,0,0,4,1,1,1,2,0,3,0,0,0,3,4,2,4,3,2,0,1,0,0,3,3), +(0,1,0,4,0,5,0,4,0,2,4,4,2,3,3,2,3,3,5,3,3,3,4,3,4,2,3,0,4,3,3,3,4,1,4,3,2,1,5,5,3,4,5,1,3,5,4,2,0,3,3,0,1,3,0,4,2,0,1,3,1,4,3,3,3,3,0,3,0,1,0,3,4,4,4,5,5,0,3,0,1,4,5), +(0,2,0,3,0,3,0,0,0,2,3,1,3,0,4,0,1,1,3,0,3,4,3,2,3,1,0,3,3,2,3,1,3,0,2,3,0,2,1,4,1,2,2,0,0,3,3,0,0,2,0,0,0,1,0,0,0,0,2,2,0,3,2,1,3,3,0,2,0,2,0,0,3,3,1,2,4,0,3,0,2,2,3), +(2,4,0,5,0,4,0,4,0,2,4,4,4,3,4,3,3,3,1,2,4,3,4,3,4,4,5,0,3,3,3,3,2,0,4,3,1,4,3,4,1,4,4,3,3,4,4,3,1,2,3,0,4,2,0,4,1,0,3,3,0,4,3,3,3,4,0,4,0,2,0,3,5,3,4,5,2,0,3,0,0,4,5), +(0,3,0,4,0,1,0,1,0,1,3,2,2,1,3,0,3,0,2,0,2,0,3,0,2,0,0,0,1,0,1,1,0,0,3,1,0,0,0,4,0,3,1,0,2,1,3,0,0,0,0,0,0,3,0,0,0,0,0,0,0,4,2,2,3,1,0,3,0,0,0,1,4,4,4,3,0,0,4,0,0,1,4), +(1,4,1,5,0,3,0,3,0,4,5,4,4,3,5,3,3,4,4,3,4,1,3,3,3,3,2,1,4,1,5,4,3,1,4,4,3,5,4,4,3,5,4,3,3,4,4,4,0,3,3,1,2,3,0,3,1,0,3,3,0,5,4,4,4,4,4,4,3,3,5,4,4,3,3,5,4,0,3,2,0,4,4), +(0,2,0,3,0,1,0,0,0,1,3,3,3,2,4,1,3,0,3,1,3,0,2,2,1,1,0,0,2,0,4,3,1,0,4,3,0,4,4,4,1,4,3,1,1,3,3,1,0,2,0,0,1,3,0,0,0,0,2,0,0,4,3,2,4,3,5,4,3,3,3,4,3,3,4,3,3,0,2,1,0,3,3), +(0,2,0,4,0,3,0,2,0,2,5,5,3,4,4,4,4,1,4,3,3,0,4,3,4,3,1,3,3,2,4,3,0,3,4,3,0,3,4,4,2,4,4,0,4,5,3,3,2,2,1,1,1,2,0,1,5,0,3,3,2,4,3,3,3,4,0,3,0,2,0,4,4,3,5,5,0,0,3,0,2,3,3), +(0,3,0,4,0,3,0,1,0,3,4,3,3,1,3,3,3,0,3,1,3,0,4,3,3,1,1,0,3,0,3,3,0,0,4,4,0,1,5,4,3,3,5,0,3,3,4,3,0,2,0,1,1,1,0,1,3,0,1,2,1,3,3,2,3,3,0,3,0,1,0,1,3,3,4,4,1,0,1,2,2,1,3), +(0,1,0,4,0,4,0,3,0,1,3,3,3,2,3,1,1,0,3,0,3,3,4,3,2,4,2,0,1,0,4,3,2,0,4,3,0,5,3,3,2,4,4,4,3,3,3,4,0,1,3,0,0,1,0,0,1,0,0,0,0,4,2,3,3,3,0,3,0,0,0,4,4,4,5,3,2,0,3,3,0,3,5), +(0,2,0,3,0,0,0,3,0,1,3,0,2,0,0,0,1,0,3,1,1,3,3,0,0,3,0,0,3,0,2,3,1,0,3,1,0,3,3,2,0,4,2,2,0,2,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,2,1,2,0,1,0,1,0,0,0,1,3,1,2,0,0,0,1,0,0,1,4), +(0,3,0,3,0,5,0,1,0,2,4,3,1,3,3,2,1,1,5,2,1,0,5,1,2,0,0,0,3,3,2,2,3,2,4,3,0,0,3,3,1,3,3,0,2,5,3,4,0,3,3,0,1,2,0,2,2,0,3,2,0,2,2,3,3,3,0,2,0,1,0,3,4,4,2,5,4,0,3,0,0,3,5), +(0,3,0,3,0,3,0,1,0,3,3,3,3,0,3,0,2,0,2,1,1,0,2,0,1,0,0,0,2,1,0,0,1,0,3,2,0,0,3,3,1,2,3,1,0,3,3,0,0,1,0,0,0,0,0,2,0,0,0,0,0,2,3,1,2,3,0,3,0,1,0,3,2,1,0,4,3,0,1,1,0,3,3), +(0,4,0,5,0,3,0,3,0,4,5,5,4,3,5,3,4,3,5,3,3,2,5,3,4,4,4,3,4,3,4,5,5,3,4,4,3,4,4,5,4,4,4,3,4,5,5,4,2,3,4,2,3,4,0,3,3,1,4,3,2,4,3,3,5,5,0,3,0,3,0,5,5,5,5,4,4,0,4,0,1,4,4), +(0,4,0,4,0,3,0,3,0,3,5,4,4,2,3,2,5,1,3,2,5,1,4,2,3,2,3,3,4,3,3,3,3,2,5,4,1,3,3,5,3,4,4,0,4,4,3,1,1,3,1,0,2,3,0,2,3,0,3,0,0,4,3,1,3,4,0,3,0,2,0,4,4,4,3,4,5,0,4,0,0,3,4), +(0,3,0,3,0,3,1,2,0,3,4,4,3,3,3,0,2,2,4,3,3,1,3,3,3,1,1,0,3,1,4,3,2,3,4,4,2,4,4,4,3,4,4,3,2,4,4,3,1,3,3,1,3,3,0,4,1,0,2,2,1,4,3,2,3,3,5,4,3,3,5,4,4,3,3,0,4,0,3,2,2,4,4), +(0,2,0,1,0,0,0,0,0,1,2,1,3,0,0,0,0,0,2,0,1,2,1,0,0,1,0,0,0,0,3,0,0,1,0,1,1,3,1,0,0,0,1,1,0,1,1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,1,2,2,0,3,4,0,0,0,1,1,0,0,1,0,0,0,0,0,1,1), +(0,1,0,0,0,1,0,0,0,0,4,0,4,1,4,0,3,0,4,0,3,0,4,0,3,0,3,0,4,1,5,1,4,0,0,3,0,5,0,5,2,0,1,0,0,0,2,1,4,0,1,3,0,0,3,0,0,3,1,1,4,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0), +(1,4,0,5,0,3,0,2,0,3,5,4,4,3,4,3,5,3,4,3,3,0,4,3,3,3,3,3,3,2,4,4,3,1,3,4,4,5,4,4,3,4,4,1,3,5,4,3,3,3,1,2,2,3,3,1,3,1,3,3,3,5,3,3,4,5,0,3,0,3,0,3,4,3,4,4,3,0,3,0,2,4,3), +(0,1,0,4,0,0,0,0,0,1,4,0,4,1,4,2,4,0,3,0,1,0,1,0,0,0,0,0,2,0,3,1,1,1,0,3,0,0,0,1,2,1,0,0,1,1,1,1,0,1,0,0,0,1,0,0,3,0,0,0,0,3,2,0,2,2,0,1,0,0,0,2,3,2,3,3,0,0,0,0,2,1,0), +(0,5,1,5,0,3,0,3,0,5,4,4,5,1,5,3,3,0,4,3,4,3,5,3,4,3,3,2,4,3,4,3,3,0,3,3,1,4,4,3,4,4,4,3,4,5,5,3,2,3,1,1,3,3,1,3,1,1,3,3,2,4,5,3,3,5,0,4,0,3,0,4,4,3,5,3,3,0,3,4,0,4,3), +(0,5,0,5,0,3,0,2,0,4,4,3,5,2,4,3,3,3,4,4,4,3,5,3,5,3,3,1,4,0,4,3,3,0,3,3,0,4,4,4,4,5,4,3,3,5,5,3,2,3,1,2,3,2,0,1,0,0,3,2,2,4,4,3,1,5,0,4,0,3,0,4,3,1,3,2,1,0,3,3,0,3,3), +(0,4,0,5,0,5,0,4,0,4,5,5,5,3,4,3,3,2,5,4,4,3,5,3,5,3,4,0,4,3,4,4,3,2,4,4,3,4,5,4,4,5,5,0,3,5,5,4,1,3,3,2,3,3,1,3,1,0,4,3,1,4,4,3,4,5,0,4,0,2,0,4,3,4,4,3,3,0,4,0,0,5,5), +(0,4,0,4,0,5,0,1,1,3,3,4,4,3,4,1,3,0,5,1,3,0,3,1,3,1,1,0,3,0,3,3,4,0,4,3,0,4,4,4,3,4,4,0,3,5,4,1,0,3,0,0,2,3,0,3,1,0,3,1,0,3,2,1,3,5,0,3,0,1,0,3,2,3,3,4,4,0,2,2,0,4,4), +(2,4,0,5,0,4,0,3,0,4,5,5,4,3,5,3,5,3,5,3,5,2,5,3,4,3,3,4,3,4,5,3,2,1,5,4,3,2,3,4,5,3,4,1,2,5,4,3,0,3,3,0,3,2,0,2,3,0,4,1,0,3,4,3,3,5,0,3,0,1,0,4,5,5,5,4,3,0,4,2,0,3,5), +(0,5,0,4,0,4,0,2,0,5,4,3,4,3,4,3,3,3,4,3,4,2,5,3,5,3,4,1,4,3,4,4,4,0,3,5,0,4,4,4,4,5,3,1,3,4,5,3,3,3,3,3,3,3,0,2,2,0,3,3,2,4,3,3,3,5,3,4,1,3,3,5,3,2,0,0,0,0,4,3,1,3,3), +(0,1,0,3,0,3,0,1,0,1,3,3,3,2,3,3,3,0,3,0,0,0,3,1,3,0,0,0,2,2,2,3,0,0,3,2,0,1,2,4,1,3,3,0,0,3,3,3,0,1,0,0,2,1,0,0,3,0,3,1,0,3,0,0,1,3,0,2,0,1,0,3,3,1,3,3,0,0,1,1,0,3,3), +(0,2,0,3,0,2,1,4,0,2,2,3,1,1,3,1,1,0,2,0,3,1,2,3,1,3,0,0,1,0,4,3,2,3,3,3,1,4,2,3,3,3,3,1,0,3,1,4,0,1,1,0,1,2,0,1,1,0,1,1,0,3,1,3,2,2,0,1,0,0,0,2,3,3,3,1,0,0,0,0,0,2,3), +(0,5,0,4,0,5,0,2,0,4,5,5,3,3,4,3,3,1,5,4,4,2,4,4,4,3,4,2,4,3,5,5,4,3,3,4,3,3,5,5,4,5,5,1,3,4,5,3,1,4,3,1,3,3,0,3,3,1,4,3,1,4,5,3,3,5,0,4,0,3,0,5,3,3,1,4,3,0,4,0,1,5,3), +(0,5,0,5,0,4,0,2,0,4,4,3,4,3,3,3,3,3,5,4,4,4,4,4,4,5,3,3,5,2,4,4,4,3,4,4,3,3,4,4,5,5,3,3,4,3,4,3,3,4,3,3,3,3,1,2,2,1,4,3,3,5,4,4,3,4,0,4,0,3,0,4,4,4,4,4,1,0,4,2,0,2,4), +(0,4,0,4,0,3,0,1,0,3,5,2,3,0,3,0,2,1,4,2,3,3,4,1,4,3,3,2,4,1,3,3,3,0,3,3,0,0,3,3,3,5,3,3,3,3,3,2,0,2,0,0,2,0,0,2,0,0,1,0,0,3,1,2,2,3,0,3,0,2,0,4,4,3,3,4,1,0,3,0,0,2,4), +(0,0,0,4,0,0,0,0,0,0,1,0,1,0,2,0,0,0,0,0,1,0,2,0,1,0,0,0,0,0,3,1,3,0,3,2,0,0,0,1,0,3,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,4,0,2,0,0,0,0,0,0,2), +(0,2,1,3,0,2,0,2,0,3,3,3,3,1,3,1,3,3,3,3,3,3,4,2,2,1,2,1,4,0,4,3,1,3,3,3,2,4,3,5,4,3,3,3,3,3,3,3,0,1,3,0,2,0,0,1,0,0,1,0,0,4,2,0,2,3,0,3,3,0,3,3,4,2,3,1,4,0,1,2,0,2,3), +(0,3,0,3,0,1,0,3,0,2,3,3,3,0,3,1,2,0,3,3,2,3,3,2,3,2,3,1,3,0,4,3,2,0,3,3,1,4,3,3,2,3,4,3,1,3,3,1,1,0,1,1,0,1,0,1,0,1,0,0,0,4,1,1,0,3,0,3,1,0,2,3,3,3,3,3,1,0,0,2,0,3,3), +(0,0,0,0,0,0,0,0,0,0,3,0,2,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,3,0,3,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,2,0,2,3,0,0,0,0,0,0,0,0,3), +(0,2,0,3,1,3,0,3,0,2,3,3,3,1,3,1,3,1,3,1,3,3,3,1,3,0,2,3,1,1,4,3,3,2,3,3,1,2,2,4,1,3,3,0,1,4,2,3,0,1,3,0,3,0,0,1,3,0,2,0,0,3,3,2,1,3,0,3,0,2,0,3,4,4,4,3,1,0,3,0,0,3,3), +(0,2,0,1,0,2,0,0,0,1,3,2,2,1,3,0,1,1,3,0,3,2,3,1,2,0,2,0,1,1,3,3,3,0,3,3,1,1,2,3,2,3,3,1,2,3,2,0,0,1,0,0,0,0,0,0,3,0,1,0,0,2,1,2,1,3,0,3,0,0,0,3,4,4,4,3,2,0,2,0,0,2,4), +(0,0,0,1,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,2,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,3,1,0,0,0,0,0,0,0,3), +(0,3,0,3,0,2,0,3,0,3,3,3,2,3,2,2,2,0,3,1,3,3,3,2,3,3,0,0,3,0,3,2,2,0,2,3,1,4,3,4,3,3,2,3,1,5,4,4,0,3,1,2,1,3,0,3,1,1,2,0,2,3,1,3,1,3,0,3,0,1,0,3,3,4,4,2,1,0,2,1,0,2,4), +(0,1,0,3,0,1,0,2,0,1,4,2,5,1,4,0,2,0,2,1,3,1,4,0,2,1,0,0,2,1,4,1,1,0,3,3,0,5,1,3,2,3,3,1,0,3,2,3,0,1,0,0,0,0,0,0,1,0,0,0,0,4,0,1,0,3,0,2,0,1,0,3,3,3,4,3,3,0,0,0,0,2,3), +(0,0,0,1,0,0,0,0,0,0,2,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,1,0,0,1,0,0,0,0,0,3), +(0,1,0,3,0,4,0,3,0,2,4,3,1,0,3,2,2,1,3,1,2,2,3,1,1,1,2,1,3,0,1,2,0,1,3,2,1,3,0,5,5,1,0,0,1,3,2,1,0,3,0,0,1,0,0,0,0,0,3,4,0,1,1,1,3,2,0,2,0,1,0,2,3,3,1,2,3,0,1,0,1,0,4), +(0,0,0,1,0,3,0,3,0,2,2,1,0,0,4,0,3,0,3,1,3,0,3,0,3,0,1,0,3,0,3,1,3,0,3,3,0,0,1,2,1,1,1,0,1,2,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,2,2,1,2,0,0,2,0,0,0,0,2,3,3,3,3,0,0,0,0,1,4), +(0,0,0,3,0,3,0,0,0,0,3,1,1,0,3,0,1,0,2,0,1,0,0,0,0,0,0,0,1,0,3,0,2,0,2,3,0,0,2,2,3,1,2,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,2,0,0,0,0,2,3), +(2,4,0,5,0,5,0,4,0,3,4,3,3,3,4,3,3,3,4,3,4,4,5,4,5,5,5,2,3,0,5,5,4,1,5,4,3,1,5,4,3,4,4,3,3,4,3,3,0,3,2,0,2,3,0,3,0,0,3,3,0,5,3,2,3,3,0,3,0,3,0,3,4,5,4,5,3,0,4,3,0,3,4), +(0,3,0,3,0,3,0,3,0,3,3,4,3,2,3,2,3,0,4,3,3,3,3,3,3,3,3,0,3,2,4,3,3,1,3,4,3,4,4,4,3,4,4,3,2,4,4,1,0,2,0,0,1,1,0,2,0,0,3,1,0,5,3,2,1,3,0,3,0,1,2,4,3,2,4,3,3,0,3,2,0,4,4), +(0,3,0,3,0,1,0,0,0,1,4,3,3,2,3,1,3,1,4,2,3,2,4,2,3,4,3,0,2,2,3,3,3,0,3,3,3,0,3,4,1,3,3,0,3,4,3,3,0,1,1,0,1,0,0,0,4,0,3,0,0,3,1,2,1,3,0,4,0,1,0,4,3,3,4,3,3,0,2,0,0,3,3), +(0,3,0,4,0,1,0,3,0,3,4,3,3,0,3,3,3,1,3,1,3,3,4,3,3,3,0,0,3,1,5,3,3,1,3,3,2,5,4,3,3,4,5,3,2,5,3,4,0,1,0,0,0,0,0,2,0,0,1,1,0,4,2,2,1,3,0,3,0,2,0,4,4,3,5,3,2,0,1,1,0,3,4), +(0,5,0,4,0,5,0,2,0,4,4,3,3,2,3,3,3,1,4,3,4,1,5,3,4,3,4,0,4,2,4,3,4,1,5,4,0,4,4,4,4,5,4,1,3,5,4,2,1,4,1,1,3,2,0,3,1,0,3,2,1,4,3,3,3,4,0,4,0,3,0,4,4,4,3,3,3,0,4,2,0,3,4), +(1,4,0,4,0,3,0,1,0,3,3,3,1,1,3,3,2,2,3,3,1,0,3,2,2,1,2,0,3,1,2,1,2,0,3,2,0,2,2,3,3,4,3,0,3,3,1,2,0,1,1,3,1,2,0,0,3,0,1,1,0,3,2,2,3,3,0,3,0,0,0,2,3,3,4,3,3,0,1,0,0,1,4), +(0,4,0,4,0,4,0,0,0,3,4,4,3,1,4,2,3,2,3,3,3,1,4,3,4,0,3,0,4,2,3,3,2,2,5,4,2,1,3,4,3,4,3,1,3,3,4,2,0,2,1,0,3,3,0,0,2,0,3,1,0,4,4,3,4,3,0,4,0,1,0,2,4,4,4,4,4,0,3,2,0,3,3), +(0,0,0,1,0,4,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,3,2,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2), +(0,2,0,3,0,4,0,4,0,1,3,3,3,0,4,0,2,1,2,1,1,1,2,0,3,1,1,0,1,0,3,1,0,0,3,3,2,0,1,1,0,0,0,0,0,1,0,2,0,2,2,0,3,1,0,0,1,0,1,1,0,1,2,0,3,0,0,0,0,1,0,0,3,3,4,3,1,0,1,0,3,0,2), +(0,0,0,3,0,5,0,0,0,0,1,0,2,0,3,1,0,1,3,0,0,0,2,0,0,0,1,0,0,0,1,1,0,0,4,0,0,0,2,3,0,1,4,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,1,0,0,0,0,0,0,0,2,0,0,3,0,0,0,0,0,3), +(0,2,0,5,0,5,0,1,0,2,4,3,3,2,5,1,3,2,3,3,3,0,4,1,2,0,3,0,4,0,2,2,1,1,5,3,0,0,1,4,2,3,2,0,3,3,3,2,0,2,4,1,1,2,0,1,1,0,3,1,0,1,3,1,2,3,0,2,0,0,0,1,3,5,4,4,4,0,3,0,0,1,3), +(0,4,0,5,0,4,0,4,0,4,5,4,3,3,4,3,3,3,4,3,4,4,5,3,4,5,4,2,4,2,3,4,3,1,4,4,1,3,5,4,4,5,5,4,4,5,5,5,2,3,3,1,4,3,1,3,3,0,3,3,1,4,3,4,4,4,0,3,0,4,0,3,3,4,4,5,0,0,4,3,0,4,5), +(0,4,0,4,0,3,0,3,0,3,4,4,4,3,3,2,4,3,4,3,4,3,5,3,4,3,2,1,4,2,4,4,3,1,3,4,2,4,5,5,3,4,5,4,1,5,4,3,0,3,2,2,3,2,1,3,1,0,3,3,3,5,3,3,3,5,4,4,2,3,3,4,3,3,3,2,1,0,3,2,1,4,3), +(0,4,0,5,0,4,0,3,0,3,5,5,3,2,4,3,4,0,5,4,4,1,4,4,4,3,3,3,4,3,5,5,2,3,3,4,1,2,5,5,3,5,5,2,3,5,5,4,0,3,2,0,3,3,1,1,5,1,4,1,0,4,3,2,3,5,0,4,0,3,0,5,4,3,4,3,0,0,4,1,0,4,4), +(1,3,0,4,0,2,0,2,0,2,5,5,3,3,3,3,3,0,4,2,3,4,4,4,3,4,0,0,3,4,5,4,3,3,3,3,2,5,5,4,5,5,5,4,3,5,5,5,1,3,1,0,1,0,0,3,2,0,4,2,0,5,2,3,2,4,1,3,0,3,0,4,5,4,5,4,3,0,4,2,0,5,4), +(0,3,0,4,0,5,0,3,0,3,4,4,3,2,3,2,3,3,3,3,3,2,4,3,3,2,2,0,3,3,3,3,3,1,3,3,3,0,4,4,3,4,4,1,1,4,4,2,0,3,1,0,1,1,0,4,1,0,2,3,1,3,3,1,3,4,0,3,0,1,0,3,1,3,0,0,1,0,2,0,0,4,4), +(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0), +(0,3,0,3,0,2,0,3,0,1,5,4,3,3,3,1,4,2,1,2,3,4,4,2,4,4,5,0,3,1,4,3,4,0,4,3,3,3,2,3,2,5,3,4,3,2,2,3,0,0,3,0,2,1,0,1,2,0,0,0,0,2,1,1,3,1,0,2,0,4,0,3,4,4,4,5,2,0,2,0,0,1,3), +(0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,1,0,0,1,1,0,0,0,4,2,1,1,0,1,0,3,2,0,0,3,1,1,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,1,0,0,0,2,0,0,0,1,4,0,4,2,1,0,0,0,0,0,1), +(0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,1,0,1,0,0,0,0,3,1,0,0,0,2,0,2,1,0,0,1,2,1,0,1,1,0,0,3,0,0,0,0,0,0,0,0,0,0,0,1,3,1,0,0,0,0,0,1,0,0,2,1,0,0,0,0,0,0,0,0,2), +(0,4,0,4,0,4,0,3,0,4,4,3,4,2,4,3,2,0,4,4,4,3,5,3,5,3,3,2,4,2,4,3,4,3,1,4,0,2,3,4,4,4,3,3,3,4,4,4,3,4,1,3,4,3,2,1,2,1,3,3,3,4,4,3,3,5,0,4,0,3,0,4,3,3,3,2,1,0,3,0,0,3,3), +(0,4,0,3,0,3,0,3,0,3,5,5,3,3,3,3,4,3,4,3,3,3,4,4,4,3,3,3,3,4,3,5,3,3,1,3,2,4,5,5,5,5,4,3,4,5,5,3,2,2,3,3,3,3,2,3,3,1,2,3,2,4,3,3,3,4,0,4,0,2,0,4,3,2,2,1,2,0,3,0,0,4,1), +) + +class JapaneseContextAnalysis(object): + NUM_OF_CATEGORY = 6 + DONT_KNOW = -1 + ENOUGH_REL_THRESHOLD = 100 + MAX_REL_THRESHOLD = 1000 + MINIMUM_DATA_THRESHOLD = 4 + + def __init__(self): + self._total_rel = None + self._rel_sample = None + self._need_to_skip_char_num = None + self._last_char_order = None + self._done = None + self.reset() + + def reset(self): + self._total_rel = 0 # total sequence received + # category counters, each integer counts sequence in its category + self._rel_sample = [0] * self.NUM_OF_CATEGORY + # if last byte in current buffer is not the last byte of a character, + # we need to know how many bytes to skip in next buffer + self._need_to_skip_char_num = 0 + self._last_char_order = -1 # The order of previous char + # If this flag is set to True, detection is done and conclusion has + # been made + self._done = False + + def feed(self, byte_str, num_bytes): + if self._done: + return + + # The buffer we got is byte oriented, and a character may span in more than one + # buffers. In case the last one or two byte in last buffer is not + # complete, we record how many byte needed to complete that character + # and skip these bytes here. We can choose to record those bytes as + # well and analyse the character once it is complete, but since a + # character will not make much difference, by simply skipping + # this character will simply our logic and improve performance. + i = self._need_to_skip_char_num + while i < num_bytes: + order, char_len = self.get_order(byte_str[i:i + 2]) + i += char_len + if i > num_bytes: + self._need_to_skip_char_num = i - num_bytes + self._last_char_order = -1 + else: + if (order != -1) and (self._last_char_order != -1): + self._total_rel += 1 + if self._total_rel > self.MAX_REL_THRESHOLD: + self._done = True + break + self._rel_sample[jp2CharContext[self._last_char_order][order]] += 1 + self._last_char_order = order + + def got_enough_data(self): + return self._total_rel > self.ENOUGH_REL_THRESHOLD + + def get_confidence(self): + # This is just one way to calculate confidence. It works well for me. + if self._total_rel > self.MINIMUM_DATA_THRESHOLD: + return (self._total_rel - self._rel_sample[0]) / self._total_rel + else: + return self.DONT_KNOW + + def get_order(self, byte_str): + return -1, 1 + +class SJISContextAnalysis(JapaneseContextAnalysis): + def __init__(self): + super(SJISContextAnalysis, self).__init__() + self._charset_name = "SHIFT_JIS" + + @property + def charset_name(self): + return self._charset_name + + def get_order(self, byte_str): + if not byte_str: + return -1, 1 + # find out current char's byte length + first_char = byte_str[0] + if (0x81 <= first_char <= 0x9F) or (0xE0 <= first_char <= 0xFC): + char_len = 2 + if (first_char == 0x87) or (0xFA <= first_char <= 0xFC): + self._charset_name = "CP932" + else: + char_len = 1 + + # return its order if it is hiragana + if len(byte_str) > 1: + second_char = byte_str[1] + if (first_char == 202) and (0x9F <= second_char <= 0xF1): + return second_char - 0x9F, char_len + + return -1, char_len + +class EUCJPContextAnalysis(JapaneseContextAnalysis): + def get_order(self, byte_str): + if not byte_str: + return -1, 1 + # find out current char's byte length + first_char = byte_str[0] + if (first_char == 0x8E) or (0xA1 <= first_char <= 0xFE): + char_len = 2 + elif first_char == 0x8F: + char_len = 3 + else: + char_len = 1 + + # return its order if it is hiragana + if len(byte_str) > 1: + second_char = byte_str[1] + if (first_char == 0xA4) and (0xA1 <= second_char <= 0xF3): + return second_char - 0xA1, char_len + + return -1, char_len + + diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langbulgarianmodel.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langbulgarianmodel.py new file mode 100644 index 00000000..2aa4fb2e --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langbulgarianmodel.py @@ -0,0 +1,228 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Communicator client code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +# 255: Control characters that usually does not exist in any text +# 254: Carriage/Return +# 253: symbol (punctuation) that does not belong to word +# 252: 0 - 9 + +# Character Mapping Table: +# this table is modified base on win1251BulgarianCharToOrderMap, so +# only number <64 is sure valid + +Latin5_BulgarianCharToOrderMap = ( +255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 +253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 +252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 +253, 77, 90, 99,100, 72,109,107,101, 79,185, 81,102, 76, 94, 82, # 40 +110,186,108, 91, 74,119, 84, 96,111,187,115,253,253,253,253,253, # 50 +253, 65, 69, 70, 66, 63, 68,112,103, 92,194,104, 95, 86, 87, 71, # 60 +116,195, 85, 93, 97,113,196,197,198,199,200,253,253,253,253,253, # 70 +194,195,196,197,198,199,200,201,202,203,204,205,206,207,208,209, # 80 +210,211,212,213,214,215,216,217,218,219,220,221,222,223,224,225, # 90 + 81,226,227,228,229,230,105,231,232,233,234,235,236, 45,237,238, # a0 + 31, 32, 35, 43, 37, 44, 55, 47, 40, 59, 33, 46, 38, 36, 41, 30, # b0 + 39, 28, 34, 51, 48, 49, 53, 50, 54, 57, 61,239, 67,240, 60, 56, # c0 + 1, 18, 9, 20, 11, 3, 23, 15, 2, 26, 12, 10, 14, 6, 4, 13, # d0 + 7, 8, 5, 19, 29, 25, 22, 21, 27, 24, 17, 75, 52,241, 42, 16, # e0 + 62,242,243,244, 58,245, 98,246,247,248,249,250,251, 91,252,253, # f0 +) + +win1251BulgarianCharToOrderMap = ( +255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 +253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 +252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 +253, 77, 90, 99,100, 72,109,107,101, 79,185, 81,102, 76, 94, 82, # 40 +110,186,108, 91, 74,119, 84, 96,111,187,115,253,253,253,253,253, # 50 +253, 65, 69, 70, 66, 63, 68,112,103, 92,194,104, 95, 86, 87, 71, # 60 +116,195, 85, 93, 97,113,196,197,198,199,200,253,253,253,253,253, # 70 +206,207,208,209,210,211,212,213,120,214,215,216,217,218,219,220, # 80 +221, 78, 64, 83,121, 98,117,105,222,223,224,225,226,227,228,229, # 90 + 88,230,231,232,233,122, 89,106,234,235,236,237,238, 45,239,240, # a0 + 73, 80,118,114,241,242,243,244,245, 62, 58,246,247,248,249,250, # b0 + 31, 32, 35, 43, 37, 44, 55, 47, 40, 59, 33, 46, 38, 36, 41, 30, # c0 + 39, 28, 34, 51, 48, 49, 53, 50, 54, 57, 61,251, 67,252, 60, 56, # d0 + 1, 18, 9, 20, 11, 3, 23, 15, 2, 26, 12, 10, 14, 6, 4, 13, # e0 + 7, 8, 5, 19, 29, 25, 22, 21, 27, 24, 17, 75, 52,253, 42, 16, # f0 +) + +# Model Table: +# total sequences: 100% +# first 512 sequences: 96.9392% +# first 1024 sequences:3.0618% +# rest sequences: 0.2992% +# negative sequences: 0.0020% +BulgarianLangModel = ( +0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,2,3,3,3,3,3, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,2,2,3,2,2,1,2,2, +3,1,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,3,3,3,3,3,3,3,0,3,0,1, +0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,3,3,3,3,3,3,3,0,3,1,0, +0,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, +3,2,2,2,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,2,3,3,3,3,3,3,3,3,0,3,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,2,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,1,3,2,3,3,3,3,3,3,3,3,0,3,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,3,3,3,3,2,3,2,2,1,3,3,3,3,2,2,2,1,1,2,0,1,0,1,0,0, +0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1, +3,3,3,3,3,3,3,2,3,2,2,3,3,1,1,2,3,3,2,3,3,3,3,2,1,2,0,2,0,3,0,0, +0,0,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1, +3,3,3,3,3,3,3,1,3,3,3,3,3,2,3,2,3,3,3,3,3,2,3,3,1,3,0,3,0,2,0,0, +0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, +3,3,3,3,3,3,3,3,1,3,3,2,3,3,3,1,3,3,2,3,2,2,2,0,0,2,0,2,0,2,0,0, +0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1, +3,3,3,3,3,3,3,3,3,0,3,3,3,2,2,3,3,3,1,2,2,3,2,1,1,2,0,2,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, +3,3,3,3,3,3,3,2,3,3,1,2,3,2,2,2,3,3,3,3,3,2,2,3,1,2,0,2,1,2,0,0, +0,0,0,0,0,0,0,0,0,0,3,0,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1, +3,3,3,3,3,1,3,3,3,3,3,2,3,3,3,2,3,3,2,3,2,2,2,3,1,2,0,1,0,1,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, +3,3,3,3,3,3,3,3,3,3,3,1,1,1,2,2,1,3,1,3,2,2,3,0,0,1,0,1,0,1,0,0, +0,0,0,1,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, +3,3,3,3,3,2,2,3,2,2,3,1,2,1,1,1,2,3,1,3,1,2,2,0,1,1,1,1,0,1,0,0, +0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, +3,3,3,3,3,1,3,2,2,3,3,1,2,3,1,1,3,3,3,3,1,2,2,1,1,1,0,2,0,2,0,1, +0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,2,2,3,3,3,2,2,1,1,2,0,2,0,1,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, +3,0,1,2,1,3,3,2,3,3,3,3,3,2,3,2,1,0,3,1,2,1,2,1,2,3,2,1,0,1,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,1,1,2,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,1,3,3,2,3,3,2,2,2,0,1,0,0, +0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,3,3,3,3,0,3,3,3,3,3,2,1,1,2,1,3,3,0,3,1,1,1,1,3,2,0,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, +3,3,2,2,2,3,3,3,3,3,3,3,3,3,3,3,1,1,3,1,3,3,2,3,2,2,2,3,0,2,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,2,3,3,2,2,3,2,1,1,1,1,1,3,1,3,1,1,0,0,0,1,0,0,0,1,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,2,3,2,0,3,2,0,3,0,2,0,0,2,1,3,1,0,0,1,0,0,0,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, +3,3,3,3,2,1,1,1,1,2,1,1,2,1,1,1,2,2,1,2,1,1,1,0,1,1,0,1,0,1,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, +3,3,3,3,2,1,3,1,1,2,1,3,2,1,1,0,1,2,3,2,1,1,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,3,3,3,3,2,2,1,0,1,0,0,1,0,0,0,2,1,0,3,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, +3,3,3,2,3,2,3,3,1,3,2,1,1,1,2,1,1,2,1,3,0,1,0,0,0,1,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,1,1,2,2,3,3,2,3,2,2,2,3,1,2,2,1,1,2,1,1,2,2,0,1,1,0,1,0,2,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,2,1,3,1,0,2,2,1,3,2,1,0,0,2,0,2,0,1,0,0,0,0,0,0,0,1,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1, +3,3,3,3,3,3,1,2,0,2,3,1,2,3,2,0,1,3,1,2,1,1,1,0,0,1,0,0,2,2,2,3, +2,2,2,2,1,2,1,1,2,2,1,1,2,0,1,1,1,0,0,1,1,0,0,1,1,0,0,0,1,1,0,1, +3,3,3,3,3,2,1,2,2,1,2,0,2,0,1,0,1,2,1,2,1,1,0,0,0,1,0,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1, +3,3,2,3,3,1,1,3,1,0,3,2,1,0,0,0,1,2,0,2,0,1,0,0,0,1,0,1,2,1,2,2, +1,1,1,1,1,1,1,2,2,2,1,1,1,1,1,1,1,0,1,2,1,1,1,0,0,0,0,0,1,1,0,0, +3,1,0,1,0,2,3,2,2,2,3,2,2,2,2,2,1,0,2,1,2,1,1,1,0,1,2,1,2,2,2,1, +1,1,2,2,2,2,1,2,1,1,0,1,2,1,2,2,2,1,1,1,0,1,1,1,1,2,0,1,0,0,0,0, +2,3,2,3,3,0,0,2,1,0,2,1,0,0,0,0,2,3,0,2,0,0,0,0,0,1,0,0,2,0,1,2, +2,1,2,1,2,2,1,1,1,2,1,1,1,0,1,2,2,1,1,1,1,1,0,1,1,1,0,0,1,2,0,0, +3,3,2,2,3,0,2,3,1,1,2,0,0,0,1,0,0,2,0,2,0,0,0,1,0,1,0,1,2,0,2,2, +1,1,1,1,2,1,0,1,2,2,2,1,1,1,1,1,1,1,0,1,1,1,0,0,0,0,0,0,1,1,0,0, +2,3,2,3,3,0,0,3,0,1,1,0,1,0,0,0,2,2,1,2,0,0,0,0,0,0,0,0,2,0,1,2, +2,2,1,1,1,1,1,2,2,2,1,0,2,0,1,0,1,0,0,1,0,1,0,0,1,0,0,0,0,1,0,0, +3,3,3,3,2,2,2,2,2,0,2,1,1,1,1,2,1,2,1,1,0,2,0,1,0,1,0,0,2,0,1,2, +1,1,1,1,1,1,1,2,2,1,1,0,2,0,1,0,2,0,0,1,1,1,0,0,2,0,0,0,1,1,0,0, +2,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,2,0,0,1,1,0,0,0,0,0,0,1,2,0,1,2, +2,2,2,1,1,2,1,1,2,2,2,1,2,0,1,1,1,1,1,1,0,1,1,1,1,0,0,1,1,1,0,0, +2,3,3,3,3,0,2,2,0,2,1,0,0,0,1,1,1,2,0,2,0,0,0,3,0,0,0,0,2,0,2,2, +1,1,1,2,1,2,1,1,2,2,2,1,2,0,1,1,1,0,1,1,1,1,0,2,1,0,0,0,1,1,0,0, +2,3,3,3,3,0,2,1,0,0,2,0,0,0,0,0,1,2,0,2,0,0,0,0,0,0,0,0,2,0,1,2, +1,1,1,2,1,1,1,1,2,2,2,0,1,0,1,1,1,0,0,1,1,1,0,0,1,0,0,0,0,1,0,0, +3,3,2,2,3,0,1,0,1,0,0,0,0,0,0,0,1,1,0,3,0,0,0,0,0,0,0,0,1,0,2,2, +1,1,1,1,1,2,1,1,2,2,1,2,2,1,0,1,1,1,1,1,0,1,0,0,1,0,0,0,1,1,0,0, +3,1,0,1,0,2,2,2,2,3,2,1,1,1,2,3,0,0,1,0,2,1,1,0,1,1,1,1,2,1,1,1, +1,2,2,1,2,1,2,2,1,1,0,1,2,1,2,2,1,1,1,0,0,1,1,1,2,1,0,1,0,0,0,0, +2,1,0,1,0,3,1,2,2,2,2,1,2,2,1,1,1,0,2,1,2,2,1,1,2,1,1,0,2,1,1,1, +1,2,2,2,2,2,2,2,1,2,0,1,1,0,2,1,1,1,1,1,0,0,1,1,1,1,0,1,0,0,0,0, +2,1,1,1,1,2,2,2,2,1,2,2,2,1,2,2,1,1,2,1,2,3,2,2,1,1,1,1,0,1,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,2,2,3,2,0,1,2,0,1,2,1,1,0,1,0,1,2,1,2,0,0,0,1,1,0,0,0,1,0,0,2, +1,1,0,0,1,1,0,1,1,1,1,0,2,0,1,1,1,0,0,1,1,0,0,0,0,1,0,0,0,1,0,0, +2,0,0,0,0,1,2,2,2,2,2,2,2,1,2,1,1,1,1,1,1,1,0,1,1,1,1,1,2,1,1,1, +1,2,2,2,2,1,1,2,1,2,1,1,1,0,2,1,2,1,1,1,0,2,1,1,1,1,0,1,0,0,0,0, +3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,1,0,1,0,1,1,1,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,2,2,3,2,0,0,0,0,1,0,0,0,0,0,0,1,1,0,2,0,0,0,0,0,0,0,0,1,0,1,2, +1,1,1,1,1,1,0,0,2,2,2,2,2,0,1,1,0,1,1,1,1,1,0,0,1,0,0,0,1,1,0,1, +2,3,1,2,1,0,1,1,0,2,2,2,0,0,1,0,0,1,1,1,1,0,0,0,0,0,0,0,1,0,1,2, +1,1,1,1,2,1,1,1,1,1,1,1,1,0,1,1,0,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0, +2,2,2,2,2,0,0,2,0,0,2,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,2,0,2,2, +1,1,1,1,1,0,0,1,2,1,1,0,1,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0, +1,2,2,2,2,0,0,2,0,1,1,0,0,0,1,0,0,2,0,2,0,0,0,0,0,0,0,0,0,0,1,1, +0,0,0,1,1,1,1,1,1,1,1,1,1,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,2,2,3,2,0,0,1,0,0,1,0,0,0,0,0,0,1,0,2,0,0,0,1,0,0,0,0,0,0,0,2, +1,1,0,0,1,0,0,0,1,1,0,0,1,0,1,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0, +2,1,2,2,2,1,2,1,2,2,1,1,2,1,1,1,0,1,1,1,1,2,0,1,0,1,1,1,1,0,1,1, +1,1,2,1,1,1,1,1,1,0,0,1,2,1,1,1,1,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0, +1,0,0,1,3,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,2,2,2,1,0,0,1,0,2,0,0,0,0,0,1,1,1,0,1,0,0,0,0,0,0,0,0,2,0,0,1, +0,2,0,1,0,0,1,1,2,0,1,0,1,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, +1,2,2,2,2,0,1,1,0,2,1,0,1,1,1,0,0,1,0,2,0,1,0,0,0,0,0,0,0,0,0,1, +0,1,0,0,1,0,0,0,1,1,0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0, +2,2,2,2,2,0,0,1,0,0,0,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1, +0,1,0,1,1,1,0,0,1,1,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0, +2,0,1,0,0,1,2,1,1,1,1,1,1,2,2,1,0,0,1,0,1,0,0,0,0,1,1,1,1,0,0,0, +1,1,2,1,1,1,1,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,2,1,2,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0,1, +0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +0,1,1,0,1,1,1,0,0,1,0,0,1,0,1,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,1,0,0,1,1,1,1,1,1,1,1,1,1,1,0,0,1,0,2,0,0,2,0,1,0,0,1,0,0,1, +1,1,0,0,1,1,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0, +1,1,1,1,1,1,1,2,0,0,0,0,0,0,2,1,0,1,1,0,0,1,1,1,0,1,0,0,0,0,0,0, +2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,1,1,1,1,0,1,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, +) + +Latin5BulgarianModel = { + 'char_to_order_map': Latin5_BulgarianCharToOrderMap, + 'precedence_matrix': BulgarianLangModel, + 'typical_positive_ratio': 0.969392, + 'keep_english_letter': False, + 'charset_name': "ISO-8859-5", + 'language': 'Bulgairan', +} + +Win1251BulgarianModel = { + 'char_to_order_map': win1251BulgarianCharToOrderMap, + 'precedence_matrix': BulgarianLangModel, + 'typical_positive_ratio': 0.969392, + 'keep_english_letter': False, + 'charset_name': "windows-1251", + 'language': 'Bulgarian', +} diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langcyrillicmodel.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langcyrillicmodel.py new file mode 100644 index 00000000..e5f9a1fd --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langcyrillicmodel.py @@ -0,0 +1,333 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Communicator client code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +# KOI8-R language model +# Character Mapping Table: +KOI8R_char_to_order_map = ( +255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 +253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 +252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 +253,142,143,144,145,146,147,148,149,150,151,152, 74,153, 75,154, # 40 +155,156,157,158,159,160,161,162,163,164,165,253,253,253,253,253, # 50 +253, 71,172, 66,173, 65,174, 76,175, 64,176,177, 77, 72,178, 69, # 60 + 67,179, 78, 73,180,181, 79,182,183,184,185,253,253,253,253,253, # 70 +191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206, # 80 +207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222, # 90 +223,224,225, 68,226,227,228,229,230,231,232,233,234,235,236,237, # a0 +238,239,240,241,242,243,244,245,246,247,248,249,250,251,252,253, # b0 + 27, 3, 21, 28, 13, 2, 39, 19, 26, 4, 23, 11, 8, 12, 5, 1, # c0 + 15, 16, 9, 7, 6, 14, 24, 10, 17, 18, 20, 25, 30, 29, 22, 54, # d0 + 59, 37, 44, 58, 41, 48, 53, 46, 55, 42, 60, 36, 49, 38, 31, 34, # e0 + 35, 43, 45, 32, 40, 52, 56, 33, 61, 62, 51, 57, 47, 63, 50, 70, # f0 +) + +win1251_char_to_order_map = ( +255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 +253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 +252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 +253,142,143,144,145,146,147,148,149,150,151,152, 74,153, 75,154, # 40 +155,156,157,158,159,160,161,162,163,164,165,253,253,253,253,253, # 50 +253, 71,172, 66,173, 65,174, 76,175, 64,176,177, 77, 72,178, 69, # 60 + 67,179, 78, 73,180,181, 79,182,183,184,185,253,253,253,253,253, # 70 +191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206, +207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222, +223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238, +239,240,241,242,243,244,245,246, 68,247,248,249,250,251,252,253, + 37, 44, 33, 46, 41, 48, 56, 51, 42, 60, 36, 49, 38, 31, 34, 35, + 45, 32, 40, 52, 53, 55, 58, 50, 57, 63, 70, 62, 61, 47, 59, 43, + 3, 21, 10, 19, 13, 2, 24, 20, 4, 23, 11, 8, 12, 5, 1, 15, + 9, 7, 6, 14, 39, 26, 28, 22, 25, 29, 54, 18, 17, 30, 27, 16, +) + +latin5_char_to_order_map = ( +255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 +253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 +252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 +253,142,143,144,145,146,147,148,149,150,151,152, 74,153, 75,154, # 40 +155,156,157,158,159,160,161,162,163,164,165,253,253,253,253,253, # 50 +253, 71,172, 66,173, 65,174, 76,175, 64,176,177, 77, 72,178, 69, # 60 + 67,179, 78, 73,180,181, 79,182,183,184,185,253,253,253,253,253, # 70 +191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206, +207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222, +223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238, + 37, 44, 33, 46, 41, 48, 56, 51, 42, 60, 36, 49, 38, 31, 34, 35, + 45, 32, 40, 52, 53, 55, 58, 50, 57, 63, 70, 62, 61, 47, 59, 43, + 3, 21, 10, 19, 13, 2, 24, 20, 4, 23, 11, 8, 12, 5, 1, 15, + 9, 7, 6, 14, 39, 26, 28, 22, 25, 29, 54, 18, 17, 30, 27, 16, +239, 68,240,241,242,243,244,245,246,247,248,249,250,251,252,255, +) + +macCyrillic_char_to_order_map = ( +255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 +253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 +252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 +253,142,143,144,145,146,147,148,149,150,151,152, 74,153, 75,154, # 40 +155,156,157,158,159,160,161,162,163,164,165,253,253,253,253,253, # 50 +253, 71,172, 66,173, 65,174, 76,175, 64,176,177, 77, 72,178, 69, # 60 + 67,179, 78, 73,180,181, 79,182,183,184,185,253,253,253,253,253, # 70 + 37, 44, 33, 46, 41, 48, 56, 51, 42, 60, 36, 49, 38, 31, 34, 35, + 45, 32, 40, 52, 53, 55, 58, 50, 57, 63, 70, 62, 61, 47, 59, 43, +191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206, +207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222, +223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238, +239,240,241,242,243,244,245,246,247,248,249,250,251,252, 68, 16, + 3, 21, 10, 19, 13, 2, 24, 20, 4, 23, 11, 8, 12, 5, 1, 15, + 9, 7, 6, 14, 39, 26, 28, 22, 25, 29, 54, 18, 17, 30, 27,255, +) + +IBM855_char_to_order_map = ( +255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 +253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 +252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 +253,142,143,144,145,146,147,148,149,150,151,152, 74,153, 75,154, # 40 +155,156,157,158,159,160,161,162,163,164,165,253,253,253,253,253, # 50 +253, 71,172, 66,173, 65,174, 76,175, 64,176,177, 77, 72,178, 69, # 60 + 67,179, 78, 73,180,181, 79,182,183,184,185,253,253,253,253,253, # 70 +191,192,193,194, 68,195,196,197,198,199,200,201,202,203,204,205, +206,207,208,209,210,211,212,213,214,215,216,217, 27, 59, 54, 70, + 3, 37, 21, 44, 28, 58, 13, 41, 2, 48, 39, 53, 19, 46,218,219, +220,221,222,223,224, 26, 55, 4, 42,225,226,227,228, 23, 60,229, +230,231,232,233,234,235, 11, 36,236,237,238,239,240,241,242,243, + 8, 49, 12, 38, 5, 31, 1, 34, 15,244,245,246,247, 35, 16,248, + 43, 9, 45, 7, 32, 6, 40, 14, 52, 24, 56, 10, 33, 17, 61,249, +250, 18, 62, 20, 51, 25, 57, 30, 47, 29, 63, 22, 50,251,252,255, +) + +IBM866_char_to_order_map = ( +255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 +253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 +252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 +253,142,143,144,145,146,147,148,149,150,151,152, 74,153, 75,154, # 40 +155,156,157,158,159,160,161,162,163,164,165,253,253,253,253,253, # 50 +253, 71,172, 66,173, 65,174, 76,175, 64,176,177, 77, 72,178, 69, # 60 + 67,179, 78, 73,180,181, 79,182,183,184,185,253,253,253,253,253, # 70 + 37, 44, 33, 46, 41, 48, 56, 51, 42, 60, 36, 49, 38, 31, 34, 35, + 45, 32, 40, 52, 53, 55, 58, 50, 57, 63, 70, 62, 61, 47, 59, 43, + 3, 21, 10, 19, 13, 2, 24, 20, 4, 23, 11, 8, 12, 5, 1, 15, +191,192,193,194,195,196,197,198,199,200,201,202,203,204,205,206, +207,208,209,210,211,212,213,214,215,216,217,218,219,220,221,222, +223,224,225,226,227,228,229,230,231,232,233,234,235,236,237,238, + 9, 7, 6, 14, 39, 26, 28, 22, 25, 29, 54, 18, 17, 30, 27, 16, +239, 68,240,241,242,243,244,245,246,247,248,249,250,251,252,255, +) + +# Model Table: +# total sequences: 100% +# first 512 sequences: 97.6601% +# first 1024 sequences: 2.3389% +# rest sequences: 0.1237% +# negative sequences: 0.0009% +RussianLangModel = ( +0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,1,3,3,3,3,1,3,3,3,2,3,2,3,3, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,2,2,2,2,2,0,0,2, +3,3,3,2,3,3,3,3,3,3,3,3,3,3,2,3,3,0,0,3,3,3,3,3,3,3,3,3,2,3,2,0, +0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,2,2,3,3,3,3,3,3,3,3,3,2,3,3,0,0,3,3,3,3,3,3,3,3,2,3,3,1,0, +0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,2,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,0,0,3,3,3,3,3,3,3,3,3,3,3,2,1, +0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,0,0,3,3,3,3,3,3,3,3,3,3,3,2,1, +0,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,3,2,2,2,3,1,3,3,1,3,3,3,3,2,2,3,0,2,2,2,3,3,2,1,0, +0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,2,3,3,3,3,3,2,2,3,2,3,3,3,2,1,2,2,0,1,2,2,2,2,2,2,0, +0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,3,0,2,2,3,3,2,1,2,0, +0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,2,3,3,1,2,3,2,2,3,2,3,3,3,3,2,2,3,0,3,2,2,3,1,1,1,0, +0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,2,3,3,3,3,2,2,2,0,3,3,3,2,2,2,2,0, +0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,3,3,3,2,3,2,3,3,3,3,3,3,2,3,2,2,0,1,3,2,1,2,2,1,0, +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,3,3,3,3,2,1,1,3,0,1,1,1,1,2,1,1,0,2,2,2,1,2,0,1,0, +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,2,3,3,2,2,2,2,1,3,2,3,2,3,2,1,2,2,0,1,1,2,1,2,1,2,0, +0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,2,3,3,3,2,2,2,2,0,2,2,2,2,3,1,1,0, +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0, +3,2,3,2,2,3,3,3,3,3,3,3,3,3,1,3,2,0,0,3,3,3,3,2,3,3,3,3,2,3,2,0, +0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,3,3,3,3,3,2,2,3,3,0,2,1,0,3,2,3,2,3,0,0,1,2,0,0,1,0,1,2,1,1,0, +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,0,3,0,2,3,3,3,3,2,3,3,3,3,1,2,2,0,0,2,3,2,2,2,3,2,3,2,2,3,0,0, +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,2,3,0,2,3,2,3,0,1,2,3,3,2,0,2,3,0,0,2,3,2,2,0,1,3,1,3,2,2,1,0, +0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,1,3,0,2,3,3,3,3,3,3,3,3,2,1,3,2,0,0,2,2,3,3,3,2,3,3,0,2,2,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,2,2,3,3,2,2,2,3,3,0,0,1,1,1,1,1,2,0,0,1,1,1,1,0,1,0, +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,2,2,3,3,3,3,3,3,3,0,3,2,3,3,2,3,2,0,2,1,0,1,1,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,2,3,3,3,2,2,2,2,3,1,3,2,3,1,1,2,1,0,2,2,2,2,1,3,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0, +2,2,3,3,3,3,3,1,2,2,1,3,1,0,3,0,0,3,0,0,0,1,1,0,1,2,1,0,0,0,0,0, +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,2,2,1,1,3,3,3,2,2,1,2,2,3,1,1,2,0,0,2,2,1,3,0,0,2,1,1,2,1,1,0, +0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,2,3,3,3,3,1,2,2,2,1,2,1,3,3,1,1,2,1,2,1,2,2,0,2,0,0,1,1,0,1,0, +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,3,3,3,3,3,2,1,3,2,2,3,2,0,3,2,0,3,0,1,0,1,1,0,0,1,1,1,1,0,1,0, +0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,2,3,3,3,2,2,2,3,3,1,2,1,2,1,0,1,0,1,1,0,1,0,0,2,1,1,1,0,1,0, +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +3,1,1,2,1,2,3,3,2,2,1,2,2,3,0,2,1,0,0,2,2,3,2,1,2,2,2,2,2,3,1,0, +0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,1,1,0,1,1,2,2,1,1,3,0,0,1,3,1,1,1,0,0,0,1,0,1,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,1,3,3,3,2,0,0,0,2,1,0,1,0,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,0,1,0,0,2,3,2,2,2,1,2,2,2,1,2,1,0,0,1,1,1,0,2,0,1,1,1,0,0,1,1, +1,0,0,0,0,0,1,2,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, +2,3,3,3,3,0,0,0,0,1,0,0,0,0,3,0,1,2,1,0,0,0,0,0,0,0,1,1,0,0,1,1, +1,0,1,0,1,2,0,0,1,1,2,1,0,1,1,1,1,0,1,1,1,1,0,1,0,0,1,0,0,1,1,0, +2,2,3,2,2,2,3,1,2,2,2,2,2,2,2,2,1,1,1,1,1,1,1,0,1,0,1,1,1,0,2,1, +1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,0,1,0,1,1,0,1,1,1,0,1,1,0, +3,3,3,2,2,2,2,3,2,2,1,1,2,2,2,2,1,1,3,1,2,1,2,0,0,1,1,0,1,0,2,1, +1,1,1,1,1,2,1,0,1,1,1,1,0,1,0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,1,1,0, +2,0,0,1,0,3,2,2,2,2,1,2,1,2,1,2,0,0,0,2,1,2,2,1,1,2,2,0,1,1,0,2, +1,1,1,1,1,0,1,1,1,2,1,1,1,2,1,0,1,2,1,1,1,1,0,1,1,1,0,0,1,0,0,1, +1,3,2,2,2,1,1,1,2,3,0,0,0,0,2,0,2,2,1,0,0,0,0,0,0,1,0,0,0,0,1,1, +1,0,1,1,0,1,0,1,1,0,1,1,0,2,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0, +2,3,2,3,2,1,2,2,2,2,1,0,0,0,2,0,0,1,1,0,0,0,0,0,0,0,1,1,0,0,2,1, +1,1,2,1,0,2,0,0,1,0,1,0,0,1,0,0,1,1,0,1,1,0,0,0,0,0,1,0,0,0,0,0, +3,0,0,1,0,2,2,2,3,2,2,2,2,2,2,2,0,0,0,2,1,2,1,1,1,2,2,0,0,0,1,2, +1,1,1,1,1,0,1,2,1,1,1,1,1,1,1,0,1,1,1,1,1,1,0,1,1,1,1,1,1,0,0,1, +2,3,2,3,3,2,0,1,1,1,0,0,1,0,2,0,1,1,3,1,0,0,0,0,0,0,0,1,0,0,2,1, +1,1,1,1,1,1,1,0,1,0,1,1,1,1,0,1,1,1,0,0,1,1,0,1,0,0,0,0,0,0,1,0, +2,3,3,3,3,1,2,2,2,2,0,1,1,0,2,1,1,1,2,1,0,1,1,0,0,1,0,1,0,0,2,0, +0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,3,3,3,2,0,0,1,1,2,2,1,0,0,2,0,1,1,3,0,0,1,0,0,0,0,0,1,0,1,2,1, +1,1,2,0,1,1,1,0,1,0,1,1,0,1,0,1,1,1,1,0,1,0,0,0,0,0,0,1,0,1,1,0, +1,3,2,3,2,1,0,0,2,2,2,0,1,0,2,0,1,1,1,0,1,0,0,0,3,0,1,1,0,0,2,1, +1,1,1,0,1,1,0,0,0,0,1,1,0,1,0,0,2,1,1,0,1,0,0,0,1,0,1,0,0,1,1,0, +3,1,2,1,1,2,2,2,2,2,2,1,2,2,1,1,0,0,0,2,2,2,0,0,0,1,2,1,0,1,0,1, +2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,2,1,1,1,0,1,0,1,1,0,1,1,1,0,0,1, +3,0,0,0,0,2,0,1,1,1,1,1,1,1,0,1,0,0,0,1,1,1,0,1,0,1,1,0,0,1,0,1, +1,1,0,0,1,0,0,0,1,0,1,1,0,0,1,0,1,0,1,0,0,0,0,1,0,0,0,1,0,0,0,1, +1,3,3,2,2,0,0,0,2,2,0,0,0,1,2,0,1,1,2,0,0,0,0,0,0,0,0,1,0,0,2,1, +0,1,1,0,0,1,1,0,0,0,1,1,0,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0, +2,3,2,3,2,0,0,0,0,1,1,0,0,0,2,0,2,0,2,0,0,0,0,0,1,0,0,1,0,0,1,1, +1,1,2,0,1,2,1,0,1,1,2,1,1,1,1,1,2,1,1,0,1,0,0,1,1,1,1,1,0,1,1,0, +1,3,2,2,2,1,0,0,2,2,1,0,1,2,2,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,1,1, +0,0,1,1,0,1,1,0,0,1,1,0,1,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,1,0,2,3,1,2,2,2,2,2,2,1,1,0,0,0,1,0,1,0,2,1,1,1,0,0,0,0,1, +1,1,0,1,1,0,1,1,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +2,0,2,0,0,1,0,3,2,1,2,1,2,2,0,1,0,0,0,2,1,0,0,2,1,1,1,1,0,2,0,2, +2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,0,1,1,1,1,0,0,0,1,1,1,1,0,1,0,0,1, +1,2,2,2,2,1,0,0,1,0,0,0,0,0,2,0,1,1,1,1,0,0,0,0,1,0,1,2,0,0,2,0, +1,0,1,1,1,2,1,0,1,0,1,1,0,0,1,0,1,1,1,0,1,0,0,0,1,0,0,1,0,1,1,0, +2,1,2,2,2,0,3,0,1,1,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1, +0,0,0,1,1,1,0,0,1,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0, +1,2,2,3,2,2,0,0,1,1,2,0,1,2,1,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1, +0,1,1,0,0,1,1,0,0,1,1,0,0,1,1,0,1,1,0,0,1,0,0,0,0,0,0,0,0,1,1,0, +2,2,1,1,2,1,2,2,2,2,2,1,2,2,0,1,0,0,0,1,2,2,2,1,2,1,1,1,1,1,2,1, +1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,1,1,1,0,0,0,0,1,1,1,0,1,1,0,0,1, +1,2,2,2,2,0,1,0,2,2,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0, +0,0,1,0,0,1,0,0,0,0,1,0,1,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,2,2,2,2,0,0,0,2,2,2,0,1,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,1, +0,1,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,2,2,2,2,0,0,0,0,1,0,0,1,1,2,0,0,0,0,1,0,1,0,0,1,0,0,2,0,0,0,1, +0,0,1,0,0,1,0,0,0,1,1,0,0,0,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0, +1,2,2,2,1,1,2,0,2,1,1,1,1,0,2,2,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,1, +0,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +1,0,2,1,2,0,0,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0, +0,0,1,0,1,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0, +1,0,0,0,0,2,0,1,2,1,0,1,1,1,0,1,0,0,0,1,0,1,0,0,1,0,1,0,0,0,0,1, +0,0,0,0,0,1,0,0,1,1,0,0,1,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1, +2,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, +1,0,0,0,1,0,0,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0, +2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, +1,1,1,0,1,0,1,0,0,1,1,1,1,0,0,0,1,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, +1,1,0,1,1,0,1,0,1,0,0,0,0,1,1,0,1,1,0,0,0,0,0,1,0,1,1,0,1,0,0,0, +0,1,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0, +) + +Koi8rModel = { + 'char_to_order_map': KOI8R_char_to_order_map, + 'precedence_matrix': RussianLangModel, + 'typical_positive_ratio': 0.976601, + 'keep_english_letter': False, + 'charset_name': "KOI8-R", + 'language': 'Russian', +} + +Win1251CyrillicModel = { + 'char_to_order_map': win1251_char_to_order_map, + 'precedence_matrix': RussianLangModel, + 'typical_positive_ratio': 0.976601, + 'keep_english_letter': False, + 'charset_name': "windows-1251", + 'language': 'Russian', +} + +Latin5CyrillicModel = { + 'char_to_order_map': latin5_char_to_order_map, + 'precedence_matrix': RussianLangModel, + 'typical_positive_ratio': 0.976601, + 'keep_english_letter': False, + 'charset_name': "ISO-8859-5", + 'language': 'Russian', +} + +MacCyrillicModel = { + 'char_to_order_map': macCyrillic_char_to_order_map, + 'precedence_matrix': RussianLangModel, + 'typical_positive_ratio': 0.976601, + 'keep_english_letter': False, + 'charset_name': "MacCyrillic", + 'language': 'Russian', +} + +Ibm866Model = { + 'char_to_order_map': IBM866_char_to_order_map, + 'precedence_matrix': RussianLangModel, + 'typical_positive_ratio': 0.976601, + 'keep_english_letter': False, + 'charset_name': "IBM866", + 'language': 'Russian', +} + +Ibm855Model = { + 'char_to_order_map': IBM855_char_to_order_map, + 'precedence_matrix': RussianLangModel, + 'typical_positive_ratio': 0.976601, + 'keep_english_letter': False, + 'charset_name': "IBM855", + 'language': 'Russian', +} diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langgreekmodel.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langgreekmodel.py new file mode 100644 index 00000000..53322216 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langgreekmodel.py @@ -0,0 +1,225 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Communicator client code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +# 255: Control characters that usually does not exist in any text +# 254: Carriage/Return +# 253: symbol (punctuation) that does not belong to word +# 252: 0 - 9 + +# Character Mapping Table: +Latin7_char_to_order_map = ( +255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 +253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 +252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 +253, 82,100,104, 94, 98,101,116,102,111,187,117, 92, 88,113, 85, # 40 + 79,118,105, 83, 67,114,119, 95, 99,109,188,253,253,253,253,253, # 50 +253, 72, 70, 80, 81, 60, 96, 93, 89, 68,120, 97, 77, 86, 69, 55, # 60 + 78,115, 65, 66, 58, 76,106,103, 87,107,112,253,253,253,253,253, # 70 +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 80 +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 90 +253,233, 90,253,253,253,253,253,253,253,253,253,253, 74,253,253, # a0 +253,253,253,253,247,248, 61, 36, 46, 71, 73,253, 54,253,108,123, # b0 +110, 31, 51, 43, 41, 34, 91, 40, 52, 47, 44, 53, 38, 49, 59, 39, # c0 + 35, 48,250, 37, 33, 45, 56, 50, 84, 57,120,121, 17, 18, 22, 15, # d0 +124, 1, 29, 20, 21, 3, 32, 13, 25, 5, 11, 16, 10, 6, 30, 4, # e0 + 9, 8, 14, 7, 2, 12, 28, 23, 42, 24, 64, 75, 19, 26, 27,253, # f0 +) + +win1253_char_to_order_map = ( +255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 +253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 +252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 +253, 82,100,104, 94, 98,101,116,102,111,187,117, 92, 88,113, 85, # 40 + 79,118,105, 83, 67,114,119, 95, 99,109,188,253,253,253,253,253, # 50 +253, 72, 70, 80, 81, 60, 96, 93, 89, 68,120, 97, 77, 86, 69, 55, # 60 + 78,115, 65, 66, 58, 76,106,103, 87,107,112,253,253,253,253,253, # 70 +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 80 +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 90 +253,233, 61,253,253,253,253,253,253,253,253,253,253, 74,253,253, # a0 +253,253,253,253,247,253,253, 36, 46, 71, 73,253, 54,253,108,123, # b0 +110, 31, 51, 43, 41, 34, 91, 40, 52, 47, 44, 53, 38, 49, 59, 39, # c0 + 35, 48,250, 37, 33, 45, 56, 50, 84, 57,120,121, 17, 18, 22, 15, # d0 +124, 1, 29, 20, 21, 3, 32, 13, 25, 5, 11, 16, 10, 6, 30, 4, # e0 + 9, 8, 14, 7, 2, 12, 28, 23, 42, 24, 64, 75, 19, 26, 27,253, # f0 +) + +# Model Table: +# total sequences: 100% +# first 512 sequences: 98.2851% +# first 1024 sequences:1.7001% +# rest sequences: 0.0359% +# negative sequences: 0.0148% +GreekLangModel = ( +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,3,2,2,3,3,3,3,3,3,3,3,1,3,3,3,0,2,2,3,3,0,3,0,3,2,0,3,3,3,0, +3,0,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,3,3,3,3,0,3,3,0,3,2,3,3,0,3,2,3,3,3,0,0,3,0,3,0,3,3,2,0,0,0, +2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0, +0,2,3,2,2,3,3,3,3,3,3,3,3,0,3,3,3,3,0,2,3,3,0,3,3,3,3,2,3,3,3,0, +2,0,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,2,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,0,2,1,3,3,3,3,2,3,3,2,3,3,2,0, +0,0,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,0,3,3,3,3,3,3,3,3,3,3,0,3,2,3,3,0, +2,0,1,0,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, +0,3,3,3,3,3,2,3,0,0,0,0,3,3,0,3,1,3,3,3,0,3,3,0,3,3,3,3,0,0,0,0, +2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,3,3,3,3,0,3,0,3,3,3,3,3,0,3,2,2,2,3,0,2,3,3,3,3,3,2,3,3,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,3,3,3,3,3,2,2,2,3,3,3,3,0,3,1,3,3,3,3,2,3,3,3,3,3,3,3,2,2,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,3,3,3,3,2,0,3,0,0,0,3,3,2,3,3,3,3,3,0,0,3,2,3,0,2,3,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,0,3,3,3,3,0,0,3,3,0,2,3,0,3,0,3,3,3,0,0,3,0,3,0,2,2,3,3,0,0, +0,0,1,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,3,3,3,3,2,0,3,2,3,3,3,3,0,3,3,3,3,3,0,3,3,2,3,2,3,3,2,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,3,2,3,2,3,3,3,3,3,3,0,2,3,2,3,2,2,2,3,2,3,3,2,3,0,2,2,2,3,0, +2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,3,0,0,0,3,3,3,2,3,3,0,0,3,0,3,0,0,0,3,2,0,3,0,3,0,0,2,0,2,0, +0,0,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,3,3,3,0,3,3,3,3,3,3,0,3,3,0,3,0,0,0,3,3,0,3,3,3,0,0,1,2,3,0, +3,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,3,3,3,3,2,0,0,3,2,2,3,3,0,3,3,3,3,3,2,1,3,0,3,2,3,3,2,1,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,3,3,0,2,3,3,3,3,3,3,0,0,3,0,3,0,0,0,3,3,0,3,2,3,0,0,3,3,3,0, +3,0,0,0,2,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,3,3,3,0,3,3,3,3,3,3,0,0,3,0,3,0,0,0,3,2,0,3,2,3,0,0,3,2,3,0, +2,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,3,1,2,2,3,3,3,3,3,3,0,2,3,0,3,0,0,0,3,3,0,3,0,2,0,0,2,3,1,0, +2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,0,3,3,3,3,0,3,0,3,3,2,3,0,3,3,3,3,3,3,0,3,3,3,0,2,3,0,0,3,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,0,3,3,3,0,0,3,0,0,0,3,3,0,3,0,2,3,3,0,0,3,0,3,0,3,3,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,3,0,0,0,3,3,3,3,3,3,0,0,3,0,2,0,0,0,3,3,0,3,0,3,0,0,2,0,2,0, +0,0,0,0,1,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,3,3,3,3,3,0,3,0,2,0,3,2,0,3,2,3,2,3,0,0,3,2,3,2,3,3,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,3,0,0,2,3,3,3,3,3,0,0,0,3,0,2,1,0,0,3,2,2,2,0,3,0,0,2,2,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,0,3,3,3,2,0,3,0,3,0,3,3,0,2,1,2,3,3,0,0,3,0,3,0,3,3,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,2,3,3,3,0,3,3,3,3,3,3,0,2,3,0,3,0,0,0,2,1,0,2,2,3,0,0,2,2,2,0, +0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,3,0,0,2,3,3,3,2,3,0,0,1,3,0,2,0,0,0,0,3,0,1,0,2,0,0,1,1,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,3,3,3,3,1,0,3,0,0,0,3,2,0,3,2,3,3,3,0,0,3,0,3,2,2,2,1,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,0,3,3,3,0,0,3,0,0,0,0,2,0,2,3,3,2,2,2,2,3,0,2,0,2,2,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,3,3,3,2,0,0,0,0,0,0,2,3,0,2,0,2,3,2,0,0,3,0,3,0,3,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,3,2,3,3,2,2,3,0,2,0,3,0,0,0,2,0,0,0,0,1,2,0,2,0,2,0, +0,2,0,2,0,2,2,0,0,1,0,2,2,2,0,2,2,2,0,2,2,2,0,0,2,0,0,1,0,0,0,0, +0,2,0,3,3,2,0,0,0,0,0,0,1,3,0,2,0,2,2,2,0,0,2,0,3,0,0,2,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,0,2,3,2,0,2,2,0,2,0,2,2,0,2,0,2,2,2,0,0,0,0,0,0,2,3,0,0,0,2, +0,1,2,0,0,0,0,2,2,0,0,0,2,1,0,2,2,0,0,0,0,0,0,1,0,2,0,0,0,0,0,0, +0,0,2,1,0,2,3,2,2,3,2,3,2,0,0,3,3,3,0,0,3,2,0,0,0,1,1,0,2,0,2,2, +0,2,0,2,0,2,2,0,0,2,0,2,2,2,0,2,2,2,2,0,0,2,0,0,0,2,0,1,0,0,0,0, +0,3,0,3,3,2,2,0,3,0,0,0,2,2,0,2,2,2,1,2,0,0,1,2,2,0,0,3,0,0,0,2, +0,1,2,0,0,0,1,2,0,0,0,0,0,0,0,2,2,0,1,0,0,2,0,0,0,2,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,2,3,3,2,2,0,0,0,2,0,2,3,3,0,2,0,0,0,0,0,0,2,2,2,0,2,2,0,2,0,2, +0,2,2,0,0,2,2,2,2,1,0,0,2,2,0,2,0,0,2,0,0,0,0,0,0,2,0,0,0,0,0,0, +0,2,0,3,2,3,0,0,0,3,0,0,2,2,0,2,0,2,2,2,0,0,2,0,0,0,0,0,0,0,0,2, +0,0,2,2,0,0,2,2,2,0,0,0,0,0,0,2,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,2,0,0,3,2,0,2,2,2,2,2,0,0,0,2,0,0,0,0,2,0,1,0,0,2,0,1,0,0,0, +0,2,2,2,0,2,2,0,1,2,0,2,2,2,0,2,2,2,2,1,2,2,0,0,2,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, +0,2,0,2,0,2,2,0,0,0,0,1,2,1,0,0,2,2,0,0,2,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,3,2,3,0,0,2,0,0,0,2,2,0,2,0,0,0,1,0,0,2,0,2,0,2,2,0,0,0,0, +0,0,2,0,0,0,0,2,2,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0, +0,2,2,3,2,2,0,0,0,0,0,0,1,3,0,2,0,2,2,0,0,0,1,0,2,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,2,0,2,0,3,2,0,2,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, +0,0,2,0,0,0,0,1,1,0,0,2,1,2,0,2,2,0,1,0,0,1,0,0,0,2,0,0,0,0,0,0, +0,3,0,2,2,2,0,0,2,0,0,0,2,0,0,0,2,3,0,2,0,0,0,0,0,0,2,2,0,0,0,2, +0,1,2,0,0,0,1,2,2,1,0,0,0,2,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,2,1,2,0,2,2,0,2,0,0,2,0,0,0,0,1,2,1,0,2,1,0,0,0,0,0,0,0,0,0,0, +0,0,2,0,0,0,3,1,2,2,0,2,0,0,0,0,2,0,0,0,2,0,0,3,0,0,0,0,2,2,2,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,2,1,0,2,0,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,2, +0,2,2,0,0,2,2,2,2,2,0,1,2,0,0,0,2,2,0,1,0,2,0,0,2,2,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,3,0,0,2,0,0,0,0,0,0,0,0,2,0,2,0,0,0,0,2, +0,1,2,0,0,0,0,2,2,1,0,1,0,1,0,2,2,2,1,0,0,0,0,0,0,1,0,0,0,0,0,0, +0,2,0,1,2,0,0,0,0,0,0,0,0,0,0,2,0,0,2,2,0,0,0,0,1,0,0,0,0,0,0,2, +0,2,2,0,0,0,0,2,2,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,0, +0,2,2,2,2,0,0,0,3,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,0,0,1, +0,0,2,0,0,0,0,1,2,0,0,0,0,0,0,2,2,1,1,0,0,0,0,0,0,1,0,0,0,0,0,0, +0,2,0,2,2,2,0,0,2,0,0,0,0,0,0,0,2,2,2,0,0,0,2,0,0,0,0,0,0,0,0,2, +0,0,1,0,0,0,0,2,1,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0, +0,3,0,2,0,0,0,0,0,0,0,0,2,0,0,0,0,0,2,0,0,0,0,0,0,0,2,0,0,0,0,2, +0,0,2,0,0,0,0,2,2,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,2,0,2,2,1,0,0,0,0,0,0,2,0,0,2,0,2,2,2,0,0,0,0,0,0,2,0,0,0,0,2, +0,0,2,0,0,2,0,2,2,0,0,0,0,2,0,2,0,0,0,0,0,2,0,0,0,2,0,0,0,0,0,0, +0,0,3,0,0,0,2,2,0,2,2,0,0,0,0,0,2,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,2,0,0,0,0,0, +0,2,2,2,2,2,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1, +0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,2,2,0,0,0,0,0,2,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, +0,2,0,0,0,2,0,0,0,0,0,1,0,0,0,0,2,2,0,0,0,1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0,2,0,0,0, +0,2,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,2,0,2,0,0,0, +0,0,0,0,0,0,0,0,2,1,0,0,0,0,0,0,2,0,0,0,1,2,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +) + +Latin7GreekModel = { + 'char_to_order_map': Latin7_char_to_order_map, + 'precedence_matrix': GreekLangModel, + 'typical_positive_ratio': 0.982851, + 'keep_english_letter': False, + 'charset_name': "ISO-8859-7", + 'language': 'Greek', +} + +Win1253GreekModel = { + 'char_to_order_map': win1253_char_to_order_map, + 'precedence_matrix': GreekLangModel, + 'typical_positive_ratio': 0.982851, + 'keep_english_letter': False, + 'charset_name': "windows-1253", + 'language': 'Greek', +} diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langhebrewmodel.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langhebrewmodel.py new file mode 100644 index 00000000..58f4c875 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langhebrewmodel.py @@ -0,0 +1,200 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Universal charset detector code. +# +# The Initial Developer of the Original Code is +# Simon Montagu +# Portions created by the Initial Developer are Copyright (C) 2005 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# Shy Shalom - original C code +# Shoshannah Forbes - original C code (?) +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +# 255: Control characters that usually does not exist in any text +# 254: Carriage/Return +# 253: symbol (punctuation) that does not belong to word +# 252: 0 - 9 + +# Windows-1255 language model +# Character Mapping Table: +WIN1255_CHAR_TO_ORDER_MAP = ( +255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 +253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 +252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 +253, 69, 91, 79, 80, 92, 89, 97, 90, 68,111,112, 82, 73, 95, 85, # 40 + 78,121, 86, 71, 67,102,107, 84,114,103,115,253,253,253,253,253, # 50 +253, 50, 74, 60, 61, 42, 76, 70, 64, 53,105, 93, 56, 65, 54, 49, # 60 + 66,110, 51, 43, 44, 63, 81, 77, 98, 75,108,253,253,253,253,253, # 70 +124,202,203,204,205, 40, 58,206,207,208,209,210,211,212,213,214, +215, 83, 52, 47, 46, 72, 32, 94,216,113,217,109,218,219,220,221, + 34,116,222,118,100,223,224,117,119,104,125,225,226, 87, 99,227, +106,122,123,228, 55,229,230,101,231,232,120,233, 48, 39, 57,234, + 30, 59, 41, 88, 33, 37, 36, 31, 29, 35,235, 62, 28,236,126,237, +238, 38, 45,239,240,241,242,243,127,244,245,246,247,248,249,250, + 9, 8, 20, 16, 3, 2, 24, 14, 22, 1, 25, 15, 4, 11, 6, 23, + 12, 19, 13, 26, 18, 27, 21, 17, 7, 10, 5,251,252,128, 96,253, +) + +# Model Table: +# total sequences: 100% +# first 512 sequences: 98.4004% +# first 1024 sequences: 1.5981% +# rest sequences: 0.087% +# negative sequences: 0.0015% +HEBREW_LANG_MODEL = ( +0,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,2,3,2,1,2,0,1,0,0, +3,0,3,1,0,0,1,3,2,0,1,1,2,0,2,2,2,1,1,1,1,2,1,1,1,2,0,0,2,2,0,1, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2, +1,2,1,2,1,2,0,0,2,0,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2, +1,2,1,3,1,1,0,0,2,0,0,0,1,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,1,2,2,1,3, +1,2,1,1,2,2,0,0,2,2,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,1,0,1,1,0, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,2,2,2,3,2, +1,2,1,2,2,2,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,2,3,2,2,3,2,2,2,1,2,2,2,2, +1,2,1,1,2,2,0,1,2,0,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,0,2,2,2,2,2, +0,2,0,2,2,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,0,2,2,2, +0,2,1,2,2,2,0,0,2,1,0,0,0,0,1,0,1,0,0,0,0,0,0,2,0,0,0,0,0,0,1,0, +3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,2,1,2,3,2,2,2, +1,2,1,2,2,2,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,1,0, +3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,3,3,1,0,2,0,2, +0,2,1,2,2,2,0,0,1,2,0,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,2,0,0,1,0, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,2,3,2,2,3,2,1,2,1,1,1, +0,1,1,1,1,1,3,0,1,0,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,1,1,0,0,1,0,0,1,0,0,0,0, +0,0,1,0,0,0,0,0,2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2, +0,2,0,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +3,3,3,3,3,3,3,3,3,2,3,3,3,2,1,2,3,3,2,3,3,3,3,2,3,2,1,2,0,2,1,2, +0,2,0,2,2,2,0,0,1,2,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,1,0,0,1,0, +3,3,3,3,3,3,3,3,3,2,3,3,3,1,2,2,3,3,2,3,2,3,2,2,3,1,2,2,0,2,2,2, +0,2,1,2,2,2,0,0,1,2,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,1,0,0,1,0, +3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,2,2,2,3,3,3,3,1,3,2,2,2, +0,2,0,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,2,3,2,2,2,1,2,2,0,2,2,2,2, +0,2,0,2,2,2,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,1,3,2,3,3,2,3,3,2,2,1,2,2,2,2,2,2, +0,2,1,2,1,2,0,0,1,0,0,0,0,0,1,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0, +3,3,3,3,3,3,2,3,2,3,3,2,3,3,3,3,2,3,2,3,3,3,3,3,2,2,2,2,2,2,2,1, +0,2,0,1,2,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0, +3,3,3,3,3,3,3,3,3,2,1,2,3,3,3,3,3,3,3,2,3,2,3,2,1,2,3,0,2,1,2,2, +0,2,1,1,2,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,2,0, +3,3,3,3,3,3,3,3,3,2,3,3,3,3,2,1,3,1,2,2,2,1,2,3,3,1,2,1,2,2,2,2, +0,1,1,1,1,1,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,3,3,3,0,2,3,3,3,1,3,3,3,1,2,2,2,2,1,1,2,2,2,2,2,2, +0,2,0,1,1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0, +3,3,3,3,3,3,2,3,3,3,2,2,3,3,3,2,1,2,3,2,3,2,2,2,2,1,2,1,1,1,2,2, +0,2,1,1,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,1,0,0,0,0,0, +1,0,1,0,0,0,0,0,2,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,2,3,3,2,3,1,2,2,2,2,3,2,3,1,1,2,2,1,2,2,1,1,0,2,2,2,2, +0,1,0,1,2,2,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0, +3,0,0,1,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,2,2,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,0,1,0,1,0,1,1,0,1,1,0,0,0,1,1,0,1,1,1,0,0,0,0,0,0,1,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, +3,2,2,1,2,2,2,2,2,2,2,1,2,2,1,2,2,1,1,1,1,1,1,1,1,2,1,1,0,3,3,3, +0,3,0,2,2,2,2,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +2,2,2,3,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,2,1,2,2,2,1,1,1,2,0,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,2,2,2,2,2,2,0,2,2,0,0,0,0,0,0, +0,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,3,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,1,2,1,0,2,1,0, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,1,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,3,1,1,2,2,2,2,2,1,2,2,2,1,1,2,2,2,2,2,2,2,1,2,2,1,0,1,1,1,1,0, +0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,2,1,1,1,1,2,1,1,2,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0, +0,0,2,0,0,0,0,0,0,0,0,1,1,0,0,0,0,1,1,0,0,1,1,0,0,0,0,0,0,1,0,0, +2,1,1,2,2,2,2,2,2,2,2,2,2,2,1,2,2,2,2,2,1,2,1,2,1,1,1,1,0,0,0,0, +0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,2,1,2,2,2,2,2,2,2,2,2,2,1,2,1,2,1,1,2,1,1,1,2,1,2,1,2,0,1,0,1, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,3,1,2,2,2,1,2,2,2,2,2,2,2,2,1,2,1,1,1,1,1,1,2,1,2,1,1,0,1,0,1, +0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,1,2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,2,2, +0,2,0,1,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +3,0,0,0,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,1,1,1,1,1,1,1,0,1,1,0,1,0,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,2,0,1,1,1,0,1,0,0,0,1,1,0,1,1,0,0,0,0,0,1,1,0,0, +0,1,1,1,2,1,2,2,2,0,2,0,2,0,1,1,2,1,1,1,1,2,1,0,1,1,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,1,0,0,0,0,0,1,0,1,2,2,0,1,0,0,1,1,2,2,1,2,0,2,0,0,0,1,2,0,1, +2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,2,0,2,1,2,0,2,0,0,1,1,1,1,1,1,0,1,0,0,0,1,0,0,1, +2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,1,0,2,1,1,0,1,0,0,1,1,1,2,2,0,0,1,0,0,0,1,0,0,1, +1,1,2,1,0,1,1,1,0,1,0,1,1,1,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,2,2,1, +0,2,0,1,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,1,0,0,1,0,1,1,1,1,0,0,0,0,0,1,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,1,1,1,1,1,1,1,1,2,1,0,1,1,1,1,1,1,1,1,1,1,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,1,1,1,0,1,1,0,1,0,0,0,1,1,0,1, +2,0,1,0,1,0,1,0,0,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,1,1,0,1,0,0,1,1,2,1,1,2,0,1,0,0,0,1,1,0,1, +1,0,0,1,0,0,1,0,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,1,2,0,1,0,0,0,0,2,1,1,2,0,2,0,0,0,1,1,0,1, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,2,1,1,0,1,0,0,2,2,1,2,1,1,0,1,0,0,0,1,1,0,1, +2,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,2,2,0,0,0,0,0,1,1,0,1,0,0,1,0,0,0,0,1,0,1, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,2,2,0,0,0,0,2,1,1,1,0,2,1,1,0,0,0,2,1,0,1, +1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,1,2,0,1,0,0,1,1,0,2,1,1,0,1,0,0,0,1,1,0,1, +2,2,1,1,1,0,1,1,0,1,1,0,1,0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,2,1,1,0,1,0,0,1,1,0,1,2,1,0,2,0,0,0,1,1,0,1, +2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0, +0,1,0,0,2,0,2,1,1,0,1,0,1,0,0,1,0,0,0,0,1,0,0,0,1,0,0,0,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,1,0,0,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,1,0,1,1,2,0,1,0,0,1,1,1,0,1,0,0,1,0,0,0,1,0,0,1, +1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,1,0,1,1,0,0,1,0,0,2,1,1,1,1,1,0,1,0,0,0,0,1,0,1, +0,1,1,1,2,1,1,1,1,0,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,1,2,1,0,0,0,0,0,1,1,1,1,1,0,1,0,0,0,1,1,0,0, +) + +Win1255HebrewModel = { + 'char_to_order_map': WIN1255_CHAR_TO_ORDER_MAP, + 'precedence_matrix': HEBREW_LANG_MODEL, + 'typical_positive_ratio': 0.984004, + 'keep_english_letter': False, + 'charset_name': "windows-1255", + 'language': 'Hebrew', +} diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langhungarianmodel.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langhungarianmodel.py new file mode 100644 index 00000000..bb7c095e --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langhungarianmodel.py @@ -0,0 +1,225 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Communicator client code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +# 255: Control characters that usually does not exist in any text +# 254: Carriage/Return +# 253: symbol (punctuation) that does not belong to word +# 252: 0 - 9 + +# Character Mapping Table: +Latin2_HungarianCharToOrderMap = ( +255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 +253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 +252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 +253, 28, 40, 54, 45, 32, 50, 49, 38, 39, 53, 36, 41, 34, 35, 47, + 46, 71, 43, 33, 37, 57, 48, 64, 68, 55, 52,253,253,253,253,253, +253, 2, 18, 26, 17, 1, 27, 12, 20, 9, 22, 7, 6, 13, 4, 8, + 23, 67, 10, 5, 3, 21, 19, 65, 62, 16, 11,253,253,253,253,253, +159,160,161,162,163,164,165,166,167,168,169,170,171,172,173,174, +175,176,177,178,179,180,181,182,183,184,185,186,187,188,189,190, +191,192,193,194,195,196,197, 75,198,199,200,201,202,203,204,205, + 79,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220, +221, 51, 81,222, 78,223,224,225,226, 44,227,228,229, 61,230,231, +232,233,234, 58,235, 66, 59,236,237,238, 60, 69, 63,239,240,241, + 82, 14, 74,242, 70, 80,243, 72,244, 15, 83, 77, 84, 30, 76, 85, +245,246,247, 25, 73, 42, 24,248,249,250, 31, 56, 29,251,252,253, +) + +win1250HungarianCharToOrderMap = ( +255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 +253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 +252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 +253, 28, 40, 54, 45, 32, 50, 49, 38, 39, 53, 36, 41, 34, 35, 47, + 46, 72, 43, 33, 37, 57, 48, 64, 68, 55, 52,253,253,253,253,253, +253, 2, 18, 26, 17, 1, 27, 12, 20, 9, 22, 7, 6, 13, 4, 8, + 23, 67, 10, 5, 3, 21, 19, 65, 62, 16, 11,253,253,253,253,253, +161,162,163,164,165,166,167,168,169,170,171,172,173,174,175,176, +177,178,179,180, 78,181, 69,182,183,184,185,186,187,188,189,190, +191,192,193,194,195,196,197, 76,198,199,200,201,202,203,204,205, + 81,206,207,208,209,210,211,212,213,214,215,216,217,218,219,220, +221, 51, 83,222, 80,223,224,225,226, 44,227,228,229, 61,230,231, +232,233,234, 58,235, 66, 59,236,237,238, 60, 70, 63,239,240,241, + 84, 14, 75,242, 71, 82,243, 73,244, 15, 85, 79, 86, 30, 77, 87, +245,246,247, 25, 74, 42, 24,248,249,250, 31, 56, 29,251,252,253, +) + +# Model Table: +# total sequences: 100% +# first 512 sequences: 94.7368% +# first 1024 sequences:5.2623% +# rest sequences: 0.8894% +# negative sequences: 0.0009% +HungarianLangModel = ( +0,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3, +3,3,3,3,3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,2,2,3,3,1,1,2,2,2,2,2,1,2, +3,2,2,3,3,3,3,3,2,3,3,3,3,3,3,1,2,3,3,3,3,2,3,3,1,1,3,3,0,1,1,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0, +3,2,1,3,3,3,3,3,2,3,3,3,3,3,1,1,2,3,3,3,3,3,3,3,1,1,3,2,0,1,1,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +3,3,3,3,3,3,3,3,3,3,3,1,1,2,3,3,3,1,3,3,3,3,3,1,3,3,2,2,0,3,2,3, +0,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0, +3,3,3,3,3,3,2,3,3,3,2,3,3,2,3,3,3,3,3,2,3,3,2,2,3,2,3,2,0,3,2,2, +0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +3,3,3,3,3,3,2,3,3,3,3,3,2,3,3,3,1,2,3,2,2,3,1,2,3,3,2,2,0,3,3,3, +0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,3,2,3,3,3,3,2,3,3,3,3,0,2,3,2, +0,0,0,1,1,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,3,3,3,3,1,1,1,3,3,2,1,3,2,2,3,2,1,3,2,2,1,0,3,3,1, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +3,2,2,3,3,3,3,3,1,2,3,3,3,3,1,2,1,3,3,3,3,2,2,3,1,1,3,2,0,1,1,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +3,3,3,3,3,3,3,3,2,2,3,3,3,3,3,2,1,3,3,3,3,3,2,2,1,3,3,3,0,1,1,2, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,1,0, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,2,3,3,3,2,3,3,2,3,3,3,2,0,3,2,3, +0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,1,0, +3,3,3,3,3,3,2,3,3,3,2,3,2,3,3,3,1,3,2,2,2,3,1,1,3,3,1,1,0,3,3,2, +0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,2,3,3,3,2,3,2,3,3,3,2,3,3,3,3,3,1,2,3,2,2,0,2,2,2, +0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +3,3,3,2,2,2,3,1,3,3,2,2,1,3,3,3,1,1,3,1,2,3,2,3,2,2,2,1,0,2,2,2, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0, +3,1,1,3,3,3,3,3,1,2,3,3,3,3,1,2,1,3,3,3,2,2,3,2,1,0,3,2,0,1,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,1,1,3,3,3,3,3,1,2,3,3,3,3,1,1,0,3,3,3,3,0,2,3,0,0,2,1,0,1,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,2,2,3,3,2,2,2,2,3,3,0,1,2,3,2,3,2,2,3,2,1,2,0,2,2,2, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0, +3,3,3,3,3,3,1,2,3,3,3,2,1,2,3,3,2,2,2,3,2,3,3,1,3,3,1,1,0,2,3,2, +0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +3,3,3,1,2,2,2,2,3,3,3,1,1,1,3,3,1,1,3,1,1,3,2,1,2,3,1,1,0,2,2,2, +0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +3,3,3,2,1,2,1,1,3,3,1,1,1,1,3,3,1,1,2,2,1,2,1,1,2,2,1,1,0,2,2,1, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +3,3,3,1,1,2,1,1,3,3,1,0,1,1,3,3,2,0,1,1,2,3,1,0,2,2,1,0,0,1,3,2, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +3,2,1,3,3,3,3,3,1,2,3,2,3,3,2,1,1,3,2,3,2,1,2,2,0,1,2,1,0,0,1,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0, +3,3,3,3,2,2,2,2,3,1,2,2,1,1,3,3,0,3,2,1,2,3,2,1,3,3,1,1,0,2,1,3, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +3,3,3,2,2,2,3,2,3,3,3,2,1,1,3,3,1,1,1,2,2,3,2,3,2,2,2,1,0,2,2,1, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +1,0,0,3,3,3,3,3,0,0,3,3,2,3,0,0,0,2,3,3,1,0,1,2,0,0,1,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,1,2,3,3,3,3,3,1,2,3,3,2,2,1,1,0,3,3,2,2,1,2,2,1,0,2,2,0,1,1,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,2,2,1,3,1,2,3,3,2,2,1,1,2,2,1,1,1,1,3,2,1,1,1,1,2,1,0,1,2,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +2,3,3,1,1,1,1,1,3,3,3,0,1,1,3,3,1,1,1,1,1,2,2,0,3,1,1,2,0,2,1,1, +0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0, +3,1,0,1,2,1,2,2,0,1,2,3,1,2,0,0,0,2,1,1,1,1,1,2,0,0,1,1,0,0,0,0, +1,2,1,2,2,2,1,2,1,2,0,2,0,2,2,1,1,2,1,1,2,1,1,1,0,1,0,0,0,1,1,0, +1,1,1,2,3,2,3,3,0,1,2,2,3,1,0,1,0,2,1,2,2,0,1,1,0,0,1,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,3,3,2,2,1,0,0,3,2,3,2,0,0,0,1,1,3,0,0,1,1,0,0,2,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,1,1,2,2,3,3,1,0,1,3,2,3,1,1,1,0,1,1,1,1,1,3,1,0,0,2,2,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,1,1,1,2,2,2,1,0,1,2,3,3,2,0,0,0,2,1,1,1,2,1,1,1,0,1,1,1,0,0,0, +1,2,2,2,2,2,1,1,1,2,0,2,1,1,1,1,1,2,1,1,1,1,1,1,0,1,1,1,0,0,1,1, +3,2,2,1,0,0,1,1,2,2,0,3,0,1,2,1,1,0,0,1,1,1,0,1,1,1,1,0,2,1,1,1, +2,2,1,1,1,2,1,2,1,1,1,1,1,1,1,2,1,1,1,2,3,1,1,1,1,1,1,1,1,1,0,1, +2,3,3,0,1,0,0,0,3,3,1,0,0,1,2,2,1,0,0,0,0,2,0,0,1,1,1,0,2,1,1,1, +2,1,1,1,1,1,1,2,1,1,0,1,1,0,1,1,1,0,1,2,1,1,0,1,1,1,1,1,1,1,0,1, +2,3,3,0,1,0,0,0,2,2,0,0,0,0,1,2,2,0,0,0,0,1,0,0,1,1,0,0,2,0,1,0, +2,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,0,1, +3,2,2,0,1,0,1,0,2,3,2,0,0,1,2,2,1,0,0,1,1,1,0,0,2,1,0,1,2,2,1,1, +2,1,1,1,1,1,1,2,1,1,1,1,1,1,0,2,1,0,1,1,0,1,1,1,0,1,1,2,1,1,0,1, +2,2,2,0,0,1,0,0,2,2,1,1,0,0,2,1,1,0,0,0,1,2,0,0,2,1,0,0,2,1,1,1, +2,1,1,1,1,2,1,2,1,1,1,2,2,1,1,2,1,1,1,2,1,1,1,1,1,1,1,1,1,1,0,1, +1,2,3,0,0,0,1,0,3,2,1,0,0,1,2,1,1,0,0,0,0,2,1,0,1,1,0,0,2,1,2,1, +1,1,0,0,0,1,0,1,1,1,1,1,2,0,0,1,0,0,0,2,0,0,1,1,1,1,1,1,1,1,0,1, +3,0,0,2,1,2,2,1,0,0,2,1,2,2,0,0,0,2,1,1,1,0,1,1,0,0,1,1,2,0,0,0, +1,2,1,2,2,1,1,2,1,2,0,1,1,1,1,1,1,1,1,1,2,1,1,0,0,1,1,1,1,0,0,1, +1,3,2,0,0,0,1,0,2,2,2,0,0,0,2,2,1,0,0,0,0,3,1,1,1,1,0,0,2,1,1,1, +2,1,0,1,1,1,0,1,1,1,1,1,1,1,0,2,1,0,0,1,0,1,1,0,1,1,1,1,1,1,0,1, +2,3,2,0,0,0,1,0,2,2,0,0,0,0,2,1,1,0,0,0,0,2,1,0,1,1,0,0,2,1,1,0, +2,1,1,1,1,2,1,2,1,2,0,1,1,1,0,2,1,1,1,2,1,1,1,1,0,1,1,1,1,1,0,1, +3,1,1,2,2,2,3,2,1,1,2,2,1,1,0,1,0,2,2,1,1,1,1,1,0,0,1,1,0,1,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,2,2,0,0,0,0,0,2,2,0,0,0,0,2,2,1,0,0,0,1,1,0,0,1,2,0,0,2,1,1,1, +2,2,1,1,1,2,1,2,1,1,0,1,1,1,1,2,1,1,1,2,1,1,1,1,0,1,2,1,1,1,0,1, +1,0,0,1,2,3,2,1,0,0,2,0,1,1,0,0,0,1,1,1,1,0,1,1,0,0,1,0,0,0,0,0, +1,2,1,2,1,2,1,1,1,2,0,2,1,1,1,0,1,2,0,0,1,1,1,0,0,0,0,0,0,0,0,0, +2,3,2,0,0,0,0,0,1,1,2,1,0,0,1,1,1,0,0,0,0,2,0,0,1,1,0,0,2,1,1,1, +2,1,1,1,1,1,1,2,1,0,1,1,1,1,0,2,1,1,1,1,1,1,0,1,0,1,1,1,1,1,0,1, +1,2,2,0,1,1,1,0,2,2,2,0,0,0,3,2,1,0,0,0,1,1,0,0,1,1,0,1,1,1,0,0, +1,1,0,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,2,1,1,1,0,0,1,1,1,0,1,0,1, +2,1,0,2,1,1,2,2,1,1,2,1,1,1,0,0,0,1,1,0,1,1,1,1,0,0,1,1,1,0,0,0, +1,2,2,2,2,2,1,1,1,2,0,2,1,1,1,1,1,1,1,1,1,1,1,1,0,1,1,0,0,0,1,0, +1,2,3,0,0,0,1,0,2,2,0,0,0,0,2,2,0,0,0,0,0,1,0,0,1,0,0,0,2,0,1,0, +2,1,1,1,1,1,0,2,0,0,0,1,2,1,1,1,1,0,1,2,0,1,0,1,0,1,1,1,0,1,0,1, +2,2,2,0,0,0,1,0,2,1,2,0,0,0,1,1,2,0,0,0,0,1,0,0,1,1,0,0,2,1,0,1, +2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,0,1,1,1,1,1,0,1, +1,2,2,0,0,0,1,0,2,2,2,0,0,0,1,1,0,0,0,0,0,1,1,0,2,0,0,1,1,1,0,1, +1,0,1,1,1,1,1,1,0,1,1,1,1,0,0,1,0,0,1,1,0,1,0,1,1,1,1,1,0,0,0,1, +1,0,0,1,0,1,2,1,0,0,1,1,1,2,0,0,0,1,1,0,1,0,1,1,0,0,1,0,0,0,0,0, +0,2,1,2,1,1,1,1,1,2,0,2,0,1,1,0,1,2,1,0,1,1,1,0,0,0,0,0,0,1,0,0, +2,1,1,0,1,2,0,0,1,1,1,0,0,0,1,1,0,0,0,0,0,1,0,0,1,0,0,0,2,1,0,1, +2,2,1,1,1,1,1,2,1,1,0,1,1,1,1,2,1,1,1,2,1,1,0,1,0,1,1,1,1,1,0,1, +1,2,2,0,0,0,0,0,1,1,0,0,0,0,2,1,0,0,0,0,0,2,0,0,2,2,0,0,2,0,0,1, +2,1,1,1,1,1,1,1,0,1,1,0,1,1,0,1,0,0,0,1,1,1,1,0,0,1,1,1,1,0,0,1, +1,1,2,0,0,3,1,0,2,1,1,1,0,0,1,1,1,0,0,0,1,1,0,0,0,1,0,0,1,0,1,0, +1,2,1,0,1,1,1,2,1,1,0,1,1,1,1,1,0,0,0,1,1,1,1,1,0,1,0,0,0,1,0,0, +2,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,0,1,0,0,0,1,0,0,0,0,2,0,0,0, +2,1,1,1,1,1,1,1,1,1,0,1,1,1,1,1,1,1,1,1,2,1,1,0,0,1,1,1,1,1,0,1, +2,1,1,1,2,1,1,1,0,1,1,2,1,0,0,0,0,1,1,1,1,0,1,0,0,0,0,1,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,1,0,1,1,1,1,1,0,0,1,1,2,1,0,0,0,1,1,0,0,0,1,1,0,0,1,0,1,0,0,0, +1,2,1,1,1,1,1,1,1,1,0,1,0,1,1,1,1,1,1,0,1,1,1,0,0,0,0,0,0,1,0,0, +2,0,0,0,1,1,1,1,0,0,1,1,0,0,0,0,0,1,1,1,2,0,0,1,0,0,1,0,1,0,0,0, +0,1,1,1,1,1,1,1,1,2,0,1,1,1,1,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0, +1,0,0,1,1,1,1,1,0,0,2,1,0,1,0,0,0,1,0,1,0,0,0,0,0,0,1,0,0,0,0,0, +0,1,1,1,1,1,1,0,1,1,0,1,0,1,1,0,1,1,0,0,1,1,1,0,0,0,0,0,0,0,0,0, +1,0,0,1,1,1,0,0,0,0,1,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0, +0,1,1,1,1,1,0,0,1,1,0,1,0,1,0,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0, +0,0,0,1,0,0,0,0,0,0,1,1,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,1,1,1,0,1,0,0,1,1,0,1,0,1,1,0,1,1,1,0,1,1,1,0,0,0,0,0,0,0,0,0, +2,1,1,1,1,1,1,1,1,1,1,0,0,1,1,1,0,0,1,0,0,1,0,1,0,1,1,1,0,0,1,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,0,1,1,1,1,0,0,0,1,1,1,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0, +0,1,1,1,1,1,1,0,1,1,0,1,0,1,0,0,1,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0, +) + +Latin2HungarianModel = { + 'char_to_order_map': Latin2_HungarianCharToOrderMap, + 'precedence_matrix': HungarianLangModel, + 'typical_positive_ratio': 0.947368, + 'keep_english_letter': True, + 'charset_name': "ISO-8859-2", + 'language': 'Hungarian', +} + +Win1250HungarianModel = { + 'char_to_order_map': win1250HungarianCharToOrderMap, + 'precedence_matrix': HungarianLangModel, + 'typical_positive_ratio': 0.947368, + 'keep_english_letter': True, + 'charset_name': "windows-1250", + 'language': 'Hungarian', +} diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langthaimodel.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langthaimodel.py new file mode 100644 index 00000000..15f94c2d --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langthaimodel.py @@ -0,0 +1,199 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Communicator client code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +# 255: Control characters that usually does not exist in any text +# 254: Carriage/Return +# 253: symbol (punctuation) that does not belong to word +# 252: 0 - 9 + +# The following result for thai was collected from a limited sample (1M). + +# Character Mapping Table: +TIS620CharToOrderMap = ( +255,255,255,255,255,255,255,255,255,255,254,255,255,254,255,255, # 00 +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, # 10 +253,253,253,253,253,253,253,253,253,253,253,253,253,253,253,253, # 20 +252,252,252,252,252,252,252,252,252,252,253,253,253,253,253,253, # 30 +253,182,106,107,100,183,184,185,101, 94,186,187,108,109,110,111, # 40 +188,189,190, 89, 95,112,113,191,192,193,194,253,253,253,253,253, # 50 +253, 64, 72, 73,114, 74,115,116,102, 81,201,117, 90,103, 78, 82, # 60 + 96,202, 91, 79, 84,104,105, 97, 98, 92,203,253,253,253,253,253, # 70 +209,210,211,212,213, 88,214,215,216,217,218,219,220,118,221,222, +223,224, 99, 85, 83,225,226,227,228,229,230,231,232,233,234,235, +236, 5, 30,237, 24,238, 75, 8, 26, 52, 34, 51,119, 47, 58, 57, + 49, 53, 55, 43, 20, 19, 44, 14, 48, 3, 17, 25, 39, 62, 31, 54, + 45, 9, 16, 2, 61, 15,239, 12, 42, 46, 18, 21, 76, 4, 66, 63, + 22, 10, 1, 36, 23, 13, 40, 27, 32, 35, 86,240,241,242,243,244, + 11, 28, 41, 29, 33,245, 50, 37, 6, 7, 67, 77, 38, 93,246,247, + 68, 56, 59, 65, 69, 60, 70, 80, 71, 87,248,249,250,251,252,253, +) + +# Model Table: +# total sequences: 100% +# first 512 sequences: 92.6386% +# first 1024 sequences:7.3177% +# rest sequences: 1.0230% +# negative sequences: 0.0436% +ThaiLangModel = ( +0,1,3,3,3,3,0,0,3,3,0,3,3,0,3,3,3,3,3,3,3,3,0,0,3,3,3,0,3,3,3,3, +0,3,3,0,0,0,1,3,0,3,3,2,3,3,0,1,2,3,3,3,3,0,2,0,2,0,0,3,2,1,2,2, +3,0,3,3,2,3,0,0,3,3,0,3,3,0,3,3,3,3,3,3,3,3,3,0,3,2,3,0,2,2,2,3, +0,2,3,0,0,0,0,1,0,1,2,3,1,1,3,2,2,0,1,1,0,0,1,0,0,0,0,0,0,0,1,1, +3,3,3,2,3,3,3,3,3,3,3,3,3,3,3,2,2,2,2,2,2,2,3,3,2,3,2,3,3,2,2,2, +3,1,2,3,0,3,3,2,2,1,2,3,3,1,2,0,1,3,0,1,0,0,1,0,0,0,0,0,0,0,1,1, +3,3,2,2,3,3,3,3,1,2,3,3,3,3,3,2,2,2,2,3,3,2,2,3,3,2,2,3,2,3,2,2, +3,3,1,2,3,1,2,2,3,3,1,0,2,1,0,0,3,1,2,1,0,0,1,0,0,0,0,0,0,1,0,1, +3,3,3,3,3,3,2,2,3,3,3,3,2,3,2,2,3,3,2,2,3,2,2,2,2,1,1,3,1,2,1,1, +3,2,1,0,2,1,0,1,0,1,1,0,1,1,0,0,1,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0, +3,3,3,2,3,2,3,3,2,2,3,2,3,3,2,3,1,1,2,3,2,2,2,3,2,2,2,2,2,1,2,1, +2,2,1,1,3,3,2,1,0,1,2,2,0,1,3,0,0,0,1,1,0,0,0,0,0,2,3,0,0,2,1,1, +3,3,2,3,3,2,0,0,3,3,0,3,3,0,2,2,3,1,2,2,1,1,1,0,2,2,2,0,2,2,1,1, +0,2,1,0,2,0,0,2,0,1,0,0,1,0,0,0,1,1,1,1,0,0,0,0,0,0,0,0,0,0,1,0, +3,3,2,3,3,2,0,0,3,3,0,2,3,0,2,1,2,2,2,2,1,2,0,0,2,2,2,0,2,2,1,1, +0,2,1,0,2,0,0,2,0,1,1,0,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0, +3,3,2,3,2,3,2,0,2,2,1,3,2,1,3,2,1,2,3,2,2,3,0,2,3,2,2,1,2,2,2,2, +1,2,2,0,0,0,0,2,0,1,2,0,1,1,1,0,1,0,3,1,1,0,0,0,0,0,0,0,0,0,1,0, +3,3,2,3,3,2,3,2,2,2,3,2,2,3,2,2,1,2,3,2,2,3,1,3,2,2,2,3,2,2,2,3, +3,2,1,3,0,1,1,1,0,2,1,1,1,1,1,0,1,0,1,1,0,0,0,0,0,0,0,0,0,2,0,0, +1,0,0,3,0,3,3,3,3,3,0,0,3,0,2,2,3,3,3,3,3,0,0,0,1,1,3,0,0,0,0,2, +0,0,1,0,0,0,0,0,0,0,2,3,0,0,0,3,0,2,0,0,0,0,0,3,0,0,0,0,0,0,0,0, +2,0,3,3,3,3,0,0,2,3,0,0,3,0,3,3,2,3,3,3,3,3,0,0,3,3,3,0,0,0,3,3, +0,0,3,0,0,0,0,2,0,0,2,1,1,3,0,0,1,0,0,2,3,0,1,0,0,0,0,0,0,0,1,0, +3,3,3,3,2,3,3,3,3,3,3,3,1,2,1,3,3,2,2,1,2,2,2,3,1,1,2,0,2,1,2,1, +2,2,1,0,0,0,1,1,0,1,0,1,1,0,0,0,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0, +3,0,2,1,2,3,3,3,0,2,0,2,2,0,2,1,3,2,2,1,2,1,0,0,2,2,1,0,2,1,2,2, +0,1,1,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,2,1,3,3,1,1,3,0,2,3,1,1,3,2,1,1,2,0,2,2,3,2,1,1,1,1,1,2, +3,0,0,1,3,1,2,1,2,0,3,0,0,0,1,0,3,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0, +3,3,1,1,3,2,3,3,3,1,3,2,1,3,2,1,3,2,2,2,2,1,3,3,1,2,1,3,1,2,3,0, +2,1,1,3,2,2,2,1,2,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2, +3,3,2,3,2,3,3,2,3,2,3,2,3,3,2,1,0,3,2,2,2,1,2,2,2,1,2,2,1,2,1,1, +2,2,2,3,0,1,3,1,1,1,1,0,1,1,0,2,1,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,2,3,2,2,1,1,3,2,3,2,3,2,0,3,2,2,1,2,0,2,2,2,1,2,2,2,2,1, +3,2,1,2,2,1,0,2,0,1,0,0,1,1,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,1, +3,3,3,3,3,2,3,1,2,3,3,2,2,3,0,1,1,2,0,3,3,2,2,3,0,1,1,3,0,0,0,0, +3,1,0,3,3,0,2,0,2,1,0,0,3,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,2,3,2,3,3,0,1,3,1,1,2,1,2,1,1,3,1,1,0,2,3,1,1,1,1,1,1,1,1, +3,1,1,2,2,2,2,1,1,1,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, +3,2,2,1,1,2,1,3,3,2,3,2,2,3,2,2,3,1,2,2,1,2,0,3,2,1,2,2,2,2,2,1, +3,2,1,2,2,2,1,1,1,1,0,0,1,1,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,3,1,3,3,0,2,1,0,3,2,0,0,3,1,0,1,1,0,1,0,0,0,0,0,1, +1,0,0,1,0,3,2,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,0,2,2,2,3,0,0,1,3,0,3,2,0,3,2,2,3,3,3,3,3,1,0,2,2,2,0,2,2,1,2, +0,2,3,0,0,0,0,1,0,1,0,0,1,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, +3,0,2,3,1,3,3,2,3,3,0,3,3,0,3,2,2,3,2,3,3,3,0,0,2,2,3,0,1,1,1,3, +0,0,3,0,0,0,2,2,0,1,3,0,1,2,2,2,3,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1, +3,2,3,3,2,0,3,3,2,2,3,1,3,2,1,3,2,0,1,2,2,0,2,3,2,1,0,3,0,0,0,0, +3,0,0,2,3,1,3,0,0,3,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,1,3,2,2,2,1,2,0,1,3,1,1,3,1,3,0,0,2,1,1,1,1,2,1,1,1,0,2,1,0,1, +1,2,0,0,0,3,1,1,0,0,0,0,1,0,1,0,0,1,0,1,0,0,0,0,0,3,1,0,0,0,1,0, +3,3,3,3,2,2,2,2,2,1,3,1,1,1,2,0,1,1,2,1,2,1,3,2,0,0,3,1,1,1,1,1, +3,1,0,2,3,0,0,0,3,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,2,3,0,3,3,0,2,0,0,0,0,0,0,0,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,2,3,1,3,0,0,1,2,0,0,2,0,3,3,2,3,3,3,2,3,0,0,2,2,2,0,0,0,2,2, +0,0,1,0,0,0,0,3,0,0,0,0,2,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0, +0,0,0,3,0,2,0,0,0,0,0,0,0,0,0,0,1,2,3,1,3,3,0,0,1,0,3,0,0,0,0,0, +0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,1,2,3,1,2,3,1,0,3,0,2,2,1,0,2,1,1,2,0,1,0,0,1,1,1,1,0,1,0,0, +1,0,0,0,0,1,1,0,3,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,2,1,0,1,1,1,3,1,2,2,2,2,2,2,1,1,1,1,0,3,1,0,1,3,1,1,1,1, +1,1,0,2,0,1,3,1,1,0,0,1,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,1, +3,0,2,2,1,3,3,2,3,3,0,1,1,0,2,2,1,2,1,3,3,1,0,0,3,2,0,0,0,0,2,1, +0,1,0,0,0,0,1,2,0,1,1,3,1,1,2,2,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0, +0,0,3,0,0,1,0,0,0,3,0,0,3,0,3,1,0,1,1,1,3,2,0,0,0,3,0,0,0,0,2,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,2,0,0,0,0,0,0,0,0,0, +3,3,1,3,2,1,3,3,1,2,2,0,1,2,1,0,1,2,0,0,0,0,0,3,0,0,0,3,0,0,0,0, +3,0,0,1,1,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,0,1,2,0,3,3,3,2,2,0,1,1,0,1,3,0,0,0,2,2,0,0,0,0,3,1,0,1,0,0,0, +0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,0,2,3,1,2,0,0,2,1,0,3,1,0,1,2,0,1,1,1,1,3,0,0,3,1,1,0,2,2,1,1, +0,2,0,0,0,0,0,1,0,1,0,0,1,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,0,0,3,1,2,0,0,2,2,0,1,2,0,1,0,1,3,1,2,1,0,0,0,2,0,3,0,0,0,1,0, +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,0,1,1,2,2,0,0,0,2,0,2,1,0,1,1,0,1,1,1,2,1,0,0,1,1,1,0,2,1,1,1, +0,1,1,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,1,0,1, +0,0,0,2,0,1,3,1,1,1,1,0,0,0,0,3,2,0,1,0,0,0,1,2,0,0,0,1,0,0,0,0, +0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,3,3,3,3,1,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,0,2,3,2,2,0,0,0,1,0,0,0,0,2,3,2,1,2,2,3,0,0,0,2,3,1,0,0,0,1,1, +0,0,1,0,0,0,0,0,0,0,1,0,0,1,0,0,0,0,0,1,1,0,1,0,0,0,0,0,0,0,0,0, +3,3,2,2,0,1,0,0,0,0,2,0,2,0,1,0,0,0,1,1,0,0,0,2,1,0,1,0,1,1,0,0, +0,1,0,2,0,0,1,0,3,0,1,0,0,0,2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,1,0,0,1,0,0,0,0,0,1,1,2,0,0,0,0,1,0,0,1,3,1,0,0,0,0,1,1,0,0, +0,1,0,0,0,0,3,0,0,0,0,0,0,3,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0, +3,3,1,1,1,1,2,3,0,0,2,1,1,1,1,1,0,2,1,1,0,0,0,2,1,0,1,2,1,1,0,1, +2,1,0,3,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,3,1,0,0,0,0,0,0,0,3,0,0,0,3,0,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,1, +0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,2,0,0,0,0,0,0,1,2,1,0,1,1,0,2,0,0,1,0,0,2,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,2,0,0,0,1,3,0,1,0,0,0,2,0,0,0,0,0,0,0,1,2,0,0,0,0,0, +3,3,0,0,1,1,2,0,0,1,2,1,0,1,1,1,0,1,1,0,0,2,1,1,0,1,0,0,1,1,1,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,2,2,1,0,0,0,0,1,0,0,0,0,3,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0, +2,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,3,0,0,1,1,0,0,0,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +1,1,0,1,2,0,1,2,0,0,1,1,0,2,0,1,0,0,1,0,0,0,0,1,0,0,0,2,0,0,0,0, +1,0,0,1,0,1,1,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,1,0,0,0,0,0,0,0,1,1,0,1,1,0,2,1,3,0,0,0,0,1,1,0,0,0,0,0,0,0,3, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,0,1,0,1,0,0,2,0,0,2,0,0,1,1,2,0,0,1,1,0,0,0,1,0,0,0,1,1,0,0,0, +1,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0, +1,0,0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,1,0,0,0, +2,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,3,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,0,0,0,0,2,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,1,3,0,0,0, +2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,1,0,0,0,0, +1,0,0,0,0,0,0,0,0,1,0,0,0,0,2,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,1,0,0,2,1,0,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +) + +TIS620ThaiModel = { + 'char_to_order_map': TIS620CharToOrderMap, + 'precedence_matrix': ThaiLangModel, + 'typical_positive_ratio': 0.926386, + 'keep_english_letter': False, + 'charset_name': "TIS-620", + 'language': 'Thai', +} diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langturkishmodel.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langturkishmodel.py new file mode 100644 index 00000000..a427a457 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/langturkishmodel.py @@ -0,0 +1,193 @@ +# -*- coding: utf-8 -*- +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Communicator client code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# Özgür Baskın - Turkish Language Model +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +# 255: Control characters that usually does not exist in any text +# 254: Carriage/Return +# 253: symbol (punctuation) that does not belong to word +# 252: 0 - 9 + +# Character Mapping Table: +Latin5_TurkishCharToOrderMap = ( +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255, +255, 23, 37, 47, 39, 29, 52, 36, 45, 53, 60, 16, 49, 20, 46, 42, + 48, 69, 44, 35, 31, 51, 38, 62, 65, 43, 56,255,255,255,255,255, +255, 1, 21, 28, 12, 2, 18, 27, 25, 3, 24, 10, 5, 13, 4, 15, + 26, 64, 7, 8, 9, 14, 32, 57, 58, 11, 22,255,255,255,255,255, +180,179,178,177,176,175,174,173,172,171,170,169,168,167,166,165, +164,163,162,161,160,159,101,158,157,156,155,154,153,152,151,106, +150,149,148,147,146,145,144,100,143,142,141,140,139,138,137,136, + 94, 80, 93,135,105,134,133, 63,132,131,130,129,128,127,126,125, +124,104, 73, 99, 79, 85,123, 54,122, 98, 92,121,120, 91,103,119, + 68,118,117, 97,116,115, 50, 90,114,113,112,111, 55, 41, 40, 86, + 89, 70, 59, 78, 71, 82, 88, 33, 77, 66, 84, 83,110, 75, 61, 96, + 30, 67,109, 74, 87,102, 34, 95, 81,108, 76, 72, 17, 6, 19,107, +) + +TurkishLangModel = ( +3,2,3,3,3,1,3,3,3,3,3,3,3,3,2,1,1,3,3,1,3,3,0,3,3,3,3,3,0,3,1,3, +3,2,1,0,0,1,1,0,0,0,1,0,0,1,1,1,1,0,0,0,0,0,0,0,2,2,0,0,1,0,0,1, +3,2,2,3,3,0,3,3,3,3,3,3,3,2,3,1,0,3,3,1,3,3,0,3,3,3,3,3,0,3,0,3, +3,1,1,0,1,0,1,0,0,0,0,0,0,1,1,1,1,0,0,0,0,0,0,0,2,2,0,0,0,1,0,1, +3,3,2,3,3,0,3,3,3,3,3,3,3,2,3,1,1,3,3,0,3,3,1,2,3,3,3,3,0,3,0,3, +3,1,1,0,0,0,1,0,0,0,0,1,1,0,1,2,1,0,0,0,1,0,0,0,0,2,0,0,0,0,0,1, +3,3,3,3,3,3,2,3,3,3,3,3,3,3,3,1,3,3,2,0,3,2,1,2,2,1,3,3,0,0,0,2, +2,2,0,1,0,0,1,0,0,1,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,1,0,1,0,0,1, +3,3,3,2,3,3,1,2,3,3,3,3,3,3,3,1,3,2,1,0,3,2,0,1,2,3,3,2,1,0,0,2, +2,1,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,2,0,2,0,0,0, +1,0,1,3,3,1,3,3,3,3,3,3,3,1,2,0,0,2,3,0,2,3,0,0,2,2,2,3,0,3,0,1, +2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0,3,3,3,0,3,2,0,2,3,2,3,3,1,0,0,2, +3,2,0,0,1,0,0,0,0,0,0,2,0,0,1,0,0,0,0,0,0,0,0,0,1,1,1,0,2,0,0,1, +3,3,3,2,3,3,2,3,3,3,3,2,3,3,3,0,3,3,0,0,2,1,0,0,2,3,2,2,0,0,0,2, +2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,0,0,1,0,1,0,2,0,0,1, +3,3,3,2,3,3,3,3,3,3,3,2,3,3,3,0,3,2,0,1,3,2,1,1,3,2,3,2,1,0,0,2, +2,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0, +3,3,3,2,3,3,3,3,3,3,3,2,3,3,3,0,3,2,2,0,2,3,0,0,2,2,2,2,0,0,0,2, +3,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,1,0,0,0, +3,3,3,3,3,3,3,2,2,2,2,3,2,3,3,0,3,3,1,1,2,2,0,0,2,2,3,2,0,0,1,3, +0,3,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0,1, +3,3,3,2,3,3,3,2,1,2,2,3,2,3,3,0,3,2,0,0,1,1,0,1,1,2,1,2,0,0,0,1, +0,3,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,1,0,0,0, +3,3,3,2,3,3,2,3,2,2,2,3,3,3,3,1,3,1,1,0,3,2,1,1,3,3,2,3,1,0,0,1, +1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,2,0,0,1, +3,2,2,3,3,0,3,3,3,3,3,3,3,2,2,1,0,3,3,1,3,3,0,1,3,3,2,3,0,3,0,3, +2,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, +2,2,2,3,3,0,3,3,3,3,3,3,3,3,3,0,0,3,2,0,3,3,0,3,2,3,3,3,0,3,1,3, +2,0,0,0,0,0,0,0,0,0,0,1,0,1,2,0,1,0,0,0,0,0,0,0,2,2,0,0,1,0,0,1, +3,3,3,1,2,3,3,1,0,0,1,0,0,3,3,2,3,0,0,2,0,0,2,0,2,0,0,0,2,0,2,0, +0,3,1,0,1,0,0,0,2,2,1,0,1,1,2,1,2,2,2,0,2,1,1,0,0,0,2,0,0,0,0,0, +1,2,1,3,3,0,3,3,3,3,3,2,3,0,0,0,0,2,3,0,2,3,1,0,2,3,1,3,0,3,0,2, +3,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,1,3,3,2,2,3,2,2,0,1,2,3,0,1,2,1,0,1,0,0,0,1,0,2,2,0,0,0,1, +1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,1,1,0,0,1,0,0,0, +3,3,3,1,3,3,1,1,3,3,1,1,3,3,1,0,2,1,2,0,2,1,0,0,1,1,2,1,0,0,0,2, +2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,1,0,2,1,3,0,0,2,0,0,3,3,0,3,0,0,1,0,1,2,0,0,1,1,2,2,0,1,0, +0,1,2,1,1,0,1,0,1,1,1,1,1,0,1,1,1,2,2,1,2,0,1,0,0,0,0,0,0,1,0,0, +3,3,3,2,3,2,3,3,0,2,2,2,3,3,3,0,3,0,0,0,2,2,0,1,2,1,1,1,0,0,0,1, +0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +3,3,3,3,3,3,2,1,2,2,3,3,3,3,2,0,2,0,0,0,2,2,0,0,2,1,3,3,0,0,1,1, +1,1,0,0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0, +1,1,2,3,3,0,3,3,3,3,3,3,2,2,0,2,0,2,3,2,3,2,2,2,2,2,2,2,1,3,2,3, +2,0,2,1,2,2,2,2,1,1,2,2,1,2,2,1,2,0,0,2,1,1,0,2,1,0,0,1,0,0,0,1, +2,3,3,1,1,1,0,1,1,1,2,3,2,1,1,0,0,0,0,0,0,0,0,0,0,1,0,1,0,0,0,0, +0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,2,2,2,3,2,3,2,2,1,3,3,3,0,2,1,2,0,2,1,0,0,1,1,1,1,1,0,0,1, +2,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,2,0,1,0,0,0, +3,3,3,2,3,3,3,3,3,2,3,1,2,3,3,1,2,0,0,0,0,0,0,0,3,2,1,1,0,0,0,0, +2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0, +3,3,3,2,2,3,3,2,1,1,1,1,1,3,3,0,3,1,0,0,1,1,0,0,3,1,2,1,0,0,0,0, +0,3,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0, +3,3,3,2,2,3,2,2,2,3,2,1,1,3,3,0,3,0,0,0,0,1,0,0,3,1,1,2,0,0,0,1, +1,0,0,1,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1, +1,1,1,3,3,0,3,3,3,3,3,2,2,2,1,2,0,2,1,2,2,1,1,0,1,2,2,2,2,2,2,2, +0,0,2,1,2,1,2,1,0,1,1,3,1,2,1,1,2,0,0,2,0,1,0,1,0,1,0,0,0,1,0,1, +3,3,3,1,3,3,3,0,1,1,0,2,2,3,1,0,3,0,0,0,1,0,0,0,1,0,0,1,0,1,0,0, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,2,0,0,2,2,1,0,0,1,0,0,3,3,1,3,0,0,1,1,0,2,0,3,0,0,0,2,0,1,1, +0,1,2,0,1,2,2,0,2,2,2,2,1,0,2,1,1,0,2,0,2,1,2,0,0,0,0,0,0,0,0,0, +3,3,3,1,3,2,3,2,0,2,2,2,1,3,2,0,2,1,2,0,1,2,0,0,1,0,2,2,0,0,0,2, +1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,0,1,0,0,0, +3,3,3,0,3,3,1,1,2,3,1,0,3,2,3,0,3,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0, +1,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,3,3,0,3,3,2,3,3,2,2,0,0,0,0,1,2,0,1,3,0,0,0,3,1,1,0,3,0,2, +2,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,1,2,2,1,0,3,1,1,1,1,3,3,2,3,0,0,1,0,1,2,0,2,2,0,2,2,0,2,1, +0,2,2,1,1,1,1,0,2,1,1,0,1,1,1,1,2,1,2,1,2,0,1,0,1,0,0,0,0,0,0,0, +3,3,3,0,1,1,3,0,0,1,1,0,0,2,2,0,3,0,0,1,1,0,1,0,0,0,0,0,2,0,0,0, +0,3,1,0,1,0,1,0,2,0,0,1,0,1,0,1,1,1,2,1,1,0,2,0,0,0,0,0,0,0,0,0, +3,3,3,0,2,0,2,0,1,1,1,0,0,3,3,0,2,0,0,1,0,0,2,1,1,0,1,0,1,0,1,0, +0,2,0,1,2,0,2,0,2,1,1,0,1,0,2,1,1,0,2,1,1,0,1,0,0,0,1,1,0,0,0,0, +3,2,3,0,1,0,0,0,0,0,0,0,0,1,2,0,1,0,0,1,0,0,1,0,0,0,0,0,2,0,0,0, +0,0,1,1,0,0,1,0,1,0,0,1,0,0,0,2,1,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,0,0,2,3,0,0,1,0,1,0,2,3,2,3,0,0,1,3,0,2,1,0,0,0,0,2,0,1,0, +0,2,1,0,0,1,1,0,2,1,0,0,1,0,0,1,1,0,1,1,2,0,1,0,0,0,0,1,0,0,0,0, +3,2,2,0,0,1,1,0,0,0,0,0,0,3,1,1,1,0,0,0,0,0,1,0,0,0,0,0,2,0,1,0, +0,1,0,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,3,3,0,2,3,2,2,1,2,2,1,1,2,0,1,3,2,2,2,0,0,2,2,0,0,0,1,2,1, +3,0,2,1,1,0,1,1,1,0,1,2,2,2,1,1,2,0,0,0,0,1,0,1,1,0,0,0,0,0,0,0, +0,1,1,2,3,0,3,3,3,2,2,2,2,1,0,1,0,1,0,1,2,2,0,0,2,2,1,3,1,1,2,1, +0,0,1,1,2,0,1,1,0,0,1,2,0,2,1,1,2,0,0,1,0,0,0,1,0,1,0,1,0,0,0,0, +3,3,2,0,0,3,1,0,0,0,0,0,0,3,2,1,2,0,0,1,0,0,2,0,0,0,0,0,2,0,1,0, +0,2,1,1,0,0,1,0,1,2,0,0,1,1,0,0,2,1,1,1,1,0,2,0,0,0,0,0,0,0,0,0, +3,3,2,0,0,1,0,0,0,0,1,0,0,3,3,2,2,0,0,1,0,0,2,0,1,0,0,0,2,0,1,0, +0,0,1,1,0,0,2,0,2,1,0,0,1,1,2,1,2,0,2,1,2,1,1,1,0,0,1,1,0,0,0,0, +3,3,2,0,0,2,2,0,0,0,1,1,0,2,2,1,3,1,0,1,0,1,2,0,0,0,0,0,1,0,1,0, +0,1,1,0,0,0,0,0,1,0,0,1,0,0,0,1,1,0,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,2,0,0,0,1,0,0,1,0,0,2,3,1,2,0,0,1,0,0,2,0,0,0,1,0,2,0,2,0, +0,1,1,2,2,1,2,0,2,1,1,0,0,1,1,0,1,1,1,1,2,1,1,0,0,0,0,0,0,0,0,0, +3,3,3,0,2,1,2,1,0,0,1,1,0,3,3,1,2,0,0,1,0,0,2,0,2,0,1,1,2,0,0,0, +0,0,1,1,1,1,2,0,1,1,0,1,1,1,1,0,0,0,1,1,1,0,1,0,0,0,1,0,0,0,0,0, +3,3,3,0,2,2,3,2,0,0,1,0,0,2,3,1,0,0,0,0,0,0,2,0,2,0,0,0,2,0,0,0, +0,1,1,0,0,0,1,0,0,1,0,1,1,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0,0,0, +3,2,3,0,0,0,0,0,0,0,1,0,0,2,2,2,2,0,0,1,0,0,2,0,0,0,0,0,2,0,1,0, +0,0,2,1,1,0,1,0,2,1,1,0,0,1,1,2,1,0,2,0,2,0,1,0,0,0,2,0,0,0,0,0, +0,0,0,2,2,0,2,1,1,1,1,2,2,0,0,1,0,1,0,0,1,3,0,0,0,0,1,0,0,2,1,0, +0,0,1,0,1,0,0,0,0,0,2,1,0,1,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0, +2,0,0,2,3,0,2,3,1,2,2,0,2,0,0,2,0,2,1,1,1,2,1,0,0,1,2,1,1,2,1,0, +1,0,2,0,1,0,1,1,0,0,2,2,1,2,1,1,2,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0, +3,3,3,0,2,1,2,0,0,0,1,0,0,3,2,0,1,0,0,1,0,0,2,0,0,0,1,2,1,0,1,0, +0,0,0,0,1,0,1,0,0,1,0,0,0,0,1,0,1,0,1,1,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,2,2,0,2,2,1,1,0,1,1,1,1,1,0,0,1,2,1,1,1,0,1,0,0,0,1,1,1,1, +0,0,2,1,0,1,1,1,0,1,1,2,1,2,1,1,2,0,1,1,2,1,0,2,0,0,0,0,0,0,0,0, +3,2,2,0,0,2,0,0,0,0,0,0,0,2,2,0,2,0,0,1,0,0,2,0,0,0,0,0,2,0,0,0, +0,2,1,0,0,0,0,0,1,0,0,0,0,0,0,0,1,0,0,0,1,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,3,2,0,2,2,0,1,1,0,1,0,0,1,0,0,0,1,0,1,0,0,0,0,0,1,0,0,0,0, +2,0,1,0,1,0,1,1,0,0,1,2,0,1,0,1,1,0,0,1,0,1,0,2,0,0,0,0,0,0,0,0, +2,2,2,0,1,1,0,0,0,1,0,0,0,1,2,0,1,0,0,1,0,0,1,0,0,0,0,1,2,0,1,0, +0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,1,0,1,0,2,0,0,0,0,0,0,0,0,0,0,0, +2,2,2,2,1,0,1,1,1,0,0,0,0,1,2,0,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0, +1,1,2,0,1,0,0,0,1,0,1,0,0,0,1,0,0,1,0,0,0,0,0,0,0,1,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,2,0,0,0,0,0,1, +0,0,1,2,2,0,2,1,2,1,1,2,2,0,0,0,0,1,0,0,1,1,0,0,2,0,0,0,0,1,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0, +2,2,2,0,0,0,1,0,0,0,0,0,0,2,2,1,1,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0, +0,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,1,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +2,2,2,0,1,0,1,0,0,0,0,0,0,1,1,0,0,0,0,0,0,0,1,0,1,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,1,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,1,0,0,0,0,0,0,0,0,0,0,2,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0, +) + +Latin5TurkishModel = { + 'char_to_order_map': Latin5_TurkishCharToOrderMap, + 'precedence_matrix': TurkishLangModel, + 'typical_positive_ratio': 0.970290, + 'keep_english_letter': True, + 'charset_name': "ISO-8859-9", + 'language': 'Turkish', +} diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/latin1prober.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/latin1prober.py new file mode 100644 index 00000000..7d1e8c20 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/latin1prober.py @@ -0,0 +1,145 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Universal charset detector code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 2001 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# Shy Shalom - original C code +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +from .charsetprober import CharSetProber +from .enums import ProbingState + +FREQ_CAT_NUM = 4 + +UDF = 0 # undefined +OTH = 1 # other +ASC = 2 # ascii capital letter +ASS = 3 # ascii small letter +ACV = 4 # accent capital vowel +ACO = 5 # accent capital other +ASV = 6 # accent small vowel +ASO = 7 # accent small other +CLASS_NUM = 8 # total classes + +Latin1_CharToClass = ( + OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 00 - 07 + OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 08 - 0F + OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 10 - 17 + OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 18 - 1F + OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 20 - 27 + OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 28 - 2F + OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 30 - 37 + OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 38 - 3F + OTH, ASC, ASC, ASC, ASC, ASC, ASC, ASC, # 40 - 47 + ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, # 48 - 4F + ASC, ASC, ASC, ASC, ASC, ASC, ASC, ASC, # 50 - 57 + ASC, ASC, ASC, OTH, OTH, OTH, OTH, OTH, # 58 - 5F + OTH, ASS, ASS, ASS, ASS, ASS, ASS, ASS, # 60 - 67 + ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, # 68 - 6F + ASS, ASS, ASS, ASS, ASS, ASS, ASS, ASS, # 70 - 77 + ASS, ASS, ASS, OTH, OTH, OTH, OTH, OTH, # 78 - 7F + OTH, UDF, OTH, ASO, OTH, OTH, OTH, OTH, # 80 - 87 + OTH, OTH, ACO, OTH, ACO, UDF, ACO, UDF, # 88 - 8F + UDF, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # 90 - 97 + OTH, OTH, ASO, OTH, ASO, UDF, ASO, ACO, # 98 - 9F + OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # A0 - A7 + OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # A8 - AF + OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # B0 - B7 + OTH, OTH, OTH, OTH, OTH, OTH, OTH, OTH, # B8 - BF + ACV, ACV, ACV, ACV, ACV, ACV, ACO, ACO, # C0 - C7 + ACV, ACV, ACV, ACV, ACV, ACV, ACV, ACV, # C8 - CF + ACO, ACO, ACV, ACV, ACV, ACV, ACV, OTH, # D0 - D7 + ACV, ACV, ACV, ACV, ACV, ACO, ACO, ACO, # D8 - DF + ASV, ASV, ASV, ASV, ASV, ASV, ASO, ASO, # E0 - E7 + ASV, ASV, ASV, ASV, ASV, ASV, ASV, ASV, # E8 - EF + ASO, ASO, ASV, ASV, ASV, ASV, ASV, OTH, # F0 - F7 + ASV, ASV, ASV, ASV, ASV, ASO, ASO, ASO, # F8 - FF +) + +# 0 : illegal +# 1 : very unlikely +# 2 : normal +# 3 : very likely +Latin1ClassModel = ( +# UDF OTH ASC ASS ACV ACO ASV ASO + 0, 0, 0, 0, 0, 0, 0, 0, # UDF + 0, 3, 3, 3, 3, 3, 3, 3, # OTH + 0, 3, 3, 3, 3, 3, 3, 3, # ASC + 0, 3, 3, 3, 1, 1, 3, 3, # ASS + 0, 3, 3, 3, 1, 2, 1, 2, # ACV + 0, 3, 3, 3, 3, 3, 3, 3, # ACO + 0, 3, 1, 3, 1, 1, 1, 3, # ASV + 0, 3, 1, 3, 1, 1, 3, 3, # ASO +) + + +class Latin1Prober(CharSetProber): + def __init__(self): + super(Latin1Prober, self).__init__() + self._last_char_class = None + self._freq_counter = None + self.reset() + + def reset(self): + self._last_char_class = OTH + self._freq_counter = [0] * FREQ_CAT_NUM + CharSetProber.reset(self) + + @property + def charset_name(self): + return "ISO-8859-1" + + @property + def language(self): + return "" + + def feed(self, byte_str): + byte_str = self.filter_with_english_letters(byte_str) + for c in byte_str: + char_class = Latin1_CharToClass[c] + freq = Latin1ClassModel[(self._last_char_class * CLASS_NUM) + + char_class] + if freq == 0: + self._state = ProbingState.NOT_ME + break + self._freq_counter[freq] += 1 + self._last_char_class = char_class + + return self.state + + def get_confidence(self): + if self.state == ProbingState.NOT_ME: + return 0.01 + + total = sum(self._freq_counter) + if total < 0.01: + confidence = 0.0 + else: + confidence = ((self._freq_counter[3] - self._freq_counter[1] * 20.0) + / total) + if confidence < 0.0: + confidence = 0.0 + # lower the confidence of latin1 so that other more accurate + # detector can take priority. + confidence = confidence * 0.73 + return confidence diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/mbcharsetprober.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/mbcharsetprober.py new file mode 100644 index 00000000..6256ecfd --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/mbcharsetprober.py @@ -0,0 +1,91 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Universal charset detector code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 2001 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# Shy Shalom - original C code +# Proofpoint, Inc. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +from .charsetprober import CharSetProber +from .enums import ProbingState, MachineState + + +class MultiByteCharSetProber(CharSetProber): + """ + MultiByteCharSetProber + """ + + def __init__(self, lang_filter=None): + super(MultiByteCharSetProber, self).__init__(lang_filter=lang_filter) + self.distribution_analyzer = None + self.coding_sm = None + self._last_char = [0, 0] + + def reset(self): + super(MultiByteCharSetProber, self).reset() + if self.coding_sm: + self.coding_sm.reset() + if self.distribution_analyzer: + self.distribution_analyzer.reset() + self._last_char = [0, 0] + + @property + def charset_name(self): + raise NotImplementedError + + @property + def language(self): + raise NotImplementedError + + def feed(self, byte_str): + for i in range(len(byte_str)): + coding_state = self.coding_sm.next_state(byte_str[i]) + if coding_state == MachineState.ERROR: + self.logger.debug('%s %s prober hit error at byte %s', + self.charset_name, self.language, i) + self._state = ProbingState.NOT_ME + break + elif coding_state == MachineState.ITS_ME: + self._state = ProbingState.FOUND_IT + break + elif coding_state == MachineState.START: + char_len = self.coding_sm.get_current_charlen() + if i == 0: + self._last_char[1] = byte_str[0] + self.distribution_analyzer.feed(self._last_char, char_len) + else: + self.distribution_analyzer.feed(byte_str[i - 1:i + 1], + char_len) + + self._last_char[0] = byte_str[-1] + + if self.state == ProbingState.DETECTING: + if (self.distribution_analyzer.got_enough_data() and + (self.get_confidence() > self.SHORTCUT_THRESHOLD)): + self._state = ProbingState.FOUND_IT + + return self.state + + def get_confidence(self): + return self.distribution_analyzer.get_confidence() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/mbcsgroupprober.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/mbcsgroupprober.py new file mode 100644 index 00000000..530abe75 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/mbcsgroupprober.py @@ -0,0 +1,54 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Universal charset detector code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 2001 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# Shy Shalom - original C code +# Proofpoint, Inc. +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +from .charsetgroupprober import CharSetGroupProber +from .utf8prober import UTF8Prober +from .sjisprober import SJISProber +from .eucjpprober import EUCJPProber +from .gb2312prober import GB2312Prober +from .euckrprober import EUCKRProber +from .cp949prober import CP949Prober +from .big5prober import Big5Prober +from .euctwprober import EUCTWProber + + +class MBCSGroupProber(CharSetGroupProber): + def __init__(self, lang_filter=None): + super(MBCSGroupProber, self).__init__(lang_filter=lang_filter) + self.probers = [ + UTF8Prober(), + SJISProber(), + EUCJPProber(), + GB2312Prober(), + EUCKRProber(), + CP949Prober(), + Big5Prober(), + EUCTWProber() + ] + self.reset() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/mbcssm.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/mbcssm.py new file mode 100644 index 00000000..8360d0f2 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/mbcssm.py @@ -0,0 +1,572 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +from .enums import MachineState + +# BIG5 + +BIG5_CLS = ( + 1,1,1,1,1,1,1,1, # 00 - 07 #allow 0x00 as legal value + 1,1,1,1,1,1,0,0, # 08 - 0f + 1,1,1,1,1,1,1,1, # 10 - 17 + 1,1,1,0,1,1,1,1, # 18 - 1f + 1,1,1,1,1,1,1,1, # 20 - 27 + 1,1,1,1,1,1,1,1, # 28 - 2f + 1,1,1,1,1,1,1,1, # 30 - 37 + 1,1,1,1,1,1,1,1, # 38 - 3f + 2,2,2,2,2,2,2,2, # 40 - 47 + 2,2,2,2,2,2,2,2, # 48 - 4f + 2,2,2,2,2,2,2,2, # 50 - 57 + 2,2,2,2,2,2,2,2, # 58 - 5f + 2,2,2,2,2,2,2,2, # 60 - 67 + 2,2,2,2,2,2,2,2, # 68 - 6f + 2,2,2,2,2,2,2,2, # 70 - 77 + 2,2,2,2,2,2,2,1, # 78 - 7f + 4,4,4,4,4,4,4,4, # 80 - 87 + 4,4,4,4,4,4,4,4, # 88 - 8f + 4,4,4,4,4,4,4,4, # 90 - 97 + 4,4,4,4,4,4,4,4, # 98 - 9f + 4,3,3,3,3,3,3,3, # a0 - a7 + 3,3,3,3,3,3,3,3, # a8 - af + 3,3,3,3,3,3,3,3, # b0 - b7 + 3,3,3,3,3,3,3,3, # b8 - bf + 3,3,3,3,3,3,3,3, # c0 - c7 + 3,3,3,3,3,3,3,3, # c8 - cf + 3,3,3,3,3,3,3,3, # d0 - d7 + 3,3,3,3,3,3,3,3, # d8 - df + 3,3,3,3,3,3,3,3, # e0 - e7 + 3,3,3,3,3,3,3,3, # e8 - ef + 3,3,3,3,3,3,3,3, # f0 - f7 + 3,3,3,3,3,3,3,0 # f8 - ff +) + +BIG5_ST = ( + MachineState.ERROR,MachineState.START,MachineState.START, 3,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#00-07 + MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,#08-0f + MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START#10-17 +) + +BIG5_CHAR_LEN_TABLE = (0, 1, 1, 2, 0) + +BIG5_SM_MODEL = {'class_table': BIG5_CLS, + 'class_factor': 5, + 'state_table': BIG5_ST, + 'char_len_table': BIG5_CHAR_LEN_TABLE, + 'name': 'Big5'} + +# CP949 + +CP949_CLS = ( + 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,0,0, # 00 - 0f + 1,1,1,1,1,1,1,1, 1,1,1,0,1,1,1,1, # 10 - 1f + 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, # 20 - 2f + 1,1,1,1,1,1,1,1, 1,1,1,1,1,1,1,1, # 30 - 3f + 1,4,4,4,4,4,4,4, 4,4,4,4,4,4,4,4, # 40 - 4f + 4,4,5,5,5,5,5,5, 5,5,5,1,1,1,1,1, # 50 - 5f + 1,5,5,5,5,5,5,5, 5,5,5,5,5,5,5,5, # 60 - 6f + 5,5,5,5,5,5,5,5, 5,5,5,1,1,1,1,1, # 70 - 7f + 0,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6, # 80 - 8f + 6,6,6,6,6,6,6,6, 6,6,6,6,6,6,6,6, # 90 - 9f + 6,7,7,7,7,7,7,7, 7,7,7,7,7,8,8,8, # a0 - af + 7,7,7,7,7,7,7,7, 7,7,7,7,7,7,7,7, # b0 - bf + 7,7,7,7,7,7,9,2, 2,3,2,2,2,2,2,2, # c0 - cf + 2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2, # d0 - df + 2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,2, # e0 - ef + 2,2,2,2,2,2,2,2, 2,2,2,2,2,2,2,0, # f0 - ff +) + +CP949_ST = ( +#cls= 0 1 2 3 4 5 6 7 8 9 # previous state = + MachineState.ERROR,MachineState.START, 3,MachineState.ERROR,MachineState.START,MachineState.START, 4, 5,MachineState.ERROR, 6, # MachineState.START + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, # MachineState.ERROR + MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME, # MachineState.ITS_ME + MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START, # 3 + MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START, # 4 + MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START, # 5 + MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START, # 6 +) + +CP949_CHAR_LEN_TABLE = (0, 1, 2, 0, 1, 1, 2, 2, 0, 2) + +CP949_SM_MODEL = {'class_table': CP949_CLS, + 'class_factor': 10, + 'state_table': CP949_ST, + 'char_len_table': CP949_CHAR_LEN_TABLE, + 'name': 'CP949'} + +# EUC-JP + +EUCJP_CLS = ( + 4,4,4,4,4,4,4,4, # 00 - 07 + 4,4,4,4,4,4,5,5, # 08 - 0f + 4,4,4,4,4,4,4,4, # 10 - 17 + 4,4,4,5,4,4,4,4, # 18 - 1f + 4,4,4,4,4,4,4,4, # 20 - 27 + 4,4,4,4,4,4,4,4, # 28 - 2f + 4,4,4,4,4,4,4,4, # 30 - 37 + 4,4,4,4,4,4,4,4, # 38 - 3f + 4,4,4,4,4,4,4,4, # 40 - 47 + 4,4,4,4,4,4,4,4, # 48 - 4f + 4,4,4,4,4,4,4,4, # 50 - 57 + 4,4,4,4,4,4,4,4, # 58 - 5f + 4,4,4,4,4,4,4,4, # 60 - 67 + 4,4,4,4,4,4,4,4, # 68 - 6f + 4,4,4,4,4,4,4,4, # 70 - 77 + 4,4,4,4,4,4,4,4, # 78 - 7f + 5,5,5,5,5,5,5,5, # 80 - 87 + 5,5,5,5,5,5,1,3, # 88 - 8f + 5,5,5,5,5,5,5,5, # 90 - 97 + 5,5,5,5,5,5,5,5, # 98 - 9f + 5,2,2,2,2,2,2,2, # a0 - a7 + 2,2,2,2,2,2,2,2, # a8 - af + 2,2,2,2,2,2,2,2, # b0 - b7 + 2,2,2,2,2,2,2,2, # b8 - bf + 2,2,2,2,2,2,2,2, # c0 - c7 + 2,2,2,2,2,2,2,2, # c8 - cf + 2,2,2,2,2,2,2,2, # d0 - d7 + 2,2,2,2,2,2,2,2, # d8 - df + 0,0,0,0,0,0,0,0, # e0 - e7 + 0,0,0,0,0,0,0,0, # e8 - ef + 0,0,0,0,0,0,0,0, # f0 - f7 + 0,0,0,0,0,0,0,5 # f8 - ff +) + +EUCJP_ST = ( + 3, 4, 3, 5,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#00-07 + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f + MachineState.ITS_ME,MachineState.ITS_ME,MachineState.START,MachineState.ERROR,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#10-17 + MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 3,MachineState.ERROR,#18-1f + 3,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START#20-27 +) + +EUCJP_CHAR_LEN_TABLE = (2, 2, 2, 3, 1, 0) + +EUCJP_SM_MODEL = {'class_table': EUCJP_CLS, + 'class_factor': 6, + 'state_table': EUCJP_ST, + 'char_len_table': EUCJP_CHAR_LEN_TABLE, + 'name': 'EUC-JP'} + +# EUC-KR + +EUCKR_CLS = ( + 1,1,1,1,1,1,1,1, # 00 - 07 + 1,1,1,1,1,1,0,0, # 08 - 0f + 1,1,1,1,1,1,1,1, # 10 - 17 + 1,1,1,0,1,1,1,1, # 18 - 1f + 1,1,1,1,1,1,1,1, # 20 - 27 + 1,1,1,1,1,1,1,1, # 28 - 2f + 1,1,1,1,1,1,1,1, # 30 - 37 + 1,1,1,1,1,1,1,1, # 38 - 3f + 1,1,1,1,1,1,1,1, # 40 - 47 + 1,1,1,1,1,1,1,1, # 48 - 4f + 1,1,1,1,1,1,1,1, # 50 - 57 + 1,1,1,1,1,1,1,1, # 58 - 5f + 1,1,1,1,1,1,1,1, # 60 - 67 + 1,1,1,1,1,1,1,1, # 68 - 6f + 1,1,1,1,1,1,1,1, # 70 - 77 + 1,1,1,1,1,1,1,1, # 78 - 7f + 0,0,0,0,0,0,0,0, # 80 - 87 + 0,0,0,0,0,0,0,0, # 88 - 8f + 0,0,0,0,0,0,0,0, # 90 - 97 + 0,0,0,0,0,0,0,0, # 98 - 9f + 0,2,2,2,2,2,2,2, # a0 - a7 + 2,2,2,2,2,3,3,3, # a8 - af + 2,2,2,2,2,2,2,2, # b0 - b7 + 2,2,2,2,2,2,2,2, # b8 - bf + 2,2,2,2,2,2,2,2, # c0 - c7 + 2,3,2,2,2,2,2,2, # c8 - cf + 2,2,2,2,2,2,2,2, # d0 - d7 + 2,2,2,2,2,2,2,2, # d8 - df + 2,2,2,2,2,2,2,2, # e0 - e7 + 2,2,2,2,2,2,2,2, # e8 - ef + 2,2,2,2,2,2,2,2, # f0 - f7 + 2,2,2,2,2,2,2,0 # f8 - ff +) + +EUCKR_ST = ( + MachineState.ERROR,MachineState.START, 3,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#00-07 + MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START #08-0f +) + +EUCKR_CHAR_LEN_TABLE = (0, 1, 2, 0) + +EUCKR_SM_MODEL = {'class_table': EUCKR_CLS, + 'class_factor': 4, + 'state_table': EUCKR_ST, + 'char_len_table': EUCKR_CHAR_LEN_TABLE, + 'name': 'EUC-KR'} + +# EUC-TW + +EUCTW_CLS = ( + 2,2,2,2,2,2,2,2, # 00 - 07 + 2,2,2,2,2,2,0,0, # 08 - 0f + 2,2,2,2,2,2,2,2, # 10 - 17 + 2,2,2,0,2,2,2,2, # 18 - 1f + 2,2,2,2,2,2,2,2, # 20 - 27 + 2,2,2,2,2,2,2,2, # 28 - 2f + 2,2,2,2,2,2,2,2, # 30 - 37 + 2,2,2,2,2,2,2,2, # 38 - 3f + 2,2,2,2,2,2,2,2, # 40 - 47 + 2,2,2,2,2,2,2,2, # 48 - 4f + 2,2,2,2,2,2,2,2, # 50 - 57 + 2,2,2,2,2,2,2,2, # 58 - 5f + 2,2,2,2,2,2,2,2, # 60 - 67 + 2,2,2,2,2,2,2,2, # 68 - 6f + 2,2,2,2,2,2,2,2, # 70 - 77 + 2,2,2,2,2,2,2,2, # 78 - 7f + 0,0,0,0,0,0,0,0, # 80 - 87 + 0,0,0,0,0,0,6,0, # 88 - 8f + 0,0,0,0,0,0,0,0, # 90 - 97 + 0,0,0,0,0,0,0,0, # 98 - 9f + 0,3,4,4,4,4,4,4, # a0 - a7 + 5,5,1,1,1,1,1,1, # a8 - af + 1,1,1,1,1,1,1,1, # b0 - b7 + 1,1,1,1,1,1,1,1, # b8 - bf + 1,1,3,1,3,3,3,3, # c0 - c7 + 3,3,3,3,3,3,3,3, # c8 - cf + 3,3,3,3,3,3,3,3, # d0 - d7 + 3,3,3,3,3,3,3,3, # d8 - df + 3,3,3,3,3,3,3,3, # e0 - e7 + 3,3,3,3,3,3,3,3, # e8 - ef + 3,3,3,3,3,3,3,3, # f0 - f7 + 3,3,3,3,3,3,3,0 # f8 - ff +) + +EUCTW_ST = ( + MachineState.ERROR,MachineState.ERROR,MachineState.START, 3, 3, 3, 4,MachineState.ERROR,#00-07 + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f + MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.START,MachineState.ERROR,#10-17 + MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#18-1f + 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.ERROR,MachineState.START,MachineState.START,#20-27 + MachineState.START,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START #28-2f +) + +EUCTW_CHAR_LEN_TABLE = (0, 0, 1, 2, 2, 2, 3) + +EUCTW_SM_MODEL = {'class_table': EUCTW_CLS, + 'class_factor': 7, + 'state_table': EUCTW_ST, + 'char_len_table': EUCTW_CHAR_LEN_TABLE, + 'name': 'x-euc-tw'} + +# GB2312 + +GB2312_CLS = ( + 1,1,1,1,1,1,1,1, # 00 - 07 + 1,1,1,1,1,1,0,0, # 08 - 0f + 1,1,1,1,1,1,1,1, # 10 - 17 + 1,1,1,0,1,1,1,1, # 18 - 1f + 1,1,1,1,1,1,1,1, # 20 - 27 + 1,1,1,1,1,1,1,1, # 28 - 2f + 3,3,3,3,3,3,3,3, # 30 - 37 + 3,3,1,1,1,1,1,1, # 38 - 3f + 2,2,2,2,2,2,2,2, # 40 - 47 + 2,2,2,2,2,2,2,2, # 48 - 4f + 2,2,2,2,2,2,2,2, # 50 - 57 + 2,2,2,2,2,2,2,2, # 58 - 5f + 2,2,2,2,2,2,2,2, # 60 - 67 + 2,2,2,2,2,2,2,2, # 68 - 6f + 2,2,2,2,2,2,2,2, # 70 - 77 + 2,2,2,2,2,2,2,4, # 78 - 7f + 5,6,6,6,6,6,6,6, # 80 - 87 + 6,6,6,6,6,6,6,6, # 88 - 8f + 6,6,6,6,6,6,6,6, # 90 - 97 + 6,6,6,6,6,6,6,6, # 98 - 9f + 6,6,6,6,6,6,6,6, # a0 - a7 + 6,6,6,6,6,6,6,6, # a8 - af + 6,6,6,6,6,6,6,6, # b0 - b7 + 6,6,6,6,6,6,6,6, # b8 - bf + 6,6,6,6,6,6,6,6, # c0 - c7 + 6,6,6,6,6,6,6,6, # c8 - cf + 6,6,6,6,6,6,6,6, # d0 - d7 + 6,6,6,6,6,6,6,6, # d8 - df + 6,6,6,6,6,6,6,6, # e0 - e7 + 6,6,6,6,6,6,6,6, # e8 - ef + 6,6,6,6,6,6,6,6, # f0 - f7 + 6,6,6,6,6,6,6,0 # f8 - ff +) + +GB2312_ST = ( + MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START, 3,MachineState.ERROR,#00-07 + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f + MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.START,#10-17 + 4,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#18-1f + MachineState.ERROR,MachineState.ERROR, 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,#20-27 + MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.START #28-2f +) + +# To be accurate, the length of class 6 can be either 2 or 4. +# But it is not necessary to discriminate between the two since +# it is used for frequency analysis only, and we are validating +# each code range there as well. So it is safe to set it to be +# 2 here. +GB2312_CHAR_LEN_TABLE = (0, 1, 1, 1, 1, 1, 2) + +GB2312_SM_MODEL = {'class_table': GB2312_CLS, + 'class_factor': 7, + 'state_table': GB2312_ST, + 'char_len_table': GB2312_CHAR_LEN_TABLE, + 'name': 'GB2312'} + +# Shift_JIS + +SJIS_CLS = ( + 1,1,1,1,1,1,1,1, # 00 - 07 + 1,1,1,1,1,1,0,0, # 08 - 0f + 1,1,1,1,1,1,1,1, # 10 - 17 + 1,1,1,0,1,1,1,1, # 18 - 1f + 1,1,1,1,1,1,1,1, # 20 - 27 + 1,1,1,1,1,1,1,1, # 28 - 2f + 1,1,1,1,1,1,1,1, # 30 - 37 + 1,1,1,1,1,1,1,1, # 38 - 3f + 2,2,2,2,2,2,2,2, # 40 - 47 + 2,2,2,2,2,2,2,2, # 48 - 4f + 2,2,2,2,2,2,2,2, # 50 - 57 + 2,2,2,2,2,2,2,2, # 58 - 5f + 2,2,2,2,2,2,2,2, # 60 - 67 + 2,2,2,2,2,2,2,2, # 68 - 6f + 2,2,2,2,2,2,2,2, # 70 - 77 + 2,2,2,2,2,2,2,1, # 78 - 7f + 3,3,3,3,3,2,2,3, # 80 - 87 + 3,3,3,3,3,3,3,3, # 88 - 8f + 3,3,3,3,3,3,3,3, # 90 - 97 + 3,3,3,3,3,3,3,3, # 98 - 9f + #0xa0 is illegal in sjis encoding, but some pages does + #contain such byte. We need to be more error forgiven. + 2,2,2,2,2,2,2,2, # a0 - a7 + 2,2,2,2,2,2,2,2, # a8 - af + 2,2,2,2,2,2,2,2, # b0 - b7 + 2,2,2,2,2,2,2,2, # b8 - bf + 2,2,2,2,2,2,2,2, # c0 - c7 + 2,2,2,2,2,2,2,2, # c8 - cf + 2,2,2,2,2,2,2,2, # d0 - d7 + 2,2,2,2,2,2,2,2, # d8 - df + 3,3,3,3,3,3,3,3, # e0 - e7 + 3,3,3,3,3,4,4,4, # e8 - ef + 3,3,3,3,3,3,3,3, # f0 - f7 + 3,3,3,3,3,0,0,0) # f8 - ff + + +SJIS_ST = ( + MachineState.ERROR,MachineState.START,MachineState.START, 3,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#00-07 + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f + MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START #10-17 +) + +SJIS_CHAR_LEN_TABLE = (0, 1, 1, 2, 0, 0) + +SJIS_SM_MODEL = {'class_table': SJIS_CLS, + 'class_factor': 6, + 'state_table': SJIS_ST, + 'char_len_table': SJIS_CHAR_LEN_TABLE, + 'name': 'Shift_JIS'} + +# UCS2-BE + +UCS2BE_CLS = ( + 0,0,0,0,0,0,0,0, # 00 - 07 + 0,0,1,0,0,2,0,0, # 08 - 0f + 0,0,0,0,0,0,0,0, # 10 - 17 + 0,0,0,3,0,0,0,0, # 18 - 1f + 0,0,0,0,0,0,0,0, # 20 - 27 + 0,3,3,3,3,3,0,0, # 28 - 2f + 0,0,0,0,0,0,0,0, # 30 - 37 + 0,0,0,0,0,0,0,0, # 38 - 3f + 0,0,0,0,0,0,0,0, # 40 - 47 + 0,0,0,0,0,0,0,0, # 48 - 4f + 0,0,0,0,0,0,0,0, # 50 - 57 + 0,0,0,0,0,0,0,0, # 58 - 5f + 0,0,0,0,0,0,0,0, # 60 - 67 + 0,0,0,0,0,0,0,0, # 68 - 6f + 0,0,0,0,0,0,0,0, # 70 - 77 + 0,0,0,0,0,0,0,0, # 78 - 7f + 0,0,0,0,0,0,0,0, # 80 - 87 + 0,0,0,0,0,0,0,0, # 88 - 8f + 0,0,0,0,0,0,0,0, # 90 - 97 + 0,0,0,0,0,0,0,0, # 98 - 9f + 0,0,0,0,0,0,0,0, # a0 - a7 + 0,0,0,0,0,0,0,0, # a8 - af + 0,0,0,0,0,0,0,0, # b0 - b7 + 0,0,0,0,0,0,0,0, # b8 - bf + 0,0,0,0,0,0,0,0, # c0 - c7 + 0,0,0,0,0,0,0,0, # c8 - cf + 0,0,0,0,0,0,0,0, # d0 - d7 + 0,0,0,0,0,0,0,0, # d8 - df + 0,0,0,0,0,0,0,0, # e0 - e7 + 0,0,0,0,0,0,0,0, # e8 - ef + 0,0,0,0,0,0,0,0, # f0 - f7 + 0,0,0,0,0,0,4,5 # f8 - ff +) + +UCS2BE_ST = ( + 5, 7, 7,MachineState.ERROR, 4, 3,MachineState.ERROR,MachineState.ERROR,#00-07 + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f + MachineState.ITS_ME,MachineState.ITS_ME, 6, 6, 6, 6,MachineState.ERROR,MachineState.ERROR,#10-17 + 6, 6, 6, 6, 6,MachineState.ITS_ME, 6, 6,#18-1f + 6, 6, 6, 6, 5, 7, 7,MachineState.ERROR,#20-27 + 5, 8, 6, 6,MachineState.ERROR, 6, 6, 6,#28-2f + 6, 6, 6, 6,MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START #30-37 +) + +UCS2BE_CHAR_LEN_TABLE = (2, 2, 2, 0, 2, 2) + +UCS2BE_SM_MODEL = {'class_table': UCS2BE_CLS, + 'class_factor': 6, + 'state_table': UCS2BE_ST, + 'char_len_table': UCS2BE_CHAR_LEN_TABLE, + 'name': 'UTF-16BE'} + +# UCS2-LE + +UCS2LE_CLS = ( + 0,0,0,0,0,0,0,0, # 00 - 07 + 0,0,1,0,0,2,0,0, # 08 - 0f + 0,0,0,0,0,0,0,0, # 10 - 17 + 0,0,0,3,0,0,0,0, # 18 - 1f + 0,0,0,0,0,0,0,0, # 20 - 27 + 0,3,3,3,3,3,0,0, # 28 - 2f + 0,0,0,0,0,0,0,0, # 30 - 37 + 0,0,0,0,0,0,0,0, # 38 - 3f + 0,0,0,0,0,0,0,0, # 40 - 47 + 0,0,0,0,0,0,0,0, # 48 - 4f + 0,0,0,0,0,0,0,0, # 50 - 57 + 0,0,0,0,0,0,0,0, # 58 - 5f + 0,0,0,0,0,0,0,0, # 60 - 67 + 0,0,0,0,0,0,0,0, # 68 - 6f + 0,0,0,0,0,0,0,0, # 70 - 77 + 0,0,0,0,0,0,0,0, # 78 - 7f + 0,0,0,0,0,0,0,0, # 80 - 87 + 0,0,0,0,0,0,0,0, # 88 - 8f + 0,0,0,0,0,0,0,0, # 90 - 97 + 0,0,0,0,0,0,0,0, # 98 - 9f + 0,0,0,0,0,0,0,0, # a0 - a7 + 0,0,0,0,0,0,0,0, # a8 - af + 0,0,0,0,0,0,0,0, # b0 - b7 + 0,0,0,0,0,0,0,0, # b8 - bf + 0,0,0,0,0,0,0,0, # c0 - c7 + 0,0,0,0,0,0,0,0, # c8 - cf + 0,0,0,0,0,0,0,0, # d0 - d7 + 0,0,0,0,0,0,0,0, # d8 - df + 0,0,0,0,0,0,0,0, # e0 - e7 + 0,0,0,0,0,0,0,0, # e8 - ef + 0,0,0,0,0,0,0,0, # f0 - f7 + 0,0,0,0,0,0,4,5 # f8 - ff +) + +UCS2LE_ST = ( + 6, 6, 7, 6, 4, 3,MachineState.ERROR,MachineState.ERROR,#00-07 + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#08-0f + MachineState.ITS_ME,MachineState.ITS_ME, 5, 5, 5,MachineState.ERROR,MachineState.ITS_ME,MachineState.ERROR,#10-17 + 5, 5, 5,MachineState.ERROR, 5,MachineState.ERROR, 6, 6,#18-1f + 7, 6, 8, 8, 5, 5, 5,MachineState.ERROR,#20-27 + 5, 5, 5,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 5, 5,#28-2f + 5, 5, 5,MachineState.ERROR, 5,MachineState.ERROR,MachineState.START,MachineState.START #30-37 +) + +UCS2LE_CHAR_LEN_TABLE = (2, 2, 2, 2, 2, 2) + +UCS2LE_SM_MODEL = {'class_table': UCS2LE_CLS, + 'class_factor': 6, + 'state_table': UCS2LE_ST, + 'char_len_table': UCS2LE_CHAR_LEN_TABLE, + 'name': 'UTF-16LE'} + +# UTF-8 + +UTF8_CLS = ( + 1,1,1,1,1,1,1,1, # 00 - 07 #allow 0x00 as a legal value + 1,1,1,1,1,1,0,0, # 08 - 0f + 1,1,1,1,1,1,1,1, # 10 - 17 + 1,1,1,0,1,1,1,1, # 18 - 1f + 1,1,1,1,1,1,1,1, # 20 - 27 + 1,1,1,1,1,1,1,1, # 28 - 2f + 1,1,1,1,1,1,1,1, # 30 - 37 + 1,1,1,1,1,1,1,1, # 38 - 3f + 1,1,1,1,1,1,1,1, # 40 - 47 + 1,1,1,1,1,1,1,1, # 48 - 4f + 1,1,1,1,1,1,1,1, # 50 - 57 + 1,1,1,1,1,1,1,1, # 58 - 5f + 1,1,1,1,1,1,1,1, # 60 - 67 + 1,1,1,1,1,1,1,1, # 68 - 6f + 1,1,1,1,1,1,1,1, # 70 - 77 + 1,1,1,1,1,1,1,1, # 78 - 7f + 2,2,2,2,3,3,3,3, # 80 - 87 + 4,4,4,4,4,4,4,4, # 88 - 8f + 4,4,4,4,4,4,4,4, # 90 - 97 + 4,4,4,4,4,4,4,4, # 98 - 9f + 5,5,5,5,5,5,5,5, # a0 - a7 + 5,5,5,5,5,5,5,5, # a8 - af + 5,5,5,5,5,5,5,5, # b0 - b7 + 5,5,5,5,5,5,5,5, # b8 - bf + 0,0,6,6,6,6,6,6, # c0 - c7 + 6,6,6,6,6,6,6,6, # c8 - cf + 6,6,6,6,6,6,6,6, # d0 - d7 + 6,6,6,6,6,6,6,6, # d8 - df + 7,8,8,8,8,8,8,8, # e0 - e7 + 8,8,8,8,8,9,8,8, # e8 - ef + 10,11,11,11,11,11,11,11, # f0 - f7 + 12,13,13,13,14,15,0,0 # f8 - ff +) + +UTF8_ST = ( + MachineState.ERROR,MachineState.START,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 12, 10,#00-07 + 9, 11, 8, 7, 6, 5, 4, 3,#08-0f + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#10-17 + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#18-1f + MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#20-27 + MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,MachineState.ITS_ME,#28-2f + MachineState.ERROR,MachineState.ERROR, 5, 5, 5, 5,MachineState.ERROR,MachineState.ERROR,#30-37 + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#38-3f + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 5, 5, 5,MachineState.ERROR,MachineState.ERROR,#40-47 + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#48-4f + MachineState.ERROR,MachineState.ERROR, 7, 7, 7, 7,MachineState.ERROR,MachineState.ERROR,#50-57 + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#58-5f + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 7, 7,MachineState.ERROR,MachineState.ERROR,#60-67 + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#68-6f + MachineState.ERROR,MachineState.ERROR, 9, 9, 9, 9,MachineState.ERROR,MachineState.ERROR,#70-77 + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#78-7f + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 9,MachineState.ERROR,MachineState.ERROR,#80-87 + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#88-8f + MachineState.ERROR,MachineState.ERROR, 12, 12, 12, 12,MachineState.ERROR,MachineState.ERROR,#90-97 + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#98-9f + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR, 12,MachineState.ERROR,MachineState.ERROR,#a0-a7 + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#a8-af + MachineState.ERROR,MachineState.ERROR, 12, 12, 12,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#b0-b7 + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,#b8-bf + MachineState.ERROR,MachineState.ERROR,MachineState.START,MachineState.START,MachineState.START,MachineState.START,MachineState.ERROR,MachineState.ERROR,#c0-c7 + MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR,MachineState.ERROR #c8-cf +) + +UTF8_CHAR_LEN_TABLE = (0, 1, 0, 0, 0, 0, 2, 3, 3, 3, 4, 4, 5, 5, 6, 6) + +UTF8_SM_MODEL = {'class_table': UTF8_CLS, + 'class_factor': 16, + 'state_table': UTF8_ST, + 'char_len_table': UTF8_CHAR_LEN_TABLE, + 'name': 'UTF-8'} diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/sbcharsetprober.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/sbcharsetprober.py new file mode 100644 index 00000000..0adb51de --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/sbcharsetprober.py @@ -0,0 +1,132 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Universal charset detector code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 2001 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# Shy Shalom - original C code +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +from .charsetprober import CharSetProber +from .enums import CharacterCategory, ProbingState, SequenceLikelihood + + +class SingleByteCharSetProber(CharSetProber): + SAMPLE_SIZE = 64 + SB_ENOUGH_REL_THRESHOLD = 1024 # 0.25 * SAMPLE_SIZE^2 + POSITIVE_SHORTCUT_THRESHOLD = 0.95 + NEGATIVE_SHORTCUT_THRESHOLD = 0.05 + + def __init__(self, model, reversed=False, name_prober=None): + super(SingleByteCharSetProber, self).__init__() + self._model = model + # TRUE if we need to reverse every pair in the model lookup + self._reversed = reversed + # Optional auxiliary prober for name decision + self._name_prober = name_prober + self._last_order = None + self._seq_counters = None + self._total_seqs = None + self._total_char = None + self._freq_char = None + self.reset() + + def reset(self): + super(SingleByteCharSetProber, self).reset() + # char order of last character + self._last_order = 255 + self._seq_counters = [0] * SequenceLikelihood.get_num_categories() + self._total_seqs = 0 + self._total_char = 0 + # characters that fall in our sampling range + self._freq_char = 0 + + @property + def charset_name(self): + if self._name_prober: + return self._name_prober.charset_name + else: + return self._model['charset_name'] + + @property + def language(self): + if self._name_prober: + return self._name_prober.language + else: + return self._model.get('language') + + def feed(self, byte_str): + if not self._model['keep_english_letter']: + byte_str = self.filter_international_words(byte_str) + if not byte_str: + return self.state + char_to_order_map = self._model['char_to_order_map'] + for i, c in enumerate(byte_str): + # XXX: Order is in range 1-64, so one would think we want 0-63 here, + # but that leads to 27 more test failures than before. + order = char_to_order_map[c] + # XXX: This was SYMBOL_CAT_ORDER before, with a value of 250, but + # CharacterCategory.SYMBOL is actually 253, so we use CONTROL + # to make it closer to the original intent. The only difference + # is whether or not we count digits and control characters for + # _total_char purposes. + if order < CharacterCategory.CONTROL: + self._total_char += 1 + if order < self.SAMPLE_SIZE: + self._freq_char += 1 + if self._last_order < self.SAMPLE_SIZE: + self._total_seqs += 1 + if not self._reversed: + i = (self._last_order * self.SAMPLE_SIZE) + order + model = self._model['precedence_matrix'][i] + else: # reverse the order of the letters in the lookup + i = (order * self.SAMPLE_SIZE) + self._last_order + model = self._model['precedence_matrix'][i] + self._seq_counters[model] += 1 + self._last_order = order + + charset_name = self._model['charset_name'] + if self.state == ProbingState.DETECTING: + if self._total_seqs > self.SB_ENOUGH_REL_THRESHOLD: + confidence = self.get_confidence() + if confidence > self.POSITIVE_SHORTCUT_THRESHOLD: + self.logger.debug('%s confidence = %s, we have a winner', + charset_name, confidence) + self._state = ProbingState.FOUND_IT + elif confidence < self.NEGATIVE_SHORTCUT_THRESHOLD: + self.logger.debug('%s confidence = %s, below negative ' + 'shortcut threshhold %s', charset_name, + confidence, + self.NEGATIVE_SHORTCUT_THRESHOLD) + self._state = ProbingState.NOT_ME + + return self.state + + def get_confidence(self): + r = 0.01 + if self._total_seqs > 0: + r = ((1.0 * self._seq_counters[SequenceLikelihood.POSITIVE]) / + self._total_seqs / self._model['typical_positive_ratio']) + r = r * self._freq_char / self._total_char + if r >= 1.0: + r = 0.99 + return r diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/sbcsgroupprober.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/sbcsgroupprober.py new file mode 100644 index 00000000..98e95dc1 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/sbcsgroupprober.py @@ -0,0 +1,73 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Universal charset detector code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 2001 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# Shy Shalom - original C code +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +from .charsetgroupprober import CharSetGroupProber +from .sbcharsetprober import SingleByteCharSetProber +from .langcyrillicmodel import (Win1251CyrillicModel, Koi8rModel, + Latin5CyrillicModel, MacCyrillicModel, + Ibm866Model, Ibm855Model) +from .langgreekmodel import Latin7GreekModel, Win1253GreekModel +from .langbulgarianmodel import Latin5BulgarianModel, Win1251BulgarianModel +# from .langhungarianmodel import Latin2HungarianModel, Win1250HungarianModel +from .langthaimodel import TIS620ThaiModel +from .langhebrewmodel import Win1255HebrewModel +from .hebrewprober import HebrewProber +from .langturkishmodel import Latin5TurkishModel + + +class SBCSGroupProber(CharSetGroupProber): + def __init__(self): + super(SBCSGroupProber, self).__init__() + self.probers = [ + SingleByteCharSetProber(Win1251CyrillicModel), + SingleByteCharSetProber(Koi8rModel), + SingleByteCharSetProber(Latin5CyrillicModel), + SingleByteCharSetProber(MacCyrillicModel), + SingleByteCharSetProber(Ibm866Model), + SingleByteCharSetProber(Ibm855Model), + SingleByteCharSetProber(Latin7GreekModel), + SingleByteCharSetProber(Win1253GreekModel), + SingleByteCharSetProber(Latin5BulgarianModel), + SingleByteCharSetProber(Win1251BulgarianModel), + # TODO: Restore Hungarian encodings (iso-8859-2 and windows-1250) + # after we retrain model. + # SingleByteCharSetProber(Latin2HungarianModel), + # SingleByteCharSetProber(Win1250HungarianModel), + SingleByteCharSetProber(TIS620ThaiModel), + SingleByteCharSetProber(Latin5TurkishModel), + ] + hebrew_prober = HebrewProber() + logical_hebrew_prober = SingleByteCharSetProber(Win1255HebrewModel, + False, hebrew_prober) + visual_hebrew_prober = SingleByteCharSetProber(Win1255HebrewModel, True, + hebrew_prober) + hebrew_prober.set_model_probers(logical_hebrew_prober, visual_hebrew_prober) + self.probers.extend([hebrew_prober, logical_hebrew_prober, + visual_hebrew_prober]) + + self.reset() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/sjisprober.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/sjisprober.py new file mode 100644 index 00000000..9e29623b --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/sjisprober.py @@ -0,0 +1,92 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +from .mbcharsetprober import MultiByteCharSetProber +from .codingstatemachine import CodingStateMachine +from .chardistribution import SJISDistributionAnalysis +from .jpcntx import SJISContextAnalysis +from .mbcssm import SJIS_SM_MODEL +from .enums import ProbingState, MachineState + + +class SJISProber(MultiByteCharSetProber): + def __init__(self): + super(SJISProber, self).__init__() + self.coding_sm = CodingStateMachine(SJIS_SM_MODEL) + self.distribution_analyzer = SJISDistributionAnalysis() + self.context_analyzer = SJISContextAnalysis() + self.reset() + + def reset(self): + super(SJISProber, self).reset() + self.context_analyzer.reset() + + @property + def charset_name(self): + return self.context_analyzer.charset_name + + @property + def language(self): + return "Japanese" + + def feed(self, byte_str): + for i in range(len(byte_str)): + coding_state = self.coding_sm.next_state(byte_str[i]) + if coding_state == MachineState.ERROR: + self.logger.debug('%s %s prober hit error at byte %s', + self.charset_name, self.language, i) + self._state = ProbingState.NOT_ME + break + elif coding_state == MachineState.ITS_ME: + self._state = ProbingState.FOUND_IT + break + elif coding_state == MachineState.START: + char_len = self.coding_sm.get_current_charlen() + if i == 0: + self._last_char[1] = byte_str[0] + self.context_analyzer.feed(self._last_char[2 - char_len:], + char_len) + self.distribution_analyzer.feed(self._last_char, char_len) + else: + self.context_analyzer.feed(byte_str[i + 1 - char_len:i + 3 + - char_len], char_len) + self.distribution_analyzer.feed(byte_str[i - 1:i + 1], + char_len) + + self._last_char[0] = byte_str[-1] + + if self.state == ProbingState.DETECTING: + if (self.context_analyzer.got_enough_data() and + (self.get_confidence() > self.SHORTCUT_THRESHOLD)): + self._state = ProbingState.FOUND_IT + + return self.state + + def get_confidence(self): + context_conf = self.context_analyzer.get_confidence() + distrib_conf = self.distribution_analyzer.get_confidence() + return max(context_conf, distrib_conf) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/universaldetector.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/universaldetector.py new file mode 100644 index 00000000..7b4e92d6 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/universaldetector.py @@ -0,0 +1,286 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is Mozilla Universal charset detector code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 2001 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# Shy Shalom - original C code +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### +""" +Module containing the UniversalDetector detector class, which is the primary +class a user of ``chardet`` should use. + +:author: Mark Pilgrim (initial port to Python) +:author: Shy Shalom (original C code) +:author: Dan Blanchard (major refactoring for 3.0) +:author: Ian Cordasco +""" + + +import codecs +import logging +import re + +from .charsetgroupprober import CharSetGroupProber +from .enums import InputState, LanguageFilter, ProbingState +from .escprober import EscCharSetProber +from .latin1prober import Latin1Prober +from .mbcsgroupprober import MBCSGroupProber +from .sbcsgroupprober import SBCSGroupProber + + +class UniversalDetector(object): + """ + The ``UniversalDetector`` class underlies the ``chardet.detect`` function + and coordinates all of the different charset probers. + + To get a ``dict`` containing an encoding and its confidence, you can simply + run: + + .. code:: + + u = UniversalDetector() + u.feed(some_bytes) + u.close() + detected = u.result + + """ + + MINIMUM_THRESHOLD = 0.20 + HIGH_BYTE_DETECTOR = re.compile(b'[\x80-\xFF]') + ESC_DETECTOR = re.compile(b'(\033|~{)') + WIN_BYTE_DETECTOR = re.compile(b'[\x80-\x9F]') + ISO_WIN_MAP = {'iso-8859-1': 'Windows-1252', + 'iso-8859-2': 'Windows-1250', + 'iso-8859-5': 'Windows-1251', + 'iso-8859-6': 'Windows-1256', + 'iso-8859-7': 'Windows-1253', + 'iso-8859-8': 'Windows-1255', + 'iso-8859-9': 'Windows-1254', + 'iso-8859-13': 'Windows-1257'} + + def __init__(self, lang_filter=LanguageFilter.ALL): + self._esc_charset_prober = None + self._charset_probers = [] + self.result = None + self.done = None + self._got_data = None + self._input_state = None + self._last_char = None + self.lang_filter = lang_filter + self.logger = logging.getLogger(__name__) + self._has_win_bytes = None + self.reset() + + def reset(self): + """ + Reset the UniversalDetector and all of its probers back to their + initial states. This is called by ``__init__``, so you only need to + call this directly in between analyses of different documents. + """ + self.result = {'encoding': None, 'confidence': 0.0, 'language': None} + self.done = False + self._got_data = False + self._has_win_bytes = False + self._input_state = InputState.PURE_ASCII + self._last_char = b'' + if self._esc_charset_prober: + self._esc_charset_prober.reset() + for prober in self._charset_probers: + prober.reset() + + def feed(self, byte_str): + """ + Takes a chunk of a document and feeds it through all of the relevant + charset probers. + + After calling ``feed``, you can check the value of the ``done`` + attribute to see if you need to continue feeding the + ``UniversalDetector`` more data, or if it has made a prediction + (in the ``result`` attribute). + + .. note:: + You should always call ``close`` when you're done feeding in your + document if ``done`` is not already ``True``. + """ + if self.done: + return + + if not len(byte_str): + return + + if not isinstance(byte_str, bytearray): + byte_str = bytearray(byte_str) + + # First check for known BOMs, since these are guaranteed to be correct + if not self._got_data: + # If the data starts with BOM, we know it is UTF + if byte_str.startswith(codecs.BOM_UTF8): + # EF BB BF UTF-8 with BOM + self.result = {'encoding': "UTF-8-SIG", + 'confidence': 1.0, + 'language': ''} + elif byte_str.startswith((codecs.BOM_UTF32_LE, + codecs.BOM_UTF32_BE)): + # FF FE 00 00 UTF-32, little-endian BOM + # 00 00 FE FF UTF-32, big-endian BOM + self.result = {'encoding': "UTF-32", + 'confidence': 1.0, + 'language': ''} + elif byte_str.startswith(b'\xFE\xFF\x00\x00'): + # FE FF 00 00 UCS-4, unusual octet order BOM (3412) + self.result = {'encoding': "X-ISO-10646-UCS-4-3412", + 'confidence': 1.0, + 'language': ''} + elif byte_str.startswith(b'\x00\x00\xFF\xFE'): + # 00 00 FF FE UCS-4, unusual octet order BOM (2143) + self.result = {'encoding': "X-ISO-10646-UCS-4-2143", + 'confidence': 1.0, + 'language': ''} + elif byte_str.startswith((codecs.BOM_LE, codecs.BOM_BE)): + # FF FE UTF-16, little endian BOM + # FE FF UTF-16, big endian BOM + self.result = {'encoding': "UTF-16", + 'confidence': 1.0, + 'language': ''} + + self._got_data = True + if self.result['encoding'] is not None: + self.done = True + return + + # If none of those matched and we've only see ASCII so far, check + # for high bytes and escape sequences + if self._input_state == InputState.PURE_ASCII: + if self.HIGH_BYTE_DETECTOR.search(byte_str): + self._input_state = InputState.HIGH_BYTE + elif self._input_state == InputState.PURE_ASCII and \ + self.ESC_DETECTOR.search(self._last_char + byte_str): + self._input_state = InputState.ESC_ASCII + + self._last_char = byte_str[-1:] + + # If we've seen escape sequences, use the EscCharSetProber, which + # uses a simple state machine to check for known escape sequences in + # HZ and ISO-2022 encodings, since those are the only encodings that + # use such sequences. + if self._input_state == InputState.ESC_ASCII: + if not self._esc_charset_prober: + self._esc_charset_prober = EscCharSetProber(self.lang_filter) + if self._esc_charset_prober.feed(byte_str) == ProbingState.FOUND_IT: + self.result = {'encoding': + self._esc_charset_prober.charset_name, + 'confidence': + self._esc_charset_prober.get_confidence(), + 'language': + self._esc_charset_prober.language} + self.done = True + # If we've seen high bytes (i.e., those with values greater than 127), + # we need to do more complicated checks using all our multi-byte and + # single-byte probers that are left. The single-byte probers + # use character bigram distributions to determine the encoding, whereas + # the multi-byte probers use a combination of character unigram and + # bigram distributions. + elif self._input_state == InputState.HIGH_BYTE: + if not self._charset_probers: + self._charset_probers = [MBCSGroupProber(self.lang_filter)] + # If we're checking non-CJK encodings, use single-byte prober + if self.lang_filter & LanguageFilter.NON_CJK: + self._charset_probers.append(SBCSGroupProber()) + self._charset_probers.append(Latin1Prober()) + for prober in self._charset_probers: + if prober.feed(byte_str) == ProbingState.FOUND_IT: + self.result = {'encoding': prober.charset_name, + 'confidence': prober.get_confidence(), + 'language': prober.language} + self.done = True + break + if self.WIN_BYTE_DETECTOR.search(byte_str): + self._has_win_bytes = True + + def close(self): + """ + Stop analyzing the current document and come up with a final + prediction. + + :returns: The ``result`` attribute, a ``dict`` with the keys + `encoding`, `confidence`, and `language`. + """ + # Don't bother with checks if we're already done + if self.done: + return self.result + self.done = True + + if not self._got_data: + self.logger.debug('no data received!') + + # Default to ASCII if it is all we've seen so far + elif self._input_state == InputState.PURE_ASCII: + self.result = {'encoding': 'ascii', + 'confidence': 1.0, + 'language': ''} + + # If we have seen non-ASCII, return the best that met MINIMUM_THRESHOLD + elif self._input_state == InputState.HIGH_BYTE: + prober_confidence = None + max_prober_confidence = 0.0 + max_prober = None + for prober in self._charset_probers: + if not prober: + continue + prober_confidence = prober.get_confidence() + if prober_confidence > max_prober_confidence: + max_prober_confidence = prober_confidence + max_prober = prober + if max_prober and (max_prober_confidence > self.MINIMUM_THRESHOLD): + charset_name = max_prober.charset_name + lower_charset_name = max_prober.charset_name.lower() + confidence = max_prober.get_confidence() + # Use Windows encoding name instead of ISO-8859 if we saw any + # extra Windows-specific bytes + if lower_charset_name.startswith('iso-8859'): + if self._has_win_bytes: + charset_name = self.ISO_WIN_MAP.get(lower_charset_name, + charset_name) + self.result = {'encoding': charset_name, + 'confidence': confidence, + 'language': max_prober.language} + + # Log all prober confidences if none met MINIMUM_THRESHOLD + if self.logger.getEffectiveLevel() == logging.DEBUG: + if self.result['encoding'] is None: + self.logger.debug('no probers hit minimum threshold') + for group_prober in self._charset_probers: + if not group_prober: + continue + if isinstance(group_prober, CharSetGroupProber): + for prober in group_prober.probers: + self.logger.debug('%s %s confidence = %s', + prober.charset_name, + prober.language, + prober.get_confidence()) + else: + self.logger.debug('%s %s confidence = %s', + prober.charset_name, + prober.language, + prober.get_confidence()) + return self.result diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/utf8prober.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/utf8prober.py new file mode 100644 index 00000000..6c3196cc --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/utf8prober.py @@ -0,0 +1,82 @@ +######################## BEGIN LICENSE BLOCK ######################## +# The Original Code is mozilla.org code. +# +# The Initial Developer of the Original Code is +# Netscape Communications Corporation. +# Portions created by the Initial Developer are Copyright (C) 1998 +# the Initial Developer. All Rights Reserved. +# +# Contributor(s): +# Mark Pilgrim - port to Python +# +# This library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# This library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with this library; if not, write to the Free Software +# Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA +# 02110-1301 USA +######################### END LICENSE BLOCK ######################### + +from .charsetprober import CharSetProber +from .enums import ProbingState, MachineState +from .codingstatemachine import CodingStateMachine +from .mbcssm import UTF8_SM_MODEL + + + +class UTF8Prober(CharSetProber): + ONE_CHAR_PROB = 0.5 + + def __init__(self): + super(UTF8Prober, self).__init__() + self.coding_sm = CodingStateMachine(UTF8_SM_MODEL) + self._num_mb_chars = None + self.reset() + + def reset(self): + super(UTF8Prober, self).reset() + self.coding_sm.reset() + self._num_mb_chars = 0 + + @property + def charset_name(self): + return "utf-8" + + @property + def language(self): + return "" + + def feed(self, byte_str): + for c in byte_str: + coding_state = self.coding_sm.next_state(c) + if coding_state == MachineState.ERROR: + self._state = ProbingState.NOT_ME + break + elif coding_state == MachineState.ITS_ME: + self._state = ProbingState.FOUND_IT + break + elif coding_state == MachineState.START: + if self.coding_sm.get_current_charlen() >= 2: + self._num_mb_chars += 1 + + if self.state == ProbingState.DETECTING: + if self.get_confidence() > self.SHORTCUT_THRESHOLD: + self._state = ProbingState.FOUND_IT + + return self.state + + def get_confidence(self): + unlike = 0.99 + if self._num_mb_chars < 6: + unlike *= self.ONE_CHAR_PROB ** self._num_mb_chars + return 1.0 - unlike + else: + return unlike diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/version.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/version.py new file mode 100644 index 00000000..bb2a34a7 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/chardet/version.py @@ -0,0 +1,9 @@ +""" +This module exists only to simplify retrieving the version number of chardet +from within setup.py and from chardet subpackages. + +:author: Dan Blanchard (dan.blanchard@gmail.com) +""" + +__version__ = "3.0.4" +VERSION = __version__.split('.') diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/__init__.py new file mode 100644 index 00000000..f4d9ce21 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/__init__.py @@ -0,0 +1,7 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +from .initialise import init, deinit, reinit, colorama_text +from .ansi import Fore, Back, Style, Cursor +from .ansitowin32 import AnsiToWin32 + +__version__ = '0.3.9' + diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/ansi.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/ansi.py new file mode 100644 index 00000000..78776588 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/ansi.py @@ -0,0 +1,102 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +''' +This module generates ANSI character codes to printing colors to terminals. +See: http://en.wikipedia.org/wiki/ANSI_escape_code +''' + +CSI = '\033[' +OSC = '\033]' +BEL = '\007' + + +def code_to_chars(code): + return CSI + str(code) + 'm' + +def set_title(title): + return OSC + '2;' + title + BEL + +def clear_screen(mode=2): + return CSI + str(mode) + 'J' + +def clear_line(mode=2): + return CSI + str(mode) + 'K' + + +class AnsiCodes(object): + def __init__(self): + # the subclasses declare class attributes which are numbers. + # Upon instantiation we define instance attributes, which are the same + # as the class attributes but wrapped with the ANSI escape sequence + for name in dir(self): + if not name.startswith('_'): + value = getattr(self, name) + setattr(self, name, code_to_chars(value)) + + +class AnsiCursor(object): + def UP(self, n=1): + return CSI + str(n) + 'A' + def DOWN(self, n=1): + return CSI + str(n) + 'B' + def FORWARD(self, n=1): + return CSI + str(n) + 'C' + def BACK(self, n=1): + return CSI + str(n) + 'D' + def POS(self, x=1, y=1): + return CSI + str(y) + ';' + str(x) + 'H' + + +class AnsiFore(AnsiCodes): + BLACK = 30 + RED = 31 + GREEN = 32 + YELLOW = 33 + BLUE = 34 + MAGENTA = 35 + CYAN = 36 + WHITE = 37 + RESET = 39 + + # These are fairly well supported, but not part of the standard. + LIGHTBLACK_EX = 90 + LIGHTRED_EX = 91 + LIGHTGREEN_EX = 92 + LIGHTYELLOW_EX = 93 + LIGHTBLUE_EX = 94 + LIGHTMAGENTA_EX = 95 + LIGHTCYAN_EX = 96 + LIGHTWHITE_EX = 97 + + +class AnsiBack(AnsiCodes): + BLACK = 40 + RED = 41 + GREEN = 42 + YELLOW = 43 + BLUE = 44 + MAGENTA = 45 + CYAN = 46 + WHITE = 47 + RESET = 49 + + # These are fairly well supported, but not part of the standard. + LIGHTBLACK_EX = 100 + LIGHTRED_EX = 101 + LIGHTGREEN_EX = 102 + LIGHTYELLOW_EX = 103 + LIGHTBLUE_EX = 104 + LIGHTMAGENTA_EX = 105 + LIGHTCYAN_EX = 106 + LIGHTWHITE_EX = 107 + + +class AnsiStyle(AnsiCodes): + BRIGHT = 1 + DIM = 2 + NORMAL = 22 + RESET_ALL = 0 + +Fore = AnsiFore() +Back = AnsiBack() +Style = AnsiStyle() +Cursor = AnsiCursor() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/ansitowin32.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/ansitowin32.py new file mode 100644 index 00000000..1d6e6059 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/ansitowin32.py @@ -0,0 +1,236 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +import re +import sys +import os + +from .ansi import AnsiFore, AnsiBack, AnsiStyle, Style +from .winterm import WinTerm, WinColor, WinStyle +from .win32 import windll, winapi_test + + +winterm = None +if windll is not None: + winterm = WinTerm() + + +def is_stream_closed(stream): + return not hasattr(stream, 'closed') or stream.closed + + +def is_a_tty(stream): + return hasattr(stream, 'isatty') and stream.isatty() + + +class StreamWrapper(object): + ''' + Wraps a stream (such as stdout), acting as a transparent proxy for all + attribute access apart from method 'write()', which is delegated to our + Converter instance. + ''' + def __init__(self, wrapped, converter): + # double-underscore everything to prevent clashes with names of + # attributes on the wrapped stream object. + self.__wrapped = wrapped + self.__convertor = converter + + def __getattr__(self, name): + return getattr(self.__wrapped, name) + + def write(self, text): + self.__convertor.write(text) + + +class AnsiToWin32(object): + ''' + Implements a 'write()' method which, on Windows, will strip ANSI character + sequences from the text, and if outputting to a tty, will convert them into + win32 function calls. + ''' + ANSI_CSI_RE = re.compile('\001?\033\\[((?:\\d|;)*)([a-zA-Z])\002?') # Control Sequence Introducer + ANSI_OSC_RE = re.compile('\001?\033\\]((?:.|;)*?)(\x07)\002?') # Operating System Command + + def __init__(self, wrapped, convert=None, strip=None, autoreset=False): + # The wrapped stream (normally sys.stdout or sys.stderr) + self.wrapped = wrapped + + # should we reset colors to defaults after every .write() + self.autoreset = autoreset + + # create the proxy wrapping our output stream + self.stream = StreamWrapper(wrapped, self) + + on_windows = os.name == 'nt' + # We test if the WinAPI works, because even if we are on Windows + # we may be using a terminal that doesn't support the WinAPI + # (e.g. Cygwin Terminal). In this case it's up to the terminal + # to support the ANSI codes. + conversion_supported = on_windows and winapi_test() + + # should we strip ANSI sequences from our output? + if strip is None: + strip = conversion_supported or (not is_stream_closed(wrapped) and not is_a_tty(wrapped)) + self.strip = strip + + # should we should convert ANSI sequences into win32 calls? + if convert is None: + convert = conversion_supported and not is_stream_closed(wrapped) and is_a_tty(wrapped) + self.convert = convert + + # dict of ansi codes to win32 functions and parameters + self.win32_calls = self.get_win32_calls() + + # are we wrapping stderr? + self.on_stderr = self.wrapped is sys.stderr + + def should_wrap(self): + ''' + True if this class is actually needed. If false, then the output + stream will not be affected, nor will win32 calls be issued, so + wrapping stdout is not actually required. This will generally be + False on non-Windows platforms, unless optional functionality like + autoreset has been requested using kwargs to init() + ''' + return self.convert or self.strip or self.autoreset + + def get_win32_calls(self): + if self.convert and winterm: + return { + AnsiStyle.RESET_ALL: (winterm.reset_all, ), + AnsiStyle.BRIGHT: (winterm.style, WinStyle.BRIGHT), + AnsiStyle.DIM: (winterm.style, WinStyle.NORMAL), + AnsiStyle.NORMAL: (winterm.style, WinStyle.NORMAL), + AnsiFore.BLACK: (winterm.fore, WinColor.BLACK), + AnsiFore.RED: (winterm.fore, WinColor.RED), + AnsiFore.GREEN: (winterm.fore, WinColor.GREEN), + AnsiFore.YELLOW: (winterm.fore, WinColor.YELLOW), + AnsiFore.BLUE: (winterm.fore, WinColor.BLUE), + AnsiFore.MAGENTA: (winterm.fore, WinColor.MAGENTA), + AnsiFore.CYAN: (winterm.fore, WinColor.CYAN), + AnsiFore.WHITE: (winterm.fore, WinColor.GREY), + AnsiFore.RESET: (winterm.fore, ), + AnsiFore.LIGHTBLACK_EX: (winterm.fore, WinColor.BLACK, True), + AnsiFore.LIGHTRED_EX: (winterm.fore, WinColor.RED, True), + AnsiFore.LIGHTGREEN_EX: (winterm.fore, WinColor.GREEN, True), + AnsiFore.LIGHTYELLOW_EX: (winterm.fore, WinColor.YELLOW, True), + AnsiFore.LIGHTBLUE_EX: (winterm.fore, WinColor.BLUE, True), + AnsiFore.LIGHTMAGENTA_EX: (winterm.fore, WinColor.MAGENTA, True), + AnsiFore.LIGHTCYAN_EX: (winterm.fore, WinColor.CYAN, True), + AnsiFore.LIGHTWHITE_EX: (winterm.fore, WinColor.GREY, True), + AnsiBack.BLACK: (winterm.back, WinColor.BLACK), + AnsiBack.RED: (winterm.back, WinColor.RED), + AnsiBack.GREEN: (winterm.back, WinColor.GREEN), + AnsiBack.YELLOW: (winterm.back, WinColor.YELLOW), + AnsiBack.BLUE: (winterm.back, WinColor.BLUE), + AnsiBack.MAGENTA: (winterm.back, WinColor.MAGENTA), + AnsiBack.CYAN: (winterm.back, WinColor.CYAN), + AnsiBack.WHITE: (winterm.back, WinColor.GREY), + AnsiBack.RESET: (winterm.back, ), + AnsiBack.LIGHTBLACK_EX: (winterm.back, WinColor.BLACK, True), + AnsiBack.LIGHTRED_EX: (winterm.back, WinColor.RED, True), + AnsiBack.LIGHTGREEN_EX: (winterm.back, WinColor.GREEN, True), + AnsiBack.LIGHTYELLOW_EX: (winterm.back, WinColor.YELLOW, True), + AnsiBack.LIGHTBLUE_EX: (winterm.back, WinColor.BLUE, True), + AnsiBack.LIGHTMAGENTA_EX: (winterm.back, WinColor.MAGENTA, True), + AnsiBack.LIGHTCYAN_EX: (winterm.back, WinColor.CYAN, True), + AnsiBack.LIGHTWHITE_EX: (winterm.back, WinColor.GREY, True), + } + return dict() + + def write(self, text): + if self.strip or self.convert: + self.write_and_convert(text) + else: + self.wrapped.write(text) + self.wrapped.flush() + if self.autoreset: + self.reset_all() + + + def reset_all(self): + if self.convert: + self.call_win32('m', (0,)) + elif not self.strip and not is_stream_closed(self.wrapped): + self.wrapped.write(Style.RESET_ALL) + + + def write_and_convert(self, text): + ''' + Write the given text to our wrapped stream, stripping any ANSI + sequences from the text, and optionally converting them into win32 + calls. + ''' + cursor = 0 + text = self.convert_osc(text) + for match in self.ANSI_CSI_RE.finditer(text): + start, end = match.span() + self.write_plain_text(text, cursor, start) + self.convert_ansi(*match.groups()) + cursor = end + self.write_plain_text(text, cursor, len(text)) + + + def write_plain_text(self, text, start, end): + if start < end: + self.wrapped.write(text[start:end]) + self.wrapped.flush() + + + def convert_ansi(self, paramstring, command): + if self.convert: + params = self.extract_params(command, paramstring) + self.call_win32(command, params) + + + def extract_params(self, command, paramstring): + if command in 'Hf': + params = tuple(int(p) if len(p) != 0 else 1 for p in paramstring.split(';')) + while len(params) < 2: + # defaults: + params = params + (1,) + else: + params = tuple(int(p) for p in paramstring.split(';') if len(p) != 0) + if len(params) == 0: + # defaults: + if command in 'JKm': + params = (0,) + elif command in 'ABCD': + params = (1,) + + return params + + + def call_win32(self, command, params): + if command == 'm': + for param in params: + if param in self.win32_calls: + func_args = self.win32_calls[param] + func = func_args[0] + args = func_args[1:] + kwargs = dict(on_stderr=self.on_stderr) + func(*args, **kwargs) + elif command in 'J': + winterm.erase_screen(params[0], on_stderr=self.on_stderr) + elif command in 'K': + winterm.erase_line(params[0], on_stderr=self.on_stderr) + elif command in 'Hf': # cursor position - absolute + winterm.set_cursor_position(params, on_stderr=self.on_stderr) + elif command in 'ABCD': # cursor position - relative + n = params[0] + # A - up, B - down, C - forward, D - back + x, y = {'A': (0, -n), 'B': (0, n), 'C': (n, 0), 'D': (-n, 0)}[command] + winterm.cursor_adjust(x, y, on_stderr=self.on_stderr) + + + def convert_osc(self, text): + for match in self.ANSI_OSC_RE.finditer(text): + start, end = match.span() + text = text[:start] + text[end:] + paramstring, command = match.groups() + if command in '\x07': # \x07 = BEL + params = paramstring.split(";") + # 0 - change title and icon (we will only change title) + # 1 - change icon (we don't support this) + # 2 - change title + if params[0] in '02': + winterm.set_title(params[1]) + return text diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/initialise.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/initialise.py new file mode 100644 index 00000000..834962a3 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/initialise.py @@ -0,0 +1,82 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +import atexit +import contextlib +import sys + +from .ansitowin32 import AnsiToWin32 + + +orig_stdout = None +orig_stderr = None + +wrapped_stdout = None +wrapped_stderr = None + +atexit_done = False + + +def reset_all(): + if AnsiToWin32 is not None: # Issue #74: objects might become None at exit + AnsiToWin32(orig_stdout).reset_all() + + +def init(autoreset=False, convert=None, strip=None, wrap=True): + + if not wrap and any([autoreset, convert, strip]): + raise ValueError('wrap=False conflicts with any other arg=True') + + global wrapped_stdout, wrapped_stderr + global orig_stdout, orig_stderr + + orig_stdout = sys.stdout + orig_stderr = sys.stderr + + if sys.stdout is None: + wrapped_stdout = None + else: + sys.stdout = wrapped_stdout = \ + wrap_stream(orig_stdout, convert, strip, autoreset, wrap) + if sys.stderr is None: + wrapped_stderr = None + else: + sys.stderr = wrapped_stderr = \ + wrap_stream(orig_stderr, convert, strip, autoreset, wrap) + + global atexit_done + if not atexit_done: + atexit.register(reset_all) + atexit_done = True + + +def deinit(): + if orig_stdout is not None: + sys.stdout = orig_stdout + if orig_stderr is not None: + sys.stderr = orig_stderr + + +@contextlib.contextmanager +def colorama_text(*args, **kwargs): + init(*args, **kwargs) + try: + yield + finally: + deinit() + + +def reinit(): + if wrapped_stdout is not None: + sys.stdout = wrapped_stdout + if wrapped_stderr is not None: + sys.stderr = wrapped_stderr + + +def wrap_stream(stream, convert, strip, autoreset, wrap): + if wrap: + wrapper = AnsiToWin32(stream, + convert=convert, strip=strip, autoreset=autoreset) + if wrapper.should_wrap(): + stream = wrapper.stream + return stream + + diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/win32.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/win32.py new file mode 100644 index 00000000..8262e350 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/win32.py @@ -0,0 +1,156 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. + +# from winbase.h +STDOUT = -11 +STDERR = -12 + +try: + import ctypes + from ctypes import LibraryLoader + windll = LibraryLoader(ctypes.WinDLL) + from ctypes import wintypes +except (AttributeError, ImportError): + windll = None + SetConsoleTextAttribute = lambda *_: None + winapi_test = lambda *_: None +else: + from ctypes import byref, Structure, c_char, POINTER + + COORD = wintypes._COORD + + class CONSOLE_SCREEN_BUFFER_INFO(Structure): + """struct in wincon.h.""" + _fields_ = [ + ("dwSize", COORD), + ("dwCursorPosition", COORD), + ("wAttributes", wintypes.WORD), + ("srWindow", wintypes.SMALL_RECT), + ("dwMaximumWindowSize", COORD), + ] + def __str__(self): + return '(%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%d)' % ( + self.dwSize.Y, self.dwSize.X + , self.dwCursorPosition.Y, self.dwCursorPosition.X + , self.wAttributes + , self.srWindow.Top, self.srWindow.Left, self.srWindow.Bottom, self.srWindow.Right + , self.dwMaximumWindowSize.Y, self.dwMaximumWindowSize.X + ) + + _GetStdHandle = windll.kernel32.GetStdHandle + _GetStdHandle.argtypes = [ + wintypes.DWORD, + ] + _GetStdHandle.restype = wintypes.HANDLE + + _GetConsoleScreenBufferInfo = windll.kernel32.GetConsoleScreenBufferInfo + _GetConsoleScreenBufferInfo.argtypes = [ + wintypes.HANDLE, + POINTER(CONSOLE_SCREEN_BUFFER_INFO), + ] + _GetConsoleScreenBufferInfo.restype = wintypes.BOOL + + _SetConsoleTextAttribute = windll.kernel32.SetConsoleTextAttribute + _SetConsoleTextAttribute.argtypes = [ + wintypes.HANDLE, + wintypes.WORD, + ] + _SetConsoleTextAttribute.restype = wintypes.BOOL + + _SetConsoleCursorPosition = windll.kernel32.SetConsoleCursorPosition + _SetConsoleCursorPosition.argtypes = [ + wintypes.HANDLE, + COORD, + ] + _SetConsoleCursorPosition.restype = wintypes.BOOL + + _FillConsoleOutputCharacterA = windll.kernel32.FillConsoleOutputCharacterA + _FillConsoleOutputCharacterA.argtypes = [ + wintypes.HANDLE, + c_char, + wintypes.DWORD, + COORD, + POINTER(wintypes.DWORD), + ] + _FillConsoleOutputCharacterA.restype = wintypes.BOOL + + _FillConsoleOutputAttribute = windll.kernel32.FillConsoleOutputAttribute + _FillConsoleOutputAttribute.argtypes = [ + wintypes.HANDLE, + wintypes.WORD, + wintypes.DWORD, + COORD, + POINTER(wintypes.DWORD), + ] + _FillConsoleOutputAttribute.restype = wintypes.BOOL + + _SetConsoleTitleW = windll.kernel32.SetConsoleTitleW + _SetConsoleTitleW.argtypes = [ + wintypes.LPCWSTR + ] + _SetConsoleTitleW.restype = wintypes.BOOL + + handles = { + STDOUT: _GetStdHandle(STDOUT), + STDERR: _GetStdHandle(STDERR), + } + + def _winapi_test(handle): + csbi = CONSOLE_SCREEN_BUFFER_INFO() + success = _GetConsoleScreenBufferInfo( + handle, byref(csbi)) + return bool(success) + + def winapi_test(): + return any(_winapi_test(h) for h in handles.values()) + + def GetConsoleScreenBufferInfo(stream_id=STDOUT): + handle = handles[stream_id] + csbi = CONSOLE_SCREEN_BUFFER_INFO() + success = _GetConsoleScreenBufferInfo( + handle, byref(csbi)) + return csbi + + def SetConsoleTextAttribute(stream_id, attrs): + handle = handles[stream_id] + return _SetConsoleTextAttribute(handle, attrs) + + def SetConsoleCursorPosition(stream_id, position, adjust=True): + position = COORD(*position) + # If the position is out of range, do nothing. + if position.Y <= 0 or position.X <= 0: + return + # Adjust for Windows' SetConsoleCursorPosition: + # 1. being 0-based, while ANSI is 1-based. + # 2. expecting (x,y), while ANSI uses (y,x). + adjusted_position = COORD(position.Y - 1, position.X - 1) + if adjust: + # Adjust for viewport's scroll position + sr = GetConsoleScreenBufferInfo(STDOUT).srWindow + adjusted_position.Y += sr.Top + adjusted_position.X += sr.Left + # Resume normal processing + handle = handles[stream_id] + return _SetConsoleCursorPosition(handle, adjusted_position) + + def FillConsoleOutputCharacter(stream_id, char, length, start): + handle = handles[stream_id] + char = c_char(char.encode()) + length = wintypes.DWORD(length) + num_written = wintypes.DWORD(0) + # Note that this is hard-coded for ANSI (vs wide) bytes. + success = _FillConsoleOutputCharacterA( + handle, char, length, start, byref(num_written)) + return num_written.value + + def FillConsoleOutputAttribute(stream_id, attr, length, start): + ''' FillConsoleOutputAttribute( hConsole, csbi.wAttributes, dwConSize, coordScreen, &cCharsWritten )''' + handle = handles[stream_id] + attribute = wintypes.WORD(attr) + length = wintypes.DWORD(length) + num_written = wintypes.DWORD(0) + # Note that this is hard-coded for ANSI (vs wide) bytes. + return _FillConsoleOutputAttribute( + handle, attribute, length, start, byref(num_written)) + + def SetConsoleTitle(title): + return _SetConsoleTitleW(title) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/winterm.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/winterm.py new file mode 100644 index 00000000..60309d3c --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/colorama/winterm.py @@ -0,0 +1,162 @@ +# Copyright Jonathan Hartley 2013. BSD 3-Clause license, see LICENSE file. +from . import win32 + + +# from wincon.h +class WinColor(object): + BLACK = 0 + BLUE = 1 + GREEN = 2 + CYAN = 3 + RED = 4 + MAGENTA = 5 + YELLOW = 6 + GREY = 7 + +# from wincon.h +class WinStyle(object): + NORMAL = 0x00 # dim text, dim background + BRIGHT = 0x08 # bright text, dim background + BRIGHT_BACKGROUND = 0x80 # dim text, bright background + +class WinTerm(object): + + def __init__(self): + self._default = win32.GetConsoleScreenBufferInfo(win32.STDOUT).wAttributes + self.set_attrs(self._default) + self._default_fore = self._fore + self._default_back = self._back + self._default_style = self._style + # In order to emulate LIGHT_EX in windows, we borrow the BRIGHT style. + # So that LIGHT_EX colors and BRIGHT style do not clobber each other, + # we track them separately, since LIGHT_EX is overwritten by Fore/Back + # and BRIGHT is overwritten by Style codes. + self._light = 0 + + def get_attrs(self): + return self._fore + self._back * 16 + (self._style | self._light) + + def set_attrs(self, value): + self._fore = value & 7 + self._back = (value >> 4) & 7 + self._style = value & (WinStyle.BRIGHT | WinStyle.BRIGHT_BACKGROUND) + + def reset_all(self, on_stderr=None): + self.set_attrs(self._default) + self.set_console(attrs=self._default) + + def fore(self, fore=None, light=False, on_stderr=False): + if fore is None: + fore = self._default_fore + self._fore = fore + # Emulate LIGHT_EX with BRIGHT Style + if light: + self._light |= WinStyle.BRIGHT + else: + self._light &= ~WinStyle.BRIGHT + self.set_console(on_stderr=on_stderr) + + def back(self, back=None, light=False, on_stderr=False): + if back is None: + back = self._default_back + self._back = back + # Emulate LIGHT_EX with BRIGHT_BACKGROUND Style + if light: + self._light |= WinStyle.BRIGHT_BACKGROUND + else: + self._light &= ~WinStyle.BRIGHT_BACKGROUND + self.set_console(on_stderr=on_stderr) + + def style(self, style=None, on_stderr=False): + if style is None: + style = self._default_style + self._style = style + self.set_console(on_stderr=on_stderr) + + def set_console(self, attrs=None, on_stderr=False): + if attrs is None: + attrs = self.get_attrs() + handle = win32.STDOUT + if on_stderr: + handle = win32.STDERR + win32.SetConsoleTextAttribute(handle, attrs) + + def get_position(self, handle): + position = win32.GetConsoleScreenBufferInfo(handle).dwCursorPosition + # Because Windows coordinates are 0-based, + # and win32.SetConsoleCursorPosition expects 1-based. + position.X += 1 + position.Y += 1 + return position + + def set_cursor_position(self, position=None, on_stderr=False): + if position is None: + # I'm not currently tracking the position, so there is no default. + # position = self.get_position() + return + handle = win32.STDOUT + if on_stderr: + handle = win32.STDERR + win32.SetConsoleCursorPosition(handle, position) + + def cursor_adjust(self, x, y, on_stderr=False): + handle = win32.STDOUT + if on_stderr: + handle = win32.STDERR + position = self.get_position(handle) + adjusted_position = (position.Y + y, position.X + x) + win32.SetConsoleCursorPosition(handle, adjusted_position, adjust=False) + + def erase_screen(self, mode=0, on_stderr=False): + # 0 should clear from the cursor to the end of the screen. + # 1 should clear from the cursor to the beginning of the screen. + # 2 should clear the entire screen, and move cursor to (1,1) + handle = win32.STDOUT + if on_stderr: + handle = win32.STDERR + csbi = win32.GetConsoleScreenBufferInfo(handle) + # get the number of character cells in the current buffer + cells_in_screen = csbi.dwSize.X * csbi.dwSize.Y + # get number of character cells before current cursor position + cells_before_cursor = csbi.dwSize.X * csbi.dwCursorPosition.Y + csbi.dwCursorPosition.X + if mode == 0: + from_coord = csbi.dwCursorPosition + cells_to_erase = cells_in_screen - cells_before_cursor + if mode == 1: + from_coord = win32.COORD(0, 0) + cells_to_erase = cells_before_cursor + elif mode == 2: + from_coord = win32.COORD(0, 0) + cells_to_erase = cells_in_screen + # fill the entire screen with blanks + win32.FillConsoleOutputCharacter(handle, ' ', cells_to_erase, from_coord) + # now set the buffer's attributes accordingly + win32.FillConsoleOutputAttribute(handle, self.get_attrs(), cells_to_erase, from_coord) + if mode == 2: + # put the cursor where needed + win32.SetConsoleCursorPosition(handle, (1, 1)) + + def erase_line(self, mode=0, on_stderr=False): + # 0 should clear from the cursor to the end of the line. + # 1 should clear from the cursor to the beginning of the line. + # 2 should clear the entire line. + handle = win32.STDOUT + if on_stderr: + handle = win32.STDERR + csbi = win32.GetConsoleScreenBufferInfo(handle) + if mode == 0: + from_coord = csbi.dwCursorPosition + cells_to_erase = csbi.dwSize.X - csbi.dwCursorPosition.X + if mode == 1: + from_coord = win32.COORD(0, csbi.dwCursorPosition.Y) + cells_to_erase = csbi.dwCursorPosition.X + elif mode == 2: + from_coord = win32.COORD(0, csbi.dwCursorPosition.Y) + cells_to_erase = csbi.dwSize.X + # fill the entire screen with blanks + win32.FillConsoleOutputCharacter(handle, ' ', cells_to_erase, from_coord) + # now set the buffer's attributes accordingly + win32.FillConsoleOutputAttribute(handle, self.get_attrs(), cells_to_erase, from_coord) + + def set_title(self, title): + win32.SetConsoleTitle(title) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/__init__.py new file mode 100644 index 00000000..d4aab453 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/__init__.py @@ -0,0 +1,23 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2012-2017 Vinay Sajip. +# Licensed to the Python Software Foundation under a contributor agreement. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +import logging + +__version__ = '0.2.7' + +class DistlibException(Exception): + pass + +try: + from logging import NullHandler +except ImportError: # pragma: no cover + class NullHandler(logging.Handler): + def handle(self, record): pass + def emit(self, record): pass + def createLock(self): self.lock = None + +logger = logging.getLogger(__name__) +logger.addHandler(NullHandler()) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/__init__.py new file mode 100644 index 00000000..f7dbf4c9 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/__init__.py @@ -0,0 +1,6 @@ +"""Modules copied from Python 3 standard libraries, for internal use only. + +Individual classes and functions are found in d2._backport.misc. Intended +usage is to always import things missing from 3.1 from that module: the +built-in/stdlib objects will be used if found. +""" diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/misc.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/misc.py new file mode 100644 index 00000000..cfb318d3 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/misc.py @@ -0,0 +1,41 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2012 The Python Software Foundation. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +"""Backports for individual classes and functions.""" + +import os +import sys + +__all__ = ['cache_from_source', 'callable', 'fsencode'] + + +try: + from imp import cache_from_source +except ImportError: + def cache_from_source(py_file, debug=__debug__): + ext = debug and 'c' or 'o' + return py_file + ext + + +try: + callable = callable +except NameError: + from collections import Callable + + def callable(obj): + return isinstance(obj, Callable) + + +try: + fsencode = os.fsencode +except AttributeError: + def fsencode(filename): + if isinstance(filename, bytes): + return filename + elif isinstance(filename, str): + return filename.encode(sys.getfilesystemencoding()) + else: + raise TypeError("expect bytes or str, not %s" % + type(filename).__name__) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/shutil.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/shutil.py new file mode 100644 index 00000000..159e49ee --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/shutil.py @@ -0,0 +1,761 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2012 The Python Software Foundation. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +"""Utility functions for copying and archiving files and directory trees. + +XXX The functions here don't copy the resource fork or other metadata on Mac. + +""" + +import os +import sys +import stat +from os.path import abspath +import fnmatch +import collections +import errno +from . import tarfile + +try: + import bz2 + _BZ2_SUPPORTED = True +except ImportError: + _BZ2_SUPPORTED = False + +try: + from pwd import getpwnam +except ImportError: + getpwnam = None + +try: + from grp import getgrnam +except ImportError: + getgrnam = None + +__all__ = ["copyfileobj", "copyfile", "copymode", "copystat", "copy", "copy2", + "copytree", "move", "rmtree", "Error", "SpecialFileError", + "ExecError", "make_archive", "get_archive_formats", + "register_archive_format", "unregister_archive_format", + "get_unpack_formats", "register_unpack_format", + "unregister_unpack_format", "unpack_archive", "ignore_patterns"] + +class Error(EnvironmentError): + pass + +class SpecialFileError(EnvironmentError): + """Raised when trying to do a kind of operation (e.g. copying) which is + not supported on a special file (e.g. a named pipe)""" + +class ExecError(EnvironmentError): + """Raised when a command could not be executed""" + +class ReadError(EnvironmentError): + """Raised when an archive cannot be read""" + +class RegistryError(Exception): + """Raised when a registry operation with the archiving + and unpacking registries fails""" + + +try: + WindowsError +except NameError: + WindowsError = None + +def copyfileobj(fsrc, fdst, length=16*1024): + """copy data from file-like object fsrc to file-like object fdst""" + while 1: + buf = fsrc.read(length) + if not buf: + break + fdst.write(buf) + +def _samefile(src, dst): + # Macintosh, Unix. + if hasattr(os.path, 'samefile'): + try: + return os.path.samefile(src, dst) + except OSError: + return False + + # All other platforms: check for same pathname. + return (os.path.normcase(os.path.abspath(src)) == + os.path.normcase(os.path.abspath(dst))) + +def copyfile(src, dst): + """Copy data from src to dst""" + if _samefile(src, dst): + raise Error("`%s` and `%s` are the same file" % (src, dst)) + + for fn in [src, dst]: + try: + st = os.stat(fn) + except OSError: + # File most likely does not exist + pass + else: + # XXX What about other special files? (sockets, devices...) + if stat.S_ISFIFO(st.st_mode): + raise SpecialFileError("`%s` is a named pipe" % fn) + + with open(src, 'rb') as fsrc: + with open(dst, 'wb') as fdst: + copyfileobj(fsrc, fdst) + +def copymode(src, dst): + """Copy mode bits from src to dst""" + if hasattr(os, 'chmod'): + st = os.stat(src) + mode = stat.S_IMODE(st.st_mode) + os.chmod(dst, mode) + +def copystat(src, dst): + """Copy all stat info (mode bits, atime, mtime, flags) from src to dst""" + st = os.stat(src) + mode = stat.S_IMODE(st.st_mode) + if hasattr(os, 'utime'): + os.utime(dst, (st.st_atime, st.st_mtime)) + if hasattr(os, 'chmod'): + os.chmod(dst, mode) + if hasattr(os, 'chflags') and hasattr(st, 'st_flags'): + try: + os.chflags(dst, st.st_flags) + except OSError as why: + if (not hasattr(errno, 'EOPNOTSUPP') or + why.errno != errno.EOPNOTSUPP): + raise + +def copy(src, dst): + """Copy data and mode bits ("cp src dst"). + + The destination may be a directory. + + """ + if os.path.isdir(dst): + dst = os.path.join(dst, os.path.basename(src)) + copyfile(src, dst) + copymode(src, dst) + +def copy2(src, dst): + """Copy data and all stat info ("cp -p src dst"). + + The destination may be a directory. + + """ + if os.path.isdir(dst): + dst = os.path.join(dst, os.path.basename(src)) + copyfile(src, dst) + copystat(src, dst) + +def ignore_patterns(*patterns): + """Function that can be used as copytree() ignore parameter. + + Patterns is a sequence of glob-style patterns + that are used to exclude files""" + def _ignore_patterns(path, names): + ignored_names = [] + for pattern in patterns: + ignored_names.extend(fnmatch.filter(names, pattern)) + return set(ignored_names) + return _ignore_patterns + +def copytree(src, dst, symlinks=False, ignore=None, copy_function=copy2, + ignore_dangling_symlinks=False): + """Recursively copy a directory tree. + + The destination directory must not already exist. + If exception(s) occur, an Error is raised with a list of reasons. + + If the optional symlinks flag is true, symbolic links in the + source tree result in symbolic links in the destination tree; if + it is false, the contents of the files pointed to by symbolic + links are copied. If the file pointed by the symlink doesn't + exist, an exception will be added in the list of errors raised in + an Error exception at the end of the copy process. + + You can set the optional ignore_dangling_symlinks flag to true if you + want to silence this exception. Notice that this has no effect on + platforms that don't support os.symlink. + + The optional ignore argument is a callable. If given, it + is called with the `src` parameter, which is the directory + being visited by copytree(), and `names` which is the list of + `src` contents, as returned by os.listdir(): + + callable(src, names) -> ignored_names + + Since copytree() is called recursively, the callable will be + called once for each directory that is copied. It returns a + list of names relative to the `src` directory that should + not be copied. + + The optional copy_function argument is a callable that will be used + to copy each file. It will be called with the source path and the + destination path as arguments. By default, copy2() is used, but any + function that supports the same signature (like copy()) can be used. + + """ + names = os.listdir(src) + if ignore is not None: + ignored_names = ignore(src, names) + else: + ignored_names = set() + + os.makedirs(dst) + errors = [] + for name in names: + if name in ignored_names: + continue + srcname = os.path.join(src, name) + dstname = os.path.join(dst, name) + try: + if os.path.islink(srcname): + linkto = os.readlink(srcname) + if symlinks: + os.symlink(linkto, dstname) + else: + # ignore dangling symlink if the flag is on + if not os.path.exists(linkto) and ignore_dangling_symlinks: + continue + # otherwise let the copy occurs. copy2 will raise an error + copy_function(srcname, dstname) + elif os.path.isdir(srcname): + copytree(srcname, dstname, symlinks, ignore, copy_function) + else: + # Will raise a SpecialFileError for unsupported file types + copy_function(srcname, dstname) + # catch the Error from the recursive copytree so that we can + # continue with other files + except Error as err: + errors.extend(err.args[0]) + except EnvironmentError as why: + errors.append((srcname, dstname, str(why))) + try: + copystat(src, dst) + except OSError as why: + if WindowsError is not None and isinstance(why, WindowsError): + # Copying file access times may fail on Windows + pass + else: + errors.extend((src, dst, str(why))) + if errors: + raise Error(errors) + +def rmtree(path, ignore_errors=False, onerror=None): + """Recursively delete a directory tree. + + If ignore_errors is set, errors are ignored; otherwise, if onerror + is set, it is called to handle the error with arguments (func, + path, exc_info) where func is os.listdir, os.remove, or os.rmdir; + path is the argument to that function that caused it to fail; and + exc_info is a tuple returned by sys.exc_info(). If ignore_errors + is false and onerror is None, an exception is raised. + + """ + if ignore_errors: + def onerror(*args): + pass + elif onerror is None: + def onerror(*args): + raise + try: + if os.path.islink(path): + # symlinks to directories are forbidden, see bug #1669 + raise OSError("Cannot call rmtree on a symbolic link") + except OSError: + onerror(os.path.islink, path, sys.exc_info()) + # can't continue even if onerror hook returns + return + names = [] + try: + names = os.listdir(path) + except os.error: + onerror(os.listdir, path, sys.exc_info()) + for name in names: + fullname = os.path.join(path, name) + try: + mode = os.lstat(fullname).st_mode + except os.error: + mode = 0 + if stat.S_ISDIR(mode): + rmtree(fullname, ignore_errors, onerror) + else: + try: + os.remove(fullname) + except os.error: + onerror(os.remove, fullname, sys.exc_info()) + try: + os.rmdir(path) + except os.error: + onerror(os.rmdir, path, sys.exc_info()) + + +def _basename(path): + # A basename() variant which first strips the trailing slash, if present. + # Thus we always get the last component of the path, even for directories. + return os.path.basename(path.rstrip(os.path.sep)) + +def move(src, dst): + """Recursively move a file or directory to another location. This is + similar to the Unix "mv" command. + + If the destination is a directory or a symlink to a directory, the source + is moved inside the directory. The destination path must not already + exist. + + If the destination already exists but is not a directory, it may be + overwritten depending on os.rename() semantics. + + If the destination is on our current filesystem, then rename() is used. + Otherwise, src is copied to the destination and then removed. + A lot more could be done here... A look at a mv.c shows a lot of + the issues this implementation glosses over. + + """ + real_dst = dst + if os.path.isdir(dst): + if _samefile(src, dst): + # We might be on a case insensitive filesystem, + # perform the rename anyway. + os.rename(src, dst) + return + + real_dst = os.path.join(dst, _basename(src)) + if os.path.exists(real_dst): + raise Error("Destination path '%s' already exists" % real_dst) + try: + os.rename(src, real_dst) + except OSError: + if os.path.isdir(src): + if _destinsrc(src, dst): + raise Error("Cannot move a directory '%s' into itself '%s'." % (src, dst)) + copytree(src, real_dst, symlinks=True) + rmtree(src) + else: + copy2(src, real_dst) + os.unlink(src) + +def _destinsrc(src, dst): + src = abspath(src) + dst = abspath(dst) + if not src.endswith(os.path.sep): + src += os.path.sep + if not dst.endswith(os.path.sep): + dst += os.path.sep + return dst.startswith(src) + +def _get_gid(name): + """Returns a gid, given a group name.""" + if getgrnam is None or name is None: + return None + try: + result = getgrnam(name) + except KeyError: + result = None + if result is not None: + return result[2] + return None + +def _get_uid(name): + """Returns an uid, given a user name.""" + if getpwnam is None or name is None: + return None + try: + result = getpwnam(name) + except KeyError: + result = None + if result is not None: + return result[2] + return None + +def _make_tarball(base_name, base_dir, compress="gzip", verbose=0, dry_run=0, + owner=None, group=None, logger=None): + """Create a (possibly compressed) tar file from all the files under + 'base_dir'. + + 'compress' must be "gzip" (the default), "bzip2", or None. + + 'owner' and 'group' can be used to define an owner and a group for the + archive that is being built. If not provided, the current owner and group + will be used. + + The output tar file will be named 'base_name' + ".tar", possibly plus + the appropriate compression extension (".gz", or ".bz2"). + + Returns the output filename. + """ + tar_compression = {'gzip': 'gz', None: ''} + compress_ext = {'gzip': '.gz'} + + if _BZ2_SUPPORTED: + tar_compression['bzip2'] = 'bz2' + compress_ext['bzip2'] = '.bz2' + + # flags for compression program, each element of list will be an argument + if compress is not None and compress not in compress_ext: + raise ValueError("bad value for 'compress', or compression format not " + "supported : {0}".format(compress)) + + archive_name = base_name + '.tar' + compress_ext.get(compress, '') + archive_dir = os.path.dirname(archive_name) + + if not os.path.exists(archive_dir): + if logger is not None: + logger.info("creating %s", archive_dir) + if not dry_run: + os.makedirs(archive_dir) + + # creating the tarball + if logger is not None: + logger.info('Creating tar archive') + + uid = _get_uid(owner) + gid = _get_gid(group) + + def _set_uid_gid(tarinfo): + if gid is not None: + tarinfo.gid = gid + tarinfo.gname = group + if uid is not None: + tarinfo.uid = uid + tarinfo.uname = owner + return tarinfo + + if not dry_run: + tar = tarfile.open(archive_name, 'w|%s' % tar_compression[compress]) + try: + tar.add(base_dir, filter=_set_uid_gid) + finally: + tar.close() + + return archive_name + +def _call_external_zip(base_dir, zip_filename, verbose=False, dry_run=False): + # XXX see if we want to keep an external call here + if verbose: + zipoptions = "-r" + else: + zipoptions = "-rq" + from distutils.errors import DistutilsExecError + from distutils.spawn import spawn + try: + spawn(["zip", zipoptions, zip_filename, base_dir], dry_run=dry_run) + except DistutilsExecError: + # XXX really should distinguish between "couldn't find + # external 'zip' command" and "zip failed". + raise ExecError("unable to create zip file '%s': " + "could neither import the 'zipfile' module nor " + "find a standalone zip utility") % zip_filename + +def _make_zipfile(base_name, base_dir, verbose=0, dry_run=0, logger=None): + """Create a zip file from all the files under 'base_dir'. + + The output zip file will be named 'base_name' + ".zip". Uses either the + "zipfile" Python module (if available) or the InfoZIP "zip" utility + (if installed and found on the default search path). If neither tool is + available, raises ExecError. Returns the name of the output zip + file. + """ + zip_filename = base_name + ".zip" + archive_dir = os.path.dirname(base_name) + + if not os.path.exists(archive_dir): + if logger is not None: + logger.info("creating %s", archive_dir) + if not dry_run: + os.makedirs(archive_dir) + + # If zipfile module is not available, try spawning an external 'zip' + # command. + try: + import zipfile + except ImportError: + zipfile = None + + if zipfile is None: + _call_external_zip(base_dir, zip_filename, verbose, dry_run) + else: + if logger is not None: + logger.info("creating '%s' and adding '%s' to it", + zip_filename, base_dir) + + if not dry_run: + zip = zipfile.ZipFile(zip_filename, "w", + compression=zipfile.ZIP_DEFLATED) + + for dirpath, dirnames, filenames in os.walk(base_dir): + for name in filenames: + path = os.path.normpath(os.path.join(dirpath, name)) + if os.path.isfile(path): + zip.write(path, path) + if logger is not None: + logger.info("adding '%s'", path) + zip.close() + + return zip_filename + +_ARCHIVE_FORMATS = { + 'gztar': (_make_tarball, [('compress', 'gzip')], "gzip'ed tar-file"), + 'bztar': (_make_tarball, [('compress', 'bzip2')], "bzip2'ed tar-file"), + 'tar': (_make_tarball, [('compress', None)], "uncompressed tar file"), + 'zip': (_make_zipfile, [], "ZIP file"), + } + +if _BZ2_SUPPORTED: + _ARCHIVE_FORMATS['bztar'] = (_make_tarball, [('compress', 'bzip2')], + "bzip2'ed tar-file") + +def get_archive_formats(): + """Returns a list of supported formats for archiving and unarchiving. + + Each element of the returned sequence is a tuple (name, description) + """ + formats = [(name, registry[2]) for name, registry in + _ARCHIVE_FORMATS.items()] + formats.sort() + return formats + +def register_archive_format(name, function, extra_args=None, description=''): + """Registers an archive format. + + name is the name of the format. function is the callable that will be + used to create archives. If provided, extra_args is a sequence of + (name, value) tuples that will be passed as arguments to the callable. + description can be provided to describe the format, and will be returned + by the get_archive_formats() function. + """ + if extra_args is None: + extra_args = [] + if not isinstance(function, collections.Callable): + raise TypeError('The %s object is not callable' % function) + if not isinstance(extra_args, (tuple, list)): + raise TypeError('extra_args needs to be a sequence') + for element in extra_args: + if not isinstance(element, (tuple, list)) or len(element) !=2: + raise TypeError('extra_args elements are : (arg_name, value)') + + _ARCHIVE_FORMATS[name] = (function, extra_args, description) + +def unregister_archive_format(name): + del _ARCHIVE_FORMATS[name] + +def make_archive(base_name, format, root_dir=None, base_dir=None, verbose=0, + dry_run=0, owner=None, group=None, logger=None): + """Create an archive file (eg. zip or tar). + + 'base_name' is the name of the file to create, minus any format-specific + extension; 'format' is the archive format: one of "zip", "tar", "bztar" + or "gztar". + + 'root_dir' is a directory that will be the root directory of the + archive; ie. we typically chdir into 'root_dir' before creating the + archive. 'base_dir' is the directory where we start archiving from; + ie. 'base_dir' will be the common prefix of all files and + directories in the archive. 'root_dir' and 'base_dir' both default + to the current directory. Returns the name of the archive file. + + 'owner' and 'group' are used when creating a tar archive. By default, + uses the current owner and group. + """ + save_cwd = os.getcwd() + if root_dir is not None: + if logger is not None: + logger.debug("changing into '%s'", root_dir) + base_name = os.path.abspath(base_name) + if not dry_run: + os.chdir(root_dir) + + if base_dir is None: + base_dir = os.curdir + + kwargs = {'dry_run': dry_run, 'logger': logger} + + try: + format_info = _ARCHIVE_FORMATS[format] + except KeyError: + raise ValueError("unknown archive format '%s'" % format) + + func = format_info[0] + for arg, val in format_info[1]: + kwargs[arg] = val + + if format != 'zip': + kwargs['owner'] = owner + kwargs['group'] = group + + try: + filename = func(base_name, base_dir, **kwargs) + finally: + if root_dir is not None: + if logger is not None: + logger.debug("changing back to '%s'", save_cwd) + os.chdir(save_cwd) + + return filename + + +def get_unpack_formats(): + """Returns a list of supported formats for unpacking. + + Each element of the returned sequence is a tuple + (name, extensions, description) + """ + formats = [(name, info[0], info[3]) for name, info in + _UNPACK_FORMATS.items()] + formats.sort() + return formats + +def _check_unpack_options(extensions, function, extra_args): + """Checks what gets registered as an unpacker.""" + # first make sure no other unpacker is registered for this extension + existing_extensions = {} + for name, info in _UNPACK_FORMATS.items(): + for ext in info[0]: + existing_extensions[ext] = name + + for extension in extensions: + if extension in existing_extensions: + msg = '%s is already registered for "%s"' + raise RegistryError(msg % (extension, + existing_extensions[extension])) + + if not isinstance(function, collections.Callable): + raise TypeError('The registered function must be a callable') + + +def register_unpack_format(name, extensions, function, extra_args=None, + description=''): + """Registers an unpack format. + + `name` is the name of the format. `extensions` is a list of extensions + corresponding to the format. + + `function` is the callable that will be + used to unpack archives. The callable will receive archives to unpack. + If it's unable to handle an archive, it needs to raise a ReadError + exception. + + If provided, `extra_args` is a sequence of + (name, value) tuples that will be passed as arguments to the callable. + description can be provided to describe the format, and will be returned + by the get_unpack_formats() function. + """ + if extra_args is None: + extra_args = [] + _check_unpack_options(extensions, function, extra_args) + _UNPACK_FORMATS[name] = extensions, function, extra_args, description + +def unregister_unpack_format(name): + """Removes the pack format from the registry.""" + del _UNPACK_FORMATS[name] + +def _ensure_directory(path): + """Ensure that the parent directory of `path` exists""" + dirname = os.path.dirname(path) + if not os.path.isdir(dirname): + os.makedirs(dirname) + +def _unpack_zipfile(filename, extract_dir): + """Unpack zip `filename` to `extract_dir` + """ + try: + import zipfile + except ImportError: + raise ReadError('zlib not supported, cannot unpack this archive.') + + if not zipfile.is_zipfile(filename): + raise ReadError("%s is not a zip file" % filename) + + zip = zipfile.ZipFile(filename) + try: + for info in zip.infolist(): + name = info.filename + + # don't extract absolute paths or ones with .. in them + if name.startswith('/') or '..' in name: + continue + + target = os.path.join(extract_dir, *name.split('/')) + if not target: + continue + + _ensure_directory(target) + if not name.endswith('/'): + # file + data = zip.read(info.filename) + f = open(target, 'wb') + try: + f.write(data) + finally: + f.close() + del data + finally: + zip.close() + +def _unpack_tarfile(filename, extract_dir): + """Unpack tar/tar.gz/tar.bz2 `filename` to `extract_dir` + """ + try: + tarobj = tarfile.open(filename) + except tarfile.TarError: + raise ReadError( + "%s is not a compressed or uncompressed tar file" % filename) + try: + tarobj.extractall(extract_dir) + finally: + tarobj.close() + +_UNPACK_FORMATS = { + 'gztar': (['.tar.gz', '.tgz'], _unpack_tarfile, [], "gzip'ed tar-file"), + 'tar': (['.tar'], _unpack_tarfile, [], "uncompressed tar file"), + 'zip': (['.zip'], _unpack_zipfile, [], "ZIP file") + } + +if _BZ2_SUPPORTED: + _UNPACK_FORMATS['bztar'] = (['.bz2'], _unpack_tarfile, [], + "bzip2'ed tar-file") + +def _find_unpack_format(filename): + for name, info in _UNPACK_FORMATS.items(): + for extension in info[0]: + if filename.endswith(extension): + return name + return None + +def unpack_archive(filename, extract_dir=None, format=None): + """Unpack an archive. + + `filename` is the name of the archive. + + `extract_dir` is the name of the target directory, where the archive + is unpacked. If not provided, the current working directory is used. + + `format` is the archive format: one of "zip", "tar", or "gztar". Or any + other registered format. If not provided, unpack_archive will use the + filename extension and see if an unpacker was registered for that + extension. + + In case none is found, a ValueError is raised. + """ + if extract_dir is None: + extract_dir = os.getcwd() + + if format is not None: + try: + format_info = _UNPACK_FORMATS[format] + except KeyError: + raise ValueError("Unknown unpack format '{0}'".format(format)) + + func = format_info[1] + func(filename, extract_dir, **dict(format_info[2])) + else: + # we need to look at the registered unpackers supported extensions + format = _find_unpack_format(filename) + if format is None: + raise ReadError("Unknown archive format '{0}'".format(filename)) + + func = _UNPACK_FORMATS[format][1] + kwargs = dict(_UNPACK_FORMATS[format][2]) + func(filename, extract_dir, **kwargs) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/sysconfig.cfg b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/sysconfig.cfg new file mode 100644 index 00000000..1746bd01 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/sysconfig.cfg @@ -0,0 +1,84 @@ +[posix_prefix] +# Configuration directories. Some of these come straight out of the +# configure script. They are for implementing the other variables, not to +# be used directly in [resource_locations]. +confdir = /etc +datadir = /usr/share +libdir = /usr/lib +statedir = /var +# User resource directory +local = ~/.local/{distribution.name} + +stdlib = {base}/lib/python{py_version_short} +platstdlib = {platbase}/lib/python{py_version_short} +purelib = {base}/lib/python{py_version_short}/site-packages +platlib = {platbase}/lib/python{py_version_short}/site-packages +include = {base}/include/python{py_version_short}{abiflags} +platinclude = {platbase}/include/python{py_version_short}{abiflags} +data = {base} + +[posix_home] +stdlib = {base}/lib/python +platstdlib = {base}/lib/python +purelib = {base}/lib/python +platlib = {base}/lib/python +include = {base}/include/python +platinclude = {base}/include/python +scripts = {base}/bin +data = {base} + +[nt] +stdlib = {base}/Lib +platstdlib = {base}/Lib +purelib = {base}/Lib/site-packages +platlib = {base}/Lib/site-packages +include = {base}/Include +platinclude = {base}/Include +scripts = {base}/Scripts +data = {base} + +[os2] +stdlib = {base}/Lib +platstdlib = {base}/Lib +purelib = {base}/Lib/site-packages +platlib = {base}/Lib/site-packages +include = {base}/Include +platinclude = {base}/Include +scripts = {base}/Scripts +data = {base} + +[os2_home] +stdlib = {userbase}/lib/python{py_version_short} +platstdlib = {userbase}/lib/python{py_version_short} +purelib = {userbase}/lib/python{py_version_short}/site-packages +platlib = {userbase}/lib/python{py_version_short}/site-packages +include = {userbase}/include/python{py_version_short} +scripts = {userbase}/bin +data = {userbase} + +[nt_user] +stdlib = {userbase}/Python{py_version_nodot} +platstdlib = {userbase}/Python{py_version_nodot} +purelib = {userbase}/Python{py_version_nodot}/site-packages +platlib = {userbase}/Python{py_version_nodot}/site-packages +include = {userbase}/Python{py_version_nodot}/Include +scripts = {userbase}/Scripts +data = {userbase} + +[posix_user] +stdlib = {userbase}/lib/python{py_version_short} +platstdlib = {userbase}/lib/python{py_version_short} +purelib = {userbase}/lib/python{py_version_short}/site-packages +platlib = {userbase}/lib/python{py_version_short}/site-packages +include = {userbase}/include/python{py_version_short} +scripts = {userbase}/bin +data = {userbase} + +[osx_framework_user] +stdlib = {userbase}/lib/python +platstdlib = {userbase}/lib/python +purelib = {userbase}/lib/python/site-packages +platlib = {userbase}/lib/python/site-packages +include = {userbase}/include +scripts = {userbase}/bin +data = {userbase} diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/sysconfig.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/sysconfig.py new file mode 100644 index 00000000..1df3aba1 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/sysconfig.py @@ -0,0 +1,788 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2012 The Python Software Foundation. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +"""Access to Python's configuration information.""" + +import codecs +import os +import re +import sys +from os.path import pardir, realpath +try: + import configparser +except ImportError: + import ConfigParser as configparser + + +__all__ = [ + 'get_config_h_filename', + 'get_config_var', + 'get_config_vars', + 'get_makefile_filename', + 'get_path', + 'get_path_names', + 'get_paths', + 'get_platform', + 'get_python_version', + 'get_scheme_names', + 'parse_config_h', +] + + +def _safe_realpath(path): + try: + return realpath(path) + except OSError: + return path + + +if sys.executable: + _PROJECT_BASE = os.path.dirname(_safe_realpath(sys.executable)) +else: + # sys.executable can be empty if argv[0] has been changed and Python is + # unable to retrieve the real program name + _PROJECT_BASE = _safe_realpath(os.getcwd()) + +if os.name == "nt" and "pcbuild" in _PROJECT_BASE[-8:].lower(): + _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir)) +# PC/VS7.1 +if os.name == "nt" and "\\pc\\v" in _PROJECT_BASE[-10:].lower(): + _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir, pardir)) +# PC/AMD64 +if os.name == "nt" and "\\pcbuild\\amd64" in _PROJECT_BASE[-14:].lower(): + _PROJECT_BASE = _safe_realpath(os.path.join(_PROJECT_BASE, pardir, pardir)) + + +def is_python_build(): + for fn in ("Setup.dist", "Setup.local"): + if os.path.isfile(os.path.join(_PROJECT_BASE, "Modules", fn)): + return True + return False + +_PYTHON_BUILD = is_python_build() + +_cfg_read = False + +def _ensure_cfg_read(): + global _cfg_read + if not _cfg_read: + from ..resources import finder + backport_package = __name__.rsplit('.', 1)[0] + _finder = finder(backport_package) + _cfgfile = _finder.find('sysconfig.cfg') + assert _cfgfile, 'sysconfig.cfg exists' + with _cfgfile.as_stream() as s: + _SCHEMES.readfp(s) + if _PYTHON_BUILD: + for scheme in ('posix_prefix', 'posix_home'): + _SCHEMES.set(scheme, 'include', '{srcdir}/Include') + _SCHEMES.set(scheme, 'platinclude', '{projectbase}/.') + + _cfg_read = True + + +_SCHEMES = configparser.RawConfigParser() +_VAR_REPL = re.compile(r'\{([^{]*?)\}') + +def _expand_globals(config): + _ensure_cfg_read() + if config.has_section('globals'): + globals = config.items('globals') + else: + globals = tuple() + + sections = config.sections() + for section in sections: + if section == 'globals': + continue + for option, value in globals: + if config.has_option(section, option): + continue + config.set(section, option, value) + config.remove_section('globals') + + # now expanding local variables defined in the cfg file + # + for section in config.sections(): + variables = dict(config.items(section)) + + def _replacer(matchobj): + name = matchobj.group(1) + if name in variables: + return variables[name] + return matchobj.group(0) + + for option, value in config.items(section): + config.set(section, option, _VAR_REPL.sub(_replacer, value)) + +#_expand_globals(_SCHEMES) + + # FIXME don't rely on sys.version here, its format is an implementation detail + # of CPython, use sys.version_info or sys.hexversion +_PY_VERSION = sys.version.split()[0] +_PY_VERSION_SHORT = sys.version[:3] +_PY_VERSION_SHORT_NO_DOT = _PY_VERSION[0] + _PY_VERSION[2] +_PREFIX = os.path.normpath(sys.prefix) +_EXEC_PREFIX = os.path.normpath(sys.exec_prefix) +_CONFIG_VARS = None +_USER_BASE = None + + +def _subst_vars(path, local_vars): + """In the string `path`, replace tokens like {some.thing} with the + corresponding value from the map `local_vars`. + + If there is no corresponding value, leave the token unchanged. + """ + def _replacer(matchobj): + name = matchobj.group(1) + if name in local_vars: + return local_vars[name] + elif name in os.environ: + return os.environ[name] + return matchobj.group(0) + return _VAR_REPL.sub(_replacer, path) + + +def _extend_dict(target_dict, other_dict): + target_keys = target_dict.keys() + for key, value in other_dict.items(): + if key in target_keys: + continue + target_dict[key] = value + + +def _expand_vars(scheme, vars): + res = {} + if vars is None: + vars = {} + _extend_dict(vars, get_config_vars()) + + for key, value in _SCHEMES.items(scheme): + if os.name in ('posix', 'nt'): + value = os.path.expanduser(value) + res[key] = os.path.normpath(_subst_vars(value, vars)) + return res + + +def format_value(value, vars): + def _replacer(matchobj): + name = matchobj.group(1) + if name in vars: + return vars[name] + return matchobj.group(0) + return _VAR_REPL.sub(_replacer, value) + + +def _get_default_scheme(): + if os.name == 'posix': + # the default scheme for posix is posix_prefix + return 'posix_prefix' + return os.name + + +def _getuserbase(): + env_base = os.environ.get("PYTHONUSERBASE", None) + + def joinuser(*args): + return os.path.expanduser(os.path.join(*args)) + + # what about 'os2emx', 'riscos' ? + if os.name == "nt": + base = os.environ.get("APPDATA") or "~" + if env_base: + return env_base + else: + return joinuser(base, "Python") + + if sys.platform == "darwin": + framework = get_config_var("PYTHONFRAMEWORK") + if framework: + if env_base: + return env_base + else: + return joinuser("~", "Library", framework, "%d.%d" % + sys.version_info[:2]) + + if env_base: + return env_base + else: + return joinuser("~", ".local") + + +def _parse_makefile(filename, vars=None): + """Parse a Makefile-style file. + + A dictionary containing name/value pairs is returned. If an + optional dictionary is passed in as the second argument, it is + used instead of a new dictionary. + """ + # Regexes needed for parsing Makefile (and similar syntaxes, + # like old-style Setup files). + _variable_rx = re.compile(r"([a-zA-Z][a-zA-Z0-9_]+)\s*=\s*(.*)") + _findvar1_rx = re.compile(r"\$\(([A-Za-z][A-Za-z0-9_]*)\)") + _findvar2_rx = re.compile(r"\${([A-Za-z][A-Za-z0-9_]*)}") + + if vars is None: + vars = {} + done = {} + notdone = {} + + with codecs.open(filename, encoding='utf-8', errors="surrogateescape") as f: + lines = f.readlines() + + for line in lines: + if line.startswith('#') or line.strip() == '': + continue + m = _variable_rx.match(line) + if m: + n, v = m.group(1, 2) + v = v.strip() + # `$$' is a literal `$' in make + tmpv = v.replace('$$', '') + + if "$" in tmpv: + notdone[n] = v + else: + try: + v = int(v) + except ValueError: + # insert literal `$' + done[n] = v.replace('$$', '$') + else: + done[n] = v + + # do variable interpolation here + variables = list(notdone.keys()) + + # Variables with a 'PY_' prefix in the makefile. These need to + # be made available without that prefix through sysconfig. + # Special care is needed to ensure that variable expansion works, even + # if the expansion uses the name without a prefix. + renamed_variables = ('CFLAGS', 'LDFLAGS', 'CPPFLAGS') + + while len(variables) > 0: + for name in tuple(variables): + value = notdone[name] + m = _findvar1_rx.search(value) or _findvar2_rx.search(value) + if m is not None: + n = m.group(1) + found = True + if n in done: + item = str(done[n]) + elif n in notdone: + # get it on a subsequent round + found = False + elif n in os.environ: + # do it like make: fall back to environment + item = os.environ[n] + + elif n in renamed_variables: + if (name.startswith('PY_') and + name[3:] in renamed_variables): + item = "" + + elif 'PY_' + n in notdone: + found = False + + else: + item = str(done['PY_' + n]) + + else: + done[n] = item = "" + + if found: + after = value[m.end():] + value = value[:m.start()] + item + after + if "$" in after: + notdone[name] = value + else: + try: + value = int(value) + except ValueError: + done[name] = value.strip() + else: + done[name] = value + variables.remove(name) + + if (name.startswith('PY_') and + name[3:] in renamed_variables): + + name = name[3:] + if name not in done: + done[name] = value + + else: + # bogus variable reference (e.g. "prefix=$/opt/python"); + # just drop it since we can't deal + done[name] = value + variables.remove(name) + + # strip spurious spaces + for k, v in done.items(): + if isinstance(v, str): + done[k] = v.strip() + + # save the results in the global dictionary + vars.update(done) + return vars + + +def get_makefile_filename(): + """Return the path of the Makefile.""" + if _PYTHON_BUILD: + return os.path.join(_PROJECT_BASE, "Makefile") + if hasattr(sys, 'abiflags'): + config_dir_name = 'config-%s%s' % (_PY_VERSION_SHORT, sys.abiflags) + else: + config_dir_name = 'config' + return os.path.join(get_path('stdlib'), config_dir_name, 'Makefile') + + +def _init_posix(vars): + """Initialize the module as appropriate for POSIX systems.""" + # load the installed Makefile: + makefile = get_makefile_filename() + try: + _parse_makefile(makefile, vars) + except IOError as e: + msg = "invalid Python installation: unable to open %s" % makefile + if hasattr(e, "strerror"): + msg = msg + " (%s)" % e.strerror + raise IOError(msg) + # load the installed pyconfig.h: + config_h = get_config_h_filename() + try: + with open(config_h) as f: + parse_config_h(f, vars) + except IOError as e: + msg = "invalid Python installation: unable to open %s" % config_h + if hasattr(e, "strerror"): + msg = msg + " (%s)" % e.strerror + raise IOError(msg) + # On AIX, there are wrong paths to the linker scripts in the Makefile + # -- these paths are relative to the Python source, but when installed + # the scripts are in another directory. + if _PYTHON_BUILD: + vars['LDSHARED'] = vars['BLDSHARED'] + + +def _init_non_posix(vars): + """Initialize the module as appropriate for NT""" + # set basic install directories + vars['LIBDEST'] = get_path('stdlib') + vars['BINLIBDEST'] = get_path('platstdlib') + vars['INCLUDEPY'] = get_path('include') + vars['SO'] = '.pyd' + vars['EXE'] = '.exe' + vars['VERSION'] = _PY_VERSION_SHORT_NO_DOT + vars['BINDIR'] = os.path.dirname(_safe_realpath(sys.executable)) + +# +# public APIs +# + + +def parse_config_h(fp, vars=None): + """Parse a config.h-style file. + + A dictionary containing name/value pairs is returned. If an + optional dictionary is passed in as the second argument, it is + used instead of a new dictionary. + """ + if vars is None: + vars = {} + define_rx = re.compile("#define ([A-Z][A-Za-z0-9_]+) (.*)\n") + undef_rx = re.compile("/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/\n") + + while True: + line = fp.readline() + if not line: + break + m = define_rx.match(line) + if m: + n, v = m.group(1, 2) + try: + v = int(v) + except ValueError: + pass + vars[n] = v + else: + m = undef_rx.match(line) + if m: + vars[m.group(1)] = 0 + return vars + + +def get_config_h_filename(): + """Return the path of pyconfig.h.""" + if _PYTHON_BUILD: + if os.name == "nt": + inc_dir = os.path.join(_PROJECT_BASE, "PC") + else: + inc_dir = _PROJECT_BASE + else: + inc_dir = get_path('platinclude') + return os.path.join(inc_dir, 'pyconfig.h') + + +def get_scheme_names(): + """Return a tuple containing the schemes names.""" + return tuple(sorted(_SCHEMES.sections())) + + +def get_path_names(): + """Return a tuple containing the paths names.""" + # xxx see if we want a static list + return _SCHEMES.options('posix_prefix') + + +def get_paths(scheme=_get_default_scheme(), vars=None, expand=True): + """Return a mapping containing an install scheme. + + ``scheme`` is the install scheme name. If not provided, it will + return the default scheme for the current platform. + """ + _ensure_cfg_read() + if expand: + return _expand_vars(scheme, vars) + else: + return dict(_SCHEMES.items(scheme)) + + +def get_path(name, scheme=_get_default_scheme(), vars=None, expand=True): + """Return a path corresponding to the scheme. + + ``scheme`` is the install scheme name. + """ + return get_paths(scheme, vars, expand)[name] + + +def get_config_vars(*args): + """With no arguments, return a dictionary of all configuration + variables relevant for the current platform. + + On Unix, this means every variable defined in Python's installed Makefile; + On Windows and Mac OS it's a much smaller set. + + With arguments, return a list of values that result from looking up + each argument in the configuration variable dictionary. + """ + global _CONFIG_VARS + if _CONFIG_VARS is None: + _CONFIG_VARS = {} + # Normalized versions of prefix and exec_prefix are handy to have; + # in fact, these are the standard versions used most places in the + # distutils2 module. + _CONFIG_VARS['prefix'] = _PREFIX + _CONFIG_VARS['exec_prefix'] = _EXEC_PREFIX + _CONFIG_VARS['py_version'] = _PY_VERSION + _CONFIG_VARS['py_version_short'] = _PY_VERSION_SHORT + _CONFIG_VARS['py_version_nodot'] = _PY_VERSION[0] + _PY_VERSION[2] + _CONFIG_VARS['base'] = _PREFIX + _CONFIG_VARS['platbase'] = _EXEC_PREFIX + _CONFIG_VARS['projectbase'] = _PROJECT_BASE + try: + _CONFIG_VARS['abiflags'] = sys.abiflags + except AttributeError: + # sys.abiflags may not be defined on all platforms. + _CONFIG_VARS['abiflags'] = '' + + if os.name in ('nt', 'os2'): + _init_non_posix(_CONFIG_VARS) + if os.name == 'posix': + _init_posix(_CONFIG_VARS) + # Setting 'userbase' is done below the call to the + # init function to enable using 'get_config_var' in + # the init-function. + if sys.version >= '2.6': + _CONFIG_VARS['userbase'] = _getuserbase() + + if 'srcdir' not in _CONFIG_VARS: + _CONFIG_VARS['srcdir'] = _PROJECT_BASE + else: + _CONFIG_VARS['srcdir'] = _safe_realpath(_CONFIG_VARS['srcdir']) + + # Convert srcdir into an absolute path if it appears necessary. + # Normally it is relative to the build directory. However, during + # testing, for example, we might be running a non-installed python + # from a different directory. + if _PYTHON_BUILD and os.name == "posix": + base = _PROJECT_BASE + try: + cwd = os.getcwd() + except OSError: + cwd = None + if (not os.path.isabs(_CONFIG_VARS['srcdir']) and + base != cwd): + # srcdir is relative and we are not in the same directory + # as the executable. Assume executable is in the build + # directory and make srcdir absolute. + srcdir = os.path.join(base, _CONFIG_VARS['srcdir']) + _CONFIG_VARS['srcdir'] = os.path.normpath(srcdir) + + if sys.platform == 'darwin': + kernel_version = os.uname()[2] # Kernel version (8.4.3) + major_version = int(kernel_version.split('.')[0]) + + if major_version < 8: + # On Mac OS X before 10.4, check if -arch and -isysroot + # are in CFLAGS or LDFLAGS and remove them if they are. + # This is needed when building extensions on a 10.3 system + # using a universal build of python. + for key in ('LDFLAGS', 'BASECFLAGS', + # a number of derived variables. These need to be + # patched up as well. + 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): + flags = _CONFIG_VARS[key] + flags = re.sub(r'-arch\s+\w+\s', ' ', flags) + flags = re.sub('-isysroot [^ \t]*', ' ', flags) + _CONFIG_VARS[key] = flags + else: + # Allow the user to override the architecture flags using + # an environment variable. + # NOTE: This name was introduced by Apple in OSX 10.5 and + # is used by several scripting languages distributed with + # that OS release. + if 'ARCHFLAGS' in os.environ: + arch = os.environ['ARCHFLAGS'] + for key in ('LDFLAGS', 'BASECFLAGS', + # a number of derived variables. These need to be + # patched up as well. + 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): + + flags = _CONFIG_VARS[key] + flags = re.sub(r'-arch\s+\w+\s', ' ', flags) + flags = flags + ' ' + arch + _CONFIG_VARS[key] = flags + + # If we're on OSX 10.5 or later and the user tries to + # compiles an extension using an SDK that is not present + # on the current machine it is better to not use an SDK + # than to fail. + # + # The major usecase for this is users using a Python.org + # binary installer on OSX 10.6: that installer uses + # the 10.4u SDK, but that SDK is not installed by default + # when you install Xcode. + # + CFLAGS = _CONFIG_VARS.get('CFLAGS', '') + m = re.search(r'-isysroot\s+(\S+)', CFLAGS) + if m is not None: + sdk = m.group(1) + if not os.path.exists(sdk): + for key in ('LDFLAGS', 'BASECFLAGS', + # a number of derived variables. These need to be + # patched up as well. + 'CFLAGS', 'PY_CFLAGS', 'BLDSHARED'): + + flags = _CONFIG_VARS[key] + flags = re.sub(r'-isysroot\s+\S+(\s|$)', ' ', flags) + _CONFIG_VARS[key] = flags + + if args: + vals = [] + for name in args: + vals.append(_CONFIG_VARS.get(name)) + return vals + else: + return _CONFIG_VARS + + +def get_config_var(name): + """Return the value of a single variable using the dictionary returned by + 'get_config_vars()'. + + Equivalent to get_config_vars().get(name) + """ + return get_config_vars().get(name) + + +def get_platform(): + """Return a string that identifies the current platform. + + This is used mainly to distinguish platform-specific build directories and + platform-specific built distributions. Typically includes the OS name + and version and the architecture (as supplied by 'os.uname()'), + although the exact information included depends on the OS; eg. for IRIX + the architecture isn't particularly important (IRIX only runs on SGI + hardware), but for Linux the kernel version isn't particularly + important. + + Examples of returned values: + linux-i586 + linux-alpha (?) + solaris-2.6-sun4u + irix-5.3 + irix64-6.2 + + Windows will return one of: + win-amd64 (64bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc) + win-ia64 (64bit Windows on Itanium) + win32 (all others - specifically, sys.platform is returned) + + For other non-POSIX platforms, currently just returns 'sys.platform'. + """ + if os.name == 'nt': + # sniff sys.version for architecture. + prefix = " bit (" + i = sys.version.find(prefix) + if i == -1: + return sys.platform + j = sys.version.find(")", i) + look = sys.version[i+len(prefix):j].lower() + if look == 'amd64': + return 'win-amd64' + if look == 'itanium': + return 'win-ia64' + return sys.platform + + if os.name != "posix" or not hasattr(os, 'uname'): + # XXX what about the architecture? NT is Intel or Alpha, + # Mac OS is M68k or PPC, etc. + return sys.platform + + # Try to distinguish various flavours of Unix + osname, host, release, version, machine = os.uname() + + # Convert the OS name to lowercase, remove '/' characters + # (to accommodate BSD/OS), and translate spaces (for "Power Macintosh") + osname = osname.lower().replace('/', '') + machine = machine.replace(' ', '_') + machine = machine.replace('/', '-') + + if osname[:5] == "linux": + # At least on Linux/Intel, 'machine' is the processor -- + # i386, etc. + # XXX what about Alpha, SPARC, etc? + return "%s-%s" % (osname, machine) + elif osname[:5] == "sunos": + if release[0] >= "5": # SunOS 5 == Solaris 2 + osname = "solaris" + release = "%d.%s" % (int(release[0]) - 3, release[2:]) + # fall through to standard osname-release-machine representation + elif osname[:4] == "irix": # could be "irix64"! + return "%s-%s" % (osname, release) + elif osname[:3] == "aix": + return "%s-%s.%s" % (osname, version, release) + elif osname[:6] == "cygwin": + osname = "cygwin" + rel_re = re.compile(r'[\d.]+') + m = rel_re.match(release) + if m: + release = m.group() + elif osname[:6] == "darwin": + # + # For our purposes, we'll assume that the system version from + # distutils' perspective is what MACOSX_DEPLOYMENT_TARGET is set + # to. This makes the compatibility story a bit more sane because the + # machine is going to compile and link as if it were + # MACOSX_DEPLOYMENT_TARGET. + cfgvars = get_config_vars() + macver = cfgvars.get('MACOSX_DEPLOYMENT_TARGET') + + if True: + # Always calculate the release of the running machine, + # needed to determine if we can build fat binaries or not. + + macrelease = macver + # Get the system version. Reading this plist is a documented + # way to get the system version (see the documentation for + # the Gestalt Manager) + try: + f = open('/System/Library/CoreServices/SystemVersion.plist') + except IOError: + # We're on a plain darwin box, fall back to the default + # behaviour. + pass + else: + try: + m = re.search(r'<key>ProductUserVisibleVersion</key>\s*' + r'<string>(.*?)</string>', f.read()) + finally: + f.close() + if m is not None: + macrelease = '.'.join(m.group(1).split('.')[:2]) + # else: fall back to the default behaviour + + if not macver: + macver = macrelease + + if macver: + release = macver + osname = "macosx" + + if ((macrelease + '.') >= '10.4.' and + '-arch' in get_config_vars().get('CFLAGS', '').strip()): + # The universal build will build fat binaries, but not on + # systems before 10.4 + # + # Try to detect 4-way universal builds, those have machine-type + # 'universal' instead of 'fat'. + + machine = 'fat' + cflags = get_config_vars().get('CFLAGS') + + archs = re.findall(r'-arch\s+(\S+)', cflags) + archs = tuple(sorted(set(archs))) + + if len(archs) == 1: + machine = archs[0] + elif archs == ('i386', 'ppc'): + machine = 'fat' + elif archs == ('i386', 'x86_64'): + machine = 'intel' + elif archs == ('i386', 'ppc', 'x86_64'): + machine = 'fat3' + elif archs == ('ppc64', 'x86_64'): + machine = 'fat64' + elif archs == ('i386', 'ppc', 'ppc64', 'x86_64'): + machine = 'universal' + else: + raise ValueError( + "Don't know machine value for archs=%r" % (archs,)) + + elif machine == 'i386': + # On OSX the machine type returned by uname is always the + # 32-bit variant, even if the executable architecture is + # the 64-bit variant + if sys.maxsize >= 2**32: + machine = 'x86_64' + + elif machine in ('PowerPC', 'Power_Macintosh'): + # Pick a sane name for the PPC architecture. + # See 'i386' case + if sys.maxsize >= 2**32: + machine = 'ppc64' + else: + machine = 'ppc' + + return "%s-%s-%s" % (osname, release, machine) + + +def get_python_version(): + return _PY_VERSION_SHORT + + +def _print_dict(title, data): + for index, (key, value) in enumerate(sorted(data.items())): + if index == 0: + print('%s: ' % (title)) + print('\t%s = "%s"' % (key, value)) + + +def _main(): + """Display all information sysconfig detains.""" + print('Platform: "%s"' % get_platform()) + print('Python version: "%s"' % get_python_version()) + print('Current installation scheme: "%s"' % _get_default_scheme()) + print() + _print_dict('Paths', get_paths()) + print() + _print_dict('Variables', get_config_vars()) + + +if __name__ == '__main__': + _main() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/tarfile.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/tarfile.py new file mode 100644 index 00000000..d66d8566 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/_backport/tarfile.py @@ -0,0 +1,2607 @@ +#------------------------------------------------------------------- +# tarfile.py +#------------------------------------------------------------------- +# Copyright (C) 2002 Lars Gustaebel <lars@gustaebel.de> +# All rights reserved. +# +# Permission is hereby granted, free of charge, to any person +# obtaining a copy of this software and associated documentation +# files (the "Software"), to deal in the Software without +# restriction, including without limitation the rights to use, +# copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the +# Software is furnished to do so, subject to the following +# conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES +# OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND +# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT +# HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, +# WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING +# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR +# OTHER DEALINGS IN THE SOFTWARE. +# +from __future__ import print_function + +"""Read from and write to tar format archives. +""" + +__version__ = "$Revision$" + +version = "0.9.0" +__author__ = "Lars Gust\u00e4bel (lars@gustaebel.de)" +__date__ = "$Date: 2011-02-25 17:42:01 +0200 (Fri, 25 Feb 2011) $" +__cvsid__ = "$Id: tarfile.py 88586 2011-02-25 15:42:01Z marc-andre.lemburg $" +__credits__ = "Gustavo Niemeyer, Niels Gust\u00e4bel, Richard Townsend." + +#--------- +# Imports +#--------- +import sys +import os +import stat +import errno +import time +import struct +import copy +import re + +try: + import grp, pwd +except ImportError: + grp = pwd = None + +# os.symlink on Windows prior to 6.0 raises NotImplementedError +symlink_exception = (AttributeError, NotImplementedError) +try: + # WindowsError (1314) will be raised if the caller does not hold the + # SeCreateSymbolicLinkPrivilege privilege + symlink_exception += (WindowsError,) +except NameError: + pass + +# from tarfile import * +__all__ = ["TarFile", "TarInfo", "is_tarfile", "TarError"] + +if sys.version_info[0] < 3: + import __builtin__ as builtins +else: + import builtins + +_open = builtins.open # Since 'open' is TarFile.open + +#--------------------------------------------------------- +# tar constants +#--------------------------------------------------------- +NUL = b"\0" # the null character +BLOCKSIZE = 512 # length of processing blocks +RECORDSIZE = BLOCKSIZE * 20 # length of records +GNU_MAGIC = b"ustar \0" # magic gnu tar string +POSIX_MAGIC = b"ustar\x0000" # magic posix tar string + +LENGTH_NAME = 100 # maximum length of a filename +LENGTH_LINK = 100 # maximum length of a linkname +LENGTH_PREFIX = 155 # maximum length of the prefix field + +REGTYPE = b"0" # regular file +AREGTYPE = b"\0" # regular file +LNKTYPE = b"1" # link (inside tarfile) +SYMTYPE = b"2" # symbolic link +CHRTYPE = b"3" # character special device +BLKTYPE = b"4" # block special device +DIRTYPE = b"5" # directory +FIFOTYPE = b"6" # fifo special device +CONTTYPE = b"7" # contiguous file + +GNUTYPE_LONGNAME = b"L" # GNU tar longname +GNUTYPE_LONGLINK = b"K" # GNU tar longlink +GNUTYPE_SPARSE = b"S" # GNU tar sparse file + +XHDTYPE = b"x" # POSIX.1-2001 extended header +XGLTYPE = b"g" # POSIX.1-2001 global header +SOLARIS_XHDTYPE = b"X" # Solaris extended header + +USTAR_FORMAT = 0 # POSIX.1-1988 (ustar) format +GNU_FORMAT = 1 # GNU tar format +PAX_FORMAT = 2 # POSIX.1-2001 (pax) format +DEFAULT_FORMAT = GNU_FORMAT + +#--------------------------------------------------------- +# tarfile constants +#--------------------------------------------------------- +# File types that tarfile supports: +SUPPORTED_TYPES = (REGTYPE, AREGTYPE, LNKTYPE, + SYMTYPE, DIRTYPE, FIFOTYPE, + CONTTYPE, CHRTYPE, BLKTYPE, + GNUTYPE_LONGNAME, GNUTYPE_LONGLINK, + GNUTYPE_SPARSE) + +# File types that will be treated as a regular file. +REGULAR_TYPES = (REGTYPE, AREGTYPE, + CONTTYPE, GNUTYPE_SPARSE) + +# File types that are part of the GNU tar format. +GNU_TYPES = (GNUTYPE_LONGNAME, GNUTYPE_LONGLINK, + GNUTYPE_SPARSE) + +# Fields from a pax header that override a TarInfo attribute. +PAX_FIELDS = ("path", "linkpath", "size", "mtime", + "uid", "gid", "uname", "gname") + +# Fields from a pax header that are affected by hdrcharset. +PAX_NAME_FIELDS = set(("path", "linkpath", "uname", "gname")) + +# Fields in a pax header that are numbers, all other fields +# are treated as strings. +PAX_NUMBER_FIELDS = { + "atime": float, + "ctime": float, + "mtime": float, + "uid": int, + "gid": int, + "size": int +} + +#--------------------------------------------------------- +# Bits used in the mode field, values in octal. +#--------------------------------------------------------- +S_IFLNK = 0o120000 # symbolic link +S_IFREG = 0o100000 # regular file +S_IFBLK = 0o060000 # block device +S_IFDIR = 0o040000 # directory +S_IFCHR = 0o020000 # character device +S_IFIFO = 0o010000 # fifo + +TSUID = 0o4000 # set UID on execution +TSGID = 0o2000 # set GID on execution +TSVTX = 0o1000 # reserved + +TUREAD = 0o400 # read by owner +TUWRITE = 0o200 # write by owner +TUEXEC = 0o100 # execute/search by owner +TGREAD = 0o040 # read by group +TGWRITE = 0o020 # write by group +TGEXEC = 0o010 # execute/search by group +TOREAD = 0o004 # read by other +TOWRITE = 0o002 # write by other +TOEXEC = 0o001 # execute/search by other + +#--------------------------------------------------------- +# initialization +#--------------------------------------------------------- +if os.name in ("nt", "ce"): + ENCODING = "utf-8" +else: + ENCODING = sys.getfilesystemencoding() + +#--------------------------------------------------------- +# Some useful functions +#--------------------------------------------------------- + +def stn(s, length, encoding, errors): + """Convert a string to a null-terminated bytes object. + """ + s = s.encode(encoding, errors) + return s[:length] + (length - len(s)) * NUL + +def nts(s, encoding, errors): + """Convert a null-terminated bytes object to a string. + """ + p = s.find(b"\0") + if p != -1: + s = s[:p] + return s.decode(encoding, errors) + +def nti(s): + """Convert a number field to a python number. + """ + # There are two possible encodings for a number field, see + # itn() below. + if s[0] != chr(0o200): + try: + n = int(nts(s, "ascii", "strict") or "0", 8) + except ValueError: + raise InvalidHeaderError("invalid header") + else: + n = 0 + for i in range(len(s) - 1): + n <<= 8 + n += ord(s[i + 1]) + return n + +def itn(n, digits=8, format=DEFAULT_FORMAT): + """Convert a python number to a number field. + """ + # POSIX 1003.1-1988 requires numbers to be encoded as a string of + # octal digits followed by a null-byte, this allows values up to + # (8**(digits-1))-1. GNU tar allows storing numbers greater than + # that if necessary. A leading 0o200 byte indicates this particular + # encoding, the following digits-1 bytes are a big-endian + # representation. This allows values up to (256**(digits-1))-1. + if 0 <= n < 8 ** (digits - 1): + s = ("%0*o" % (digits - 1, n)).encode("ascii") + NUL + else: + if format != GNU_FORMAT or n >= 256 ** (digits - 1): + raise ValueError("overflow in number field") + + if n < 0: + # XXX We mimic GNU tar's behaviour with negative numbers, + # this could raise OverflowError. + n = struct.unpack("L", struct.pack("l", n))[0] + + s = bytearray() + for i in range(digits - 1): + s.insert(0, n & 0o377) + n >>= 8 + s.insert(0, 0o200) + return s + +def calc_chksums(buf): + """Calculate the checksum for a member's header by summing up all + characters except for the chksum field which is treated as if + it was filled with spaces. According to the GNU tar sources, + some tars (Sun and NeXT) calculate chksum with signed char, + which will be different if there are chars in the buffer with + the high bit set. So we calculate two checksums, unsigned and + signed. + """ + unsigned_chksum = 256 + sum(struct.unpack("148B", buf[:148]) + struct.unpack("356B", buf[156:512])) + signed_chksum = 256 + sum(struct.unpack("148b", buf[:148]) + struct.unpack("356b", buf[156:512])) + return unsigned_chksum, signed_chksum + +def copyfileobj(src, dst, length=None): + """Copy length bytes from fileobj src to fileobj dst. + If length is None, copy the entire content. + """ + if length == 0: + return + if length is None: + while True: + buf = src.read(16*1024) + if not buf: + break + dst.write(buf) + return + + BUFSIZE = 16 * 1024 + blocks, remainder = divmod(length, BUFSIZE) + for b in range(blocks): + buf = src.read(BUFSIZE) + if len(buf) < BUFSIZE: + raise IOError("end of file reached") + dst.write(buf) + + if remainder != 0: + buf = src.read(remainder) + if len(buf) < remainder: + raise IOError("end of file reached") + dst.write(buf) + return + +filemode_table = ( + ((S_IFLNK, "l"), + (S_IFREG, "-"), + (S_IFBLK, "b"), + (S_IFDIR, "d"), + (S_IFCHR, "c"), + (S_IFIFO, "p")), + + ((TUREAD, "r"),), + ((TUWRITE, "w"),), + ((TUEXEC|TSUID, "s"), + (TSUID, "S"), + (TUEXEC, "x")), + + ((TGREAD, "r"),), + ((TGWRITE, "w"),), + ((TGEXEC|TSGID, "s"), + (TSGID, "S"), + (TGEXEC, "x")), + + ((TOREAD, "r"),), + ((TOWRITE, "w"),), + ((TOEXEC|TSVTX, "t"), + (TSVTX, "T"), + (TOEXEC, "x")) +) + +def filemode(mode): + """Convert a file's mode to a string of the form + -rwxrwxrwx. + Used by TarFile.list() + """ + perm = [] + for table in filemode_table: + for bit, char in table: + if mode & bit == bit: + perm.append(char) + break + else: + perm.append("-") + return "".join(perm) + +class TarError(Exception): + """Base exception.""" + pass +class ExtractError(TarError): + """General exception for extract errors.""" + pass +class ReadError(TarError): + """Exception for unreadable tar archives.""" + pass +class CompressionError(TarError): + """Exception for unavailable compression methods.""" + pass +class StreamError(TarError): + """Exception for unsupported operations on stream-like TarFiles.""" + pass +class HeaderError(TarError): + """Base exception for header errors.""" + pass +class EmptyHeaderError(HeaderError): + """Exception for empty headers.""" + pass +class TruncatedHeaderError(HeaderError): + """Exception for truncated headers.""" + pass +class EOFHeaderError(HeaderError): + """Exception for end of file headers.""" + pass +class InvalidHeaderError(HeaderError): + """Exception for invalid headers.""" + pass +class SubsequentHeaderError(HeaderError): + """Exception for missing and invalid extended headers.""" + pass + +#--------------------------- +# internal stream interface +#--------------------------- +class _LowLevelFile(object): + """Low-level file object. Supports reading and writing. + It is used instead of a regular file object for streaming + access. + """ + + def __init__(self, name, mode): + mode = { + "r": os.O_RDONLY, + "w": os.O_WRONLY | os.O_CREAT | os.O_TRUNC, + }[mode] + if hasattr(os, "O_BINARY"): + mode |= os.O_BINARY + self.fd = os.open(name, mode, 0o666) + + def close(self): + os.close(self.fd) + + def read(self, size): + return os.read(self.fd, size) + + def write(self, s): + os.write(self.fd, s) + +class _Stream(object): + """Class that serves as an adapter between TarFile and + a stream-like object. The stream-like object only + needs to have a read() or write() method and is accessed + blockwise. Use of gzip or bzip2 compression is possible. + A stream-like object could be for example: sys.stdin, + sys.stdout, a socket, a tape device etc. + + _Stream is intended to be used only internally. + """ + + def __init__(self, name, mode, comptype, fileobj, bufsize): + """Construct a _Stream object. + """ + self._extfileobj = True + if fileobj is None: + fileobj = _LowLevelFile(name, mode) + self._extfileobj = False + + if comptype == '*': + # Enable transparent compression detection for the + # stream interface + fileobj = _StreamProxy(fileobj) + comptype = fileobj.getcomptype() + + self.name = name or "" + self.mode = mode + self.comptype = comptype + self.fileobj = fileobj + self.bufsize = bufsize + self.buf = b"" + self.pos = 0 + self.closed = False + + try: + if comptype == "gz": + try: + import zlib + except ImportError: + raise CompressionError("zlib module is not available") + self.zlib = zlib + self.crc = zlib.crc32(b"") + if mode == "r": + self._init_read_gz() + else: + self._init_write_gz() + + if comptype == "bz2": + try: + import bz2 + except ImportError: + raise CompressionError("bz2 module is not available") + if mode == "r": + self.dbuf = b"" + self.cmp = bz2.BZ2Decompressor() + else: + self.cmp = bz2.BZ2Compressor() + except: + if not self._extfileobj: + self.fileobj.close() + self.closed = True + raise + + def __del__(self): + if hasattr(self, "closed") and not self.closed: + self.close() + + def _init_write_gz(self): + """Initialize for writing with gzip compression. + """ + self.cmp = self.zlib.compressobj(9, self.zlib.DEFLATED, + -self.zlib.MAX_WBITS, + self.zlib.DEF_MEM_LEVEL, + 0) + timestamp = struct.pack("<L", int(time.time())) + self.__write(b"\037\213\010\010" + timestamp + b"\002\377") + if self.name.endswith(".gz"): + self.name = self.name[:-3] + # RFC1952 says we must use ISO-8859-1 for the FNAME field. + self.__write(self.name.encode("iso-8859-1", "replace") + NUL) + + def write(self, s): + """Write string s to the stream. + """ + if self.comptype == "gz": + self.crc = self.zlib.crc32(s, self.crc) + self.pos += len(s) + if self.comptype != "tar": + s = self.cmp.compress(s) + self.__write(s) + + def __write(self, s): + """Write string s to the stream if a whole new block + is ready to be written. + """ + self.buf += s + while len(self.buf) > self.bufsize: + self.fileobj.write(self.buf[:self.bufsize]) + self.buf = self.buf[self.bufsize:] + + def close(self): + """Close the _Stream object. No operation should be + done on it afterwards. + """ + if self.closed: + return + + if self.mode == "w" and self.comptype != "tar": + self.buf += self.cmp.flush() + + if self.mode == "w" and self.buf: + self.fileobj.write(self.buf) + self.buf = b"" + if self.comptype == "gz": + # The native zlib crc is an unsigned 32-bit integer, but + # the Python wrapper implicitly casts that to a signed C + # long. So, on a 32-bit box self.crc may "look negative", + # while the same crc on a 64-bit box may "look positive". + # To avoid irksome warnings from the `struct` module, force + # it to look positive on all boxes. + self.fileobj.write(struct.pack("<L", self.crc & 0xffffffff)) + self.fileobj.write(struct.pack("<L", self.pos & 0xffffFFFF)) + + if not self._extfileobj: + self.fileobj.close() + + self.closed = True + + def _init_read_gz(self): + """Initialize for reading a gzip compressed fileobj. + """ + self.cmp = self.zlib.decompressobj(-self.zlib.MAX_WBITS) + self.dbuf = b"" + + # taken from gzip.GzipFile with some alterations + if self.__read(2) != b"\037\213": + raise ReadError("not a gzip file") + if self.__read(1) != b"\010": + raise CompressionError("unsupported compression method") + + flag = ord(self.__read(1)) + self.__read(6) + + if flag & 4: + xlen = ord(self.__read(1)) + 256 * ord(self.__read(1)) + self.read(xlen) + if flag & 8: + while True: + s = self.__read(1) + if not s or s == NUL: + break + if flag & 16: + while True: + s = self.__read(1) + if not s or s == NUL: + break + if flag & 2: + self.__read(2) + + def tell(self): + """Return the stream's file pointer position. + """ + return self.pos + + def seek(self, pos=0): + """Set the stream's file pointer to pos. Negative seeking + is forbidden. + """ + if pos - self.pos >= 0: + blocks, remainder = divmod(pos - self.pos, self.bufsize) + for i in range(blocks): + self.read(self.bufsize) + self.read(remainder) + else: + raise StreamError("seeking backwards is not allowed") + return self.pos + + def read(self, size=None): + """Return the next size number of bytes from the stream. + If size is not defined, return all bytes of the stream + up to EOF. + """ + if size is None: + t = [] + while True: + buf = self._read(self.bufsize) + if not buf: + break + t.append(buf) + buf = "".join(t) + else: + buf = self._read(size) + self.pos += len(buf) + return buf + + def _read(self, size): + """Return size bytes from the stream. + """ + if self.comptype == "tar": + return self.__read(size) + + c = len(self.dbuf) + while c < size: + buf = self.__read(self.bufsize) + if not buf: + break + try: + buf = self.cmp.decompress(buf) + except IOError: + raise ReadError("invalid compressed data") + self.dbuf += buf + c += len(buf) + buf = self.dbuf[:size] + self.dbuf = self.dbuf[size:] + return buf + + def __read(self, size): + """Return size bytes from stream. If internal buffer is empty, + read another block from the stream. + """ + c = len(self.buf) + while c < size: + buf = self.fileobj.read(self.bufsize) + if not buf: + break + self.buf += buf + c += len(buf) + buf = self.buf[:size] + self.buf = self.buf[size:] + return buf +# class _Stream + +class _StreamProxy(object): + """Small proxy class that enables transparent compression + detection for the Stream interface (mode 'r|*'). + """ + + def __init__(self, fileobj): + self.fileobj = fileobj + self.buf = self.fileobj.read(BLOCKSIZE) + + def read(self, size): + self.read = self.fileobj.read + return self.buf + + def getcomptype(self): + if self.buf.startswith(b"\037\213\010"): + return "gz" + if self.buf.startswith(b"BZh91"): + return "bz2" + return "tar" + + def close(self): + self.fileobj.close() +# class StreamProxy + +class _BZ2Proxy(object): + """Small proxy class that enables external file object + support for "r:bz2" and "w:bz2" modes. This is actually + a workaround for a limitation in bz2 module's BZ2File + class which (unlike gzip.GzipFile) has no support for + a file object argument. + """ + + blocksize = 16 * 1024 + + def __init__(self, fileobj, mode): + self.fileobj = fileobj + self.mode = mode + self.name = getattr(self.fileobj, "name", None) + self.init() + + def init(self): + import bz2 + self.pos = 0 + if self.mode == "r": + self.bz2obj = bz2.BZ2Decompressor() + self.fileobj.seek(0) + self.buf = b"" + else: + self.bz2obj = bz2.BZ2Compressor() + + def read(self, size): + x = len(self.buf) + while x < size: + raw = self.fileobj.read(self.blocksize) + if not raw: + break + data = self.bz2obj.decompress(raw) + self.buf += data + x += len(data) + + buf = self.buf[:size] + self.buf = self.buf[size:] + self.pos += len(buf) + return buf + + def seek(self, pos): + if pos < self.pos: + self.init() + self.read(pos - self.pos) + + def tell(self): + return self.pos + + def write(self, data): + self.pos += len(data) + raw = self.bz2obj.compress(data) + self.fileobj.write(raw) + + def close(self): + if self.mode == "w": + raw = self.bz2obj.flush() + self.fileobj.write(raw) +# class _BZ2Proxy + +#------------------------ +# Extraction file object +#------------------------ +class _FileInFile(object): + """A thin wrapper around an existing file object that + provides a part of its data as an individual file + object. + """ + + def __init__(self, fileobj, offset, size, blockinfo=None): + self.fileobj = fileobj + self.offset = offset + self.size = size + self.position = 0 + + if blockinfo is None: + blockinfo = [(0, size)] + + # Construct a map with data and zero blocks. + self.map_index = 0 + self.map = [] + lastpos = 0 + realpos = self.offset + for offset, size in blockinfo: + if offset > lastpos: + self.map.append((False, lastpos, offset, None)) + self.map.append((True, offset, offset + size, realpos)) + realpos += size + lastpos = offset + size + if lastpos < self.size: + self.map.append((False, lastpos, self.size, None)) + + def seekable(self): + if not hasattr(self.fileobj, "seekable"): + # XXX gzip.GzipFile and bz2.BZ2File + return True + return self.fileobj.seekable() + + def tell(self): + """Return the current file position. + """ + return self.position + + def seek(self, position): + """Seek to a position in the file. + """ + self.position = position + + def read(self, size=None): + """Read data from the file. + """ + if size is None: + size = self.size - self.position + else: + size = min(size, self.size - self.position) + + buf = b"" + while size > 0: + while True: + data, start, stop, offset = self.map[self.map_index] + if start <= self.position < stop: + break + else: + self.map_index += 1 + if self.map_index == len(self.map): + self.map_index = 0 + length = min(size, stop - self.position) + if data: + self.fileobj.seek(offset + (self.position - start)) + buf += self.fileobj.read(length) + else: + buf += NUL * length + size -= length + self.position += length + return buf +#class _FileInFile + + +class ExFileObject(object): + """File-like object for reading an archive member. + Is returned by TarFile.extractfile(). + """ + blocksize = 1024 + + def __init__(self, tarfile, tarinfo): + self.fileobj = _FileInFile(tarfile.fileobj, + tarinfo.offset_data, + tarinfo.size, + tarinfo.sparse) + self.name = tarinfo.name + self.mode = "r" + self.closed = False + self.size = tarinfo.size + + self.position = 0 + self.buffer = b"" + + def readable(self): + return True + + def writable(self): + return False + + def seekable(self): + return self.fileobj.seekable() + + def read(self, size=None): + """Read at most size bytes from the file. If size is not + present or None, read all data until EOF is reached. + """ + if self.closed: + raise ValueError("I/O operation on closed file") + + buf = b"" + if self.buffer: + if size is None: + buf = self.buffer + self.buffer = b"" + else: + buf = self.buffer[:size] + self.buffer = self.buffer[size:] + + if size is None: + buf += self.fileobj.read() + else: + buf += self.fileobj.read(size - len(buf)) + + self.position += len(buf) + return buf + + # XXX TextIOWrapper uses the read1() method. + read1 = read + + def readline(self, size=-1): + """Read one entire line from the file. If size is present + and non-negative, return a string with at most that + size, which may be an incomplete line. + """ + if self.closed: + raise ValueError("I/O operation on closed file") + + pos = self.buffer.find(b"\n") + 1 + if pos == 0: + # no newline found. + while True: + buf = self.fileobj.read(self.blocksize) + self.buffer += buf + if not buf or b"\n" in buf: + pos = self.buffer.find(b"\n") + 1 + if pos == 0: + # no newline found. + pos = len(self.buffer) + break + + if size != -1: + pos = min(size, pos) + + buf = self.buffer[:pos] + self.buffer = self.buffer[pos:] + self.position += len(buf) + return buf + + def readlines(self): + """Return a list with all remaining lines. + """ + result = [] + while True: + line = self.readline() + if not line: break + result.append(line) + return result + + def tell(self): + """Return the current file position. + """ + if self.closed: + raise ValueError("I/O operation on closed file") + + return self.position + + def seek(self, pos, whence=os.SEEK_SET): + """Seek to a position in the file. + """ + if self.closed: + raise ValueError("I/O operation on closed file") + + if whence == os.SEEK_SET: + self.position = min(max(pos, 0), self.size) + elif whence == os.SEEK_CUR: + if pos < 0: + self.position = max(self.position + pos, 0) + else: + self.position = min(self.position + pos, self.size) + elif whence == os.SEEK_END: + self.position = max(min(self.size + pos, self.size), 0) + else: + raise ValueError("Invalid argument") + + self.buffer = b"" + self.fileobj.seek(self.position) + + def close(self): + """Close the file object. + """ + self.closed = True + + def __iter__(self): + """Get an iterator over the file's lines. + """ + while True: + line = self.readline() + if not line: + break + yield line +#class ExFileObject + +#------------------ +# Exported Classes +#------------------ +class TarInfo(object): + """Informational class which holds the details about an + archive member given by a tar header block. + TarInfo objects are returned by TarFile.getmember(), + TarFile.getmembers() and TarFile.gettarinfo() and are + usually created internally. + """ + + __slots__ = ("name", "mode", "uid", "gid", "size", "mtime", + "chksum", "type", "linkname", "uname", "gname", + "devmajor", "devminor", + "offset", "offset_data", "pax_headers", "sparse", + "tarfile", "_sparse_structs", "_link_target") + + def __init__(self, name=""): + """Construct a TarInfo object. name is the optional name + of the member. + """ + self.name = name # member name + self.mode = 0o644 # file permissions + self.uid = 0 # user id + self.gid = 0 # group id + self.size = 0 # file size + self.mtime = 0 # modification time + self.chksum = 0 # header checksum + self.type = REGTYPE # member type + self.linkname = "" # link name + self.uname = "" # user name + self.gname = "" # group name + self.devmajor = 0 # device major number + self.devminor = 0 # device minor number + + self.offset = 0 # the tar header starts here + self.offset_data = 0 # the file's data starts here + + self.sparse = None # sparse member information + self.pax_headers = {} # pax header information + + # In pax headers the "name" and "linkname" field are called + # "path" and "linkpath". + def _getpath(self): + return self.name + def _setpath(self, name): + self.name = name + path = property(_getpath, _setpath) + + def _getlinkpath(self): + return self.linkname + def _setlinkpath(self, linkname): + self.linkname = linkname + linkpath = property(_getlinkpath, _setlinkpath) + + def __repr__(self): + return "<%s %r at %#x>" % (self.__class__.__name__,self.name,id(self)) + + def get_info(self): + """Return the TarInfo's attributes as a dictionary. + """ + info = { + "name": self.name, + "mode": self.mode & 0o7777, + "uid": self.uid, + "gid": self.gid, + "size": self.size, + "mtime": self.mtime, + "chksum": self.chksum, + "type": self.type, + "linkname": self.linkname, + "uname": self.uname, + "gname": self.gname, + "devmajor": self.devmajor, + "devminor": self.devminor + } + + if info["type"] == DIRTYPE and not info["name"].endswith("/"): + info["name"] += "/" + + return info + + def tobuf(self, format=DEFAULT_FORMAT, encoding=ENCODING, errors="surrogateescape"): + """Return a tar header as a string of 512 byte blocks. + """ + info = self.get_info() + + if format == USTAR_FORMAT: + return self.create_ustar_header(info, encoding, errors) + elif format == GNU_FORMAT: + return self.create_gnu_header(info, encoding, errors) + elif format == PAX_FORMAT: + return self.create_pax_header(info, encoding) + else: + raise ValueError("invalid format") + + def create_ustar_header(self, info, encoding, errors): + """Return the object as a ustar header block. + """ + info["magic"] = POSIX_MAGIC + + if len(info["linkname"]) > LENGTH_LINK: + raise ValueError("linkname is too long") + + if len(info["name"]) > LENGTH_NAME: + info["prefix"], info["name"] = self._posix_split_name(info["name"]) + + return self._create_header(info, USTAR_FORMAT, encoding, errors) + + def create_gnu_header(self, info, encoding, errors): + """Return the object as a GNU header block sequence. + """ + info["magic"] = GNU_MAGIC + + buf = b"" + if len(info["linkname"]) > LENGTH_LINK: + buf += self._create_gnu_long_header(info["linkname"], GNUTYPE_LONGLINK, encoding, errors) + + if len(info["name"]) > LENGTH_NAME: + buf += self._create_gnu_long_header(info["name"], GNUTYPE_LONGNAME, encoding, errors) + + return buf + self._create_header(info, GNU_FORMAT, encoding, errors) + + def create_pax_header(self, info, encoding): + """Return the object as a ustar header block. If it cannot be + represented this way, prepend a pax extended header sequence + with supplement information. + """ + info["magic"] = POSIX_MAGIC + pax_headers = self.pax_headers.copy() + + # Test string fields for values that exceed the field length or cannot + # be represented in ASCII encoding. + for name, hname, length in ( + ("name", "path", LENGTH_NAME), ("linkname", "linkpath", LENGTH_LINK), + ("uname", "uname", 32), ("gname", "gname", 32)): + + if hname in pax_headers: + # The pax header has priority. + continue + + # Try to encode the string as ASCII. + try: + info[name].encode("ascii", "strict") + except UnicodeEncodeError: + pax_headers[hname] = info[name] + continue + + if len(info[name]) > length: + pax_headers[hname] = info[name] + + # Test number fields for values that exceed the field limit or values + # that like to be stored as float. + for name, digits in (("uid", 8), ("gid", 8), ("size", 12), ("mtime", 12)): + if name in pax_headers: + # The pax header has priority. Avoid overflow. + info[name] = 0 + continue + + val = info[name] + if not 0 <= val < 8 ** (digits - 1) or isinstance(val, float): + pax_headers[name] = str(val) + info[name] = 0 + + # Create a pax extended header if necessary. + if pax_headers: + buf = self._create_pax_generic_header(pax_headers, XHDTYPE, encoding) + else: + buf = b"" + + return buf + self._create_header(info, USTAR_FORMAT, "ascii", "replace") + + @classmethod + def create_pax_global_header(cls, pax_headers): + """Return the object as a pax global header block sequence. + """ + return cls._create_pax_generic_header(pax_headers, XGLTYPE, "utf8") + + def _posix_split_name(self, name): + """Split a name longer than 100 chars into a prefix + and a name part. + """ + prefix = name[:LENGTH_PREFIX + 1] + while prefix and prefix[-1] != "/": + prefix = prefix[:-1] + + name = name[len(prefix):] + prefix = prefix[:-1] + + if not prefix or len(name) > LENGTH_NAME: + raise ValueError("name is too long") + return prefix, name + + @staticmethod + def _create_header(info, format, encoding, errors): + """Return a header block. info is a dictionary with file + information, format must be one of the *_FORMAT constants. + """ + parts = [ + stn(info.get("name", ""), 100, encoding, errors), + itn(info.get("mode", 0) & 0o7777, 8, format), + itn(info.get("uid", 0), 8, format), + itn(info.get("gid", 0), 8, format), + itn(info.get("size", 0), 12, format), + itn(info.get("mtime", 0), 12, format), + b" ", # checksum field + info.get("type", REGTYPE), + stn(info.get("linkname", ""), 100, encoding, errors), + info.get("magic", POSIX_MAGIC), + stn(info.get("uname", ""), 32, encoding, errors), + stn(info.get("gname", ""), 32, encoding, errors), + itn(info.get("devmajor", 0), 8, format), + itn(info.get("devminor", 0), 8, format), + stn(info.get("prefix", ""), 155, encoding, errors) + ] + + buf = struct.pack("%ds" % BLOCKSIZE, b"".join(parts)) + chksum = calc_chksums(buf[-BLOCKSIZE:])[0] + buf = buf[:-364] + ("%06o\0" % chksum).encode("ascii") + buf[-357:] + return buf + + @staticmethod + def _create_payload(payload): + """Return the string payload filled with zero bytes + up to the next 512 byte border. + """ + blocks, remainder = divmod(len(payload), BLOCKSIZE) + if remainder > 0: + payload += (BLOCKSIZE - remainder) * NUL + return payload + + @classmethod + def _create_gnu_long_header(cls, name, type, encoding, errors): + """Return a GNUTYPE_LONGNAME or GNUTYPE_LONGLINK sequence + for name. + """ + name = name.encode(encoding, errors) + NUL + + info = {} + info["name"] = "././@LongLink" + info["type"] = type + info["size"] = len(name) + info["magic"] = GNU_MAGIC + + # create extended header + name blocks. + return cls._create_header(info, USTAR_FORMAT, encoding, errors) + \ + cls._create_payload(name) + + @classmethod + def _create_pax_generic_header(cls, pax_headers, type, encoding): + """Return a POSIX.1-2008 extended or global header sequence + that contains a list of keyword, value pairs. The values + must be strings. + """ + # Check if one of the fields contains surrogate characters and thereby + # forces hdrcharset=BINARY, see _proc_pax() for more information. + binary = False + for keyword, value in pax_headers.items(): + try: + value.encode("utf8", "strict") + except UnicodeEncodeError: + binary = True + break + + records = b"" + if binary: + # Put the hdrcharset field at the beginning of the header. + records += b"21 hdrcharset=BINARY\n" + + for keyword, value in pax_headers.items(): + keyword = keyword.encode("utf8") + if binary: + # Try to restore the original byte representation of `value'. + # Needless to say, that the encoding must match the string. + value = value.encode(encoding, "surrogateescape") + else: + value = value.encode("utf8") + + l = len(keyword) + len(value) + 3 # ' ' + '=' + '\n' + n = p = 0 + while True: + n = l + len(str(p)) + if n == p: + break + p = n + records += bytes(str(p), "ascii") + b" " + keyword + b"=" + value + b"\n" + + # We use a hardcoded "././@PaxHeader" name like star does + # instead of the one that POSIX recommends. + info = {} + info["name"] = "././@PaxHeader" + info["type"] = type + info["size"] = len(records) + info["magic"] = POSIX_MAGIC + + # Create pax header + record blocks. + return cls._create_header(info, USTAR_FORMAT, "ascii", "replace") + \ + cls._create_payload(records) + + @classmethod + def frombuf(cls, buf, encoding, errors): + """Construct a TarInfo object from a 512 byte bytes object. + """ + if len(buf) == 0: + raise EmptyHeaderError("empty header") + if len(buf) != BLOCKSIZE: + raise TruncatedHeaderError("truncated header") + if buf.count(NUL) == BLOCKSIZE: + raise EOFHeaderError("end of file header") + + chksum = nti(buf[148:156]) + if chksum not in calc_chksums(buf): + raise InvalidHeaderError("bad checksum") + + obj = cls() + obj.name = nts(buf[0:100], encoding, errors) + obj.mode = nti(buf[100:108]) + obj.uid = nti(buf[108:116]) + obj.gid = nti(buf[116:124]) + obj.size = nti(buf[124:136]) + obj.mtime = nti(buf[136:148]) + obj.chksum = chksum + obj.type = buf[156:157] + obj.linkname = nts(buf[157:257], encoding, errors) + obj.uname = nts(buf[265:297], encoding, errors) + obj.gname = nts(buf[297:329], encoding, errors) + obj.devmajor = nti(buf[329:337]) + obj.devminor = nti(buf[337:345]) + prefix = nts(buf[345:500], encoding, errors) + + # Old V7 tar format represents a directory as a regular + # file with a trailing slash. + if obj.type == AREGTYPE and obj.name.endswith("/"): + obj.type = DIRTYPE + + # The old GNU sparse format occupies some of the unused + # space in the buffer for up to 4 sparse structures. + # Save the them for later processing in _proc_sparse(). + if obj.type == GNUTYPE_SPARSE: + pos = 386 + structs = [] + for i in range(4): + try: + offset = nti(buf[pos:pos + 12]) + numbytes = nti(buf[pos + 12:pos + 24]) + except ValueError: + break + structs.append((offset, numbytes)) + pos += 24 + isextended = bool(buf[482]) + origsize = nti(buf[483:495]) + obj._sparse_structs = (structs, isextended, origsize) + + # Remove redundant slashes from directories. + if obj.isdir(): + obj.name = obj.name.rstrip("/") + + # Reconstruct a ustar longname. + if prefix and obj.type not in GNU_TYPES: + obj.name = prefix + "/" + obj.name + return obj + + @classmethod + def fromtarfile(cls, tarfile): + """Return the next TarInfo object from TarFile object + tarfile. + """ + buf = tarfile.fileobj.read(BLOCKSIZE) + obj = cls.frombuf(buf, tarfile.encoding, tarfile.errors) + obj.offset = tarfile.fileobj.tell() - BLOCKSIZE + return obj._proc_member(tarfile) + + #-------------------------------------------------------------------------- + # The following are methods that are called depending on the type of a + # member. The entry point is _proc_member() which can be overridden in a + # subclass to add custom _proc_*() methods. A _proc_*() method MUST + # implement the following + # operations: + # 1. Set self.offset_data to the position where the data blocks begin, + # if there is data that follows. + # 2. Set tarfile.offset to the position where the next member's header will + # begin. + # 3. Return self or another valid TarInfo object. + def _proc_member(self, tarfile): + """Choose the right processing method depending on + the type and call it. + """ + if self.type in (GNUTYPE_LONGNAME, GNUTYPE_LONGLINK): + return self._proc_gnulong(tarfile) + elif self.type == GNUTYPE_SPARSE: + return self._proc_sparse(tarfile) + elif self.type in (XHDTYPE, XGLTYPE, SOLARIS_XHDTYPE): + return self._proc_pax(tarfile) + else: + return self._proc_builtin(tarfile) + + def _proc_builtin(self, tarfile): + """Process a builtin type or an unknown type which + will be treated as a regular file. + """ + self.offset_data = tarfile.fileobj.tell() + offset = self.offset_data + if self.isreg() or self.type not in SUPPORTED_TYPES: + # Skip the following data blocks. + offset += self._block(self.size) + tarfile.offset = offset + + # Patch the TarInfo object with saved global + # header information. + self._apply_pax_info(tarfile.pax_headers, tarfile.encoding, tarfile.errors) + + return self + + def _proc_gnulong(self, tarfile): + """Process the blocks that hold a GNU longname + or longlink member. + """ + buf = tarfile.fileobj.read(self._block(self.size)) + + # Fetch the next header and process it. + try: + next = self.fromtarfile(tarfile) + except HeaderError: + raise SubsequentHeaderError("missing or bad subsequent header") + + # Patch the TarInfo object from the next header with + # the longname information. + next.offset = self.offset + if self.type == GNUTYPE_LONGNAME: + next.name = nts(buf, tarfile.encoding, tarfile.errors) + elif self.type == GNUTYPE_LONGLINK: + next.linkname = nts(buf, tarfile.encoding, tarfile.errors) + + return next + + def _proc_sparse(self, tarfile): + """Process a GNU sparse header plus extra headers. + """ + # We already collected some sparse structures in frombuf(). + structs, isextended, origsize = self._sparse_structs + del self._sparse_structs + + # Collect sparse structures from extended header blocks. + while isextended: + buf = tarfile.fileobj.read(BLOCKSIZE) + pos = 0 + for i in range(21): + try: + offset = nti(buf[pos:pos + 12]) + numbytes = nti(buf[pos + 12:pos + 24]) + except ValueError: + break + if offset and numbytes: + structs.append((offset, numbytes)) + pos += 24 + isextended = bool(buf[504]) + self.sparse = structs + + self.offset_data = tarfile.fileobj.tell() + tarfile.offset = self.offset_data + self._block(self.size) + self.size = origsize + return self + + def _proc_pax(self, tarfile): + """Process an extended or global header as described in + POSIX.1-2008. + """ + # Read the header information. + buf = tarfile.fileobj.read(self._block(self.size)) + + # A pax header stores supplemental information for either + # the following file (extended) or all following files + # (global). + if self.type == XGLTYPE: + pax_headers = tarfile.pax_headers + else: + pax_headers = tarfile.pax_headers.copy() + + # Check if the pax header contains a hdrcharset field. This tells us + # the encoding of the path, linkpath, uname and gname fields. Normally, + # these fields are UTF-8 encoded but since POSIX.1-2008 tar + # implementations are allowed to store them as raw binary strings if + # the translation to UTF-8 fails. + match = re.search(br"\d+ hdrcharset=([^\n]+)\n", buf) + if match is not None: + pax_headers["hdrcharset"] = match.group(1).decode("utf8") + + # For the time being, we don't care about anything other than "BINARY". + # The only other value that is currently allowed by the standard is + # "ISO-IR 10646 2000 UTF-8" in other words UTF-8. + hdrcharset = pax_headers.get("hdrcharset") + if hdrcharset == "BINARY": + encoding = tarfile.encoding + else: + encoding = "utf8" + + # Parse pax header information. A record looks like that: + # "%d %s=%s\n" % (length, keyword, value). length is the size + # of the complete record including the length field itself and + # the newline. keyword and value are both UTF-8 encoded strings. + regex = re.compile(br"(\d+) ([^=]+)=") + pos = 0 + while True: + match = regex.match(buf, pos) + if not match: + break + + length, keyword = match.groups() + length = int(length) + value = buf[match.end(2) + 1:match.start(1) + length - 1] + + # Normally, we could just use "utf8" as the encoding and "strict" + # as the error handler, but we better not take the risk. For + # example, GNU tar <= 1.23 is known to store filenames it cannot + # translate to UTF-8 as raw strings (unfortunately without a + # hdrcharset=BINARY header). + # We first try the strict standard encoding, and if that fails we + # fall back on the user's encoding and error handler. + keyword = self._decode_pax_field(keyword, "utf8", "utf8", + tarfile.errors) + if keyword in PAX_NAME_FIELDS: + value = self._decode_pax_field(value, encoding, tarfile.encoding, + tarfile.errors) + else: + value = self._decode_pax_field(value, "utf8", "utf8", + tarfile.errors) + + pax_headers[keyword] = value + pos += length + + # Fetch the next header. + try: + next = self.fromtarfile(tarfile) + except HeaderError: + raise SubsequentHeaderError("missing or bad subsequent header") + + # Process GNU sparse information. + if "GNU.sparse.map" in pax_headers: + # GNU extended sparse format version 0.1. + self._proc_gnusparse_01(next, pax_headers) + + elif "GNU.sparse.size" in pax_headers: + # GNU extended sparse format version 0.0. + self._proc_gnusparse_00(next, pax_headers, buf) + + elif pax_headers.get("GNU.sparse.major") == "1" and pax_headers.get("GNU.sparse.minor") == "0": + # GNU extended sparse format version 1.0. + self._proc_gnusparse_10(next, pax_headers, tarfile) + + if self.type in (XHDTYPE, SOLARIS_XHDTYPE): + # Patch the TarInfo object with the extended header info. + next._apply_pax_info(pax_headers, tarfile.encoding, tarfile.errors) + next.offset = self.offset + + if "size" in pax_headers: + # If the extended header replaces the size field, + # we need to recalculate the offset where the next + # header starts. + offset = next.offset_data + if next.isreg() or next.type not in SUPPORTED_TYPES: + offset += next._block(next.size) + tarfile.offset = offset + + return next + + def _proc_gnusparse_00(self, next, pax_headers, buf): + """Process a GNU tar extended sparse header, version 0.0. + """ + offsets = [] + for match in re.finditer(br"\d+ GNU.sparse.offset=(\d+)\n", buf): + offsets.append(int(match.group(1))) + numbytes = [] + for match in re.finditer(br"\d+ GNU.sparse.numbytes=(\d+)\n", buf): + numbytes.append(int(match.group(1))) + next.sparse = list(zip(offsets, numbytes)) + + def _proc_gnusparse_01(self, next, pax_headers): + """Process a GNU tar extended sparse header, version 0.1. + """ + sparse = [int(x) for x in pax_headers["GNU.sparse.map"].split(",")] + next.sparse = list(zip(sparse[::2], sparse[1::2])) + + def _proc_gnusparse_10(self, next, pax_headers, tarfile): + """Process a GNU tar extended sparse header, version 1.0. + """ + fields = None + sparse = [] + buf = tarfile.fileobj.read(BLOCKSIZE) + fields, buf = buf.split(b"\n", 1) + fields = int(fields) + while len(sparse) < fields * 2: + if b"\n" not in buf: + buf += tarfile.fileobj.read(BLOCKSIZE) + number, buf = buf.split(b"\n", 1) + sparse.append(int(number)) + next.offset_data = tarfile.fileobj.tell() + next.sparse = list(zip(sparse[::2], sparse[1::2])) + + def _apply_pax_info(self, pax_headers, encoding, errors): + """Replace fields with supplemental information from a previous + pax extended or global header. + """ + for keyword, value in pax_headers.items(): + if keyword == "GNU.sparse.name": + setattr(self, "path", value) + elif keyword == "GNU.sparse.size": + setattr(self, "size", int(value)) + elif keyword == "GNU.sparse.realsize": + setattr(self, "size", int(value)) + elif keyword in PAX_FIELDS: + if keyword in PAX_NUMBER_FIELDS: + try: + value = PAX_NUMBER_FIELDS[keyword](value) + except ValueError: + value = 0 + if keyword == "path": + value = value.rstrip("/") + setattr(self, keyword, value) + + self.pax_headers = pax_headers.copy() + + def _decode_pax_field(self, value, encoding, fallback_encoding, fallback_errors): + """Decode a single field from a pax record. + """ + try: + return value.decode(encoding, "strict") + except UnicodeDecodeError: + return value.decode(fallback_encoding, fallback_errors) + + def _block(self, count): + """Round up a byte count by BLOCKSIZE and return it, + e.g. _block(834) => 1024. + """ + blocks, remainder = divmod(count, BLOCKSIZE) + if remainder: + blocks += 1 + return blocks * BLOCKSIZE + + def isreg(self): + return self.type in REGULAR_TYPES + def isfile(self): + return self.isreg() + def isdir(self): + return self.type == DIRTYPE + def issym(self): + return self.type == SYMTYPE + def islnk(self): + return self.type == LNKTYPE + def ischr(self): + return self.type == CHRTYPE + def isblk(self): + return self.type == BLKTYPE + def isfifo(self): + return self.type == FIFOTYPE + def issparse(self): + return self.sparse is not None + def isdev(self): + return self.type in (CHRTYPE, BLKTYPE, FIFOTYPE) +# class TarInfo + +class TarFile(object): + """The TarFile Class provides an interface to tar archives. + """ + + debug = 0 # May be set from 0 (no msgs) to 3 (all msgs) + + dereference = False # If true, add content of linked file to the + # tar file, else the link. + + ignore_zeros = False # If true, skips empty or invalid blocks and + # continues processing. + + errorlevel = 1 # If 0, fatal errors only appear in debug + # messages (if debug >= 0). If > 0, errors + # are passed to the caller as exceptions. + + format = DEFAULT_FORMAT # The format to use when creating an archive. + + encoding = ENCODING # Encoding for 8-bit character strings. + + errors = None # Error handler for unicode conversion. + + tarinfo = TarInfo # The default TarInfo class to use. + + fileobject = ExFileObject # The default ExFileObject class to use. + + def __init__(self, name=None, mode="r", fileobj=None, format=None, + tarinfo=None, dereference=None, ignore_zeros=None, encoding=None, + errors="surrogateescape", pax_headers=None, debug=None, errorlevel=None): + """Open an (uncompressed) tar archive `name'. `mode' is either 'r' to + read from an existing archive, 'a' to append data to an existing + file or 'w' to create a new file overwriting an existing one. `mode' + defaults to 'r'. + If `fileobj' is given, it is used for reading or writing data. If it + can be determined, `mode' is overridden by `fileobj's mode. + `fileobj' is not closed, when TarFile is closed. + """ + if len(mode) > 1 or mode not in "raw": + raise ValueError("mode must be 'r', 'a' or 'w'") + self.mode = mode + self._mode = {"r": "rb", "a": "r+b", "w": "wb"}[mode] + + if not fileobj: + if self.mode == "a" and not os.path.exists(name): + # Create nonexistent files in append mode. + self.mode = "w" + self._mode = "wb" + fileobj = bltn_open(name, self._mode) + self._extfileobj = False + else: + if name is None and hasattr(fileobj, "name"): + name = fileobj.name + if hasattr(fileobj, "mode"): + self._mode = fileobj.mode + self._extfileobj = True + self.name = os.path.abspath(name) if name else None + self.fileobj = fileobj + + # Init attributes. + if format is not None: + self.format = format + if tarinfo is not None: + self.tarinfo = tarinfo + if dereference is not None: + self.dereference = dereference + if ignore_zeros is not None: + self.ignore_zeros = ignore_zeros + if encoding is not None: + self.encoding = encoding + self.errors = errors + + if pax_headers is not None and self.format == PAX_FORMAT: + self.pax_headers = pax_headers + else: + self.pax_headers = {} + + if debug is not None: + self.debug = debug + if errorlevel is not None: + self.errorlevel = errorlevel + + # Init datastructures. + self.closed = False + self.members = [] # list of members as TarInfo objects + self._loaded = False # flag if all members have been read + self.offset = self.fileobj.tell() + # current position in the archive file + self.inodes = {} # dictionary caching the inodes of + # archive members already added + + try: + if self.mode == "r": + self.firstmember = None + self.firstmember = self.next() + + if self.mode == "a": + # Move to the end of the archive, + # before the first empty block. + while True: + self.fileobj.seek(self.offset) + try: + tarinfo = self.tarinfo.fromtarfile(self) + self.members.append(tarinfo) + except EOFHeaderError: + self.fileobj.seek(self.offset) + break + except HeaderError as e: + raise ReadError(str(e)) + + if self.mode in "aw": + self._loaded = True + + if self.pax_headers: + buf = self.tarinfo.create_pax_global_header(self.pax_headers.copy()) + self.fileobj.write(buf) + self.offset += len(buf) + except: + if not self._extfileobj: + self.fileobj.close() + self.closed = True + raise + + #-------------------------------------------------------------------------- + # Below are the classmethods which act as alternate constructors to the + # TarFile class. The open() method is the only one that is needed for + # public use; it is the "super"-constructor and is able to select an + # adequate "sub"-constructor for a particular compression using the mapping + # from OPEN_METH. + # + # This concept allows one to subclass TarFile without losing the comfort of + # the super-constructor. A sub-constructor is registered and made available + # by adding it to the mapping in OPEN_METH. + + @classmethod + def open(cls, name=None, mode="r", fileobj=None, bufsize=RECORDSIZE, **kwargs): + """Open a tar archive for reading, writing or appending. Return + an appropriate TarFile class. + + mode: + 'r' or 'r:*' open for reading with transparent compression + 'r:' open for reading exclusively uncompressed + 'r:gz' open for reading with gzip compression + 'r:bz2' open for reading with bzip2 compression + 'a' or 'a:' open for appending, creating the file if necessary + 'w' or 'w:' open for writing without compression + 'w:gz' open for writing with gzip compression + 'w:bz2' open for writing with bzip2 compression + + 'r|*' open a stream of tar blocks with transparent compression + 'r|' open an uncompressed stream of tar blocks for reading + 'r|gz' open a gzip compressed stream of tar blocks + 'r|bz2' open a bzip2 compressed stream of tar blocks + 'w|' open an uncompressed stream for writing + 'w|gz' open a gzip compressed stream for writing + 'w|bz2' open a bzip2 compressed stream for writing + """ + + if not name and not fileobj: + raise ValueError("nothing to open") + + if mode in ("r", "r:*"): + # Find out which *open() is appropriate for opening the file. + for comptype in cls.OPEN_METH: + func = getattr(cls, cls.OPEN_METH[comptype]) + if fileobj is not None: + saved_pos = fileobj.tell() + try: + return func(name, "r", fileobj, **kwargs) + except (ReadError, CompressionError) as e: + if fileobj is not None: + fileobj.seek(saved_pos) + continue + raise ReadError("file could not be opened successfully") + + elif ":" in mode: + filemode, comptype = mode.split(":", 1) + filemode = filemode or "r" + comptype = comptype or "tar" + + # Select the *open() function according to + # given compression. + if comptype in cls.OPEN_METH: + func = getattr(cls, cls.OPEN_METH[comptype]) + else: + raise CompressionError("unknown compression type %r" % comptype) + return func(name, filemode, fileobj, **kwargs) + + elif "|" in mode: + filemode, comptype = mode.split("|", 1) + filemode = filemode or "r" + comptype = comptype or "tar" + + if filemode not in "rw": + raise ValueError("mode must be 'r' or 'w'") + + stream = _Stream(name, filemode, comptype, fileobj, bufsize) + try: + t = cls(name, filemode, stream, **kwargs) + except: + stream.close() + raise + t._extfileobj = False + return t + + elif mode in "aw": + return cls.taropen(name, mode, fileobj, **kwargs) + + raise ValueError("undiscernible mode") + + @classmethod + def taropen(cls, name, mode="r", fileobj=None, **kwargs): + """Open uncompressed tar archive name for reading or writing. + """ + if len(mode) > 1 or mode not in "raw": + raise ValueError("mode must be 'r', 'a' or 'w'") + return cls(name, mode, fileobj, **kwargs) + + @classmethod + def gzopen(cls, name, mode="r", fileobj=None, compresslevel=9, **kwargs): + """Open gzip compressed tar archive name for reading or writing. + Appending is not allowed. + """ + if len(mode) > 1 or mode not in "rw": + raise ValueError("mode must be 'r' or 'w'") + + try: + import gzip + gzip.GzipFile + except (ImportError, AttributeError): + raise CompressionError("gzip module is not available") + + extfileobj = fileobj is not None + try: + fileobj = gzip.GzipFile(name, mode + "b", compresslevel, fileobj) + t = cls.taropen(name, mode, fileobj, **kwargs) + except IOError: + if not extfileobj and fileobj is not None: + fileobj.close() + if fileobj is None: + raise + raise ReadError("not a gzip file") + except: + if not extfileobj and fileobj is not None: + fileobj.close() + raise + t._extfileobj = extfileobj + return t + + @classmethod + def bz2open(cls, name, mode="r", fileobj=None, compresslevel=9, **kwargs): + """Open bzip2 compressed tar archive name for reading or writing. + Appending is not allowed. + """ + if len(mode) > 1 or mode not in "rw": + raise ValueError("mode must be 'r' or 'w'.") + + try: + import bz2 + except ImportError: + raise CompressionError("bz2 module is not available") + + if fileobj is not None: + fileobj = _BZ2Proxy(fileobj, mode) + else: + fileobj = bz2.BZ2File(name, mode, compresslevel=compresslevel) + + try: + t = cls.taropen(name, mode, fileobj, **kwargs) + except (IOError, EOFError): + fileobj.close() + raise ReadError("not a bzip2 file") + t._extfileobj = False + return t + + # All *open() methods are registered here. + OPEN_METH = { + "tar": "taropen", # uncompressed tar + "gz": "gzopen", # gzip compressed tar + "bz2": "bz2open" # bzip2 compressed tar + } + + #-------------------------------------------------------------------------- + # The public methods which TarFile provides: + + def close(self): + """Close the TarFile. In write-mode, two finishing zero blocks are + appended to the archive. + """ + if self.closed: + return + + if self.mode in "aw": + self.fileobj.write(NUL * (BLOCKSIZE * 2)) + self.offset += (BLOCKSIZE * 2) + # fill up the end with zero-blocks + # (like option -b20 for tar does) + blocks, remainder = divmod(self.offset, RECORDSIZE) + if remainder > 0: + self.fileobj.write(NUL * (RECORDSIZE - remainder)) + + if not self._extfileobj: + self.fileobj.close() + self.closed = True + + def getmember(self, name): + """Return a TarInfo object for member `name'. If `name' can not be + found in the archive, KeyError is raised. If a member occurs more + than once in the archive, its last occurrence is assumed to be the + most up-to-date version. + """ + tarinfo = self._getmember(name) + if tarinfo is None: + raise KeyError("filename %r not found" % name) + return tarinfo + + def getmembers(self): + """Return the members of the archive as a list of TarInfo objects. The + list has the same order as the members in the archive. + """ + self._check() + if not self._loaded: # if we want to obtain a list of + self._load() # all members, we first have to + # scan the whole archive. + return self.members + + def getnames(self): + """Return the members of the archive as a list of their names. It has + the same order as the list returned by getmembers(). + """ + return [tarinfo.name for tarinfo in self.getmembers()] + + def gettarinfo(self, name=None, arcname=None, fileobj=None): + """Create a TarInfo object for either the file `name' or the file + object `fileobj' (using os.fstat on its file descriptor). You can + modify some of the TarInfo's attributes before you add it using + addfile(). If given, `arcname' specifies an alternative name for the + file in the archive. + """ + self._check("aw") + + # When fileobj is given, replace name by + # fileobj's real name. + if fileobj is not None: + name = fileobj.name + + # Building the name of the member in the archive. + # Backward slashes are converted to forward slashes, + # Absolute paths are turned to relative paths. + if arcname is None: + arcname = name + drv, arcname = os.path.splitdrive(arcname) + arcname = arcname.replace(os.sep, "/") + arcname = arcname.lstrip("/") + + # Now, fill the TarInfo object with + # information specific for the file. + tarinfo = self.tarinfo() + tarinfo.tarfile = self + + # Use os.stat or os.lstat, depending on platform + # and if symlinks shall be resolved. + if fileobj is None: + if hasattr(os, "lstat") and not self.dereference: + statres = os.lstat(name) + else: + statres = os.stat(name) + else: + statres = os.fstat(fileobj.fileno()) + linkname = "" + + stmd = statres.st_mode + if stat.S_ISREG(stmd): + inode = (statres.st_ino, statres.st_dev) + if not self.dereference and statres.st_nlink > 1 and \ + inode in self.inodes and arcname != self.inodes[inode]: + # Is it a hardlink to an already + # archived file? + type = LNKTYPE + linkname = self.inodes[inode] + else: + # The inode is added only if its valid. + # For win32 it is always 0. + type = REGTYPE + if inode[0]: + self.inodes[inode] = arcname + elif stat.S_ISDIR(stmd): + type = DIRTYPE + elif stat.S_ISFIFO(stmd): + type = FIFOTYPE + elif stat.S_ISLNK(stmd): + type = SYMTYPE + linkname = os.readlink(name) + elif stat.S_ISCHR(stmd): + type = CHRTYPE + elif stat.S_ISBLK(stmd): + type = BLKTYPE + else: + return None + + # Fill the TarInfo object with all + # information we can get. + tarinfo.name = arcname + tarinfo.mode = stmd + tarinfo.uid = statres.st_uid + tarinfo.gid = statres.st_gid + if type == REGTYPE: + tarinfo.size = statres.st_size + else: + tarinfo.size = 0 + tarinfo.mtime = statres.st_mtime + tarinfo.type = type + tarinfo.linkname = linkname + if pwd: + try: + tarinfo.uname = pwd.getpwuid(tarinfo.uid)[0] + except KeyError: + pass + if grp: + try: + tarinfo.gname = grp.getgrgid(tarinfo.gid)[0] + except KeyError: + pass + + if type in (CHRTYPE, BLKTYPE): + if hasattr(os, "major") and hasattr(os, "minor"): + tarinfo.devmajor = os.major(statres.st_rdev) + tarinfo.devminor = os.minor(statres.st_rdev) + return tarinfo + + def list(self, verbose=True): + """Print a table of contents to sys.stdout. If `verbose' is False, only + the names of the members are printed. If it is True, an `ls -l'-like + output is produced. + """ + self._check() + + for tarinfo in self: + if verbose: + print(filemode(tarinfo.mode), end=' ') + print("%s/%s" % (tarinfo.uname or tarinfo.uid, + tarinfo.gname or tarinfo.gid), end=' ') + if tarinfo.ischr() or tarinfo.isblk(): + print("%10s" % ("%d,%d" \ + % (tarinfo.devmajor, tarinfo.devminor)), end=' ') + else: + print("%10d" % tarinfo.size, end=' ') + print("%d-%02d-%02d %02d:%02d:%02d" \ + % time.localtime(tarinfo.mtime)[:6], end=' ') + + print(tarinfo.name + ("/" if tarinfo.isdir() else ""), end=' ') + + if verbose: + if tarinfo.issym(): + print("->", tarinfo.linkname, end=' ') + if tarinfo.islnk(): + print("link to", tarinfo.linkname, end=' ') + print() + + def add(self, name, arcname=None, recursive=True, exclude=None, filter=None): + """Add the file `name' to the archive. `name' may be any type of file + (directory, fifo, symbolic link, etc.). If given, `arcname' + specifies an alternative name for the file in the archive. + Directories are added recursively by default. This can be avoided by + setting `recursive' to False. `exclude' is a function that should + return True for each filename to be excluded. `filter' is a function + that expects a TarInfo object argument and returns the changed + TarInfo object, if it returns None the TarInfo object will be + excluded from the archive. + """ + self._check("aw") + + if arcname is None: + arcname = name + + # Exclude pathnames. + if exclude is not None: + import warnings + warnings.warn("use the filter argument instead", + DeprecationWarning, 2) + if exclude(name): + self._dbg(2, "tarfile: Excluded %r" % name) + return + + # Skip if somebody tries to archive the archive... + if self.name is not None and os.path.abspath(name) == self.name: + self._dbg(2, "tarfile: Skipped %r" % name) + return + + self._dbg(1, name) + + # Create a TarInfo object from the file. + tarinfo = self.gettarinfo(name, arcname) + + if tarinfo is None: + self._dbg(1, "tarfile: Unsupported type %r" % name) + return + + # Change or exclude the TarInfo object. + if filter is not None: + tarinfo = filter(tarinfo) + if tarinfo is None: + self._dbg(2, "tarfile: Excluded %r" % name) + return + + # Append the tar header and data to the archive. + if tarinfo.isreg(): + f = bltn_open(name, "rb") + self.addfile(tarinfo, f) + f.close() + + elif tarinfo.isdir(): + self.addfile(tarinfo) + if recursive: + for f in os.listdir(name): + self.add(os.path.join(name, f), os.path.join(arcname, f), + recursive, exclude, filter=filter) + + else: + self.addfile(tarinfo) + + def addfile(self, tarinfo, fileobj=None): + """Add the TarInfo object `tarinfo' to the archive. If `fileobj' is + given, tarinfo.size bytes are read from it and added to the archive. + You can create TarInfo objects using gettarinfo(). + On Windows platforms, `fileobj' should always be opened with mode + 'rb' to avoid irritation about the file size. + """ + self._check("aw") + + tarinfo = copy.copy(tarinfo) + + buf = tarinfo.tobuf(self.format, self.encoding, self.errors) + self.fileobj.write(buf) + self.offset += len(buf) + + # If there's data to follow, append it. + if fileobj is not None: + copyfileobj(fileobj, self.fileobj, tarinfo.size) + blocks, remainder = divmod(tarinfo.size, BLOCKSIZE) + if remainder > 0: + self.fileobj.write(NUL * (BLOCKSIZE - remainder)) + blocks += 1 + self.offset += blocks * BLOCKSIZE + + self.members.append(tarinfo) + + def extractall(self, path=".", members=None): + """Extract all members from the archive to the current working + directory and set owner, modification time and permissions on + directories afterwards. `path' specifies a different directory + to extract to. `members' is optional and must be a subset of the + list returned by getmembers(). + """ + directories = [] + + if members is None: + members = self + + for tarinfo in members: + if tarinfo.isdir(): + # Extract directories with a safe mode. + directories.append(tarinfo) + tarinfo = copy.copy(tarinfo) + tarinfo.mode = 0o700 + # Do not set_attrs directories, as we will do that further down + self.extract(tarinfo, path, set_attrs=not tarinfo.isdir()) + + # Reverse sort directories. + directories.sort(key=lambda a: a.name) + directories.reverse() + + # Set correct owner, mtime and filemode on directories. + for tarinfo in directories: + dirpath = os.path.join(path, tarinfo.name) + try: + self.chown(tarinfo, dirpath) + self.utime(tarinfo, dirpath) + self.chmod(tarinfo, dirpath) + except ExtractError as e: + if self.errorlevel > 1: + raise + else: + self._dbg(1, "tarfile: %s" % e) + + def extract(self, member, path="", set_attrs=True): + """Extract a member from the archive to the current working directory, + using its full name. Its file information is extracted as accurately + as possible. `member' may be a filename or a TarInfo object. You can + specify a different directory using `path'. File attributes (owner, + mtime, mode) are set unless `set_attrs' is False. + """ + self._check("r") + + if isinstance(member, str): + tarinfo = self.getmember(member) + else: + tarinfo = member + + # Prepare the link target for makelink(). + if tarinfo.islnk(): + tarinfo._link_target = os.path.join(path, tarinfo.linkname) + + try: + self._extract_member(tarinfo, os.path.join(path, tarinfo.name), + set_attrs=set_attrs) + except EnvironmentError as e: + if self.errorlevel > 0: + raise + else: + if e.filename is None: + self._dbg(1, "tarfile: %s" % e.strerror) + else: + self._dbg(1, "tarfile: %s %r" % (e.strerror, e.filename)) + except ExtractError as e: + if self.errorlevel > 1: + raise + else: + self._dbg(1, "tarfile: %s" % e) + + def extractfile(self, member): + """Extract a member from the archive as a file object. `member' may be + a filename or a TarInfo object. If `member' is a regular file, a + file-like object is returned. If `member' is a link, a file-like + object is constructed from the link's target. If `member' is none of + the above, None is returned. + The file-like object is read-only and provides the following + methods: read(), readline(), readlines(), seek() and tell() + """ + self._check("r") + + if isinstance(member, str): + tarinfo = self.getmember(member) + else: + tarinfo = member + + if tarinfo.isreg(): + return self.fileobject(self, tarinfo) + + elif tarinfo.type not in SUPPORTED_TYPES: + # If a member's type is unknown, it is treated as a + # regular file. + return self.fileobject(self, tarinfo) + + elif tarinfo.islnk() or tarinfo.issym(): + if isinstance(self.fileobj, _Stream): + # A small but ugly workaround for the case that someone tries + # to extract a (sym)link as a file-object from a non-seekable + # stream of tar blocks. + raise StreamError("cannot extract (sym)link as file object") + else: + # A (sym)link's file object is its target's file object. + return self.extractfile(self._find_link_target(tarinfo)) + else: + # If there's no data associated with the member (directory, chrdev, + # blkdev, etc.), return None instead of a file object. + return None + + def _extract_member(self, tarinfo, targetpath, set_attrs=True): + """Extract the TarInfo object tarinfo to a physical + file called targetpath. + """ + # Fetch the TarInfo object for the given name + # and build the destination pathname, replacing + # forward slashes to platform specific separators. + targetpath = targetpath.rstrip("/") + targetpath = targetpath.replace("/", os.sep) + + # Create all upper directories. + upperdirs = os.path.dirname(targetpath) + if upperdirs and not os.path.exists(upperdirs): + # Create directories that are not part of the archive with + # default permissions. + os.makedirs(upperdirs) + + if tarinfo.islnk() or tarinfo.issym(): + self._dbg(1, "%s -> %s" % (tarinfo.name, tarinfo.linkname)) + else: + self._dbg(1, tarinfo.name) + + if tarinfo.isreg(): + self.makefile(tarinfo, targetpath) + elif tarinfo.isdir(): + self.makedir(tarinfo, targetpath) + elif tarinfo.isfifo(): + self.makefifo(tarinfo, targetpath) + elif tarinfo.ischr() or tarinfo.isblk(): + self.makedev(tarinfo, targetpath) + elif tarinfo.islnk() or tarinfo.issym(): + self.makelink(tarinfo, targetpath) + elif tarinfo.type not in SUPPORTED_TYPES: + self.makeunknown(tarinfo, targetpath) + else: + self.makefile(tarinfo, targetpath) + + if set_attrs: + self.chown(tarinfo, targetpath) + if not tarinfo.issym(): + self.chmod(tarinfo, targetpath) + self.utime(tarinfo, targetpath) + + #-------------------------------------------------------------------------- + # Below are the different file methods. They are called via + # _extract_member() when extract() is called. They can be replaced in a + # subclass to implement other functionality. + + def makedir(self, tarinfo, targetpath): + """Make a directory called targetpath. + """ + try: + # Use a safe mode for the directory, the real mode is set + # later in _extract_member(). + os.mkdir(targetpath, 0o700) + except EnvironmentError as e: + if e.errno != errno.EEXIST: + raise + + def makefile(self, tarinfo, targetpath): + """Make a file called targetpath. + """ + source = self.fileobj + source.seek(tarinfo.offset_data) + target = bltn_open(targetpath, "wb") + if tarinfo.sparse is not None: + for offset, size in tarinfo.sparse: + target.seek(offset) + copyfileobj(source, target, size) + else: + copyfileobj(source, target, tarinfo.size) + target.seek(tarinfo.size) + target.truncate() + target.close() + + def makeunknown(self, tarinfo, targetpath): + """Make a file from a TarInfo object with an unknown type + at targetpath. + """ + self.makefile(tarinfo, targetpath) + self._dbg(1, "tarfile: Unknown file type %r, " \ + "extracted as regular file." % tarinfo.type) + + def makefifo(self, tarinfo, targetpath): + """Make a fifo called targetpath. + """ + if hasattr(os, "mkfifo"): + os.mkfifo(targetpath) + else: + raise ExtractError("fifo not supported by system") + + def makedev(self, tarinfo, targetpath): + """Make a character or block device called targetpath. + """ + if not hasattr(os, "mknod") or not hasattr(os, "makedev"): + raise ExtractError("special devices not supported by system") + + mode = tarinfo.mode + if tarinfo.isblk(): + mode |= stat.S_IFBLK + else: + mode |= stat.S_IFCHR + + os.mknod(targetpath, mode, + os.makedev(tarinfo.devmajor, tarinfo.devminor)) + + def makelink(self, tarinfo, targetpath): + """Make a (symbolic) link called targetpath. If it cannot be created + (platform limitation), we try to make a copy of the referenced file + instead of a link. + """ + try: + # For systems that support symbolic and hard links. + if tarinfo.issym(): + os.symlink(tarinfo.linkname, targetpath) + else: + # See extract(). + if os.path.exists(tarinfo._link_target): + os.link(tarinfo._link_target, targetpath) + else: + self._extract_member(self._find_link_target(tarinfo), + targetpath) + except symlink_exception: + if tarinfo.issym(): + linkpath = os.path.join(os.path.dirname(tarinfo.name), + tarinfo.linkname) + else: + linkpath = tarinfo.linkname + else: + try: + self._extract_member(self._find_link_target(tarinfo), + targetpath) + except KeyError: + raise ExtractError("unable to resolve link inside archive") + + def chown(self, tarinfo, targetpath): + """Set owner of targetpath according to tarinfo. + """ + if pwd and hasattr(os, "geteuid") and os.geteuid() == 0: + # We have to be root to do so. + try: + g = grp.getgrnam(tarinfo.gname)[2] + except KeyError: + g = tarinfo.gid + try: + u = pwd.getpwnam(tarinfo.uname)[2] + except KeyError: + u = tarinfo.uid + try: + if tarinfo.issym() and hasattr(os, "lchown"): + os.lchown(targetpath, u, g) + else: + if sys.platform != "os2emx": + os.chown(targetpath, u, g) + except EnvironmentError as e: + raise ExtractError("could not change owner") + + def chmod(self, tarinfo, targetpath): + """Set file permissions of targetpath according to tarinfo. + """ + if hasattr(os, 'chmod'): + try: + os.chmod(targetpath, tarinfo.mode) + except EnvironmentError as e: + raise ExtractError("could not change mode") + + def utime(self, tarinfo, targetpath): + """Set modification time of targetpath according to tarinfo. + """ + if not hasattr(os, 'utime'): + return + try: + os.utime(targetpath, (tarinfo.mtime, tarinfo.mtime)) + except EnvironmentError as e: + raise ExtractError("could not change modification time") + + #-------------------------------------------------------------------------- + def next(self): + """Return the next member of the archive as a TarInfo object, when + TarFile is opened for reading. Return None if there is no more + available. + """ + self._check("ra") + if self.firstmember is not None: + m = self.firstmember + self.firstmember = None + return m + + # Read the next block. + self.fileobj.seek(self.offset) + tarinfo = None + while True: + try: + tarinfo = self.tarinfo.fromtarfile(self) + except EOFHeaderError as e: + if self.ignore_zeros: + self._dbg(2, "0x%X: %s" % (self.offset, e)) + self.offset += BLOCKSIZE + continue + except InvalidHeaderError as e: + if self.ignore_zeros: + self._dbg(2, "0x%X: %s" % (self.offset, e)) + self.offset += BLOCKSIZE + continue + elif self.offset == 0: + raise ReadError(str(e)) + except EmptyHeaderError: + if self.offset == 0: + raise ReadError("empty file") + except TruncatedHeaderError as e: + if self.offset == 0: + raise ReadError(str(e)) + except SubsequentHeaderError as e: + raise ReadError(str(e)) + break + + if tarinfo is not None: + self.members.append(tarinfo) + else: + self._loaded = True + + return tarinfo + + #-------------------------------------------------------------------------- + # Little helper methods: + + def _getmember(self, name, tarinfo=None, normalize=False): + """Find an archive member by name from bottom to top. + If tarinfo is given, it is used as the starting point. + """ + # Ensure that all members have been loaded. + members = self.getmembers() + + # Limit the member search list up to tarinfo. + if tarinfo is not None: + members = members[:members.index(tarinfo)] + + if normalize: + name = os.path.normpath(name) + + for member in reversed(members): + if normalize: + member_name = os.path.normpath(member.name) + else: + member_name = member.name + + if name == member_name: + return member + + def _load(self): + """Read through the entire archive file and look for readable + members. + """ + while True: + tarinfo = self.next() + if tarinfo is None: + break + self._loaded = True + + def _check(self, mode=None): + """Check if TarFile is still open, and if the operation's mode + corresponds to TarFile's mode. + """ + if self.closed: + raise IOError("%s is closed" % self.__class__.__name__) + if mode is not None and self.mode not in mode: + raise IOError("bad operation for mode %r" % self.mode) + + def _find_link_target(self, tarinfo): + """Find the target member of a symlink or hardlink member in the + archive. + """ + if tarinfo.issym(): + # Always search the entire archive. + linkname = os.path.dirname(tarinfo.name) + "/" + tarinfo.linkname + limit = None + else: + # Search the archive before the link, because a hard link is + # just a reference to an already archived file. + linkname = tarinfo.linkname + limit = tarinfo + + member = self._getmember(linkname, tarinfo=limit, normalize=True) + if member is None: + raise KeyError("linkname %r not found" % linkname) + return member + + def __iter__(self): + """Provide an iterator object. + """ + if self._loaded: + return iter(self.members) + else: + return TarIter(self) + + def _dbg(self, level, msg): + """Write debugging output to sys.stderr. + """ + if level <= self.debug: + print(msg, file=sys.stderr) + + def __enter__(self): + self._check() + return self + + def __exit__(self, type, value, traceback): + if type is None: + self.close() + else: + # An exception occurred. We must not call close() because + # it would try to write end-of-archive blocks and padding. + if not self._extfileobj: + self.fileobj.close() + self.closed = True +# class TarFile + +class TarIter(object): + """Iterator Class. + + for tarinfo in TarFile(...): + suite... + """ + + def __init__(self, tarfile): + """Construct a TarIter object. + """ + self.tarfile = tarfile + self.index = 0 + def __iter__(self): + """Return iterator object. + """ + return self + + def __next__(self): + """Return the next item using TarFile's next() method. + When all members have been read, set TarFile as _loaded. + """ + # Fix for SF #1100429: Under rare circumstances it can + # happen that getmembers() is called during iteration, + # which will cause TarIter to stop prematurely. + if not self.tarfile._loaded: + tarinfo = self.tarfile.next() + if not tarinfo: + self.tarfile._loaded = True + raise StopIteration + else: + try: + tarinfo = self.tarfile.members[self.index] + except IndexError: + raise StopIteration + self.index += 1 + return tarinfo + + next = __next__ # for Python 2.x + +#-------------------- +# exported functions +#-------------------- +def is_tarfile(name): + """Return True if name points to a tar archive that we + are able to handle, else return False. + """ + try: + t = open(name) + t.close() + return True + except TarError: + return False + +bltn_open = open +open = TarFile.open diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/compat.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/compat.py new file mode 100644 index 00000000..ff328c8e --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/compat.py @@ -0,0 +1,1120 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2013-2017 Vinay Sajip. +# Licensed to the Python Software Foundation under a contributor agreement. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +from __future__ import absolute_import + +import os +import re +import sys + +try: + import ssl +except ImportError: # pragma: no cover + ssl = None + +if sys.version_info[0] < 3: # pragma: no cover + from StringIO import StringIO + string_types = basestring, + text_type = unicode + from types import FileType as file_type + import __builtin__ as builtins + import ConfigParser as configparser + from ._backport import shutil + from urlparse import urlparse, urlunparse, urljoin, urlsplit, urlunsplit + from urllib import (urlretrieve, quote as _quote, unquote, url2pathname, + pathname2url, ContentTooShortError, splittype) + + def quote(s): + if isinstance(s, unicode): + s = s.encode('utf-8') + return _quote(s) + + import urllib2 + from urllib2 import (Request, urlopen, URLError, HTTPError, + HTTPBasicAuthHandler, HTTPPasswordMgr, + HTTPHandler, HTTPRedirectHandler, + build_opener) + if ssl: + from urllib2 import HTTPSHandler + import httplib + import xmlrpclib + import Queue as queue + from HTMLParser import HTMLParser + import htmlentitydefs + raw_input = raw_input + from itertools import ifilter as filter + from itertools import ifilterfalse as filterfalse + + _userprog = None + def splituser(host): + """splituser('user[:passwd]@host[:port]') --> 'user[:passwd]', 'host[:port]'.""" + global _userprog + if _userprog is None: + import re + _userprog = re.compile('^(.*)@(.*)$') + + match = _userprog.match(host) + if match: return match.group(1, 2) + return None, host + +else: # pragma: no cover + from io import StringIO + string_types = str, + text_type = str + from io import TextIOWrapper as file_type + import builtins + import configparser + import shutil + from urllib.parse import (urlparse, urlunparse, urljoin, splituser, quote, + unquote, urlsplit, urlunsplit, splittype) + from urllib.request import (urlopen, urlretrieve, Request, url2pathname, + pathname2url, + HTTPBasicAuthHandler, HTTPPasswordMgr, + HTTPHandler, HTTPRedirectHandler, + build_opener) + if ssl: + from urllib.request import HTTPSHandler + from urllib.error import HTTPError, URLError, ContentTooShortError + import http.client as httplib + import urllib.request as urllib2 + import xmlrpc.client as xmlrpclib + import queue + from html.parser import HTMLParser + import html.entities as htmlentitydefs + raw_input = input + from itertools import filterfalse + filter = filter + +try: + from ssl import match_hostname, CertificateError +except ImportError: # pragma: no cover + class CertificateError(ValueError): + pass + + + def _dnsname_match(dn, hostname, max_wildcards=1): + """Matching according to RFC 6125, section 6.4.3 + + http://tools.ietf.org/html/rfc6125#section-6.4.3 + """ + pats = [] + if not dn: + return False + + parts = dn.split('.') + leftmost, remainder = parts[0], parts[1:] + + wildcards = leftmost.count('*') + if wildcards > max_wildcards: + # Issue #17980: avoid denials of service by refusing more + # than one wildcard per fragment. A survey of established + # policy among SSL implementations showed it to be a + # reasonable choice. + raise CertificateError( + "too many wildcards in certificate DNS name: " + repr(dn)) + + # speed up common case w/o wildcards + if not wildcards: + return dn.lower() == hostname.lower() + + # RFC 6125, section 6.4.3, subitem 1. + # The client SHOULD NOT attempt to match a presented identifier in which + # the wildcard character comprises a label other than the left-most label. + if leftmost == '*': + # When '*' is a fragment by itself, it matches a non-empty dotless + # fragment. + pats.append('[^.]+') + elif leftmost.startswith('xn--') or hostname.startswith('xn--'): + # RFC 6125, section 6.4.3, subitem 3. + # The client SHOULD NOT attempt to match a presented identifier + # where the wildcard character is embedded within an A-label or + # U-label of an internationalized domain name. + pats.append(re.escape(leftmost)) + else: + # Otherwise, '*' matches any dotless string, e.g. www* + pats.append(re.escape(leftmost).replace(r'\*', '[^.]*')) + + # add the remaining fragments, ignore any wildcards + for frag in remainder: + pats.append(re.escape(frag)) + + pat = re.compile(r'\A' + r'\.'.join(pats) + r'\Z', re.IGNORECASE) + return pat.match(hostname) + + + def match_hostname(cert, hostname): + """Verify that *cert* (in decoded format as returned by + SSLSocket.getpeercert()) matches the *hostname*. RFC 2818 and RFC 6125 + rules are followed, but IP addresses are not accepted for *hostname*. + + CertificateError is raised on failure. On success, the function + returns nothing. + """ + if not cert: + raise ValueError("empty or no certificate, match_hostname needs a " + "SSL socket or SSL context with either " + "CERT_OPTIONAL or CERT_REQUIRED") + dnsnames = [] + san = cert.get('subjectAltName', ()) + for key, value in san: + if key == 'DNS': + if _dnsname_match(value, hostname): + return + dnsnames.append(value) + if not dnsnames: + # The subject is only checked when there is no dNSName entry + # in subjectAltName + for sub in cert.get('subject', ()): + for key, value in sub: + # XXX according to RFC 2818, the most specific Common Name + # must be used. + if key == 'commonName': + if _dnsname_match(value, hostname): + return + dnsnames.append(value) + if len(dnsnames) > 1: + raise CertificateError("hostname %r " + "doesn't match either of %s" + % (hostname, ', '.join(map(repr, dnsnames)))) + elif len(dnsnames) == 1: + raise CertificateError("hostname %r " + "doesn't match %r" + % (hostname, dnsnames[0])) + else: + raise CertificateError("no appropriate commonName or " + "subjectAltName fields were found") + + +try: + from types import SimpleNamespace as Container +except ImportError: # pragma: no cover + class Container(object): + """ + A generic container for when multiple values need to be returned + """ + def __init__(self, **kwargs): + self.__dict__.update(kwargs) + + +try: + from shutil import which +except ImportError: # pragma: no cover + # Implementation from Python 3.3 + def which(cmd, mode=os.F_OK | os.X_OK, path=None): + """Given a command, mode, and a PATH string, return the path which + conforms to the given mode on the PATH, or None if there is no such + file. + + `mode` defaults to os.F_OK | os.X_OK. `path` defaults to the result + of os.environ.get("PATH"), or can be overridden with a custom search + path. + + """ + # Check that a given file can be accessed with the correct mode. + # Additionally check that `file` is not a directory, as on Windows + # directories pass the os.access check. + def _access_check(fn, mode): + return (os.path.exists(fn) and os.access(fn, mode) + and not os.path.isdir(fn)) + + # If we're given a path with a directory part, look it up directly rather + # than referring to PATH directories. This includes checking relative to the + # current directory, e.g. ./script + if os.path.dirname(cmd): + if _access_check(cmd, mode): + return cmd + return None + + if path is None: + path = os.environ.get("PATH", os.defpath) + if not path: + return None + path = path.split(os.pathsep) + + if sys.platform == "win32": + # The current directory takes precedence on Windows. + if not os.curdir in path: + path.insert(0, os.curdir) + + # PATHEXT is necessary to check on Windows. + pathext = os.environ.get("PATHEXT", "").split(os.pathsep) + # See if the given file matches any of the expected path extensions. + # This will allow us to short circuit when given "python.exe". + # If it does match, only test that one, otherwise we have to try + # others. + if any(cmd.lower().endswith(ext.lower()) for ext in pathext): + files = [cmd] + else: + files = [cmd + ext for ext in pathext] + else: + # On other platforms you don't have things like PATHEXT to tell you + # what file suffixes are executable, so just pass on cmd as-is. + files = [cmd] + + seen = set() + for dir in path: + normdir = os.path.normcase(dir) + if not normdir in seen: + seen.add(normdir) + for thefile in files: + name = os.path.join(dir, thefile) + if _access_check(name, mode): + return name + return None + + +# ZipFile is a context manager in 2.7, but not in 2.6 + +from zipfile import ZipFile as BaseZipFile + +if hasattr(BaseZipFile, '__enter__'): # pragma: no cover + ZipFile = BaseZipFile +else: # pragma: no cover + from zipfile import ZipExtFile as BaseZipExtFile + + class ZipExtFile(BaseZipExtFile): + def __init__(self, base): + self.__dict__.update(base.__dict__) + + def __enter__(self): + return self + + def __exit__(self, *exc_info): + self.close() + # return None, so if an exception occurred, it will propagate + + class ZipFile(BaseZipFile): + def __enter__(self): + return self + + def __exit__(self, *exc_info): + self.close() + # return None, so if an exception occurred, it will propagate + + def open(self, *args, **kwargs): + base = BaseZipFile.open(self, *args, **kwargs) + return ZipExtFile(base) + +try: + from platform import python_implementation +except ImportError: # pragma: no cover + def python_implementation(): + """Return a string identifying the Python implementation.""" + if 'PyPy' in sys.version: + return 'PyPy' + if os.name == 'java': + return 'Jython' + if sys.version.startswith('IronPython'): + return 'IronPython' + return 'CPython' + +try: + import sysconfig +except ImportError: # pragma: no cover + from ._backport import sysconfig + +try: + callable = callable +except NameError: # pragma: no cover + from collections import Callable + + def callable(obj): + return isinstance(obj, Callable) + + +try: + fsencode = os.fsencode + fsdecode = os.fsdecode +except AttributeError: # pragma: no cover + # Issue #99: on some systems (e.g. containerised), + # sys.getfilesystemencoding() returns None, and we need a real value, + # so fall back to utf-8. From the CPython 2.7 docs relating to Unix and + # sys.getfilesystemencoding(): the return value is "the user’s preference + # according to the result of nl_langinfo(CODESET), or None if the + # nl_langinfo(CODESET) failed." + _fsencoding = sys.getfilesystemencoding() or 'utf-8' + if _fsencoding == 'mbcs': + _fserrors = 'strict' + else: + _fserrors = 'surrogateescape' + + def fsencode(filename): + if isinstance(filename, bytes): + return filename + elif isinstance(filename, text_type): + return filename.encode(_fsencoding, _fserrors) + else: + raise TypeError("expect bytes or str, not %s" % + type(filename).__name__) + + def fsdecode(filename): + if isinstance(filename, text_type): + return filename + elif isinstance(filename, bytes): + return filename.decode(_fsencoding, _fserrors) + else: + raise TypeError("expect bytes or str, not %s" % + type(filename).__name__) + +try: + from tokenize import detect_encoding +except ImportError: # pragma: no cover + from codecs import BOM_UTF8, lookup + import re + + cookie_re = re.compile(r"coding[:=]\s*([-\w.]+)") + + def _get_normal_name(orig_enc): + """Imitates get_normal_name in tokenizer.c.""" + # Only care about the first 12 characters. + enc = orig_enc[:12].lower().replace("_", "-") + if enc == "utf-8" or enc.startswith("utf-8-"): + return "utf-8" + if enc in ("latin-1", "iso-8859-1", "iso-latin-1") or \ + enc.startswith(("latin-1-", "iso-8859-1-", "iso-latin-1-")): + return "iso-8859-1" + return orig_enc + + def detect_encoding(readline): + """ + The detect_encoding() function is used to detect the encoding that should + be used to decode a Python source file. It requires one argument, readline, + in the same way as the tokenize() generator. + + It will call readline a maximum of twice, and return the encoding used + (as a string) and a list of any lines (left as bytes) it has read in. + + It detects the encoding from the presence of a utf-8 bom or an encoding + cookie as specified in pep-0263. If both a bom and a cookie are present, + but disagree, a SyntaxError will be raised. If the encoding cookie is an + invalid charset, raise a SyntaxError. Note that if a utf-8 bom is found, + 'utf-8-sig' is returned. + + If no encoding is specified, then the default of 'utf-8' will be returned. + """ + try: + filename = readline.__self__.name + except AttributeError: + filename = None + bom_found = False + encoding = None + default = 'utf-8' + def read_or_stop(): + try: + return readline() + except StopIteration: + return b'' + + def find_cookie(line): + try: + # Decode as UTF-8. Either the line is an encoding declaration, + # in which case it should be pure ASCII, or it must be UTF-8 + # per default encoding. + line_string = line.decode('utf-8') + except UnicodeDecodeError: + msg = "invalid or missing encoding declaration" + if filename is not None: + msg = '{} for {!r}'.format(msg, filename) + raise SyntaxError(msg) + + matches = cookie_re.findall(line_string) + if not matches: + return None + encoding = _get_normal_name(matches[0]) + try: + codec = lookup(encoding) + except LookupError: + # This behaviour mimics the Python interpreter + if filename is None: + msg = "unknown encoding: " + encoding + else: + msg = "unknown encoding for {!r}: {}".format(filename, + encoding) + raise SyntaxError(msg) + + if bom_found: + if codec.name != 'utf-8': + # This behaviour mimics the Python interpreter + if filename is None: + msg = 'encoding problem: utf-8' + else: + msg = 'encoding problem for {!r}: utf-8'.format(filename) + raise SyntaxError(msg) + encoding += '-sig' + return encoding + + first = read_or_stop() + if first.startswith(BOM_UTF8): + bom_found = True + first = first[3:] + default = 'utf-8-sig' + if not first: + return default, [] + + encoding = find_cookie(first) + if encoding: + return encoding, [first] + + second = read_or_stop() + if not second: + return default, [first] + + encoding = find_cookie(second) + if encoding: + return encoding, [first, second] + + return default, [first, second] + +# For converting & <-> & etc. +try: + from html import escape +except ImportError: + from cgi import escape +if sys.version_info[:2] < (3, 4): + unescape = HTMLParser().unescape +else: + from html import unescape + +try: + from collections import ChainMap +except ImportError: # pragma: no cover + from collections import MutableMapping + + try: + from reprlib import recursive_repr as _recursive_repr + except ImportError: + def _recursive_repr(fillvalue='...'): + ''' + Decorator to make a repr function return fillvalue for a recursive + call + ''' + + def decorating_function(user_function): + repr_running = set() + + def wrapper(self): + key = id(self), get_ident() + if key in repr_running: + return fillvalue + repr_running.add(key) + try: + result = user_function(self) + finally: + repr_running.discard(key) + return result + + # Can't use functools.wraps() here because of bootstrap issues + wrapper.__module__ = getattr(user_function, '__module__') + wrapper.__doc__ = getattr(user_function, '__doc__') + wrapper.__name__ = getattr(user_function, '__name__') + wrapper.__annotations__ = getattr(user_function, '__annotations__', {}) + return wrapper + + return decorating_function + + class ChainMap(MutableMapping): + ''' A ChainMap groups multiple dicts (or other mappings) together + to create a single, updateable view. + + The underlying mappings are stored in a list. That list is public and can + accessed or updated using the *maps* attribute. There is no other state. + + Lookups search the underlying mappings successively until a key is found. + In contrast, writes, updates, and deletions only operate on the first + mapping. + + ''' + + def __init__(self, *maps): + '''Initialize a ChainMap by setting *maps* to the given mappings. + If no mappings are provided, a single empty dictionary is used. + + ''' + self.maps = list(maps) or [{}] # always at least one map + + def __missing__(self, key): + raise KeyError(key) + + def __getitem__(self, key): + for mapping in self.maps: + try: + return mapping[key] # can't use 'key in mapping' with defaultdict + except KeyError: + pass + return self.__missing__(key) # support subclasses that define __missing__ + + def get(self, key, default=None): + return self[key] if key in self else default + + def __len__(self): + return len(set().union(*self.maps)) # reuses stored hash values if possible + + def __iter__(self): + return iter(set().union(*self.maps)) + + def __contains__(self, key): + return any(key in m for m in self.maps) + + def __bool__(self): + return any(self.maps) + + @_recursive_repr() + def __repr__(self): + return '{0.__class__.__name__}({1})'.format( + self, ', '.join(map(repr, self.maps))) + + @classmethod + def fromkeys(cls, iterable, *args): + 'Create a ChainMap with a single dict created from the iterable.' + return cls(dict.fromkeys(iterable, *args)) + + def copy(self): + 'New ChainMap or subclass with a new copy of maps[0] and refs to maps[1:]' + return self.__class__(self.maps[0].copy(), *self.maps[1:]) + + __copy__ = copy + + def new_child(self): # like Django's Context.push() + 'New ChainMap with a new dict followed by all previous maps.' + return self.__class__({}, *self.maps) + + @property + def parents(self): # like Django's Context.pop() + 'New ChainMap from maps[1:].' + return self.__class__(*self.maps[1:]) + + def __setitem__(self, key, value): + self.maps[0][key] = value + + def __delitem__(self, key): + try: + del self.maps[0][key] + except KeyError: + raise KeyError('Key not found in the first mapping: {!r}'.format(key)) + + def popitem(self): + 'Remove and return an item pair from maps[0]. Raise KeyError is maps[0] is empty.' + try: + return self.maps[0].popitem() + except KeyError: + raise KeyError('No keys found in the first mapping.') + + def pop(self, key, *args): + 'Remove *key* from maps[0] and return its value. Raise KeyError if *key* not in maps[0].' + try: + return self.maps[0].pop(key, *args) + except KeyError: + raise KeyError('Key not found in the first mapping: {!r}'.format(key)) + + def clear(self): + 'Clear maps[0], leaving maps[1:] intact.' + self.maps[0].clear() + +try: + from importlib.util import cache_from_source # Python >= 3.4 +except ImportError: # pragma: no cover + try: + from imp import cache_from_source + except ImportError: # pragma: no cover + def cache_from_source(path, debug_override=None): + assert path.endswith('.py') + if debug_override is None: + debug_override = __debug__ + if debug_override: + suffix = 'c' + else: + suffix = 'o' + return path + suffix + +try: + from collections import OrderedDict +except ImportError: # pragma: no cover +## {{{ http://code.activestate.com/recipes/576693/ (r9) +# Backport of OrderedDict() class that runs on Python 2.4, 2.5, 2.6, 2.7 and pypy. +# Passes Python2.7's test suite and incorporates all the latest updates. + try: + from thread import get_ident as _get_ident + except ImportError: + from dummy_thread import get_ident as _get_ident + + try: + from _abcoll import KeysView, ValuesView, ItemsView + except ImportError: + pass + + + class OrderedDict(dict): + 'Dictionary that remembers insertion order' + # An inherited dict maps keys to values. + # The inherited dict provides __getitem__, __len__, __contains__, and get. + # The remaining methods are order-aware. + # Big-O running times for all methods are the same as for regular dictionaries. + + # The internal self.__map dictionary maps keys to links in a doubly linked list. + # The circular doubly linked list starts and ends with a sentinel element. + # The sentinel element never gets deleted (this simplifies the algorithm). + # Each link is stored as a list of length three: [PREV, NEXT, KEY]. + + def __init__(self, *args, **kwds): + '''Initialize an ordered dictionary. Signature is the same as for + regular dictionaries, but keyword arguments are not recommended + because their insertion order is arbitrary. + + ''' + if len(args) > 1: + raise TypeError('expected at most 1 arguments, got %d' % len(args)) + try: + self.__root + except AttributeError: + self.__root = root = [] # sentinel node + root[:] = [root, root, None] + self.__map = {} + self.__update(*args, **kwds) + + def __setitem__(self, key, value, dict_setitem=dict.__setitem__): + 'od.__setitem__(i, y) <==> od[i]=y' + # Setting a new item creates a new link which goes at the end of the linked + # list, and the inherited dictionary is updated with the new key/value pair. + if key not in self: + root = self.__root + last = root[0] + last[1] = root[0] = self.__map[key] = [last, root, key] + dict_setitem(self, key, value) + + def __delitem__(self, key, dict_delitem=dict.__delitem__): + 'od.__delitem__(y) <==> del od[y]' + # Deleting an existing item uses self.__map to find the link which is + # then removed by updating the links in the predecessor and successor nodes. + dict_delitem(self, key) + link_prev, link_next, key = self.__map.pop(key) + link_prev[1] = link_next + link_next[0] = link_prev + + def __iter__(self): + 'od.__iter__() <==> iter(od)' + root = self.__root + curr = root[1] + while curr is not root: + yield curr[2] + curr = curr[1] + + def __reversed__(self): + 'od.__reversed__() <==> reversed(od)' + root = self.__root + curr = root[0] + while curr is not root: + yield curr[2] + curr = curr[0] + + def clear(self): + 'od.clear() -> None. Remove all items from od.' + try: + for node in self.__map.itervalues(): + del node[:] + root = self.__root + root[:] = [root, root, None] + self.__map.clear() + except AttributeError: + pass + dict.clear(self) + + def popitem(self, last=True): + '''od.popitem() -> (k, v), return and remove a (key, value) pair. + Pairs are returned in LIFO order if last is true or FIFO order if false. + + ''' + if not self: + raise KeyError('dictionary is empty') + root = self.__root + if last: + link = root[0] + link_prev = link[0] + link_prev[1] = root + root[0] = link_prev + else: + link = root[1] + link_next = link[1] + root[1] = link_next + link_next[0] = root + key = link[2] + del self.__map[key] + value = dict.pop(self, key) + return key, value + + # -- the following methods do not depend on the internal structure -- + + def keys(self): + 'od.keys() -> list of keys in od' + return list(self) + + def values(self): + 'od.values() -> list of values in od' + return [self[key] for key in self] + + def items(self): + 'od.items() -> list of (key, value) pairs in od' + return [(key, self[key]) for key in self] + + def iterkeys(self): + 'od.iterkeys() -> an iterator over the keys in od' + return iter(self) + + def itervalues(self): + 'od.itervalues -> an iterator over the values in od' + for k in self: + yield self[k] + + def iteritems(self): + 'od.iteritems -> an iterator over the (key, value) items in od' + for k in self: + yield (k, self[k]) + + def update(*args, **kwds): + '''od.update(E, **F) -> None. Update od from dict/iterable E and F. + + If E is a dict instance, does: for k in E: od[k] = E[k] + If E has a .keys() method, does: for k in E.keys(): od[k] = E[k] + Or if E is an iterable of items, does: for k, v in E: od[k] = v + In either case, this is followed by: for k, v in F.items(): od[k] = v + + ''' + if len(args) > 2: + raise TypeError('update() takes at most 2 positional ' + 'arguments (%d given)' % (len(args),)) + elif not args: + raise TypeError('update() takes at least 1 argument (0 given)') + self = args[0] + # Make progressively weaker assumptions about "other" + other = () + if len(args) == 2: + other = args[1] + if isinstance(other, dict): + for key in other: + self[key] = other[key] + elif hasattr(other, 'keys'): + for key in other.keys(): + self[key] = other[key] + else: + for key, value in other: + self[key] = value + for key, value in kwds.items(): + self[key] = value + + __update = update # let subclasses override update without breaking __init__ + + __marker = object() + + def pop(self, key, default=__marker): + '''od.pop(k[,d]) -> v, remove specified key and return the corresponding value. + If key is not found, d is returned if given, otherwise KeyError is raised. + + ''' + if key in self: + result = self[key] + del self[key] + return result + if default is self.__marker: + raise KeyError(key) + return default + + def setdefault(self, key, default=None): + 'od.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od' + if key in self: + return self[key] + self[key] = default + return default + + def __repr__(self, _repr_running=None): + 'od.__repr__() <==> repr(od)' + if not _repr_running: _repr_running = {} + call_key = id(self), _get_ident() + if call_key in _repr_running: + return '...' + _repr_running[call_key] = 1 + try: + if not self: + return '%s()' % (self.__class__.__name__,) + return '%s(%r)' % (self.__class__.__name__, self.items()) + finally: + del _repr_running[call_key] + + def __reduce__(self): + 'Return state information for pickling' + items = [[k, self[k]] for k in self] + inst_dict = vars(self).copy() + for k in vars(OrderedDict()): + inst_dict.pop(k, None) + if inst_dict: + return (self.__class__, (items,), inst_dict) + return self.__class__, (items,) + + def copy(self): + 'od.copy() -> a shallow copy of od' + return self.__class__(self) + + @classmethod + def fromkeys(cls, iterable, value=None): + '''OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S + and values equal to v (which defaults to None). + + ''' + d = cls() + for key in iterable: + d[key] = value + return d + + def __eq__(self, other): + '''od.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive + while comparison to a regular mapping is order-insensitive. + + ''' + if isinstance(other, OrderedDict): + return len(self)==len(other) and self.items() == other.items() + return dict.__eq__(self, other) + + def __ne__(self, other): + return not self == other + + # -- the following methods are only used in Python 2.7 -- + + def viewkeys(self): + "od.viewkeys() -> a set-like object providing a view on od's keys" + return KeysView(self) + + def viewvalues(self): + "od.viewvalues() -> an object providing a view on od's values" + return ValuesView(self) + + def viewitems(self): + "od.viewitems() -> a set-like object providing a view on od's items" + return ItemsView(self) + +try: + from logging.config import BaseConfigurator, valid_ident +except ImportError: # pragma: no cover + IDENTIFIER = re.compile('^[a-z_][a-z0-9_]*$', re.I) + + + def valid_ident(s): + m = IDENTIFIER.match(s) + if not m: + raise ValueError('Not a valid Python identifier: %r' % s) + return True + + + # The ConvertingXXX classes are wrappers around standard Python containers, + # and they serve to convert any suitable values in the container. The + # conversion converts base dicts, lists and tuples to their wrapped + # equivalents, whereas strings which match a conversion format are converted + # appropriately. + # + # Each wrapper should have a configurator attribute holding the actual + # configurator to use for conversion. + + class ConvertingDict(dict): + """A converting dictionary wrapper.""" + + def __getitem__(self, key): + value = dict.__getitem__(self, key) + result = self.configurator.convert(value) + #If the converted value is different, save for next time + if value is not result: + self[key] = result + if type(result) in (ConvertingDict, ConvertingList, + ConvertingTuple): + result.parent = self + result.key = key + return result + + def get(self, key, default=None): + value = dict.get(self, key, default) + result = self.configurator.convert(value) + #If the converted value is different, save for next time + if value is not result: + self[key] = result + if type(result) in (ConvertingDict, ConvertingList, + ConvertingTuple): + result.parent = self + result.key = key + return result + + def pop(self, key, default=None): + value = dict.pop(self, key, default) + result = self.configurator.convert(value) + if value is not result: + if type(result) in (ConvertingDict, ConvertingList, + ConvertingTuple): + result.parent = self + result.key = key + return result + + class ConvertingList(list): + """A converting list wrapper.""" + def __getitem__(self, key): + value = list.__getitem__(self, key) + result = self.configurator.convert(value) + #If the converted value is different, save for next time + if value is not result: + self[key] = result + if type(result) in (ConvertingDict, ConvertingList, + ConvertingTuple): + result.parent = self + result.key = key + return result + + def pop(self, idx=-1): + value = list.pop(self, idx) + result = self.configurator.convert(value) + if value is not result: + if type(result) in (ConvertingDict, ConvertingList, + ConvertingTuple): + result.parent = self + return result + + class ConvertingTuple(tuple): + """A converting tuple wrapper.""" + def __getitem__(self, key): + value = tuple.__getitem__(self, key) + result = self.configurator.convert(value) + if value is not result: + if type(result) in (ConvertingDict, ConvertingList, + ConvertingTuple): + result.parent = self + result.key = key + return result + + class BaseConfigurator(object): + """ + The configurator base class which defines some useful defaults. + """ + + CONVERT_PATTERN = re.compile(r'^(?P<prefix>[a-z]+)://(?P<suffix>.*)$') + + WORD_PATTERN = re.compile(r'^\s*(\w+)\s*') + DOT_PATTERN = re.compile(r'^\.\s*(\w+)\s*') + INDEX_PATTERN = re.compile(r'^\[\s*(\w+)\s*\]\s*') + DIGIT_PATTERN = re.compile(r'^\d+$') + + value_converters = { + 'ext' : 'ext_convert', + 'cfg' : 'cfg_convert', + } + + # We might want to use a different one, e.g. importlib + importer = staticmethod(__import__) + + def __init__(self, config): + self.config = ConvertingDict(config) + self.config.configurator = self + + def resolve(self, s): + """ + Resolve strings to objects using standard import and attribute + syntax. + """ + name = s.split('.') + used = name.pop(0) + try: + found = self.importer(used) + for frag in name: + used += '.' + frag + try: + found = getattr(found, frag) + except AttributeError: + self.importer(used) + found = getattr(found, frag) + return found + except ImportError: + e, tb = sys.exc_info()[1:] + v = ValueError('Cannot resolve %r: %s' % (s, e)) + v.__cause__, v.__traceback__ = e, tb + raise v + + def ext_convert(self, value): + """Default converter for the ext:// protocol.""" + return self.resolve(value) + + def cfg_convert(self, value): + """Default converter for the cfg:// protocol.""" + rest = value + m = self.WORD_PATTERN.match(rest) + if m is None: + raise ValueError("Unable to convert %r" % value) + else: + rest = rest[m.end():] + d = self.config[m.groups()[0]] + #print d, rest + while rest: + m = self.DOT_PATTERN.match(rest) + if m: + d = d[m.groups()[0]] + else: + m = self.INDEX_PATTERN.match(rest) + if m: + idx = m.groups()[0] + if not self.DIGIT_PATTERN.match(idx): + d = d[idx] + else: + try: + n = int(idx) # try as number first (most likely) + d = d[n] + except TypeError: + d = d[idx] + if m: + rest = rest[m.end():] + else: + raise ValueError('Unable to convert ' + '%r at %r' % (value, rest)) + #rest should be empty + return d + + def convert(self, value): + """ + Convert values to an appropriate type. dicts, lists and tuples are + replaced by their converting alternatives. Strings are checked to + see if they have a conversion format and are converted if they do. + """ + if not isinstance(value, ConvertingDict) and isinstance(value, dict): + value = ConvertingDict(value) + value.configurator = self + elif not isinstance(value, ConvertingList) and isinstance(value, list): + value = ConvertingList(value) + value.configurator = self + elif not isinstance(value, ConvertingTuple) and\ + isinstance(value, tuple): + value = ConvertingTuple(value) + value.configurator = self + elif isinstance(value, string_types): + m = self.CONVERT_PATTERN.match(value) + if m: + d = m.groupdict() + prefix = d['prefix'] + converter = self.value_converters.get(prefix, None) + if converter: + suffix = d['suffix'] + converter = getattr(self, converter) + value = converter(suffix) + return value + + def configure_custom(self, config): + """Configure an object with a user-supplied factory.""" + c = config.pop('()') + if not callable(c): + c = self.resolve(c) + props = config.pop('.', None) + # Check for valid identifiers + kwargs = dict([(k, config[k]) for k in config if valid_ident(k)]) + result = c(**kwargs) + if props: + for name, value in props.items(): + setattr(result, name, value) + return result + + def as_tuple(self, value): + """Utility function which converts lists to tuples.""" + if isinstance(value, list): + value = tuple(value) + return value diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/database.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/database.py new file mode 100644 index 00000000..a19905e2 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/database.py @@ -0,0 +1,1336 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2012-2017 The Python Software Foundation. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +"""PEP 376 implementation.""" + +from __future__ import unicode_literals + +import base64 +import codecs +import contextlib +import hashlib +import logging +import os +import posixpath +import sys +import zipimport + +from . import DistlibException, resources +from .compat import StringIO +from .version import get_scheme, UnsupportedVersionError +from .metadata import Metadata, METADATA_FILENAME, WHEEL_METADATA_FILENAME +from .util import (parse_requirement, cached_property, parse_name_and_version, + read_exports, write_exports, CSVReader, CSVWriter) + + +__all__ = ['Distribution', 'BaseInstalledDistribution', + 'InstalledDistribution', 'EggInfoDistribution', + 'DistributionPath'] + + +logger = logging.getLogger(__name__) + +EXPORTS_FILENAME = 'pydist-exports.json' +COMMANDS_FILENAME = 'pydist-commands.json' + +DIST_FILES = ('INSTALLER', METADATA_FILENAME, 'RECORD', 'REQUESTED', + 'RESOURCES', EXPORTS_FILENAME, 'SHARED') + +DISTINFO_EXT = '.dist-info' + + +class _Cache(object): + """ + A simple cache mapping names and .dist-info paths to distributions + """ + def __init__(self): + """ + Initialise an instance. There is normally one for each DistributionPath. + """ + self.name = {} + self.path = {} + self.generated = False + + def clear(self): + """ + Clear the cache, setting it to its initial state. + """ + self.name.clear() + self.path.clear() + self.generated = False + + def add(self, dist): + """ + Add a distribution to the cache. + :param dist: The distribution to add. + """ + if dist.path not in self.path: + self.path[dist.path] = dist + self.name.setdefault(dist.key, []).append(dist) + + +class DistributionPath(object): + """ + Represents a set of distributions installed on a path (typically sys.path). + """ + def __init__(self, path=None, include_egg=False): + """ + Create an instance from a path, optionally including legacy (distutils/ + setuptools/distribute) distributions. + :param path: The path to use, as a list of directories. If not specified, + sys.path is used. + :param include_egg: If True, this instance will look for and return legacy + distributions as well as those based on PEP 376. + """ + if path is None: + path = sys.path + self.path = path + self._include_dist = True + self._include_egg = include_egg + + self._cache = _Cache() + self._cache_egg = _Cache() + self._cache_enabled = True + self._scheme = get_scheme('default') + + def _get_cache_enabled(self): + return self._cache_enabled + + def _set_cache_enabled(self, value): + self._cache_enabled = value + + cache_enabled = property(_get_cache_enabled, _set_cache_enabled) + + def clear_cache(self): + """ + Clears the internal cache. + """ + self._cache.clear() + self._cache_egg.clear() + + + def _yield_distributions(self): + """ + Yield .dist-info and/or .egg(-info) distributions. + """ + # We need to check if we've seen some resources already, because on + # some Linux systems (e.g. some Debian/Ubuntu variants) there are + # symlinks which alias other files in the environment. + seen = set() + for path in self.path: + finder = resources.finder_for_path(path) + if finder is None: + continue + r = finder.find('') + if not r or not r.is_container: + continue + rset = sorted(r.resources) + for entry in rset: + r = finder.find(entry) + if not r or r.path in seen: + continue + if self._include_dist and entry.endswith(DISTINFO_EXT): + possible_filenames = [METADATA_FILENAME, WHEEL_METADATA_FILENAME] + for metadata_filename in possible_filenames: + metadata_path = posixpath.join(entry, metadata_filename) + pydist = finder.find(metadata_path) + if pydist: + break + else: + continue + + with contextlib.closing(pydist.as_stream()) as stream: + metadata = Metadata(fileobj=stream, scheme='legacy') + logger.debug('Found %s', r.path) + seen.add(r.path) + yield new_dist_class(r.path, metadata=metadata, + env=self) + elif self._include_egg and entry.endswith(('.egg-info', + '.egg')): + logger.debug('Found %s', r.path) + seen.add(r.path) + yield old_dist_class(r.path, self) + + def _generate_cache(self): + """ + Scan the path for distributions and populate the cache with + those that are found. + """ + gen_dist = not self._cache.generated + gen_egg = self._include_egg and not self._cache_egg.generated + if gen_dist or gen_egg: + for dist in self._yield_distributions(): + if isinstance(dist, InstalledDistribution): + self._cache.add(dist) + else: + self._cache_egg.add(dist) + + if gen_dist: + self._cache.generated = True + if gen_egg: + self._cache_egg.generated = True + + @classmethod + def distinfo_dirname(cls, name, version): + """ + The *name* and *version* parameters are converted into their + filename-escaped form, i.e. any ``'-'`` characters are replaced + with ``'_'`` other than the one in ``'dist-info'`` and the one + separating the name from the version number. + + :parameter name: is converted to a standard distribution name by replacing + any runs of non- alphanumeric characters with a single + ``'-'``. + :type name: string + :parameter version: is converted to a standard version string. Spaces + become dots, and all other non-alphanumeric characters + (except dots) become dashes, with runs of multiple + dashes condensed to a single dash. + :type version: string + :returns: directory name + :rtype: string""" + name = name.replace('-', '_') + return '-'.join([name, version]) + DISTINFO_EXT + + def get_distributions(self): + """ + Provides an iterator that looks for distributions and returns + :class:`InstalledDistribution` or + :class:`EggInfoDistribution` instances for each one of them. + + :rtype: iterator of :class:`InstalledDistribution` and + :class:`EggInfoDistribution` instances + """ + if not self._cache_enabled: + for dist in self._yield_distributions(): + yield dist + else: + self._generate_cache() + + for dist in self._cache.path.values(): + yield dist + + if self._include_egg: + for dist in self._cache_egg.path.values(): + yield dist + + def get_distribution(self, name): + """ + Looks for a named distribution on the path. + + This function only returns the first result found, as no more than one + value is expected. If nothing is found, ``None`` is returned. + + :rtype: :class:`InstalledDistribution`, :class:`EggInfoDistribution` + or ``None`` + """ + result = None + name = name.lower() + if not self._cache_enabled: + for dist in self._yield_distributions(): + if dist.key == name: + result = dist + break + else: + self._generate_cache() + + if name in self._cache.name: + result = self._cache.name[name][0] + elif self._include_egg and name in self._cache_egg.name: + result = self._cache_egg.name[name][0] + return result + + def provides_distribution(self, name, version=None): + """ + Iterates over all distributions to find which distributions provide *name*. + If a *version* is provided, it will be used to filter the results. + + This function only returns the first result found, since no more than + one values are expected. If the directory is not found, returns ``None``. + + :parameter version: a version specifier that indicates the version + required, conforming to the format in ``PEP-345`` + + :type name: string + :type version: string + """ + matcher = None + if version is not None: + try: + matcher = self._scheme.matcher('%s (%s)' % (name, version)) + except ValueError: + raise DistlibException('invalid name or version: %r, %r' % + (name, version)) + + for dist in self.get_distributions(): + # We hit a problem on Travis where enum34 was installed and doesn't + # have a provides attribute ... + if not hasattr(dist, 'provides'): + logger.debug('No "provides": %s', dist) + else: + provided = dist.provides + + for p in provided: + p_name, p_ver = parse_name_and_version(p) + if matcher is None: + if p_name == name: + yield dist + break + else: + if p_name == name and matcher.match(p_ver): + yield dist + break + + def get_file_path(self, name, relative_path): + """ + Return the path to a resource file. + """ + dist = self.get_distribution(name) + if dist is None: + raise LookupError('no distribution named %r found' % name) + return dist.get_resource_path(relative_path) + + def get_exported_entries(self, category, name=None): + """ + Return all of the exported entries in a particular category. + + :param category: The category to search for entries. + :param name: If specified, only entries with that name are returned. + """ + for dist in self.get_distributions(): + r = dist.exports + if category in r: + d = r[category] + if name is not None: + if name in d: + yield d[name] + else: + for v in d.values(): + yield v + + +class Distribution(object): + """ + A base class for distributions, whether installed or from indexes. + Either way, it must have some metadata, so that's all that's needed + for construction. + """ + + build_time_dependency = False + """ + Set to True if it's known to be only a build-time dependency (i.e. + not needed after installation). + """ + + requested = False + """A boolean that indicates whether the ``REQUESTED`` metadata file is + present (in other words, whether the package was installed by user + request or it was installed as a dependency).""" + + def __init__(self, metadata): + """ + Initialise an instance. + :param metadata: The instance of :class:`Metadata` describing this + distribution. + """ + self.metadata = metadata + self.name = metadata.name + self.key = self.name.lower() # for case-insensitive comparisons + self.version = metadata.version + self.locator = None + self.digest = None + self.extras = None # additional features requested + self.context = None # environment marker overrides + self.download_urls = set() + self.digests = {} + + @property + def source_url(self): + """ + The source archive download URL for this distribution. + """ + return self.metadata.source_url + + download_url = source_url # Backward compatibility + + @property + def name_and_version(self): + """ + A utility property which displays the name and version in parentheses. + """ + return '%s (%s)' % (self.name, self.version) + + @property + def provides(self): + """ + A set of distribution names and versions provided by this distribution. + :return: A set of "name (version)" strings. + """ + plist = self.metadata.provides + s = '%s (%s)' % (self.name, self.version) + if s not in plist: + plist.append(s) + return plist + + def _get_requirements(self, req_attr): + md = self.metadata + logger.debug('Getting requirements from metadata %r', md.todict()) + reqts = getattr(md, req_attr) + return set(md.get_requirements(reqts, extras=self.extras, + env=self.context)) + + @property + def run_requires(self): + return self._get_requirements('run_requires') + + @property + def meta_requires(self): + return self._get_requirements('meta_requires') + + @property + def build_requires(self): + return self._get_requirements('build_requires') + + @property + def test_requires(self): + return self._get_requirements('test_requires') + + @property + def dev_requires(self): + return self._get_requirements('dev_requires') + + def matches_requirement(self, req): + """ + Say if this instance matches (fulfills) a requirement. + :param req: The requirement to match. + :rtype req: str + :return: True if it matches, else False. + """ + # Requirement may contain extras - parse to lose those + # from what's passed to the matcher + r = parse_requirement(req) + scheme = get_scheme(self.metadata.scheme) + try: + matcher = scheme.matcher(r.requirement) + except UnsupportedVersionError: + # XXX compat-mode if cannot read the version + logger.warning('could not read version %r - using name only', + req) + name = req.split()[0] + matcher = scheme.matcher(name) + + name = matcher.key # case-insensitive + + result = False + for p in self.provides: + p_name, p_ver = parse_name_and_version(p) + if p_name != name: + continue + try: + result = matcher.match(p_ver) + break + except UnsupportedVersionError: + pass + return result + + def __repr__(self): + """ + Return a textual representation of this instance, + """ + if self.source_url: + suffix = ' [%s]' % self.source_url + else: + suffix = '' + return '<Distribution %s (%s)%s>' % (self.name, self.version, suffix) + + def __eq__(self, other): + """ + See if this distribution is the same as another. + :param other: The distribution to compare with. To be equal to one + another. distributions must have the same type, name, + version and source_url. + :return: True if it is the same, else False. + """ + if type(other) is not type(self): + result = False + else: + result = (self.name == other.name and + self.version == other.version and + self.source_url == other.source_url) + return result + + def __hash__(self): + """ + Compute hash in a way which matches the equality test. + """ + return hash(self.name) + hash(self.version) + hash(self.source_url) + + +class BaseInstalledDistribution(Distribution): + """ + This is the base class for installed distributions (whether PEP 376 or + legacy). + """ + + hasher = None + + def __init__(self, metadata, path, env=None): + """ + Initialise an instance. + :param metadata: An instance of :class:`Metadata` which describes the + distribution. This will normally have been initialised + from a metadata file in the ``path``. + :param path: The path of the ``.dist-info`` or ``.egg-info`` + directory for the distribution. + :param env: This is normally the :class:`DistributionPath` + instance where this distribution was found. + """ + super(BaseInstalledDistribution, self).__init__(metadata) + self.path = path + self.dist_path = env + + def get_hash(self, data, hasher=None): + """ + Get the hash of some data, using a particular hash algorithm, if + specified. + + :param data: The data to be hashed. + :type data: bytes + :param hasher: The name of a hash implementation, supported by hashlib, + or ``None``. Examples of valid values are ``'sha1'``, + ``'sha224'``, ``'sha384'``, '``sha256'``, ``'md5'`` and + ``'sha512'``. If no hasher is specified, the ``hasher`` + attribute of the :class:`InstalledDistribution` instance + is used. If the hasher is determined to be ``None``, MD5 + is used as the hashing algorithm. + :returns: The hash of the data. If a hasher was explicitly specified, + the returned hash will be prefixed with the specified hasher + followed by '='. + :rtype: str + """ + if hasher is None: + hasher = self.hasher + if hasher is None: + hasher = hashlib.md5 + prefix = '' + else: + hasher = getattr(hashlib, hasher) + prefix = '%s=' % self.hasher + digest = hasher(data).digest() + digest = base64.urlsafe_b64encode(digest).rstrip(b'=').decode('ascii') + return '%s%s' % (prefix, digest) + + +class InstalledDistribution(BaseInstalledDistribution): + """ + Created with the *path* of the ``.dist-info`` directory provided to the + constructor. It reads the metadata contained in ``pydist.json`` when it is + instantiated., or uses a passed in Metadata instance (useful for when + dry-run mode is being used). + """ + + hasher = 'sha256' + + def __init__(self, path, metadata=None, env=None): + self.modules = [] + self.finder = finder = resources.finder_for_path(path) + if finder is None: + raise ValueError('finder unavailable for %s' % path) + if env and env._cache_enabled and path in env._cache.path: + metadata = env._cache.path[path].metadata + elif metadata is None: + r = finder.find(METADATA_FILENAME) + # Temporary - for Wheel 0.23 support + if r is None: + r = finder.find(WHEEL_METADATA_FILENAME) + # Temporary - for legacy support + if r is None: + r = finder.find('METADATA') + if r is None: + raise ValueError('no %s found in %s' % (METADATA_FILENAME, + path)) + with contextlib.closing(r.as_stream()) as stream: + metadata = Metadata(fileobj=stream, scheme='legacy') + + super(InstalledDistribution, self).__init__(metadata, path, env) + + if env and env._cache_enabled: + env._cache.add(self) + + r = finder.find('REQUESTED') + self.requested = r is not None + p = os.path.join(path, 'top_level.txt') + if os.path.exists(p): + with open(p, 'rb') as f: + data = f.read() + self.modules = data.splitlines() + + def __repr__(self): + return '<InstalledDistribution %r %s at %r>' % ( + self.name, self.version, self.path) + + def __str__(self): + return "%s %s" % (self.name, self.version) + + def _get_records(self): + """ + Get the list of installed files for the distribution + :return: A list of tuples of path, hash and size. Note that hash and + size might be ``None`` for some entries. The path is exactly + as stored in the file (which is as in PEP 376). + """ + results = [] + r = self.get_distinfo_resource('RECORD') + with contextlib.closing(r.as_stream()) as stream: + with CSVReader(stream=stream) as record_reader: + # Base location is parent dir of .dist-info dir + #base_location = os.path.dirname(self.path) + #base_location = os.path.abspath(base_location) + for row in record_reader: + missing = [None for i in range(len(row), 3)] + path, checksum, size = row + missing + #if not os.path.isabs(path): + # path = path.replace('/', os.sep) + # path = os.path.join(base_location, path) + results.append((path, checksum, size)) + return results + + @cached_property + def exports(self): + """ + Return the information exported by this distribution. + :return: A dictionary of exports, mapping an export category to a dict + of :class:`ExportEntry` instances describing the individual + export entries, and keyed by name. + """ + result = {} + r = self.get_distinfo_resource(EXPORTS_FILENAME) + if r: + result = self.read_exports() + return result + + def read_exports(self): + """ + Read exports data from a file in .ini format. + + :return: A dictionary of exports, mapping an export category to a list + of :class:`ExportEntry` instances describing the individual + export entries. + """ + result = {} + r = self.get_distinfo_resource(EXPORTS_FILENAME) + if r: + with contextlib.closing(r.as_stream()) as stream: + result = read_exports(stream) + return result + + def write_exports(self, exports): + """ + Write a dictionary of exports to a file in .ini format. + :param exports: A dictionary of exports, mapping an export category to + a list of :class:`ExportEntry` instances describing the + individual export entries. + """ + rf = self.get_distinfo_file(EXPORTS_FILENAME) + with open(rf, 'w') as f: + write_exports(exports, f) + + def get_resource_path(self, relative_path): + """ + NOTE: This API may change in the future. + + Return the absolute path to a resource file with the given relative + path. + + :param relative_path: The path, relative to .dist-info, of the resource + of interest. + :return: The absolute path where the resource is to be found. + """ + r = self.get_distinfo_resource('RESOURCES') + with contextlib.closing(r.as_stream()) as stream: + with CSVReader(stream=stream) as resources_reader: + for relative, destination in resources_reader: + if relative == relative_path: + return destination + raise KeyError('no resource file with relative path %r ' + 'is installed' % relative_path) + + def list_installed_files(self): + """ + Iterates over the ``RECORD`` entries and returns a tuple + ``(path, hash, size)`` for each line. + + :returns: iterator of (path, hash, size) + """ + for result in self._get_records(): + yield result + + def write_installed_files(self, paths, prefix, dry_run=False): + """ + Writes the ``RECORD`` file, using the ``paths`` iterable passed in. Any + existing ``RECORD`` file is silently overwritten. + + prefix is used to determine when to write absolute paths. + """ + prefix = os.path.join(prefix, '') + base = os.path.dirname(self.path) + base_under_prefix = base.startswith(prefix) + base = os.path.join(base, '') + record_path = self.get_distinfo_file('RECORD') + logger.info('creating %s', record_path) + if dry_run: + return None + with CSVWriter(record_path) as writer: + for path in paths: + if os.path.isdir(path) or path.endswith(('.pyc', '.pyo')): + # do not put size and hash, as in PEP-376 + hash_value = size = '' + else: + size = '%d' % os.path.getsize(path) + with open(path, 'rb') as fp: + hash_value = self.get_hash(fp.read()) + if path.startswith(base) or (base_under_prefix and + path.startswith(prefix)): + path = os.path.relpath(path, base) + writer.writerow((path, hash_value, size)) + + # add the RECORD file itself + if record_path.startswith(base): + record_path = os.path.relpath(record_path, base) + writer.writerow((record_path, '', '')) + return record_path + + def check_installed_files(self): + """ + Checks that the hashes and sizes of the files in ``RECORD`` are + matched by the files themselves. Returns a (possibly empty) list of + mismatches. Each entry in the mismatch list will be a tuple consisting + of the path, 'exists', 'size' or 'hash' according to what didn't match + (existence is checked first, then size, then hash), the expected + value and the actual value. + """ + mismatches = [] + base = os.path.dirname(self.path) + record_path = self.get_distinfo_file('RECORD') + for path, hash_value, size in self.list_installed_files(): + if not os.path.isabs(path): + path = os.path.join(base, path) + if path == record_path: + continue + if not os.path.exists(path): + mismatches.append((path, 'exists', True, False)) + elif os.path.isfile(path): + actual_size = str(os.path.getsize(path)) + if size and actual_size != size: + mismatches.append((path, 'size', size, actual_size)) + elif hash_value: + if '=' in hash_value: + hasher = hash_value.split('=', 1)[0] + else: + hasher = None + + with open(path, 'rb') as f: + actual_hash = self.get_hash(f.read(), hasher) + if actual_hash != hash_value: + mismatches.append((path, 'hash', hash_value, actual_hash)) + return mismatches + + @cached_property + def shared_locations(self): + """ + A dictionary of shared locations whose keys are in the set 'prefix', + 'purelib', 'platlib', 'scripts', 'headers', 'data' and 'namespace'. + The corresponding value is the absolute path of that category for + this distribution, and takes into account any paths selected by the + user at installation time (e.g. via command-line arguments). In the + case of the 'namespace' key, this would be a list of absolute paths + for the roots of namespace packages in this distribution. + + The first time this property is accessed, the relevant information is + read from the SHARED file in the .dist-info directory. + """ + result = {} + shared_path = os.path.join(self.path, 'SHARED') + if os.path.isfile(shared_path): + with codecs.open(shared_path, 'r', encoding='utf-8') as f: + lines = f.read().splitlines() + for line in lines: + key, value = line.split('=', 1) + if key == 'namespace': + result.setdefault(key, []).append(value) + else: + result[key] = value + return result + + def write_shared_locations(self, paths, dry_run=False): + """ + Write shared location information to the SHARED file in .dist-info. + :param paths: A dictionary as described in the documentation for + :meth:`shared_locations`. + :param dry_run: If True, the action is logged but no file is actually + written. + :return: The path of the file written to. + """ + shared_path = os.path.join(self.path, 'SHARED') + logger.info('creating %s', shared_path) + if dry_run: + return None + lines = [] + for key in ('prefix', 'lib', 'headers', 'scripts', 'data'): + path = paths[key] + if os.path.isdir(paths[key]): + lines.append('%s=%s' % (key, path)) + for ns in paths.get('namespace', ()): + lines.append('namespace=%s' % ns) + + with codecs.open(shared_path, 'w', encoding='utf-8') as f: + f.write('\n'.join(lines)) + return shared_path + + def get_distinfo_resource(self, path): + if path not in DIST_FILES: + raise DistlibException('invalid path for a dist-info file: ' + '%r at %r' % (path, self.path)) + finder = resources.finder_for_path(self.path) + if finder is None: + raise DistlibException('Unable to get a finder for %s' % self.path) + return finder.find(path) + + def get_distinfo_file(self, path): + """ + Returns a path located under the ``.dist-info`` directory. Returns a + string representing the path. + + :parameter path: a ``'/'``-separated path relative to the + ``.dist-info`` directory or an absolute path; + If *path* is an absolute path and doesn't start + with the ``.dist-info`` directory path, + a :class:`DistlibException` is raised + :type path: str + :rtype: str + """ + # Check if it is an absolute path # XXX use relpath, add tests + if path.find(os.sep) >= 0: + # it's an absolute path? + distinfo_dirname, path = path.split(os.sep)[-2:] + if distinfo_dirname != self.path.split(os.sep)[-1]: + raise DistlibException( + 'dist-info file %r does not belong to the %r %s ' + 'distribution' % (path, self.name, self.version)) + + # The file must be relative + if path not in DIST_FILES: + raise DistlibException('invalid path for a dist-info file: ' + '%r at %r' % (path, self.path)) + + return os.path.join(self.path, path) + + def list_distinfo_files(self): + """ + Iterates over the ``RECORD`` entries and returns paths for each line if + the path is pointing to a file located in the ``.dist-info`` directory + or one of its subdirectories. + + :returns: iterator of paths + """ + base = os.path.dirname(self.path) + for path, checksum, size in self._get_records(): + # XXX add separator or use real relpath algo + if not os.path.isabs(path): + path = os.path.join(base, path) + if path.startswith(self.path): + yield path + + def __eq__(self, other): + return (isinstance(other, InstalledDistribution) and + self.path == other.path) + + # See http://docs.python.org/reference/datamodel#object.__hash__ + __hash__ = object.__hash__ + + +class EggInfoDistribution(BaseInstalledDistribution): + """Created with the *path* of the ``.egg-info`` directory or file provided + to the constructor. It reads the metadata contained in the file itself, or + if the given path happens to be a directory, the metadata is read from the + file ``PKG-INFO`` under that directory.""" + + requested = True # as we have no way of knowing, assume it was + shared_locations = {} + + def __init__(self, path, env=None): + def set_name_and_version(s, n, v): + s.name = n + s.key = n.lower() # for case-insensitive comparisons + s.version = v + + self.path = path + self.dist_path = env + if env and env._cache_enabled and path in env._cache_egg.path: + metadata = env._cache_egg.path[path].metadata + set_name_and_version(self, metadata.name, metadata.version) + else: + metadata = self._get_metadata(path) + + # Need to be set before caching + set_name_and_version(self, metadata.name, metadata.version) + + if env and env._cache_enabled: + env._cache_egg.add(self) + super(EggInfoDistribution, self).__init__(metadata, path, env) + + def _get_metadata(self, path): + requires = None + + def parse_requires_data(data): + """Create a list of dependencies from a requires.txt file. + + *data*: the contents of a setuptools-produced requires.txt file. + """ + reqs = [] + lines = data.splitlines() + for line in lines: + line = line.strip() + if line.startswith('['): + logger.warning('Unexpected line: quitting requirement scan: %r', + line) + break + r = parse_requirement(line) + if not r: + logger.warning('Not recognised as a requirement: %r', line) + continue + if r.extras: + logger.warning('extra requirements in requires.txt are ' + 'not supported') + if not r.constraints: + reqs.append(r.name) + else: + cons = ', '.join('%s%s' % c for c in r.constraints) + reqs.append('%s (%s)' % (r.name, cons)) + return reqs + + def parse_requires_path(req_path): + """Create a list of dependencies from a requires.txt file. + + *req_path*: the path to a setuptools-produced requires.txt file. + """ + + reqs = [] + try: + with codecs.open(req_path, 'r', 'utf-8') as fp: + reqs = parse_requires_data(fp.read()) + except IOError: + pass + return reqs + + tl_path = tl_data = None + if path.endswith('.egg'): + if os.path.isdir(path): + p = os.path.join(path, 'EGG-INFO') + meta_path = os.path.join(p, 'PKG-INFO') + metadata = Metadata(path=meta_path, scheme='legacy') + req_path = os.path.join(p, 'requires.txt') + tl_path = os.path.join(p, 'top_level.txt') + requires = parse_requires_path(req_path) + else: + # FIXME handle the case where zipfile is not available + zipf = zipimport.zipimporter(path) + fileobj = StringIO( + zipf.get_data('EGG-INFO/PKG-INFO').decode('utf8')) + metadata = Metadata(fileobj=fileobj, scheme='legacy') + try: + data = zipf.get_data('EGG-INFO/requires.txt') + tl_data = zipf.get_data('EGG-INFO/top_level.txt').decode('utf-8') + requires = parse_requires_data(data.decode('utf-8')) + except IOError: + requires = None + elif path.endswith('.egg-info'): + if os.path.isdir(path): + req_path = os.path.join(path, 'requires.txt') + requires = parse_requires_path(req_path) + path = os.path.join(path, 'PKG-INFO') + tl_path = os.path.join(path, 'top_level.txt') + metadata = Metadata(path=path, scheme='legacy') + else: + raise DistlibException('path must end with .egg-info or .egg, ' + 'got %r' % path) + + if requires: + metadata.add_requirements(requires) + # look for top-level modules in top_level.txt, if present + if tl_data is None: + if tl_path is not None and os.path.exists(tl_path): + with open(tl_path, 'rb') as f: + tl_data = f.read().decode('utf-8') + if not tl_data: + tl_data = [] + else: + tl_data = tl_data.splitlines() + self.modules = tl_data + return metadata + + def __repr__(self): + return '<EggInfoDistribution %r %s at %r>' % ( + self.name, self.version, self.path) + + def __str__(self): + return "%s %s" % (self.name, self.version) + + def check_installed_files(self): + """ + Checks that the hashes and sizes of the files in ``RECORD`` are + matched by the files themselves. Returns a (possibly empty) list of + mismatches. Each entry in the mismatch list will be a tuple consisting + of the path, 'exists', 'size' or 'hash' according to what didn't match + (existence is checked first, then size, then hash), the expected + value and the actual value. + """ + mismatches = [] + record_path = os.path.join(self.path, 'installed-files.txt') + if os.path.exists(record_path): + for path, _, _ in self.list_installed_files(): + if path == record_path: + continue + if not os.path.exists(path): + mismatches.append((path, 'exists', True, False)) + return mismatches + + def list_installed_files(self): + """ + Iterates over the ``installed-files.txt`` entries and returns a tuple + ``(path, hash, size)`` for each line. + + :returns: a list of (path, hash, size) + """ + + def _md5(path): + f = open(path, 'rb') + try: + content = f.read() + finally: + f.close() + return hashlib.md5(content).hexdigest() + + def _size(path): + return os.stat(path).st_size + + record_path = os.path.join(self.path, 'installed-files.txt') + result = [] + if os.path.exists(record_path): + with codecs.open(record_path, 'r', encoding='utf-8') as f: + for line in f: + line = line.strip() + p = os.path.normpath(os.path.join(self.path, line)) + # "./" is present as a marker between installed files + # and installation metadata files + if not os.path.exists(p): + logger.warning('Non-existent file: %s', p) + if p.endswith(('.pyc', '.pyo')): + continue + #otherwise fall through and fail + if not os.path.isdir(p): + result.append((p, _md5(p), _size(p))) + result.append((record_path, None, None)) + return result + + def list_distinfo_files(self, absolute=False): + """ + Iterates over the ``installed-files.txt`` entries and returns paths for + each line if the path is pointing to a file located in the + ``.egg-info`` directory or one of its subdirectories. + + :parameter absolute: If *absolute* is ``True``, each returned path is + transformed into a local absolute path. Otherwise the + raw value from ``installed-files.txt`` is returned. + :type absolute: boolean + :returns: iterator of paths + """ + record_path = os.path.join(self.path, 'installed-files.txt') + if os.path.exists(record_path): + skip = True + with codecs.open(record_path, 'r', encoding='utf-8') as f: + for line in f: + line = line.strip() + if line == './': + skip = False + continue + if not skip: + p = os.path.normpath(os.path.join(self.path, line)) + if p.startswith(self.path): + if absolute: + yield p + else: + yield line + + def __eq__(self, other): + return (isinstance(other, EggInfoDistribution) and + self.path == other.path) + + # See http://docs.python.org/reference/datamodel#object.__hash__ + __hash__ = object.__hash__ + +new_dist_class = InstalledDistribution +old_dist_class = EggInfoDistribution + + +class DependencyGraph(object): + """ + Represents a dependency graph between distributions. + + The dependency relationships are stored in an ``adjacency_list`` that maps + distributions to a list of ``(other, label)`` tuples where ``other`` + is a distribution and the edge is labeled with ``label`` (i.e. the version + specifier, if such was provided). Also, for more efficient traversal, for + every distribution ``x``, a list of predecessors is kept in + ``reverse_list[x]``. An edge from distribution ``a`` to + distribution ``b`` means that ``a`` depends on ``b``. If any missing + dependencies are found, they are stored in ``missing``, which is a + dictionary that maps distributions to a list of requirements that were not + provided by any other distributions. + """ + + def __init__(self): + self.adjacency_list = {} + self.reverse_list = {} + self.missing = {} + + def add_distribution(self, distribution): + """Add the *distribution* to the graph. + + :type distribution: :class:`distutils2.database.InstalledDistribution` + or :class:`distutils2.database.EggInfoDistribution` + """ + self.adjacency_list[distribution] = [] + self.reverse_list[distribution] = [] + #self.missing[distribution] = [] + + def add_edge(self, x, y, label=None): + """Add an edge from distribution *x* to distribution *y* with the given + *label*. + + :type x: :class:`distutils2.database.InstalledDistribution` or + :class:`distutils2.database.EggInfoDistribution` + :type y: :class:`distutils2.database.InstalledDistribution` or + :class:`distutils2.database.EggInfoDistribution` + :type label: ``str`` or ``None`` + """ + self.adjacency_list[x].append((y, label)) + # multiple edges are allowed, so be careful + if x not in self.reverse_list[y]: + self.reverse_list[y].append(x) + + def add_missing(self, distribution, requirement): + """ + Add a missing *requirement* for the given *distribution*. + + :type distribution: :class:`distutils2.database.InstalledDistribution` + or :class:`distutils2.database.EggInfoDistribution` + :type requirement: ``str`` + """ + logger.debug('%s missing %r', distribution, requirement) + self.missing.setdefault(distribution, []).append(requirement) + + def _repr_dist(self, dist): + return '%s %s' % (dist.name, dist.version) + + def repr_node(self, dist, level=1): + """Prints only a subgraph""" + output = [self._repr_dist(dist)] + for other, label in self.adjacency_list[dist]: + dist = self._repr_dist(other) + if label is not None: + dist = '%s [%s]' % (dist, label) + output.append(' ' * level + str(dist)) + suboutput = self.repr_node(other, level + 1) + subs = suboutput.split('\n') + output.extend(subs[1:]) + return '\n'.join(output) + + def to_dot(self, f, skip_disconnected=True): + """Writes a DOT output for the graph to the provided file *f*. + + If *skip_disconnected* is set to ``True``, then all distributions + that are not dependent on any other distribution are skipped. + + :type f: has to support ``file``-like operations + :type skip_disconnected: ``bool`` + """ + disconnected = [] + + f.write("digraph dependencies {\n") + for dist, adjs in self.adjacency_list.items(): + if len(adjs) == 0 and not skip_disconnected: + disconnected.append(dist) + for other, label in adjs: + if not label is None: + f.write('"%s" -> "%s" [label="%s"]\n' % + (dist.name, other.name, label)) + else: + f.write('"%s" -> "%s"\n' % (dist.name, other.name)) + if not skip_disconnected and len(disconnected) > 0: + f.write('subgraph disconnected {\n') + f.write('label = "Disconnected"\n') + f.write('bgcolor = red\n') + + for dist in disconnected: + f.write('"%s"' % dist.name) + f.write('\n') + f.write('}\n') + f.write('}\n') + + def topological_sort(self): + """ + Perform a topological sort of the graph. + :return: A tuple, the first element of which is a topologically sorted + list of distributions, and the second element of which is a + list of distributions that cannot be sorted because they have + circular dependencies and so form a cycle. + """ + result = [] + # Make a shallow copy of the adjacency list + alist = {} + for k, v in self.adjacency_list.items(): + alist[k] = v[:] + while True: + # See what we can remove in this run + to_remove = [] + for k, v in list(alist.items())[:]: + if not v: + to_remove.append(k) + del alist[k] + if not to_remove: + # What's left in alist (if anything) is a cycle. + break + # Remove from the adjacency list of others + for k, v in alist.items(): + alist[k] = [(d, r) for d, r in v if d not in to_remove] + logger.debug('Moving to result: %s', + ['%s (%s)' % (d.name, d.version) for d in to_remove]) + result.extend(to_remove) + return result, list(alist.keys()) + + def __repr__(self): + """Representation of the graph""" + output = [] + for dist, adjs in self.adjacency_list.items(): + output.append(self.repr_node(dist)) + return '\n'.join(output) + + +def make_graph(dists, scheme='default'): + """Makes a dependency graph from the given distributions. + + :parameter dists: a list of distributions + :type dists: list of :class:`distutils2.database.InstalledDistribution` and + :class:`distutils2.database.EggInfoDistribution` instances + :rtype: a :class:`DependencyGraph` instance + """ + scheme = get_scheme(scheme) + graph = DependencyGraph() + provided = {} # maps names to lists of (version, dist) tuples + + # first, build the graph and find out what's provided + for dist in dists: + graph.add_distribution(dist) + + for p in dist.provides: + name, version = parse_name_and_version(p) + logger.debug('Add to provided: %s, %s, %s', name, version, dist) + provided.setdefault(name, []).append((version, dist)) + + # now make the edges + for dist in dists: + requires = (dist.run_requires | dist.meta_requires | + dist.build_requires | dist.dev_requires) + for req in requires: + try: + matcher = scheme.matcher(req) + except UnsupportedVersionError: + # XXX compat-mode if cannot read the version + logger.warning('could not read version %r - using name only', + req) + name = req.split()[0] + matcher = scheme.matcher(name) + + name = matcher.key # case-insensitive + + matched = False + if name in provided: + for version, provider in provided[name]: + try: + match = matcher.match(version) + except UnsupportedVersionError: + match = False + + if match: + graph.add_edge(dist, provider, req) + matched = True + break + if not matched: + graph.add_missing(dist, req) + return graph + + +def get_dependent_dists(dists, dist): + """Recursively generate a list of distributions from *dists* that are + dependent on *dist*. + + :param dists: a list of distributions + :param dist: a distribution, member of *dists* for which we are interested + """ + if dist not in dists: + raise DistlibException('given distribution %r is not a member ' + 'of the list' % dist.name) + graph = make_graph(dists) + + dep = [dist] # dependent distributions + todo = graph.reverse_list[dist] # list of nodes we should inspect + + while todo: + d = todo.pop() + dep.append(d) + for succ in graph.reverse_list[d]: + if succ not in dep: + todo.append(succ) + + dep.pop(0) # remove dist from dep, was there to prevent infinite loops + return dep + + +def get_required_dists(dists, dist): + """Recursively generate a list of distributions from *dists* that are + required by *dist*. + + :param dists: a list of distributions + :param dist: a distribution, member of *dists* for which we are interested + """ + if dist not in dists: + raise DistlibException('given distribution %r is not a member ' + 'of the list' % dist.name) + graph = make_graph(dists) + + req = [] # required distributions + todo = graph.adjacency_list[dist] # list of nodes we should inspect + + while todo: + d = todo.pop()[0] + req.append(d) + for pred in graph.adjacency_list[d]: + if pred not in req: + todo.append(pred) + + return req + + +def make_dist(name, version, **kwargs): + """ + A convenience method for making a dist given just a name and version. + """ + summary = kwargs.pop('summary', 'Placeholder for summary') + md = Metadata(**kwargs) + md.name = name + md.version = version + md.summary = summary or 'Placeholder for summary' + return Distribution(md) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/index.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/index.py new file mode 100644 index 00000000..2406be21 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/index.py @@ -0,0 +1,516 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2013 Vinay Sajip. +# Licensed to the Python Software Foundation under a contributor agreement. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +import hashlib +import logging +import os +import shutil +import subprocess +import tempfile +try: + from threading import Thread +except ImportError: + from dummy_threading import Thread + +from . import DistlibException +from .compat import (HTTPBasicAuthHandler, Request, HTTPPasswordMgr, + urlparse, build_opener, string_types) +from .util import cached_property, zip_dir, ServerProxy + +logger = logging.getLogger(__name__) + +DEFAULT_INDEX = 'https://pypi.python.org/pypi' +DEFAULT_REALM = 'pypi' + +class PackageIndex(object): + """ + This class represents a package index compatible with PyPI, the Python + Package Index. + """ + + boundary = b'----------ThIs_Is_tHe_distlib_index_bouNdaRY_$' + + def __init__(self, url=None): + """ + Initialise an instance. + + :param url: The URL of the index. If not specified, the URL for PyPI is + used. + """ + self.url = url or DEFAULT_INDEX + self.read_configuration() + scheme, netloc, path, params, query, frag = urlparse(self.url) + if params or query or frag or scheme not in ('http', 'https'): + raise DistlibException('invalid repository: %s' % self.url) + self.password_handler = None + self.ssl_verifier = None + self.gpg = None + self.gpg_home = None + with open(os.devnull, 'w') as sink: + # Use gpg by default rather than gpg2, as gpg2 insists on + # prompting for passwords + for s in ('gpg', 'gpg2'): + try: + rc = subprocess.check_call([s, '--version'], stdout=sink, + stderr=sink) + if rc == 0: + self.gpg = s + break + except OSError: + pass + + def _get_pypirc_command(self): + """ + Get the distutils command for interacting with PyPI configurations. + :return: the command. + """ + from distutils.core import Distribution + from distutils.config import PyPIRCCommand + d = Distribution() + return PyPIRCCommand(d) + + def read_configuration(self): + """ + Read the PyPI access configuration as supported by distutils, getting + PyPI to do the actual work. This populates ``username``, ``password``, + ``realm`` and ``url`` attributes from the configuration. + """ + # get distutils to do the work + c = self._get_pypirc_command() + c.repository = self.url + cfg = c._read_pypirc() + self.username = cfg.get('username') + self.password = cfg.get('password') + self.realm = cfg.get('realm', 'pypi') + self.url = cfg.get('repository', self.url) + + def save_configuration(self): + """ + Save the PyPI access configuration. You must have set ``username`` and + ``password`` attributes before calling this method. + + Again, distutils is used to do the actual work. + """ + self.check_credentials() + # get distutils to do the work + c = self._get_pypirc_command() + c._store_pypirc(self.username, self.password) + + def check_credentials(self): + """ + Check that ``username`` and ``password`` have been set, and raise an + exception if not. + """ + if self.username is None or self.password is None: + raise DistlibException('username and password must be set') + pm = HTTPPasswordMgr() + _, netloc, _, _, _, _ = urlparse(self.url) + pm.add_password(self.realm, netloc, self.username, self.password) + self.password_handler = HTTPBasicAuthHandler(pm) + + def register(self, metadata): + """ + Register a distribution on PyPI, using the provided metadata. + + :param metadata: A :class:`Metadata` instance defining at least a name + and version number for the distribution to be + registered. + :return: The HTTP response received from PyPI upon submission of the + request. + """ + self.check_credentials() + metadata.validate() + d = metadata.todict() + d[':action'] = 'verify' + request = self.encode_request(d.items(), []) + response = self.send_request(request) + d[':action'] = 'submit' + request = self.encode_request(d.items(), []) + return self.send_request(request) + + def _reader(self, name, stream, outbuf): + """ + Thread runner for reading lines of from a subprocess into a buffer. + + :param name: The logical name of the stream (used for logging only). + :param stream: The stream to read from. This will typically a pipe + connected to the output stream of a subprocess. + :param outbuf: The list to append the read lines to. + """ + while True: + s = stream.readline() + if not s: + break + s = s.decode('utf-8').rstrip() + outbuf.append(s) + logger.debug('%s: %s' % (name, s)) + stream.close() + + def get_sign_command(self, filename, signer, sign_password, + keystore=None): + """ + Return a suitable command for signing a file. + + :param filename: The pathname to the file to be signed. + :param signer: The identifier of the signer of the file. + :param sign_password: The passphrase for the signer's + private key used for signing. + :param keystore: The path to a directory which contains the keys + used in verification. If not specified, the + instance's ``gpg_home`` attribute is used instead. + :return: The signing command as a list suitable to be + passed to :class:`subprocess.Popen`. + """ + cmd = [self.gpg, '--status-fd', '2', '--no-tty'] + if keystore is None: + keystore = self.gpg_home + if keystore: + cmd.extend(['--homedir', keystore]) + if sign_password is not None: + cmd.extend(['--batch', '--passphrase-fd', '0']) + td = tempfile.mkdtemp() + sf = os.path.join(td, os.path.basename(filename) + '.asc') + cmd.extend(['--detach-sign', '--armor', '--local-user', + signer, '--output', sf, filename]) + logger.debug('invoking: %s', ' '.join(cmd)) + return cmd, sf + + def run_command(self, cmd, input_data=None): + """ + Run a command in a child process , passing it any input data specified. + + :param cmd: The command to run. + :param input_data: If specified, this must be a byte string containing + data to be sent to the child process. + :return: A tuple consisting of the subprocess' exit code, a list of + lines read from the subprocess' ``stdout``, and a list of + lines read from the subprocess' ``stderr``. + """ + kwargs = { + 'stdout': subprocess.PIPE, + 'stderr': subprocess.PIPE, + } + if input_data is not None: + kwargs['stdin'] = subprocess.PIPE + stdout = [] + stderr = [] + p = subprocess.Popen(cmd, **kwargs) + # We don't use communicate() here because we may need to + # get clever with interacting with the command + t1 = Thread(target=self._reader, args=('stdout', p.stdout, stdout)) + t1.start() + t2 = Thread(target=self._reader, args=('stderr', p.stderr, stderr)) + t2.start() + if input_data is not None: + p.stdin.write(input_data) + p.stdin.close() + + p.wait() + t1.join() + t2.join() + return p.returncode, stdout, stderr + + def sign_file(self, filename, signer, sign_password, keystore=None): + """ + Sign a file. + + :param filename: The pathname to the file to be signed. + :param signer: The identifier of the signer of the file. + :param sign_password: The passphrase for the signer's + private key used for signing. + :param keystore: The path to a directory which contains the keys + used in signing. If not specified, the instance's + ``gpg_home`` attribute is used instead. + :return: The absolute pathname of the file where the signature is + stored. + """ + cmd, sig_file = self.get_sign_command(filename, signer, sign_password, + keystore) + rc, stdout, stderr = self.run_command(cmd, + sign_password.encode('utf-8')) + if rc != 0: + raise DistlibException('sign command failed with error ' + 'code %s' % rc) + return sig_file + + def upload_file(self, metadata, filename, signer=None, sign_password=None, + filetype='sdist', pyversion='source', keystore=None): + """ + Upload a release file to the index. + + :param metadata: A :class:`Metadata` instance defining at least a name + and version number for the file to be uploaded. + :param filename: The pathname of the file to be uploaded. + :param signer: The identifier of the signer of the file. + :param sign_password: The passphrase for the signer's + private key used for signing. + :param filetype: The type of the file being uploaded. This is the + distutils command which produced that file, e.g. + ``sdist`` or ``bdist_wheel``. + :param pyversion: The version of Python which the release relates + to. For code compatible with any Python, this would + be ``source``, otherwise it would be e.g. ``3.2``. + :param keystore: The path to a directory which contains the keys + used in signing. If not specified, the instance's + ``gpg_home`` attribute is used instead. + :return: The HTTP response received from PyPI upon submission of the + request. + """ + self.check_credentials() + if not os.path.exists(filename): + raise DistlibException('not found: %s' % filename) + metadata.validate() + d = metadata.todict() + sig_file = None + if signer: + if not self.gpg: + logger.warning('no signing program available - not signed') + else: + sig_file = self.sign_file(filename, signer, sign_password, + keystore) + with open(filename, 'rb') as f: + file_data = f.read() + md5_digest = hashlib.md5(file_data).hexdigest() + sha256_digest = hashlib.sha256(file_data).hexdigest() + d.update({ + ':action': 'file_upload', + 'protocol_version': '1', + 'filetype': filetype, + 'pyversion': pyversion, + 'md5_digest': md5_digest, + 'sha256_digest': sha256_digest, + }) + files = [('content', os.path.basename(filename), file_data)] + if sig_file: + with open(sig_file, 'rb') as f: + sig_data = f.read() + files.append(('gpg_signature', os.path.basename(sig_file), + sig_data)) + shutil.rmtree(os.path.dirname(sig_file)) + request = self.encode_request(d.items(), files) + return self.send_request(request) + + def upload_documentation(self, metadata, doc_dir): + """ + Upload documentation to the index. + + :param metadata: A :class:`Metadata` instance defining at least a name + and version number for the documentation to be + uploaded. + :param doc_dir: The pathname of the directory which contains the + documentation. This should be the directory that + contains the ``index.html`` for the documentation. + :return: The HTTP response received from PyPI upon submission of the + request. + """ + self.check_credentials() + if not os.path.isdir(doc_dir): + raise DistlibException('not a directory: %r' % doc_dir) + fn = os.path.join(doc_dir, 'index.html') + if not os.path.exists(fn): + raise DistlibException('not found: %r' % fn) + metadata.validate() + name, version = metadata.name, metadata.version + zip_data = zip_dir(doc_dir).getvalue() + fields = [(':action', 'doc_upload'), + ('name', name), ('version', version)] + files = [('content', name, zip_data)] + request = self.encode_request(fields, files) + return self.send_request(request) + + def get_verify_command(self, signature_filename, data_filename, + keystore=None): + """ + Return a suitable command for verifying a file. + + :param signature_filename: The pathname to the file containing the + signature. + :param data_filename: The pathname to the file containing the + signed data. + :param keystore: The path to a directory which contains the keys + used in verification. If not specified, the + instance's ``gpg_home`` attribute is used instead. + :return: The verifying command as a list suitable to be + passed to :class:`subprocess.Popen`. + """ + cmd = [self.gpg, '--status-fd', '2', '--no-tty'] + if keystore is None: + keystore = self.gpg_home + if keystore: + cmd.extend(['--homedir', keystore]) + cmd.extend(['--verify', signature_filename, data_filename]) + logger.debug('invoking: %s', ' '.join(cmd)) + return cmd + + def verify_signature(self, signature_filename, data_filename, + keystore=None): + """ + Verify a signature for a file. + + :param signature_filename: The pathname to the file containing the + signature. + :param data_filename: The pathname to the file containing the + signed data. + :param keystore: The path to a directory which contains the keys + used in verification. If not specified, the + instance's ``gpg_home`` attribute is used instead. + :return: True if the signature was verified, else False. + """ + if not self.gpg: + raise DistlibException('verification unavailable because gpg ' + 'unavailable') + cmd = self.get_verify_command(signature_filename, data_filename, + keystore) + rc, stdout, stderr = self.run_command(cmd) + if rc not in (0, 1): + raise DistlibException('verify command failed with error ' + 'code %s' % rc) + return rc == 0 + + def download_file(self, url, destfile, digest=None, reporthook=None): + """ + This is a convenience method for downloading a file from an URL. + Normally, this will be a file from the index, though currently + no check is made for this (i.e. a file can be downloaded from + anywhere). + + The method is just like the :func:`urlretrieve` function in the + standard library, except that it allows digest computation to be + done during download and checking that the downloaded data + matched any expected value. + + :param url: The URL of the file to be downloaded (assumed to be + available via an HTTP GET request). + :param destfile: The pathname where the downloaded file is to be + saved. + :param digest: If specified, this must be a (hasher, value) + tuple, where hasher is the algorithm used (e.g. + ``'md5'``) and ``value`` is the expected value. + :param reporthook: The same as for :func:`urlretrieve` in the + standard library. + """ + if digest is None: + digester = None + logger.debug('No digest specified') + else: + if isinstance(digest, (list, tuple)): + hasher, digest = digest + else: + hasher = 'md5' + digester = getattr(hashlib, hasher)() + logger.debug('Digest specified: %s' % digest) + # The following code is equivalent to urlretrieve. + # We need to do it this way so that we can compute the + # digest of the file as we go. + with open(destfile, 'wb') as dfp: + # addinfourl is not a context manager on 2.x + # so we have to use try/finally + sfp = self.send_request(Request(url)) + try: + headers = sfp.info() + blocksize = 8192 + size = -1 + read = 0 + blocknum = 0 + if "content-length" in headers: + size = int(headers["Content-Length"]) + if reporthook: + reporthook(blocknum, blocksize, size) + while True: + block = sfp.read(blocksize) + if not block: + break + read += len(block) + dfp.write(block) + if digester: + digester.update(block) + blocknum += 1 + if reporthook: + reporthook(blocknum, blocksize, size) + finally: + sfp.close() + + # check that we got the whole file, if we can + if size >= 0 and read < size: + raise DistlibException( + 'retrieval incomplete: got only %d out of %d bytes' + % (read, size)) + # if we have a digest, it must match. + if digester: + actual = digester.hexdigest() + if digest != actual: + raise DistlibException('%s digest mismatch for %s: expected ' + '%s, got %s' % (hasher, destfile, + digest, actual)) + logger.debug('Digest verified: %s', digest) + + def send_request(self, req): + """ + Send a standard library :class:`Request` to PyPI and return its + response. + + :param req: The request to send. + :return: The HTTP response from PyPI (a standard library HTTPResponse). + """ + handlers = [] + if self.password_handler: + handlers.append(self.password_handler) + if self.ssl_verifier: + handlers.append(self.ssl_verifier) + opener = build_opener(*handlers) + return opener.open(req) + + def encode_request(self, fields, files): + """ + Encode fields and files for posting to an HTTP server. + + :param fields: The fields to send as a list of (fieldname, value) + tuples. + :param files: The files to send as a list of (fieldname, filename, + file_bytes) tuple. + """ + # Adapted from packaging, which in turn was adapted from + # http://code.activestate.com/recipes/146306 + + parts = [] + boundary = self.boundary + for k, values in fields: + if not isinstance(values, (list, tuple)): + values = [values] + + for v in values: + parts.extend(( + b'--' + boundary, + ('Content-Disposition: form-data; name="%s"' % + k).encode('utf-8'), + b'', + v.encode('utf-8'))) + for key, filename, value in files: + parts.extend(( + b'--' + boundary, + ('Content-Disposition: form-data; name="%s"; filename="%s"' % + (key, filename)).encode('utf-8'), + b'', + value)) + + parts.extend((b'--' + boundary + b'--', b'')) + + body = b'\r\n'.join(parts) + ct = b'multipart/form-data; boundary=' + boundary + headers = { + 'Content-type': ct, + 'Content-length': str(len(body)) + } + return Request(self.url, body, headers) + + def search(self, terms, operator=None): + if isinstance(terms, string_types): + terms = {'name': terms} + rpc_proxy = ServerProxy(self.url, timeout=3.0) + try: + return rpc_proxy.search(terms, operator or 'and') + finally: + rpc_proxy('close')() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/locators.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/locators.py new file mode 100644 index 00000000..11d26361 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/locators.py @@ -0,0 +1,1292 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2012-2015 Vinay Sajip. +# Licensed to the Python Software Foundation under a contributor agreement. +# See LICENSE.txt and CONTRIBUTORS.txt. +# + +import gzip +from io import BytesIO +import json +import logging +import os +import posixpath +import re +try: + import threading +except ImportError: # pragma: no cover + import dummy_threading as threading +import zlib + +from . import DistlibException +from .compat import (urljoin, urlparse, urlunparse, url2pathname, pathname2url, + queue, quote, unescape, string_types, build_opener, + HTTPRedirectHandler as BaseRedirectHandler, text_type, + Request, HTTPError, URLError) +from .database import Distribution, DistributionPath, make_dist +from .metadata import Metadata, MetadataInvalidError +from .util import (cached_property, parse_credentials, ensure_slash, + split_filename, get_project_data, parse_requirement, + parse_name_and_version, ServerProxy, normalize_name) +from .version import get_scheme, UnsupportedVersionError +from .wheel import Wheel, is_compatible + +logger = logging.getLogger(__name__) + +HASHER_HASH = re.compile(r'^(\w+)=([a-f0-9]+)') +CHARSET = re.compile(r';\s*charset\s*=\s*(.*)\s*$', re.I) +HTML_CONTENT_TYPE = re.compile('text/html|application/x(ht)?ml') +DEFAULT_INDEX = 'https://pypi.python.org/pypi' + +def get_all_distribution_names(url=None): + """ + Return all distribution names known by an index. + :param url: The URL of the index. + :return: A list of all known distribution names. + """ + if url is None: + url = DEFAULT_INDEX + client = ServerProxy(url, timeout=3.0) + try: + return client.list_packages() + finally: + client('close')() + +class RedirectHandler(BaseRedirectHandler): + """ + A class to work around a bug in some Python 3.2.x releases. + """ + # There's a bug in the base version for some 3.2.x + # (e.g. 3.2.2 on Ubuntu Oneiric). If a Location header + # returns e.g. /abc, it bails because it says the scheme '' + # is bogus, when actually it should use the request's + # URL for the scheme. See Python issue #13696. + def http_error_302(self, req, fp, code, msg, headers): + # Some servers (incorrectly) return multiple Location headers + # (so probably same goes for URI). Use first header. + newurl = None + for key in ('location', 'uri'): + if key in headers: + newurl = headers[key] + break + if newurl is None: # pragma: no cover + return + urlparts = urlparse(newurl) + if urlparts.scheme == '': + newurl = urljoin(req.get_full_url(), newurl) + if hasattr(headers, 'replace_header'): + headers.replace_header(key, newurl) + else: + headers[key] = newurl + return BaseRedirectHandler.http_error_302(self, req, fp, code, msg, + headers) + + http_error_301 = http_error_303 = http_error_307 = http_error_302 + +class Locator(object): + """ + A base class for locators - things that locate distributions. + """ + source_extensions = ('.tar.gz', '.tar.bz2', '.tar', '.zip', '.tgz', '.tbz') + binary_extensions = ('.egg', '.exe', '.whl') + excluded_extensions = ('.pdf',) + + # A list of tags indicating which wheels you want to match. The default + # value of None matches against the tags compatible with the running + # Python. If you want to match other values, set wheel_tags on a locator + # instance to a list of tuples (pyver, abi, arch) which you want to match. + wheel_tags = None + + downloadable_extensions = source_extensions + ('.whl',) + + def __init__(self, scheme='default'): + """ + Initialise an instance. + :param scheme: Because locators look for most recent versions, they + need to know the version scheme to use. This specifies + the current PEP-recommended scheme - use ``'legacy'`` + if you need to support existing distributions on PyPI. + """ + self._cache = {} + self.scheme = scheme + # Because of bugs in some of the handlers on some of the platforms, + # we use our own opener rather than just using urlopen. + self.opener = build_opener(RedirectHandler()) + # If get_project() is called from locate(), the matcher instance + # is set from the requirement passed to locate(). See issue #18 for + # why this can be useful to know. + self.matcher = None + self.errors = queue.Queue() + + def get_errors(self): + """ + Return any errors which have occurred. + """ + result = [] + while not self.errors.empty(): # pragma: no cover + try: + e = self.errors.get(False) + result.append(e) + except self.errors.Empty: + continue + self.errors.task_done() + return result + + def clear_errors(self): + """ + Clear any errors which may have been logged. + """ + # Just get the errors and throw them away + self.get_errors() + + def clear_cache(self): + self._cache.clear() + + def _get_scheme(self): + return self._scheme + + def _set_scheme(self, value): + self._scheme = value + + scheme = property(_get_scheme, _set_scheme) + + def _get_project(self, name): + """ + For a given project, get a dictionary mapping available versions to Distribution + instances. + + This should be implemented in subclasses. + + If called from a locate() request, self.matcher will be set to a + matcher for the requirement to satisfy, otherwise it will be None. + """ + raise NotImplementedError('Please implement in the subclass') + + def get_distribution_names(self): + """ + Return all the distribution names known to this locator. + """ + raise NotImplementedError('Please implement in the subclass') + + def get_project(self, name): + """ + For a given project, get a dictionary mapping available versions to Distribution + instances. + + This calls _get_project to do all the work, and just implements a caching layer on top. + """ + if self._cache is None: # pragma: no cover + result = self._get_project(name) + elif name in self._cache: + result = self._cache[name] + else: + self.clear_errors() + result = self._get_project(name) + self._cache[name] = result + return result + + def score_url(self, url): + """ + Give an url a score which can be used to choose preferred URLs + for a given project release. + """ + t = urlparse(url) + basename = posixpath.basename(t.path) + compatible = True + is_wheel = basename.endswith('.whl') + is_downloadable = basename.endswith(self.downloadable_extensions) + if is_wheel: + compatible = is_compatible(Wheel(basename), self.wheel_tags) + return (t.scheme == 'https', 'pypi.python.org' in t.netloc, + is_downloadable, is_wheel, compatible, basename) + + def prefer_url(self, url1, url2): + """ + Choose one of two URLs where both are candidates for distribution + archives for the same version of a distribution (for example, + .tar.gz vs. zip). + + The current implementation favours https:// URLs over http://, archives + from PyPI over those from other locations, wheel compatibility (if a + wheel) and then the archive name. + """ + result = url2 + if url1: + s1 = self.score_url(url1) + s2 = self.score_url(url2) + if s1 > s2: + result = url1 + if result != url2: + logger.debug('Not replacing %r with %r', url1, url2) + else: + logger.debug('Replacing %r with %r', url1, url2) + return result + + def split_filename(self, filename, project_name): + """ + Attempt to split a filename in project name, version and Python version. + """ + return split_filename(filename, project_name) + + def convert_url_to_download_info(self, url, project_name): + """ + See if a URL is a candidate for a download URL for a project (the URL + has typically been scraped from an HTML page). + + If it is, a dictionary is returned with keys "name", "version", + "filename" and "url"; otherwise, None is returned. + """ + def same_project(name1, name2): + return normalize_name(name1) == normalize_name(name2) + + result = None + scheme, netloc, path, params, query, frag = urlparse(url) + if frag.lower().startswith('egg='): # pragma: no cover + logger.debug('%s: version hint in fragment: %r', + project_name, frag) + m = HASHER_HASH.match(frag) + if m: + algo, digest = m.groups() + else: + algo, digest = None, None + origpath = path + if path and path[-1] == '/': # pragma: no cover + path = path[:-1] + if path.endswith('.whl'): + try: + wheel = Wheel(path) + if is_compatible(wheel, self.wheel_tags): + if project_name is None: + include = True + else: + include = same_project(wheel.name, project_name) + if include: + result = { + 'name': wheel.name, + 'version': wheel.version, + 'filename': wheel.filename, + 'url': urlunparse((scheme, netloc, origpath, + params, query, '')), + 'python-version': ', '.join( + ['.'.join(list(v[2:])) for v in wheel.pyver]), + } + except Exception as e: # pragma: no cover + logger.warning('invalid path for wheel: %s', path) + elif not path.endswith(self.downloadable_extensions): # pragma: no cover + logger.debug('Not downloadable: %s', path) + else: # downloadable extension + path = filename = posixpath.basename(path) + for ext in self.downloadable_extensions: + if path.endswith(ext): + path = path[:-len(ext)] + t = self.split_filename(path, project_name) + if not t: # pragma: no cover + logger.debug('No match for project/version: %s', path) + else: + name, version, pyver = t + if not project_name or same_project(project_name, name): + result = { + 'name': name, + 'version': version, + 'filename': filename, + 'url': urlunparse((scheme, netloc, origpath, + params, query, '')), + #'packagetype': 'sdist', + } + if pyver: # pragma: no cover + result['python-version'] = pyver + break + if result and algo: + result['%s_digest' % algo] = digest + return result + + def _get_digest(self, info): + """ + Get a digest from a dictionary by looking at keys of the form + 'algo_digest'. + + Returns a 2-tuple (algo, digest) if found, else None. Currently + looks only for SHA256, then MD5. + """ + result = None + for algo in ('sha256', 'md5'): + key = '%s_digest' % algo + if key in info: + result = (algo, info[key]) + break + return result + + def _update_version_data(self, result, info): + """ + Update a result dictionary (the final result from _get_project) with a + dictionary for a specific version, which typically holds information + gleaned from a filename or URL for an archive for the distribution. + """ + name = info.pop('name') + version = info.pop('version') + if version in result: + dist = result[version] + md = dist.metadata + else: + dist = make_dist(name, version, scheme=self.scheme) + md = dist.metadata + dist.digest = digest = self._get_digest(info) + url = info['url'] + result['digests'][url] = digest + if md.source_url != info['url']: + md.source_url = self.prefer_url(md.source_url, url) + result['urls'].setdefault(version, set()).add(url) + dist.locator = self + result[version] = dist + + def locate(self, requirement, prereleases=False): + """ + Find the most recent distribution which matches the given + requirement. + + :param requirement: A requirement of the form 'foo (1.0)' or perhaps + 'foo (>= 1.0, < 2.0, != 1.3)' + :param prereleases: If ``True``, allow pre-release versions + to be located. Otherwise, pre-release versions + are not returned. + :return: A :class:`Distribution` instance, or ``None`` if no such + distribution could be located. + """ + result = None + r = parse_requirement(requirement) + if r is None: # pragma: no cover + raise DistlibException('Not a valid requirement: %r' % requirement) + scheme = get_scheme(self.scheme) + self.matcher = matcher = scheme.matcher(r.requirement) + logger.debug('matcher: %s (%s)', matcher, type(matcher).__name__) + versions = self.get_project(r.name) + if len(versions) > 2: # urls and digests keys are present + # sometimes, versions are invalid + slist = [] + vcls = matcher.version_class + for k in versions: + if k in ('urls', 'digests'): + continue + try: + if not matcher.match(k): + logger.debug('%s did not match %r', matcher, k) + else: + if prereleases or not vcls(k).is_prerelease: + slist.append(k) + else: + logger.debug('skipping pre-release ' + 'version %s of %s', k, matcher.name) + except Exception: # pragma: no cover + logger.warning('error matching %s with %r', matcher, k) + pass # slist.append(k) + if len(slist) > 1: + slist = sorted(slist, key=scheme.key) + if slist: + logger.debug('sorted list: %s', slist) + version = slist[-1] + result = versions[version] + if result: + if r.extras: + result.extras = r.extras + result.download_urls = versions.get('urls', {}).get(version, set()) + d = {} + sd = versions.get('digests', {}) + for url in result.download_urls: + if url in sd: # pragma: no cover + d[url] = sd[url] + result.digests = d + self.matcher = None + return result + + +class PyPIRPCLocator(Locator): + """ + This locator uses XML-RPC to locate distributions. It therefore + cannot be used with simple mirrors (that only mirror file content). + """ + def __init__(self, url, **kwargs): + """ + Initialise an instance. + + :param url: The URL to use for XML-RPC. + :param kwargs: Passed to the superclass constructor. + """ + super(PyPIRPCLocator, self).__init__(**kwargs) + self.base_url = url + self.client = ServerProxy(url, timeout=3.0) + + def get_distribution_names(self): + """ + Return all the distribution names known to this locator. + """ + return set(self.client.list_packages()) + + def _get_project(self, name): + result = {'urls': {}, 'digests': {}} + versions = self.client.package_releases(name, True) + for v in versions: + urls = self.client.release_urls(name, v) + data = self.client.release_data(name, v) + metadata = Metadata(scheme=self.scheme) + metadata.name = data['name'] + metadata.version = data['version'] + metadata.license = data.get('license') + metadata.keywords = data.get('keywords', []) + metadata.summary = data.get('summary') + dist = Distribution(metadata) + if urls: + info = urls[0] + metadata.source_url = info['url'] + dist.digest = self._get_digest(info) + dist.locator = self + result[v] = dist + for info in urls: + url = info['url'] + digest = self._get_digest(info) + result['urls'].setdefault(v, set()).add(url) + result['digests'][url] = digest + return result + +class PyPIJSONLocator(Locator): + """ + This locator uses PyPI's JSON interface. It's very limited in functionality + and probably not worth using. + """ + def __init__(self, url, **kwargs): + super(PyPIJSONLocator, self).__init__(**kwargs) + self.base_url = ensure_slash(url) + + def get_distribution_names(self): + """ + Return all the distribution names known to this locator. + """ + raise NotImplementedError('Not available from this locator') + + def _get_project(self, name): + result = {'urls': {}, 'digests': {}} + url = urljoin(self.base_url, '%s/json' % quote(name)) + try: + resp = self.opener.open(url) + data = resp.read().decode() # for now + d = json.loads(data) + md = Metadata(scheme=self.scheme) + data = d['info'] + md.name = data['name'] + md.version = data['version'] + md.license = data.get('license') + md.keywords = data.get('keywords', []) + md.summary = data.get('summary') + dist = Distribution(md) + dist.locator = self + urls = d['urls'] + result[md.version] = dist + for info in d['urls']: + url = info['url'] + dist.download_urls.add(url) + dist.digests[url] = self._get_digest(info) + result['urls'].setdefault(md.version, set()).add(url) + result['digests'][url] = self._get_digest(info) + # Now get other releases + for version, infos in d['releases'].items(): + if version == md.version: + continue # already done + omd = Metadata(scheme=self.scheme) + omd.name = md.name + omd.version = version + odist = Distribution(omd) + odist.locator = self + result[version] = odist + for info in infos: + url = info['url'] + odist.download_urls.add(url) + odist.digests[url] = self._get_digest(info) + result['urls'].setdefault(version, set()).add(url) + result['digests'][url] = self._get_digest(info) +# for info in urls: +# md.source_url = info['url'] +# dist.digest = self._get_digest(info) +# dist.locator = self +# for info in urls: +# url = info['url'] +# result['urls'].setdefault(md.version, set()).add(url) +# result['digests'][url] = self._get_digest(info) + except Exception as e: + self.errors.put(text_type(e)) + logger.exception('JSON fetch failed: %s', e) + return result + + +class Page(object): + """ + This class represents a scraped HTML page. + """ + # The following slightly hairy-looking regex just looks for the contents of + # an anchor link, which has an attribute "href" either immediately preceded + # or immediately followed by a "rel" attribute. The attribute values can be + # declared with double quotes, single quotes or no quotes - which leads to + # the length of the expression. + _href = re.compile(""" +(rel\\s*=\\s*(?:"(?P<rel1>[^"]*)"|'(?P<rel2>[^']*)'|(?P<rel3>[^>\\s\n]*))\\s+)? +href\\s*=\\s*(?:"(?P<url1>[^"]*)"|'(?P<url2>[^']*)'|(?P<url3>[^>\\s\n]*)) +(\\s+rel\\s*=\\s*(?:"(?P<rel4>[^"]*)"|'(?P<rel5>[^']*)'|(?P<rel6>[^>\\s\n]*)))? +""", re.I | re.S | re.X) + _base = re.compile(r"""<base\s+href\s*=\s*['"]?([^'">]+)""", re.I | re.S) + + def __init__(self, data, url): + """ + Initialise an instance with the Unicode page contents and the URL they + came from. + """ + self.data = data + self.base_url = self.url = url + m = self._base.search(self.data) + if m: + self.base_url = m.group(1) + + _clean_re = re.compile(r'[^a-z0-9$&+,/:;=?@.#%_\\|-]', re.I) + + @cached_property + def links(self): + """ + Return the URLs of all the links on a page together with information + about their "rel" attribute, for determining which ones to treat as + downloads and which ones to queue for further scraping. + """ + def clean(url): + "Tidy up an URL." + scheme, netloc, path, params, query, frag = urlparse(url) + return urlunparse((scheme, netloc, quote(path), + params, query, frag)) + + result = set() + for match in self._href.finditer(self.data): + d = match.groupdict('') + rel = (d['rel1'] or d['rel2'] or d['rel3'] or + d['rel4'] or d['rel5'] or d['rel6']) + url = d['url1'] or d['url2'] or d['url3'] + url = urljoin(self.base_url, url) + url = unescape(url) + url = self._clean_re.sub(lambda m: '%%%2x' % ord(m.group(0)), url) + result.add((url, rel)) + # We sort the result, hoping to bring the most recent versions + # to the front + result = sorted(result, key=lambda t: t[0], reverse=True) + return result + + +class SimpleScrapingLocator(Locator): + """ + A locator which scrapes HTML pages to locate downloads for a distribution. + This runs multiple threads to do the I/O; performance is at least as good + as pip's PackageFinder, which works in an analogous fashion. + """ + + # These are used to deal with various Content-Encoding schemes. + decoders = { + 'deflate': zlib.decompress, + 'gzip': lambda b: gzip.GzipFile(fileobj=BytesIO(d)).read(), + 'none': lambda b: b, + } + + def __init__(self, url, timeout=None, num_workers=10, **kwargs): + """ + Initialise an instance. + :param url: The root URL to use for scraping. + :param timeout: The timeout, in seconds, to be applied to requests. + This defaults to ``None`` (no timeout specified). + :param num_workers: The number of worker threads you want to do I/O, + This defaults to 10. + :param kwargs: Passed to the superclass. + """ + super(SimpleScrapingLocator, self).__init__(**kwargs) + self.base_url = ensure_slash(url) + self.timeout = timeout + self._page_cache = {} + self._seen = set() + self._to_fetch = queue.Queue() + self._bad_hosts = set() + self.skip_externals = False + self.num_workers = num_workers + self._lock = threading.RLock() + # See issue #45: we need to be resilient when the locator is used + # in a thread, e.g. with concurrent.futures. We can't use self._lock + # as it is for coordinating our internal threads - the ones created + # in _prepare_threads. + self._gplock = threading.RLock() + + def _prepare_threads(self): + """ + Threads are created only when get_project is called, and terminate + before it returns. They are there primarily to parallelise I/O (i.e. + fetching web pages). + """ + self._threads = [] + for i in range(self.num_workers): + t = threading.Thread(target=self._fetch) + t.setDaemon(True) + t.start() + self._threads.append(t) + + def _wait_threads(self): + """ + Tell all the threads to terminate (by sending a sentinel value) and + wait for them to do so. + """ + # Note that you need two loops, since you can't say which + # thread will get each sentinel + for t in self._threads: + self._to_fetch.put(None) # sentinel + for t in self._threads: + t.join() + self._threads = [] + + def _get_project(self, name): + result = {'urls': {}, 'digests': {}} + with self._gplock: + self.result = result + self.project_name = name + url = urljoin(self.base_url, '%s/' % quote(name)) + self._seen.clear() + self._page_cache.clear() + self._prepare_threads() + try: + logger.debug('Queueing %s', url) + self._to_fetch.put(url) + self._to_fetch.join() + finally: + self._wait_threads() + del self.result + return result + + platform_dependent = re.compile(r'\b(linux-(i\d86|x86_64|arm\w+)|' + r'win(32|-amd64)|macosx-?\d+)\b', re.I) + + def _is_platform_dependent(self, url): + """ + Does an URL refer to a platform-specific download? + """ + return self.platform_dependent.search(url) + + def _process_download(self, url): + """ + See if an URL is a suitable download for a project. + + If it is, register information in the result dictionary (for + _get_project) about the specific version it's for. + + Note that the return value isn't actually used other than as a boolean + value. + """ + if self._is_platform_dependent(url): + info = None + else: + info = self.convert_url_to_download_info(url, self.project_name) + logger.debug('process_download: %s -> %s', url, info) + if info: + with self._lock: # needed because self.result is shared + self._update_version_data(self.result, info) + return info + + def _should_queue(self, link, referrer, rel): + """ + Determine whether a link URL from a referring page and with a + particular "rel" attribute should be queued for scraping. + """ + scheme, netloc, path, _, _, _ = urlparse(link) + if path.endswith(self.source_extensions + self.binary_extensions + + self.excluded_extensions): + result = False + elif self.skip_externals and not link.startswith(self.base_url): + result = False + elif not referrer.startswith(self.base_url): + result = False + elif rel not in ('homepage', 'download'): + result = False + elif scheme not in ('http', 'https', 'ftp'): + result = False + elif self._is_platform_dependent(link): + result = False + else: + host = netloc.split(':', 1)[0] + if host.lower() == 'localhost': + result = False + else: + result = True + logger.debug('should_queue: %s (%s) from %s -> %s', link, rel, + referrer, result) + return result + + def _fetch(self): + """ + Get a URL to fetch from the work queue, get the HTML page, examine its + links for download candidates and candidates for further scraping. + + This is a handy method to run in a thread. + """ + while True: + url = self._to_fetch.get() + try: + if url: + page = self.get_page(url) + if page is None: # e.g. after an error + continue + for link, rel in page.links: + if link not in self._seen: + try: + self._seen.add(link) + if (not self._process_download(link) and + self._should_queue(link, url, rel)): + logger.debug('Queueing %s from %s', link, url) + self._to_fetch.put(link) + except MetadataInvalidError: # e.g. invalid versions + pass + except Exception as e: # pragma: no cover + self.errors.put(text_type(e)) + finally: + # always do this, to avoid hangs :-) + self._to_fetch.task_done() + if not url: + #logger.debug('Sentinel seen, quitting.') + break + + def get_page(self, url): + """ + Get the HTML for an URL, possibly from an in-memory cache. + + XXX TODO Note: this cache is never actually cleared. It's assumed that + the data won't get stale over the lifetime of a locator instance (not + necessarily true for the default_locator). + """ + # http://peak.telecommunity.com/DevCenter/EasyInstall#package-index-api + scheme, netloc, path, _, _, _ = urlparse(url) + if scheme == 'file' and os.path.isdir(url2pathname(path)): + url = urljoin(ensure_slash(url), 'index.html') + + if url in self._page_cache: + result = self._page_cache[url] + logger.debug('Returning %s from cache: %s', url, result) + else: + host = netloc.split(':', 1)[0] + result = None + if host in self._bad_hosts: + logger.debug('Skipping %s due to bad host %s', url, host) + else: + req = Request(url, headers={'Accept-encoding': 'identity'}) + try: + logger.debug('Fetching %s', url) + resp = self.opener.open(req, timeout=self.timeout) + logger.debug('Fetched %s', url) + headers = resp.info() + content_type = headers.get('Content-Type', '') + if HTML_CONTENT_TYPE.match(content_type): + final_url = resp.geturl() + data = resp.read() + encoding = headers.get('Content-Encoding') + if encoding: + decoder = self.decoders[encoding] # fail if not found + data = decoder(data) + encoding = 'utf-8' + m = CHARSET.search(content_type) + if m: + encoding = m.group(1) + try: + data = data.decode(encoding) + except UnicodeError: # pragma: no cover + data = data.decode('latin-1') # fallback + result = Page(data, final_url) + self._page_cache[final_url] = result + except HTTPError as e: + if e.code != 404: + logger.exception('Fetch failed: %s: %s', url, e) + except URLError as e: # pragma: no cover + logger.exception('Fetch failed: %s: %s', url, e) + with self._lock: + self._bad_hosts.add(host) + except Exception as e: # pragma: no cover + logger.exception('Fetch failed: %s: %s', url, e) + finally: + self._page_cache[url] = result # even if None (failure) + return result + + _distname_re = re.compile('<a href=[^>]*>([^<]+)<') + + def get_distribution_names(self): + """ + Return all the distribution names known to this locator. + """ + result = set() + page = self.get_page(self.base_url) + if not page: + raise DistlibException('Unable to get %s' % self.base_url) + for match in self._distname_re.finditer(page.data): + result.add(match.group(1)) + return result + +class DirectoryLocator(Locator): + """ + This class locates distributions in a directory tree. + """ + + def __init__(self, path, **kwargs): + """ + Initialise an instance. + :param path: The root of the directory tree to search. + :param kwargs: Passed to the superclass constructor, + except for: + * recursive - if True (the default), subdirectories are + recursed into. If False, only the top-level directory + is searched, + """ + self.recursive = kwargs.pop('recursive', True) + super(DirectoryLocator, self).__init__(**kwargs) + path = os.path.abspath(path) + if not os.path.isdir(path): # pragma: no cover + raise DistlibException('Not a directory: %r' % path) + self.base_dir = path + + def should_include(self, filename, parent): + """ + Should a filename be considered as a candidate for a distribution + archive? As well as the filename, the directory which contains it + is provided, though not used by the current implementation. + """ + return filename.endswith(self.downloadable_extensions) + + def _get_project(self, name): + result = {'urls': {}, 'digests': {}} + for root, dirs, files in os.walk(self.base_dir): + for fn in files: + if self.should_include(fn, root): + fn = os.path.join(root, fn) + url = urlunparse(('file', '', + pathname2url(os.path.abspath(fn)), + '', '', '')) + info = self.convert_url_to_download_info(url, name) + if info: + self._update_version_data(result, info) + if not self.recursive: + break + return result + + def get_distribution_names(self): + """ + Return all the distribution names known to this locator. + """ + result = set() + for root, dirs, files in os.walk(self.base_dir): + for fn in files: + if self.should_include(fn, root): + fn = os.path.join(root, fn) + url = urlunparse(('file', '', + pathname2url(os.path.abspath(fn)), + '', '', '')) + info = self.convert_url_to_download_info(url, None) + if info: + result.add(info['name']) + if not self.recursive: + break + return result + +class JSONLocator(Locator): + """ + This locator uses special extended metadata (not available on PyPI) and is + the basis of performant dependency resolution in distlib. Other locators + require archive downloads before dependencies can be determined! As you + might imagine, that can be slow. + """ + def get_distribution_names(self): + """ + Return all the distribution names known to this locator. + """ + raise NotImplementedError('Not available from this locator') + + def _get_project(self, name): + result = {'urls': {}, 'digests': {}} + data = get_project_data(name) + if data: + for info in data.get('files', []): + if info['ptype'] != 'sdist' or info['pyversion'] != 'source': + continue + # We don't store summary in project metadata as it makes + # the data bigger for no benefit during dependency + # resolution + dist = make_dist(data['name'], info['version'], + summary=data.get('summary', + 'Placeholder for summary'), + scheme=self.scheme) + md = dist.metadata + md.source_url = info['url'] + # TODO SHA256 digest + if 'digest' in info and info['digest']: + dist.digest = ('md5', info['digest']) + md.dependencies = info.get('requirements', {}) + dist.exports = info.get('exports', {}) + result[dist.version] = dist + result['urls'].setdefault(dist.version, set()).add(info['url']) + return result + +class DistPathLocator(Locator): + """ + This locator finds installed distributions in a path. It can be useful for + adding to an :class:`AggregatingLocator`. + """ + def __init__(self, distpath, **kwargs): + """ + Initialise an instance. + + :param distpath: A :class:`DistributionPath` instance to search. + """ + super(DistPathLocator, self).__init__(**kwargs) + assert isinstance(distpath, DistributionPath) + self.distpath = distpath + + def _get_project(self, name): + dist = self.distpath.get_distribution(name) + if dist is None: + result = {'urls': {}, 'digests': {}} + else: + result = { + dist.version: dist, + 'urls': {dist.version: set([dist.source_url])}, + 'digests': {dist.version: set([None])} + } + return result + + +class AggregatingLocator(Locator): + """ + This class allows you to chain and/or merge a list of locators. + """ + def __init__(self, *locators, **kwargs): + """ + Initialise an instance. + + :param locators: The list of locators to search. + :param kwargs: Passed to the superclass constructor, + except for: + * merge - if False (the default), the first successful + search from any of the locators is returned. If True, + the results from all locators are merged (this can be + slow). + """ + self.merge = kwargs.pop('merge', False) + self.locators = locators + super(AggregatingLocator, self).__init__(**kwargs) + + def clear_cache(self): + super(AggregatingLocator, self).clear_cache() + for locator in self.locators: + locator.clear_cache() + + def _set_scheme(self, value): + self._scheme = value + for locator in self.locators: + locator.scheme = value + + scheme = property(Locator.scheme.fget, _set_scheme) + + def _get_project(self, name): + result = {} + for locator in self.locators: + d = locator.get_project(name) + if d: + if self.merge: + files = result.get('urls', {}) + digests = result.get('digests', {}) + # next line could overwrite result['urls'], result['digests'] + result.update(d) + df = result.get('urls') + if files and df: + for k, v in files.items(): + if k in df: + df[k] |= v + else: + df[k] = v + dd = result.get('digests') + if digests and dd: + dd.update(digests) + else: + # See issue #18. If any dists are found and we're looking + # for specific constraints, we only return something if + # a match is found. For example, if a DirectoryLocator + # returns just foo (1.0) while we're looking for + # foo (>= 2.0), we'll pretend there was nothing there so + # that subsequent locators can be queried. Otherwise we + # would just return foo (1.0) which would then lead to a + # failure to find foo (>= 2.0), because other locators + # weren't searched. Note that this only matters when + # merge=False. + if self.matcher is None: + found = True + else: + found = False + for k in d: + if self.matcher.match(k): + found = True + break + if found: + result = d + break + return result + + def get_distribution_names(self): + """ + Return all the distribution names known to this locator. + """ + result = set() + for locator in self.locators: + try: + result |= locator.get_distribution_names() + except NotImplementedError: + pass + return result + + +# We use a legacy scheme simply because most of the dists on PyPI use legacy +# versions which don't conform to PEP 426 / PEP 440. +default_locator = AggregatingLocator( + JSONLocator(), + SimpleScrapingLocator('https://pypi.python.org/simple/', + timeout=3.0), + scheme='legacy') + +locate = default_locator.locate + +NAME_VERSION_RE = re.compile(r'(?P<name>[\w-]+)\s*' + r'\(\s*(==\s*)?(?P<ver>[^)]+)\)$') + +class DependencyFinder(object): + """ + Locate dependencies for distributions. + """ + + def __init__(self, locator=None): + """ + Initialise an instance, using the specified locator + to locate distributions. + """ + self.locator = locator or default_locator + self.scheme = get_scheme(self.locator.scheme) + + def add_distribution(self, dist): + """ + Add a distribution to the finder. This will update internal information + about who provides what. + :param dist: The distribution to add. + """ + logger.debug('adding distribution %s', dist) + name = dist.key + self.dists_by_name[name] = dist + self.dists[(name, dist.version)] = dist + for p in dist.provides: + name, version = parse_name_and_version(p) + logger.debug('Add to provided: %s, %s, %s', name, version, dist) + self.provided.setdefault(name, set()).add((version, dist)) + + def remove_distribution(self, dist): + """ + Remove a distribution from the finder. This will update internal + information about who provides what. + :param dist: The distribution to remove. + """ + logger.debug('removing distribution %s', dist) + name = dist.key + del self.dists_by_name[name] + del self.dists[(name, dist.version)] + for p in dist.provides: + name, version = parse_name_and_version(p) + logger.debug('Remove from provided: %s, %s, %s', name, version, dist) + s = self.provided[name] + s.remove((version, dist)) + if not s: + del self.provided[name] + + def get_matcher(self, reqt): + """ + Get a version matcher for a requirement. + :param reqt: The requirement + :type reqt: str + :return: A version matcher (an instance of + :class:`distlib.version.Matcher`). + """ + try: + matcher = self.scheme.matcher(reqt) + except UnsupportedVersionError: # pragma: no cover + # XXX compat-mode if cannot read the version + name = reqt.split()[0] + matcher = self.scheme.matcher(name) + return matcher + + def find_providers(self, reqt): + """ + Find the distributions which can fulfill a requirement. + + :param reqt: The requirement. + :type reqt: str + :return: A set of distribution which can fulfill the requirement. + """ + matcher = self.get_matcher(reqt) + name = matcher.key # case-insensitive + result = set() + provided = self.provided + if name in provided: + for version, provider in provided[name]: + try: + match = matcher.match(version) + except UnsupportedVersionError: + match = False + + if match: + result.add(provider) + break + return result + + def try_to_replace(self, provider, other, problems): + """ + Attempt to replace one provider with another. This is typically used + when resolving dependencies from multiple sources, e.g. A requires + (B >= 1.0) while C requires (B >= 1.1). + + For successful replacement, ``provider`` must meet all the requirements + which ``other`` fulfills. + + :param provider: The provider we are trying to replace with. + :param other: The provider we're trying to replace. + :param problems: If False is returned, this will contain what + problems prevented replacement. This is currently + a tuple of the literal string 'cantreplace', + ``provider``, ``other`` and the set of requirements + that ``provider`` couldn't fulfill. + :return: True if we can replace ``other`` with ``provider``, else + False. + """ + rlist = self.reqts[other] + unmatched = set() + for s in rlist: + matcher = self.get_matcher(s) + if not matcher.match(provider.version): + unmatched.add(s) + if unmatched: + # can't replace other with provider + problems.add(('cantreplace', provider, other, + frozenset(unmatched))) + result = False + else: + # can replace other with provider + self.remove_distribution(other) + del self.reqts[other] + for s in rlist: + self.reqts.setdefault(provider, set()).add(s) + self.add_distribution(provider) + result = True + return result + + def find(self, requirement, meta_extras=None, prereleases=False): + """ + Find a distribution and all distributions it depends on. + + :param requirement: The requirement specifying the distribution to + find, or a Distribution instance. + :param meta_extras: A list of meta extras such as :test:, :build: and + so on. + :param prereleases: If ``True``, allow pre-release versions to be + returned - otherwise, don't return prereleases + unless they're all that's available. + + Return a set of :class:`Distribution` instances and a set of + problems. + + The distributions returned should be such that they have the + :attr:`required` attribute set to ``True`` if they were + from the ``requirement`` passed to ``find()``, and they have the + :attr:`build_time_dependency` attribute set to ``True`` unless they + are post-installation dependencies of the ``requirement``. + + The problems should be a tuple consisting of the string + ``'unsatisfied'`` and the requirement which couldn't be satisfied + by any distribution known to the locator. + """ + + self.provided = {} + self.dists = {} + self.dists_by_name = {} + self.reqts = {} + + meta_extras = set(meta_extras or []) + if ':*:' in meta_extras: + meta_extras.remove(':*:') + # :meta: and :run: are implicitly included + meta_extras |= set([':test:', ':build:', ':dev:']) + + if isinstance(requirement, Distribution): + dist = odist = requirement + logger.debug('passed %s as requirement', odist) + else: + dist = odist = self.locator.locate(requirement, + prereleases=prereleases) + if dist is None: + raise DistlibException('Unable to locate %r' % requirement) + logger.debug('located %s', odist) + dist.requested = True + problems = set() + todo = set([dist]) + install_dists = set([odist]) + while todo: + dist = todo.pop() + name = dist.key # case-insensitive + if name not in self.dists_by_name: + self.add_distribution(dist) + else: + #import pdb; pdb.set_trace() + other = self.dists_by_name[name] + if other != dist: + self.try_to_replace(dist, other, problems) + + ireqts = dist.run_requires | dist.meta_requires + sreqts = dist.build_requires + ereqts = set() + if meta_extras and dist in install_dists: + for key in ('test', 'build', 'dev'): + e = ':%s:' % key + if e in meta_extras: + ereqts |= getattr(dist, '%s_requires' % key) + all_reqts = ireqts | sreqts | ereqts + for r in all_reqts: + providers = self.find_providers(r) + if not providers: + logger.debug('No providers found for %r', r) + provider = self.locator.locate(r, prereleases=prereleases) + # If no provider is found and we didn't consider + # prereleases, consider them now. + if provider is None and not prereleases: + provider = self.locator.locate(r, prereleases=True) + if provider is None: + logger.debug('Cannot satisfy %r', r) + problems.add(('unsatisfied', r)) + else: + n, v = provider.key, provider.version + if (n, v) not in self.dists: + todo.add(provider) + providers.add(provider) + if r in ireqts and dist in install_dists: + install_dists.add(provider) + logger.debug('Adding %s to install_dists', + provider.name_and_version) + for p in providers: + name = p.key + if name not in self.dists_by_name: + self.reqts.setdefault(p, set()).add(r) + else: + other = self.dists_by_name[name] + if other != p: + # see if other can be replaced by p + self.try_to_replace(p, other, problems) + + dists = set(self.dists.values()) + for dist in dists: + dist.build_time_dependency = dist not in install_dists + if dist.build_time_dependency: + logger.debug('%s is a build-time dependency only.', + dist.name_and_version) + logger.debug('find done for %s', odist) + return dists, problems diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/manifest.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/manifest.py new file mode 100644 index 00000000..ca0fe442 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/manifest.py @@ -0,0 +1,393 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2012-2013 Python Software Foundation. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +""" +Class representing the list of files in a distribution. + +Equivalent to distutils.filelist, but fixes some problems. +""" +import fnmatch +import logging +import os +import re +import sys + +from . import DistlibException +from .compat import fsdecode +from .util import convert_path + + +__all__ = ['Manifest'] + +logger = logging.getLogger(__name__) + +# a \ followed by some spaces + EOL +_COLLAPSE_PATTERN = re.compile('\\\\w*\n', re.M) +_COMMENTED_LINE = re.compile('#.*?(?=\n)|\n(?=$)', re.M | re.S) + +# +# Due to the different results returned by fnmatch.translate, we need +# to do slightly different processing for Python 2.7 and 3.2 ... this needed +# to be brought in for Python 3.6 onwards. +# +_PYTHON_VERSION = sys.version_info[:2] + +class Manifest(object): + """A list of files built by on exploring the filesystem and filtered by + applying various patterns to what we find there. + """ + + def __init__(self, base=None): + """ + Initialise an instance. + + :param base: The base directory to explore under. + """ + self.base = os.path.abspath(os.path.normpath(base or os.getcwd())) + self.prefix = self.base + os.sep + self.allfiles = None + self.files = set() + + # + # Public API + # + + def findall(self): + """Find all files under the base and set ``allfiles`` to the absolute + pathnames of files found. + """ + from stat import S_ISREG, S_ISDIR, S_ISLNK + + self.allfiles = allfiles = [] + root = self.base + stack = [root] + pop = stack.pop + push = stack.append + + while stack: + root = pop() + names = os.listdir(root) + + for name in names: + fullname = os.path.join(root, name) + + # Avoid excess stat calls -- just one will do, thank you! + stat = os.stat(fullname) + mode = stat.st_mode + if S_ISREG(mode): + allfiles.append(fsdecode(fullname)) + elif S_ISDIR(mode) and not S_ISLNK(mode): + push(fullname) + + def add(self, item): + """ + Add a file to the manifest. + + :param item: The pathname to add. This can be relative to the base. + """ + if not item.startswith(self.prefix): + item = os.path.join(self.base, item) + self.files.add(os.path.normpath(item)) + + def add_many(self, items): + """ + Add a list of files to the manifest. + + :param items: The pathnames to add. These can be relative to the base. + """ + for item in items: + self.add(item) + + def sorted(self, wantdirs=False): + """ + Return sorted files in directory order + """ + + def add_dir(dirs, d): + dirs.add(d) + logger.debug('add_dir added %s', d) + if d != self.base: + parent, _ = os.path.split(d) + assert parent not in ('', '/') + add_dir(dirs, parent) + + result = set(self.files) # make a copy! + if wantdirs: + dirs = set() + for f in result: + add_dir(dirs, os.path.dirname(f)) + result |= dirs + return [os.path.join(*path_tuple) for path_tuple in + sorted(os.path.split(path) for path in result)] + + def clear(self): + """Clear all collected files.""" + self.files = set() + self.allfiles = [] + + def process_directive(self, directive): + """ + Process a directive which either adds some files from ``allfiles`` to + ``files``, or removes some files from ``files``. + + :param directive: The directive to process. This should be in a format + compatible with distutils ``MANIFEST.in`` files: + + http://docs.python.org/distutils/sourcedist.html#commands + """ + # Parse the line: split it up, make sure the right number of words + # is there, and return the relevant words. 'action' is always + # defined: it's the first word of the line. Which of the other + # three are defined depends on the action; it'll be either + # patterns, (dir and patterns), or (dirpattern). + action, patterns, thedir, dirpattern = self._parse_directive(directive) + + # OK, now we know that the action is valid and we have the + # right number of words on the line for that action -- so we + # can proceed with minimal error-checking. + if action == 'include': + for pattern in patterns: + if not self._include_pattern(pattern, anchor=True): + logger.warning('no files found matching %r', pattern) + + elif action == 'exclude': + for pattern in patterns: + found = self._exclude_pattern(pattern, anchor=True) + #if not found: + # logger.warning('no previously-included files ' + # 'found matching %r', pattern) + + elif action == 'global-include': + for pattern in patterns: + if not self._include_pattern(pattern, anchor=False): + logger.warning('no files found matching %r ' + 'anywhere in distribution', pattern) + + elif action == 'global-exclude': + for pattern in patterns: + found = self._exclude_pattern(pattern, anchor=False) + #if not found: + # logger.warning('no previously-included files ' + # 'matching %r found anywhere in ' + # 'distribution', pattern) + + elif action == 'recursive-include': + for pattern in patterns: + if not self._include_pattern(pattern, prefix=thedir): + logger.warning('no files found matching %r ' + 'under directory %r', pattern, thedir) + + elif action == 'recursive-exclude': + for pattern in patterns: + found = self._exclude_pattern(pattern, prefix=thedir) + #if not found: + # logger.warning('no previously-included files ' + # 'matching %r found under directory %r', + # pattern, thedir) + + elif action == 'graft': + if not self._include_pattern(None, prefix=dirpattern): + logger.warning('no directories found matching %r', + dirpattern) + + elif action == 'prune': + if not self._exclude_pattern(None, prefix=dirpattern): + logger.warning('no previously-included directories found ' + 'matching %r', dirpattern) + else: # pragma: no cover + # This should never happen, as it should be caught in + # _parse_template_line + raise DistlibException( + 'invalid action %r' % action) + + # + # Private API + # + + def _parse_directive(self, directive): + """ + Validate a directive. + :param directive: The directive to validate. + :return: A tuple of action, patterns, thedir, dir_patterns + """ + words = directive.split() + if len(words) == 1 and words[0] not in ('include', 'exclude', + 'global-include', + 'global-exclude', + 'recursive-include', + 'recursive-exclude', + 'graft', 'prune'): + # no action given, let's use the default 'include' + words.insert(0, 'include') + + action = words[0] + patterns = thedir = dir_pattern = None + + if action in ('include', 'exclude', + 'global-include', 'global-exclude'): + if len(words) < 2: + raise DistlibException( + '%r expects <pattern1> <pattern2> ...' % action) + + patterns = [convert_path(word) for word in words[1:]] + + elif action in ('recursive-include', 'recursive-exclude'): + if len(words) < 3: + raise DistlibException( + '%r expects <dir> <pattern1> <pattern2> ...' % action) + + thedir = convert_path(words[1]) + patterns = [convert_path(word) for word in words[2:]] + + elif action in ('graft', 'prune'): + if len(words) != 2: + raise DistlibException( + '%r expects a single <dir_pattern>' % action) + + dir_pattern = convert_path(words[1]) + + else: + raise DistlibException('unknown action %r' % action) + + return action, patterns, thedir, dir_pattern + + def _include_pattern(self, pattern, anchor=True, prefix=None, + is_regex=False): + """Select strings (presumably filenames) from 'self.files' that + match 'pattern', a Unix-style wildcard (glob) pattern. + + Patterns are not quite the same as implemented by the 'fnmatch' + module: '*' and '?' match non-special characters, where "special" + is platform-dependent: slash on Unix; colon, slash, and backslash on + DOS/Windows; and colon on Mac OS. + + If 'anchor' is true (the default), then the pattern match is more + stringent: "*.py" will match "foo.py" but not "foo/bar.py". If + 'anchor' is false, both of these will match. + + If 'prefix' is supplied, then only filenames starting with 'prefix' + (itself a pattern) and ending with 'pattern', with anything in between + them, will match. 'anchor' is ignored in this case. + + If 'is_regex' is true, 'anchor' and 'prefix' are ignored, and + 'pattern' is assumed to be either a string containing a regex or a + regex object -- no translation is done, the regex is just compiled + and used as-is. + + Selected strings will be added to self.files. + + Return True if files are found. + """ + # XXX docstring lying about what the special chars are? + found = False + pattern_re = self._translate_pattern(pattern, anchor, prefix, is_regex) + + # delayed loading of allfiles list + if self.allfiles is None: + self.findall() + + for name in self.allfiles: + if pattern_re.search(name): + self.files.add(name) + found = True + return found + + def _exclude_pattern(self, pattern, anchor=True, prefix=None, + is_regex=False): + """Remove strings (presumably filenames) from 'files' that match + 'pattern'. + + Other parameters are the same as for 'include_pattern()', above. + The list 'self.files' is modified in place. Return True if files are + found. + + This API is public to allow e.g. exclusion of SCM subdirs, e.g. when + packaging source distributions + """ + found = False + pattern_re = self._translate_pattern(pattern, anchor, prefix, is_regex) + for f in list(self.files): + if pattern_re.search(f): + self.files.remove(f) + found = True + return found + + def _translate_pattern(self, pattern, anchor=True, prefix=None, + is_regex=False): + """Translate a shell-like wildcard pattern to a compiled regular + expression. + + Return the compiled regex. If 'is_regex' true, + then 'pattern' is directly compiled to a regex (if it's a string) + or just returned as-is (assumes it's a regex object). + """ + if is_regex: + if isinstance(pattern, str): + return re.compile(pattern) + else: + return pattern + + if _PYTHON_VERSION > (3, 2): + # ditch start and end characters + start, _, end = self._glob_to_re('_').partition('_') + + if pattern: + pattern_re = self._glob_to_re(pattern) + if _PYTHON_VERSION > (3, 2): + assert pattern_re.startswith(start) and pattern_re.endswith(end) + else: + pattern_re = '' + + base = re.escape(os.path.join(self.base, '')) + if prefix is not None: + # ditch end of pattern character + if _PYTHON_VERSION <= (3, 2): + empty_pattern = self._glob_to_re('') + prefix_re = self._glob_to_re(prefix)[:-len(empty_pattern)] + else: + prefix_re = self._glob_to_re(prefix) + assert prefix_re.startswith(start) and prefix_re.endswith(end) + prefix_re = prefix_re[len(start): len(prefix_re) - len(end)] + sep = os.sep + if os.sep == '\\': + sep = r'\\' + if _PYTHON_VERSION <= (3, 2): + pattern_re = '^' + base + sep.join((prefix_re, + '.*' + pattern_re)) + else: + pattern_re = pattern_re[len(start): len(pattern_re) - len(end)] + pattern_re = r'%s%s%s%s.*%s%s' % (start, base, prefix_re, sep, + pattern_re, end) + else: # no prefix -- respect anchor flag + if anchor: + if _PYTHON_VERSION <= (3, 2): + pattern_re = '^' + base + pattern_re + else: + pattern_re = r'%s%s%s' % (start, base, pattern_re[len(start):]) + + return re.compile(pattern_re) + + def _glob_to_re(self, pattern): + """Translate a shell-like glob pattern to a regular expression. + + Return a string containing the regex. Differs from + 'fnmatch.translate()' in that '*' does not match "special characters" + (which are platform-specific). + """ + pattern_re = fnmatch.translate(pattern) + + # '?' and '*' in the glob pattern become '.' and '.*' in the RE, which + # IMHO is wrong -- '?' and '*' aren't supposed to match slash in Unix, + # and by extension they shouldn't match such "special characters" under + # any OS. So change all non-escaped dots in the RE to match any + # character except the special characters (currently: just os.sep). + sep = os.sep + if os.sep == '\\': + # we're using a regex to manipulate a regex, so we need + # to escape the backslash twice + sep = r'\\\\' + escaped = r'\1[^%s]' % sep + pattern_re = re.sub(r'((?<!\\)(\\\\)*)\.', escaped, pattern_re) + return pattern_re diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/markers.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/markers.py new file mode 100644 index 00000000..ee1f3e23 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/markers.py @@ -0,0 +1,131 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2012-2017 Vinay Sajip. +# Licensed to the Python Software Foundation under a contributor agreement. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +""" +Parser for the environment markers micro-language defined in PEP 508. +""" + +# Note: In PEP 345, the micro-language was Python compatible, so the ast +# module could be used to parse it. However, PEP 508 introduced operators such +# as ~= and === which aren't in Python, necessitating a different approach. + +import os +import sys +import platform +import re + +from .compat import python_implementation, urlparse, string_types +from .util import in_venv, parse_marker + +__all__ = ['interpret'] + +def _is_literal(o): + if not isinstance(o, string_types) or not o: + return False + return o[0] in '\'"' + +class Evaluator(object): + """ + This class is used to evaluate marker expessions. + """ + + operations = { + '==': lambda x, y: x == y, + '===': lambda x, y: x == y, + '~=': lambda x, y: x == y or x > y, + '!=': lambda x, y: x != y, + '<': lambda x, y: x < y, + '<=': lambda x, y: x == y or x < y, + '>': lambda x, y: x > y, + '>=': lambda x, y: x == y or x > y, + 'and': lambda x, y: x and y, + 'or': lambda x, y: x or y, + 'in': lambda x, y: x in y, + 'not in': lambda x, y: x not in y, + } + + def evaluate(self, expr, context): + """ + Evaluate a marker expression returned by the :func:`parse_requirement` + function in the specified context. + """ + if isinstance(expr, string_types): + if expr[0] in '\'"': + result = expr[1:-1] + else: + if expr not in context: + raise SyntaxError('unknown variable: %s' % expr) + result = context[expr] + else: + assert isinstance(expr, dict) + op = expr['op'] + if op not in self.operations: + raise NotImplementedError('op not implemented: %s' % op) + elhs = expr['lhs'] + erhs = expr['rhs'] + if _is_literal(expr['lhs']) and _is_literal(expr['rhs']): + raise SyntaxError('invalid comparison: %s %s %s' % (elhs, op, erhs)) + + lhs = self.evaluate(elhs, context) + rhs = self.evaluate(erhs, context) + result = self.operations[op](lhs, rhs) + return result + +def default_context(): + def format_full_version(info): + version = '%s.%s.%s' % (info.major, info.minor, info.micro) + kind = info.releaselevel + if kind != 'final': + version += kind[0] + str(info.serial) + return version + + if hasattr(sys, 'implementation'): + implementation_version = format_full_version(sys.implementation.version) + implementation_name = sys.implementation.name + else: + implementation_version = '0' + implementation_name = '' + + result = { + 'implementation_name': implementation_name, + 'implementation_version': implementation_version, + 'os_name': os.name, + 'platform_machine': platform.machine(), + 'platform_python_implementation': platform.python_implementation(), + 'platform_release': platform.release(), + 'platform_system': platform.system(), + 'platform_version': platform.version(), + 'platform_in_venv': str(in_venv()), + 'python_full_version': platform.python_version(), + 'python_version': platform.python_version()[:3], + 'sys_platform': sys.platform, + } + return result + +DEFAULT_CONTEXT = default_context() +del default_context + +evaluator = Evaluator() + +def interpret(marker, execution_context=None): + """ + Interpret a marker and return a result depending on environment. + + :param marker: The marker to interpret. + :type marker: str + :param execution_context: The context used for name lookup. + :type execution_context: mapping + """ + try: + expr, rest = parse_marker(marker) + except Exception as e: + raise SyntaxError('Unable to interpret marker syntax: %s: %s' % (marker, e)) + if rest and rest[0] != '#': + raise SyntaxError('unexpected trailing data in marker: %s: %s' % (marker, rest)) + context = dict(DEFAULT_CONTEXT) + if execution_context: + context.update(execution_context) + return evaluator.evaluate(expr, context) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/metadata.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/metadata.py new file mode 100644 index 00000000..6d6470ff --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/metadata.py @@ -0,0 +1,1091 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2012 The Python Software Foundation. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +"""Implementation of the Metadata for Python packages PEPs. + +Supports all metadata formats (1.0, 1.1, 1.2, and 2.0 experimental). +""" +from __future__ import unicode_literals + +import codecs +from email import message_from_file +import json +import logging +import re + + +from . import DistlibException, __version__ +from .compat import StringIO, string_types, text_type +from .markers import interpret +from .util import extract_by_key, get_extras +from .version import get_scheme, PEP440_VERSION_RE + +logger = logging.getLogger(__name__) + + +class MetadataMissingError(DistlibException): + """A required metadata is missing""" + + +class MetadataConflictError(DistlibException): + """Attempt to read or write metadata fields that are conflictual.""" + + +class MetadataUnrecognizedVersionError(DistlibException): + """Unknown metadata version number.""" + + +class MetadataInvalidError(DistlibException): + """A metadata value is invalid""" + +# public API of this module +__all__ = ['Metadata', 'PKG_INFO_ENCODING', 'PKG_INFO_PREFERRED_VERSION'] + +# Encoding used for the PKG-INFO files +PKG_INFO_ENCODING = 'utf-8' + +# preferred version. Hopefully will be changed +# to 1.2 once PEP 345 is supported everywhere +PKG_INFO_PREFERRED_VERSION = '1.1' + +_LINE_PREFIX_1_2 = re.compile('\n \\|') +_LINE_PREFIX_PRE_1_2 = re.compile('\n ') +_241_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', + 'Summary', 'Description', + 'Keywords', 'Home-page', 'Author', 'Author-email', + 'License') + +_314_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', + 'Supported-Platform', 'Summary', 'Description', + 'Keywords', 'Home-page', 'Author', 'Author-email', + 'License', 'Classifier', 'Download-URL', 'Obsoletes', + 'Provides', 'Requires') + +_314_MARKERS = ('Obsoletes', 'Provides', 'Requires', 'Classifier', + 'Download-URL') + +_345_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', + 'Supported-Platform', 'Summary', 'Description', + 'Keywords', 'Home-page', 'Author', 'Author-email', + 'Maintainer', 'Maintainer-email', 'License', + 'Classifier', 'Download-URL', 'Obsoletes-Dist', + 'Project-URL', 'Provides-Dist', 'Requires-Dist', + 'Requires-Python', 'Requires-External') + +_345_MARKERS = ('Provides-Dist', 'Requires-Dist', 'Requires-Python', + 'Obsoletes-Dist', 'Requires-External', 'Maintainer', + 'Maintainer-email', 'Project-URL') + +_426_FIELDS = ('Metadata-Version', 'Name', 'Version', 'Platform', + 'Supported-Platform', 'Summary', 'Description', + 'Keywords', 'Home-page', 'Author', 'Author-email', + 'Maintainer', 'Maintainer-email', 'License', + 'Classifier', 'Download-URL', 'Obsoletes-Dist', + 'Project-URL', 'Provides-Dist', 'Requires-Dist', + 'Requires-Python', 'Requires-External', 'Private-Version', + 'Obsoleted-By', 'Setup-Requires-Dist', 'Extension', + 'Provides-Extra') + +_426_MARKERS = ('Private-Version', 'Provides-Extra', 'Obsoleted-By', + 'Setup-Requires-Dist', 'Extension') + +_566_FIELDS = _426_FIELDS + ('Description-Content-Type',) + +_566_MARKERS = ('Description-Content-Type',) + +_ALL_FIELDS = set() +_ALL_FIELDS.update(_241_FIELDS) +_ALL_FIELDS.update(_314_FIELDS) +_ALL_FIELDS.update(_345_FIELDS) +_ALL_FIELDS.update(_426_FIELDS) +_ALL_FIELDS.update(_566_FIELDS) + +EXTRA_RE = re.compile(r'''extra\s*==\s*("([^"]+)"|'([^']+)')''') + + +def _version2fieldlist(version): + if version == '1.0': + return _241_FIELDS + elif version == '1.1': + return _314_FIELDS + elif version == '1.2': + return _345_FIELDS + elif version in ('1.3', '2.1'): + return _345_FIELDS + _566_FIELDS + elif version == '2.0': + return _426_FIELDS + raise MetadataUnrecognizedVersionError(version) + + +def _best_version(fields): + """Detect the best version depending on the fields used.""" + def _has_marker(keys, markers): + for marker in markers: + if marker in keys: + return True + return False + + keys = [] + for key, value in fields.items(): + if value in ([], 'UNKNOWN', None): + continue + keys.append(key) + + possible_versions = ['1.0', '1.1', '1.2', '1.3', '2.0', '2.1'] + + # first let's try to see if a field is not part of one of the version + for key in keys: + if key not in _241_FIELDS and '1.0' in possible_versions: + possible_versions.remove('1.0') + logger.debug('Removed 1.0 due to %s', key) + if key not in _314_FIELDS and '1.1' in possible_versions: + possible_versions.remove('1.1') + logger.debug('Removed 1.1 due to %s', key) + if key not in _345_FIELDS and '1.2' in possible_versions: + possible_versions.remove('1.2') + logger.debug('Removed 1.2 due to %s', key) + if key not in _566_FIELDS and '1.3' in possible_versions: + possible_versions.remove('1.3') + logger.debug('Removed 1.3 due to %s', key) + if key not in _566_FIELDS and '2.1' in possible_versions: + if key != 'Description': # In 2.1, description allowed after headers + possible_versions.remove('2.1') + logger.debug('Removed 2.1 due to %s', key) + if key not in _426_FIELDS and '2.0' in possible_versions: + possible_versions.remove('2.0') + logger.debug('Removed 2.0 due to %s', key) + + # possible_version contains qualified versions + if len(possible_versions) == 1: + return possible_versions[0] # found ! + elif len(possible_versions) == 0: + logger.debug('Out of options - unknown metadata set: %s', fields) + raise MetadataConflictError('Unknown metadata set') + + # let's see if one unique marker is found + is_1_1 = '1.1' in possible_versions and _has_marker(keys, _314_MARKERS) + is_1_2 = '1.2' in possible_versions and _has_marker(keys, _345_MARKERS) + is_2_1 = '2.1' in possible_versions and _has_marker(keys, _566_MARKERS) + is_2_0 = '2.0' in possible_versions and _has_marker(keys, _426_MARKERS) + if int(is_1_1) + int(is_1_2) + int(is_2_1) + int(is_2_0) > 1: + raise MetadataConflictError('You used incompatible 1.1/1.2/2.0/2.1 fields') + + # we have the choice, 1.0, or 1.2, or 2.0 + # - 1.0 has a broken Summary field but works with all tools + # - 1.1 is to avoid + # - 1.2 fixes Summary but has little adoption + # - 2.0 adds more features and is very new + if not is_1_1 and not is_1_2 and not is_2_1 and not is_2_0: + # we couldn't find any specific marker + if PKG_INFO_PREFERRED_VERSION in possible_versions: + return PKG_INFO_PREFERRED_VERSION + if is_1_1: + return '1.1' + if is_1_2: + return '1.2' + if is_2_1: + return '2.1' + + return '2.0' + +_ATTR2FIELD = { + 'metadata_version': 'Metadata-Version', + 'name': 'Name', + 'version': 'Version', + 'platform': 'Platform', + 'supported_platform': 'Supported-Platform', + 'summary': 'Summary', + 'description': 'Description', + 'keywords': 'Keywords', + 'home_page': 'Home-page', + 'author': 'Author', + 'author_email': 'Author-email', + 'maintainer': 'Maintainer', + 'maintainer_email': 'Maintainer-email', + 'license': 'License', + 'classifier': 'Classifier', + 'download_url': 'Download-URL', + 'obsoletes_dist': 'Obsoletes-Dist', + 'provides_dist': 'Provides-Dist', + 'requires_dist': 'Requires-Dist', + 'setup_requires_dist': 'Setup-Requires-Dist', + 'requires_python': 'Requires-Python', + 'requires_external': 'Requires-External', + 'requires': 'Requires', + 'provides': 'Provides', + 'obsoletes': 'Obsoletes', + 'project_url': 'Project-URL', + 'private_version': 'Private-Version', + 'obsoleted_by': 'Obsoleted-By', + 'extension': 'Extension', + 'provides_extra': 'Provides-Extra', +} + +_PREDICATE_FIELDS = ('Requires-Dist', 'Obsoletes-Dist', 'Provides-Dist') +_VERSIONS_FIELDS = ('Requires-Python',) +_VERSION_FIELDS = ('Version',) +_LISTFIELDS = ('Platform', 'Classifier', 'Obsoletes', + 'Requires', 'Provides', 'Obsoletes-Dist', + 'Provides-Dist', 'Requires-Dist', 'Requires-External', + 'Project-URL', 'Supported-Platform', 'Setup-Requires-Dist', + 'Provides-Extra', 'Extension') +_LISTTUPLEFIELDS = ('Project-URL',) + +_ELEMENTSFIELD = ('Keywords',) + +_UNICODEFIELDS = ('Author', 'Maintainer', 'Summary', 'Description') + +_MISSING = object() + +_FILESAFE = re.compile('[^A-Za-z0-9.]+') + + +def _get_name_and_version(name, version, for_filename=False): + """Return the distribution name with version. + + If for_filename is true, return a filename-escaped form.""" + if for_filename: + # For both name and version any runs of non-alphanumeric or '.' + # characters are replaced with a single '-'. Additionally any + # spaces in the version string become '.' + name = _FILESAFE.sub('-', name) + version = _FILESAFE.sub('-', version.replace(' ', '.')) + return '%s-%s' % (name, version) + + +class LegacyMetadata(object): + """The legacy metadata of a release. + + Supports versions 1.0, 1.1 and 1.2 (auto-detected). You can + instantiate the class with one of these arguments (or none): + - *path*, the path to a metadata file + - *fileobj* give a file-like object with metadata as content + - *mapping* is a dict-like object + - *scheme* is a version scheme name + """ + # TODO document the mapping API and UNKNOWN default key + + def __init__(self, path=None, fileobj=None, mapping=None, + scheme='default'): + if [path, fileobj, mapping].count(None) < 2: + raise TypeError('path, fileobj and mapping are exclusive') + self._fields = {} + self.requires_files = [] + self._dependencies = None + self.scheme = scheme + if path is not None: + self.read(path) + elif fileobj is not None: + self.read_file(fileobj) + elif mapping is not None: + self.update(mapping) + self.set_metadata_version() + + def set_metadata_version(self): + self._fields['Metadata-Version'] = _best_version(self._fields) + + def _write_field(self, fileobj, name, value): + fileobj.write('%s: %s\n' % (name, value)) + + def __getitem__(self, name): + return self.get(name) + + def __setitem__(self, name, value): + return self.set(name, value) + + def __delitem__(self, name): + field_name = self._convert_name(name) + try: + del self._fields[field_name] + except KeyError: + raise KeyError(name) + + def __contains__(self, name): + return (name in self._fields or + self._convert_name(name) in self._fields) + + def _convert_name(self, name): + if name in _ALL_FIELDS: + return name + name = name.replace('-', '_').lower() + return _ATTR2FIELD.get(name, name) + + def _default_value(self, name): + if name in _LISTFIELDS or name in _ELEMENTSFIELD: + return [] + return 'UNKNOWN' + + def _remove_line_prefix(self, value): + if self.metadata_version in ('1.0', '1.1'): + return _LINE_PREFIX_PRE_1_2.sub('\n', value) + else: + return _LINE_PREFIX_1_2.sub('\n', value) + + def __getattr__(self, name): + if name in _ATTR2FIELD: + return self[name] + raise AttributeError(name) + + # + # Public API + # + +# dependencies = property(_get_dependencies, _set_dependencies) + + def get_fullname(self, filesafe=False): + """Return the distribution name with version. + + If filesafe is true, return a filename-escaped form.""" + return _get_name_and_version(self['Name'], self['Version'], filesafe) + + def is_field(self, name): + """return True if name is a valid metadata key""" + name = self._convert_name(name) + return name in _ALL_FIELDS + + def is_multi_field(self, name): + name = self._convert_name(name) + return name in _LISTFIELDS + + def read(self, filepath): + """Read the metadata values from a file path.""" + fp = codecs.open(filepath, 'r', encoding='utf-8') + try: + self.read_file(fp) + finally: + fp.close() + + def read_file(self, fileob): + """Read the metadata values from a file object.""" + msg = message_from_file(fileob) + self._fields['Metadata-Version'] = msg['metadata-version'] + + # When reading, get all the fields we can + for field in _ALL_FIELDS: + if field not in msg: + continue + if field in _LISTFIELDS: + # we can have multiple lines + values = msg.get_all(field) + if field in _LISTTUPLEFIELDS and values is not None: + values = [tuple(value.split(',')) for value in values] + self.set(field, values) + else: + # single line + value = msg[field] + if value is not None and value != 'UNKNOWN': + self.set(field, value) + logger.debug('Attempting to set metadata for %s', self) + self.set_metadata_version() + + def write(self, filepath, skip_unknown=False): + """Write the metadata fields to filepath.""" + fp = codecs.open(filepath, 'w', encoding='utf-8') + try: + self.write_file(fp, skip_unknown) + finally: + fp.close() + + def write_file(self, fileobject, skip_unknown=False): + """Write the PKG-INFO format data to a file object.""" + self.set_metadata_version() + + for field in _version2fieldlist(self['Metadata-Version']): + values = self.get(field) + if skip_unknown and values in ('UNKNOWN', [], ['UNKNOWN']): + continue + if field in _ELEMENTSFIELD: + self._write_field(fileobject, field, ','.join(values)) + continue + if field not in _LISTFIELDS: + if field == 'Description': + if self.metadata_version in ('1.0', '1.1'): + values = values.replace('\n', '\n ') + else: + values = values.replace('\n', '\n |') + values = [values] + + if field in _LISTTUPLEFIELDS: + values = [','.join(value) for value in values] + + for value in values: + self._write_field(fileobject, field, value) + + def update(self, other=None, **kwargs): + """Set metadata values from the given iterable `other` and kwargs. + + Behavior is like `dict.update`: If `other` has a ``keys`` method, + they are looped over and ``self[key]`` is assigned ``other[key]``. + Else, ``other`` is an iterable of ``(key, value)`` iterables. + + Keys that don't match a metadata field or that have an empty value are + dropped. + """ + def _set(key, value): + if key in _ATTR2FIELD and value: + self.set(self._convert_name(key), value) + + if not other: + # other is None or empty container + pass + elif hasattr(other, 'keys'): + for k in other.keys(): + _set(k, other[k]) + else: + for k, v in other: + _set(k, v) + + if kwargs: + for k, v in kwargs.items(): + _set(k, v) + + def set(self, name, value): + """Control then set a metadata field.""" + name = self._convert_name(name) + + if ((name in _ELEMENTSFIELD or name == 'Platform') and + not isinstance(value, (list, tuple))): + if isinstance(value, string_types): + value = [v.strip() for v in value.split(',')] + else: + value = [] + elif (name in _LISTFIELDS and + not isinstance(value, (list, tuple))): + if isinstance(value, string_types): + value = [value] + else: + value = [] + + if logger.isEnabledFor(logging.WARNING): + project_name = self['Name'] + + scheme = get_scheme(self.scheme) + if name in _PREDICATE_FIELDS and value is not None: + for v in value: + # check that the values are valid + if not scheme.is_valid_matcher(v.split(';')[0]): + logger.warning( + "'%s': '%s' is not valid (field '%s')", + project_name, v, name) + # FIXME this rejects UNKNOWN, is that right? + elif name in _VERSIONS_FIELDS and value is not None: + if not scheme.is_valid_constraint_list(value): + logger.warning("'%s': '%s' is not a valid version (field '%s')", + project_name, value, name) + elif name in _VERSION_FIELDS and value is not None: + if not scheme.is_valid_version(value): + logger.warning("'%s': '%s' is not a valid version (field '%s')", + project_name, value, name) + + if name in _UNICODEFIELDS: + if name == 'Description': + value = self._remove_line_prefix(value) + + self._fields[name] = value + + def get(self, name, default=_MISSING): + """Get a metadata field.""" + name = self._convert_name(name) + if name not in self._fields: + if default is _MISSING: + default = self._default_value(name) + return default + if name in _UNICODEFIELDS: + value = self._fields[name] + return value + elif name in _LISTFIELDS: + value = self._fields[name] + if value is None: + return [] + res = [] + for val in value: + if name not in _LISTTUPLEFIELDS: + res.append(val) + else: + # That's for Project-URL + res.append((val[0], val[1])) + return res + + elif name in _ELEMENTSFIELD: + value = self._fields[name] + if isinstance(value, string_types): + return value.split(',') + return self._fields[name] + + def check(self, strict=False): + """Check if the metadata is compliant. If strict is True then raise if + no Name or Version are provided""" + self.set_metadata_version() + + # XXX should check the versions (if the file was loaded) + missing, warnings = [], [] + + for attr in ('Name', 'Version'): # required by PEP 345 + if attr not in self: + missing.append(attr) + + if strict and missing != []: + msg = 'missing required metadata: %s' % ', '.join(missing) + raise MetadataMissingError(msg) + + for attr in ('Home-page', 'Author'): + if attr not in self: + missing.append(attr) + + # checking metadata 1.2 (XXX needs to check 1.1, 1.0) + if self['Metadata-Version'] != '1.2': + return missing, warnings + + scheme = get_scheme(self.scheme) + + def are_valid_constraints(value): + for v in value: + if not scheme.is_valid_matcher(v.split(';')[0]): + return False + return True + + for fields, controller in ((_PREDICATE_FIELDS, are_valid_constraints), + (_VERSIONS_FIELDS, + scheme.is_valid_constraint_list), + (_VERSION_FIELDS, + scheme.is_valid_version)): + for field in fields: + value = self.get(field, None) + if value is not None and not controller(value): + warnings.append("Wrong value for '%s': %s" % (field, value)) + + return missing, warnings + + def todict(self, skip_missing=False): + """Return fields as a dict. + + Field names will be converted to use the underscore-lowercase style + instead of hyphen-mixed case (i.e. home_page instead of Home-page). + """ + self.set_metadata_version() + + mapping_1_0 = ( + ('metadata_version', 'Metadata-Version'), + ('name', 'Name'), + ('version', 'Version'), + ('summary', 'Summary'), + ('home_page', 'Home-page'), + ('author', 'Author'), + ('author_email', 'Author-email'), + ('license', 'License'), + ('description', 'Description'), + ('keywords', 'Keywords'), + ('platform', 'Platform'), + ('classifiers', 'Classifier'), + ('download_url', 'Download-URL'), + ) + + data = {} + for key, field_name in mapping_1_0: + if not skip_missing or field_name in self._fields: + data[key] = self[field_name] + + if self['Metadata-Version'] == '1.2': + mapping_1_2 = ( + ('requires_dist', 'Requires-Dist'), + ('requires_python', 'Requires-Python'), + ('requires_external', 'Requires-External'), + ('provides_dist', 'Provides-Dist'), + ('obsoletes_dist', 'Obsoletes-Dist'), + ('project_url', 'Project-URL'), + ('maintainer', 'Maintainer'), + ('maintainer_email', 'Maintainer-email'), + ) + for key, field_name in mapping_1_2: + if not skip_missing or field_name in self._fields: + if key != 'project_url': + data[key] = self[field_name] + else: + data[key] = [','.join(u) for u in self[field_name]] + + elif self['Metadata-Version'] == '1.1': + mapping_1_1 = ( + ('provides', 'Provides'), + ('requires', 'Requires'), + ('obsoletes', 'Obsoletes'), + ) + for key, field_name in mapping_1_1: + if not skip_missing or field_name in self._fields: + data[key] = self[field_name] + + return data + + def add_requirements(self, requirements): + if self['Metadata-Version'] == '1.1': + # we can't have 1.1 metadata *and* Setuptools requires + for field in ('Obsoletes', 'Requires', 'Provides'): + if field in self: + del self[field] + self['Requires-Dist'] += requirements + + # Mapping API + # TODO could add iter* variants + + def keys(self): + return list(_version2fieldlist(self['Metadata-Version'])) + + def __iter__(self): + for key in self.keys(): + yield key + + def values(self): + return [self[key] for key in self.keys()] + + def items(self): + return [(key, self[key]) for key in self.keys()] + + def __repr__(self): + return '<%s %s %s>' % (self.__class__.__name__, self.name, + self.version) + + +METADATA_FILENAME = 'pydist.json' +WHEEL_METADATA_FILENAME = 'metadata.json' + + +class Metadata(object): + """ + The metadata of a release. This implementation uses 2.0 (JSON) + metadata where possible. If not possible, it wraps a LegacyMetadata + instance which handles the key-value metadata format. + """ + + METADATA_VERSION_MATCHER = re.compile(r'^\d+(\.\d+)*$') + + NAME_MATCHER = re.compile('^[0-9A-Z]([0-9A-Z_.-]*[0-9A-Z])?$', re.I) + + VERSION_MATCHER = PEP440_VERSION_RE + + SUMMARY_MATCHER = re.compile('.{1,2047}') + + METADATA_VERSION = '2.0' + + GENERATOR = 'distlib (%s)' % __version__ + + MANDATORY_KEYS = { + 'name': (), + 'version': (), + 'summary': ('legacy',), + } + + INDEX_KEYS = ('name version license summary description author ' + 'author_email keywords platform home_page classifiers ' + 'download_url') + + DEPENDENCY_KEYS = ('extras run_requires test_requires build_requires ' + 'dev_requires provides meta_requires obsoleted_by ' + 'supports_environments') + + SYNTAX_VALIDATORS = { + 'metadata_version': (METADATA_VERSION_MATCHER, ()), + 'name': (NAME_MATCHER, ('legacy',)), + 'version': (VERSION_MATCHER, ('legacy',)), + 'summary': (SUMMARY_MATCHER, ('legacy',)), + } + + __slots__ = ('_legacy', '_data', 'scheme') + + def __init__(self, path=None, fileobj=None, mapping=None, + scheme='default'): + if [path, fileobj, mapping].count(None) < 2: + raise TypeError('path, fileobj and mapping are exclusive') + self._legacy = None + self._data = None + self.scheme = scheme + #import pdb; pdb.set_trace() + if mapping is not None: + try: + self._validate_mapping(mapping, scheme) + self._data = mapping + except MetadataUnrecognizedVersionError: + self._legacy = LegacyMetadata(mapping=mapping, scheme=scheme) + self.validate() + else: + data = None + if path: + with open(path, 'rb') as f: + data = f.read() + elif fileobj: + data = fileobj.read() + if data is None: + # Initialised with no args - to be added + self._data = { + 'metadata_version': self.METADATA_VERSION, + 'generator': self.GENERATOR, + } + else: + if not isinstance(data, text_type): + data = data.decode('utf-8') + try: + self._data = json.loads(data) + self._validate_mapping(self._data, scheme) + except ValueError: + # Note: MetadataUnrecognizedVersionError does not + # inherit from ValueError (it's a DistlibException, + # which should not inherit from ValueError). + # The ValueError comes from the json.load - if that + # succeeds and we get a validation error, we want + # that to propagate + self._legacy = LegacyMetadata(fileobj=StringIO(data), + scheme=scheme) + self.validate() + + common_keys = set(('name', 'version', 'license', 'keywords', 'summary')) + + none_list = (None, list) + none_dict = (None, dict) + + mapped_keys = { + 'run_requires': ('Requires-Dist', list), + 'build_requires': ('Setup-Requires-Dist', list), + 'dev_requires': none_list, + 'test_requires': none_list, + 'meta_requires': none_list, + 'extras': ('Provides-Extra', list), + 'modules': none_list, + 'namespaces': none_list, + 'exports': none_dict, + 'commands': none_dict, + 'classifiers': ('Classifier', list), + 'source_url': ('Download-URL', None), + 'metadata_version': ('Metadata-Version', None), + } + + del none_list, none_dict + + def __getattribute__(self, key): + common = object.__getattribute__(self, 'common_keys') + mapped = object.__getattribute__(self, 'mapped_keys') + if key in mapped: + lk, maker = mapped[key] + if self._legacy: + if lk is None: + result = None if maker is None else maker() + else: + result = self._legacy.get(lk) + else: + value = None if maker is None else maker() + if key not in ('commands', 'exports', 'modules', 'namespaces', + 'classifiers'): + result = self._data.get(key, value) + else: + # special cases for PEP 459 + sentinel = object() + result = sentinel + d = self._data.get('extensions') + if d: + if key == 'commands': + result = d.get('python.commands', value) + elif key == 'classifiers': + d = d.get('python.details') + if d: + result = d.get(key, value) + else: + d = d.get('python.exports') + if not d: + d = self._data.get('python.exports') + if d: + result = d.get(key, value) + if result is sentinel: + result = value + elif key not in common: + result = object.__getattribute__(self, key) + elif self._legacy: + result = self._legacy.get(key) + else: + result = self._data.get(key) + return result + + def _validate_value(self, key, value, scheme=None): + if key in self.SYNTAX_VALIDATORS: + pattern, exclusions = self.SYNTAX_VALIDATORS[key] + if (scheme or self.scheme) not in exclusions: + m = pattern.match(value) + if not m: + raise MetadataInvalidError("'%s' is an invalid value for " + "the '%s' property" % (value, + key)) + + def __setattr__(self, key, value): + self._validate_value(key, value) + common = object.__getattribute__(self, 'common_keys') + mapped = object.__getattribute__(self, 'mapped_keys') + if key in mapped: + lk, _ = mapped[key] + if self._legacy: + if lk is None: + raise NotImplementedError + self._legacy[lk] = value + elif key not in ('commands', 'exports', 'modules', 'namespaces', + 'classifiers'): + self._data[key] = value + else: + # special cases for PEP 459 + d = self._data.setdefault('extensions', {}) + if key == 'commands': + d['python.commands'] = value + elif key == 'classifiers': + d = d.setdefault('python.details', {}) + d[key] = value + else: + d = d.setdefault('python.exports', {}) + d[key] = value + elif key not in common: + object.__setattr__(self, key, value) + else: + if key == 'keywords': + if isinstance(value, string_types): + value = value.strip() + if value: + value = value.split() + else: + value = [] + if self._legacy: + self._legacy[key] = value + else: + self._data[key] = value + + @property + def name_and_version(self): + return _get_name_and_version(self.name, self.version, True) + + @property + def provides(self): + if self._legacy: + result = self._legacy['Provides-Dist'] + else: + result = self._data.setdefault('provides', []) + s = '%s (%s)' % (self.name, self.version) + if s not in result: + result.append(s) + return result + + @provides.setter + def provides(self, value): + if self._legacy: + self._legacy['Provides-Dist'] = value + else: + self._data['provides'] = value + + def get_requirements(self, reqts, extras=None, env=None): + """ + Base method to get dependencies, given a set of extras + to satisfy and an optional environment context. + :param reqts: A list of sometimes-wanted dependencies, + perhaps dependent on extras and environment. + :param extras: A list of optional components being requested. + :param env: An optional environment for marker evaluation. + """ + if self._legacy: + result = reqts + else: + result = [] + extras = get_extras(extras or [], self.extras) + for d in reqts: + if 'extra' not in d and 'environment' not in d: + # unconditional + include = True + else: + if 'extra' not in d: + # Not extra-dependent - only environment-dependent + include = True + else: + include = d.get('extra') in extras + if include: + # Not excluded because of extras, check environment + marker = d.get('environment') + if marker: + include = interpret(marker, env) + if include: + result.extend(d['requires']) + for key in ('build', 'dev', 'test'): + e = ':%s:' % key + if e in extras: + extras.remove(e) + # A recursive call, but it should terminate since 'test' + # has been removed from the extras + reqts = self._data.get('%s_requires' % key, []) + result.extend(self.get_requirements(reqts, extras=extras, + env=env)) + return result + + @property + def dictionary(self): + if self._legacy: + return self._from_legacy() + return self._data + + @property + def dependencies(self): + if self._legacy: + raise NotImplementedError + else: + return extract_by_key(self._data, self.DEPENDENCY_KEYS) + + @dependencies.setter + def dependencies(self, value): + if self._legacy: + raise NotImplementedError + else: + self._data.update(value) + + def _validate_mapping(self, mapping, scheme): + if mapping.get('metadata_version') != self.METADATA_VERSION: + raise MetadataUnrecognizedVersionError() + missing = [] + for key, exclusions in self.MANDATORY_KEYS.items(): + if key not in mapping: + if scheme not in exclusions: + missing.append(key) + if missing: + msg = 'Missing metadata items: %s' % ', '.join(missing) + raise MetadataMissingError(msg) + for k, v in mapping.items(): + self._validate_value(k, v, scheme) + + def validate(self): + if self._legacy: + missing, warnings = self._legacy.check(True) + if missing or warnings: + logger.warning('Metadata: missing: %s, warnings: %s', + missing, warnings) + else: + self._validate_mapping(self._data, self.scheme) + + def todict(self): + if self._legacy: + return self._legacy.todict(True) + else: + result = extract_by_key(self._data, self.INDEX_KEYS) + return result + + def _from_legacy(self): + assert self._legacy and not self._data + result = { + 'metadata_version': self.METADATA_VERSION, + 'generator': self.GENERATOR, + } + lmd = self._legacy.todict(True) # skip missing ones + for k in ('name', 'version', 'license', 'summary', 'description', + 'classifier'): + if k in lmd: + if k == 'classifier': + nk = 'classifiers' + else: + nk = k + result[nk] = lmd[k] + kw = lmd.get('Keywords', []) + if kw == ['']: + kw = [] + result['keywords'] = kw + keys = (('requires_dist', 'run_requires'), + ('setup_requires_dist', 'build_requires')) + for ok, nk in keys: + if ok in lmd and lmd[ok]: + result[nk] = [{'requires': lmd[ok]}] + result['provides'] = self.provides + author = {} + maintainer = {} + return result + + LEGACY_MAPPING = { + 'name': 'Name', + 'version': 'Version', + 'license': 'License', + 'summary': 'Summary', + 'description': 'Description', + 'classifiers': 'Classifier', + } + + def _to_legacy(self): + def process_entries(entries): + reqts = set() + for e in entries: + extra = e.get('extra') + env = e.get('environment') + rlist = e['requires'] + for r in rlist: + if not env and not extra: + reqts.add(r) + else: + marker = '' + if extra: + marker = 'extra == "%s"' % extra + if env: + if marker: + marker = '(%s) and %s' % (env, marker) + else: + marker = env + reqts.add(';'.join((r, marker))) + return reqts + + assert self._data and not self._legacy + result = LegacyMetadata() + nmd = self._data + for nk, ok in self.LEGACY_MAPPING.items(): + if nk in nmd: + result[ok] = nmd[nk] + r1 = process_entries(self.run_requires + self.meta_requires) + r2 = process_entries(self.build_requires + self.dev_requires) + if self.extras: + result['Provides-Extra'] = sorted(self.extras) + result['Requires-Dist'] = sorted(r1) + result['Setup-Requires-Dist'] = sorted(r2) + # TODO: other fields such as contacts + return result + + def write(self, path=None, fileobj=None, legacy=False, skip_unknown=True): + if [path, fileobj].count(None) != 1: + raise ValueError('Exactly one of path and fileobj is needed') + self.validate() + if legacy: + if self._legacy: + legacy_md = self._legacy + else: + legacy_md = self._to_legacy() + if path: + legacy_md.write(path, skip_unknown=skip_unknown) + else: + legacy_md.write_file(fileobj, skip_unknown=skip_unknown) + else: + if self._legacy: + d = self._from_legacy() + else: + d = self._data + if fileobj: + json.dump(d, fileobj, ensure_ascii=True, indent=2, + sort_keys=True) + else: + with codecs.open(path, 'w', 'utf-8') as f: + json.dump(d, f, ensure_ascii=True, indent=2, + sort_keys=True) + + def add_requirements(self, requirements): + if self._legacy: + self._legacy.add_requirements(requirements) + else: + run_requires = self._data.setdefault('run_requires', []) + always = None + for entry in run_requires: + if 'environment' not in entry and 'extra' not in entry: + always = entry + break + if always is None: + always = { 'requires': requirements } + run_requires.insert(0, always) + else: + rset = set(always['requires']) | set(requirements) + always['requires'] = sorted(rset) + + def __repr__(self): + name = self.name or '(no name)' + version = self.version or 'no version' + return '<%s %s %s (%s)>' % (self.__class__.__name__, + self.metadata_version, name, version) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/resources.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/resources.py new file mode 100644 index 00000000..18840167 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/resources.py @@ -0,0 +1,355 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2013-2017 Vinay Sajip. +# Licensed to the Python Software Foundation under a contributor agreement. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +from __future__ import unicode_literals + +import bisect +import io +import logging +import os +import pkgutil +import shutil +import sys +import types +import zipimport + +from . import DistlibException +from .util import cached_property, get_cache_base, path_to_cache_dir, Cache + +logger = logging.getLogger(__name__) + + +cache = None # created when needed + + +class ResourceCache(Cache): + def __init__(self, base=None): + if base is None: + # Use native string to avoid issues on 2.x: see Python #20140. + base = os.path.join(get_cache_base(), str('resource-cache')) + super(ResourceCache, self).__init__(base) + + def is_stale(self, resource, path): + """ + Is the cache stale for the given resource? + + :param resource: The :class:`Resource` being cached. + :param path: The path of the resource in the cache. + :return: True if the cache is stale. + """ + # Cache invalidation is a hard problem :-) + return True + + def get(self, resource): + """ + Get a resource into the cache, + + :param resource: A :class:`Resource` instance. + :return: The pathname of the resource in the cache. + """ + prefix, path = resource.finder.get_cache_info(resource) + if prefix is None: + result = path + else: + result = os.path.join(self.base, self.prefix_to_dir(prefix), path) + dirname = os.path.dirname(result) + if not os.path.isdir(dirname): + os.makedirs(dirname) + if not os.path.exists(result): + stale = True + else: + stale = self.is_stale(resource, path) + if stale: + # write the bytes of the resource to the cache location + with open(result, 'wb') as f: + f.write(resource.bytes) + return result + + +class ResourceBase(object): + def __init__(self, finder, name): + self.finder = finder + self.name = name + + +class Resource(ResourceBase): + """ + A class representing an in-package resource, such as a data file. This is + not normally instantiated by user code, but rather by a + :class:`ResourceFinder` which manages the resource. + """ + is_container = False # Backwards compatibility + + def as_stream(self): + """ + Get the resource as a stream. + + This is not a property to make it obvious that it returns a new stream + each time. + """ + return self.finder.get_stream(self) + + @cached_property + def file_path(self): + global cache + if cache is None: + cache = ResourceCache() + return cache.get(self) + + @cached_property + def bytes(self): + return self.finder.get_bytes(self) + + @cached_property + def size(self): + return self.finder.get_size(self) + + +class ResourceContainer(ResourceBase): + is_container = True # Backwards compatibility + + @cached_property + def resources(self): + return self.finder.get_resources(self) + + +class ResourceFinder(object): + """ + Resource finder for file system resources. + """ + + if sys.platform.startswith('java'): + skipped_extensions = ('.pyc', '.pyo', '.class') + else: + skipped_extensions = ('.pyc', '.pyo') + + def __init__(self, module): + self.module = module + self.loader = getattr(module, '__loader__', None) + self.base = os.path.dirname(getattr(module, '__file__', '')) + + def _adjust_path(self, path): + return os.path.realpath(path) + + def _make_path(self, resource_name): + # Issue #50: need to preserve type of path on Python 2.x + # like os.path._get_sep + if isinstance(resource_name, bytes): # should only happen on 2.x + sep = b'/' + else: + sep = '/' + parts = resource_name.split(sep) + parts.insert(0, self.base) + result = os.path.join(*parts) + return self._adjust_path(result) + + def _find(self, path): + return os.path.exists(path) + + def get_cache_info(self, resource): + return None, resource.path + + def find(self, resource_name): + path = self._make_path(resource_name) + if not self._find(path): + result = None + else: + if self._is_directory(path): + result = ResourceContainer(self, resource_name) + else: + result = Resource(self, resource_name) + result.path = path + return result + + def get_stream(self, resource): + return open(resource.path, 'rb') + + def get_bytes(self, resource): + with open(resource.path, 'rb') as f: + return f.read() + + def get_size(self, resource): + return os.path.getsize(resource.path) + + def get_resources(self, resource): + def allowed(f): + return (f != '__pycache__' and not + f.endswith(self.skipped_extensions)) + return set([f for f in os.listdir(resource.path) if allowed(f)]) + + def is_container(self, resource): + return self._is_directory(resource.path) + + _is_directory = staticmethod(os.path.isdir) + + def iterator(self, resource_name): + resource = self.find(resource_name) + if resource is not None: + todo = [resource] + while todo: + resource = todo.pop(0) + yield resource + if resource.is_container: + rname = resource.name + for name in resource.resources: + if not rname: + new_name = name + else: + new_name = '/'.join([rname, name]) + child = self.find(new_name) + if child.is_container: + todo.append(child) + else: + yield child + + +class ZipResourceFinder(ResourceFinder): + """ + Resource finder for resources in .zip files. + """ + def __init__(self, module): + super(ZipResourceFinder, self).__init__(module) + archive = self.loader.archive + self.prefix_len = 1 + len(archive) + # PyPy doesn't have a _files attr on zipimporter, and you can't set one + if hasattr(self.loader, '_files'): + self._files = self.loader._files + else: + self._files = zipimport._zip_directory_cache[archive] + self.index = sorted(self._files) + + def _adjust_path(self, path): + return path + + def _find(self, path): + path = path[self.prefix_len:] + if path in self._files: + result = True + else: + if path and path[-1] != os.sep: + path = path + os.sep + i = bisect.bisect(self.index, path) + try: + result = self.index[i].startswith(path) + except IndexError: + result = False + if not result: + logger.debug('_find failed: %r %r', path, self.loader.prefix) + else: + logger.debug('_find worked: %r %r', path, self.loader.prefix) + return result + + def get_cache_info(self, resource): + prefix = self.loader.archive + path = resource.path[1 + len(prefix):] + return prefix, path + + def get_bytes(self, resource): + return self.loader.get_data(resource.path) + + def get_stream(self, resource): + return io.BytesIO(self.get_bytes(resource)) + + def get_size(self, resource): + path = resource.path[self.prefix_len:] + return self._files[path][3] + + def get_resources(self, resource): + path = resource.path[self.prefix_len:] + if path and path[-1] != os.sep: + path += os.sep + plen = len(path) + result = set() + i = bisect.bisect(self.index, path) + while i < len(self.index): + if not self.index[i].startswith(path): + break + s = self.index[i][plen:] + result.add(s.split(os.sep, 1)[0]) # only immediate children + i += 1 + return result + + def _is_directory(self, path): + path = path[self.prefix_len:] + if path and path[-1] != os.sep: + path += os.sep + i = bisect.bisect(self.index, path) + try: + result = self.index[i].startswith(path) + except IndexError: + result = False + return result + +_finder_registry = { + type(None): ResourceFinder, + zipimport.zipimporter: ZipResourceFinder +} + +try: + # In Python 3.6, _frozen_importlib -> _frozen_importlib_external + try: + import _frozen_importlib_external as _fi + except ImportError: + import _frozen_importlib as _fi + _finder_registry[_fi.SourceFileLoader] = ResourceFinder + _finder_registry[_fi.FileFinder] = ResourceFinder + del _fi +except (ImportError, AttributeError): + pass + + +def register_finder(loader, finder_maker): + _finder_registry[type(loader)] = finder_maker + +_finder_cache = {} + + +def finder(package): + """ + Return a resource finder for a package. + :param package: The name of the package. + :return: A :class:`ResourceFinder` instance for the package. + """ + if package in _finder_cache: + result = _finder_cache[package] + else: + if package not in sys.modules: + __import__(package) + module = sys.modules[package] + path = getattr(module, '__path__', None) + if path is None: + raise DistlibException('You cannot get a finder for a module, ' + 'only for a package') + loader = getattr(module, '__loader__', None) + finder_maker = _finder_registry.get(type(loader)) + if finder_maker is None: + raise DistlibException('Unable to locate finder for %r' % package) + result = finder_maker(module) + _finder_cache[package] = result + return result + + +_dummy_module = types.ModuleType(str('__dummy__')) + + +def finder_for_path(path): + """ + Return a resource finder for a path, which should represent a container. + + :param path: The path. + :return: A :class:`ResourceFinder` instance for the path. + """ + result = None + # calls any path hooks, gets importer into cache + pkgutil.get_importer(path) + loader = sys.path_importer_cache.get(path) + finder = _finder_registry.get(type(loader)) + if finder: + module = _dummy_module + module.__file__ = os.path.join(path, '') + module.__loader__ = loader + result = finder(module) + return result diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/scripts.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/scripts.py new file mode 100644 index 00000000..0b7c3d0b --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/scripts.py @@ -0,0 +1,415 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2013-2015 Vinay Sajip. +# Licensed to the Python Software Foundation under a contributor agreement. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +from io import BytesIO +import logging +import os +import re +import struct +import sys + +from .compat import sysconfig, detect_encoding, ZipFile +from .resources import finder +from .util import (FileOperator, get_export_entry, convert_path, + get_executable, in_venv) + +logger = logging.getLogger(__name__) + +_DEFAULT_MANIFEST = ''' +<?xml version="1.0" encoding="UTF-8" standalone="yes"?> +<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0"> + <assemblyIdentity version="1.0.0.0" + processorArchitecture="X86" + name="%s" + type="win32"/> + + <!-- Identify the application security requirements. --> + <trustInfo xmlns="urn:schemas-microsoft-com:asm.v3"> + <security> + <requestedPrivileges> + <requestedExecutionLevel level="asInvoker" uiAccess="false"/> + </requestedPrivileges> + </security> + </trustInfo> +</assembly>'''.strip() + +# check if Python is called on the first line with this expression +FIRST_LINE_RE = re.compile(b'^#!.*pythonw?[0-9.]*([ \t].*)?$') +SCRIPT_TEMPLATE = r'''# -*- coding: utf-8 -*- +if __name__ == '__main__': + import sys, re + + def _resolve(module, func): + __import__(module) + mod = sys.modules[module] + parts = func.split('.') + result = getattr(mod, parts.pop(0)) + for p in parts: + result = getattr(result, p) + return result + + try: + sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) + + func = _resolve('%(module)s', '%(func)s') + rc = func() # None interpreted as 0 + except Exception as e: # only supporting Python >= 2.6 + sys.stderr.write('%%s\n' %% e) + rc = 1 + sys.exit(rc) +''' + + +def _enquote_executable(executable): + if ' ' in executable: + # make sure we quote only the executable in case of env + # for example /usr/bin/env "/dir with spaces/bin/jython" + # instead of "/usr/bin/env /dir with spaces/bin/jython" + # otherwise whole + if executable.startswith('/usr/bin/env '): + env, _executable = executable.split(' ', 1) + if ' ' in _executable and not _executable.startswith('"'): + executable = '%s "%s"' % (env, _executable) + else: + if not executable.startswith('"'): + executable = '"%s"' % executable + return executable + + +class ScriptMaker(object): + """ + A class to copy or create scripts from source scripts or callable + specifications. + """ + script_template = SCRIPT_TEMPLATE + + executable = None # for shebangs + + def __init__(self, source_dir, target_dir, add_launchers=True, + dry_run=False, fileop=None): + self.source_dir = source_dir + self.target_dir = target_dir + self.add_launchers = add_launchers + self.force = False + self.clobber = False + # It only makes sense to set mode bits on POSIX. + self.set_mode = (os.name == 'posix') or (os.name == 'java' and + os._name == 'posix') + self.variants = set(('', 'X.Y')) + self._fileop = fileop or FileOperator(dry_run) + + self._is_nt = os.name == 'nt' or ( + os.name == 'java' and os._name == 'nt') + + def _get_alternate_executable(self, executable, options): + if options.get('gui', False) and self._is_nt: # pragma: no cover + dn, fn = os.path.split(executable) + fn = fn.replace('python', 'pythonw') + executable = os.path.join(dn, fn) + return executable + + if sys.platform.startswith('java'): # pragma: no cover + def _is_shell(self, executable): + """ + Determine if the specified executable is a script + (contains a #! line) + """ + try: + with open(executable) as fp: + return fp.read(2) == '#!' + except (OSError, IOError): + logger.warning('Failed to open %s', executable) + return False + + def _fix_jython_executable(self, executable): + if self._is_shell(executable): + # Workaround for Jython is not needed on Linux systems. + import java + + if java.lang.System.getProperty('os.name') == 'Linux': + return executable + elif executable.lower().endswith('jython.exe'): + # Use wrapper exe for Jython on Windows + return executable + return '/usr/bin/env %s' % executable + + def _build_shebang(self, executable, post_interp): + """ + Build a shebang line. In the simple case (on Windows, or a shebang line + which is not too long or contains spaces) use a simple formulation for + the shebang. Otherwise, use /bin/sh as the executable, with a contrived + shebang which allows the script to run either under Python or sh, using + suitable quoting. Thanks to Harald Nordgren for his input. + + See also: http://www.in-ulm.de/~mascheck/various/shebang/#length + https://hg.mozilla.org/mozilla-central/file/tip/mach + """ + if os.name != 'posix': + simple_shebang = True + else: + # Add 3 for '#!' prefix and newline suffix. + shebang_length = len(executable) + len(post_interp) + 3 + if sys.platform == 'darwin': + max_shebang_length = 512 + else: + max_shebang_length = 127 + simple_shebang = ((b' ' not in executable) and + (shebang_length <= max_shebang_length)) + + if simple_shebang: + result = b'#!' + executable + post_interp + b'\n' + else: + result = b'#!/bin/sh\n' + result += b"'''exec' " + executable + post_interp + b' "$0" "$@"\n' + result += b"' '''" + return result + + def _get_shebang(self, encoding, post_interp=b'', options=None): + enquote = True + if self.executable: + executable = self.executable + enquote = False # assume this will be taken care of + elif not sysconfig.is_python_build(): + executable = get_executable() + elif in_venv(): # pragma: no cover + executable = os.path.join(sysconfig.get_path('scripts'), + 'python%s' % sysconfig.get_config_var('EXE')) + else: # pragma: no cover + executable = os.path.join( + sysconfig.get_config_var('BINDIR'), + 'python%s%s' % (sysconfig.get_config_var('VERSION'), + sysconfig.get_config_var('EXE'))) + if options: + executable = self._get_alternate_executable(executable, options) + + if sys.platform.startswith('java'): # pragma: no cover + executable = self._fix_jython_executable(executable) + # Normalise case for Windows + executable = os.path.normcase(executable) + # If the user didn't specify an executable, it may be necessary to + # cater for executable paths with spaces (not uncommon on Windows) + if enquote: + executable = _enquote_executable(executable) + # Issue #51: don't use fsencode, since we later try to + # check that the shebang is decodable using utf-8. + executable = executable.encode('utf-8') + # in case of IronPython, play safe and enable frames support + if (sys.platform == 'cli' and '-X:Frames' not in post_interp + and '-X:FullFrames' not in post_interp): # pragma: no cover + post_interp += b' -X:Frames' + shebang = self._build_shebang(executable, post_interp) + # Python parser starts to read a script using UTF-8 until + # it gets a #coding:xxx cookie. The shebang has to be the + # first line of a file, the #coding:xxx cookie cannot be + # written before. So the shebang has to be decodable from + # UTF-8. + try: + shebang.decode('utf-8') + except UnicodeDecodeError: # pragma: no cover + raise ValueError( + 'The shebang (%r) is not decodable from utf-8' % shebang) + # If the script is encoded to a custom encoding (use a + # #coding:xxx cookie), the shebang has to be decodable from + # the script encoding too. + if encoding != 'utf-8': + try: + shebang.decode(encoding) + except UnicodeDecodeError: # pragma: no cover + raise ValueError( + 'The shebang (%r) is not decodable ' + 'from the script encoding (%r)' % (shebang, encoding)) + return shebang + + def _get_script_text(self, entry): + return self.script_template % dict(module=entry.prefix, + func=entry.suffix) + + manifest = _DEFAULT_MANIFEST + + def get_manifest(self, exename): + base = os.path.basename(exename) + return self.manifest % base + + def _write_script(self, names, shebang, script_bytes, filenames, ext): + use_launcher = self.add_launchers and self._is_nt + linesep = os.linesep.encode('utf-8') + if not use_launcher: + script_bytes = shebang + linesep + script_bytes + else: # pragma: no cover + if ext == 'py': + launcher = self._get_launcher('t') + else: + launcher = self._get_launcher('w') + stream = BytesIO() + with ZipFile(stream, 'w') as zf: + zf.writestr('__main__.py', script_bytes) + zip_data = stream.getvalue() + script_bytes = launcher + shebang + linesep + zip_data + for name in names: + outname = os.path.join(self.target_dir, name) + if use_launcher: # pragma: no cover + n, e = os.path.splitext(outname) + if e.startswith('.py'): + outname = n + outname = '%s.exe' % outname + try: + self._fileop.write_binary_file(outname, script_bytes) + except Exception: + # Failed writing an executable - it might be in use. + logger.warning('Failed to write executable - trying to ' + 'use .deleteme logic') + dfname = '%s.deleteme' % outname + if os.path.exists(dfname): + os.remove(dfname) # Not allowed to fail here + os.rename(outname, dfname) # nor here + self._fileop.write_binary_file(outname, script_bytes) + logger.debug('Able to replace executable using ' + '.deleteme logic') + try: + os.remove(dfname) + except Exception: + pass # still in use - ignore error + else: + if self._is_nt and not outname.endswith('.' + ext): # pragma: no cover + outname = '%s.%s' % (outname, ext) + if os.path.exists(outname) and not self.clobber: + logger.warning('Skipping existing file %s', outname) + continue + self._fileop.write_binary_file(outname, script_bytes) + if self.set_mode: + self._fileop.set_executable_mode([outname]) + filenames.append(outname) + + def _make_script(self, entry, filenames, options=None): + post_interp = b'' + if options: + args = options.get('interpreter_args', []) + if args: + args = ' %s' % ' '.join(args) + post_interp = args.encode('utf-8') + shebang = self._get_shebang('utf-8', post_interp, options=options) + script = self._get_script_text(entry).encode('utf-8') + name = entry.name + scriptnames = set() + if '' in self.variants: + scriptnames.add(name) + if 'X' in self.variants: + scriptnames.add('%s%s' % (name, sys.version[0])) + if 'X.Y' in self.variants: + scriptnames.add('%s-%s' % (name, sys.version[:3])) + if options and options.get('gui', False): + ext = 'pyw' + else: + ext = 'py' + self._write_script(scriptnames, shebang, script, filenames, ext) + + def _copy_script(self, script, filenames): + adjust = False + script = os.path.join(self.source_dir, convert_path(script)) + outname = os.path.join(self.target_dir, os.path.basename(script)) + if not self.force and not self._fileop.newer(script, outname): + logger.debug('not copying %s (up-to-date)', script) + return + + # Always open the file, but ignore failures in dry-run mode -- + # that way, we'll get accurate feedback if we can read the + # script. + try: + f = open(script, 'rb') + except IOError: # pragma: no cover + if not self.dry_run: + raise + f = None + else: + first_line = f.readline() + if not first_line: # pragma: no cover + logger.warning('%s: %s is an empty file (skipping)', + self.get_command_name(), script) + return + + match = FIRST_LINE_RE.match(first_line.replace(b'\r\n', b'\n')) + if match: + adjust = True + post_interp = match.group(1) or b'' + + if not adjust: + if f: + f.close() + self._fileop.copy_file(script, outname) + if self.set_mode: + self._fileop.set_executable_mode([outname]) + filenames.append(outname) + else: + logger.info('copying and adjusting %s -> %s', script, + self.target_dir) + if not self._fileop.dry_run: + encoding, lines = detect_encoding(f.readline) + f.seek(0) + shebang = self._get_shebang(encoding, post_interp) + if b'pythonw' in first_line: # pragma: no cover + ext = 'pyw' + else: + ext = 'py' + n = os.path.basename(outname) + self._write_script([n], shebang, f.read(), filenames, ext) + if f: + f.close() + + @property + def dry_run(self): + return self._fileop.dry_run + + @dry_run.setter + def dry_run(self, value): + self._fileop.dry_run = value + + if os.name == 'nt' or (os.name == 'java' and os._name == 'nt'): # pragma: no cover + # Executable launcher support. + # Launchers are from https://bitbucket.org/vinay.sajip/simple_launcher/ + + def _get_launcher(self, kind): + if struct.calcsize('P') == 8: # 64-bit + bits = '64' + else: + bits = '32' + name = '%s%s.exe' % (kind, bits) + # Issue 31: don't hardcode an absolute package name, but + # determine it relative to the current package + distlib_package = __name__.rsplit('.', 1)[0] + result = finder(distlib_package).find(name).bytes + return result + + # Public API follows + + def make(self, specification, options=None): + """ + Make a script. + + :param specification: The specification, which is either a valid export + entry specification (to make a script from a + callable) or a filename (to make a script by + copying from a source location). + :param options: A dictionary of options controlling script generation. + :return: A list of all absolute pathnames written to. + """ + filenames = [] + entry = get_export_entry(specification) + if entry is None: + self._copy_script(specification, filenames) + else: + self._make_script(entry, filenames, options=options) + return filenames + + def make_multiple(self, specifications, options=None): + """ + Take a list of specifications and make scripts from them, + :param specifications: A list of specifications. + :return: A list of all absolute pathnames written to, + """ + filenames = [] + for specification in specifications: + filenames.extend(self.make(specification, options)) + return filenames diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/t32.exe b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/t32.exe new file mode 100644 index 0000000000000000000000000000000000000000..a09d926872d84ae22a617dfe9ebb560d420b37de GIT binary patch literal 92672 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 literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/t64.exe b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/t64.exe new file mode 100644 index 0000000000000000000000000000000000000000..9da9b40de922fb203df6b9a1d0ad4139af536850 GIT binary patch literal 102400 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�vlnW`{LoXpTySn$@;x8yoz96jn?+Kk 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�?dYNUd4WaURX_A__M4W}D0!0n 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 literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/util.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/util.py new file mode 100644 index 00000000..0b14a93b --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/util.py @@ -0,0 +1,1755 @@ +# +# Copyright (C) 2012-2017 The Python Software Foundation. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +import codecs +from collections import deque +import contextlib +import csv +from glob import iglob as std_iglob +import io +import json +import logging +import os +import py_compile +import re +import socket +try: + import ssl +except ImportError: # pragma: no cover + ssl = None +import subprocess +import sys +import tarfile +import tempfile +import textwrap + +try: + import threading +except ImportError: # pragma: no cover + import dummy_threading as threading +import time + +from . import DistlibException +from .compat import (string_types, text_type, shutil, raw_input, StringIO, + cache_from_source, urlopen, urljoin, httplib, xmlrpclib, + splittype, HTTPHandler, BaseConfigurator, valid_ident, + Container, configparser, URLError, ZipFile, fsdecode, + unquote, urlparse) + +logger = logging.getLogger(__name__) + +# +# Requirement parsing code as per PEP 508 +# + +IDENTIFIER = re.compile(r'^([\w\.-]+)\s*') +VERSION_IDENTIFIER = re.compile(r'^([\w\.*+-]+)\s*') +COMPARE_OP = re.compile(r'^(<=?|>=?|={2,3}|[~!]=)\s*') +MARKER_OP = re.compile(r'^((<=?)|(>=?)|={2,3}|[~!]=|in|not\s+in)\s*') +OR = re.compile(r'^or\b\s*') +AND = re.compile(r'^and\b\s*') +NON_SPACE = re.compile(r'(\S+)\s*') +STRING_CHUNK = re.compile(r'([\s\w\.{}()*+#:;,/?!~`@$%^&=|<>\[\]-]+)') + + +def parse_marker(marker_string): + """ + Parse a marker string and return a dictionary containing a marker expression. + + The dictionary will contain keys "op", "lhs" and "rhs" for non-terminals in + the expression grammar, or strings. A string contained in quotes is to be + interpreted as a literal string, and a string not contained in quotes is a + variable (such as os_name). + """ + def marker_var(remaining): + # either identifier, or literal string + m = IDENTIFIER.match(remaining) + if m: + result = m.groups()[0] + remaining = remaining[m.end():] + elif not remaining: + raise SyntaxError('unexpected end of input') + else: + q = remaining[0] + if q not in '\'"': + raise SyntaxError('invalid expression: %s' % remaining) + oq = '\'"'.replace(q, '') + remaining = remaining[1:] + parts = [q] + while remaining: + # either a string chunk, or oq, or q to terminate + if remaining[0] == q: + break + elif remaining[0] == oq: + parts.append(oq) + remaining = remaining[1:] + else: + m = STRING_CHUNK.match(remaining) + if not m: + raise SyntaxError('error in string literal: %s' % remaining) + parts.append(m.groups()[0]) + remaining = remaining[m.end():] + else: + s = ''.join(parts) + raise SyntaxError('unterminated string: %s' % s) + parts.append(q) + result = ''.join(parts) + remaining = remaining[1:].lstrip() # skip past closing quote + return result, remaining + + def marker_expr(remaining): + if remaining and remaining[0] == '(': + result, remaining = marker(remaining[1:].lstrip()) + if remaining[0] != ')': + raise SyntaxError('unterminated parenthesis: %s' % remaining) + remaining = remaining[1:].lstrip() + else: + lhs, remaining = marker_var(remaining) + while remaining: + m = MARKER_OP.match(remaining) + if not m: + break + op = m.groups()[0] + remaining = remaining[m.end():] + rhs, remaining = marker_var(remaining) + lhs = {'op': op, 'lhs': lhs, 'rhs': rhs} + result = lhs + return result, remaining + + def marker_and(remaining): + lhs, remaining = marker_expr(remaining) + while remaining: + m = AND.match(remaining) + if not m: + break + remaining = remaining[m.end():] + rhs, remaining = marker_expr(remaining) + lhs = {'op': 'and', 'lhs': lhs, 'rhs': rhs} + return lhs, remaining + + def marker(remaining): + lhs, remaining = marker_and(remaining) + while remaining: + m = OR.match(remaining) + if not m: + break + remaining = remaining[m.end():] + rhs, remaining = marker_and(remaining) + lhs = {'op': 'or', 'lhs': lhs, 'rhs': rhs} + return lhs, remaining + + return marker(marker_string) + + +def parse_requirement(req): + """ + Parse a requirement passed in as a string. Return a Container + whose attributes contain the various parts of the requirement. + """ + remaining = req.strip() + if not remaining or remaining.startswith('#'): + return None + m = IDENTIFIER.match(remaining) + if not m: + raise SyntaxError('name expected: %s' % remaining) + distname = m.groups()[0] + remaining = remaining[m.end():] + extras = mark_expr = versions = uri = None + if remaining and remaining[0] == '[': + i = remaining.find(']', 1) + if i < 0: + raise SyntaxError('unterminated extra: %s' % remaining) + s = remaining[1:i] + remaining = remaining[i + 1:].lstrip() + extras = [] + while s: + m = IDENTIFIER.match(s) + if not m: + raise SyntaxError('malformed extra: %s' % s) + extras.append(m.groups()[0]) + s = s[m.end():] + if not s: + break + if s[0] != ',': + raise SyntaxError('comma expected in extras: %s' % s) + s = s[1:].lstrip() + if not extras: + extras = None + if remaining: + if remaining[0] == '@': + # it's a URI + remaining = remaining[1:].lstrip() + m = NON_SPACE.match(remaining) + if not m: + raise SyntaxError('invalid URI: %s' % remaining) + uri = m.groups()[0] + t = urlparse(uri) + # there are issues with Python and URL parsing, so this test + # is a bit crude. See bpo-20271, bpo-23505. Python doesn't + # always parse invalid URLs correctly - it should raise + # exceptions for malformed URLs + if not (t.scheme and t.netloc): + raise SyntaxError('Invalid URL: %s' % uri) + remaining = remaining[m.end():].lstrip() + else: + + def get_versions(ver_remaining): + """ + Return a list of operator, version tuples if any are + specified, else None. + """ + m = COMPARE_OP.match(ver_remaining) + versions = None + if m: + versions = [] + while True: + op = m.groups()[0] + ver_remaining = ver_remaining[m.end():] + m = VERSION_IDENTIFIER.match(ver_remaining) + if not m: + raise SyntaxError('invalid version: %s' % ver_remaining) + v = m.groups()[0] + versions.append((op, v)) + ver_remaining = ver_remaining[m.end():] + if not ver_remaining or ver_remaining[0] != ',': + break + ver_remaining = ver_remaining[1:].lstrip() + m = COMPARE_OP.match(ver_remaining) + if not m: + raise SyntaxError('invalid constraint: %s' % ver_remaining) + if not versions: + versions = None + return versions, ver_remaining + + if remaining[0] != '(': + versions, remaining = get_versions(remaining) + else: + i = remaining.find(')', 1) + if i < 0: + raise SyntaxError('unterminated parenthesis: %s' % remaining) + s = remaining[1:i] + remaining = remaining[i + 1:].lstrip() + # As a special diversion from PEP 508, allow a version number + # a.b.c in parentheses as a synonym for ~= a.b.c (because this + # is allowed in earlier PEPs) + if COMPARE_OP.match(s): + versions, _ = get_versions(s) + else: + m = VERSION_IDENTIFIER.match(s) + if not m: + raise SyntaxError('invalid constraint: %s' % s) + v = m.groups()[0] + s = s[m.end():].lstrip() + if s: + raise SyntaxError('invalid constraint: %s' % s) + versions = [('~=', v)] + + if remaining: + if remaining[0] != ';': + raise SyntaxError('invalid requirement: %s' % remaining) + remaining = remaining[1:].lstrip() + + mark_expr, remaining = parse_marker(remaining) + + if remaining and remaining[0] != '#': + raise SyntaxError('unexpected trailing data: %s' % remaining) + + if not versions: + rs = distname + else: + rs = '%s %s' % (distname, ', '.join(['%s %s' % con for con in versions])) + return Container(name=distname, extras=extras, constraints=versions, + marker=mark_expr, url=uri, requirement=rs) + + +def get_resources_dests(resources_root, rules): + """Find destinations for resources files""" + + def get_rel_path(root, path): + # normalizes and returns a lstripped-/-separated path + root = root.replace(os.path.sep, '/') + path = path.replace(os.path.sep, '/') + assert path.startswith(root) + return path[len(root):].lstrip('/') + + destinations = {} + for base, suffix, dest in rules: + prefix = os.path.join(resources_root, base) + for abs_base in iglob(prefix): + abs_glob = os.path.join(abs_base, suffix) + for abs_path in iglob(abs_glob): + resource_file = get_rel_path(resources_root, abs_path) + if dest is None: # remove the entry if it was here + destinations.pop(resource_file, None) + else: + rel_path = get_rel_path(abs_base, abs_path) + rel_dest = dest.replace(os.path.sep, '/').rstrip('/') + destinations[resource_file] = rel_dest + '/' + rel_path + return destinations + + +def in_venv(): + if hasattr(sys, 'real_prefix'): + # virtualenv venvs + result = True + else: + # PEP 405 venvs + result = sys.prefix != getattr(sys, 'base_prefix', sys.prefix) + return result + + +def get_executable(): +# The __PYVENV_LAUNCHER__ dance is apparently no longer needed, as +# changes to the stub launcher mean that sys.executable always points +# to the stub on OS X +# if sys.platform == 'darwin' and ('__PYVENV_LAUNCHER__' +# in os.environ): +# result = os.environ['__PYVENV_LAUNCHER__'] +# else: +# result = sys.executable +# return result + result = os.path.normcase(sys.executable) + if not isinstance(result, text_type): + result = fsdecode(result) + return result + + +def proceed(prompt, allowed_chars, error_prompt=None, default=None): + p = prompt + while True: + s = raw_input(p) + p = prompt + if not s and default: + s = default + if s: + c = s[0].lower() + if c in allowed_chars: + break + if error_prompt: + p = '%c: %s\n%s' % (c, error_prompt, prompt) + return c + + +def extract_by_key(d, keys): + if isinstance(keys, string_types): + keys = keys.split() + result = {} + for key in keys: + if key in d: + result[key] = d[key] + return result + +def read_exports(stream): + if sys.version_info[0] >= 3: + # needs to be a text stream + stream = codecs.getreader('utf-8')(stream) + # Try to load as JSON, falling back on legacy format + data = stream.read() + stream = StringIO(data) + try: + jdata = json.load(stream) + result = jdata['extensions']['python.exports']['exports'] + for group, entries in result.items(): + for k, v in entries.items(): + s = '%s = %s' % (k, v) + entry = get_export_entry(s) + assert entry is not None + entries[k] = entry + return result + except Exception: + stream.seek(0, 0) + + def read_stream(cp, stream): + if hasattr(cp, 'read_file'): + cp.read_file(stream) + else: + cp.readfp(stream) + + cp = configparser.ConfigParser() + try: + read_stream(cp, stream) + except configparser.MissingSectionHeaderError: + stream.close() + data = textwrap.dedent(data) + stream = StringIO(data) + read_stream(cp, stream) + + result = {} + for key in cp.sections(): + result[key] = entries = {} + for name, value in cp.items(key): + s = '%s = %s' % (name, value) + entry = get_export_entry(s) + assert entry is not None + #entry.dist = self + entries[name] = entry + return result + + +def write_exports(exports, stream): + if sys.version_info[0] >= 3: + # needs to be a text stream + stream = codecs.getwriter('utf-8')(stream) + cp = configparser.ConfigParser() + for k, v in exports.items(): + # TODO check k, v for valid values + cp.add_section(k) + for entry in v.values(): + if entry.suffix is None: + s = entry.prefix + else: + s = '%s:%s' % (entry.prefix, entry.suffix) + if entry.flags: + s = '%s [%s]' % (s, ', '.join(entry.flags)) + cp.set(k, entry.name, s) + cp.write(stream) + + +@contextlib.contextmanager +def tempdir(): + td = tempfile.mkdtemp() + try: + yield td + finally: + shutil.rmtree(td) + +@contextlib.contextmanager +def chdir(d): + cwd = os.getcwd() + try: + os.chdir(d) + yield + finally: + os.chdir(cwd) + + +@contextlib.contextmanager +def socket_timeout(seconds=15): + cto = socket.getdefaulttimeout() + try: + socket.setdefaulttimeout(seconds) + yield + finally: + socket.setdefaulttimeout(cto) + + +class cached_property(object): + def __init__(self, func): + self.func = func + #for attr in ('__name__', '__module__', '__doc__'): + # setattr(self, attr, getattr(func, attr, None)) + + def __get__(self, obj, cls=None): + if obj is None: + return self + value = self.func(obj) + object.__setattr__(obj, self.func.__name__, value) + #obj.__dict__[self.func.__name__] = value = self.func(obj) + return value + +def convert_path(pathname): + """Return 'pathname' as a name that will work on the native filesystem. + + The path is split on '/' and put back together again using the current + directory separator. Needed because filenames in the setup script are + always supplied in Unix style, and have to be converted to the local + convention before we can actually use them in the filesystem. Raises + ValueError on non-Unix-ish systems if 'pathname' either starts or + ends with a slash. + """ + if os.sep == '/': + return pathname + if not pathname: + return pathname + if pathname[0] == '/': + raise ValueError("path '%s' cannot be absolute" % pathname) + if pathname[-1] == '/': + raise ValueError("path '%s' cannot end with '/'" % pathname) + + paths = pathname.split('/') + while os.curdir in paths: + paths.remove(os.curdir) + if not paths: + return os.curdir + return os.path.join(*paths) + + +class FileOperator(object): + def __init__(self, dry_run=False): + self.dry_run = dry_run + self.ensured = set() + self._init_record() + + def _init_record(self): + self.record = False + self.files_written = set() + self.dirs_created = set() + + def record_as_written(self, path): + if self.record: + self.files_written.add(path) + + def newer(self, source, target): + """Tell if the target is newer than the source. + + Returns true if 'source' exists and is more recently modified than + 'target', or if 'source' exists and 'target' doesn't. + + Returns false if both exist and 'target' is the same age or younger + than 'source'. Raise PackagingFileError if 'source' does not exist. + + Note that this test is not very accurate: files created in the same + second will have the same "age". + """ + if not os.path.exists(source): + raise DistlibException("file '%r' does not exist" % + os.path.abspath(source)) + if not os.path.exists(target): + return True + + return os.stat(source).st_mtime > os.stat(target).st_mtime + + def copy_file(self, infile, outfile, check=True): + """Copy a file respecting dry-run and force flags. + """ + self.ensure_dir(os.path.dirname(outfile)) + logger.info('Copying %s to %s', infile, outfile) + if not self.dry_run: + msg = None + if check: + if os.path.islink(outfile): + msg = '%s is a symlink' % outfile + elif os.path.exists(outfile) and not os.path.isfile(outfile): + msg = '%s is a non-regular file' % outfile + if msg: + raise ValueError(msg + ' which would be overwritten') + shutil.copyfile(infile, outfile) + self.record_as_written(outfile) + + def copy_stream(self, instream, outfile, encoding=None): + assert not os.path.isdir(outfile) + self.ensure_dir(os.path.dirname(outfile)) + logger.info('Copying stream %s to %s', instream, outfile) + if not self.dry_run: + if encoding is None: + outstream = open(outfile, 'wb') + else: + outstream = codecs.open(outfile, 'w', encoding=encoding) + try: + shutil.copyfileobj(instream, outstream) + finally: + outstream.close() + self.record_as_written(outfile) + + def write_binary_file(self, path, data): + self.ensure_dir(os.path.dirname(path)) + if not self.dry_run: + with open(path, 'wb') as f: + f.write(data) + self.record_as_written(path) + + def write_text_file(self, path, data, encoding): + self.ensure_dir(os.path.dirname(path)) + if not self.dry_run: + with open(path, 'wb') as f: + f.write(data.encode(encoding)) + self.record_as_written(path) + + def set_mode(self, bits, mask, files): + if os.name == 'posix' or (os.name == 'java' and os._name == 'posix'): + # Set the executable bits (owner, group, and world) on + # all the files specified. + for f in files: + if self.dry_run: + logger.info("changing mode of %s", f) + else: + mode = (os.stat(f).st_mode | bits) & mask + logger.info("changing mode of %s to %o", f, mode) + os.chmod(f, mode) + + set_executable_mode = lambda s, f: s.set_mode(0o555, 0o7777, f) + + def ensure_dir(self, path): + path = os.path.abspath(path) + if path not in self.ensured and not os.path.exists(path): + self.ensured.add(path) + d, f = os.path.split(path) + self.ensure_dir(d) + logger.info('Creating %s' % path) + if not self.dry_run: + os.mkdir(path) + if self.record: + self.dirs_created.add(path) + + def byte_compile(self, path, optimize=False, force=False, prefix=None): + dpath = cache_from_source(path, not optimize) + logger.info('Byte-compiling %s to %s', path, dpath) + if not self.dry_run: + if force or self.newer(path, dpath): + if not prefix: + diagpath = None + else: + assert path.startswith(prefix) + diagpath = path[len(prefix):] + py_compile.compile(path, dpath, diagpath, True) # raise error + self.record_as_written(dpath) + return dpath + + def ensure_removed(self, path): + if os.path.exists(path): + if os.path.isdir(path) and not os.path.islink(path): + logger.debug('Removing directory tree at %s', path) + if not self.dry_run: + shutil.rmtree(path) + if self.record: + if path in self.dirs_created: + self.dirs_created.remove(path) + else: + if os.path.islink(path): + s = 'link' + else: + s = 'file' + logger.debug('Removing %s %s', s, path) + if not self.dry_run: + os.remove(path) + if self.record: + if path in self.files_written: + self.files_written.remove(path) + + def is_writable(self, path): + result = False + while not result: + if os.path.exists(path): + result = os.access(path, os.W_OK) + break + parent = os.path.dirname(path) + if parent == path: + break + path = parent + return result + + def commit(self): + """ + Commit recorded changes, turn off recording, return + changes. + """ + assert self.record + result = self.files_written, self.dirs_created + self._init_record() + return result + + def rollback(self): + if not self.dry_run: + for f in list(self.files_written): + if os.path.exists(f): + os.remove(f) + # dirs should all be empty now, except perhaps for + # __pycache__ subdirs + # reverse so that subdirs appear before their parents + dirs = sorted(self.dirs_created, reverse=True) + for d in dirs: + flist = os.listdir(d) + if flist: + assert flist == ['__pycache__'] + sd = os.path.join(d, flist[0]) + os.rmdir(sd) + os.rmdir(d) # should fail if non-empty + self._init_record() + +def resolve(module_name, dotted_path): + if module_name in sys.modules: + mod = sys.modules[module_name] + else: + mod = __import__(module_name) + if dotted_path is None: + result = mod + else: + parts = dotted_path.split('.') + result = getattr(mod, parts.pop(0)) + for p in parts: + result = getattr(result, p) + return result + + +class ExportEntry(object): + def __init__(self, name, prefix, suffix, flags): + self.name = name + self.prefix = prefix + self.suffix = suffix + self.flags = flags + + @cached_property + def value(self): + return resolve(self.prefix, self.suffix) + + def __repr__(self): # pragma: no cover + return '<ExportEntry %s = %s:%s %s>' % (self.name, self.prefix, + self.suffix, self.flags) + + def __eq__(self, other): + if not isinstance(other, ExportEntry): + result = False + else: + result = (self.name == other.name and + self.prefix == other.prefix and + self.suffix == other.suffix and + self.flags == other.flags) + return result + + __hash__ = object.__hash__ + + +ENTRY_RE = re.compile(r'''(?P<name>(\w|[-.+])+) + \s*=\s*(?P<callable>(\w+)([:\.]\w+)*) + \s*(\[\s*(?P<flags>\w+(=\w+)?(,\s*\w+(=\w+)?)*)\s*\])? + ''', re.VERBOSE) + +def get_export_entry(specification): + m = ENTRY_RE.search(specification) + if not m: + result = None + if '[' in specification or ']' in specification: + raise DistlibException("Invalid specification " + "'%s'" % specification) + else: + d = m.groupdict() + name = d['name'] + path = d['callable'] + colons = path.count(':') + if colons == 0: + prefix, suffix = path, None + else: + if colons != 1: + raise DistlibException("Invalid specification " + "'%s'" % specification) + prefix, suffix = path.split(':') + flags = d['flags'] + if flags is None: + if '[' in specification or ']' in specification: + raise DistlibException("Invalid specification " + "'%s'" % specification) + flags = [] + else: + flags = [f.strip() for f in flags.split(',')] + result = ExportEntry(name, prefix, suffix, flags) + return result + + +def get_cache_base(suffix=None): + """ + Return the default base location for distlib caches. If the directory does + not exist, it is created. Use the suffix provided for the base directory, + and default to '.distlib' if it isn't provided. + + On Windows, if LOCALAPPDATA is defined in the environment, then it is + assumed to be a directory, and will be the parent directory of the result. + On POSIX, and on Windows if LOCALAPPDATA is not defined, the user's home + directory - using os.expanduser('~') - will be the parent directory of + the result. + + The result is just the directory '.distlib' in the parent directory as + determined above, or with the name specified with ``suffix``. + """ + if suffix is None: + suffix = '.distlib' + if os.name == 'nt' and 'LOCALAPPDATA' in os.environ: + result = os.path.expandvars('$localappdata') + else: + # Assume posix, or old Windows + result = os.path.expanduser('~') + # we use 'isdir' instead of 'exists', because we want to + # fail if there's a file with that name + if os.path.isdir(result): + usable = os.access(result, os.W_OK) + if not usable: + logger.warning('Directory exists but is not writable: %s', result) + else: + try: + os.makedirs(result) + usable = True + except OSError: + logger.warning('Unable to create %s', result, exc_info=True) + usable = False + if not usable: + result = tempfile.mkdtemp() + logger.warning('Default location unusable, using %s', result) + return os.path.join(result, suffix) + + +def path_to_cache_dir(path): + """ + Convert an absolute path to a directory name for use in a cache. + + The algorithm used is: + + #. On Windows, any ``':'`` in the drive is replaced with ``'---'``. + #. Any occurrence of ``os.sep`` is replaced with ``'--'``. + #. ``'.cache'`` is appended. + """ + d, p = os.path.splitdrive(os.path.abspath(path)) + if d: + d = d.replace(':', '---') + p = p.replace(os.sep, '--') + return d + p + '.cache' + + +def ensure_slash(s): + if not s.endswith('/'): + return s + '/' + return s + + +def parse_credentials(netloc): + username = password = None + if '@' in netloc: + prefix, netloc = netloc.split('@', 1) + if ':' not in prefix: + username = prefix + else: + username, password = prefix.split(':', 1) + return username, password, netloc + + +def get_process_umask(): + result = os.umask(0o22) + os.umask(result) + return result + +def is_string_sequence(seq): + result = True + i = None + for i, s in enumerate(seq): + if not isinstance(s, string_types): + result = False + break + assert i is not None + return result + +PROJECT_NAME_AND_VERSION = re.compile('([a-z0-9_]+([.-][a-z_][a-z0-9_]*)*)-' + '([a-z0-9_.+-]+)', re.I) +PYTHON_VERSION = re.compile(r'-py(\d\.?\d?)') + + +def split_filename(filename, project_name=None): + """ + Extract name, version, python version from a filename (no extension) + + Return name, version, pyver or None + """ + result = None + pyver = None + filename = unquote(filename).replace(' ', '-') + m = PYTHON_VERSION.search(filename) + if m: + pyver = m.group(1) + filename = filename[:m.start()] + if project_name and len(filename) > len(project_name) + 1: + m = re.match(re.escape(project_name) + r'\b', filename) + if m: + n = m.end() + result = filename[:n], filename[n + 1:], pyver + if result is None: + m = PROJECT_NAME_AND_VERSION.match(filename) + if m: + result = m.group(1), m.group(3), pyver + return result + +# Allow spaces in name because of legacy dists like "Twisted Core" +NAME_VERSION_RE = re.compile(r'(?P<name>[\w .-]+)\s*' + r'\(\s*(?P<ver>[^\s)]+)\)$') + +def parse_name_and_version(p): + """ + A utility method used to get name and version from a string. + + From e.g. a Provides-Dist value. + + :param p: A value in a form 'foo (1.0)' + :return: The name and version as a tuple. + """ + m = NAME_VERSION_RE.match(p) + if not m: + raise DistlibException('Ill-formed name/version string: \'%s\'' % p) + d = m.groupdict() + return d['name'].strip().lower(), d['ver'] + +def get_extras(requested, available): + result = set() + requested = set(requested or []) + available = set(available or []) + if '*' in requested: + requested.remove('*') + result |= available + for r in requested: + if r == '-': + result.add(r) + elif r.startswith('-'): + unwanted = r[1:] + if unwanted not in available: + logger.warning('undeclared extra: %s' % unwanted) + if unwanted in result: + result.remove(unwanted) + else: + if r not in available: + logger.warning('undeclared extra: %s' % r) + result.add(r) + return result +# +# Extended metadata functionality +# + +def _get_external_data(url): + result = {} + try: + # urlopen might fail if it runs into redirections, + # because of Python issue #13696. Fixed in locators + # using a custom redirect handler. + resp = urlopen(url) + headers = resp.info() + ct = headers.get('Content-Type') + if not ct.startswith('application/json'): + logger.debug('Unexpected response for JSON request: %s', ct) + else: + reader = codecs.getreader('utf-8')(resp) + #data = reader.read().decode('utf-8') + #result = json.loads(data) + result = json.load(reader) + except Exception as e: + logger.exception('Failed to get external data for %s: %s', url, e) + return result + +_external_data_base_url = 'https://www.red-dove.com/pypi/projects/' + +def get_project_data(name): + url = '%s/%s/project.json' % (name[0].upper(), name) + url = urljoin(_external_data_base_url, url) + result = _get_external_data(url) + return result + +def get_package_data(name, version): + url = '%s/%s/package-%s.json' % (name[0].upper(), name, version) + url = urljoin(_external_data_base_url, url) + return _get_external_data(url) + + +class Cache(object): + """ + A class implementing a cache for resources that need to live in the file system + e.g. shared libraries. This class was moved from resources to here because it + could be used by other modules, e.g. the wheel module. + """ + + def __init__(self, base): + """ + Initialise an instance. + + :param base: The base directory where the cache should be located. + """ + # we use 'isdir' instead of 'exists', because we want to + # fail if there's a file with that name + if not os.path.isdir(base): # pragma: no cover + os.makedirs(base) + if (os.stat(base).st_mode & 0o77) != 0: + logger.warning('Directory \'%s\' is not private', base) + self.base = os.path.abspath(os.path.normpath(base)) + + def prefix_to_dir(self, prefix): + """ + Converts a resource prefix to a directory name in the cache. + """ + return path_to_cache_dir(prefix) + + def clear(self): + """ + Clear the cache. + """ + not_removed = [] + for fn in os.listdir(self.base): + fn = os.path.join(self.base, fn) + try: + if os.path.islink(fn) or os.path.isfile(fn): + os.remove(fn) + elif os.path.isdir(fn): + shutil.rmtree(fn) + except Exception: + not_removed.append(fn) + return not_removed + + +class EventMixin(object): + """ + A very simple publish/subscribe system. + """ + def __init__(self): + self._subscribers = {} + + def add(self, event, subscriber, append=True): + """ + Add a subscriber for an event. + + :param event: The name of an event. + :param subscriber: The subscriber to be added (and called when the + event is published). + :param append: Whether to append or prepend the subscriber to an + existing subscriber list for the event. + """ + subs = self._subscribers + if event not in subs: + subs[event] = deque([subscriber]) + else: + sq = subs[event] + if append: + sq.append(subscriber) + else: + sq.appendleft(subscriber) + + def remove(self, event, subscriber): + """ + Remove a subscriber for an event. + + :param event: The name of an event. + :param subscriber: The subscriber to be removed. + """ + subs = self._subscribers + if event not in subs: + raise ValueError('No subscribers: %r' % event) + subs[event].remove(subscriber) + + def get_subscribers(self, event): + """ + Return an iterator for the subscribers for an event. + :param event: The event to return subscribers for. + """ + return iter(self._subscribers.get(event, ())) + + def publish(self, event, *args, **kwargs): + """ + Publish a event and return a list of values returned by its + subscribers. + + :param event: The event to publish. + :param args: The positional arguments to pass to the event's + subscribers. + :param kwargs: The keyword arguments to pass to the event's + subscribers. + """ + result = [] + for subscriber in self.get_subscribers(event): + try: + value = subscriber(event, *args, **kwargs) + except Exception: + logger.exception('Exception during event publication') + value = None + result.append(value) + logger.debug('publish %s: args = %s, kwargs = %s, result = %s', + event, args, kwargs, result) + return result + +# +# Simple sequencing +# +class Sequencer(object): + def __init__(self): + self._preds = {} + self._succs = {} + self._nodes = set() # nodes with no preds/succs + + def add_node(self, node): + self._nodes.add(node) + + def remove_node(self, node, edges=False): + if node in self._nodes: + self._nodes.remove(node) + if edges: + for p in set(self._preds.get(node, ())): + self.remove(p, node) + for s in set(self._succs.get(node, ())): + self.remove(node, s) + # Remove empties + for k, v in list(self._preds.items()): + if not v: + del self._preds[k] + for k, v in list(self._succs.items()): + if not v: + del self._succs[k] + + def add(self, pred, succ): + assert pred != succ + self._preds.setdefault(succ, set()).add(pred) + self._succs.setdefault(pred, set()).add(succ) + + def remove(self, pred, succ): + assert pred != succ + try: + preds = self._preds[succ] + succs = self._succs[pred] + except KeyError: # pragma: no cover + raise ValueError('%r not a successor of anything' % succ) + try: + preds.remove(pred) + succs.remove(succ) + except KeyError: # pragma: no cover + raise ValueError('%r not a successor of %r' % (succ, pred)) + + def is_step(self, step): + return (step in self._preds or step in self._succs or + step in self._nodes) + + def get_steps(self, final): + if not self.is_step(final): + raise ValueError('Unknown: %r' % final) + result = [] + todo = [] + seen = set() + todo.append(final) + while todo: + step = todo.pop(0) + if step in seen: + # if a step was already seen, + # move it to the end (so it will appear earlier + # when reversed on return) ... but not for the + # final step, as that would be confusing for + # users + if step != final: + result.remove(step) + result.append(step) + else: + seen.add(step) + result.append(step) + preds = self._preds.get(step, ()) + todo.extend(preds) + return reversed(result) + + @property + def strong_connections(self): + #http://en.wikipedia.org/wiki/Tarjan%27s_strongly_connected_components_algorithm + index_counter = [0] + stack = [] + lowlinks = {} + index = {} + result = [] + + graph = self._succs + + def strongconnect(node): + # set the depth index for this node to the smallest unused index + index[node] = index_counter[0] + lowlinks[node] = index_counter[0] + index_counter[0] += 1 + stack.append(node) + + # Consider successors + try: + successors = graph[node] + except Exception: + successors = [] + for successor in successors: + if successor not in lowlinks: + # Successor has not yet been visited + strongconnect(successor) + lowlinks[node] = min(lowlinks[node],lowlinks[successor]) + elif successor in stack: + # the successor is in the stack and hence in the current + # strongly connected component (SCC) + lowlinks[node] = min(lowlinks[node],index[successor]) + + # If `node` is a root node, pop the stack and generate an SCC + if lowlinks[node] == index[node]: + connected_component = [] + + while True: + successor = stack.pop() + connected_component.append(successor) + if successor == node: break + component = tuple(connected_component) + # storing the result + result.append(component) + + for node in graph: + if node not in lowlinks: + strongconnect(node) + + return result + + @property + def dot(self): + result = ['digraph G {'] + for succ in self._preds: + preds = self._preds[succ] + for pred in preds: + result.append(' %s -> %s;' % (pred, succ)) + for node in self._nodes: + result.append(' %s;' % node) + result.append('}') + return '\n'.join(result) + +# +# Unarchiving functionality for zip, tar, tgz, tbz, whl +# + +ARCHIVE_EXTENSIONS = ('.tar.gz', '.tar.bz2', '.tar', '.zip', + '.tgz', '.tbz', '.whl') + +def unarchive(archive_filename, dest_dir, format=None, check=True): + + def check_path(path): + if not isinstance(path, text_type): + path = path.decode('utf-8') + p = os.path.abspath(os.path.join(dest_dir, path)) + if not p.startswith(dest_dir) or p[plen] != os.sep: + raise ValueError('path outside destination: %r' % p) + + dest_dir = os.path.abspath(dest_dir) + plen = len(dest_dir) + archive = None + if format is None: + if archive_filename.endswith(('.zip', '.whl')): + format = 'zip' + elif archive_filename.endswith(('.tar.gz', '.tgz')): + format = 'tgz' + mode = 'r:gz' + elif archive_filename.endswith(('.tar.bz2', '.tbz')): + format = 'tbz' + mode = 'r:bz2' + elif archive_filename.endswith('.tar'): + format = 'tar' + mode = 'r' + else: # pragma: no cover + raise ValueError('Unknown format for %r' % archive_filename) + try: + if format == 'zip': + archive = ZipFile(archive_filename, 'r') + if check: + names = archive.namelist() + for name in names: + check_path(name) + else: + archive = tarfile.open(archive_filename, mode) + if check: + names = archive.getnames() + for name in names: + check_path(name) + if format != 'zip' and sys.version_info[0] < 3: + # See Python issue 17153. If the dest path contains Unicode, + # tarfile extraction fails on Python 2.x if a member path name + # contains non-ASCII characters - it leads to an implicit + # bytes -> unicode conversion using ASCII to decode. + for tarinfo in archive.getmembers(): + if not isinstance(tarinfo.name, text_type): + tarinfo.name = tarinfo.name.decode('utf-8') + archive.extractall(dest_dir) + + finally: + if archive: + archive.close() + + +def zip_dir(directory): + """zip a directory tree into a BytesIO object""" + result = io.BytesIO() + dlen = len(directory) + with ZipFile(result, "w") as zf: + for root, dirs, files in os.walk(directory): + for name in files: + full = os.path.join(root, name) + rel = root[dlen:] + dest = os.path.join(rel, name) + zf.write(full, dest) + return result + +# +# Simple progress bar +# + +UNITS = ('', 'K', 'M', 'G','T','P') + + +class Progress(object): + unknown = 'UNKNOWN' + + def __init__(self, minval=0, maxval=100): + assert maxval is None or maxval >= minval + self.min = self.cur = minval + self.max = maxval + self.started = None + self.elapsed = 0 + self.done = False + + def update(self, curval): + assert self.min <= curval + assert self.max is None or curval <= self.max + self.cur = curval + now = time.time() + if self.started is None: + self.started = now + else: + self.elapsed = now - self.started + + def increment(self, incr): + assert incr >= 0 + self.update(self.cur + incr) + + def start(self): + self.update(self.min) + return self + + def stop(self): + if self.max is not None: + self.update(self.max) + self.done = True + + @property + def maximum(self): + return self.unknown if self.max is None else self.max + + @property + def percentage(self): + if self.done: + result = '100 %' + elif self.max is None: + result = ' ?? %' + else: + v = 100.0 * (self.cur - self.min) / (self.max - self.min) + result = '%3d %%' % v + return result + + def format_duration(self, duration): + if (duration <= 0) and self.max is None or self.cur == self.min: + result = '??:??:??' + #elif duration < 1: + # result = '--:--:--' + else: + result = time.strftime('%H:%M:%S', time.gmtime(duration)) + return result + + @property + def ETA(self): + if self.done: + prefix = 'Done' + t = self.elapsed + #import pdb; pdb.set_trace() + else: + prefix = 'ETA ' + if self.max is None: + t = -1 + elif self.elapsed == 0 or (self.cur == self.min): + t = 0 + else: + #import pdb; pdb.set_trace() + t = float(self.max - self.min) + t /= self.cur - self.min + t = (t - 1) * self.elapsed + return '%s: %s' % (prefix, self.format_duration(t)) + + @property + def speed(self): + if self.elapsed == 0: + result = 0.0 + else: + result = (self.cur - self.min) / self.elapsed + for unit in UNITS: + if result < 1000: + break + result /= 1000.0 + return '%d %sB/s' % (result, unit) + +# +# Glob functionality +# + +RICH_GLOB = re.compile(r'\{([^}]*)\}') +_CHECK_RECURSIVE_GLOB = re.compile(r'[^/\\,{]\*\*|\*\*[^/\\,}]') +_CHECK_MISMATCH_SET = re.compile(r'^[^{]*\}|\{[^}]*$') + + +def iglob(path_glob): + """Extended globbing function that supports ** and {opt1,opt2,opt3}.""" + if _CHECK_RECURSIVE_GLOB.search(path_glob): + msg = """invalid glob %r: recursive glob "**" must be used alone""" + raise ValueError(msg % path_glob) + if _CHECK_MISMATCH_SET.search(path_glob): + msg = """invalid glob %r: mismatching set marker '{' or '}'""" + raise ValueError(msg % path_glob) + return _iglob(path_glob) + + +def _iglob(path_glob): + rich_path_glob = RICH_GLOB.split(path_glob, 1) + if len(rich_path_glob) > 1: + assert len(rich_path_glob) == 3, rich_path_glob + prefix, set, suffix = rich_path_glob + for item in set.split(','): + for path in _iglob(''.join((prefix, item, suffix))): + yield path + else: + if '**' not in path_glob: + for item in std_iglob(path_glob): + yield item + else: + prefix, radical = path_glob.split('**', 1) + if prefix == '': + prefix = '.' + if radical == '': + radical = '*' + else: + # we support both + radical = radical.lstrip('/') + radical = radical.lstrip('\\') + for path, dir, files in os.walk(prefix): + path = os.path.normpath(path) + for fn in _iglob(os.path.join(path, radical)): + yield fn + +if ssl: + from .compat import (HTTPSHandler as BaseHTTPSHandler, match_hostname, + CertificateError) + + +# +# HTTPSConnection which verifies certificates/matches domains +# + + class HTTPSConnection(httplib.HTTPSConnection): + ca_certs = None # set this to the path to the certs file (.pem) + check_domain = True # only used if ca_certs is not None + + # noinspection PyPropertyAccess + def connect(self): + sock = socket.create_connection((self.host, self.port), self.timeout) + if getattr(self, '_tunnel_host', False): + self.sock = sock + self._tunnel() + + if not hasattr(ssl, 'SSLContext'): + # For 2.x + if self.ca_certs: + cert_reqs = ssl.CERT_REQUIRED + else: + cert_reqs = ssl.CERT_NONE + self.sock = ssl.wrap_socket(sock, self.key_file, self.cert_file, + cert_reqs=cert_reqs, + ssl_version=ssl.PROTOCOL_SSLv23, + ca_certs=self.ca_certs) + else: # pragma: no cover + context = ssl.SSLContext(ssl.PROTOCOL_SSLv23) + context.options |= ssl.OP_NO_SSLv2 + if self.cert_file: + context.load_cert_chain(self.cert_file, self.key_file) + kwargs = {} + if self.ca_certs: + context.verify_mode = ssl.CERT_REQUIRED + context.load_verify_locations(cafile=self.ca_certs) + if getattr(ssl, 'HAS_SNI', False): + kwargs['server_hostname'] = self.host + self.sock = context.wrap_socket(sock, **kwargs) + if self.ca_certs and self.check_domain: + try: + match_hostname(self.sock.getpeercert(), self.host) + logger.debug('Host verified: %s', self.host) + except CertificateError: # pragma: no cover + self.sock.shutdown(socket.SHUT_RDWR) + self.sock.close() + raise + + class HTTPSHandler(BaseHTTPSHandler): + def __init__(self, ca_certs, check_domain=True): + BaseHTTPSHandler.__init__(self) + self.ca_certs = ca_certs + self.check_domain = check_domain + + def _conn_maker(self, *args, **kwargs): + """ + This is called to create a connection instance. Normally you'd + pass a connection class to do_open, but it doesn't actually check for + a class, and just expects a callable. As long as we behave just as a + constructor would have, we should be OK. If it ever changes so that + we *must* pass a class, we'll create an UnsafeHTTPSConnection class + which just sets check_domain to False in the class definition, and + choose which one to pass to do_open. + """ + result = HTTPSConnection(*args, **kwargs) + if self.ca_certs: + result.ca_certs = self.ca_certs + result.check_domain = self.check_domain + return result + + def https_open(self, req): + try: + return self.do_open(self._conn_maker, req) + except URLError as e: + if 'certificate verify failed' in str(e.reason): + raise CertificateError('Unable to verify server certificate ' + 'for %s' % req.host) + else: + raise + + # + # To prevent against mixing HTTP traffic with HTTPS (examples: A Man-In-The- + # Middle proxy using HTTP listens on port 443, or an index mistakenly serves + # HTML containing a http://xyz link when it should be https://xyz), + # you can use the following handler class, which does not allow HTTP traffic. + # + # It works by inheriting from HTTPHandler - so build_opener won't add a + # handler for HTTP itself. + # + class HTTPSOnlyHandler(HTTPSHandler, HTTPHandler): + def http_open(self, req): + raise URLError('Unexpected HTTP request on what should be a secure ' + 'connection: %s' % req) + +# +# XML-RPC with timeouts +# + +_ver_info = sys.version_info[:2] + +if _ver_info == (2, 6): + class HTTP(httplib.HTTP): + def __init__(self, host='', port=None, **kwargs): + if port == 0: # 0 means use port 0, not the default port + port = None + self._setup(self._connection_class(host, port, **kwargs)) + + + if ssl: + class HTTPS(httplib.HTTPS): + def __init__(self, host='', port=None, **kwargs): + if port == 0: # 0 means use port 0, not the default port + port = None + self._setup(self._connection_class(host, port, **kwargs)) + + +class Transport(xmlrpclib.Transport): + def __init__(self, timeout, use_datetime=0): + self.timeout = timeout + xmlrpclib.Transport.__init__(self, use_datetime) + + def make_connection(self, host): + h, eh, x509 = self.get_host_info(host) + if _ver_info == (2, 6): + result = HTTP(h, timeout=self.timeout) + else: + if not self._connection or host != self._connection[0]: + self._extra_headers = eh + self._connection = host, httplib.HTTPConnection(h) + result = self._connection[1] + return result + +if ssl: + class SafeTransport(xmlrpclib.SafeTransport): + def __init__(self, timeout, use_datetime=0): + self.timeout = timeout + xmlrpclib.SafeTransport.__init__(self, use_datetime) + + def make_connection(self, host): + h, eh, kwargs = self.get_host_info(host) + if not kwargs: + kwargs = {} + kwargs['timeout'] = self.timeout + if _ver_info == (2, 6): + result = HTTPS(host, None, **kwargs) + else: + if not self._connection or host != self._connection[0]: + self._extra_headers = eh + self._connection = host, httplib.HTTPSConnection(h, None, + **kwargs) + result = self._connection[1] + return result + + +class ServerProxy(xmlrpclib.ServerProxy): + def __init__(self, uri, **kwargs): + self.timeout = timeout = kwargs.pop('timeout', None) + # The above classes only come into play if a timeout + # is specified + if timeout is not None: + scheme, _ = splittype(uri) + use_datetime = kwargs.get('use_datetime', 0) + if scheme == 'https': + tcls = SafeTransport + else: + tcls = Transport + kwargs['transport'] = t = tcls(timeout, use_datetime=use_datetime) + self.transport = t + xmlrpclib.ServerProxy.__init__(self, uri, **kwargs) + +# +# CSV functionality. This is provided because on 2.x, the csv module can't +# handle Unicode. However, we need to deal with Unicode in e.g. RECORD files. +# + +def _csv_open(fn, mode, **kwargs): + if sys.version_info[0] < 3: + mode += 'b' + else: + kwargs['newline'] = '' + # Python 3 determines encoding from locale. Force 'utf-8' + # file encoding to match other forced utf-8 encoding + kwargs['encoding'] = 'utf-8' + return open(fn, mode, **kwargs) + + +class CSVBase(object): + defaults = { + 'delimiter': str(','), # The strs are used because we need native + 'quotechar': str('"'), # str in the csv API (2.x won't take + 'lineterminator': str('\n') # Unicode) + } + + def __enter__(self): + return self + + def __exit__(self, *exc_info): + self.stream.close() + + +class CSVReader(CSVBase): + def __init__(self, **kwargs): + if 'stream' in kwargs: + stream = kwargs['stream'] + if sys.version_info[0] >= 3: + # needs to be a text stream + stream = codecs.getreader('utf-8')(stream) + self.stream = stream + else: + self.stream = _csv_open(kwargs['path'], 'r') + self.reader = csv.reader(self.stream, **self.defaults) + + def __iter__(self): + return self + + def next(self): + result = next(self.reader) + if sys.version_info[0] < 3: + for i, item in enumerate(result): + if not isinstance(item, text_type): + result[i] = item.decode('utf-8') + return result + + __next__ = next + +class CSVWriter(CSVBase): + def __init__(self, fn, **kwargs): + self.stream = _csv_open(fn, 'w') + self.writer = csv.writer(self.stream, **self.defaults) + + def writerow(self, row): + if sys.version_info[0] < 3: + r = [] + for item in row: + if isinstance(item, text_type): + item = item.encode('utf-8') + r.append(item) + row = r + self.writer.writerow(row) + +# +# Configurator functionality +# + +class Configurator(BaseConfigurator): + + value_converters = dict(BaseConfigurator.value_converters) + value_converters['inc'] = 'inc_convert' + + def __init__(self, config, base=None): + super(Configurator, self).__init__(config) + self.base = base or os.getcwd() + + def configure_custom(self, config): + def convert(o): + if isinstance(o, (list, tuple)): + result = type(o)([convert(i) for i in o]) + elif isinstance(o, dict): + if '()' in o: + result = self.configure_custom(o) + else: + result = {} + for k in o: + result[k] = convert(o[k]) + else: + result = self.convert(o) + return result + + c = config.pop('()') + if not callable(c): + c = self.resolve(c) + props = config.pop('.', None) + # Check for valid identifiers + args = config.pop('[]', ()) + if args: + args = tuple([convert(o) for o in args]) + items = [(k, convert(config[k])) for k in config if valid_ident(k)] + kwargs = dict(items) + result = c(*args, **kwargs) + if props: + for n, v in props.items(): + setattr(result, n, convert(v)) + return result + + def __getitem__(self, key): + result = self.config[key] + if isinstance(result, dict) and '()' in result: + self.config[key] = result = self.configure_custom(result) + return result + + def inc_convert(self, value): + """Default converter for the inc:// protocol.""" + if not os.path.isabs(value): + value = os.path.join(self.base, value) + with codecs.open(value, 'r', encoding='utf-8') as f: + result = json.load(f) + return result + + +class SubprocessMixin(object): + """ + Mixin for running subprocesses and capturing their output + """ + def __init__(self, verbose=False, progress=None): + self.verbose = verbose + self.progress = progress + + def reader(self, stream, context): + """ + Read lines from a subprocess' output stream and either pass to a progress + callable (if specified) or write progress information to sys.stderr. + """ + progress = self.progress + verbose = self.verbose + while True: + s = stream.readline() + if not s: + break + if progress is not None: + progress(s, context) + else: + if not verbose: + sys.stderr.write('.') + else: + sys.stderr.write(s.decode('utf-8')) + sys.stderr.flush() + stream.close() + + def run_command(self, cmd, **kwargs): + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, + stderr=subprocess.PIPE, **kwargs) + t1 = threading.Thread(target=self.reader, args=(p.stdout, 'stdout')) + t1.start() + t2 = threading.Thread(target=self.reader, args=(p.stderr, 'stderr')) + t2.start() + p.wait() + t1.join() + t2.join() + if self.progress is not None: + self.progress('done.', 'main') + elif self.verbose: + sys.stderr.write('done.\n') + return p + + +def normalize_name(name): + """Normalize a python package name a la PEP 503""" + # https://www.python.org/dev/peps/pep-0503/#normalized-names + return re.sub('[-_.]+', '-', name).lower() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/version.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/version.py new file mode 100644 index 00000000..3eebe18e --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/version.py @@ -0,0 +1,736 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2012-2017 The Python Software Foundation. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +""" +Implementation of a flexible versioning scheme providing support for PEP-440, +setuptools-compatible and semantic versioning. +""" + +import logging +import re + +from .compat import string_types +from .util import parse_requirement + +__all__ = ['NormalizedVersion', 'NormalizedMatcher', + 'LegacyVersion', 'LegacyMatcher', + 'SemanticVersion', 'SemanticMatcher', + 'UnsupportedVersionError', 'get_scheme'] + +logger = logging.getLogger(__name__) + + +class UnsupportedVersionError(ValueError): + """This is an unsupported version.""" + pass + + +class Version(object): + def __init__(self, s): + self._string = s = s.strip() + self._parts = parts = self.parse(s) + assert isinstance(parts, tuple) + assert len(parts) > 0 + + def parse(self, s): + raise NotImplementedError('please implement in a subclass') + + def _check_compatible(self, other): + if type(self) != type(other): + raise TypeError('cannot compare %r and %r' % (self, other)) + + def __eq__(self, other): + self._check_compatible(other) + return self._parts == other._parts + + def __ne__(self, other): + return not self.__eq__(other) + + def __lt__(self, other): + self._check_compatible(other) + return self._parts < other._parts + + def __gt__(self, other): + return not (self.__lt__(other) or self.__eq__(other)) + + def __le__(self, other): + return self.__lt__(other) or self.__eq__(other) + + def __ge__(self, other): + return self.__gt__(other) or self.__eq__(other) + + # See http://docs.python.org/reference/datamodel#object.__hash__ + def __hash__(self): + return hash(self._parts) + + def __repr__(self): + return "%s('%s')" % (self.__class__.__name__, self._string) + + def __str__(self): + return self._string + + @property + def is_prerelease(self): + raise NotImplementedError('Please implement in subclasses.') + + +class Matcher(object): + version_class = None + + # value is either a callable or the name of a method + _operators = { + '<': lambda v, c, p: v < c, + '>': lambda v, c, p: v > c, + '<=': lambda v, c, p: v == c or v < c, + '>=': lambda v, c, p: v == c or v > c, + '==': lambda v, c, p: v == c, + '===': lambda v, c, p: v == c, + # by default, compatible => >=. + '~=': lambda v, c, p: v == c or v > c, + '!=': lambda v, c, p: v != c, + } + + # this is a method only to support alternative implementations + # via overriding + def parse_requirement(self, s): + return parse_requirement(s) + + def __init__(self, s): + if self.version_class is None: + raise ValueError('Please specify a version class') + self._string = s = s.strip() + r = self.parse_requirement(s) + if not r: + raise ValueError('Not valid: %r' % s) + self.name = r.name + self.key = self.name.lower() # for case-insensitive comparisons + clist = [] + if r.constraints: + # import pdb; pdb.set_trace() + for op, s in r.constraints: + if s.endswith('.*'): + if op not in ('==', '!='): + raise ValueError('\'.*\' not allowed for ' + '%r constraints' % op) + # Could be a partial version (e.g. for '2.*') which + # won't parse as a version, so keep it as a string + vn, prefix = s[:-2], True + # Just to check that vn is a valid version + self.version_class(vn) + else: + # Should parse as a version, so we can create an + # instance for the comparison + vn, prefix = self.version_class(s), False + clist.append((op, vn, prefix)) + self._parts = tuple(clist) + + def match(self, version): + """ + Check if the provided version matches the constraints. + + :param version: The version to match against this instance. + :type version: String or :class:`Version` instance. + """ + if isinstance(version, string_types): + version = self.version_class(version) + for operator, constraint, prefix in self._parts: + f = self._operators.get(operator) + if isinstance(f, string_types): + f = getattr(self, f) + if not f: + msg = ('%r not implemented ' + 'for %s' % (operator, self.__class__.__name__)) + raise NotImplementedError(msg) + if not f(version, constraint, prefix): + return False + return True + + @property + def exact_version(self): + result = None + if len(self._parts) == 1 and self._parts[0][0] in ('==', '==='): + result = self._parts[0][1] + return result + + def _check_compatible(self, other): + if type(self) != type(other) or self.name != other.name: + raise TypeError('cannot compare %s and %s' % (self, other)) + + def __eq__(self, other): + self._check_compatible(other) + return self.key == other.key and self._parts == other._parts + + def __ne__(self, other): + return not self.__eq__(other) + + # See http://docs.python.org/reference/datamodel#object.__hash__ + def __hash__(self): + return hash(self.key) + hash(self._parts) + + def __repr__(self): + return "%s(%r)" % (self.__class__.__name__, self._string) + + def __str__(self): + return self._string + + +PEP440_VERSION_RE = re.compile(r'^v?(\d+!)?(\d+(\.\d+)*)((a|b|c|rc)(\d+))?' + r'(\.(post)(\d+))?(\.(dev)(\d+))?' + r'(\+([a-zA-Z\d]+(\.[a-zA-Z\d]+)?))?$') + + +def _pep_440_key(s): + s = s.strip() + m = PEP440_VERSION_RE.match(s) + if not m: + raise UnsupportedVersionError('Not a valid version: %s' % s) + groups = m.groups() + nums = tuple(int(v) for v in groups[1].split('.')) + while len(nums) > 1 and nums[-1] == 0: + nums = nums[:-1] + + if not groups[0]: + epoch = 0 + else: + epoch = int(groups[0]) + pre = groups[4:6] + post = groups[7:9] + dev = groups[10:12] + local = groups[13] + if pre == (None, None): + pre = () + else: + pre = pre[0], int(pre[1]) + if post == (None, None): + post = () + else: + post = post[0], int(post[1]) + if dev == (None, None): + dev = () + else: + dev = dev[0], int(dev[1]) + if local is None: + local = () + else: + parts = [] + for part in local.split('.'): + # to ensure that numeric compares as > lexicographic, avoid + # comparing them directly, but encode a tuple which ensures + # correct sorting + if part.isdigit(): + part = (1, int(part)) + else: + part = (0, part) + parts.append(part) + local = tuple(parts) + if not pre: + # either before pre-release, or final release and after + if not post and dev: + # before pre-release + pre = ('a', -1) # to sort before a0 + else: + pre = ('z',) # to sort after all pre-releases + # now look at the state of post and dev. + if not post: + post = ('_',) # sort before 'a' + if not dev: + dev = ('final',) + + #print('%s -> %s' % (s, m.groups())) + return epoch, nums, pre, post, dev, local + + +_normalized_key = _pep_440_key + + +class NormalizedVersion(Version): + """A rational version. + + Good: + 1.2 # equivalent to "1.2.0" + 1.2.0 + 1.2a1 + 1.2.3a2 + 1.2.3b1 + 1.2.3c1 + 1.2.3.4 + TODO: fill this out + + Bad: + 1 # minimum two numbers + 1.2a # release level must have a release serial + 1.2.3b + """ + def parse(self, s): + result = _normalized_key(s) + # _normalized_key loses trailing zeroes in the release + # clause, since that's needed to ensure that X.Y == X.Y.0 == X.Y.0.0 + # However, PEP 440 prefix matching needs it: for example, + # (~= 1.4.5.0) matches differently to (~= 1.4.5.0.0). + m = PEP440_VERSION_RE.match(s) # must succeed + groups = m.groups() + self._release_clause = tuple(int(v) for v in groups[1].split('.')) + return result + + PREREL_TAGS = set(['a', 'b', 'c', 'rc', 'dev']) + + @property + def is_prerelease(self): + return any(t[0] in self.PREREL_TAGS for t in self._parts if t) + + +def _match_prefix(x, y): + x = str(x) + y = str(y) + if x == y: + return True + if not x.startswith(y): + return False + n = len(y) + return x[n] == '.' + + +class NormalizedMatcher(Matcher): + version_class = NormalizedVersion + + # value is either a callable or the name of a method + _operators = { + '~=': '_match_compatible', + '<': '_match_lt', + '>': '_match_gt', + '<=': '_match_le', + '>=': '_match_ge', + '==': '_match_eq', + '===': '_match_arbitrary', + '!=': '_match_ne', + } + + def _adjust_local(self, version, constraint, prefix): + if prefix: + strip_local = '+' not in constraint and version._parts[-1] + else: + # both constraint and version are + # NormalizedVersion instances. + # If constraint does not have a local component, + # ensure the version doesn't, either. + strip_local = not constraint._parts[-1] and version._parts[-1] + if strip_local: + s = version._string.split('+', 1)[0] + version = self.version_class(s) + return version, constraint + + def _match_lt(self, version, constraint, prefix): + version, constraint = self._adjust_local(version, constraint, prefix) + if version >= constraint: + return False + release_clause = constraint._release_clause + pfx = '.'.join([str(i) for i in release_clause]) + return not _match_prefix(version, pfx) + + def _match_gt(self, version, constraint, prefix): + version, constraint = self._adjust_local(version, constraint, prefix) + if version <= constraint: + return False + release_clause = constraint._release_clause + pfx = '.'.join([str(i) for i in release_clause]) + return not _match_prefix(version, pfx) + + def _match_le(self, version, constraint, prefix): + version, constraint = self._adjust_local(version, constraint, prefix) + return version <= constraint + + def _match_ge(self, version, constraint, prefix): + version, constraint = self._adjust_local(version, constraint, prefix) + return version >= constraint + + def _match_eq(self, version, constraint, prefix): + version, constraint = self._adjust_local(version, constraint, prefix) + if not prefix: + result = (version == constraint) + else: + result = _match_prefix(version, constraint) + return result + + def _match_arbitrary(self, version, constraint, prefix): + return str(version) == str(constraint) + + def _match_ne(self, version, constraint, prefix): + version, constraint = self._adjust_local(version, constraint, prefix) + if not prefix: + result = (version != constraint) + else: + result = not _match_prefix(version, constraint) + return result + + def _match_compatible(self, version, constraint, prefix): + version, constraint = self._adjust_local(version, constraint, prefix) + if version == constraint: + return True + if version < constraint: + return False +# if not prefix: +# return True + release_clause = constraint._release_clause + if len(release_clause) > 1: + release_clause = release_clause[:-1] + pfx = '.'.join([str(i) for i in release_clause]) + return _match_prefix(version, pfx) + +_REPLACEMENTS = ( + (re.compile('[.+-]$'), ''), # remove trailing puncts + (re.compile(r'^[.](\d)'), r'0.\1'), # .N -> 0.N at start + (re.compile('^[.-]'), ''), # remove leading puncts + (re.compile(r'^\((.*)\)$'), r'\1'), # remove parentheses + (re.compile(r'^v(ersion)?\s*(\d+)'), r'\2'), # remove leading v(ersion) + (re.compile(r'^r(ev)?\s*(\d+)'), r'\2'), # remove leading v(ersion) + (re.compile('[.]{2,}'), '.'), # multiple runs of '.' + (re.compile(r'\b(alfa|apha)\b'), 'alpha'), # misspelt alpha + (re.compile(r'\b(pre-alpha|prealpha)\b'), + 'pre.alpha'), # standardise + (re.compile(r'\(beta\)$'), 'beta'), # remove parentheses +) + +_SUFFIX_REPLACEMENTS = ( + (re.compile('^[:~._+-]+'), ''), # remove leading puncts + (re.compile('[,*")([\\]]'), ''), # remove unwanted chars + (re.compile('[~:+_ -]'), '.'), # replace illegal chars + (re.compile('[.]{2,}'), '.'), # multiple runs of '.' + (re.compile(r'\.$'), ''), # trailing '.' +) + +_NUMERIC_PREFIX = re.compile(r'(\d+(\.\d+)*)') + + +def _suggest_semantic_version(s): + """ + Try to suggest a semantic form for a version for which + _suggest_normalized_version couldn't come up with anything. + """ + result = s.strip().lower() + for pat, repl in _REPLACEMENTS: + result = pat.sub(repl, result) + if not result: + result = '0.0.0' + + # Now look for numeric prefix, and separate it out from + # the rest. + #import pdb; pdb.set_trace() + m = _NUMERIC_PREFIX.match(result) + if not m: + prefix = '0.0.0' + suffix = result + else: + prefix = m.groups()[0].split('.') + prefix = [int(i) for i in prefix] + while len(prefix) < 3: + prefix.append(0) + if len(prefix) == 3: + suffix = result[m.end():] + else: + suffix = '.'.join([str(i) for i in prefix[3:]]) + result[m.end():] + prefix = prefix[:3] + prefix = '.'.join([str(i) for i in prefix]) + suffix = suffix.strip() + if suffix: + #import pdb; pdb.set_trace() + # massage the suffix. + for pat, repl in _SUFFIX_REPLACEMENTS: + suffix = pat.sub(repl, suffix) + + if not suffix: + result = prefix + else: + sep = '-' if 'dev' in suffix else '+' + result = prefix + sep + suffix + if not is_semver(result): + result = None + return result + + +def _suggest_normalized_version(s): + """Suggest a normalized version close to the given version string. + + If you have a version string that isn't rational (i.e. NormalizedVersion + doesn't like it) then you might be able to get an equivalent (or close) + rational version from this function. + + This does a number of simple normalizations to the given string, based + on observation of versions currently in use on PyPI. Given a dump of + those version during PyCon 2009, 4287 of them: + - 2312 (53.93%) match NormalizedVersion without change + with the automatic suggestion + - 3474 (81.04%) match when using this suggestion method + + @param s {str} An irrational version string. + @returns A rational version string, or None, if couldn't determine one. + """ + try: + _normalized_key(s) + return s # already rational + except UnsupportedVersionError: + pass + + rs = s.lower() + + # part of this could use maketrans + for orig, repl in (('-alpha', 'a'), ('-beta', 'b'), ('alpha', 'a'), + ('beta', 'b'), ('rc', 'c'), ('-final', ''), + ('-pre', 'c'), + ('-release', ''), ('.release', ''), ('-stable', ''), + ('+', '.'), ('_', '.'), (' ', ''), ('.final', ''), + ('final', '')): + rs = rs.replace(orig, repl) + + # if something ends with dev or pre, we add a 0 + rs = re.sub(r"pre$", r"pre0", rs) + rs = re.sub(r"dev$", r"dev0", rs) + + # if we have something like "b-2" or "a.2" at the end of the + # version, that is probably beta, alpha, etc + # let's remove the dash or dot + rs = re.sub(r"([abc]|rc)[\-\.](\d+)$", r"\1\2", rs) + + # 1.0-dev-r371 -> 1.0.dev371 + # 0.1-dev-r79 -> 0.1.dev79 + rs = re.sub(r"[\-\.](dev)[\-\.]?r?(\d+)$", r".\1\2", rs) + + # Clean: 2.0.a.3, 2.0.b1, 0.9.0~c1 + rs = re.sub(r"[.~]?([abc])\.?", r"\1", rs) + + # Clean: v0.3, v1.0 + if rs.startswith('v'): + rs = rs[1:] + + # Clean leading '0's on numbers. + #TODO: unintended side-effect on, e.g., "2003.05.09" + # PyPI stats: 77 (~2%) better + rs = re.sub(r"\b0+(\d+)(?!\d)", r"\1", rs) + + # Clean a/b/c with no version. E.g. "1.0a" -> "1.0a0". Setuptools infers + # zero. + # PyPI stats: 245 (7.56%) better + rs = re.sub(r"(\d+[abc])$", r"\g<1>0", rs) + + # the 'dev-rNNN' tag is a dev tag + rs = re.sub(r"\.?(dev-r|dev\.r)\.?(\d+)$", r".dev\2", rs) + + # clean the - when used as a pre delimiter + rs = re.sub(r"-(a|b|c)(\d+)$", r"\1\2", rs) + + # a terminal "dev" or "devel" can be changed into ".dev0" + rs = re.sub(r"[\.\-](dev|devel)$", r".dev0", rs) + + # a terminal "dev" can be changed into ".dev0" + rs = re.sub(r"(?![\.\-])dev$", r".dev0", rs) + + # a terminal "final" or "stable" can be removed + rs = re.sub(r"(final|stable)$", "", rs) + + # The 'r' and the '-' tags are post release tags + # 0.4a1.r10 -> 0.4a1.post10 + # 0.9.33-17222 -> 0.9.33.post17222 + # 0.9.33-r17222 -> 0.9.33.post17222 + rs = re.sub(r"\.?(r|-|-r)\.?(\d+)$", r".post\2", rs) + + # Clean 'r' instead of 'dev' usage: + # 0.9.33+r17222 -> 0.9.33.dev17222 + # 1.0dev123 -> 1.0.dev123 + # 1.0.git123 -> 1.0.dev123 + # 1.0.bzr123 -> 1.0.dev123 + # 0.1a0dev.123 -> 0.1a0.dev123 + # PyPI stats: ~150 (~4%) better + rs = re.sub(r"\.?(dev|git|bzr)\.?(\d+)$", r".dev\2", rs) + + # Clean '.pre' (normalized from '-pre' above) instead of 'c' usage: + # 0.2.pre1 -> 0.2c1 + # 0.2-c1 -> 0.2c1 + # 1.0preview123 -> 1.0c123 + # PyPI stats: ~21 (0.62%) better + rs = re.sub(r"\.?(pre|preview|-c)(\d+)$", r"c\g<2>", rs) + + # Tcl/Tk uses "px" for their post release markers + rs = re.sub(r"p(\d+)$", r".post\1", rs) + + try: + _normalized_key(rs) + except UnsupportedVersionError: + rs = None + return rs + +# +# Legacy version processing (distribute-compatible) +# + +_VERSION_PART = re.compile(r'([a-z]+|\d+|[\.-])', re.I) +_VERSION_REPLACE = { + 'pre': 'c', + 'preview': 'c', + '-': 'final-', + 'rc': 'c', + 'dev': '@', + '': None, + '.': None, +} + + +def _legacy_key(s): + def get_parts(s): + result = [] + for p in _VERSION_PART.split(s.lower()): + p = _VERSION_REPLACE.get(p, p) + if p: + if '0' <= p[:1] <= '9': + p = p.zfill(8) + else: + p = '*' + p + result.append(p) + result.append('*final') + return result + + result = [] + for p in get_parts(s): + if p.startswith('*'): + if p < '*final': + while result and result[-1] == '*final-': + result.pop() + while result and result[-1] == '00000000': + result.pop() + result.append(p) + return tuple(result) + + +class LegacyVersion(Version): + def parse(self, s): + return _legacy_key(s) + + @property + def is_prerelease(self): + result = False + for x in self._parts: + if (isinstance(x, string_types) and x.startswith('*') and + x < '*final'): + result = True + break + return result + + +class LegacyMatcher(Matcher): + version_class = LegacyVersion + + _operators = dict(Matcher._operators) + _operators['~='] = '_match_compatible' + + numeric_re = re.compile(r'^(\d+(\.\d+)*)') + + def _match_compatible(self, version, constraint, prefix): + if version < constraint: + return False + m = self.numeric_re.match(str(constraint)) + if not m: + logger.warning('Cannot compute compatible match for version %s ' + ' and constraint %s', version, constraint) + return True + s = m.groups()[0] + if '.' in s: + s = s.rsplit('.', 1)[0] + return _match_prefix(version, s) + +# +# Semantic versioning +# + +_SEMVER_RE = re.compile(r'^(\d+)\.(\d+)\.(\d+)' + r'(-[a-z0-9]+(\.[a-z0-9-]+)*)?' + r'(\+[a-z0-9]+(\.[a-z0-9-]+)*)?$', re.I) + + +def is_semver(s): + return _SEMVER_RE.match(s) + + +def _semantic_key(s): + def make_tuple(s, absent): + if s is None: + result = (absent,) + else: + parts = s[1:].split('.') + # We can't compare ints and strings on Python 3, so fudge it + # by zero-filling numeric values so simulate a numeric comparison + result = tuple([p.zfill(8) if p.isdigit() else p for p in parts]) + return result + + m = is_semver(s) + if not m: + raise UnsupportedVersionError(s) + groups = m.groups() + major, minor, patch = [int(i) for i in groups[:3]] + # choose the '|' and '*' so that versions sort correctly + pre, build = make_tuple(groups[3], '|'), make_tuple(groups[5], '*') + return (major, minor, patch), pre, build + + +class SemanticVersion(Version): + def parse(self, s): + return _semantic_key(s) + + @property + def is_prerelease(self): + return self._parts[1][0] != '|' + + +class SemanticMatcher(Matcher): + version_class = SemanticVersion + + +class VersionScheme(object): + def __init__(self, key, matcher, suggester=None): + self.key = key + self.matcher = matcher + self.suggester = suggester + + def is_valid_version(self, s): + try: + self.matcher.version_class(s) + result = True + except UnsupportedVersionError: + result = False + return result + + def is_valid_matcher(self, s): + try: + self.matcher(s) + result = True + except UnsupportedVersionError: + result = False + return result + + def is_valid_constraint_list(self, s): + """ + Used for processing some metadata fields + """ + return self.is_valid_matcher('dummy_name (%s)' % s) + + def suggest(self, s): + if self.suggester is None: + result = None + else: + result = self.suggester(s) + return result + +_SCHEMES = { + 'normalized': VersionScheme(_normalized_key, NormalizedMatcher, + _suggest_normalized_version), + 'legacy': VersionScheme(_legacy_key, LegacyMatcher, lambda self, s: s), + 'semantic': VersionScheme(_semantic_key, SemanticMatcher, + _suggest_semantic_version), +} + +_SCHEMES['default'] = _SCHEMES['normalized'] + + +def get_scheme(name): + if name not in _SCHEMES: + raise ValueError('unknown scheme name: %r' % name) + return _SCHEMES[name] diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/w32.exe b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/w32.exe new file mode 100644 index 0000000000000000000000000000000000000000..732215a9d34ccb7b417d637a7646d9b843ecafa8 GIT binary patch literal 89088 zcmeFae|S?>wm*FGqitH!CO`{C3REl(SahnPNDYM`O{q#T7)Xdvz$<hz5gjb&0FD$| zPs=nt#$jgk-tk`NUb*PJIy$3wMg@OiORy=5PEkZ0P^;6cyPm2=Y8#~Xyq~pC(iU~@ z_dd`2ywCg3TS)e=wSTX@_S$Q$y;FJf9>F9Cf*Bu86NCeB>CeT#|L3nblC!40kR?2m z{>H@z3`^g*ct!B1Tk<#8{Ol(+x7?n8>n(TO@iQ_1pEl;#NO$D_^p5<p8@>6r|7^p? zD>5@P3KB)%InlPUc<U{5lb_$uJ2!U@!dIxT&CTYnHuoCtzCL#`-1%8w%`JjkymkHD zpYr&>Cg9H}+(GW%^wV2|ROUbGfyXTfOART)i?<!WISJD#7!6|#8G`TvV*Xu^z32+K zc6>T0?9%;4K}Zn{6fx`yPa}*$9C+R!7zI~72c&$InY+UdMGBkF3c`HyxD3K09`bzW z?_q;rO&5ec#{?noJ4vI19bbHBt~vx^h2FH$V8i|^#EsiUg#JboP3@w-(&Uf&%NK<8 zSJZ5{MZ852W)~s>WeT(LIf&1wKNqULLI)GN_(-E-D)X~ZK=1;t<%*guHMhdg`-(mb zHzDv1KBN9zR9?--O+N$ReOXAr81V9z!X5SJ5`=3<1^<8V|AP@&sr2}Qvp;hQT24iW zOHg|EiZd1ojV;oo#(r^ba2`^8T22{~_UQ@YMZp7O1R*2@?SerFE~TuJB_wDaYC0h8 zfONF1t%{=H`W`bdYp+>YBsg9Ty9ec3iy+O3xa}TIvPK#Q&udyx1MvwG0(#iaGC|N| zJ#3?<Y4YLRkU`54s9BYRjyISA>){9$tW;Y34lPnX=&>D4X~|k7c$TwEfOzs@Yh#Nz z`FV;`(w!E`sKg@`2E}bDY>ku^4XS@tV(WO*<eu67;0Clk;vRHp!Qf<+5w0B!*Y>g? zYH=KK#%%Yu1~&m>IlB^#2^syGG|2AB1(}4aOcaC%!)}%`I7AIC2(Ro3yW`GSttng^ z_xb=ECor!L{-PNO>_ulJ3%fm=O0X!s%)$GZ?~I94l-^KEAX0n$?4wGpr7&i4#~)OB zQD%2NrWUKtZuYT1Vnu}AeF`cSgx>Rkk@}Lg{WltgT76VeA2aic`cTnpXrt2WXmJkM z9%u<Rp-*9{$HQ)>Xm?McyDyZ28Ux7mpxy?mnmvzMMr-85vkRrJLaDRx>|I7je+cM+ zj{RJ(3Vrgke;W@#D!y%U%fQLtlPKTAzWtVuOQdXpwsy6eRjt^cZ%0D4bF7$F;f!th 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ð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 literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/w64.exe b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/w64.exe new file mode 100644 index 0000000000000000000000000000000000000000..c41bd0a011fd760ce20ba795d9e535e0d2c39876 GIT binary patch literal 99328 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 B=L-M; literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/wheel.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/wheel.py new file mode 100644 index 00000000..77372235 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distlib/wheel.py @@ -0,0 +1,984 @@ +# -*- coding: utf-8 -*- +# +# Copyright (C) 2013-2017 Vinay Sajip. +# Licensed to the Python Software Foundation under a contributor agreement. +# See LICENSE.txt and CONTRIBUTORS.txt. +# +from __future__ import unicode_literals + +import base64 +import codecs +import datetime +import distutils.util +from email import message_from_file +import hashlib +import imp +import json +import logging +import os +import posixpath +import re +import shutil +import sys +import tempfile +import zipfile + +from . import __version__, DistlibException +from .compat import sysconfig, ZipFile, fsdecode, text_type, filter +from .database import InstalledDistribution +from .metadata import Metadata, METADATA_FILENAME, WHEEL_METADATA_FILENAME +from .util import (FileOperator, convert_path, CSVReader, CSVWriter, Cache, + cached_property, get_cache_base, read_exports, tempdir) +from .version import NormalizedVersion, UnsupportedVersionError + +logger = logging.getLogger(__name__) + +cache = None # created when needed + +if hasattr(sys, 'pypy_version_info'): # pragma: no cover + IMP_PREFIX = 'pp' +elif sys.platform.startswith('java'): # pragma: no cover + IMP_PREFIX = 'jy' +elif sys.platform == 'cli': # pragma: no cover + IMP_PREFIX = 'ip' +else: + IMP_PREFIX = 'cp' + +VER_SUFFIX = sysconfig.get_config_var('py_version_nodot') +if not VER_SUFFIX: # pragma: no cover + VER_SUFFIX = '%s%s' % sys.version_info[:2] +PYVER = 'py' + VER_SUFFIX +IMPVER = IMP_PREFIX + VER_SUFFIX + +ARCH = distutils.util.get_platform().replace('-', '_').replace('.', '_') + +ABI = sysconfig.get_config_var('SOABI') +if ABI and ABI.startswith('cpython-'): + ABI = ABI.replace('cpython-', 'cp') +else: + def _derive_abi(): + parts = ['cp', VER_SUFFIX] + if sysconfig.get_config_var('Py_DEBUG'): + parts.append('d') + if sysconfig.get_config_var('WITH_PYMALLOC'): + parts.append('m') + if sysconfig.get_config_var('Py_UNICODE_SIZE') == 4: + parts.append('u') + return ''.join(parts) + ABI = _derive_abi() + del _derive_abi + +FILENAME_RE = re.compile(r''' +(?P<nm>[^-]+) +-(?P<vn>\d+[^-]*) +(-(?P<bn>\d+[^-]*))? +-(?P<py>\w+\d+(\.\w+\d+)*) +-(?P<bi>\w+) +-(?P<ar>\w+(\.\w+)*) +\.whl$ +''', re.IGNORECASE | re.VERBOSE) + +NAME_VERSION_RE = re.compile(r''' +(?P<nm>[^-]+) +-(?P<vn>\d+[^-]*) +(-(?P<bn>\d+[^-]*))?$ +''', re.IGNORECASE | re.VERBOSE) + +SHEBANG_RE = re.compile(br'\s*#![^\r\n]*') +SHEBANG_DETAIL_RE = re.compile(br'^(\s*#!("[^"]+"|\S+))\s+(.*)$') +SHEBANG_PYTHON = b'#!python' +SHEBANG_PYTHONW = b'#!pythonw' + +if os.sep == '/': + to_posix = lambda o: o +else: + to_posix = lambda o: o.replace(os.sep, '/') + + +class Mounter(object): + def __init__(self): + self.impure_wheels = {} + self.libs = {} + + def add(self, pathname, extensions): + self.impure_wheels[pathname] = extensions + self.libs.update(extensions) + + def remove(self, pathname): + extensions = self.impure_wheels.pop(pathname) + for k, v in extensions: + if k in self.libs: + del self.libs[k] + + def find_module(self, fullname, path=None): + if fullname in self.libs: + result = self + else: + result = None + return result + + def load_module(self, fullname): + if fullname in sys.modules: + result = sys.modules[fullname] + else: + if fullname not in self.libs: + raise ImportError('unable to find extension for %s' % fullname) + result = imp.load_dynamic(fullname, self.libs[fullname]) + result.__loader__ = self + parts = fullname.rsplit('.', 1) + if len(parts) > 1: + result.__package__ = parts[0] + return result + +_hook = Mounter() + + +class Wheel(object): + """ + Class to build and install from Wheel files (PEP 427). + """ + + wheel_version = (1, 1) + hash_kind = 'sha256' + + def __init__(self, filename=None, sign=False, verify=False): + """ + Initialise an instance using a (valid) filename. + """ + self.sign = sign + self.should_verify = verify + self.buildver = '' + self.pyver = [PYVER] + self.abi = ['none'] + self.arch = ['any'] + self.dirname = os.getcwd() + if filename is None: + self.name = 'dummy' + self.version = '0.1' + self._filename = self.filename + else: + m = NAME_VERSION_RE.match(filename) + if m: + info = m.groupdict('') + self.name = info['nm'] + # Reinstate the local version separator + self.version = info['vn'].replace('_', '-') + self.buildver = info['bn'] + self._filename = self.filename + else: + dirname, filename = os.path.split(filename) + m = FILENAME_RE.match(filename) + if not m: + raise DistlibException('Invalid name or ' + 'filename: %r' % filename) + if dirname: + self.dirname = os.path.abspath(dirname) + self._filename = filename + info = m.groupdict('') + self.name = info['nm'] + self.version = info['vn'] + self.buildver = info['bn'] + self.pyver = info['py'].split('.') + self.abi = info['bi'].split('.') + self.arch = info['ar'].split('.') + + @property + def filename(self): + """ + Build and return a filename from the various components. + """ + if self.buildver: + buildver = '-' + self.buildver + else: + buildver = '' + pyver = '.'.join(self.pyver) + abi = '.'.join(self.abi) + arch = '.'.join(self.arch) + # replace - with _ as a local version separator + version = self.version.replace('-', '_') + return '%s-%s%s-%s-%s-%s.whl' % (self.name, version, buildver, + pyver, abi, arch) + + @property + def exists(self): + path = os.path.join(self.dirname, self.filename) + return os.path.isfile(path) + + @property + def tags(self): + for pyver in self.pyver: + for abi in self.abi: + for arch in self.arch: + yield pyver, abi, arch + + @cached_property + def metadata(self): + pathname = os.path.join(self.dirname, self.filename) + name_ver = '%s-%s' % (self.name, self.version) + info_dir = '%s.dist-info' % name_ver + wrapper = codecs.getreader('utf-8') + with ZipFile(pathname, 'r') as zf: + wheel_metadata = self.get_wheel_metadata(zf) + wv = wheel_metadata['Wheel-Version'].split('.', 1) + file_version = tuple([int(i) for i in wv]) + if file_version < (1, 1): + fns = [WHEEL_METADATA_FILENAME, METADATA_FILENAME, 'METADATA'] + else: + fns = [WHEEL_METADATA_FILENAME, METADATA_FILENAME] + result = None + for fn in fns: + try: + metadata_filename = posixpath.join(info_dir, fn) + with zf.open(metadata_filename) as bf: + wf = wrapper(bf) + result = Metadata(fileobj=wf) + if result: + break + except KeyError: + pass + if not result: + raise ValueError('Invalid wheel, because metadata is ' + 'missing: looked in %s' % ', '.join(fns)) + return result + + def get_wheel_metadata(self, zf): + name_ver = '%s-%s' % (self.name, self.version) + info_dir = '%s.dist-info' % name_ver + metadata_filename = posixpath.join(info_dir, 'WHEEL') + with zf.open(metadata_filename) as bf: + wf = codecs.getreader('utf-8')(bf) + message = message_from_file(wf) + return dict(message) + + @cached_property + def info(self): + pathname = os.path.join(self.dirname, self.filename) + with ZipFile(pathname, 'r') as zf: + result = self.get_wheel_metadata(zf) + return result + + def process_shebang(self, data): + m = SHEBANG_RE.match(data) + if m: + end = m.end() + shebang, data_after_shebang = data[:end], data[end:] + # Preserve any arguments after the interpreter + if b'pythonw' in shebang.lower(): + shebang_python = SHEBANG_PYTHONW + else: + shebang_python = SHEBANG_PYTHON + m = SHEBANG_DETAIL_RE.match(shebang) + if m: + args = b' ' + m.groups()[-1] + else: + args = b'' + shebang = shebang_python + args + data = shebang + data_after_shebang + else: + cr = data.find(b'\r') + lf = data.find(b'\n') + if cr < 0 or cr > lf: + term = b'\n' + else: + if data[cr:cr + 2] == b'\r\n': + term = b'\r\n' + else: + term = b'\r' + data = SHEBANG_PYTHON + term + data + return data + + def get_hash(self, data, hash_kind=None): + if hash_kind is None: + hash_kind = self.hash_kind + try: + hasher = getattr(hashlib, hash_kind) + except AttributeError: + raise DistlibException('Unsupported hash algorithm: %r' % hash_kind) + result = hasher(data).digest() + result = base64.urlsafe_b64encode(result).rstrip(b'=').decode('ascii') + return hash_kind, result + + def write_record(self, records, record_path, base): + records = list(records) # make a copy for sorting + p = to_posix(os.path.relpath(record_path, base)) + records.append((p, '', '')) + records.sort() + with CSVWriter(record_path) as writer: + for row in records: + writer.writerow(row) + + def write_records(self, info, libdir, archive_paths): + records = [] + distinfo, info_dir = info + hasher = getattr(hashlib, self.hash_kind) + for ap, p in archive_paths: + with open(p, 'rb') as f: + data = f.read() + digest = '%s=%s' % self.get_hash(data) + size = os.path.getsize(p) + records.append((ap, digest, size)) + + p = os.path.join(distinfo, 'RECORD') + self.write_record(records, p, libdir) + ap = to_posix(os.path.join(info_dir, 'RECORD')) + archive_paths.append((ap, p)) + + def build_zip(self, pathname, archive_paths): + with ZipFile(pathname, 'w', zipfile.ZIP_DEFLATED) as zf: + for ap, p in archive_paths: + logger.debug('Wrote %s to %s in wheel', p, ap) + zf.write(p, ap) + + def build(self, paths, tags=None, wheel_version=None): + """ + Build a wheel from files in specified paths, and use any specified tags + when determining the name of the wheel. + """ + if tags is None: + tags = {} + + libkey = list(filter(lambda o: o in paths, ('purelib', 'platlib')))[0] + if libkey == 'platlib': + is_pure = 'false' + default_pyver = [IMPVER] + default_abi = [ABI] + default_arch = [ARCH] + else: + is_pure = 'true' + default_pyver = [PYVER] + default_abi = ['none'] + default_arch = ['any'] + + self.pyver = tags.get('pyver', default_pyver) + self.abi = tags.get('abi', default_abi) + self.arch = tags.get('arch', default_arch) + + libdir = paths[libkey] + + name_ver = '%s-%s' % (self.name, self.version) + data_dir = '%s.data' % name_ver + info_dir = '%s.dist-info' % name_ver + + archive_paths = [] + + # First, stuff which is not in site-packages + for key in ('data', 'headers', 'scripts'): + if key not in paths: + continue + path = paths[key] + if os.path.isdir(path): + for root, dirs, files in os.walk(path): + for fn in files: + p = fsdecode(os.path.join(root, fn)) + rp = os.path.relpath(p, path) + ap = to_posix(os.path.join(data_dir, key, rp)) + archive_paths.append((ap, p)) + if key == 'scripts' and not p.endswith('.exe'): + with open(p, 'rb') as f: + data = f.read() + data = self.process_shebang(data) + with open(p, 'wb') as f: + f.write(data) + + # Now, stuff which is in site-packages, other than the + # distinfo stuff. + path = libdir + distinfo = None + for root, dirs, files in os.walk(path): + if root == path: + # At the top level only, save distinfo for later + # and skip it for now + for i, dn in enumerate(dirs): + dn = fsdecode(dn) + if dn.endswith('.dist-info'): + distinfo = os.path.join(root, dn) + del dirs[i] + break + assert distinfo, '.dist-info directory expected, not found' + + for fn in files: + # comment out next suite to leave .pyc files in + if fsdecode(fn).endswith(('.pyc', '.pyo')): + continue + p = os.path.join(root, fn) + rp = to_posix(os.path.relpath(p, path)) + archive_paths.append((rp, p)) + + # Now distinfo. Assumed to be flat, i.e. os.listdir is enough. + files = os.listdir(distinfo) + for fn in files: + if fn not in ('RECORD', 'INSTALLER', 'SHARED', 'WHEEL'): + p = fsdecode(os.path.join(distinfo, fn)) + ap = to_posix(os.path.join(info_dir, fn)) + archive_paths.append((ap, p)) + + wheel_metadata = [ + 'Wheel-Version: %d.%d' % (wheel_version or self.wheel_version), + 'Generator: distlib %s' % __version__, + 'Root-Is-Purelib: %s' % is_pure, + ] + for pyver, abi, arch in self.tags: + wheel_metadata.append('Tag: %s-%s-%s' % (pyver, abi, arch)) + p = os.path.join(distinfo, 'WHEEL') + with open(p, 'w') as f: + f.write('\n'.join(wheel_metadata)) + ap = to_posix(os.path.join(info_dir, 'WHEEL')) + archive_paths.append((ap, p)) + + # Now, at last, RECORD. + # Paths in here are archive paths - nothing else makes sense. + self.write_records((distinfo, info_dir), libdir, archive_paths) + # Now, ready to build the zip file + pathname = os.path.join(self.dirname, self.filename) + self.build_zip(pathname, archive_paths) + return pathname + + def install(self, paths, maker, **kwargs): + """ + Install a wheel to the specified paths. If kwarg ``warner`` is + specified, it should be a callable, which will be called with two + tuples indicating the wheel version of this software and the wheel + version in the file, if there is a discrepancy in the versions. + This can be used to issue any warnings to raise any exceptions. + If kwarg ``lib_only`` is True, only the purelib/platlib files are + installed, and the headers, scripts, data and dist-info metadata are + not written. + + The return value is a :class:`InstalledDistribution` instance unless + ``options.lib_only`` is True, in which case the return value is ``None``. + """ + + dry_run = maker.dry_run + warner = kwargs.get('warner') + lib_only = kwargs.get('lib_only', False) + + pathname = os.path.join(self.dirname, self.filename) + name_ver = '%s-%s' % (self.name, self.version) + data_dir = '%s.data' % name_ver + info_dir = '%s.dist-info' % name_ver + + metadata_name = posixpath.join(info_dir, METADATA_FILENAME) + wheel_metadata_name = posixpath.join(info_dir, 'WHEEL') + record_name = posixpath.join(info_dir, 'RECORD') + + wrapper = codecs.getreader('utf-8') + + with ZipFile(pathname, 'r') as zf: + with zf.open(wheel_metadata_name) as bwf: + wf = wrapper(bwf) + message = message_from_file(wf) + wv = message['Wheel-Version'].split('.', 1) + file_version = tuple([int(i) for i in wv]) + if (file_version != self.wheel_version) and warner: + warner(self.wheel_version, file_version) + + if message['Root-Is-Purelib'] == 'true': + libdir = paths['purelib'] + else: + libdir = paths['platlib'] + + records = {} + with zf.open(record_name) as bf: + with CSVReader(stream=bf) as reader: + for row in reader: + p = row[0] + records[p] = row + + data_pfx = posixpath.join(data_dir, '') + info_pfx = posixpath.join(info_dir, '') + script_pfx = posixpath.join(data_dir, 'scripts', '') + + # make a new instance rather than a copy of maker's, + # as we mutate it + fileop = FileOperator(dry_run=dry_run) + fileop.record = True # so we can rollback if needed + + bc = not sys.dont_write_bytecode # Double negatives. Lovely! + + outfiles = [] # for RECORD writing + + # for script copying/shebang processing + workdir = tempfile.mkdtemp() + # set target dir later + # we default add_launchers to False, as the + # Python Launcher should be used instead + maker.source_dir = workdir + maker.target_dir = None + try: + for zinfo in zf.infolist(): + arcname = zinfo.filename + if isinstance(arcname, text_type): + u_arcname = arcname + else: + u_arcname = arcname.decode('utf-8') + # The signature file won't be in RECORD, + # and we don't currently don't do anything with it + if u_arcname.endswith('/RECORD.jws'): + continue + row = records[u_arcname] + if row[2] and str(zinfo.file_size) != row[2]: + raise DistlibException('size mismatch for ' + '%s' % u_arcname) + if row[1]: + kind, value = row[1].split('=', 1) + with zf.open(arcname) as bf: + data = bf.read() + _, digest = self.get_hash(data, kind) + if digest != value: + raise DistlibException('digest mismatch for ' + '%s' % arcname) + + if lib_only and u_arcname.startswith((info_pfx, data_pfx)): + logger.debug('lib_only: skipping %s', u_arcname) + continue + is_script = (u_arcname.startswith(script_pfx) + and not u_arcname.endswith('.exe')) + + if u_arcname.startswith(data_pfx): + _, where, rp = u_arcname.split('/', 2) + outfile = os.path.join(paths[where], convert_path(rp)) + else: + # meant for site-packages. + if u_arcname in (wheel_metadata_name, record_name): + continue + outfile = os.path.join(libdir, convert_path(u_arcname)) + if not is_script: + with zf.open(arcname) as bf: + fileop.copy_stream(bf, outfile) + outfiles.append(outfile) + # Double check the digest of the written file + if not dry_run and row[1]: + with open(outfile, 'rb') as bf: + data = bf.read() + _, newdigest = self.get_hash(data, kind) + if newdigest != digest: + raise DistlibException('digest mismatch ' + 'on write for ' + '%s' % outfile) + if bc and outfile.endswith('.py'): + try: + pyc = fileop.byte_compile(outfile) + outfiles.append(pyc) + except Exception: + # Don't give up if byte-compilation fails, + # but log it and perhaps warn the user + logger.warning('Byte-compilation failed', + exc_info=True) + else: + fn = os.path.basename(convert_path(arcname)) + workname = os.path.join(workdir, fn) + with zf.open(arcname) as bf: + fileop.copy_stream(bf, workname) + + dn, fn = os.path.split(outfile) + maker.target_dir = dn + filenames = maker.make(fn) + fileop.set_executable_mode(filenames) + outfiles.extend(filenames) + + if lib_only: + logger.debug('lib_only: returning None') + dist = None + else: + # Generate scripts + + # Try to get pydist.json so we can see if there are + # any commands to generate. If this fails (e.g. because + # of a legacy wheel), log a warning but don't give up. + commands = None + file_version = self.info['Wheel-Version'] + if file_version == '1.0': + # Use legacy info + ep = posixpath.join(info_dir, 'entry_points.txt') + try: + with zf.open(ep) as bwf: + epdata = read_exports(bwf) + commands = {} + for key in ('console', 'gui'): + k = '%s_scripts' % key + if k in epdata: + commands['wrap_%s' % key] = d = {} + for v in epdata[k].values(): + s = '%s:%s' % (v.prefix, v.suffix) + if v.flags: + s += ' %s' % v.flags + d[v.name] = s + except Exception: + logger.warning('Unable to read legacy script ' + 'metadata, so cannot generate ' + 'scripts') + else: + try: + with zf.open(metadata_name) as bwf: + wf = wrapper(bwf) + commands = json.load(wf).get('extensions') + if commands: + commands = commands.get('python.commands') + except Exception: + logger.warning('Unable to read JSON metadata, so ' + 'cannot generate scripts') + if commands: + console_scripts = commands.get('wrap_console', {}) + gui_scripts = commands.get('wrap_gui', {}) + if console_scripts or gui_scripts: + script_dir = paths.get('scripts', '') + if not os.path.isdir(script_dir): + raise ValueError('Valid script path not ' + 'specified') + maker.target_dir = script_dir + for k, v in console_scripts.items(): + script = '%s = %s' % (k, v) + filenames = maker.make(script) + fileop.set_executable_mode(filenames) + + if gui_scripts: + options = {'gui': True } + for k, v in gui_scripts.items(): + script = '%s = %s' % (k, v) + filenames = maker.make(script, options) + fileop.set_executable_mode(filenames) + + p = os.path.join(libdir, info_dir) + dist = InstalledDistribution(p) + + # Write SHARED + paths = dict(paths) # don't change passed in dict + del paths['purelib'] + del paths['platlib'] + paths['lib'] = libdir + p = dist.write_shared_locations(paths, dry_run) + if p: + outfiles.append(p) + + # Write RECORD + dist.write_installed_files(outfiles, paths['prefix'], + dry_run) + return dist + except Exception: # pragma: no cover + logger.exception('installation failed.') + fileop.rollback() + raise + finally: + shutil.rmtree(workdir) + + def _get_dylib_cache(self): + global cache + if cache is None: + # Use native string to avoid issues on 2.x: see Python #20140. + base = os.path.join(get_cache_base(), str('dylib-cache'), + sys.version[:3]) + cache = Cache(base) + return cache + + def _get_extensions(self): + pathname = os.path.join(self.dirname, self.filename) + name_ver = '%s-%s' % (self.name, self.version) + info_dir = '%s.dist-info' % name_ver + arcname = posixpath.join(info_dir, 'EXTENSIONS') + wrapper = codecs.getreader('utf-8') + result = [] + with ZipFile(pathname, 'r') as zf: + try: + with zf.open(arcname) as bf: + wf = wrapper(bf) + extensions = json.load(wf) + cache = self._get_dylib_cache() + prefix = cache.prefix_to_dir(pathname) + cache_base = os.path.join(cache.base, prefix) + if not os.path.isdir(cache_base): + os.makedirs(cache_base) + for name, relpath in extensions.items(): + dest = os.path.join(cache_base, convert_path(relpath)) + if not os.path.exists(dest): + extract = True + else: + file_time = os.stat(dest).st_mtime + file_time = datetime.datetime.fromtimestamp(file_time) + info = zf.getinfo(relpath) + wheel_time = datetime.datetime(*info.date_time) + extract = wheel_time > file_time + if extract: + zf.extract(relpath, cache_base) + result.append((name, dest)) + except KeyError: + pass + return result + + def is_compatible(self): + """ + Determine if a wheel is compatible with the running system. + """ + return is_compatible(self) + + def is_mountable(self): + """ + Determine if a wheel is asserted as mountable by its metadata. + """ + return True # for now - metadata details TBD + + def mount(self, append=False): + pathname = os.path.abspath(os.path.join(self.dirname, self.filename)) + if not self.is_compatible(): + msg = 'Wheel %s not compatible with this Python.' % pathname + raise DistlibException(msg) + if not self.is_mountable(): + msg = 'Wheel %s is marked as not mountable.' % pathname + raise DistlibException(msg) + if pathname in sys.path: + logger.debug('%s already in path', pathname) + else: + if append: + sys.path.append(pathname) + else: + sys.path.insert(0, pathname) + extensions = self._get_extensions() + if extensions: + if _hook not in sys.meta_path: + sys.meta_path.append(_hook) + _hook.add(pathname, extensions) + + def unmount(self): + pathname = os.path.abspath(os.path.join(self.dirname, self.filename)) + if pathname not in sys.path: + logger.debug('%s not in path', pathname) + else: + sys.path.remove(pathname) + if pathname in _hook.impure_wheels: + _hook.remove(pathname) + if not _hook.impure_wheels: + if _hook in sys.meta_path: + sys.meta_path.remove(_hook) + + def verify(self): + pathname = os.path.join(self.dirname, self.filename) + name_ver = '%s-%s' % (self.name, self.version) + data_dir = '%s.data' % name_ver + info_dir = '%s.dist-info' % name_ver + + metadata_name = posixpath.join(info_dir, METADATA_FILENAME) + wheel_metadata_name = posixpath.join(info_dir, 'WHEEL') + record_name = posixpath.join(info_dir, 'RECORD') + + wrapper = codecs.getreader('utf-8') + + with ZipFile(pathname, 'r') as zf: + with zf.open(wheel_metadata_name) as bwf: + wf = wrapper(bwf) + message = message_from_file(wf) + wv = message['Wheel-Version'].split('.', 1) + file_version = tuple([int(i) for i in wv]) + # TODO version verification + + records = {} + with zf.open(record_name) as bf: + with CSVReader(stream=bf) as reader: + for row in reader: + p = row[0] + records[p] = row + + for zinfo in zf.infolist(): + arcname = zinfo.filename + if isinstance(arcname, text_type): + u_arcname = arcname + else: + u_arcname = arcname.decode('utf-8') + if '..' in u_arcname: + raise DistlibException('invalid entry in ' + 'wheel: %r' % u_arcname) + + # The signature file won't be in RECORD, + # and we don't currently don't do anything with it + if u_arcname.endswith('/RECORD.jws'): + continue + row = records[u_arcname] + if row[2] and str(zinfo.file_size) != row[2]: + raise DistlibException('size mismatch for ' + '%s' % u_arcname) + if row[1]: + kind, value = row[1].split('=', 1) + with zf.open(arcname) as bf: + data = bf.read() + _, digest = self.get_hash(data, kind) + if digest != value: + raise DistlibException('digest mismatch for ' + '%s' % arcname) + + def update(self, modifier, dest_dir=None, **kwargs): + """ + Update the contents of a wheel in a generic way. The modifier should + be a callable which expects a dictionary argument: its keys are + archive-entry paths, and its values are absolute filesystem paths + where the contents the corresponding archive entries can be found. The + modifier is free to change the contents of the files pointed to, add + new entries and remove entries, before returning. This method will + extract the entire contents of the wheel to a temporary location, call + the modifier, and then use the passed (and possibly updated) + dictionary to write a new wheel. If ``dest_dir`` is specified, the new + wheel is written there -- otherwise, the original wheel is overwritten. + + The modifier should return True if it updated the wheel, else False. + This method returns the same value the modifier returns. + """ + + def get_version(path_map, info_dir): + version = path = None + key = '%s/%s' % (info_dir, METADATA_FILENAME) + if key not in path_map: + key = '%s/PKG-INFO' % info_dir + if key in path_map: + path = path_map[key] + version = Metadata(path=path).version + return version, path + + def update_version(version, path): + updated = None + try: + v = NormalizedVersion(version) + i = version.find('-') + if i < 0: + updated = '%s+1' % version + else: + parts = [int(s) for s in version[i + 1:].split('.')] + parts[-1] += 1 + updated = '%s+%s' % (version[:i], + '.'.join(str(i) for i in parts)) + except UnsupportedVersionError: + logger.debug('Cannot update non-compliant (PEP-440) ' + 'version %r', version) + if updated: + md = Metadata(path=path) + md.version = updated + legacy = not path.endswith(METADATA_FILENAME) + md.write(path=path, legacy=legacy) + logger.debug('Version updated from %r to %r', version, + updated) + + pathname = os.path.join(self.dirname, self.filename) + name_ver = '%s-%s' % (self.name, self.version) + info_dir = '%s.dist-info' % name_ver + record_name = posixpath.join(info_dir, 'RECORD') + with tempdir() as workdir: + with ZipFile(pathname, 'r') as zf: + path_map = {} + for zinfo in zf.infolist(): + arcname = zinfo.filename + if isinstance(arcname, text_type): + u_arcname = arcname + else: + u_arcname = arcname.decode('utf-8') + if u_arcname == record_name: + continue + if '..' in u_arcname: + raise DistlibException('invalid entry in ' + 'wheel: %r' % u_arcname) + zf.extract(zinfo, workdir) + path = os.path.join(workdir, convert_path(u_arcname)) + path_map[u_arcname] = path + + # Remember the version. + original_version, _ = get_version(path_map, info_dir) + # Files extracted. Call the modifier. + modified = modifier(path_map, **kwargs) + if modified: + # Something changed - need to build a new wheel. + current_version, path = get_version(path_map, info_dir) + if current_version and (current_version == original_version): + # Add or update local version to signify changes. + update_version(current_version, path) + # Decide where the new wheel goes. + if dest_dir is None: + fd, newpath = tempfile.mkstemp(suffix='.whl', + prefix='wheel-update-', + dir=workdir) + os.close(fd) + else: + if not os.path.isdir(dest_dir): + raise DistlibException('Not a directory: %r' % dest_dir) + newpath = os.path.join(dest_dir, self.filename) + archive_paths = list(path_map.items()) + distinfo = os.path.join(workdir, info_dir) + info = distinfo, info_dir + self.write_records(info, workdir, archive_paths) + self.build_zip(newpath, archive_paths) + if dest_dir is None: + shutil.copyfile(newpath, pathname) + return modified + +def compatible_tags(): + """ + Return (pyver, abi, arch) tuples compatible with this Python. + """ + versions = [VER_SUFFIX] + major = VER_SUFFIX[0] + for minor in range(sys.version_info[1] - 1, - 1, -1): + versions.append(''.join([major, str(minor)])) + + abis = [] + for suffix, _, _ in imp.get_suffixes(): + if suffix.startswith('.abi'): + abis.append(suffix.split('.', 2)[1]) + abis.sort() + if ABI != 'none': + abis.insert(0, ABI) + abis.append('none') + result = [] + + arches = [ARCH] + if sys.platform == 'darwin': + m = re.match(r'(\w+)_(\d+)_(\d+)_(\w+)$', ARCH) + if m: + name, major, minor, arch = m.groups() + minor = int(minor) + matches = [arch] + if arch in ('i386', 'ppc'): + matches.append('fat') + if arch in ('i386', 'ppc', 'x86_64'): + matches.append('fat3') + if arch in ('ppc64', 'x86_64'): + matches.append('fat64') + if arch in ('i386', 'x86_64'): + matches.append('intel') + if arch in ('i386', 'x86_64', 'intel', 'ppc', 'ppc64'): + matches.append('universal') + while minor >= 0: + for match in matches: + s = '%s_%s_%s_%s' % (name, major, minor, match) + if s != ARCH: # already there + arches.append(s) + minor -= 1 + + # Most specific - our Python version, ABI and arch + for abi in abis: + for arch in arches: + result.append((''.join((IMP_PREFIX, versions[0])), abi, arch)) + + # where no ABI / arch dependency, but IMP_PREFIX dependency + for i, version in enumerate(versions): + result.append((''.join((IMP_PREFIX, version)), 'none', 'any')) + if i == 0: + result.append((''.join((IMP_PREFIX, version[0])), 'none', 'any')) + + # no IMP_PREFIX, ABI or arch dependency + for i, version in enumerate(versions): + result.append((''.join(('py', version)), 'none', 'any')) + if i == 0: + result.append((''.join(('py', version[0])), 'none', 'any')) + return set(result) + + +COMPATIBLE_TAGS = compatible_tags() + +del compatible_tags + + +def is_compatible(wheel, tags=None): + if not isinstance(wheel, Wheel): + wheel = Wheel(wheel) # assume it's a filename + result = False + if tags is None: + tags = COMPATIBLE_TAGS + for ver, abi, arch in tags: + if ver in wheel.pyver and abi in wheel.abi and arch in wheel.arch: + result = True + break + return result diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distro.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distro.py new file mode 100644 index 00000000..39bfce79 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/distro.py @@ -0,0 +1,1104 @@ +# Copyright 2015,2016 Nir Cohen +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +""" +The ``distro`` package (``distro`` stands for Linux Distribution) provides +information about the Linux distribution it runs on, such as a reliable +machine-readable distro ID, or version information. + +It is a renewed alternative implementation for Python's original +:py:func:`platform.linux_distribution` function, but it provides much more +functionality. An alternative implementation became necessary because Python +3.5 deprecated this function, and Python 3.7 is expected to remove it +altogether. Its predecessor function :py:func:`platform.dist` was already +deprecated since Python 2.6 and is also expected to be removed in Python 3.7. +Still, there are many cases in which access to Linux distribution information +is needed. See `Python issue 1322 <https://bugs.python.org/issue1322>`_ for +more information. +""" + +import os +import re +import sys +import json +import shlex +import logging +import argparse +import subprocess + + +_UNIXCONFDIR = os.environ.get('UNIXCONFDIR', '/etc') +_OS_RELEASE_BASENAME = 'os-release' + +#: Translation table for normalizing the "ID" attribute defined in os-release +#: files, for use by the :func:`distro.id` method. +#: +#: * Key: Value as defined in the os-release file, translated to lower case, +#: with blanks translated to underscores. +#: +#: * Value: Normalized value. +NORMALIZED_OS_ID = {} + +#: Translation table for normalizing the "Distributor ID" attribute returned by +#: the lsb_release command, for use by the :func:`distro.id` method. +#: +#: * Key: Value as returned by the lsb_release command, translated to lower +#: case, with blanks translated to underscores. +#: +#: * Value: Normalized value. +NORMALIZED_LSB_ID = { + 'enterpriseenterprise': 'oracle', # Oracle Enterprise Linux + 'redhatenterpriseworkstation': 'rhel', # RHEL 6, 7 Workstation + 'redhatenterpriseserver': 'rhel', # RHEL 6, 7 Server +} + +#: Translation table for normalizing the distro ID derived from the file name +#: of distro release files, for use by the :func:`distro.id` method. +#: +#: * Key: Value as derived from the file name of a distro release file, +#: translated to lower case, with blanks translated to underscores. +#: +#: * Value: Normalized value. +NORMALIZED_DISTRO_ID = { + 'redhat': 'rhel', # RHEL 6.x, 7.x +} + +# Pattern for content of distro release file (reversed) +_DISTRO_RELEASE_CONTENT_REVERSED_PATTERN = re.compile( + r'(?:[^)]*\)(.*)\()? *(?:STL )?([\d.+\-a-z]*\d) *(?:esaeler *)?(.+)') + +# Pattern for base file name of distro release file +_DISTRO_RELEASE_BASENAME_PATTERN = re.compile( + r'(\w+)[-_](release|version)$') + +# Base file names to be ignored when searching for distro release file +_DISTRO_RELEASE_IGNORE_BASENAMES = ( + 'debian_version', + 'lsb-release', + 'oem-release', + _OS_RELEASE_BASENAME, + 'system-release' +) + + +def linux_distribution(full_distribution_name=True): + """ + Return information about the current Linux distribution as a tuple + ``(id_name, version, codename)`` with items as follows: + + * ``id_name``: If *full_distribution_name* is false, the result of + :func:`distro.id`. Otherwise, the result of :func:`distro.name`. + + * ``version``: The result of :func:`distro.version`. + + * ``codename``: The result of :func:`distro.codename`. + + The interface of this function is compatible with the original + :py:func:`platform.linux_distribution` function, supporting a subset of + its parameters. + + The data it returns may not exactly be the same, because it uses more data + sources than the original function, and that may lead to different data if + the Linux distribution is not consistent across multiple data sources it + provides (there are indeed such distributions ...). + + Another reason for differences is the fact that the :func:`distro.id` + method normalizes the distro ID string to a reliable machine-readable value + for a number of popular Linux distributions. + """ + return _distro.linux_distribution(full_distribution_name) + + +def id(): + """ + Return the distro ID of the current Linux distribution, as a + machine-readable string. + + For a number of Linux distributions, the returned distro ID value is + *reliable*, in the sense that it is documented and that it does not change + across releases of the distribution. + + This package maintains the following reliable distro ID values: + + ============== ========================================= + Distro ID Distribution + ============== ========================================= + "ubuntu" Ubuntu + "debian" Debian + "rhel" RedHat Enterprise Linux + "centos" CentOS + "fedora" Fedora + "sles" SUSE Linux Enterprise Server + "opensuse" openSUSE + "amazon" Amazon Linux + "arch" Arch Linux + "cloudlinux" CloudLinux OS + "exherbo" Exherbo Linux + "gentoo" GenToo Linux + "ibm_powerkvm" IBM PowerKVM + "kvmibm" KVM for IBM z Systems + "linuxmint" Linux Mint + "mageia" Mageia + "mandriva" Mandriva Linux + "parallels" Parallels + "pidora" Pidora + "raspbian" Raspbian + "oracle" Oracle Linux (and Oracle Enterprise Linux) + "scientific" Scientific Linux + "slackware" Slackware + "xenserver" XenServer + ============== ========================================= + + If you have a need to get distros for reliable IDs added into this set, + or if you find that the :func:`distro.id` function returns a different + distro ID for one of the listed distros, please create an issue in the + `distro issue tracker`_. + + **Lookup hierarchy and transformations:** + + First, the ID is obtained from the following sources, in the specified + order. The first available and non-empty value is used: + + * the value of the "ID" attribute of the os-release file, + + * the value of the "Distributor ID" attribute returned by the lsb_release + command, + + * the first part of the file name of the distro release file, + + The so determined ID value then passes the following transformations, + before it is returned by this method: + + * it is translated to lower case, + + * blanks (which should not be there anyway) are translated to underscores, + + * a normalization of the ID is performed, based upon + `normalization tables`_. The purpose of this normalization is to ensure + that the ID is as reliable as possible, even across incompatible changes + in the Linux distributions. A common reason for an incompatible change is + the addition of an os-release file, or the addition of the lsb_release + command, with ID values that differ from what was previously determined + from the distro release file name. + """ + return _distro.id() + + +def name(pretty=False): + """ + Return the name of the current Linux distribution, as a human-readable + string. + + If *pretty* is false, the name is returned without version or codename. + (e.g. "CentOS Linux") + + If *pretty* is true, the version and codename are appended. + (e.g. "CentOS Linux 7.1.1503 (Core)") + + **Lookup hierarchy:** + + The name is obtained from the following sources, in the specified order. + The first available and non-empty value is used: + + * If *pretty* is false: + + - the value of the "NAME" attribute of the os-release file, + + - the value of the "Distributor ID" attribute returned by the lsb_release + command, + + - the value of the "<name>" field of the distro release file. + + * If *pretty* is true: + + - the value of the "PRETTY_NAME" attribute of the os-release file, + + - the value of the "Description" attribute returned by the lsb_release + command, + + - the value of the "<name>" field of the distro release file, appended + with the value of the pretty version ("<version_id>" and "<codename>" + fields) of the distro release file, if available. + """ + return _distro.name(pretty) + + +def version(pretty=False, best=False): + """ + Return the version of the current Linux distribution, as a human-readable + string. + + If *pretty* is false, the version is returned without codename (e.g. + "7.0"). + + If *pretty* is true, the codename in parenthesis is appended, if the + codename is non-empty (e.g. "7.0 (Maipo)"). + + Some distributions provide version numbers with different precisions in + the different sources of distribution information. Examining the different + sources in a fixed priority order does not always yield the most precise + version (e.g. for Debian 8.2, or CentOS 7.1). + + The *best* parameter can be used to control the approach for the returned + version: + + If *best* is false, the first non-empty version number in priority order of + the examined sources is returned. + + If *best* is true, the most precise version number out of all examined + sources is returned. + + **Lookup hierarchy:** + + In all cases, the version number is obtained from the following sources. + If *best* is false, this order represents the priority order: + + * the value of the "VERSION_ID" attribute of the os-release file, + * the value of the "Release" attribute returned by the lsb_release + command, + * the version number parsed from the "<version_id>" field of the first line + of the distro release file, + * the version number parsed from the "PRETTY_NAME" attribute of the + os-release file, if it follows the format of the distro release files. + * the version number parsed from the "Description" attribute returned by + the lsb_release command, if it follows the format of the distro release + files. + """ + return _distro.version(pretty, best) + + +def version_parts(best=False): + """ + Return the version of the current Linux distribution as a tuple + ``(major, minor, build_number)`` with items as follows: + + * ``major``: The result of :func:`distro.major_version`. + + * ``minor``: The result of :func:`distro.minor_version`. + + * ``build_number``: The result of :func:`distro.build_number`. + + For a description of the *best* parameter, see the :func:`distro.version` + method. + """ + return _distro.version_parts(best) + + +def major_version(best=False): + """ + Return the major version of the current Linux distribution, as a string, + if provided. + Otherwise, the empty string is returned. The major version is the first + part of the dot-separated version string. + + For a description of the *best* parameter, see the :func:`distro.version` + method. + """ + return _distro.major_version(best) + + +def minor_version(best=False): + """ + Return the minor version of the current Linux distribution, as a string, + if provided. + Otherwise, the empty string is returned. The minor version is the second + part of the dot-separated version string. + + For a description of the *best* parameter, see the :func:`distro.version` + method. + """ + return _distro.minor_version(best) + + +def build_number(best=False): + """ + Return the build number of the current Linux distribution, as a string, + if provided. + Otherwise, the empty string is returned. The build number is the third part + of the dot-separated version string. + + For a description of the *best* parameter, see the :func:`distro.version` + method. + """ + return _distro.build_number(best) + + +def like(): + """ + Return a space-separated list of distro IDs of distributions that are + closely related to the current Linux distribution in regards to packaging + and programming interfaces, for example distributions the current + distribution is a derivative from. + + **Lookup hierarchy:** + + This information item is only provided by the os-release file. + For details, see the description of the "ID_LIKE" attribute in the + `os-release man page + <http://www.freedesktop.org/software/systemd/man/os-release.html>`_. + """ + return _distro.like() + + +def codename(): + """ + Return the codename for the release of the current Linux distribution, + as a string. + + If the distribution does not have a codename, an empty string is returned. + + Note that the returned codename is not always really a codename. For + example, openSUSE returns "x86_64". This function does not handle such + cases in any special way and just returns the string it finds, if any. + + **Lookup hierarchy:** + + * the codename within the "VERSION" attribute of the os-release file, if + provided, + + * the value of the "Codename" attribute returned by the lsb_release + command, + + * the value of the "<codename>" field of the distro release file. + """ + return _distro.codename() + + +def info(pretty=False, best=False): + """ + Return certain machine-readable information items about the current Linux + distribution in a dictionary, as shown in the following example: + + .. sourcecode:: python + + { + 'id': 'rhel', + 'version': '7.0', + 'version_parts': { + 'major': '7', + 'minor': '0', + 'build_number': '' + }, + 'like': 'fedora', + 'codename': 'Maipo' + } + + The dictionary structure and keys are always the same, regardless of which + information items are available in the underlying data sources. The values + for the various keys are as follows: + + * ``id``: The result of :func:`distro.id`. + + * ``version``: The result of :func:`distro.version`. + + * ``version_parts -> major``: The result of :func:`distro.major_version`. + + * ``version_parts -> minor``: The result of :func:`distro.minor_version`. + + * ``version_parts -> build_number``: The result of + :func:`distro.build_number`. + + * ``like``: The result of :func:`distro.like`. + + * ``codename``: The result of :func:`distro.codename`. + + For a description of the *pretty* and *best* parameters, see the + :func:`distro.version` method. + """ + return _distro.info(pretty, best) + + +def os_release_info(): + """ + Return a dictionary containing key-value pairs for the information items + from the os-release file data source of the current Linux distribution. + + See `os-release file`_ for details about these information items. + """ + return _distro.os_release_info() + + +def lsb_release_info(): + """ + Return a dictionary containing key-value pairs for the information items + from the lsb_release command data source of the current Linux distribution. + + See `lsb_release command output`_ for details about these information + items. + """ + return _distro.lsb_release_info() + + +def distro_release_info(): + """ + Return a dictionary containing key-value pairs for the information items + from the distro release file data source of the current Linux distribution. + + See `distro release file`_ for details about these information items. + """ + return _distro.distro_release_info() + + +def os_release_attr(attribute): + """ + Return a single named information item from the os-release file data source + of the current Linux distribution. + + Parameters: + + * ``attribute`` (string): Key of the information item. + + Returns: + + * (string): Value of the information item, if the item exists. + The empty string, if the item does not exist. + + See `os-release file`_ for details about these information items. + """ + return _distro.os_release_attr(attribute) + + +def lsb_release_attr(attribute): + """ + Return a single named information item from the lsb_release command output + data source of the current Linux distribution. + + Parameters: + + * ``attribute`` (string): Key of the information item. + + Returns: + + * (string): Value of the information item, if the item exists. + The empty string, if the item does not exist. + + See `lsb_release command output`_ for details about these information + items. + """ + return _distro.lsb_release_attr(attribute) + + +def distro_release_attr(attribute): + """ + Return a single named information item from the distro release file + data source of the current Linux distribution. + + Parameters: + + * ``attribute`` (string): Key of the information item. + + Returns: + + * (string): Value of the information item, if the item exists. + The empty string, if the item does not exist. + + See `distro release file`_ for details about these information items. + """ + return _distro.distro_release_attr(attribute) + + +class cached_property(object): + """A version of @property which caches the value. On access, it calls the + underlying function and sets the value in `__dict__` so future accesses + will not re-call the property. + """ + def __init__(self, f): + self._fname = f.__name__ + self._f = f + + def __get__(self, obj, owner): + assert obj is not None, 'call {} on an instance'.format(self._fname) + ret = obj.__dict__[self._fname] = self._f(obj) + return ret + + +class LinuxDistribution(object): + """ + Provides information about a Linux distribution. + + This package creates a private module-global instance of this class with + default initialization arguments, that is used by the + `consolidated accessor functions`_ and `single source accessor functions`_. + By using default initialization arguments, that module-global instance + returns data about the current Linux distribution (i.e. the distro this + package runs on). + + Normally, it is not necessary to create additional instances of this class. + However, in situations where control is needed over the exact data sources + that are used, instances of this class can be created with a specific + distro release file, or a specific os-release file, or without invoking the + lsb_release command. + """ + + def __init__(self, + include_lsb=True, + os_release_file='', + distro_release_file=''): + """ + The initialization method of this class gathers information from the + available data sources, and stores that in private instance attributes. + Subsequent access to the information items uses these private instance + attributes, so that the data sources are read only once. + + Parameters: + + * ``include_lsb`` (bool): Controls whether the + `lsb_release command output`_ is included as a data source. + + If the lsb_release command is not available in the program execution + path, the data source for the lsb_release command will be empty. + + * ``os_release_file`` (string): The path name of the + `os-release file`_ that is to be used as a data source. + + An empty string (the default) will cause the default path name to + be used (see `os-release file`_ for details). + + If the specified or defaulted os-release file does not exist, the + data source for the os-release file will be empty. + + * ``distro_release_file`` (string): The path name of the + `distro release file`_ that is to be used as a data source. + + An empty string (the default) will cause a default search algorithm + to be used (see `distro release file`_ for details). + + If the specified distro release file does not exist, or if no default + distro release file can be found, the data source for the distro + release file will be empty. + + Public instance attributes: + + * ``os_release_file`` (string): The path name of the + `os-release file`_ that is actually used as a data source. The + empty string if no distro release file is used as a data source. + + * ``distro_release_file`` (string): The path name of the + `distro release file`_ that is actually used as a data source. The + empty string if no distro release file is used as a data source. + + * ``include_lsb`` (bool): The result of the ``include_lsb`` parameter. + This controls whether the lsb information will be loaded. + + Raises: + + * :py:exc:`IOError`: Some I/O issue with an os-release file or distro + release file. + + * :py:exc:`subprocess.CalledProcessError`: The lsb_release command had + some issue (other than not being available in the program execution + path). + + * :py:exc:`UnicodeError`: A data source has unexpected characters or + uses an unexpected encoding. + """ + self.os_release_file = os_release_file or \ + os.path.join(_UNIXCONFDIR, _OS_RELEASE_BASENAME) + self.distro_release_file = distro_release_file or '' # updated later + self.include_lsb = include_lsb + + def __repr__(self): + """Return repr of all info + """ + return \ + "LinuxDistribution(" \ + "os_release_file={self.os_release_file!r}, " \ + "distro_release_file={self.distro_release_file!r}, " \ + "include_lsb={self.include_lsb!r}, " \ + "_os_release_info={self._os_release_info!r}, " \ + "_lsb_release_info={self._lsb_release_info!r}, " \ + "_distro_release_info={self._distro_release_info!r})".format( + self=self) + + def linux_distribution(self, full_distribution_name=True): + """ + Return information about the Linux distribution that is compatible + with Python's :func:`platform.linux_distribution`, supporting a subset + of its parameters. + + For details, see :func:`distro.linux_distribution`. + """ + return ( + self.name() if full_distribution_name else self.id(), + self.version(), + self.codename() + ) + + def id(self): + """Return the distro ID of the Linux distribution, as a string. + + For details, see :func:`distro.id`. + """ + def normalize(distro_id, table): + distro_id = distro_id.lower().replace(' ', '_') + return table.get(distro_id, distro_id) + + distro_id = self.os_release_attr('id') + if distro_id: + return normalize(distro_id, NORMALIZED_OS_ID) + + distro_id = self.lsb_release_attr('distributor_id') + if distro_id: + return normalize(distro_id, NORMALIZED_LSB_ID) + + distro_id = self.distro_release_attr('id') + if distro_id: + return normalize(distro_id, NORMALIZED_DISTRO_ID) + + return '' + + def name(self, pretty=False): + """ + Return the name of the Linux distribution, as a string. + + For details, see :func:`distro.name`. + """ + name = self.os_release_attr('name') \ + or self.lsb_release_attr('distributor_id') \ + or self.distro_release_attr('name') + if pretty: + name = self.os_release_attr('pretty_name') \ + or self.lsb_release_attr('description') + if not name: + name = self.distro_release_attr('name') + version = self.version(pretty=True) + if version: + name = name + ' ' + version + return name or '' + + def version(self, pretty=False, best=False): + """ + Return the version of the Linux distribution, as a string. + + For details, see :func:`distro.version`. + """ + versions = [ + self.os_release_attr('version_id'), + self.lsb_release_attr('release'), + self.distro_release_attr('version_id'), + self._parse_distro_release_content( + self.os_release_attr('pretty_name')).get('version_id', ''), + self._parse_distro_release_content( + self.lsb_release_attr('description')).get('version_id', '') + ] + version = '' + if best: + # This algorithm uses the last version in priority order that has + # the best precision. If the versions are not in conflict, that + # does not matter; otherwise, using the last one instead of the + # first one might be considered a surprise. + for v in versions: + if v.count(".") > version.count(".") or version == '': + version = v + else: + for v in versions: + if v != '': + version = v + break + if pretty and version and self.codename(): + version = u'{0} ({1})'.format(version, self.codename()) + return version + + def version_parts(self, best=False): + """ + Return the version of the Linux distribution, as a tuple of version + numbers. + + For details, see :func:`distro.version_parts`. + """ + version_str = self.version(best=best) + if version_str: + version_regex = re.compile(r'(\d+)\.?(\d+)?\.?(\d+)?') + matches = version_regex.match(version_str) + if matches: + major, minor, build_number = matches.groups() + return major, minor or '', build_number or '' + return '', '', '' + + def major_version(self, best=False): + """ + Return the major version number of the current distribution. + + For details, see :func:`distro.major_version`. + """ + return self.version_parts(best)[0] + + def minor_version(self, best=False): + """ + Return the minor version number of the Linux distribution. + + For details, see :func:`distro.minor_version`. + """ + return self.version_parts(best)[1] + + def build_number(self, best=False): + """ + Return the build number of the Linux distribution. + + For details, see :func:`distro.build_number`. + """ + return self.version_parts(best)[2] + + def like(self): + """ + Return the IDs of distributions that are like the Linux distribution. + + For details, see :func:`distro.like`. + """ + return self.os_release_attr('id_like') or '' + + def codename(self): + """ + Return the codename of the Linux distribution. + + For details, see :func:`distro.codename`. + """ + return self.os_release_attr('codename') \ + or self.lsb_release_attr('codename') \ + or self.distro_release_attr('codename') \ + or '' + + def info(self, pretty=False, best=False): + """ + Return certain machine-readable information about the Linux + distribution. + + For details, see :func:`distro.info`. + """ + return dict( + id=self.id(), + version=self.version(pretty, best), + version_parts=dict( + major=self.major_version(best), + minor=self.minor_version(best), + build_number=self.build_number(best) + ), + like=self.like(), + codename=self.codename(), + ) + + def os_release_info(self): + """ + Return a dictionary containing key-value pairs for the information + items from the os-release file data source of the Linux distribution. + + For details, see :func:`distro.os_release_info`. + """ + return self._os_release_info + + def lsb_release_info(self): + """ + Return a dictionary containing key-value pairs for the information + items from the lsb_release command data source of the Linux + distribution. + + For details, see :func:`distro.lsb_release_info`. + """ + return self._lsb_release_info + + def distro_release_info(self): + """ + Return a dictionary containing key-value pairs for the information + items from the distro release file data source of the Linux + distribution. + + For details, see :func:`distro.distro_release_info`. + """ + return self._distro_release_info + + def os_release_attr(self, attribute): + """ + Return a single named information item from the os-release file data + source of the Linux distribution. + + For details, see :func:`distro.os_release_attr`. + """ + return self._os_release_info.get(attribute, '') + + def lsb_release_attr(self, attribute): + """ + Return a single named information item from the lsb_release command + output data source of the Linux distribution. + + For details, see :func:`distro.lsb_release_attr`. + """ + return self._lsb_release_info.get(attribute, '') + + def distro_release_attr(self, attribute): + """ + Return a single named information item from the distro release file + data source of the Linux distribution. + + For details, see :func:`distro.distro_release_attr`. + """ + return self._distro_release_info.get(attribute, '') + + @cached_property + def _os_release_info(self): + """ + Get the information items from the specified os-release file. + + Returns: + A dictionary containing all information items. + """ + if os.path.isfile(self.os_release_file): + with open(self.os_release_file) as release_file: + return self._parse_os_release_content(release_file) + return {} + + @staticmethod + def _parse_os_release_content(lines): + """ + Parse the lines of an os-release file. + + Parameters: + + * lines: Iterable through the lines in the os-release file. + Each line must be a unicode string or a UTF-8 encoded byte + string. + + Returns: + A dictionary containing all information items. + """ + props = {} + lexer = shlex.shlex(lines, posix=True) + lexer.whitespace_split = True + + # The shlex module defines its `wordchars` variable using literals, + # making it dependent on the encoding of the Python source file. + # In Python 2.6 and 2.7, the shlex source file is encoded in + # 'iso-8859-1', and the `wordchars` variable is defined as a byte + # string. This causes a UnicodeDecodeError to be raised when the + # parsed content is a unicode object. The following fix resolves that + # (... but it should be fixed in shlex...): + if sys.version_info[0] == 2 and isinstance(lexer.wordchars, bytes): + lexer.wordchars = lexer.wordchars.decode('iso-8859-1') + + tokens = list(lexer) + for token in tokens: + # At this point, all shell-like parsing has been done (i.e. + # comments processed, quotes and backslash escape sequences + # processed, multi-line values assembled, trailing newlines + # stripped, etc.), so the tokens are now either: + # * variable assignments: var=value + # * commands or their arguments (not allowed in os-release) + if '=' in token: + k, v = token.split('=', 1) + if isinstance(v, bytes): + v = v.decode('utf-8') + props[k.lower()] = v + if k == 'VERSION': + # this handles cases in which the codename is in + # the `(CODENAME)` (rhel, centos, fedora) format + # or in the `, CODENAME` format (Ubuntu). + codename = re.search(r'(\(\D+\))|,(\s+)?\D+', v) + if codename: + codename = codename.group() + codename = codename.strip('()') + codename = codename.strip(',') + codename = codename.strip() + # codename appears within paranthese. + props['codename'] = codename + else: + props['codename'] = '' + else: + # Ignore any tokens that are not variable assignments + pass + return props + + @cached_property + def _lsb_release_info(self): + """ + Get the information items from the lsb_release command output. + + Returns: + A dictionary containing all information items. + """ + if not self.include_lsb: + return {} + with open(os.devnull, 'w') as devnull: + try: + cmd = ('lsb_release', '-a') + stdout = subprocess.check_output(cmd, stderr=devnull) + except OSError: # Command not found + return {} + content = stdout.decode(sys.getfilesystemencoding()).splitlines() + return self._parse_lsb_release_content(content) + + @staticmethod + def _parse_lsb_release_content(lines): + """ + Parse the output of the lsb_release command. + + Parameters: + + * lines: Iterable through the lines of the lsb_release output. + Each line must be a unicode string or a UTF-8 encoded byte + string. + + Returns: + A dictionary containing all information items. + """ + props = {} + for line in lines: + kv = line.strip('\n').split(':', 1) + if len(kv) != 2: + # Ignore lines without colon. + continue + k, v = kv + props.update({k.replace(' ', '_').lower(): v.strip()}) + return props + + @cached_property + def _distro_release_info(self): + """ + Get the information items from the specified distro release file. + + Returns: + A dictionary containing all information items. + """ + if self.distro_release_file: + # If it was specified, we use it and parse what we can, even if + # its file name or content does not match the expected pattern. + distro_info = self._parse_distro_release_file( + self.distro_release_file) + basename = os.path.basename(self.distro_release_file) + # The file name pattern for user-specified distro release files + # is somewhat more tolerant (compared to when searching for the + # file), because we want to use what was specified as best as + # possible. + match = _DISTRO_RELEASE_BASENAME_PATTERN.match(basename) + if match: + distro_info['id'] = match.group(1) + return distro_info + else: + try: + basenames = os.listdir(_UNIXCONFDIR) + # We sort for repeatability in cases where there are multiple + # distro specific files; e.g. CentOS, Oracle, Enterprise all + # containing `redhat-release` on top of their own. + basenames.sort() + except OSError: + # This may occur when /etc is not readable but we can't be + # sure about the *-release files. Check common entries of + # /etc for information. If they turn out to not be there the + # error is handled in `_parse_distro_release_file()`. + basenames = ['SuSE-release', + 'arch-release', + 'base-release', + 'centos-release', + 'fedora-release', + 'gentoo-release', + 'mageia-release', + 'mandrake-release', + 'mandriva-release', + 'mandrivalinux-release', + 'manjaro-release', + 'oracle-release', + 'redhat-release', + 'sl-release', + 'slackware-version'] + for basename in basenames: + if basename in _DISTRO_RELEASE_IGNORE_BASENAMES: + continue + match = _DISTRO_RELEASE_BASENAME_PATTERN.match(basename) + if match: + filepath = os.path.join(_UNIXCONFDIR, basename) + distro_info = self._parse_distro_release_file(filepath) + if 'name' in distro_info: + # The name is always present if the pattern matches + self.distro_release_file = filepath + distro_info['id'] = match.group(1) + return distro_info + return {} + + def _parse_distro_release_file(self, filepath): + """ + Parse a distro release file. + + Parameters: + + * filepath: Path name of the distro release file. + + Returns: + A dictionary containing all information items. + """ + try: + with open(filepath) as fp: + # Only parse the first line. For instance, on SLES there + # are multiple lines. We don't want them... + return self._parse_distro_release_content(fp.readline()) + except (OSError, IOError): + # Ignore not being able to read a specific, seemingly version + # related file. + # See https://github.com/nir0s/distro/issues/162 + return {} + + @staticmethod + def _parse_distro_release_content(line): + """ + Parse a line from a distro release file. + + Parameters: + * line: Line from the distro release file. Must be a unicode string + or a UTF-8 encoded byte string. + + Returns: + A dictionary containing all information items. + """ + if isinstance(line, bytes): + line = line.decode('utf-8') + matches = _DISTRO_RELEASE_CONTENT_REVERSED_PATTERN.match( + line.strip()[::-1]) + distro_info = {} + if matches: + # regexp ensures non-None + distro_info['name'] = matches.group(3)[::-1] + if matches.group(2): + distro_info['version_id'] = matches.group(2)[::-1] + if matches.group(1): + distro_info['codename'] = matches.group(1)[::-1] + elif line: + distro_info['name'] = line.strip() + return distro_info + + +_distro = LinuxDistribution() + + +def main(): + logger = logging.getLogger(__name__) + logger.setLevel(logging.DEBUG) + logger.addHandler(logging.StreamHandler(sys.stdout)) + + parser = argparse.ArgumentParser(description="Linux distro info tool") + parser.add_argument( + '--json', + '-j', + help="Output in machine readable format", + action="store_true") + args = parser.parse_args() + + if args.json: + logger.info(json.dumps(info(), indent=4, sort_keys=True)) + else: + logger.info('Name: %s', name(pretty=True)) + distribution_version = version(pretty=True) + logger.info('Version: %s', distribution_version) + distribution_codename = codename() + logger.info('Codename: %s', distribution_codename) + + +if __name__ == '__main__': + main() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/__init__.py new file mode 100644 index 00000000..04912349 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/__init__.py @@ -0,0 +1,35 @@ +""" +HTML parsing library based on the `WHATWG HTML specification +<https://whatwg.org/html>`_. The parser is designed to be compatible with +existing HTML found in the wild and implements well-defined error recovery that +is largely compatible with modern desktop web browsers. + +Example usage:: + + from pip._vendor import html5lib + with open("my_document.html", "rb") as f: + tree = html5lib.parse(f) + +For convenience, this module re-exports the following names: + +* :func:`~.html5parser.parse` +* :func:`~.html5parser.parseFragment` +* :class:`~.html5parser.HTMLParser` +* :func:`~.treebuilders.getTreeBuilder` +* :func:`~.treewalkers.getTreeWalker` +* :func:`~.serializer.serialize` +""" + +from __future__ import absolute_import, division, unicode_literals + +from .html5parser import HTMLParser, parse, parseFragment +from .treebuilders import getTreeBuilder +from .treewalkers import getTreeWalker +from .serializer import serialize + +__all__ = ["HTMLParser", "parse", "parseFragment", "getTreeBuilder", + "getTreeWalker", "serialize"] + +# this has to be at the top level, see how setup.py parses this +#: Distribution version number. +__version__ = "1.0.1" diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_ihatexml.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_ihatexml.py new file mode 100644 index 00000000..4c77717b --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_ihatexml.py @@ -0,0 +1,288 @@ +from __future__ import absolute_import, division, unicode_literals + +import re +import warnings + +from .constants import DataLossWarning + +baseChar = """ +[#x0041-#x005A] | [#x0061-#x007A] | [#x00C0-#x00D6] | [#x00D8-#x00F6] | +[#x00F8-#x00FF] | [#x0100-#x0131] | [#x0134-#x013E] | [#x0141-#x0148] | +[#x014A-#x017E] | [#x0180-#x01C3] | [#x01CD-#x01F0] | [#x01F4-#x01F5] | +[#x01FA-#x0217] | [#x0250-#x02A8] | [#x02BB-#x02C1] | #x0386 | +[#x0388-#x038A] | #x038C | [#x038E-#x03A1] | [#x03A3-#x03CE] | +[#x03D0-#x03D6] | #x03DA | #x03DC | #x03DE | #x03E0 | [#x03E2-#x03F3] | +[#x0401-#x040C] | [#x040E-#x044F] | [#x0451-#x045C] | [#x045E-#x0481] | +[#x0490-#x04C4] | [#x04C7-#x04C8] | [#x04CB-#x04CC] | [#x04D0-#x04EB] | +[#x04EE-#x04F5] | [#x04F8-#x04F9] | [#x0531-#x0556] | #x0559 | +[#x0561-#x0586] | [#x05D0-#x05EA] | [#x05F0-#x05F2] | [#x0621-#x063A] | +[#x0641-#x064A] | [#x0671-#x06B7] | [#x06BA-#x06BE] | [#x06C0-#x06CE] | +[#x06D0-#x06D3] | #x06D5 | [#x06E5-#x06E6] | [#x0905-#x0939] | #x093D | +[#x0958-#x0961] | [#x0985-#x098C] | [#x098F-#x0990] | [#x0993-#x09A8] | +[#x09AA-#x09B0] | #x09B2 | [#x09B6-#x09B9] | [#x09DC-#x09DD] | +[#x09DF-#x09E1] | [#x09F0-#x09F1] | [#x0A05-#x0A0A] | [#x0A0F-#x0A10] | +[#x0A13-#x0A28] | [#x0A2A-#x0A30] | [#x0A32-#x0A33] | [#x0A35-#x0A36] | +[#x0A38-#x0A39] | [#x0A59-#x0A5C] | #x0A5E | [#x0A72-#x0A74] | +[#x0A85-#x0A8B] | #x0A8D | [#x0A8F-#x0A91] | [#x0A93-#x0AA8] | +[#x0AAA-#x0AB0] | [#x0AB2-#x0AB3] | [#x0AB5-#x0AB9] | #x0ABD | #x0AE0 | +[#x0B05-#x0B0C] | [#x0B0F-#x0B10] | [#x0B13-#x0B28] | [#x0B2A-#x0B30] | +[#x0B32-#x0B33] | [#x0B36-#x0B39] | #x0B3D | [#x0B5C-#x0B5D] | +[#x0B5F-#x0B61] | [#x0B85-#x0B8A] | [#x0B8E-#x0B90] | [#x0B92-#x0B95] | +[#x0B99-#x0B9A] | #x0B9C | [#x0B9E-#x0B9F] | [#x0BA3-#x0BA4] | +[#x0BA8-#x0BAA] | [#x0BAE-#x0BB5] | [#x0BB7-#x0BB9] | [#x0C05-#x0C0C] | +[#x0C0E-#x0C10] | [#x0C12-#x0C28] | [#x0C2A-#x0C33] | [#x0C35-#x0C39] | +[#x0C60-#x0C61] | [#x0C85-#x0C8C] | [#x0C8E-#x0C90] | [#x0C92-#x0CA8] | +[#x0CAA-#x0CB3] | [#x0CB5-#x0CB9] | #x0CDE | [#x0CE0-#x0CE1] | +[#x0D05-#x0D0C] | [#x0D0E-#x0D10] | [#x0D12-#x0D28] | [#x0D2A-#x0D39] | +[#x0D60-#x0D61] | [#x0E01-#x0E2E] | #x0E30 | [#x0E32-#x0E33] | +[#x0E40-#x0E45] | [#x0E81-#x0E82] | #x0E84 | [#x0E87-#x0E88] | #x0E8A | +#x0E8D | [#x0E94-#x0E97] | [#x0E99-#x0E9F] | [#x0EA1-#x0EA3] | #x0EA5 | +#x0EA7 | [#x0EAA-#x0EAB] | [#x0EAD-#x0EAE] | #x0EB0 | [#x0EB2-#x0EB3] | +#x0EBD | [#x0EC0-#x0EC4] | [#x0F40-#x0F47] | [#x0F49-#x0F69] | +[#x10A0-#x10C5] | [#x10D0-#x10F6] | #x1100 | [#x1102-#x1103] | +[#x1105-#x1107] | #x1109 | [#x110B-#x110C] | [#x110E-#x1112] | #x113C | +#x113E | #x1140 | #x114C | #x114E | #x1150 | [#x1154-#x1155] | #x1159 | +[#x115F-#x1161] | #x1163 | #x1165 | #x1167 | #x1169 | [#x116D-#x116E] | +[#x1172-#x1173] | #x1175 | #x119E | #x11A8 | #x11AB | [#x11AE-#x11AF] | +[#x11B7-#x11B8] | #x11BA | [#x11BC-#x11C2] | #x11EB | #x11F0 | #x11F9 | +[#x1E00-#x1E9B] | [#x1EA0-#x1EF9] | [#x1F00-#x1F15] | [#x1F18-#x1F1D] | +[#x1F20-#x1F45] | [#x1F48-#x1F4D] | [#x1F50-#x1F57] | #x1F59 | #x1F5B | +#x1F5D | [#x1F5F-#x1F7D] | [#x1F80-#x1FB4] | [#x1FB6-#x1FBC] | #x1FBE | +[#x1FC2-#x1FC4] | [#x1FC6-#x1FCC] | [#x1FD0-#x1FD3] | [#x1FD6-#x1FDB] | +[#x1FE0-#x1FEC] | [#x1FF2-#x1FF4] | [#x1FF6-#x1FFC] | #x2126 | +[#x212A-#x212B] | #x212E | [#x2180-#x2182] | [#x3041-#x3094] | +[#x30A1-#x30FA] | [#x3105-#x312C] | [#xAC00-#xD7A3]""" + +ideographic = """[#x4E00-#x9FA5] | #x3007 | [#x3021-#x3029]""" + +combiningCharacter = """ +[#x0300-#x0345] | [#x0360-#x0361] | [#x0483-#x0486] | [#x0591-#x05A1] | +[#x05A3-#x05B9] | [#x05BB-#x05BD] | #x05BF | [#x05C1-#x05C2] | #x05C4 | +[#x064B-#x0652] | #x0670 | [#x06D6-#x06DC] | [#x06DD-#x06DF] | +[#x06E0-#x06E4] | [#x06E7-#x06E8] | [#x06EA-#x06ED] | [#x0901-#x0903] | +#x093C | [#x093E-#x094C] | #x094D | [#x0951-#x0954] | [#x0962-#x0963] | +[#x0981-#x0983] | #x09BC | #x09BE | #x09BF | [#x09C0-#x09C4] | +[#x09C7-#x09C8] | [#x09CB-#x09CD] | #x09D7 | [#x09E2-#x09E3] | #x0A02 | +#x0A3C | #x0A3E | #x0A3F | [#x0A40-#x0A42] | [#x0A47-#x0A48] | +[#x0A4B-#x0A4D] | [#x0A70-#x0A71] | [#x0A81-#x0A83] | #x0ABC | +[#x0ABE-#x0AC5] | [#x0AC7-#x0AC9] | [#x0ACB-#x0ACD] | [#x0B01-#x0B03] | +#x0B3C | [#x0B3E-#x0B43] | [#x0B47-#x0B48] | [#x0B4B-#x0B4D] | +[#x0B56-#x0B57] | [#x0B82-#x0B83] | [#x0BBE-#x0BC2] | [#x0BC6-#x0BC8] | +[#x0BCA-#x0BCD] | #x0BD7 | [#x0C01-#x0C03] | [#x0C3E-#x0C44] | +[#x0C46-#x0C48] | [#x0C4A-#x0C4D] | [#x0C55-#x0C56] | [#x0C82-#x0C83] | +[#x0CBE-#x0CC4] | [#x0CC6-#x0CC8] | [#x0CCA-#x0CCD] | [#x0CD5-#x0CD6] | +[#x0D02-#x0D03] | [#x0D3E-#x0D43] | [#x0D46-#x0D48] | [#x0D4A-#x0D4D] | +#x0D57 | #x0E31 | [#x0E34-#x0E3A] | [#x0E47-#x0E4E] | #x0EB1 | +[#x0EB4-#x0EB9] | [#x0EBB-#x0EBC] | [#x0EC8-#x0ECD] | [#x0F18-#x0F19] | +#x0F35 | #x0F37 | #x0F39 | #x0F3E | #x0F3F | [#x0F71-#x0F84] | +[#x0F86-#x0F8B] | [#x0F90-#x0F95] | #x0F97 | [#x0F99-#x0FAD] | +[#x0FB1-#x0FB7] | #x0FB9 | [#x20D0-#x20DC] | #x20E1 | [#x302A-#x302F] | +#x3099 | #x309A""" + +digit = """ +[#x0030-#x0039] | [#x0660-#x0669] | [#x06F0-#x06F9] | [#x0966-#x096F] | +[#x09E6-#x09EF] | [#x0A66-#x0A6F] | [#x0AE6-#x0AEF] | [#x0B66-#x0B6F] | +[#x0BE7-#x0BEF] | [#x0C66-#x0C6F] | [#x0CE6-#x0CEF] | [#x0D66-#x0D6F] | +[#x0E50-#x0E59] | [#x0ED0-#x0ED9] | [#x0F20-#x0F29]""" + +extender = """ +#x00B7 | #x02D0 | #x02D1 | #x0387 | #x0640 | #x0E46 | #x0EC6 | #x3005 | +#[#x3031-#x3035] | [#x309D-#x309E] | [#x30FC-#x30FE]""" + +letter = " | ".join([baseChar, ideographic]) + +# Without the +name = " | ".join([letter, digit, ".", "-", "_", combiningCharacter, + extender]) +nameFirst = " | ".join([letter, "_"]) + +reChar = re.compile(r"#x([\d|A-F]{4,4})") +reCharRange = re.compile(r"\[#x([\d|A-F]{4,4})-#x([\d|A-F]{4,4})\]") + + +def charStringToList(chars): + charRanges = [item.strip() for item in chars.split(" | ")] + rv = [] + for item in charRanges: + foundMatch = False + for regexp in (reChar, reCharRange): + match = regexp.match(item) + if match is not None: + rv.append([hexToInt(item) for item in match.groups()]) + if len(rv[-1]) == 1: + rv[-1] = rv[-1] * 2 + foundMatch = True + break + if not foundMatch: + assert len(item) == 1 + + rv.append([ord(item)] * 2) + rv = normaliseCharList(rv) + return rv + + +def normaliseCharList(charList): + charList = sorted(charList) + for item in charList: + assert item[1] >= item[0] + rv = [] + i = 0 + while i < len(charList): + j = 1 + rv.append(charList[i]) + while i + j < len(charList) and charList[i + j][0] <= rv[-1][1] + 1: + rv[-1][1] = charList[i + j][1] + j += 1 + i += j + return rv + +# We don't really support characters above the BMP :( +max_unicode = int("FFFF", 16) + + +def missingRanges(charList): + rv = [] + if charList[0] != 0: + rv.append([0, charList[0][0] - 1]) + for i, item in enumerate(charList[:-1]): + rv.append([item[1] + 1, charList[i + 1][0] - 1]) + if charList[-1][1] != max_unicode: + rv.append([charList[-1][1] + 1, max_unicode]) + return rv + + +def listToRegexpStr(charList): + rv = [] + for item in charList: + if item[0] == item[1]: + rv.append(escapeRegexp(chr(item[0]))) + else: + rv.append(escapeRegexp(chr(item[0])) + "-" + + escapeRegexp(chr(item[1]))) + return "[%s]" % "".join(rv) + + +def hexToInt(hex_str): + return int(hex_str, 16) + + +def escapeRegexp(string): + specialCharacters = (".", "^", "$", "*", "+", "?", "{", "}", + "[", "]", "|", "(", ")", "-") + for char in specialCharacters: + string = string.replace(char, "\\" + char) + + return string + +# output from the above +nonXmlNameBMPRegexp = re.compile('[\x00-,/:-@\\[-\\^`\\{-\xb6\xb8-\xbf\xd7\xf7\u0132-\u0133\u013f-\u0140\u0149\u017f\u01c4-\u01cc\u01f1-\u01f3\u01f6-\u01f9\u0218-\u024f\u02a9-\u02ba\u02c2-\u02cf\u02d2-\u02ff\u0346-\u035f\u0362-\u0385\u038b\u038d\u03a2\u03cf\u03d7-\u03d9\u03db\u03dd\u03df\u03e1\u03f4-\u0400\u040d\u0450\u045d\u0482\u0487-\u048f\u04c5-\u04c6\u04c9-\u04ca\u04cd-\u04cf\u04ec-\u04ed\u04f6-\u04f7\u04fa-\u0530\u0557-\u0558\u055a-\u0560\u0587-\u0590\u05a2\u05ba\u05be\u05c0\u05c3\u05c5-\u05cf\u05eb-\u05ef\u05f3-\u0620\u063b-\u063f\u0653-\u065f\u066a-\u066f\u06b8-\u06b9\u06bf\u06cf\u06d4\u06e9\u06ee-\u06ef\u06fa-\u0900\u0904\u093a-\u093b\u094e-\u0950\u0955-\u0957\u0964-\u0965\u0970-\u0980\u0984\u098d-\u098e\u0991-\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba-\u09bb\u09bd\u09c5-\u09c6\u09c9-\u09ca\u09ce-\u09d6\u09d8-\u09db\u09de\u09e4-\u09e5\u09f2-\u0a01\u0a03-\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a-\u0a3b\u0a3d\u0a43-\u0a46\u0a49-\u0a4a\u0a4e-\u0a58\u0a5d\u0a5f-\u0a65\u0a75-\u0a80\u0a84\u0a8c\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba-\u0abb\u0ac6\u0aca\u0ace-\u0adf\u0ae1-\u0ae5\u0af0-\u0b00\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29\u0b31\u0b34-\u0b35\u0b3a-\u0b3b\u0b44-\u0b46\u0b49-\u0b4a\u0b4e-\u0b55\u0b58-\u0b5b\u0b5e\u0b62-\u0b65\u0b70-\u0b81\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bb6\u0bba-\u0bbd\u0bc3-\u0bc5\u0bc9\u0bce-\u0bd6\u0bd8-\u0be6\u0bf0-\u0c00\u0c04\u0c0d\u0c11\u0c29\u0c34\u0c3a-\u0c3d\u0c45\u0c49\u0c4e-\u0c54\u0c57-\u0c5f\u0c62-\u0c65\u0c70-\u0c81\u0c84\u0c8d\u0c91\u0ca9\u0cb4\u0cba-\u0cbd\u0cc5\u0cc9\u0cce-\u0cd4\u0cd7-\u0cdd\u0cdf\u0ce2-\u0ce5\u0cf0-\u0d01\u0d04\u0d0d\u0d11\u0d29\u0d3a-\u0d3d\u0d44-\u0d45\u0d49\u0d4e-\u0d56\u0d58-\u0d5f\u0d62-\u0d65\u0d70-\u0e00\u0e2f\u0e3b-\u0e3f\u0e4f\u0e5a-\u0e80\u0e83\u0e85-\u0e86\u0e89\u0e8b-\u0e8c\u0e8e-\u0e93\u0e98\u0ea0\u0ea4\u0ea6\u0ea8-\u0ea9\u0eac\u0eaf\u0eba\u0ebe-\u0ebf\u0ec5\u0ec7\u0ece-\u0ecf\u0eda-\u0f17\u0f1a-\u0f1f\u0f2a-\u0f34\u0f36\u0f38\u0f3a-\u0f3d\u0f48\u0f6a-\u0f70\u0f85\u0f8c-\u0f8f\u0f96\u0f98\u0fae-\u0fb0\u0fb8\u0fba-\u109f\u10c6-\u10cf\u10f7-\u10ff\u1101\u1104\u1108\u110a\u110d\u1113-\u113b\u113d\u113f\u1141-\u114b\u114d\u114f\u1151-\u1153\u1156-\u1158\u115a-\u115e\u1162\u1164\u1166\u1168\u116a-\u116c\u116f-\u1171\u1174\u1176-\u119d\u119f-\u11a7\u11a9-\u11aa\u11ac-\u11ad\u11b0-\u11b6\u11b9\u11bb\u11c3-\u11ea\u11ec-\u11ef\u11f1-\u11f8\u11fa-\u1dff\u1e9c-\u1e9f\u1efa-\u1eff\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e-\u1f7f\u1fb5\u1fbd\u1fbf-\u1fc1\u1fc5\u1fcd-\u1fcf\u1fd4-\u1fd5\u1fdc-\u1fdf\u1fed-\u1ff1\u1ff5\u1ffd-\u20cf\u20dd-\u20e0\u20e2-\u2125\u2127-\u2129\u212c-\u212d\u212f-\u217f\u2183-\u3004\u3006\u3008-\u3020\u3030\u3036-\u3040\u3095-\u3098\u309b-\u309c\u309f-\u30a0\u30fb\u30ff-\u3104\u312d-\u4dff\u9fa6-\uabff\ud7a4-\uffff]') # noqa + +nonXmlNameFirstBMPRegexp = re.compile('[\x00-@\\[-\\^`\\{-\xbf\xd7\xf7\u0132-\u0133\u013f-\u0140\u0149\u017f\u01c4-\u01cc\u01f1-\u01f3\u01f6-\u01f9\u0218-\u024f\u02a9-\u02ba\u02c2-\u0385\u0387\u038b\u038d\u03a2\u03cf\u03d7-\u03d9\u03db\u03dd\u03df\u03e1\u03f4-\u0400\u040d\u0450\u045d\u0482-\u048f\u04c5-\u04c6\u04c9-\u04ca\u04cd-\u04cf\u04ec-\u04ed\u04f6-\u04f7\u04fa-\u0530\u0557-\u0558\u055a-\u0560\u0587-\u05cf\u05eb-\u05ef\u05f3-\u0620\u063b-\u0640\u064b-\u0670\u06b8-\u06b9\u06bf\u06cf\u06d4\u06d6-\u06e4\u06e7-\u0904\u093a-\u093c\u093e-\u0957\u0962-\u0984\u098d-\u098e\u0991-\u0992\u09a9\u09b1\u09b3-\u09b5\u09ba-\u09db\u09de\u09e2-\u09ef\u09f2-\u0a04\u0a0b-\u0a0e\u0a11-\u0a12\u0a29\u0a31\u0a34\u0a37\u0a3a-\u0a58\u0a5d\u0a5f-\u0a71\u0a75-\u0a84\u0a8c\u0a8e\u0a92\u0aa9\u0ab1\u0ab4\u0aba-\u0abc\u0abe-\u0adf\u0ae1-\u0b04\u0b0d-\u0b0e\u0b11-\u0b12\u0b29\u0b31\u0b34-\u0b35\u0b3a-\u0b3c\u0b3e-\u0b5b\u0b5e\u0b62-\u0b84\u0b8b-\u0b8d\u0b91\u0b96-\u0b98\u0b9b\u0b9d\u0ba0-\u0ba2\u0ba5-\u0ba7\u0bab-\u0bad\u0bb6\u0bba-\u0c04\u0c0d\u0c11\u0c29\u0c34\u0c3a-\u0c5f\u0c62-\u0c84\u0c8d\u0c91\u0ca9\u0cb4\u0cba-\u0cdd\u0cdf\u0ce2-\u0d04\u0d0d\u0d11\u0d29\u0d3a-\u0d5f\u0d62-\u0e00\u0e2f\u0e31\u0e34-\u0e3f\u0e46-\u0e80\u0e83\u0e85-\u0e86\u0e89\u0e8b-\u0e8c\u0e8e-\u0e93\u0e98\u0ea0\u0ea4\u0ea6\u0ea8-\u0ea9\u0eac\u0eaf\u0eb1\u0eb4-\u0ebc\u0ebe-\u0ebf\u0ec5-\u0f3f\u0f48\u0f6a-\u109f\u10c6-\u10cf\u10f7-\u10ff\u1101\u1104\u1108\u110a\u110d\u1113-\u113b\u113d\u113f\u1141-\u114b\u114d\u114f\u1151-\u1153\u1156-\u1158\u115a-\u115e\u1162\u1164\u1166\u1168\u116a-\u116c\u116f-\u1171\u1174\u1176-\u119d\u119f-\u11a7\u11a9-\u11aa\u11ac-\u11ad\u11b0-\u11b6\u11b9\u11bb\u11c3-\u11ea\u11ec-\u11ef\u11f1-\u11f8\u11fa-\u1dff\u1e9c-\u1e9f\u1efa-\u1eff\u1f16-\u1f17\u1f1e-\u1f1f\u1f46-\u1f47\u1f4e-\u1f4f\u1f58\u1f5a\u1f5c\u1f5e\u1f7e-\u1f7f\u1fb5\u1fbd\u1fbf-\u1fc1\u1fc5\u1fcd-\u1fcf\u1fd4-\u1fd5\u1fdc-\u1fdf\u1fed-\u1ff1\u1ff5\u1ffd-\u2125\u2127-\u2129\u212c-\u212d\u212f-\u217f\u2183-\u3006\u3008-\u3020\u302a-\u3040\u3095-\u30a0\u30fb-\u3104\u312d-\u4dff\u9fa6-\uabff\ud7a4-\uffff]') # noqa + +# Simpler things +nonPubidCharRegexp = re.compile("[^\x20\x0D\x0Aa-zA-Z0-9\\-'()+,./:=?;!*#@$_%]") + + +class InfosetFilter(object): + replacementRegexp = re.compile(r"U[\dA-F]{5,5}") + + def __init__(self, + dropXmlnsLocalName=False, + dropXmlnsAttrNs=False, + preventDoubleDashComments=False, + preventDashAtCommentEnd=False, + replaceFormFeedCharacters=True, + preventSingleQuotePubid=False): + + self.dropXmlnsLocalName = dropXmlnsLocalName + self.dropXmlnsAttrNs = dropXmlnsAttrNs + + self.preventDoubleDashComments = preventDoubleDashComments + self.preventDashAtCommentEnd = preventDashAtCommentEnd + + self.replaceFormFeedCharacters = replaceFormFeedCharacters + + self.preventSingleQuotePubid = preventSingleQuotePubid + + self.replaceCache = {} + + def coerceAttribute(self, name, namespace=None): + if self.dropXmlnsLocalName and name.startswith("xmlns:"): + warnings.warn("Attributes cannot begin with xmlns", DataLossWarning) + return None + elif (self.dropXmlnsAttrNs and + namespace == "http://www.w3.org/2000/xmlns/"): + warnings.warn("Attributes cannot be in the xml namespace", DataLossWarning) + return None + else: + return self.toXmlName(name) + + def coerceElement(self, name): + return self.toXmlName(name) + + def coerceComment(self, data): + if self.preventDoubleDashComments: + while "--" in data: + warnings.warn("Comments cannot contain adjacent dashes", DataLossWarning) + data = data.replace("--", "- -") + if data.endswith("-"): + warnings.warn("Comments cannot end in a dash", DataLossWarning) + data += " " + return data + + def coerceCharacters(self, data): + if self.replaceFormFeedCharacters: + for _ in range(data.count("\x0C")): + warnings.warn("Text cannot contain U+000C", DataLossWarning) + data = data.replace("\x0C", " ") + # Other non-xml characters + return data + + def coercePubid(self, data): + dataOutput = data + for char in nonPubidCharRegexp.findall(data): + warnings.warn("Coercing non-XML pubid", DataLossWarning) + replacement = self.getReplacementCharacter(char) + dataOutput = dataOutput.replace(char, replacement) + if self.preventSingleQuotePubid and dataOutput.find("'") >= 0: + warnings.warn("Pubid cannot contain single quote", DataLossWarning) + dataOutput = dataOutput.replace("'", self.getReplacementCharacter("'")) + return dataOutput + + def toXmlName(self, name): + nameFirst = name[0] + nameRest = name[1:] + m = nonXmlNameFirstBMPRegexp.match(nameFirst) + if m: + warnings.warn("Coercing non-XML name", DataLossWarning) + nameFirstOutput = self.getReplacementCharacter(nameFirst) + else: + nameFirstOutput = nameFirst + + nameRestOutput = nameRest + replaceChars = set(nonXmlNameBMPRegexp.findall(nameRest)) + for char in replaceChars: + warnings.warn("Coercing non-XML name", DataLossWarning) + replacement = self.getReplacementCharacter(char) + nameRestOutput = nameRestOutput.replace(char, replacement) + return nameFirstOutput + nameRestOutput + + def getReplacementCharacter(self, char): + if char in self.replaceCache: + replacement = self.replaceCache[char] + else: + replacement = self.escapeChar(char) + return replacement + + def fromXmlName(self, name): + for item in set(self.replacementRegexp.findall(name)): + name = name.replace(item, self.unescapeChar(item)) + return name + + def escapeChar(self, char): + replacement = "U%05X" % ord(char) + self.replaceCache[char] = replacement + return replacement + + def unescapeChar(self, charcode): + return chr(int(charcode[1:], 16)) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_inputstream.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_inputstream.py new file mode 100644 index 00000000..a65e55f6 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_inputstream.py @@ -0,0 +1,923 @@ +from __future__ import absolute_import, division, unicode_literals + +from pip._vendor.six import text_type, binary_type +from pip._vendor.six.moves import http_client, urllib + +import codecs +import re + +from pip._vendor import webencodings + +from .constants import EOF, spaceCharacters, asciiLetters, asciiUppercase +from .constants import _ReparseException +from . import _utils + +from io import StringIO + +try: + from io import BytesIO +except ImportError: + BytesIO = StringIO + +# Non-unicode versions of constants for use in the pre-parser +spaceCharactersBytes = frozenset([item.encode("ascii") for item in spaceCharacters]) +asciiLettersBytes = frozenset([item.encode("ascii") for item in asciiLetters]) +asciiUppercaseBytes = frozenset([item.encode("ascii") for item in asciiUppercase]) +spacesAngleBrackets = spaceCharactersBytes | frozenset([b">", b"<"]) + + +invalid_unicode_no_surrogate = "[\u0001-\u0008\u000B\u000E-\u001F\u007F-\u009F\uFDD0-\uFDEF\uFFFE\uFFFF\U0001FFFE\U0001FFFF\U0002FFFE\U0002FFFF\U0003FFFE\U0003FFFF\U0004FFFE\U0004FFFF\U0005FFFE\U0005FFFF\U0006FFFE\U0006FFFF\U0007FFFE\U0007FFFF\U0008FFFE\U0008FFFF\U0009FFFE\U0009FFFF\U000AFFFE\U000AFFFF\U000BFFFE\U000BFFFF\U000CFFFE\U000CFFFF\U000DFFFE\U000DFFFF\U000EFFFE\U000EFFFF\U000FFFFE\U000FFFFF\U0010FFFE\U0010FFFF]" # noqa + +if _utils.supports_lone_surrogates: + # Use one extra step of indirection and create surrogates with + # eval. Not using this indirection would introduce an illegal + # unicode literal on platforms not supporting such lone + # surrogates. + assert invalid_unicode_no_surrogate[-1] == "]" and invalid_unicode_no_surrogate.count("]") == 1 + invalid_unicode_re = re.compile(invalid_unicode_no_surrogate[:-1] + + eval('"\\uD800-\\uDFFF"') + # pylint:disable=eval-used + "]") +else: + invalid_unicode_re = re.compile(invalid_unicode_no_surrogate) + +non_bmp_invalid_codepoints = set([0x1FFFE, 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE, + 0x3FFFF, 0x4FFFE, 0x4FFFF, 0x5FFFE, 0x5FFFF, + 0x6FFFE, 0x6FFFF, 0x7FFFE, 0x7FFFF, 0x8FFFE, + 0x8FFFF, 0x9FFFE, 0x9FFFF, 0xAFFFE, 0xAFFFF, + 0xBFFFE, 0xBFFFF, 0xCFFFE, 0xCFFFF, 0xDFFFE, + 0xDFFFF, 0xEFFFE, 0xEFFFF, 0xFFFFE, 0xFFFFF, + 0x10FFFE, 0x10FFFF]) + +ascii_punctuation_re = re.compile("[\u0009-\u000D\u0020-\u002F\u003A-\u0040\u005C\u005B-\u0060\u007B-\u007E]") + +# Cache for charsUntil() +charsUntilRegEx = {} + + +class BufferedStream(object): + """Buffering for streams that do not have buffering of their own + + The buffer is implemented as a list of chunks on the assumption that + joining many strings will be slow since it is O(n**2) + """ + + def __init__(self, stream): + self.stream = stream + self.buffer = [] + self.position = [-1, 0] # chunk number, offset + + def tell(self): + pos = 0 + for chunk in self.buffer[:self.position[0]]: + pos += len(chunk) + pos += self.position[1] + return pos + + def seek(self, pos): + assert pos <= self._bufferedBytes() + offset = pos + i = 0 + while len(self.buffer[i]) < offset: + offset -= len(self.buffer[i]) + i += 1 + self.position = [i, offset] + + def read(self, bytes): + if not self.buffer: + return self._readStream(bytes) + elif (self.position[0] == len(self.buffer) and + self.position[1] == len(self.buffer[-1])): + return self._readStream(bytes) + else: + return self._readFromBuffer(bytes) + + def _bufferedBytes(self): + return sum([len(item) for item in self.buffer]) + + def _readStream(self, bytes): + data = self.stream.read(bytes) + self.buffer.append(data) + self.position[0] += 1 + self.position[1] = len(data) + return data + + def _readFromBuffer(self, bytes): + remainingBytes = bytes + rv = [] + bufferIndex = self.position[0] + bufferOffset = self.position[1] + while bufferIndex < len(self.buffer) and remainingBytes != 0: + assert remainingBytes > 0 + bufferedData = self.buffer[bufferIndex] + + if remainingBytes <= len(bufferedData) - bufferOffset: + bytesToRead = remainingBytes + self.position = [bufferIndex, bufferOffset + bytesToRead] + else: + bytesToRead = len(bufferedData) - bufferOffset + self.position = [bufferIndex, len(bufferedData)] + bufferIndex += 1 + rv.append(bufferedData[bufferOffset:bufferOffset + bytesToRead]) + remainingBytes -= bytesToRead + + bufferOffset = 0 + + if remainingBytes: + rv.append(self._readStream(remainingBytes)) + + return b"".join(rv) + + +def HTMLInputStream(source, **kwargs): + # Work around Python bug #20007: read(0) closes the connection. + # http://bugs.python.org/issue20007 + if (isinstance(source, http_client.HTTPResponse) or + # Also check for addinfourl wrapping HTTPResponse + (isinstance(source, urllib.response.addbase) and + isinstance(source.fp, http_client.HTTPResponse))): + isUnicode = False + elif hasattr(source, "read"): + isUnicode = isinstance(source.read(0), text_type) + else: + isUnicode = isinstance(source, text_type) + + if isUnicode: + encodings = [x for x in kwargs if x.endswith("_encoding")] + if encodings: + raise TypeError("Cannot set an encoding with a unicode input, set %r" % encodings) + + return HTMLUnicodeInputStream(source, **kwargs) + else: + return HTMLBinaryInputStream(source, **kwargs) + + +class HTMLUnicodeInputStream(object): + """Provides a unicode stream of characters to the HTMLTokenizer. + + This class takes care of character encoding and removing or replacing + incorrect byte-sequences and also provides column and line tracking. + + """ + + _defaultChunkSize = 10240 + + def __init__(self, source): + """Initialises the HTMLInputStream. + + HTMLInputStream(source, [encoding]) -> Normalized stream from source + for use by html5lib. + + source can be either a file-object, local filename or a string. + + The optional encoding parameter must be a string that indicates + the encoding. If specified, that encoding will be used, + regardless of any BOM or later declaration (such as in a meta + element) + + """ + + if not _utils.supports_lone_surrogates: + # Such platforms will have already checked for such + # surrogate errors, so no need to do this checking. + self.reportCharacterErrors = None + elif len("\U0010FFFF") == 1: + self.reportCharacterErrors = self.characterErrorsUCS4 + else: + self.reportCharacterErrors = self.characterErrorsUCS2 + + # List of where new lines occur + self.newLines = [0] + + self.charEncoding = (lookupEncoding("utf-8"), "certain") + self.dataStream = self.openStream(source) + + self.reset() + + def reset(self): + self.chunk = "" + self.chunkSize = 0 + self.chunkOffset = 0 + self.errors = [] + + # number of (complete) lines in previous chunks + self.prevNumLines = 0 + # number of columns in the last line of the previous chunk + self.prevNumCols = 0 + + # Deal with CR LF and surrogates split over chunk boundaries + self._bufferedCharacter = None + + def openStream(self, source): + """Produces a file object from source. + + source can be either a file object, local filename or a string. + + """ + # Already a file object + if hasattr(source, 'read'): + stream = source + else: + stream = StringIO(source) + + return stream + + def _position(self, offset): + chunk = self.chunk + nLines = chunk.count('\n', 0, offset) + positionLine = self.prevNumLines + nLines + lastLinePos = chunk.rfind('\n', 0, offset) + if lastLinePos == -1: + positionColumn = self.prevNumCols + offset + else: + positionColumn = offset - (lastLinePos + 1) + return (positionLine, positionColumn) + + def position(self): + """Returns (line, col) of the current position in the stream.""" + line, col = self._position(self.chunkOffset) + return (line + 1, col) + + def char(self): + """ Read one character from the stream or queue if available. Return + EOF when EOF is reached. + """ + # Read a new chunk from the input stream if necessary + if self.chunkOffset >= self.chunkSize: + if not self.readChunk(): + return EOF + + chunkOffset = self.chunkOffset + char = self.chunk[chunkOffset] + self.chunkOffset = chunkOffset + 1 + + return char + + def readChunk(self, chunkSize=None): + if chunkSize is None: + chunkSize = self._defaultChunkSize + + self.prevNumLines, self.prevNumCols = self._position(self.chunkSize) + + self.chunk = "" + self.chunkSize = 0 + self.chunkOffset = 0 + + data = self.dataStream.read(chunkSize) + + # Deal with CR LF and surrogates broken across chunks + if self._bufferedCharacter: + data = self._bufferedCharacter + data + self._bufferedCharacter = None + elif not data: + # We have no more data, bye-bye stream + return False + + if len(data) > 1: + lastv = ord(data[-1]) + if lastv == 0x0D or 0xD800 <= lastv <= 0xDBFF: + self._bufferedCharacter = data[-1] + data = data[:-1] + + if self.reportCharacterErrors: + self.reportCharacterErrors(data) + + # Replace invalid characters + data = data.replace("\r\n", "\n") + data = data.replace("\r", "\n") + + self.chunk = data + self.chunkSize = len(data) + + return True + + def characterErrorsUCS4(self, data): + for _ in range(len(invalid_unicode_re.findall(data))): + self.errors.append("invalid-codepoint") + + def characterErrorsUCS2(self, data): + # Someone picked the wrong compile option + # You lose + skip = False + for match in invalid_unicode_re.finditer(data): + if skip: + continue + codepoint = ord(match.group()) + pos = match.start() + # Pretty sure there should be endianness issues here + if _utils.isSurrogatePair(data[pos:pos + 2]): + # We have a surrogate pair! + char_val = _utils.surrogatePairToCodepoint(data[pos:pos + 2]) + if char_val in non_bmp_invalid_codepoints: + self.errors.append("invalid-codepoint") + skip = True + elif (codepoint >= 0xD800 and codepoint <= 0xDFFF and + pos == len(data) - 1): + self.errors.append("invalid-codepoint") + else: + skip = False + self.errors.append("invalid-codepoint") + + def charsUntil(self, characters, opposite=False): + """ Returns a string of characters from the stream up to but not + including any character in 'characters' or EOF. 'characters' must be + a container that supports the 'in' method and iteration over its + characters. + """ + + # Use a cache of regexps to find the required characters + try: + chars = charsUntilRegEx[(characters, opposite)] + except KeyError: + if __debug__: + for c in characters: + assert(ord(c) < 128) + regex = "".join(["\\x%02x" % ord(c) for c in characters]) + if not opposite: + regex = "^%s" % regex + chars = charsUntilRegEx[(characters, opposite)] = re.compile("[%s]+" % regex) + + rv = [] + + while True: + # Find the longest matching prefix + m = chars.match(self.chunk, self.chunkOffset) + if m is None: + # If nothing matched, and it wasn't because we ran out of chunk, + # then stop + if self.chunkOffset != self.chunkSize: + break + else: + end = m.end() + # If not the whole chunk matched, return everything + # up to the part that didn't match + if end != self.chunkSize: + rv.append(self.chunk[self.chunkOffset:end]) + self.chunkOffset = end + break + # If the whole remainder of the chunk matched, + # use it all and read the next chunk + rv.append(self.chunk[self.chunkOffset:]) + if not self.readChunk(): + # Reached EOF + break + + r = "".join(rv) + return r + + def unget(self, char): + # Only one character is allowed to be ungotten at once - it must + # be consumed again before any further call to unget + if char is not None: + if self.chunkOffset == 0: + # unget is called quite rarely, so it's a good idea to do + # more work here if it saves a bit of work in the frequently + # called char and charsUntil. + # So, just prepend the ungotten character onto the current + # chunk: + self.chunk = char + self.chunk + self.chunkSize += 1 + else: + self.chunkOffset -= 1 + assert self.chunk[self.chunkOffset] == char + + +class HTMLBinaryInputStream(HTMLUnicodeInputStream): + """Provides a unicode stream of characters to the HTMLTokenizer. + + This class takes care of character encoding and removing or replacing + incorrect byte-sequences and also provides column and line tracking. + + """ + + def __init__(self, source, override_encoding=None, transport_encoding=None, + same_origin_parent_encoding=None, likely_encoding=None, + default_encoding="windows-1252", useChardet=True): + """Initialises the HTMLInputStream. + + HTMLInputStream(source, [encoding]) -> Normalized stream from source + for use by html5lib. + + source can be either a file-object, local filename or a string. + + The optional encoding parameter must be a string that indicates + the encoding. If specified, that encoding will be used, + regardless of any BOM or later declaration (such as in a meta + element) + + """ + # Raw Stream - for unicode objects this will encode to utf-8 and set + # self.charEncoding as appropriate + self.rawStream = self.openStream(source) + + HTMLUnicodeInputStream.__init__(self, self.rawStream) + + # Encoding Information + # Number of bytes to use when looking for a meta element with + # encoding information + self.numBytesMeta = 1024 + # Number of bytes to use when using detecting encoding using chardet + self.numBytesChardet = 100 + # Things from args + self.override_encoding = override_encoding + self.transport_encoding = transport_encoding + self.same_origin_parent_encoding = same_origin_parent_encoding + self.likely_encoding = likely_encoding + self.default_encoding = default_encoding + + # Determine encoding + self.charEncoding = self.determineEncoding(useChardet) + assert self.charEncoding[0] is not None + + # Call superclass + self.reset() + + def reset(self): + self.dataStream = self.charEncoding[0].codec_info.streamreader(self.rawStream, 'replace') + HTMLUnicodeInputStream.reset(self) + + def openStream(self, source): + """Produces a file object from source. + + source can be either a file object, local filename or a string. + + """ + # Already a file object + if hasattr(source, 'read'): + stream = source + else: + stream = BytesIO(source) + + try: + stream.seek(stream.tell()) + except: # pylint:disable=bare-except + stream = BufferedStream(stream) + + return stream + + def determineEncoding(self, chardet=True): + # BOMs take precedence over everything + # This will also read past the BOM if present + charEncoding = self.detectBOM(), "certain" + if charEncoding[0] is not None: + return charEncoding + + # If we've been overriden, we've been overriden + charEncoding = lookupEncoding(self.override_encoding), "certain" + if charEncoding[0] is not None: + return charEncoding + + # Now check the transport layer + charEncoding = lookupEncoding(self.transport_encoding), "certain" + if charEncoding[0] is not None: + return charEncoding + + # Look for meta elements with encoding information + charEncoding = self.detectEncodingMeta(), "tentative" + if charEncoding[0] is not None: + return charEncoding + + # Parent document encoding + charEncoding = lookupEncoding(self.same_origin_parent_encoding), "tentative" + if charEncoding[0] is not None and not charEncoding[0].name.startswith("utf-16"): + return charEncoding + + # "likely" encoding + charEncoding = lookupEncoding(self.likely_encoding), "tentative" + if charEncoding[0] is not None: + return charEncoding + + # Guess with chardet, if available + if chardet: + try: + from pip._vendor.chardet.universaldetector import UniversalDetector + except ImportError: + pass + else: + buffers = [] + detector = UniversalDetector() + while not detector.done: + buffer = self.rawStream.read(self.numBytesChardet) + assert isinstance(buffer, bytes) + if not buffer: + break + buffers.append(buffer) + detector.feed(buffer) + detector.close() + encoding = lookupEncoding(detector.result['encoding']) + self.rawStream.seek(0) + if encoding is not None: + return encoding, "tentative" + + # Try the default encoding + charEncoding = lookupEncoding(self.default_encoding), "tentative" + if charEncoding[0] is not None: + return charEncoding + + # Fallback to html5lib's default if even that hasn't worked + return lookupEncoding("windows-1252"), "tentative" + + def changeEncoding(self, newEncoding): + assert self.charEncoding[1] != "certain" + newEncoding = lookupEncoding(newEncoding) + if newEncoding is None: + return + if newEncoding.name in ("utf-16be", "utf-16le"): + newEncoding = lookupEncoding("utf-8") + assert newEncoding is not None + elif newEncoding == self.charEncoding[0]: + self.charEncoding = (self.charEncoding[0], "certain") + else: + self.rawStream.seek(0) + self.charEncoding = (newEncoding, "certain") + self.reset() + raise _ReparseException("Encoding changed from %s to %s" % (self.charEncoding[0], newEncoding)) + + def detectBOM(self): + """Attempts to detect at BOM at the start of the stream. If + an encoding can be determined from the BOM return the name of the + encoding otherwise return None""" + bomDict = { + codecs.BOM_UTF8: 'utf-8', + codecs.BOM_UTF16_LE: 'utf-16le', codecs.BOM_UTF16_BE: 'utf-16be', + codecs.BOM_UTF32_LE: 'utf-32le', codecs.BOM_UTF32_BE: 'utf-32be' + } + + # Go to beginning of file and read in 4 bytes + string = self.rawStream.read(4) + assert isinstance(string, bytes) + + # Try detecting the BOM using bytes from the string + encoding = bomDict.get(string[:3]) # UTF-8 + seek = 3 + if not encoding: + # Need to detect UTF-32 before UTF-16 + encoding = bomDict.get(string) # UTF-32 + seek = 4 + if not encoding: + encoding = bomDict.get(string[:2]) # UTF-16 + seek = 2 + + # Set the read position past the BOM if one was found, otherwise + # set it to the start of the stream + if encoding: + self.rawStream.seek(seek) + return lookupEncoding(encoding) + else: + self.rawStream.seek(0) + return None + + def detectEncodingMeta(self): + """Report the encoding declared by the meta element + """ + buffer = self.rawStream.read(self.numBytesMeta) + assert isinstance(buffer, bytes) + parser = EncodingParser(buffer) + self.rawStream.seek(0) + encoding = parser.getEncoding() + + if encoding is not None and encoding.name in ("utf-16be", "utf-16le"): + encoding = lookupEncoding("utf-8") + + return encoding + + +class EncodingBytes(bytes): + """String-like object with an associated position and various extra methods + If the position is ever greater than the string length then an exception is + raised""" + def __new__(self, value): + assert isinstance(value, bytes) + return bytes.__new__(self, value.lower()) + + def __init__(self, value): + # pylint:disable=unused-argument + self._position = -1 + + def __iter__(self): + return self + + def __next__(self): + p = self._position = self._position + 1 + if p >= len(self): + raise StopIteration + elif p < 0: + raise TypeError + return self[p:p + 1] + + def next(self): + # Py2 compat + return self.__next__() + + def previous(self): + p = self._position + if p >= len(self): + raise StopIteration + elif p < 0: + raise TypeError + self._position = p = p - 1 + return self[p:p + 1] + + def setPosition(self, position): + if self._position >= len(self): + raise StopIteration + self._position = position + + def getPosition(self): + if self._position >= len(self): + raise StopIteration + if self._position >= 0: + return self._position + else: + return None + + position = property(getPosition, setPosition) + + def getCurrentByte(self): + return self[self.position:self.position + 1] + + currentByte = property(getCurrentByte) + + def skip(self, chars=spaceCharactersBytes): + """Skip past a list of characters""" + p = self.position # use property for the error-checking + while p < len(self): + c = self[p:p + 1] + if c not in chars: + self._position = p + return c + p += 1 + self._position = p + return None + + def skipUntil(self, chars): + p = self.position + while p < len(self): + c = self[p:p + 1] + if c in chars: + self._position = p + return c + p += 1 + self._position = p + return None + + def matchBytes(self, bytes): + """Look for a sequence of bytes at the start of a string. If the bytes + are found return True and advance the position to the byte after the + match. Otherwise return False and leave the position alone""" + p = self.position + data = self[p:p + len(bytes)] + rv = data.startswith(bytes) + if rv: + self.position += len(bytes) + return rv + + def jumpTo(self, bytes): + """Look for the next sequence of bytes matching a given sequence. If + a match is found advance the position to the last byte of the match""" + newPosition = self[self.position:].find(bytes) + if newPosition > -1: + # XXX: This is ugly, but I can't see a nicer way to fix this. + if self._position == -1: + self._position = 0 + self._position += (newPosition + len(bytes) - 1) + return True + else: + raise StopIteration + + +class EncodingParser(object): + """Mini parser for detecting character encoding from meta elements""" + + def __init__(self, data): + """string - the data to work on for encoding detection""" + self.data = EncodingBytes(data) + self.encoding = None + + def getEncoding(self): + methodDispatch = ( + (b"<!--", self.handleComment), + (b"<meta", self.handleMeta), + (b"</", self.handlePossibleEndTag), + (b"<!", self.handleOther), + (b"<?", self.handleOther), + (b"<", self.handlePossibleStartTag)) + for _ in self.data: + keepParsing = True + for key, method in methodDispatch: + if self.data.matchBytes(key): + try: + keepParsing = method() + break + except StopIteration: + keepParsing = False + break + if not keepParsing: + break + + return self.encoding + + def handleComment(self): + """Skip over comments""" + return self.data.jumpTo(b"-->") + + def handleMeta(self): + if self.data.currentByte not in spaceCharactersBytes: + # if we have <meta not followed by a space so just keep going + return True + # We have a valid meta element we want to search for attributes + hasPragma = False + pendingEncoding = None + while True: + # Try to find the next attribute after the current position + attr = self.getAttribute() + if attr is None: + return True + else: + if attr[0] == b"http-equiv": + hasPragma = attr[1] == b"content-type" + if hasPragma and pendingEncoding is not None: + self.encoding = pendingEncoding + return False + elif attr[0] == b"charset": + tentativeEncoding = attr[1] + codec = lookupEncoding(tentativeEncoding) + if codec is not None: + self.encoding = codec + return False + elif attr[0] == b"content": + contentParser = ContentAttrParser(EncodingBytes(attr[1])) + tentativeEncoding = contentParser.parse() + if tentativeEncoding is not None: + codec = lookupEncoding(tentativeEncoding) + if codec is not None: + if hasPragma: + self.encoding = codec + return False + else: + pendingEncoding = codec + + def handlePossibleStartTag(self): + return self.handlePossibleTag(False) + + def handlePossibleEndTag(self): + next(self.data) + return self.handlePossibleTag(True) + + def handlePossibleTag(self, endTag): + data = self.data + if data.currentByte not in asciiLettersBytes: + # If the next byte is not an ascii letter either ignore this + # fragment (possible start tag case) or treat it according to + # handleOther + if endTag: + data.previous() + self.handleOther() + return True + + c = data.skipUntil(spacesAngleBrackets) + if c == b"<": + # return to the first step in the overall "two step" algorithm + # reprocessing the < byte + data.previous() + else: + # Read all attributes + attr = self.getAttribute() + while attr is not None: + attr = self.getAttribute() + return True + + def handleOther(self): + return self.data.jumpTo(b">") + + def getAttribute(self): + """Return a name,value pair for the next attribute in the stream, + if one is found, or None""" + data = self.data + # Step 1 (skip chars) + c = data.skip(spaceCharactersBytes | frozenset([b"/"])) + assert c is None or len(c) == 1 + # Step 2 + if c in (b">", None): + return None + # Step 3 + attrName = [] + attrValue = [] + # Step 4 attribute name + while True: + if c == b"=" and attrName: + break + elif c in spaceCharactersBytes: + # Step 6! + c = data.skip() + break + elif c in (b"/", b">"): + return b"".join(attrName), b"" + elif c in asciiUppercaseBytes: + attrName.append(c.lower()) + elif c is None: + return None + else: + attrName.append(c) + # Step 5 + c = next(data) + # Step 7 + if c != b"=": + data.previous() + return b"".join(attrName), b"" + # Step 8 + next(data) + # Step 9 + c = data.skip() + # Step 10 + if c in (b"'", b'"'): + # 10.1 + quoteChar = c + while True: + # 10.2 + c = next(data) + # 10.3 + if c == quoteChar: + next(data) + return b"".join(attrName), b"".join(attrValue) + # 10.4 + elif c in asciiUppercaseBytes: + attrValue.append(c.lower()) + # 10.5 + else: + attrValue.append(c) + elif c == b">": + return b"".join(attrName), b"" + elif c in asciiUppercaseBytes: + attrValue.append(c.lower()) + elif c is None: + return None + else: + attrValue.append(c) + # Step 11 + while True: + c = next(data) + if c in spacesAngleBrackets: + return b"".join(attrName), b"".join(attrValue) + elif c in asciiUppercaseBytes: + attrValue.append(c.lower()) + elif c is None: + return None + else: + attrValue.append(c) + + +class ContentAttrParser(object): + def __init__(self, data): + assert isinstance(data, bytes) + self.data = data + + def parse(self): + try: + # Check if the attr name is charset + # otherwise return + self.data.jumpTo(b"charset") + self.data.position += 1 + self.data.skip() + if not self.data.currentByte == b"=": + # If there is no = sign keep looking for attrs + return None + self.data.position += 1 + self.data.skip() + # Look for an encoding between matching quote marks + if self.data.currentByte in (b'"', b"'"): + quoteMark = self.data.currentByte + self.data.position += 1 + oldPosition = self.data.position + if self.data.jumpTo(quoteMark): + return self.data[oldPosition:self.data.position] + else: + return None + else: + # Unquoted value + oldPosition = self.data.position + try: + self.data.skipUntil(spaceCharactersBytes) + return self.data[oldPosition:self.data.position] + except StopIteration: + # Return the whole remaining value + return self.data[oldPosition:] + except StopIteration: + return None + + +def lookupEncoding(encoding): + """Return the python codec name corresponding to an encoding or None if the + string doesn't correspond to a valid encoding.""" + if isinstance(encoding, binary_type): + try: + encoding = encoding.decode("ascii") + except UnicodeDecodeError: + return None + + if encoding is not None: + try: + return webencodings.lookup(encoding) + except AttributeError: + return None + else: + return None diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_tokenizer.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_tokenizer.py new file mode 100644 index 00000000..178f6e7f --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_tokenizer.py @@ -0,0 +1,1721 @@ +from __future__ import absolute_import, division, unicode_literals + +from pip._vendor.six import unichr as chr + +from collections import deque + +from .constants import spaceCharacters +from .constants import entities +from .constants import asciiLetters, asciiUpper2Lower +from .constants import digits, hexDigits, EOF +from .constants import tokenTypes, tagTokenTypes +from .constants import replacementCharacters + +from ._inputstream import HTMLInputStream + +from ._trie import Trie + +entitiesTrie = Trie(entities) + + +class HTMLTokenizer(object): + """ This class takes care of tokenizing HTML. + + * self.currentToken + Holds the token that is currently being processed. + + * self.state + Holds a reference to the method to be invoked... XXX + + * self.stream + Points to HTMLInputStream object. + """ + + def __init__(self, stream, parser=None, **kwargs): + + self.stream = HTMLInputStream(stream, **kwargs) + self.parser = parser + + # Setup the initial tokenizer state + self.escapeFlag = False + self.lastFourChars = [] + self.state = self.dataState + self.escape = False + + # The current token being created + self.currentToken = None + super(HTMLTokenizer, self).__init__() + + def __iter__(self): + """ This is where the magic happens. + + We do our usually processing through the states and when we have a token + to return we yield the token which pauses processing until the next token + is requested. + """ + self.tokenQueue = deque([]) + # Start processing. When EOF is reached self.state will return False + # instead of True and the loop will terminate. + while self.state(): + while self.stream.errors: + yield {"type": tokenTypes["ParseError"], "data": self.stream.errors.pop(0)} + while self.tokenQueue: + yield self.tokenQueue.popleft() + + def consumeNumberEntity(self, isHex): + """This function returns either U+FFFD or the character based on the + decimal or hexadecimal representation. It also discards ";" if present. + If not present self.tokenQueue.append({"type": tokenTypes["ParseError"]}) is invoked. + """ + + allowed = digits + radix = 10 + if isHex: + allowed = hexDigits + radix = 16 + + charStack = [] + + # Consume all the characters that are in range while making sure we + # don't hit an EOF. + c = self.stream.char() + while c in allowed and c is not EOF: + charStack.append(c) + c = self.stream.char() + + # Convert the set of characters consumed to an int. + charAsInt = int("".join(charStack), radix) + + # Certain characters get replaced with others + if charAsInt in replacementCharacters: + char = replacementCharacters[charAsInt] + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "illegal-codepoint-for-numeric-entity", + "datavars": {"charAsInt": charAsInt}}) + elif ((0xD800 <= charAsInt <= 0xDFFF) or + (charAsInt > 0x10FFFF)): + char = "\uFFFD" + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "illegal-codepoint-for-numeric-entity", + "datavars": {"charAsInt": charAsInt}}) + else: + # Should speed up this check somehow (e.g. move the set to a constant) + if ((0x0001 <= charAsInt <= 0x0008) or + (0x000E <= charAsInt <= 0x001F) or + (0x007F <= charAsInt <= 0x009F) or + (0xFDD0 <= charAsInt <= 0xFDEF) or + charAsInt in frozenset([0x000B, 0xFFFE, 0xFFFF, 0x1FFFE, + 0x1FFFF, 0x2FFFE, 0x2FFFF, 0x3FFFE, + 0x3FFFF, 0x4FFFE, 0x4FFFF, 0x5FFFE, + 0x5FFFF, 0x6FFFE, 0x6FFFF, 0x7FFFE, + 0x7FFFF, 0x8FFFE, 0x8FFFF, 0x9FFFE, + 0x9FFFF, 0xAFFFE, 0xAFFFF, 0xBFFFE, + 0xBFFFF, 0xCFFFE, 0xCFFFF, 0xDFFFE, + 0xDFFFF, 0xEFFFE, 0xEFFFF, 0xFFFFE, + 0xFFFFF, 0x10FFFE, 0x10FFFF])): + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": + "illegal-codepoint-for-numeric-entity", + "datavars": {"charAsInt": charAsInt}}) + try: + # Try/except needed as UCS-2 Python builds' unichar only works + # within the BMP. + char = chr(charAsInt) + except ValueError: + v = charAsInt - 0x10000 + char = chr(0xD800 | (v >> 10)) + chr(0xDC00 | (v & 0x3FF)) + + # Discard the ; if present. Otherwise, put it back on the queue and + # invoke parseError on parser. + if c != ";": + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "numeric-entity-without-semicolon"}) + self.stream.unget(c) + + return char + + def consumeEntity(self, allowedChar=None, fromAttribute=False): + # Initialise to the default output for when no entity is matched + output = "&" + + charStack = [self.stream.char()] + if (charStack[0] in spaceCharacters or charStack[0] in (EOF, "<", "&") or + (allowedChar is not None and allowedChar == charStack[0])): + self.stream.unget(charStack[0]) + + elif charStack[0] == "#": + # Read the next character to see if it's hex or decimal + hex = False + charStack.append(self.stream.char()) + if charStack[-1] in ("x", "X"): + hex = True + charStack.append(self.stream.char()) + + # charStack[-1] should be the first digit + if (hex and charStack[-1] in hexDigits) \ + or (not hex and charStack[-1] in digits): + # At least one digit found, so consume the whole number + self.stream.unget(charStack[-1]) + output = self.consumeNumberEntity(hex) + else: + # No digits found + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "expected-numeric-entity"}) + self.stream.unget(charStack.pop()) + output = "&" + "".join(charStack) + + else: + # At this point in the process might have named entity. Entities + # are stored in the global variable "entities". + # + # Consume characters and compare to these to a substring of the + # entity names in the list until the substring no longer matches. + while (charStack[-1] is not EOF): + if not entitiesTrie.has_keys_with_prefix("".join(charStack)): + break + charStack.append(self.stream.char()) + + # At this point we have a string that starts with some characters + # that may match an entity + # Try to find the longest entity the string will match to take care + # of ¬i for instance. + try: + entityName = entitiesTrie.longest_prefix("".join(charStack[:-1])) + entityLength = len(entityName) + except KeyError: + entityName = None + + if entityName is not None: + if entityName[-1] != ";": + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "named-entity-without-semicolon"}) + if (entityName[-1] != ";" and fromAttribute and + (charStack[entityLength] in asciiLetters or + charStack[entityLength] in digits or + charStack[entityLength] == "=")): + self.stream.unget(charStack.pop()) + output = "&" + "".join(charStack) + else: + output = entities[entityName] + self.stream.unget(charStack.pop()) + output += "".join(charStack[entityLength:]) + else: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "expected-named-entity"}) + self.stream.unget(charStack.pop()) + output = "&" + "".join(charStack) + + if fromAttribute: + self.currentToken["data"][-1][1] += output + else: + if output in spaceCharacters: + tokenType = "SpaceCharacters" + else: + tokenType = "Characters" + self.tokenQueue.append({"type": tokenTypes[tokenType], "data": output}) + + def processEntityInAttribute(self, allowedChar): + """This method replaces the need for "entityInAttributeValueState". + """ + self.consumeEntity(allowedChar=allowedChar, fromAttribute=True) + + def emitCurrentToken(self): + """This method is a generic handler for emitting the tags. It also sets + the state to "data" because that's what's needed after a token has been + emitted. + """ + token = self.currentToken + # Add token to the queue to be yielded + if (token["type"] in tagTokenTypes): + token["name"] = token["name"].translate(asciiUpper2Lower) + if token["type"] == tokenTypes["EndTag"]: + if token["data"]: + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "attributes-in-end-tag"}) + if token["selfClosing"]: + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "self-closing-flag-on-end-tag"}) + self.tokenQueue.append(token) + self.state = self.dataState + + # Below are the various tokenizer states worked out. + def dataState(self): + data = self.stream.char() + if data == "&": + self.state = self.entityDataState + elif data == "<": + self.state = self.tagOpenState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.tokenQueue.append({"type": tokenTypes["Characters"], + "data": "\u0000"}) + elif data is EOF: + # Tokenization ends. + return False + elif data in spaceCharacters: + # Directly after emitting a token you switch back to the "data + # state". At that point spaceCharacters are important so they are + # emitted separately. + self.tokenQueue.append({"type": tokenTypes["SpaceCharacters"], "data": + data + self.stream.charsUntil(spaceCharacters, True)}) + # No need to update lastFourChars here, since the first space will + # have already been appended to lastFourChars and will have broken + # any <!-- or --> sequences + else: + chars = self.stream.charsUntil(("&", "<", "\u0000")) + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": + data + chars}) + return True + + def entityDataState(self): + self.consumeEntity() + self.state = self.dataState + return True + + def rcdataState(self): + data = self.stream.char() + if data == "&": + self.state = self.characterReferenceInRcdata + elif data == "<": + self.state = self.rcdataLessThanSignState + elif data == EOF: + # Tokenization ends. + return False + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.tokenQueue.append({"type": tokenTypes["Characters"], + "data": "\uFFFD"}) + elif data in spaceCharacters: + # Directly after emitting a token you switch back to the "data + # state". At that point spaceCharacters are important so they are + # emitted separately. + self.tokenQueue.append({"type": tokenTypes["SpaceCharacters"], "data": + data + self.stream.charsUntil(spaceCharacters, True)}) + # No need to update lastFourChars here, since the first space will + # have already been appended to lastFourChars and will have broken + # any <!-- or --> sequences + else: + chars = self.stream.charsUntil(("&", "<", "\u0000")) + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": + data + chars}) + return True + + def characterReferenceInRcdata(self): + self.consumeEntity() + self.state = self.rcdataState + return True + + def rawtextState(self): + data = self.stream.char() + if data == "<": + self.state = self.rawtextLessThanSignState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.tokenQueue.append({"type": tokenTypes["Characters"], + "data": "\uFFFD"}) + elif data == EOF: + # Tokenization ends. + return False + else: + chars = self.stream.charsUntil(("<", "\u0000")) + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": + data + chars}) + return True + + def scriptDataState(self): + data = self.stream.char() + if data == "<": + self.state = self.scriptDataLessThanSignState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.tokenQueue.append({"type": tokenTypes["Characters"], + "data": "\uFFFD"}) + elif data == EOF: + # Tokenization ends. + return False + else: + chars = self.stream.charsUntil(("<", "\u0000")) + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": + data + chars}) + return True + + def plaintextState(self): + data = self.stream.char() + if data == EOF: + # Tokenization ends. + return False + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.tokenQueue.append({"type": tokenTypes["Characters"], + "data": "\uFFFD"}) + else: + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": + data + self.stream.charsUntil("\u0000")}) + return True + + def tagOpenState(self): + data = self.stream.char() + if data == "!": + self.state = self.markupDeclarationOpenState + elif data == "/": + self.state = self.closeTagOpenState + elif data in asciiLetters: + self.currentToken = {"type": tokenTypes["StartTag"], + "name": data, "data": [], + "selfClosing": False, + "selfClosingAcknowledged": False} + self.state = self.tagNameState + elif data == ">": + # XXX In theory it could be something besides a tag name. But + # do we really care? + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "expected-tag-name-but-got-right-bracket"}) + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<>"}) + self.state = self.dataState + elif data == "?": + # XXX In theory it could be something besides a tag name. But + # do we really care? + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "expected-tag-name-but-got-question-mark"}) + self.stream.unget(data) + self.state = self.bogusCommentState + else: + # XXX + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "expected-tag-name"}) + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) + self.stream.unget(data) + self.state = self.dataState + return True + + def closeTagOpenState(self): + data = self.stream.char() + if data in asciiLetters: + self.currentToken = {"type": tokenTypes["EndTag"], "name": data, + "data": [], "selfClosing": False} + self.state = self.tagNameState + elif data == ">": + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "expected-closing-tag-but-got-right-bracket"}) + self.state = self.dataState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "expected-closing-tag-but-got-eof"}) + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "</"}) + self.state = self.dataState + else: + # XXX data can be _'_... + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "expected-closing-tag-but-got-char", + "datavars": {"data": data}}) + self.stream.unget(data) + self.state = self.bogusCommentState + return True + + def tagNameState(self): + data = self.stream.char() + if data in spaceCharacters: + self.state = self.beforeAttributeNameState + elif data == ">": + self.emitCurrentToken() + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-tag-name"}) + self.state = self.dataState + elif data == "/": + self.state = self.selfClosingStartTagState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.currentToken["name"] += "\uFFFD" + else: + self.currentToken["name"] += data + # (Don't use charsUntil here, because tag names are + # very short and it's faster to not do anything fancy) + return True + + def rcdataLessThanSignState(self): + data = self.stream.char() + if data == "/": + self.temporaryBuffer = "" + self.state = self.rcdataEndTagOpenState + else: + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) + self.stream.unget(data) + self.state = self.rcdataState + return True + + def rcdataEndTagOpenState(self): + data = self.stream.char() + if data in asciiLetters: + self.temporaryBuffer += data + self.state = self.rcdataEndTagNameState + else: + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "</"}) + self.stream.unget(data) + self.state = self.rcdataState + return True + + def rcdataEndTagNameState(self): + appropriate = self.currentToken and self.currentToken["name"].lower() == self.temporaryBuffer.lower() + data = self.stream.char() + if data in spaceCharacters and appropriate: + self.currentToken = {"type": tokenTypes["EndTag"], + "name": self.temporaryBuffer, + "data": [], "selfClosing": False} + self.state = self.beforeAttributeNameState + elif data == "/" and appropriate: + self.currentToken = {"type": tokenTypes["EndTag"], + "name": self.temporaryBuffer, + "data": [], "selfClosing": False} + self.state = self.selfClosingStartTagState + elif data == ">" and appropriate: + self.currentToken = {"type": tokenTypes["EndTag"], + "name": self.temporaryBuffer, + "data": [], "selfClosing": False} + self.emitCurrentToken() + self.state = self.dataState + elif data in asciiLetters: + self.temporaryBuffer += data + else: + self.tokenQueue.append({"type": tokenTypes["Characters"], + "data": "</" + self.temporaryBuffer}) + self.stream.unget(data) + self.state = self.rcdataState + return True + + def rawtextLessThanSignState(self): + data = self.stream.char() + if data == "/": + self.temporaryBuffer = "" + self.state = self.rawtextEndTagOpenState + else: + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) + self.stream.unget(data) + self.state = self.rawtextState + return True + + def rawtextEndTagOpenState(self): + data = self.stream.char() + if data in asciiLetters: + self.temporaryBuffer += data + self.state = self.rawtextEndTagNameState + else: + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "</"}) + self.stream.unget(data) + self.state = self.rawtextState + return True + + def rawtextEndTagNameState(self): + appropriate = self.currentToken and self.currentToken["name"].lower() == self.temporaryBuffer.lower() + data = self.stream.char() + if data in spaceCharacters and appropriate: + self.currentToken = {"type": tokenTypes["EndTag"], + "name": self.temporaryBuffer, + "data": [], "selfClosing": False} + self.state = self.beforeAttributeNameState + elif data == "/" and appropriate: + self.currentToken = {"type": tokenTypes["EndTag"], + "name": self.temporaryBuffer, + "data": [], "selfClosing": False} + self.state = self.selfClosingStartTagState + elif data == ">" and appropriate: + self.currentToken = {"type": tokenTypes["EndTag"], + "name": self.temporaryBuffer, + "data": [], "selfClosing": False} + self.emitCurrentToken() + self.state = self.dataState + elif data in asciiLetters: + self.temporaryBuffer += data + else: + self.tokenQueue.append({"type": tokenTypes["Characters"], + "data": "</" + self.temporaryBuffer}) + self.stream.unget(data) + self.state = self.rawtextState + return True + + def scriptDataLessThanSignState(self): + data = self.stream.char() + if data == "/": + self.temporaryBuffer = "" + self.state = self.scriptDataEndTagOpenState + elif data == "!": + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<!"}) + self.state = self.scriptDataEscapeStartState + else: + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) + self.stream.unget(data) + self.state = self.scriptDataState + return True + + def scriptDataEndTagOpenState(self): + data = self.stream.char() + if data in asciiLetters: + self.temporaryBuffer += data + self.state = self.scriptDataEndTagNameState + else: + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "</"}) + self.stream.unget(data) + self.state = self.scriptDataState + return True + + def scriptDataEndTagNameState(self): + appropriate = self.currentToken and self.currentToken["name"].lower() == self.temporaryBuffer.lower() + data = self.stream.char() + if data in spaceCharacters and appropriate: + self.currentToken = {"type": tokenTypes["EndTag"], + "name": self.temporaryBuffer, + "data": [], "selfClosing": False} + self.state = self.beforeAttributeNameState + elif data == "/" and appropriate: + self.currentToken = {"type": tokenTypes["EndTag"], + "name": self.temporaryBuffer, + "data": [], "selfClosing": False} + self.state = self.selfClosingStartTagState + elif data == ">" and appropriate: + self.currentToken = {"type": tokenTypes["EndTag"], + "name": self.temporaryBuffer, + "data": [], "selfClosing": False} + self.emitCurrentToken() + self.state = self.dataState + elif data in asciiLetters: + self.temporaryBuffer += data + else: + self.tokenQueue.append({"type": tokenTypes["Characters"], + "data": "</" + self.temporaryBuffer}) + self.stream.unget(data) + self.state = self.scriptDataState + return True + + def scriptDataEscapeStartState(self): + data = self.stream.char() + if data == "-": + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"}) + self.state = self.scriptDataEscapeStartDashState + else: + self.stream.unget(data) + self.state = self.scriptDataState + return True + + def scriptDataEscapeStartDashState(self): + data = self.stream.char() + if data == "-": + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"}) + self.state = self.scriptDataEscapedDashDashState + else: + self.stream.unget(data) + self.state = self.scriptDataState + return True + + def scriptDataEscapedState(self): + data = self.stream.char() + if data == "-": + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"}) + self.state = self.scriptDataEscapedDashState + elif data == "<": + self.state = self.scriptDataEscapedLessThanSignState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.tokenQueue.append({"type": tokenTypes["Characters"], + "data": "\uFFFD"}) + elif data == EOF: + self.state = self.dataState + else: + chars = self.stream.charsUntil(("<", "-", "\u0000")) + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": + data + chars}) + return True + + def scriptDataEscapedDashState(self): + data = self.stream.char() + if data == "-": + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"}) + self.state = self.scriptDataEscapedDashDashState + elif data == "<": + self.state = self.scriptDataEscapedLessThanSignState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.tokenQueue.append({"type": tokenTypes["Characters"], + "data": "\uFFFD"}) + self.state = self.scriptDataEscapedState + elif data == EOF: + self.state = self.dataState + else: + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) + self.state = self.scriptDataEscapedState + return True + + def scriptDataEscapedDashDashState(self): + data = self.stream.char() + if data == "-": + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"}) + elif data == "<": + self.state = self.scriptDataEscapedLessThanSignState + elif data == ">": + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": ">"}) + self.state = self.scriptDataState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.tokenQueue.append({"type": tokenTypes["Characters"], + "data": "\uFFFD"}) + self.state = self.scriptDataEscapedState + elif data == EOF: + self.state = self.dataState + else: + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) + self.state = self.scriptDataEscapedState + return True + + def scriptDataEscapedLessThanSignState(self): + data = self.stream.char() + if data == "/": + self.temporaryBuffer = "" + self.state = self.scriptDataEscapedEndTagOpenState + elif data in asciiLetters: + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<" + data}) + self.temporaryBuffer = data + self.state = self.scriptDataDoubleEscapeStartState + else: + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) + self.stream.unget(data) + self.state = self.scriptDataEscapedState + return True + + def scriptDataEscapedEndTagOpenState(self): + data = self.stream.char() + if data in asciiLetters: + self.temporaryBuffer = data + self.state = self.scriptDataEscapedEndTagNameState + else: + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "</"}) + self.stream.unget(data) + self.state = self.scriptDataEscapedState + return True + + def scriptDataEscapedEndTagNameState(self): + appropriate = self.currentToken and self.currentToken["name"].lower() == self.temporaryBuffer.lower() + data = self.stream.char() + if data in spaceCharacters and appropriate: + self.currentToken = {"type": tokenTypes["EndTag"], + "name": self.temporaryBuffer, + "data": [], "selfClosing": False} + self.state = self.beforeAttributeNameState + elif data == "/" and appropriate: + self.currentToken = {"type": tokenTypes["EndTag"], + "name": self.temporaryBuffer, + "data": [], "selfClosing": False} + self.state = self.selfClosingStartTagState + elif data == ">" and appropriate: + self.currentToken = {"type": tokenTypes["EndTag"], + "name": self.temporaryBuffer, + "data": [], "selfClosing": False} + self.emitCurrentToken() + self.state = self.dataState + elif data in asciiLetters: + self.temporaryBuffer += data + else: + self.tokenQueue.append({"type": tokenTypes["Characters"], + "data": "</" + self.temporaryBuffer}) + self.stream.unget(data) + self.state = self.scriptDataEscapedState + return True + + def scriptDataDoubleEscapeStartState(self): + data = self.stream.char() + if data in (spaceCharacters | frozenset(("/", ">"))): + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) + if self.temporaryBuffer.lower() == "script": + self.state = self.scriptDataDoubleEscapedState + else: + self.state = self.scriptDataEscapedState + elif data in asciiLetters: + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) + self.temporaryBuffer += data + else: + self.stream.unget(data) + self.state = self.scriptDataEscapedState + return True + + def scriptDataDoubleEscapedState(self): + data = self.stream.char() + if data == "-": + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"}) + self.state = self.scriptDataDoubleEscapedDashState + elif data == "<": + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) + self.state = self.scriptDataDoubleEscapedLessThanSignState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.tokenQueue.append({"type": tokenTypes["Characters"], + "data": "\uFFFD"}) + elif data == EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-script-in-script"}) + self.state = self.dataState + else: + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) + return True + + def scriptDataDoubleEscapedDashState(self): + data = self.stream.char() + if data == "-": + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"}) + self.state = self.scriptDataDoubleEscapedDashDashState + elif data == "<": + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) + self.state = self.scriptDataDoubleEscapedLessThanSignState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.tokenQueue.append({"type": tokenTypes["Characters"], + "data": "\uFFFD"}) + self.state = self.scriptDataDoubleEscapedState + elif data == EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-script-in-script"}) + self.state = self.dataState + else: + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) + self.state = self.scriptDataDoubleEscapedState + return True + + def scriptDataDoubleEscapedDashDashState(self): + data = self.stream.char() + if data == "-": + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "-"}) + elif data == "<": + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "<"}) + self.state = self.scriptDataDoubleEscapedLessThanSignState + elif data == ">": + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": ">"}) + self.state = self.scriptDataState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.tokenQueue.append({"type": tokenTypes["Characters"], + "data": "\uFFFD"}) + self.state = self.scriptDataDoubleEscapedState + elif data == EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-script-in-script"}) + self.state = self.dataState + else: + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) + self.state = self.scriptDataDoubleEscapedState + return True + + def scriptDataDoubleEscapedLessThanSignState(self): + data = self.stream.char() + if data == "/": + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": "/"}) + self.temporaryBuffer = "" + self.state = self.scriptDataDoubleEscapeEndState + else: + self.stream.unget(data) + self.state = self.scriptDataDoubleEscapedState + return True + + def scriptDataDoubleEscapeEndState(self): + data = self.stream.char() + if data in (spaceCharacters | frozenset(("/", ">"))): + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) + if self.temporaryBuffer.lower() == "script": + self.state = self.scriptDataEscapedState + else: + self.state = self.scriptDataDoubleEscapedState + elif data in asciiLetters: + self.tokenQueue.append({"type": tokenTypes["Characters"], "data": data}) + self.temporaryBuffer += data + else: + self.stream.unget(data) + self.state = self.scriptDataDoubleEscapedState + return True + + def beforeAttributeNameState(self): + data = self.stream.char() + if data in spaceCharacters: + self.stream.charsUntil(spaceCharacters, True) + elif data in asciiLetters: + self.currentToken["data"].append([data, ""]) + self.state = self.attributeNameState + elif data == ">": + self.emitCurrentToken() + elif data == "/": + self.state = self.selfClosingStartTagState + elif data in ("'", '"', "=", "<"): + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "invalid-character-in-attribute-name"}) + self.currentToken["data"].append([data, ""]) + self.state = self.attributeNameState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.currentToken["data"].append(["\uFFFD", ""]) + self.state = self.attributeNameState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "expected-attribute-name-but-got-eof"}) + self.state = self.dataState + else: + self.currentToken["data"].append([data, ""]) + self.state = self.attributeNameState + return True + + def attributeNameState(self): + data = self.stream.char() + leavingThisState = True + emitToken = False + if data == "=": + self.state = self.beforeAttributeValueState + elif data in asciiLetters: + self.currentToken["data"][-1][0] += data +\ + self.stream.charsUntil(asciiLetters, True) + leavingThisState = False + elif data == ">": + # XXX If we emit here the attributes are converted to a dict + # without being checked and when the code below runs we error + # because data is a dict not a list + emitToken = True + elif data in spaceCharacters: + self.state = self.afterAttributeNameState + elif data == "/": + self.state = self.selfClosingStartTagState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.currentToken["data"][-1][0] += "\uFFFD" + leavingThisState = False + elif data in ("'", '"', "<"): + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": + "invalid-character-in-attribute-name"}) + self.currentToken["data"][-1][0] += data + leavingThisState = False + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "eof-in-attribute-name"}) + self.state = self.dataState + else: + self.currentToken["data"][-1][0] += data + leavingThisState = False + + if leavingThisState: + # Attributes are not dropped at this stage. That happens when the + # start tag token is emitted so values can still be safely appended + # to attributes, but we do want to report the parse error in time. + self.currentToken["data"][-1][0] = ( + self.currentToken["data"][-1][0].translate(asciiUpper2Lower)) + for name, _ in self.currentToken["data"][:-1]: + if self.currentToken["data"][-1][0] == name: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "duplicate-attribute"}) + break + # XXX Fix for above XXX + if emitToken: + self.emitCurrentToken() + return True + + def afterAttributeNameState(self): + data = self.stream.char() + if data in spaceCharacters: + self.stream.charsUntil(spaceCharacters, True) + elif data == "=": + self.state = self.beforeAttributeValueState + elif data == ">": + self.emitCurrentToken() + elif data in asciiLetters: + self.currentToken["data"].append([data, ""]) + self.state = self.attributeNameState + elif data == "/": + self.state = self.selfClosingStartTagState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.currentToken["data"].append(["\uFFFD", ""]) + self.state = self.attributeNameState + elif data in ("'", '"', "<"): + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "invalid-character-after-attribute-name"}) + self.currentToken["data"].append([data, ""]) + self.state = self.attributeNameState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "expected-end-of-tag-but-got-eof"}) + self.state = self.dataState + else: + self.currentToken["data"].append([data, ""]) + self.state = self.attributeNameState + return True + + def beforeAttributeValueState(self): + data = self.stream.char() + if data in spaceCharacters: + self.stream.charsUntil(spaceCharacters, True) + elif data == "\"": + self.state = self.attributeValueDoubleQuotedState + elif data == "&": + self.state = self.attributeValueUnQuotedState + self.stream.unget(data) + elif data == "'": + self.state = self.attributeValueSingleQuotedState + elif data == ">": + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "expected-attribute-value-but-got-right-bracket"}) + self.emitCurrentToken() + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.currentToken["data"][-1][1] += "\uFFFD" + self.state = self.attributeValueUnQuotedState + elif data in ("=", "<", "`"): + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "equals-in-unquoted-attribute-value"}) + self.currentToken["data"][-1][1] += data + self.state = self.attributeValueUnQuotedState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "expected-attribute-value-but-got-eof"}) + self.state = self.dataState + else: + self.currentToken["data"][-1][1] += data + self.state = self.attributeValueUnQuotedState + return True + + def attributeValueDoubleQuotedState(self): + data = self.stream.char() + if data == "\"": + self.state = self.afterAttributeValueState + elif data == "&": + self.processEntityInAttribute('"') + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.currentToken["data"][-1][1] += "\uFFFD" + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-attribute-value-double-quote"}) + self.state = self.dataState + else: + self.currentToken["data"][-1][1] += data +\ + self.stream.charsUntil(("\"", "&", "\u0000")) + return True + + def attributeValueSingleQuotedState(self): + data = self.stream.char() + if data == "'": + self.state = self.afterAttributeValueState + elif data == "&": + self.processEntityInAttribute("'") + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.currentToken["data"][-1][1] += "\uFFFD" + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-attribute-value-single-quote"}) + self.state = self.dataState + else: + self.currentToken["data"][-1][1] += data +\ + self.stream.charsUntil(("'", "&", "\u0000")) + return True + + def attributeValueUnQuotedState(self): + data = self.stream.char() + if data in spaceCharacters: + self.state = self.beforeAttributeNameState + elif data == "&": + self.processEntityInAttribute(">") + elif data == ">": + self.emitCurrentToken() + elif data in ('"', "'", "=", "<", "`"): + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-character-in-unquoted-attribute-value"}) + self.currentToken["data"][-1][1] += data + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.currentToken["data"][-1][1] += "\uFFFD" + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-attribute-value-no-quotes"}) + self.state = self.dataState + else: + self.currentToken["data"][-1][1] += data + self.stream.charsUntil( + frozenset(("&", ">", '"', "'", "=", "<", "`", "\u0000")) | spaceCharacters) + return True + + def afterAttributeValueState(self): + data = self.stream.char() + if data in spaceCharacters: + self.state = self.beforeAttributeNameState + elif data == ">": + self.emitCurrentToken() + elif data == "/": + self.state = self.selfClosingStartTagState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-EOF-after-attribute-value"}) + self.stream.unget(data) + self.state = self.dataState + else: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-character-after-attribute-value"}) + self.stream.unget(data) + self.state = self.beforeAttributeNameState + return True + + def selfClosingStartTagState(self): + data = self.stream.char() + if data == ">": + self.currentToken["selfClosing"] = True + self.emitCurrentToken() + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": + "unexpected-EOF-after-solidus-in-tag"}) + self.stream.unget(data) + self.state = self.dataState + else: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-character-after-solidus-in-tag"}) + self.stream.unget(data) + self.state = self.beforeAttributeNameState + return True + + def bogusCommentState(self): + # Make a new comment token and give it as value all the characters + # until the first > or EOF (charsUntil checks for EOF automatically) + # and emit it. + data = self.stream.charsUntil(">") + data = data.replace("\u0000", "\uFFFD") + self.tokenQueue.append( + {"type": tokenTypes["Comment"], "data": data}) + + # Eat the character directly after the bogus comment which is either a + # ">" or an EOF. + self.stream.char() + self.state = self.dataState + return True + + def markupDeclarationOpenState(self): + charStack = [self.stream.char()] + if charStack[-1] == "-": + charStack.append(self.stream.char()) + if charStack[-1] == "-": + self.currentToken = {"type": tokenTypes["Comment"], "data": ""} + self.state = self.commentStartState + return True + elif charStack[-1] in ('d', 'D'): + matched = True + for expected in (('o', 'O'), ('c', 'C'), ('t', 'T'), + ('y', 'Y'), ('p', 'P'), ('e', 'E')): + charStack.append(self.stream.char()) + if charStack[-1] not in expected: + matched = False + break + if matched: + self.currentToken = {"type": tokenTypes["Doctype"], + "name": "", + "publicId": None, "systemId": None, + "correct": True} + self.state = self.doctypeState + return True + elif (charStack[-1] == "[" and + self.parser is not None and + self.parser.tree.openElements and + self.parser.tree.openElements[-1].namespace != self.parser.tree.defaultNamespace): + matched = True + for expected in ["C", "D", "A", "T", "A", "["]: + charStack.append(self.stream.char()) + if charStack[-1] != expected: + matched = False + break + if matched: + self.state = self.cdataSectionState + return True + + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "expected-dashes-or-doctype"}) + + while charStack: + self.stream.unget(charStack.pop()) + self.state = self.bogusCommentState + return True + + def commentStartState(self): + data = self.stream.char() + if data == "-": + self.state = self.commentStartDashState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.currentToken["data"] += "\uFFFD" + elif data == ">": + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "incorrect-comment"}) + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-comment"}) + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + self.currentToken["data"] += data + self.state = self.commentState + return True + + def commentStartDashState(self): + data = self.stream.char() + if data == "-": + self.state = self.commentEndState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.currentToken["data"] += "-\uFFFD" + elif data == ">": + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "incorrect-comment"}) + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-comment"}) + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + self.currentToken["data"] += "-" + data + self.state = self.commentState + return True + + def commentState(self): + data = self.stream.char() + if data == "-": + self.state = self.commentEndDashState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.currentToken["data"] += "\uFFFD" + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "eof-in-comment"}) + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + self.currentToken["data"] += data + \ + self.stream.charsUntil(("-", "\u0000")) + return True + + def commentEndDashState(self): + data = self.stream.char() + if data == "-": + self.state = self.commentEndState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.currentToken["data"] += "-\uFFFD" + self.state = self.commentState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-comment-end-dash"}) + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + self.currentToken["data"] += "-" + data + self.state = self.commentState + return True + + def commentEndState(self): + data = self.stream.char() + if data == ">": + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.currentToken["data"] += "--\uFFFD" + self.state = self.commentState + elif data == "!": + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-bang-after-double-dash-in-comment"}) + self.state = self.commentEndBangState + elif data == "-": + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-dash-after-double-dash-in-comment"}) + self.currentToken["data"] += data + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-comment-double-dash"}) + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + # XXX + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-char-in-comment"}) + self.currentToken["data"] += "--" + data + self.state = self.commentState + return True + + def commentEndBangState(self): + data = self.stream.char() + if data == ">": + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + elif data == "-": + self.currentToken["data"] += "--!" + self.state = self.commentEndDashState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.currentToken["data"] += "--!\uFFFD" + self.state = self.commentState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-comment-end-bang-state"}) + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + self.currentToken["data"] += "--!" + data + self.state = self.commentState + return True + + def doctypeState(self): + data = self.stream.char() + if data in spaceCharacters: + self.state = self.beforeDoctypeNameState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "expected-doctype-name-but-got-eof"}) + self.currentToken["correct"] = False + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "need-space-after-doctype"}) + self.stream.unget(data) + self.state = self.beforeDoctypeNameState + return True + + def beforeDoctypeNameState(self): + data = self.stream.char() + if data in spaceCharacters: + pass + elif data == ">": + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "expected-doctype-name-but-got-right-bracket"}) + self.currentToken["correct"] = False + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.currentToken["name"] = "\uFFFD" + self.state = self.doctypeNameState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "expected-doctype-name-but-got-eof"}) + self.currentToken["correct"] = False + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + self.currentToken["name"] = data + self.state = self.doctypeNameState + return True + + def doctypeNameState(self): + data = self.stream.char() + if data in spaceCharacters: + self.currentToken["name"] = self.currentToken["name"].translate(asciiUpper2Lower) + self.state = self.afterDoctypeNameState + elif data == ">": + self.currentToken["name"] = self.currentToken["name"].translate(asciiUpper2Lower) + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.currentToken["name"] += "\uFFFD" + self.state = self.doctypeNameState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-doctype-name"}) + self.currentToken["correct"] = False + self.currentToken["name"] = self.currentToken["name"].translate(asciiUpper2Lower) + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + self.currentToken["name"] += data + return True + + def afterDoctypeNameState(self): + data = self.stream.char() + if data in spaceCharacters: + pass + elif data == ">": + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + elif data is EOF: + self.currentToken["correct"] = False + self.stream.unget(data) + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-doctype"}) + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + if data in ("p", "P"): + matched = True + for expected in (("u", "U"), ("b", "B"), ("l", "L"), + ("i", "I"), ("c", "C")): + data = self.stream.char() + if data not in expected: + matched = False + break + if matched: + self.state = self.afterDoctypePublicKeywordState + return True + elif data in ("s", "S"): + matched = True + for expected in (("y", "Y"), ("s", "S"), ("t", "T"), + ("e", "E"), ("m", "M")): + data = self.stream.char() + if data not in expected: + matched = False + break + if matched: + self.state = self.afterDoctypeSystemKeywordState + return True + + # All the characters read before the current 'data' will be + # [a-zA-Z], so they're garbage in the bogus doctype and can be + # discarded; only the latest character might be '>' or EOF + # and needs to be ungetted + self.stream.unget(data) + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "expected-space-or-right-bracket-in-doctype", "datavars": + {"data": data}}) + self.currentToken["correct"] = False + self.state = self.bogusDoctypeState + + return True + + def afterDoctypePublicKeywordState(self): + data = self.stream.char() + if data in spaceCharacters: + self.state = self.beforeDoctypePublicIdentifierState + elif data in ("'", '"'): + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-char-in-doctype"}) + self.stream.unget(data) + self.state = self.beforeDoctypePublicIdentifierState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-doctype"}) + self.currentToken["correct"] = False + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + self.stream.unget(data) + self.state = self.beforeDoctypePublicIdentifierState + return True + + def beforeDoctypePublicIdentifierState(self): + data = self.stream.char() + if data in spaceCharacters: + pass + elif data == "\"": + self.currentToken["publicId"] = "" + self.state = self.doctypePublicIdentifierDoubleQuotedState + elif data == "'": + self.currentToken["publicId"] = "" + self.state = self.doctypePublicIdentifierSingleQuotedState + elif data == ">": + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-end-of-doctype"}) + self.currentToken["correct"] = False + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-doctype"}) + self.currentToken["correct"] = False + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-char-in-doctype"}) + self.currentToken["correct"] = False + self.state = self.bogusDoctypeState + return True + + def doctypePublicIdentifierDoubleQuotedState(self): + data = self.stream.char() + if data == "\"": + self.state = self.afterDoctypePublicIdentifierState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.currentToken["publicId"] += "\uFFFD" + elif data == ">": + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-end-of-doctype"}) + self.currentToken["correct"] = False + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-doctype"}) + self.currentToken["correct"] = False + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + self.currentToken["publicId"] += data + return True + + def doctypePublicIdentifierSingleQuotedState(self): + data = self.stream.char() + if data == "'": + self.state = self.afterDoctypePublicIdentifierState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.currentToken["publicId"] += "\uFFFD" + elif data == ">": + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-end-of-doctype"}) + self.currentToken["correct"] = False + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-doctype"}) + self.currentToken["correct"] = False + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + self.currentToken["publicId"] += data + return True + + def afterDoctypePublicIdentifierState(self): + data = self.stream.char() + if data in spaceCharacters: + self.state = self.betweenDoctypePublicAndSystemIdentifiersState + elif data == ">": + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + elif data == '"': + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-char-in-doctype"}) + self.currentToken["systemId"] = "" + self.state = self.doctypeSystemIdentifierDoubleQuotedState + elif data == "'": + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-char-in-doctype"}) + self.currentToken["systemId"] = "" + self.state = self.doctypeSystemIdentifierSingleQuotedState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-doctype"}) + self.currentToken["correct"] = False + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-char-in-doctype"}) + self.currentToken["correct"] = False + self.state = self.bogusDoctypeState + return True + + def betweenDoctypePublicAndSystemIdentifiersState(self): + data = self.stream.char() + if data in spaceCharacters: + pass + elif data == ">": + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + elif data == '"': + self.currentToken["systemId"] = "" + self.state = self.doctypeSystemIdentifierDoubleQuotedState + elif data == "'": + self.currentToken["systemId"] = "" + self.state = self.doctypeSystemIdentifierSingleQuotedState + elif data == EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-doctype"}) + self.currentToken["correct"] = False + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-char-in-doctype"}) + self.currentToken["correct"] = False + self.state = self.bogusDoctypeState + return True + + def afterDoctypeSystemKeywordState(self): + data = self.stream.char() + if data in spaceCharacters: + self.state = self.beforeDoctypeSystemIdentifierState + elif data in ("'", '"'): + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-char-in-doctype"}) + self.stream.unget(data) + self.state = self.beforeDoctypeSystemIdentifierState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-doctype"}) + self.currentToken["correct"] = False + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + self.stream.unget(data) + self.state = self.beforeDoctypeSystemIdentifierState + return True + + def beforeDoctypeSystemIdentifierState(self): + data = self.stream.char() + if data in spaceCharacters: + pass + elif data == "\"": + self.currentToken["systemId"] = "" + self.state = self.doctypeSystemIdentifierDoubleQuotedState + elif data == "'": + self.currentToken["systemId"] = "" + self.state = self.doctypeSystemIdentifierSingleQuotedState + elif data == ">": + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-char-in-doctype"}) + self.currentToken["correct"] = False + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-doctype"}) + self.currentToken["correct"] = False + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-char-in-doctype"}) + self.currentToken["correct"] = False + self.state = self.bogusDoctypeState + return True + + def doctypeSystemIdentifierDoubleQuotedState(self): + data = self.stream.char() + if data == "\"": + self.state = self.afterDoctypeSystemIdentifierState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.currentToken["systemId"] += "\uFFFD" + elif data == ">": + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-end-of-doctype"}) + self.currentToken["correct"] = False + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-doctype"}) + self.currentToken["correct"] = False + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + self.currentToken["systemId"] += data + return True + + def doctypeSystemIdentifierSingleQuotedState(self): + data = self.stream.char() + if data == "'": + self.state = self.afterDoctypeSystemIdentifierState + elif data == "\u0000": + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + self.currentToken["systemId"] += "\uFFFD" + elif data == ">": + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-end-of-doctype"}) + self.currentToken["correct"] = False + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-doctype"}) + self.currentToken["correct"] = False + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + self.currentToken["systemId"] += data + return True + + def afterDoctypeSystemIdentifierState(self): + data = self.stream.char() + if data in spaceCharacters: + pass + elif data == ">": + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + elif data is EOF: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "eof-in-doctype"}) + self.currentToken["correct"] = False + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + self.tokenQueue.append({"type": tokenTypes["ParseError"], "data": + "unexpected-char-in-doctype"}) + self.state = self.bogusDoctypeState + return True + + def bogusDoctypeState(self): + data = self.stream.char() + if data == ">": + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + elif data is EOF: + # XXX EMIT + self.stream.unget(data) + self.tokenQueue.append(self.currentToken) + self.state = self.dataState + else: + pass + return True + + def cdataSectionState(self): + data = [] + while True: + data.append(self.stream.charsUntil("]")) + data.append(self.stream.charsUntil(">")) + char = self.stream.char() + if char == EOF: + break + else: + assert char == ">" + if data[-1][-2:] == "]]": + data[-1] = data[-1][:-2] + break + else: + data.append(char) + + data = "".join(data) # pylint:disable=redefined-variable-type + # Deal with null here rather than in the parser + nullCount = data.count("\u0000") + if nullCount > 0: + for _ in range(nullCount): + self.tokenQueue.append({"type": tokenTypes["ParseError"], + "data": "invalid-codepoint"}) + data = data.replace("\u0000", "\uFFFD") + if data: + self.tokenQueue.append({"type": tokenTypes["Characters"], + "data": data}) + self.state = self.dataState + return True diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_trie/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_trie/__init__.py new file mode 100644 index 00000000..a5ba4bf1 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_trie/__init__.py @@ -0,0 +1,14 @@ +from __future__ import absolute_import, division, unicode_literals + +from .py import Trie as PyTrie + +Trie = PyTrie + +# pylint:disable=wrong-import-position +try: + from .datrie import Trie as DATrie +except ImportError: + pass +else: + Trie = DATrie +# pylint:enable=wrong-import-position diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_trie/_base.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_trie/_base.py new file mode 100644 index 00000000..a1158bbb --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_trie/_base.py @@ -0,0 +1,37 @@ +from __future__ import absolute_import, division, unicode_literals + +from collections import Mapping + + +class Trie(Mapping): + """Abstract base class for tries""" + + def keys(self, prefix=None): + # pylint:disable=arguments-differ + keys = super(Trie, self).keys() + + if prefix is None: + return set(keys) + + return {x for x in keys if x.startswith(prefix)} + + def has_keys_with_prefix(self, prefix): + for key in self.keys(): + if key.startswith(prefix): + return True + + return False + + def longest_prefix(self, prefix): + if prefix in self: + return prefix + + for i in range(1, len(prefix) + 1): + if prefix[:-i] in self: + return prefix[:-i] + + raise KeyError(prefix) + + def longest_prefix_item(self, prefix): + lprefix = self.longest_prefix(prefix) + return (lprefix, self[lprefix]) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_trie/datrie.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_trie/datrie.py new file mode 100644 index 00000000..e2e5f866 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_trie/datrie.py @@ -0,0 +1,44 @@ +from __future__ import absolute_import, division, unicode_literals + +from datrie import Trie as DATrie +from pip._vendor.six import text_type + +from ._base import Trie as ABCTrie + + +class Trie(ABCTrie): + def __init__(self, data): + chars = set() + for key in data.keys(): + if not isinstance(key, text_type): + raise TypeError("All keys must be strings") + for char in key: + chars.add(char) + + self._data = DATrie("".join(chars)) + for key, value in data.items(): + self._data[key] = value + + def __contains__(self, key): + return key in self._data + + def __len__(self): + return len(self._data) + + def __iter__(self): + raise NotImplementedError() + + def __getitem__(self, key): + return self._data[key] + + def keys(self, prefix=None): + return self._data.keys(prefix) + + def has_keys_with_prefix(self, prefix): + return self._data.has_keys_with_prefix(prefix) + + def longest_prefix(self, prefix): + return self._data.longest_prefix(prefix) + + def longest_prefix_item(self, prefix): + return self._data.longest_prefix_item(prefix) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_trie/py.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_trie/py.py new file mode 100644 index 00000000..c178b219 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_trie/py.py @@ -0,0 +1,67 @@ +from __future__ import absolute_import, division, unicode_literals +from pip._vendor.six import text_type + +from bisect import bisect_left + +from ._base import Trie as ABCTrie + + +class Trie(ABCTrie): + def __init__(self, data): + if not all(isinstance(x, text_type) for x in data.keys()): + raise TypeError("All keys must be strings") + + self._data = data + self._keys = sorted(data.keys()) + self._cachestr = "" + self._cachepoints = (0, len(data)) + + def __contains__(self, key): + return key in self._data + + def __len__(self): + return len(self._data) + + def __iter__(self): + return iter(self._data) + + def __getitem__(self, key): + return self._data[key] + + def keys(self, prefix=None): + if prefix is None or prefix == "" or not self._keys: + return set(self._keys) + + if prefix.startswith(self._cachestr): + lo, hi = self._cachepoints + start = i = bisect_left(self._keys, prefix, lo, hi) + else: + start = i = bisect_left(self._keys, prefix) + + keys = set() + if start == len(self._keys): + return keys + + while self._keys[i].startswith(prefix): + keys.add(self._keys[i]) + i += 1 + + self._cachestr = prefix + self._cachepoints = (start, i) + + return keys + + def has_keys_with_prefix(self, prefix): + if prefix in self._data: + return True + + if prefix.startswith(self._cachestr): + lo, hi = self._cachepoints + i = bisect_left(self._keys, prefix, lo, hi) + else: + i = bisect_left(self._keys, prefix) + + if i == len(self._keys): + return False + + return self._keys[i].startswith(prefix) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_utils.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_utils.py new file mode 100644 index 00000000..0703afb3 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/_utils.py @@ -0,0 +1,124 @@ +from __future__ import absolute_import, division, unicode_literals + +from types import ModuleType + +from pip._vendor.six import text_type + +try: + import xml.etree.cElementTree as default_etree +except ImportError: + import xml.etree.ElementTree as default_etree + + +__all__ = ["default_etree", "MethodDispatcher", "isSurrogatePair", + "surrogatePairToCodepoint", "moduleFactoryFactory", + "supports_lone_surrogates"] + + +# Platforms not supporting lone surrogates (\uD800-\uDFFF) should be +# caught by the below test. In general this would be any platform +# using UTF-16 as its encoding of unicode strings, such as +# Jython. This is because UTF-16 itself is based on the use of such +# surrogates, and there is no mechanism to further escape such +# escapes. +try: + _x = eval('"\\uD800"') # pylint:disable=eval-used + if not isinstance(_x, text_type): + # We need this with u"" because of http://bugs.jython.org/issue2039 + _x = eval('u"\\uD800"') # pylint:disable=eval-used + assert isinstance(_x, text_type) +except: # pylint:disable=bare-except + supports_lone_surrogates = False +else: + supports_lone_surrogates = True + + +class MethodDispatcher(dict): + """Dict with 2 special properties: + + On initiation, keys that are lists, sets or tuples are converted to + multiple keys so accessing any one of the items in the original + list-like object returns the matching value + + md = MethodDispatcher({("foo", "bar"):"baz"}) + md["foo"] == "baz" + + A default value which can be set through the default attribute. + """ + + def __init__(self, items=()): + # Using _dictEntries instead of directly assigning to self is about + # twice as fast. Please do careful performance testing before changing + # anything here. + _dictEntries = [] + for name, value in items: + if isinstance(name, (list, tuple, frozenset, set)): + for item in name: + _dictEntries.append((item, value)) + else: + _dictEntries.append((name, value)) + dict.__init__(self, _dictEntries) + assert len(self) == len(_dictEntries) + self.default = None + + def __getitem__(self, key): + return dict.get(self, key, self.default) + + +# Some utility functions to deal with weirdness around UCS2 vs UCS4 +# python builds + +def isSurrogatePair(data): + return (len(data) == 2 and + ord(data[0]) >= 0xD800 and ord(data[0]) <= 0xDBFF and + ord(data[1]) >= 0xDC00 and ord(data[1]) <= 0xDFFF) + + +def surrogatePairToCodepoint(data): + char_val = (0x10000 + (ord(data[0]) - 0xD800) * 0x400 + + (ord(data[1]) - 0xDC00)) + return char_val + +# Module Factory Factory (no, this isn't Java, I know) +# Here to stop this being duplicated all over the place. + + +def moduleFactoryFactory(factory): + moduleCache = {} + + def moduleFactory(baseModule, *args, **kwargs): + if isinstance(ModuleType.__name__, type("")): + name = "_%s_factory" % baseModule.__name__ + else: + name = b"_%s_factory" % baseModule.__name__ + + kwargs_tuple = tuple(kwargs.items()) + + try: + return moduleCache[name][args][kwargs_tuple] + except KeyError: + mod = ModuleType(name) + objs = factory(baseModule, *args, **kwargs) + mod.__dict__.update(objs) + if "name" not in moduleCache: + moduleCache[name] = {} + if "args" not in moduleCache[name]: + moduleCache[name][args] = {} + if "kwargs" not in moduleCache[name][args]: + moduleCache[name][args][kwargs_tuple] = {} + moduleCache[name][args][kwargs_tuple] = mod + return mod + + return moduleFactory + + +def memoize(func): + cache = {} + + def wrapped(*args, **kwargs): + key = (tuple(args), tuple(kwargs.items())) + if key not in cache: + cache[key] = func(*args, **kwargs) + return cache[key] + + return wrapped diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/constants.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/constants.py new file mode 100644 index 00000000..1ff80419 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/constants.py @@ -0,0 +1,2947 @@ +from __future__ import absolute_import, division, unicode_literals + +import string + +EOF = None + +E = { + "null-character": + "Null character in input stream, replaced with U+FFFD.", + "invalid-codepoint": + "Invalid codepoint in stream.", + "incorrectly-placed-solidus": + "Solidus (/) incorrectly placed in tag.", + "incorrect-cr-newline-entity": + "Incorrect CR newline entity, replaced with LF.", + "illegal-windows-1252-entity": + "Entity used with illegal number (windows-1252 reference).", + "cant-convert-numeric-entity": + "Numeric entity couldn't be converted to character " + "(codepoint U+%(charAsInt)08x).", + "illegal-codepoint-for-numeric-entity": + "Numeric entity represents an illegal codepoint: " + "U+%(charAsInt)08x.", + "numeric-entity-without-semicolon": + "Numeric entity didn't end with ';'.", + "expected-numeric-entity-but-got-eof": + "Numeric entity expected. Got end of file instead.", + "expected-numeric-entity": + "Numeric entity expected but none found.", + "named-entity-without-semicolon": + "Named entity didn't end with ';'.", + "expected-named-entity": + "Named entity expected. Got none.", + "attributes-in-end-tag": + "End tag contains unexpected attributes.", + 'self-closing-flag-on-end-tag': + "End tag contains unexpected self-closing flag.", + "expected-tag-name-but-got-right-bracket": + "Expected tag name. Got '>' instead.", + "expected-tag-name-but-got-question-mark": + "Expected tag name. Got '?' instead. (HTML doesn't " + "support processing instructions.)", + "expected-tag-name": + "Expected tag name. Got something else instead", + "expected-closing-tag-but-got-right-bracket": + "Expected closing tag. Got '>' instead. Ignoring '</>'.", + "expected-closing-tag-but-got-eof": + "Expected closing tag. Unexpected end of file.", + "expected-closing-tag-but-got-char": + "Expected closing tag. Unexpected character '%(data)s' found.", + "eof-in-tag-name": + "Unexpected end of file in the tag name.", + "expected-attribute-name-but-got-eof": + "Unexpected end of file. Expected attribute name instead.", + "eof-in-attribute-name": + "Unexpected end of file in attribute name.", + "invalid-character-in-attribute-name": + "Invalid character in attribute name", + "duplicate-attribute": + "Dropped duplicate attribute on tag.", + "expected-end-of-tag-name-but-got-eof": + "Unexpected end of file. Expected = or end of tag.", + "expected-attribute-value-but-got-eof": + "Unexpected end of file. Expected attribute value.", + "expected-attribute-value-but-got-right-bracket": + "Expected attribute value. Got '>' instead.", + 'equals-in-unquoted-attribute-value': + "Unexpected = in unquoted attribute", + 'unexpected-character-in-unquoted-attribute-value': + "Unexpected character in unquoted attribute", + "invalid-character-after-attribute-name": + "Unexpected character after attribute name.", + "unexpected-character-after-attribute-value": + "Unexpected character after attribute value.", + "eof-in-attribute-value-double-quote": + "Unexpected end of file in attribute value (\").", + "eof-in-attribute-value-single-quote": + "Unexpected end of file in attribute value (').", + "eof-in-attribute-value-no-quotes": + "Unexpected end of file in attribute value.", + "unexpected-EOF-after-solidus-in-tag": + "Unexpected end of file in tag. Expected >", + "unexpected-character-after-solidus-in-tag": + "Unexpected character after / in tag. Expected >", + "expected-dashes-or-doctype": + "Expected '--' or 'DOCTYPE'. Not found.", + "unexpected-bang-after-double-dash-in-comment": + "Unexpected ! after -- in comment", + "unexpected-space-after-double-dash-in-comment": + "Unexpected space after -- in comment", + "incorrect-comment": + "Incorrect comment.", + "eof-in-comment": + "Unexpected end of file in comment.", + "eof-in-comment-end-dash": + "Unexpected end of file in comment (-)", + "unexpected-dash-after-double-dash-in-comment": + "Unexpected '-' after '--' found in comment.", + "eof-in-comment-double-dash": + "Unexpected end of file in comment (--).", + "eof-in-comment-end-space-state": + "Unexpected end of file in comment.", + "eof-in-comment-end-bang-state": + "Unexpected end of file in comment.", + "unexpected-char-in-comment": + "Unexpected character in comment found.", + "need-space-after-doctype": + "No space after literal string 'DOCTYPE'.", + "expected-doctype-name-but-got-right-bracket": + "Unexpected > character. Expected DOCTYPE name.", + "expected-doctype-name-but-got-eof": + "Unexpected end of file. Expected DOCTYPE name.", + "eof-in-doctype-name": + "Unexpected end of file in DOCTYPE name.", + "eof-in-doctype": + "Unexpected end of file in DOCTYPE.", + "expected-space-or-right-bracket-in-doctype": + "Expected space or '>'. Got '%(data)s'", + "unexpected-end-of-doctype": + "Unexpected end of DOCTYPE.", + "unexpected-char-in-doctype": + "Unexpected character in DOCTYPE.", + "eof-in-innerhtml": + "XXX innerHTML EOF", + "unexpected-doctype": + "Unexpected DOCTYPE. Ignored.", + "non-html-root": + "html needs to be the first start tag.", + "expected-doctype-but-got-eof": + "Unexpected End of file. Expected DOCTYPE.", + "unknown-doctype": + "Erroneous DOCTYPE.", + "expected-doctype-but-got-chars": + "Unexpected non-space characters. Expected DOCTYPE.", + "expected-doctype-but-got-start-tag": + "Unexpected start tag (%(name)s). Expected DOCTYPE.", + "expected-doctype-but-got-end-tag": + "Unexpected end tag (%(name)s). Expected DOCTYPE.", + "end-tag-after-implied-root": + "Unexpected end tag (%(name)s) after the (implied) root element.", + "expected-named-closing-tag-but-got-eof": + "Unexpected end of file. Expected end tag (%(name)s).", + "two-heads-are-not-better-than-one": + "Unexpected start tag head in existing head. Ignored.", + "unexpected-end-tag": + "Unexpected end tag (%(name)s). Ignored.", + "unexpected-start-tag-out-of-my-head": + "Unexpected start tag (%(name)s) that can be in head. Moved.", + "unexpected-start-tag": + "Unexpected start tag (%(name)s).", + "missing-end-tag": + "Missing end tag (%(name)s).", + "missing-end-tags": + "Missing end tags (%(name)s).", + "unexpected-start-tag-implies-end-tag": + "Unexpected start tag (%(startName)s) " + "implies end tag (%(endName)s).", + "unexpected-start-tag-treated-as": + "Unexpected start tag (%(originalName)s). Treated as %(newName)s.", + "deprecated-tag": + "Unexpected start tag %(name)s. Don't use it!", + "unexpected-start-tag-ignored": + "Unexpected start tag %(name)s. Ignored.", + "expected-one-end-tag-but-got-another": + "Unexpected end tag (%(gotName)s). " + "Missing end tag (%(expectedName)s).", + "end-tag-too-early": + "End tag (%(name)s) seen too early. Expected other end tag.", + "end-tag-too-early-named": + "Unexpected end tag (%(gotName)s). Expected end tag (%(expectedName)s).", + "end-tag-too-early-ignored": + "End tag (%(name)s) seen too early. Ignored.", + "adoption-agency-1.1": + "End tag (%(name)s) violates step 1, " + "paragraph 1 of the adoption agency algorithm.", + "adoption-agency-1.2": + "End tag (%(name)s) violates step 1, " + "paragraph 2 of the adoption agency algorithm.", + "adoption-agency-1.3": + "End tag (%(name)s) violates step 1, " + "paragraph 3 of the adoption agency algorithm.", + "adoption-agency-4.4": + "End tag (%(name)s) violates step 4, " + "paragraph 4 of the adoption agency algorithm.", + "unexpected-end-tag-treated-as": + "Unexpected end tag (%(originalName)s). Treated as %(newName)s.", + "no-end-tag": + "This element (%(name)s) has no end tag.", + "unexpected-implied-end-tag-in-table": + "Unexpected implied end tag (%(name)s) in the table phase.", + "unexpected-implied-end-tag-in-table-body": + "Unexpected implied end tag (%(name)s) in the table body phase.", + "unexpected-char-implies-table-voodoo": + "Unexpected non-space characters in " + "table context caused voodoo mode.", + "unexpected-hidden-input-in-table": + "Unexpected input with type hidden in table context.", + "unexpected-form-in-table": + "Unexpected form in table context.", + "unexpected-start-tag-implies-table-voodoo": + "Unexpected start tag (%(name)s) in " + "table context caused voodoo mode.", + "unexpected-end-tag-implies-table-voodoo": + "Unexpected end tag (%(name)s) in " + "table context caused voodoo mode.", + "unexpected-cell-in-table-body": + "Unexpected table cell start tag (%(name)s) " + "in the table body phase.", + "unexpected-cell-end-tag": + "Got table cell end tag (%(name)s) " + "while required end tags are missing.", + "unexpected-end-tag-in-table-body": + "Unexpected end tag (%(name)s) in the table body phase. Ignored.", + "unexpected-implied-end-tag-in-table-row": + "Unexpected implied end tag (%(name)s) in the table row phase.", + "unexpected-end-tag-in-table-row": + "Unexpected end tag (%(name)s) in the table row phase. Ignored.", + "unexpected-select-in-select": + "Unexpected select start tag in the select phase " + "treated as select end tag.", + "unexpected-input-in-select": + "Unexpected input start tag in the select phase.", + "unexpected-start-tag-in-select": + "Unexpected start tag token (%(name)s in the select phase. " + "Ignored.", + "unexpected-end-tag-in-select": + "Unexpected end tag (%(name)s) in the select phase. Ignored.", + "unexpected-table-element-start-tag-in-select-in-table": + "Unexpected table element start tag (%(name)s) in the select in table phase.", + "unexpected-table-element-end-tag-in-select-in-table": + "Unexpected table element end tag (%(name)s) in the select in table phase.", + "unexpected-char-after-body": + "Unexpected non-space characters in the after body phase.", + "unexpected-start-tag-after-body": + "Unexpected start tag token (%(name)s)" + " in the after body phase.", + "unexpected-end-tag-after-body": + "Unexpected end tag token (%(name)s)" + " in the after body phase.", + "unexpected-char-in-frameset": + "Unexpected characters in the frameset phase. Characters ignored.", + "unexpected-start-tag-in-frameset": + "Unexpected start tag token (%(name)s)" + " in the frameset phase. Ignored.", + "unexpected-frameset-in-frameset-innerhtml": + "Unexpected end tag token (frameset) " + "in the frameset phase (innerHTML).", + "unexpected-end-tag-in-frameset": + "Unexpected end tag token (%(name)s)" + " in the frameset phase. Ignored.", + "unexpected-char-after-frameset": + "Unexpected non-space characters in the " + "after frameset phase. Ignored.", + "unexpected-start-tag-after-frameset": + "Unexpected start tag (%(name)s)" + " in the after frameset phase. Ignored.", + "unexpected-end-tag-after-frameset": + "Unexpected end tag (%(name)s)" + " in the after frameset phase. Ignored.", + "unexpected-end-tag-after-body-innerhtml": + "Unexpected end tag after body(innerHtml)", + "expected-eof-but-got-char": + "Unexpected non-space characters. Expected end of file.", + "expected-eof-but-got-start-tag": + "Unexpected start tag (%(name)s)" + ". Expected end of file.", + "expected-eof-but-got-end-tag": + "Unexpected end tag (%(name)s)" + ". Expected end of file.", + "eof-in-table": + "Unexpected end of file. Expected table content.", + "eof-in-select": + "Unexpected end of file. Expected select content.", + "eof-in-frameset": + "Unexpected end of file. Expected frameset content.", + "eof-in-script-in-script": + "Unexpected end of file. Expected script content.", + "eof-in-foreign-lands": + "Unexpected end of file. Expected foreign content", + "non-void-element-with-trailing-solidus": + "Trailing solidus not allowed on element %(name)s", + "unexpected-html-element-in-foreign-content": + "Element %(name)s not allowed in a non-html context", + "unexpected-end-tag-before-html": + "Unexpected end tag (%(name)s) before html.", + "unexpected-inhead-noscript-tag": + "Element %(name)s not allowed in a inhead-noscript context", + "eof-in-head-noscript": + "Unexpected end of file. Expected inhead-noscript content", + "char-in-head-noscript": + "Unexpected non-space character. Expected inhead-noscript content", + "XXX-undefined-error": + "Undefined error (this sucks and should be fixed)", +} + +namespaces = { + "html": "http://www.w3.org/1999/xhtml", + "mathml": "http://www.w3.org/1998/Math/MathML", + "svg": "http://www.w3.org/2000/svg", + "xlink": "http://www.w3.org/1999/xlink", + "xml": "http://www.w3.org/XML/1998/namespace", + "xmlns": "http://www.w3.org/2000/xmlns/" +} + +scopingElements = frozenset([ + (namespaces["html"], "applet"), + (namespaces["html"], "caption"), + (namespaces["html"], "html"), + (namespaces["html"], "marquee"), + (namespaces["html"], "object"), + (namespaces["html"], "table"), + (namespaces["html"], "td"), + (namespaces["html"], "th"), + (namespaces["mathml"], "mi"), + (namespaces["mathml"], "mo"), + (namespaces["mathml"], "mn"), + (namespaces["mathml"], "ms"), + (namespaces["mathml"], "mtext"), + (namespaces["mathml"], "annotation-xml"), + (namespaces["svg"], "foreignObject"), + (namespaces["svg"], "desc"), + (namespaces["svg"], "title"), +]) + +formattingElements = frozenset([ + (namespaces["html"], "a"), + (namespaces["html"], "b"), + (namespaces["html"], "big"), + (namespaces["html"], "code"), + (namespaces["html"], "em"), + (namespaces["html"], "font"), + (namespaces["html"], "i"), + (namespaces["html"], "nobr"), + (namespaces["html"], "s"), + (namespaces["html"], "small"), + (namespaces["html"], "strike"), + (namespaces["html"], "strong"), + (namespaces["html"], "tt"), + (namespaces["html"], "u") +]) + +specialElements = frozenset([ + (namespaces["html"], "address"), + (namespaces["html"], "applet"), + (namespaces["html"], "area"), + (namespaces["html"], "article"), + (namespaces["html"], "aside"), + (namespaces["html"], "base"), + (namespaces["html"], "basefont"), + (namespaces["html"], "bgsound"), + (namespaces["html"], "blockquote"), + (namespaces["html"], "body"), + (namespaces["html"], "br"), + (namespaces["html"], "button"), + (namespaces["html"], "caption"), + (namespaces["html"], "center"), + (namespaces["html"], "col"), + (namespaces["html"], "colgroup"), + (namespaces["html"], "command"), + (namespaces["html"], "dd"), + (namespaces["html"], "details"), + (namespaces["html"], "dir"), + (namespaces["html"], "div"), + (namespaces["html"], "dl"), + (namespaces["html"], "dt"), + (namespaces["html"], "embed"), + (namespaces["html"], "fieldset"), + (namespaces["html"], "figure"), + (namespaces["html"], "footer"), + (namespaces["html"], "form"), + (namespaces["html"], "frame"), + (namespaces["html"], "frameset"), + (namespaces["html"], "h1"), + (namespaces["html"], "h2"), + (namespaces["html"], "h3"), + (namespaces["html"], "h4"), + (namespaces["html"], "h5"), + (namespaces["html"], "h6"), + (namespaces["html"], "head"), + (namespaces["html"], "header"), + (namespaces["html"], "hr"), + (namespaces["html"], "html"), + (namespaces["html"], "iframe"), + # Note that image is commented out in the spec as "this isn't an + # element that can end up on the stack, so it doesn't matter," + (namespaces["html"], "image"), + (namespaces["html"], "img"), + (namespaces["html"], "input"), + (namespaces["html"], "isindex"), + (namespaces["html"], "li"), + (namespaces["html"], "link"), + (namespaces["html"], "listing"), + (namespaces["html"], "marquee"), + (namespaces["html"], "menu"), + (namespaces["html"], "meta"), + (namespaces["html"], "nav"), + (namespaces["html"], "noembed"), + (namespaces["html"], "noframes"), + (namespaces["html"], "noscript"), + (namespaces["html"], "object"), + (namespaces["html"], "ol"), + (namespaces["html"], "p"), + (namespaces["html"], "param"), + (namespaces["html"], "plaintext"), + (namespaces["html"], "pre"), + (namespaces["html"], "script"), + (namespaces["html"], "section"), + (namespaces["html"], "select"), + (namespaces["html"], "style"), + (namespaces["html"], "table"), + (namespaces["html"], "tbody"), + (namespaces["html"], "td"), + (namespaces["html"], "textarea"), + (namespaces["html"], "tfoot"), + (namespaces["html"], "th"), + (namespaces["html"], "thead"), + (namespaces["html"], "title"), + (namespaces["html"], "tr"), + (namespaces["html"], "ul"), + (namespaces["html"], "wbr"), + (namespaces["html"], "xmp"), + (namespaces["svg"], "foreignObject") +]) + +htmlIntegrationPointElements = frozenset([ + (namespaces["mathml"], "annotation-xml"), + (namespaces["svg"], "foreignObject"), + (namespaces["svg"], "desc"), + (namespaces["svg"], "title") +]) + +mathmlTextIntegrationPointElements = frozenset([ + (namespaces["mathml"], "mi"), + (namespaces["mathml"], "mo"), + (namespaces["mathml"], "mn"), + (namespaces["mathml"], "ms"), + (namespaces["mathml"], "mtext") +]) + +adjustSVGAttributes = { + "attributename": "attributeName", + "attributetype": "attributeType", + "basefrequency": "baseFrequency", + "baseprofile": "baseProfile", + "calcmode": "calcMode", + "clippathunits": "clipPathUnits", + "contentscripttype": "contentScriptType", + "contentstyletype": "contentStyleType", + "diffuseconstant": "diffuseConstant", + "edgemode": "edgeMode", + "externalresourcesrequired": "externalResourcesRequired", + "filterres": "filterRes", + "filterunits": "filterUnits", + "glyphref": "glyphRef", + "gradienttransform": "gradientTransform", + "gradientunits": "gradientUnits", + "kernelmatrix": "kernelMatrix", + "kernelunitlength": "kernelUnitLength", + "keypoints": "keyPoints", + "keysplines": "keySplines", + "keytimes": "keyTimes", + "lengthadjust": "lengthAdjust", + "limitingconeangle": "limitingConeAngle", + "markerheight": "markerHeight", + "markerunits": "markerUnits", + "markerwidth": "markerWidth", + "maskcontentunits": "maskContentUnits", + "maskunits": "maskUnits", + "numoctaves": "numOctaves", + "pathlength": "pathLength", + "patterncontentunits": "patternContentUnits", + "patterntransform": "patternTransform", + "patternunits": "patternUnits", + "pointsatx": "pointsAtX", + "pointsaty": "pointsAtY", + "pointsatz": "pointsAtZ", + "preservealpha": "preserveAlpha", + "preserveaspectratio": "preserveAspectRatio", + "primitiveunits": "primitiveUnits", + "refx": "refX", + "refy": "refY", + "repeatcount": "repeatCount", + "repeatdur": "repeatDur", + "requiredextensions": "requiredExtensions", + "requiredfeatures": "requiredFeatures", + "specularconstant": "specularConstant", + "specularexponent": "specularExponent", + "spreadmethod": "spreadMethod", + "startoffset": "startOffset", + "stddeviation": "stdDeviation", + "stitchtiles": "stitchTiles", + "surfacescale": "surfaceScale", + "systemlanguage": "systemLanguage", + "tablevalues": "tableValues", + "targetx": "targetX", + "targety": "targetY", + "textlength": "textLength", + "viewbox": "viewBox", + "viewtarget": "viewTarget", + "xchannelselector": "xChannelSelector", + "ychannelselector": "yChannelSelector", + "zoomandpan": "zoomAndPan" +} + +adjustMathMLAttributes = {"definitionurl": "definitionURL"} + +adjustForeignAttributes = { + "xlink:actuate": ("xlink", "actuate", namespaces["xlink"]), + "xlink:arcrole": ("xlink", "arcrole", namespaces["xlink"]), + "xlink:href": ("xlink", "href", namespaces["xlink"]), + "xlink:role": ("xlink", "role", namespaces["xlink"]), + "xlink:show": ("xlink", "show", namespaces["xlink"]), + "xlink:title": ("xlink", "title", namespaces["xlink"]), + "xlink:type": ("xlink", "type", namespaces["xlink"]), + "xml:base": ("xml", "base", namespaces["xml"]), + "xml:lang": ("xml", "lang", namespaces["xml"]), + "xml:space": ("xml", "space", namespaces["xml"]), + "xmlns": (None, "xmlns", namespaces["xmlns"]), + "xmlns:xlink": ("xmlns", "xlink", namespaces["xmlns"]) +} + +unadjustForeignAttributes = dict([((ns, local), qname) for qname, (prefix, local, ns) in + adjustForeignAttributes.items()]) + +spaceCharacters = frozenset([ + "\t", + "\n", + "\u000C", + " ", + "\r" +]) + +tableInsertModeElements = frozenset([ + "table", + "tbody", + "tfoot", + "thead", + "tr" +]) + +asciiLowercase = frozenset(string.ascii_lowercase) +asciiUppercase = frozenset(string.ascii_uppercase) +asciiLetters = frozenset(string.ascii_letters) +digits = frozenset(string.digits) +hexDigits = frozenset(string.hexdigits) + +asciiUpper2Lower = dict([(ord(c), ord(c.lower())) + for c in string.ascii_uppercase]) + +# Heading elements need to be ordered +headingElements = ( + "h1", + "h2", + "h3", + "h4", + "h5", + "h6" +) + +voidElements = frozenset([ + "base", + "command", + "event-source", + "link", + "meta", + "hr", + "br", + "img", + "embed", + "param", + "area", + "col", + "input", + "source", + "track" +]) + +cdataElements = frozenset(['title', 'textarea']) + +rcdataElements = frozenset([ + 'style', + 'script', + 'xmp', + 'iframe', + 'noembed', + 'noframes', + 'noscript' +]) + +booleanAttributes = { + "": frozenset(["irrelevant", "itemscope"]), + "style": frozenset(["scoped"]), + "img": frozenset(["ismap"]), + "audio": frozenset(["autoplay", "controls"]), + "video": frozenset(["autoplay", "controls"]), + "script": frozenset(["defer", "async"]), + "details": frozenset(["open"]), + "datagrid": frozenset(["multiple", "disabled"]), + "command": frozenset(["hidden", "disabled", "checked", "default"]), + "hr": frozenset(["noshade"]), + "menu": frozenset(["autosubmit"]), + "fieldset": frozenset(["disabled", "readonly"]), + "option": frozenset(["disabled", "readonly", "selected"]), + "optgroup": frozenset(["disabled", "readonly"]), + "button": frozenset(["disabled", "autofocus"]), + "input": frozenset(["disabled", "readonly", "required", "autofocus", "checked", "ismap"]), + "select": frozenset(["disabled", "readonly", "autofocus", "multiple"]), + "output": frozenset(["disabled", "readonly"]), + "iframe": frozenset(["seamless"]), +} + +# entitiesWindows1252 has to be _ordered_ and needs to have an index. It +# therefore can't be a frozenset. +entitiesWindows1252 = ( + 8364, # 0x80 0x20AC EURO SIGN + 65533, # 0x81 UNDEFINED + 8218, # 0x82 0x201A SINGLE LOW-9 QUOTATION MARK + 402, # 0x83 0x0192 LATIN SMALL LETTER F WITH HOOK + 8222, # 0x84 0x201E DOUBLE LOW-9 QUOTATION MARK + 8230, # 0x85 0x2026 HORIZONTAL ELLIPSIS + 8224, # 0x86 0x2020 DAGGER + 8225, # 0x87 0x2021 DOUBLE DAGGER + 710, # 0x88 0x02C6 MODIFIER LETTER CIRCUMFLEX ACCENT + 8240, # 0x89 0x2030 PER MILLE SIGN + 352, # 0x8A 0x0160 LATIN CAPITAL LETTER S WITH CARON + 8249, # 0x8B 0x2039 SINGLE LEFT-POINTING ANGLE QUOTATION MARK + 338, # 0x8C 0x0152 LATIN CAPITAL LIGATURE OE + 65533, # 0x8D UNDEFINED + 381, # 0x8E 0x017D LATIN CAPITAL LETTER Z WITH CARON + 65533, # 0x8F UNDEFINED + 65533, # 0x90 UNDEFINED + 8216, # 0x91 0x2018 LEFT SINGLE QUOTATION MARK + 8217, # 0x92 0x2019 RIGHT SINGLE QUOTATION MARK + 8220, # 0x93 0x201C LEFT DOUBLE QUOTATION MARK + 8221, # 0x94 0x201D RIGHT DOUBLE QUOTATION MARK + 8226, # 0x95 0x2022 BULLET + 8211, # 0x96 0x2013 EN DASH + 8212, # 0x97 0x2014 EM DASH + 732, # 0x98 0x02DC SMALL TILDE + 8482, # 0x99 0x2122 TRADE MARK SIGN + 353, # 0x9A 0x0161 LATIN SMALL LETTER S WITH CARON + 8250, # 0x9B 0x203A SINGLE RIGHT-POINTING ANGLE QUOTATION MARK + 339, # 0x9C 0x0153 LATIN SMALL LIGATURE OE + 65533, # 0x9D UNDEFINED + 382, # 0x9E 0x017E LATIN SMALL LETTER Z WITH CARON + 376 # 0x9F 0x0178 LATIN CAPITAL LETTER Y WITH DIAERESIS +) + +xmlEntities = frozenset(['lt;', 'gt;', 'amp;', 'apos;', 'quot;']) + +entities = { + "AElig": "\xc6", + "AElig;": "\xc6", + "AMP": "&", + "AMP;": "&", + "Aacute": "\xc1", + "Aacute;": "\xc1", + "Abreve;": "\u0102", + "Acirc": "\xc2", + "Acirc;": "\xc2", + "Acy;": "\u0410", + "Afr;": "\U0001d504", + "Agrave": "\xc0", + "Agrave;": "\xc0", + "Alpha;": "\u0391", + "Amacr;": "\u0100", + "And;": "\u2a53", + "Aogon;": "\u0104", + "Aopf;": "\U0001d538", + "ApplyFunction;": "\u2061", + "Aring": "\xc5", + "Aring;": "\xc5", + "Ascr;": "\U0001d49c", + "Assign;": "\u2254", + "Atilde": "\xc3", + "Atilde;": "\xc3", + "Auml": "\xc4", + "Auml;": "\xc4", + "Backslash;": "\u2216", + "Barv;": "\u2ae7", + "Barwed;": "\u2306", + "Bcy;": "\u0411", + "Because;": "\u2235", + "Bernoullis;": "\u212c", + "Beta;": "\u0392", + "Bfr;": "\U0001d505", + "Bopf;": "\U0001d539", + "Breve;": "\u02d8", + "Bscr;": "\u212c", + "Bumpeq;": "\u224e", + "CHcy;": "\u0427", + "COPY": "\xa9", + "COPY;": "\xa9", + "Cacute;": "\u0106", + "Cap;": "\u22d2", + "CapitalDifferentialD;": "\u2145", + "Cayleys;": "\u212d", + "Ccaron;": "\u010c", + "Ccedil": "\xc7", + "Ccedil;": "\xc7", + "Ccirc;": "\u0108", + "Cconint;": "\u2230", + "Cdot;": "\u010a", + "Cedilla;": "\xb8", + "CenterDot;": "\xb7", + "Cfr;": "\u212d", + "Chi;": "\u03a7", + "CircleDot;": "\u2299", + "CircleMinus;": "\u2296", + "CirclePlus;": "\u2295", + "CircleTimes;": "\u2297", + "ClockwiseContourIntegral;": "\u2232", + "CloseCurlyDoubleQuote;": "\u201d", + "CloseCurlyQuote;": "\u2019", + "Colon;": "\u2237", + "Colone;": "\u2a74", + "Congruent;": "\u2261", + "Conint;": "\u222f", + "ContourIntegral;": "\u222e", + "Copf;": "\u2102", + "Coproduct;": "\u2210", + "CounterClockwiseContourIntegral;": "\u2233", + "Cross;": "\u2a2f", + "Cscr;": "\U0001d49e", + "Cup;": "\u22d3", + "CupCap;": "\u224d", + "DD;": "\u2145", + "DDotrahd;": "\u2911", + "DJcy;": "\u0402", + "DScy;": "\u0405", + "DZcy;": "\u040f", + "Dagger;": "\u2021", + "Darr;": "\u21a1", + "Dashv;": "\u2ae4", + "Dcaron;": "\u010e", + "Dcy;": "\u0414", + "Del;": "\u2207", + "Delta;": "\u0394", + "Dfr;": "\U0001d507", + "DiacriticalAcute;": "\xb4", + "DiacriticalDot;": "\u02d9", + "DiacriticalDoubleAcute;": "\u02dd", + "DiacriticalGrave;": "`", + "DiacriticalTilde;": "\u02dc", + "Diamond;": "\u22c4", + "DifferentialD;": "\u2146", + "Dopf;": "\U0001d53b", + "Dot;": "\xa8", + "DotDot;": "\u20dc", + "DotEqual;": "\u2250", + "DoubleContourIntegral;": "\u222f", + "DoubleDot;": "\xa8", + "DoubleDownArrow;": "\u21d3", + "DoubleLeftArrow;": "\u21d0", + "DoubleLeftRightArrow;": "\u21d4", + "DoubleLeftTee;": "\u2ae4", + "DoubleLongLeftArrow;": "\u27f8", + "DoubleLongLeftRightArrow;": "\u27fa", + "DoubleLongRightArrow;": "\u27f9", + "DoubleRightArrow;": "\u21d2", + "DoubleRightTee;": "\u22a8", + "DoubleUpArrow;": "\u21d1", + "DoubleUpDownArrow;": "\u21d5", + "DoubleVerticalBar;": "\u2225", + "DownArrow;": "\u2193", + "DownArrowBar;": "\u2913", + "DownArrowUpArrow;": "\u21f5", + "DownBreve;": "\u0311", + "DownLeftRightVector;": "\u2950", + "DownLeftTeeVector;": "\u295e", + "DownLeftVector;": "\u21bd", + "DownLeftVectorBar;": "\u2956", + "DownRightTeeVector;": "\u295f", + "DownRightVector;": "\u21c1", + "DownRightVectorBar;": "\u2957", + "DownTee;": "\u22a4", + "DownTeeArrow;": "\u21a7", + "Downarrow;": "\u21d3", + "Dscr;": "\U0001d49f", + "Dstrok;": "\u0110", + "ENG;": "\u014a", + "ETH": "\xd0", + "ETH;": "\xd0", + "Eacute": "\xc9", + "Eacute;": "\xc9", + "Ecaron;": "\u011a", + "Ecirc": "\xca", + "Ecirc;": "\xca", + "Ecy;": "\u042d", + "Edot;": "\u0116", + "Efr;": "\U0001d508", + "Egrave": "\xc8", + "Egrave;": "\xc8", + "Element;": "\u2208", + "Emacr;": "\u0112", + "EmptySmallSquare;": "\u25fb", + "EmptyVerySmallSquare;": "\u25ab", + "Eogon;": "\u0118", + "Eopf;": "\U0001d53c", + "Epsilon;": "\u0395", + "Equal;": "\u2a75", + "EqualTilde;": "\u2242", + "Equilibrium;": "\u21cc", + "Escr;": "\u2130", + "Esim;": "\u2a73", + "Eta;": "\u0397", + "Euml": "\xcb", + "Euml;": "\xcb", + "Exists;": "\u2203", + "ExponentialE;": "\u2147", + "Fcy;": "\u0424", + "Ffr;": "\U0001d509", + "FilledSmallSquare;": "\u25fc", + "FilledVerySmallSquare;": "\u25aa", + "Fopf;": "\U0001d53d", + "ForAll;": "\u2200", + "Fouriertrf;": "\u2131", + "Fscr;": "\u2131", + "GJcy;": "\u0403", + "GT": ">", + "GT;": ">", + "Gamma;": "\u0393", + "Gammad;": "\u03dc", + "Gbreve;": "\u011e", + "Gcedil;": "\u0122", + "Gcirc;": "\u011c", + "Gcy;": "\u0413", + "Gdot;": "\u0120", + "Gfr;": "\U0001d50a", + "Gg;": "\u22d9", + "Gopf;": "\U0001d53e", + "GreaterEqual;": "\u2265", + "GreaterEqualLess;": "\u22db", + "GreaterFullEqual;": "\u2267", + "GreaterGreater;": "\u2aa2", + "GreaterLess;": "\u2277", + "GreaterSlantEqual;": "\u2a7e", + "GreaterTilde;": "\u2273", + "Gscr;": "\U0001d4a2", + "Gt;": "\u226b", + "HARDcy;": "\u042a", + "Hacek;": "\u02c7", + "Hat;": "^", + "Hcirc;": "\u0124", + "Hfr;": "\u210c", + "HilbertSpace;": "\u210b", + "Hopf;": "\u210d", + "HorizontalLine;": "\u2500", + "Hscr;": "\u210b", + "Hstrok;": "\u0126", + "HumpDownHump;": "\u224e", + "HumpEqual;": "\u224f", + "IEcy;": "\u0415", + "IJlig;": "\u0132", + "IOcy;": "\u0401", + "Iacute": "\xcd", + "Iacute;": "\xcd", + "Icirc": "\xce", + "Icirc;": "\xce", + "Icy;": "\u0418", + "Idot;": "\u0130", + "Ifr;": "\u2111", + "Igrave": "\xcc", + "Igrave;": "\xcc", + "Im;": "\u2111", + "Imacr;": "\u012a", + "ImaginaryI;": "\u2148", + "Implies;": "\u21d2", + "Int;": "\u222c", + "Integral;": "\u222b", + "Intersection;": "\u22c2", + "InvisibleComma;": "\u2063", + "InvisibleTimes;": "\u2062", + "Iogon;": "\u012e", + "Iopf;": "\U0001d540", + "Iota;": "\u0399", + "Iscr;": "\u2110", + "Itilde;": "\u0128", + "Iukcy;": "\u0406", + "Iuml": "\xcf", + "Iuml;": "\xcf", + "Jcirc;": "\u0134", + "Jcy;": "\u0419", + "Jfr;": "\U0001d50d", + "Jopf;": "\U0001d541", + "Jscr;": "\U0001d4a5", + "Jsercy;": "\u0408", + "Jukcy;": "\u0404", + "KHcy;": "\u0425", + "KJcy;": "\u040c", + "Kappa;": "\u039a", + "Kcedil;": "\u0136", + "Kcy;": "\u041a", + "Kfr;": "\U0001d50e", + "Kopf;": "\U0001d542", + "Kscr;": "\U0001d4a6", + "LJcy;": "\u0409", + "LT": "<", + "LT;": "<", + "Lacute;": "\u0139", + "Lambda;": "\u039b", + "Lang;": "\u27ea", + "Laplacetrf;": "\u2112", + "Larr;": "\u219e", + "Lcaron;": "\u013d", + "Lcedil;": "\u013b", + "Lcy;": "\u041b", + "LeftAngleBracket;": "\u27e8", + "LeftArrow;": "\u2190", + "LeftArrowBar;": "\u21e4", + "LeftArrowRightArrow;": "\u21c6", + "LeftCeiling;": "\u2308", + "LeftDoubleBracket;": "\u27e6", + "LeftDownTeeVector;": "\u2961", + "LeftDownVector;": "\u21c3", + "LeftDownVectorBar;": "\u2959", + "LeftFloor;": "\u230a", + "LeftRightArrow;": "\u2194", + "LeftRightVector;": "\u294e", + "LeftTee;": "\u22a3", + "LeftTeeArrow;": "\u21a4", + "LeftTeeVector;": "\u295a", + "LeftTriangle;": "\u22b2", + "LeftTriangleBar;": "\u29cf", + "LeftTriangleEqual;": "\u22b4", + "LeftUpDownVector;": "\u2951", + "LeftUpTeeVector;": "\u2960", + "LeftUpVector;": "\u21bf", + "LeftUpVectorBar;": "\u2958", + "LeftVector;": "\u21bc", + "LeftVectorBar;": "\u2952", + "Leftarrow;": "\u21d0", + "Leftrightarrow;": "\u21d4", + "LessEqualGreater;": "\u22da", + "LessFullEqual;": "\u2266", + "LessGreater;": "\u2276", + "LessLess;": "\u2aa1", + "LessSlantEqual;": "\u2a7d", + "LessTilde;": "\u2272", + "Lfr;": "\U0001d50f", + "Ll;": "\u22d8", + "Lleftarrow;": "\u21da", + "Lmidot;": "\u013f", + "LongLeftArrow;": "\u27f5", + "LongLeftRightArrow;": "\u27f7", + "LongRightArrow;": "\u27f6", + "Longleftarrow;": "\u27f8", + "Longleftrightarrow;": "\u27fa", + "Longrightarrow;": "\u27f9", + "Lopf;": "\U0001d543", + "LowerLeftArrow;": "\u2199", + "LowerRightArrow;": "\u2198", + "Lscr;": "\u2112", + "Lsh;": "\u21b0", + "Lstrok;": "\u0141", + "Lt;": "\u226a", + "Map;": "\u2905", + "Mcy;": "\u041c", + "MediumSpace;": "\u205f", + "Mellintrf;": "\u2133", + "Mfr;": "\U0001d510", + "MinusPlus;": "\u2213", + "Mopf;": "\U0001d544", + "Mscr;": "\u2133", + "Mu;": "\u039c", + "NJcy;": "\u040a", + "Nacute;": "\u0143", + "Ncaron;": "\u0147", + "Ncedil;": "\u0145", + "Ncy;": "\u041d", + "NegativeMediumSpace;": "\u200b", + "NegativeThickSpace;": "\u200b", + "NegativeThinSpace;": "\u200b", + "NegativeVeryThinSpace;": "\u200b", + "NestedGreaterGreater;": "\u226b", + "NestedLessLess;": "\u226a", + "NewLine;": "\n", + "Nfr;": "\U0001d511", + "NoBreak;": "\u2060", + "NonBreakingSpace;": "\xa0", + "Nopf;": "\u2115", + "Not;": "\u2aec", + "NotCongruent;": "\u2262", + "NotCupCap;": "\u226d", + "NotDoubleVerticalBar;": "\u2226", + "NotElement;": "\u2209", + "NotEqual;": "\u2260", + "NotEqualTilde;": "\u2242\u0338", + "NotExists;": "\u2204", + "NotGreater;": "\u226f", + "NotGreaterEqual;": "\u2271", + "NotGreaterFullEqual;": "\u2267\u0338", + "NotGreaterGreater;": "\u226b\u0338", + "NotGreaterLess;": "\u2279", + "NotGreaterSlantEqual;": "\u2a7e\u0338", + "NotGreaterTilde;": "\u2275", + "NotHumpDownHump;": "\u224e\u0338", + "NotHumpEqual;": "\u224f\u0338", + "NotLeftTriangle;": "\u22ea", + "NotLeftTriangleBar;": "\u29cf\u0338", + "NotLeftTriangleEqual;": "\u22ec", + "NotLess;": "\u226e", + "NotLessEqual;": "\u2270", + "NotLessGreater;": "\u2278", + "NotLessLess;": "\u226a\u0338", + "NotLessSlantEqual;": "\u2a7d\u0338", + "NotLessTilde;": "\u2274", + "NotNestedGreaterGreater;": "\u2aa2\u0338", + "NotNestedLessLess;": "\u2aa1\u0338", + "NotPrecedes;": "\u2280", + "NotPrecedesEqual;": "\u2aaf\u0338", + "NotPrecedesSlantEqual;": "\u22e0", + "NotReverseElement;": "\u220c", + "NotRightTriangle;": "\u22eb", + "NotRightTriangleBar;": "\u29d0\u0338", + "NotRightTriangleEqual;": "\u22ed", + "NotSquareSubset;": "\u228f\u0338", + "NotSquareSubsetEqual;": "\u22e2", + "NotSquareSuperset;": "\u2290\u0338", + "NotSquareSupersetEqual;": "\u22e3", + "NotSubset;": "\u2282\u20d2", + "NotSubsetEqual;": "\u2288", + "NotSucceeds;": "\u2281", + "NotSucceedsEqual;": "\u2ab0\u0338", + "NotSucceedsSlantEqual;": "\u22e1", + "NotSucceedsTilde;": "\u227f\u0338", + "NotSuperset;": "\u2283\u20d2", + "NotSupersetEqual;": "\u2289", + "NotTilde;": "\u2241", + "NotTildeEqual;": "\u2244", + "NotTildeFullEqual;": "\u2247", + "NotTildeTilde;": "\u2249", + "NotVerticalBar;": "\u2224", + "Nscr;": "\U0001d4a9", + "Ntilde": "\xd1", + "Ntilde;": "\xd1", + "Nu;": "\u039d", + "OElig;": "\u0152", + "Oacute": "\xd3", + "Oacute;": "\xd3", + "Ocirc": "\xd4", + "Ocirc;": "\xd4", + "Ocy;": "\u041e", + "Odblac;": "\u0150", + "Ofr;": "\U0001d512", + "Ograve": "\xd2", + "Ograve;": "\xd2", + "Omacr;": "\u014c", + "Omega;": "\u03a9", + "Omicron;": "\u039f", + "Oopf;": "\U0001d546", + "OpenCurlyDoubleQuote;": "\u201c", + "OpenCurlyQuote;": "\u2018", + "Or;": "\u2a54", + "Oscr;": "\U0001d4aa", + "Oslash": "\xd8", + "Oslash;": "\xd8", + "Otilde": "\xd5", + "Otilde;": "\xd5", + "Otimes;": "\u2a37", + "Ouml": "\xd6", + "Ouml;": "\xd6", + "OverBar;": "\u203e", + "OverBrace;": "\u23de", + "OverBracket;": "\u23b4", + "OverParenthesis;": "\u23dc", + "PartialD;": "\u2202", + "Pcy;": "\u041f", + "Pfr;": "\U0001d513", + "Phi;": "\u03a6", + "Pi;": "\u03a0", + "PlusMinus;": "\xb1", + "Poincareplane;": "\u210c", + "Popf;": "\u2119", + "Pr;": "\u2abb", + "Precedes;": "\u227a", + "PrecedesEqual;": "\u2aaf", + "PrecedesSlantEqual;": "\u227c", + "PrecedesTilde;": "\u227e", + "Prime;": "\u2033", + "Product;": "\u220f", + "Proportion;": "\u2237", + "Proportional;": "\u221d", + "Pscr;": "\U0001d4ab", + "Psi;": "\u03a8", + "QUOT": "\"", + "QUOT;": "\"", + "Qfr;": "\U0001d514", + "Qopf;": "\u211a", + "Qscr;": "\U0001d4ac", + "RBarr;": "\u2910", + "REG": "\xae", + "REG;": "\xae", + "Racute;": "\u0154", + "Rang;": "\u27eb", + "Rarr;": "\u21a0", + "Rarrtl;": "\u2916", + "Rcaron;": "\u0158", + "Rcedil;": "\u0156", + "Rcy;": "\u0420", + "Re;": "\u211c", + "ReverseElement;": "\u220b", + "ReverseEquilibrium;": "\u21cb", + "ReverseUpEquilibrium;": "\u296f", + "Rfr;": "\u211c", + "Rho;": "\u03a1", + "RightAngleBracket;": "\u27e9", + "RightArrow;": "\u2192", + "RightArrowBar;": "\u21e5", + "RightArrowLeftArrow;": "\u21c4", + "RightCeiling;": "\u2309", + "RightDoubleBracket;": "\u27e7", + "RightDownTeeVector;": "\u295d", + "RightDownVector;": "\u21c2", + "RightDownVectorBar;": "\u2955", + "RightFloor;": "\u230b", + "RightTee;": "\u22a2", + "RightTeeArrow;": "\u21a6", + "RightTeeVector;": "\u295b", + "RightTriangle;": "\u22b3", + "RightTriangleBar;": "\u29d0", + "RightTriangleEqual;": "\u22b5", + "RightUpDownVector;": "\u294f", + "RightUpTeeVector;": "\u295c", + "RightUpVector;": "\u21be", + "RightUpVectorBar;": "\u2954", + "RightVector;": "\u21c0", + "RightVectorBar;": "\u2953", + "Rightarrow;": "\u21d2", + "Ropf;": "\u211d", + "RoundImplies;": "\u2970", + "Rrightarrow;": "\u21db", + "Rscr;": "\u211b", + "Rsh;": "\u21b1", + "RuleDelayed;": "\u29f4", + "SHCHcy;": "\u0429", + "SHcy;": "\u0428", + "SOFTcy;": "\u042c", + "Sacute;": "\u015a", + "Sc;": "\u2abc", + "Scaron;": "\u0160", + "Scedil;": "\u015e", + "Scirc;": "\u015c", + "Scy;": "\u0421", + "Sfr;": "\U0001d516", + "ShortDownArrow;": "\u2193", + "ShortLeftArrow;": "\u2190", + "ShortRightArrow;": "\u2192", + "ShortUpArrow;": "\u2191", + "Sigma;": "\u03a3", + "SmallCircle;": "\u2218", + "Sopf;": "\U0001d54a", + "Sqrt;": "\u221a", + "Square;": "\u25a1", + "SquareIntersection;": "\u2293", + "SquareSubset;": "\u228f", + "SquareSubsetEqual;": "\u2291", + "SquareSuperset;": "\u2290", + "SquareSupersetEqual;": "\u2292", + "SquareUnion;": "\u2294", + "Sscr;": "\U0001d4ae", + "Star;": "\u22c6", + "Sub;": "\u22d0", + "Subset;": "\u22d0", + "SubsetEqual;": "\u2286", + "Succeeds;": "\u227b", + "SucceedsEqual;": "\u2ab0", + "SucceedsSlantEqual;": "\u227d", + "SucceedsTilde;": "\u227f", + "SuchThat;": "\u220b", + "Sum;": "\u2211", + "Sup;": "\u22d1", + "Superset;": "\u2283", + "SupersetEqual;": "\u2287", + "Supset;": "\u22d1", + "THORN": "\xde", + "THORN;": "\xde", + "TRADE;": "\u2122", + "TSHcy;": "\u040b", + "TScy;": "\u0426", + "Tab;": "\t", + "Tau;": "\u03a4", + "Tcaron;": "\u0164", + "Tcedil;": "\u0162", + "Tcy;": "\u0422", + "Tfr;": "\U0001d517", + "Therefore;": "\u2234", + "Theta;": "\u0398", + "ThickSpace;": "\u205f\u200a", + "ThinSpace;": "\u2009", + "Tilde;": "\u223c", + "TildeEqual;": "\u2243", + "TildeFullEqual;": "\u2245", + "TildeTilde;": "\u2248", + "Topf;": "\U0001d54b", + "TripleDot;": "\u20db", + "Tscr;": "\U0001d4af", + "Tstrok;": "\u0166", + "Uacute": "\xda", + "Uacute;": "\xda", + "Uarr;": "\u219f", + "Uarrocir;": "\u2949", + "Ubrcy;": "\u040e", + "Ubreve;": "\u016c", + "Ucirc": "\xdb", + "Ucirc;": "\xdb", + "Ucy;": "\u0423", + "Udblac;": "\u0170", + "Ufr;": "\U0001d518", + "Ugrave": "\xd9", + "Ugrave;": "\xd9", + "Umacr;": "\u016a", + "UnderBar;": "_", + "UnderBrace;": "\u23df", + "UnderBracket;": "\u23b5", + "UnderParenthesis;": "\u23dd", + "Union;": "\u22c3", + "UnionPlus;": "\u228e", + "Uogon;": "\u0172", + "Uopf;": "\U0001d54c", + "UpArrow;": "\u2191", + "UpArrowBar;": "\u2912", + "UpArrowDownArrow;": "\u21c5", + "UpDownArrow;": "\u2195", + "UpEquilibrium;": "\u296e", + "UpTee;": "\u22a5", + "UpTeeArrow;": "\u21a5", + "Uparrow;": "\u21d1", + "Updownarrow;": "\u21d5", + "UpperLeftArrow;": "\u2196", + "UpperRightArrow;": "\u2197", + "Upsi;": "\u03d2", + "Upsilon;": "\u03a5", + "Uring;": "\u016e", + "Uscr;": "\U0001d4b0", + "Utilde;": "\u0168", + "Uuml": "\xdc", + "Uuml;": "\xdc", + "VDash;": "\u22ab", + "Vbar;": "\u2aeb", + "Vcy;": "\u0412", + "Vdash;": "\u22a9", + "Vdashl;": "\u2ae6", + "Vee;": "\u22c1", + "Verbar;": "\u2016", + "Vert;": "\u2016", + "VerticalBar;": "\u2223", + "VerticalLine;": "|", + "VerticalSeparator;": "\u2758", + "VerticalTilde;": "\u2240", + "VeryThinSpace;": "\u200a", + "Vfr;": "\U0001d519", + "Vopf;": "\U0001d54d", + "Vscr;": "\U0001d4b1", + "Vvdash;": "\u22aa", + "Wcirc;": "\u0174", + "Wedge;": "\u22c0", + "Wfr;": "\U0001d51a", + "Wopf;": "\U0001d54e", + "Wscr;": "\U0001d4b2", + "Xfr;": "\U0001d51b", + "Xi;": "\u039e", + "Xopf;": "\U0001d54f", + "Xscr;": "\U0001d4b3", + "YAcy;": "\u042f", + "YIcy;": "\u0407", + "YUcy;": "\u042e", + "Yacute": "\xdd", + "Yacute;": "\xdd", + "Ycirc;": "\u0176", + "Ycy;": "\u042b", + "Yfr;": "\U0001d51c", + "Yopf;": "\U0001d550", + "Yscr;": "\U0001d4b4", + "Yuml;": "\u0178", + "ZHcy;": "\u0416", + "Zacute;": "\u0179", + "Zcaron;": "\u017d", + "Zcy;": "\u0417", + "Zdot;": "\u017b", + "ZeroWidthSpace;": "\u200b", + "Zeta;": "\u0396", + "Zfr;": "\u2128", + "Zopf;": "\u2124", + "Zscr;": "\U0001d4b5", + "aacute": "\xe1", + "aacute;": "\xe1", + "abreve;": "\u0103", + "ac;": "\u223e", + "acE;": "\u223e\u0333", + "acd;": "\u223f", + "acirc": "\xe2", + "acirc;": "\xe2", + "acute": "\xb4", + "acute;": "\xb4", + "acy;": "\u0430", + "aelig": "\xe6", + "aelig;": "\xe6", + "af;": "\u2061", + "afr;": "\U0001d51e", + "agrave": "\xe0", + "agrave;": "\xe0", + "alefsym;": "\u2135", + "aleph;": "\u2135", + "alpha;": "\u03b1", + "amacr;": "\u0101", + "amalg;": "\u2a3f", + "amp": "&", + "amp;": "&", + "and;": "\u2227", + "andand;": "\u2a55", + "andd;": "\u2a5c", + "andslope;": "\u2a58", + "andv;": "\u2a5a", + "ang;": "\u2220", + "ange;": "\u29a4", + "angle;": "\u2220", + "angmsd;": "\u2221", + "angmsdaa;": "\u29a8", + "angmsdab;": "\u29a9", + "angmsdac;": "\u29aa", + "angmsdad;": "\u29ab", + "angmsdae;": "\u29ac", + "angmsdaf;": "\u29ad", + "angmsdag;": "\u29ae", + "angmsdah;": "\u29af", + "angrt;": "\u221f", + "angrtvb;": "\u22be", + "angrtvbd;": "\u299d", + "angsph;": "\u2222", + "angst;": "\xc5", + "angzarr;": "\u237c", + "aogon;": "\u0105", + "aopf;": "\U0001d552", + "ap;": "\u2248", + "apE;": "\u2a70", + "apacir;": "\u2a6f", + "ape;": "\u224a", + "apid;": "\u224b", + "apos;": "'", + "approx;": "\u2248", + "approxeq;": "\u224a", + "aring": "\xe5", + "aring;": "\xe5", + "ascr;": "\U0001d4b6", + "ast;": "*", + "asymp;": "\u2248", + "asympeq;": "\u224d", + "atilde": "\xe3", + "atilde;": "\xe3", + "auml": "\xe4", + "auml;": "\xe4", + "awconint;": "\u2233", + "awint;": "\u2a11", + "bNot;": "\u2aed", + "backcong;": "\u224c", + "backepsilon;": "\u03f6", + "backprime;": "\u2035", + "backsim;": "\u223d", + "backsimeq;": "\u22cd", + "barvee;": "\u22bd", + "barwed;": "\u2305", + "barwedge;": "\u2305", + "bbrk;": "\u23b5", + "bbrktbrk;": "\u23b6", + "bcong;": "\u224c", + "bcy;": "\u0431", + "bdquo;": "\u201e", + "becaus;": "\u2235", + "because;": "\u2235", + "bemptyv;": "\u29b0", + "bepsi;": "\u03f6", + "bernou;": "\u212c", + "beta;": "\u03b2", + "beth;": "\u2136", + "between;": "\u226c", + "bfr;": "\U0001d51f", + "bigcap;": "\u22c2", + "bigcirc;": "\u25ef", + "bigcup;": "\u22c3", + "bigodot;": "\u2a00", + "bigoplus;": "\u2a01", + "bigotimes;": "\u2a02", + "bigsqcup;": "\u2a06", + "bigstar;": "\u2605", + "bigtriangledown;": "\u25bd", + "bigtriangleup;": "\u25b3", + "biguplus;": "\u2a04", + "bigvee;": "\u22c1", + "bigwedge;": "\u22c0", + "bkarow;": "\u290d", + "blacklozenge;": "\u29eb", + "blacksquare;": "\u25aa", + "blacktriangle;": "\u25b4", + "blacktriangledown;": "\u25be", + "blacktriangleleft;": "\u25c2", + "blacktriangleright;": "\u25b8", + "blank;": "\u2423", + "blk12;": "\u2592", + "blk14;": "\u2591", + "blk34;": "\u2593", + "block;": "\u2588", + "bne;": "=\u20e5", + "bnequiv;": "\u2261\u20e5", + "bnot;": "\u2310", + "bopf;": "\U0001d553", + "bot;": "\u22a5", + "bottom;": "\u22a5", + "bowtie;": "\u22c8", + "boxDL;": "\u2557", + "boxDR;": "\u2554", + "boxDl;": "\u2556", + "boxDr;": "\u2553", + "boxH;": "\u2550", + "boxHD;": "\u2566", + "boxHU;": "\u2569", + "boxHd;": "\u2564", + "boxHu;": "\u2567", + "boxUL;": "\u255d", + "boxUR;": "\u255a", + "boxUl;": "\u255c", + "boxUr;": "\u2559", + "boxV;": "\u2551", + "boxVH;": "\u256c", + "boxVL;": "\u2563", + "boxVR;": "\u2560", + "boxVh;": "\u256b", + "boxVl;": "\u2562", + "boxVr;": "\u255f", + "boxbox;": "\u29c9", + "boxdL;": "\u2555", + "boxdR;": "\u2552", + "boxdl;": "\u2510", + "boxdr;": "\u250c", + "boxh;": "\u2500", + "boxhD;": "\u2565", + "boxhU;": "\u2568", + "boxhd;": "\u252c", + "boxhu;": "\u2534", + "boxminus;": "\u229f", + "boxplus;": "\u229e", + "boxtimes;": "\u22a0", + "boxuL;": "\u255b", + "boxuR;": "\u2558", + "boxul;": "\u2518", + "boxur;": "\u2514", + "boxv;": "\u2502", + "boxvH;": "\u256a", + "boxvL;": "\u2561", + "boxvR;": "\u255e", + "boxvh;": "\u253c", + "boxvl;": "\u2524", + "boxvr;": "\u251c", + "bprime;": "\u2035", + "breve;": "\u02d8", + "brvbar": "\xa6", + "brvbar;": "\xa6", + "bscr;": "\U0001d4b7", + "bsemi;": "\u204f", + "bsim;": "\u223d", + "bsime;": "\u22cd", + "bsol;": "\\", + "bsolb;": "\u29c5", + "bsolhsub;": "\u27c8", + "bull;": "\u2022", + "bullet;": "\u2022", + "bump;": "\u224e", + "bumpE;": "\u2aae", + "bumpe;": "\u224f", + "bumpeq;": "\u224f", + "cacute;": "\u0107", + "cap;": "\u2229", + "capand;": "\u2a44", + "capbrcup;": "\u2a49", + "capcap;": "\u2a4b", + "capcup;": "\u2a47", + "capdot;": "\u2a40", + "caps;": "\u2229\ufe00", + "caret;": "\u2041", + "caron;": "\u02c7", + "ccaps;": "\u2a4d", + "ccaron;": "\u010d", + "ccedil": "\xe7", + "ccedil;": "\xe7", + "ccirc;": "\u0109", + "ccups;": "\u2a4c", + "ccupssm;": "\u2a50", + "cdot;": "\u010b", + "cedil": "\xb8", + "cedil;": "\xb8", + "cemptyv;": "\u29b2", + "cent": "\xa2", + "cent;": "\xa2", + "centerdot;": "\xb7", + "cfr;": "\U0001d520", + "chcy;": "\u0447", + "check;": "\u2713", + "checkmark;": "\u2713", + "chi;": "\u03c7", + "cir;": "\u25cb", + "cirE;": "\u29c3", + "circ;": "\u02c6", + "circeq;": "\u2257", + "circlearrowleft;": "\u21ba", + "circlearrowright;": "\u21bb", + "circledR;": "\xae", + "circledS;": "\u24c8", + "circledast;": "\u229b", + "circledcirc;": "\u229a", + "circleddash;": "\u229d", + "cire;": "\u2257", + "cirfnint;": "\u2a10", + "cirmid;": "\u2aef", + "cirscir;": "\u29c2", + "clubs;": "\u2663", + "clubsuit;": "\u2663", + "colon;": ":", + "colone;": "\u2254", + "coloneq;": "\u2254", + "comma;": ",", + "commat;": "@", + "comp;": "\u2201", + "compfn;": "\u2218", + "complement;": "\u2201", + "complexes;": "\u2102", + "cong;": "\u2245", + "congdot;": "\u2a6d", + "conint;": "\u222e", + "copf;": "\U0001d554", + "coprod;": "\u2210", + "copy": "\xa9", + "copy;": "\xa9", + "copysr;": "\u2117", + "crarr;": "\u21b5", + "cross;": "\u2717", + "cscr;": "\U0001d4b8", + "csub;": "\u2acf", + "csube;": "\u2ad1", + "csup;": "\u2ad0", + "csupe;": "\u2ad2", + "ctdot;": "\u22ef", + "cudarrl;": "\u2938", + "cudarrr;": "\u2935", + "cuepr;": "\u22de", + "cuesc;": "\u22df", + "cularr;": "\u21b6", + "cularrp;": "\u293d", + "cup;": "\u222a", + "cupbrcap;": "\u2a48", + "cupcap;": "\u2a46", + "cupcup;": "\u2a4a", + "cupdot;": "\u228d", + "cupor;": "\u2a45", + "cups;": "\u222a\ufe00", + "curarr;": "\u21b7", + "curarrm;": "\u293c", + "curlyeqprec;": "\u22de", + "curlyeqsucc;": "\u22df", + "curlyvee;": "\u22ce", + "curlywedge;": "\u22cf", + "curren": "\xa4", + "curren;": "\xa4", + "curvearrowleft;": "\u21b6", + "curvearrowright;": "\u21b7", + "cuvee;": "\u22ce", + "cuwed;": "\u22cf", + "cwconint;": "\u2232", + "cwint;": "\u2231", + "cylcty;": "\u232d", + "dArr;": "\u21d3", + "dHar;": "\u2965", + "dagger;": "\u2020", + "daleth;": "\u2138", + "darr;": "\u2193", + "dash;": "\u2010", + "dashv;": "\u22a3", + "dbkarow;": "\u290f", + "dblac;": "\u02dd", + "dcaron;": "\u010f", + "dcy;": "\u0434", + "dd;": "\u2146", + "ddagger;": "\u2021", + "ddarr;": "\u21ca", + "ddotseq;": "\u2a77", + "deg": "\xb0", + "deg;": "\xb0", + "delta;": "\u03b4", + "demptyv;": "\u29b1", + "dfisht;": "\u297f", + "dfr;": "\U0001d521", + "dharl;": "\u21c3", + "dharr;": "\u21c2", + "diam;": "\u22c4", + "diamond;": "\u22c4", + "diamondsuit;": "\u2666", + "diams;": "\u2666", + "die;": "\xa8", + "digamma;": "\u03dd", + "disin;": "\u22f2", + "div;": "\xf7", + "divide": "\xf7", + "divide;": "\xf7", + "divideontimes;": "\u22c7", + "divonx;": "\u22c7", + "djcy;": "\u0452", + "dlcorn;": "\u231e", + "dlcrop;": "\u230d", + "dollar;": "$", + "dopf;": "\U0001d555", + "dot;": "\u02d9", + "doteq;": "\u2250", + "doteqdot;": "\u2251", + "dotminus;": "\u2238", + "dotplus;": "\u2214", + "dotsquare;": "\u22a1", + "doublebarwedge;": "\u2306", + "downarrow;": "\u2193", + "downdownarrows;": "\u21ca", + "downharpoonleft;": "\u21c3", + "downharpoonright;": "\u21c2", + "drbkarow;": "\u2910", + "drcorn;": "\u231f", + "drcrop;": "\u230c", + "dscr;": "\U0001d4b9", + "dscy;": "\u0455", + "dsol;": "\u29f6", + "dstrok;": "\u0111", + "dtdot;": "\u22f1", + "dtri;": "\u25bf", + "dtrif;": "\u25be", + "duarr;": "\u21f5", + "duhar;": "\u296f", + "dwangle;": "\u29a6", + "dzcy;": "\u045f", + "dzigrarr;": "\u27ff", + "eDDot;": "\u2a77", + "eDot;": "\u2251", + "eacute": "\xe9", + "eacute;": "\xe9", + "easter;": "\u2a6e", + "ecaron;": "\u011b", + "ecir;": "\u2256", + "ecirc": "\xea", + "ecirc;": "\xea", + "ecolon;": "\u2255", + "ecy;": "\u044d", + "edot;": "\u0117", + "ee;": "\u2147", + "efDot;": "\u2252", + "efr;": "\U0001d522", + "eg;": "\u2a9a", + "egrave": "\xe8", + "egrave;": "\xe8", + "egs;": "\u2a96", + "egsdot;": "\u2a98", + "el;": "\u2a99", + "elinters;": "\u23e7", + "ell;": "\u2113", + "els;": "\u2a95", + "elsdot;": "\u2a97", + "emacr;": "\u0113", + "empty;": "\u2205", + "emptyset;": "\u2205", + "emptyv;": "\u2205", + "emsp13;": "\u2004", + "emsp14;": "\u2005", + "emsp;": "\u2003", + "eng;": "\u014b", + "ensp;": "\u2002", + "eogon;": "\u0119", + "eopf;": "\U0001d556", + "epar;": "\u22d5", + "eparsl;": "\u29e3", + "eplus;": "\u2a71", + "epsi;": "\u03b5", + "epsilon;": "\u03b5", + "epsiv;": "\u03f5", + "eqcirc;": "\u2256", + "eqcolon;": "\u2255", + "eqsim;": "\u2242", + "eqslantgtr;": "\u2a96", + "eqslantless;": "\u2a95", + "equals;": "=", + "equest;": "\u225f", + "equiv;": "\u2261", + "equivDD;": "\u2a78", + "eqvparsl;": "\u29e5", + "erDot;": "\u2253", + "erarr;": "\u2971", + "escr;": "\u212f", + "esdot;": "\u2250", + "esim;": "\u2242", + "eta;": "\u03b7", + "eth": "\xf0", + "eth;": "\xf0", + "euml": "\xeb", + "euml;": "\xeb", + "euro;": "\u20ac", + "excl;": "!", + "exist;": "\u2203", + "expectation;": "\u2130", + "exponentiale;": "\u2147", + "fallingdotseq;": "\u2252", + "fcy;": "\u0444", + "female;": "\u2640", + "ffilig;": "\ufb03", + "fflig;": "\ufb00", + "ffllig;": "\ufb04", + "ffr;": "\U0001d523", + "filig;": "\ufb01", + "fjlig;": "fj", + "flat;": "\u266d", + "fllig;": "\ufb02", + "fltns;": "\u25b1", + "fnof;": "\u0192", + "fopf;": "\U0001d557", + "forall;": "\u2200", + "fork;": "\u22d4", + "forkv;": "\u2ad9", + "fpartint;": "\u2a0d", + "frac12": "\xbd", + "frac12;": "\xbd", + "frac13;": "\u2153", + "frac14": "\xbc", + "frac14;": "\xbc", + "frac15;": "\u2155", + "frac16;": "\u2159", + "frac18;": "\u215b", + "frac23;": "\u2154", + "frac25;": "\u2156", + "frac34": "\xbe", + "frac34;": "\xbe", + "frac35;": "\u2157", + "frac38;": "\u215c", + "frac45;": "\u2158", + "frac56;": "\u215a", + "frac58;": "\u215d", + "frac78;": "\u215e", + "frasl;": "\u2044", + "frown;": "\u2322", + "fscr;": "\U0001d4bb", + "gE;": "\u2267", + "gEl;": "\u2a8c", + "gacute;": "\u01f5", + "gamma;": "\u03b3", + "gammad;": "\u03dd", + "gap;": "\u2a86", + "gbreve;": "\u011f", + "gcirc;": "\u011d", + "gcy;": "\u0433", + "gdot;": "\u0121", + "ge;": "\u2265", + "gel;": "\u22db", + "geq;": "\u2265", + "geqq;": "\u2267", + "geqslant;": "\u2a7e", + "ges;": "\u2a7e", + "gescc;": "\u2aa9", + "gesdot;": "\u2a80", + "gesdoto;": "\u2a82", + "gesdotol;": "\u2a84", + "gesl;": "\u22db\ufe00", + "gesles;": "\u2a94", + "gfr;": "\U0001d524", + "gg;": "\u226b", + "ggg;": "\u22d9", + "gimel;": "\u2137", + "gjcy;": "\u0453", + "gl;": "\u2277", + "glE;": "\u2a92", + "gla;": "\u2aa5", + "glj;": "\u2aa4", + "gnE;": "\u2269", + "gnap;": "\u2a8a", + "gnapprox;": "\u2a8a", + "gne;": "\u2a88", + "gneq;": "\u2a88", + "gneqq;": "\u2269", + "gnsim;": "\u22e7", + "gopf;": "\U0001d558", + "grave;": "`", + "gscr;": "\u210a", + "gsim;": "\u2273", + "gsime;": "\u2a8e", + "gsiml;": "\u2a90", + "gt": ">", + "gt;": ">", + "gtcc;": "\u2aa7", + "gtcir;": "\u2a7a", + "gtdot;": "\u22d7", + "gtlPar;": "\u2995", + "gtquest;": "\u2a7c", + "gtrapprox;": "\u2a86", + "gtrarr;": "\u2978", + "gtrdot;": "\u22d7", + "gtreqless;": "\u22db", + "gtreqqless;": "\u2a8c", + "gtrless;": "\u2277", + "gtrsim;": "\u2273", + "gvertneqq;": "\u2269\ufe00", + "gvnE;": "\u2269\ufe00", + "hArr;": "\u21d4", + "hairsp;": "\u200a", + "half;": "\xbd", + "hamilt;": "\u210b", + "hardcy;": "\u044a", + "harr;": "\u2194", + "harrcir;": "\u2948", + "harrw;": "\u21ad", + "hbar;": "\u210f", + "hcirc;": "\u0125", + "hearts;": "\u2665", + "heartsuit;": "\u2665", + "hellip;": "\u2026", + "hercon;": "\u22b9", + "hfr;": "\U0001d525", + "hksearow;": "\u2925", + "hkswarow;": "\u2926", + "hoarr;": "\u21ff", + "homtht;": "\u223b", + "hookleftarrow;": "\u21a9", + "hookrightarrow;": "\u21aa", + "hopf;": "\U0001d559", + "horbar;": "\u2015", + "hscr;": "\U0001d4bd", + "hslash;": "\u210f", + "hstrok;": "\u0127", + "hybull;": "\u2043", + "hyphen;": "\u2010", + "iacute": "\xed", + "iacute;": "\xed", + "ic;": "\u2063", + "icirc": "\xee", + "icirc;": "\xee", + "icy;": "\u0438", + "iecy;": "\u0435", + "iexcl": "\xa1", + "iexcl;": "\xa1", + "iff;": "\u21d4", + "ifr;": "\U0001d526", + "igrave": "\xec", + "igrave;": "\xec", + "ii;": "\u2148", + "iiiint;": "\u2a0c", + "iiint;": "\u222d", + "iinfin;": "\u29dc", + "iiota;": "\u2129", + "ijlig;": "\u0133", + "imacr;": "\u012b", + "image;": "\u2111", + "imagline;": "\u2110", + "imagpart;": "\u2111", + "imath;": "\u0131", + "imof;": "\u22b7", + "imped;": "\u01b5", + "in;": "\u2208", + "incare;": "\u2105", + "infin;": "\u221e", + "infintie;": "\u29dd", + "inodot;": "\u0131", + "int;": "\u222b", + "intcal;": "\u22ba", + "integers;": "\u2124", + "intercal;": "\u22ba", + "intlarhk;": "\u2a17", + "intprod;": "\u2a3c", + "iocy;": "\u0451", + "iogon;": "\u012f", + "iopf;": "\U0001d55a", + "iota;": "\u03b9", + "iprod;": "\u2a3c", + "iquest": "\xbf", + "iquest;": "\xbf", + "iscr;": "\U0001d4be", + "isin;": "\u2208", + "isinE;": "\u22f9", + "isindot;": "\u22f5", + "isins;": "\u22f4", + "isinsv;": "\u22f3", + "isinv;": "\u2208", + "it;": "\u2062", + "itilde;": "\u0129", + "iukcy;": "\u0456", + "iuml": "\xef", + "iuml;": "\xef", + "jcirc;": "\u0135", + "jcy;": "\u0439", + "jfr;": "\U0001d527", + "jmath;": "\u0237", + "jopf;": "\U0001d55b", + "jscr;": "\U0001d4bf", + "jsercy;": "\u0458", + "jukcy;": "\u0454", + "kappa;": "\u03ba", + "kappav;": "\u03f0", + "kcedil;": "\u0137", + "kcy;": "\u043a", + "kfr;": "\U0001d528", + "kgreen;": "\u0138", + "khcy;": "\u0445", + "kjcy;": "\u045c", + "kopf;": "\U0001d55c", + "kscr;": "\U0001d4c0", + "lAarr;": "\u21da", + "lArr;": "\u21d0", + "lAtail;": "\u291b", + "lBarr;": "\u290e", + "lE;": "\u2266", + "lEg;": "\u2a8b", + "lHar;": "\u2962", + "lacute;": "\u013a", + "laemptyv;": "\u29b4", + "lagran;": "\u2112", + "lambda;": "\u03bb", + "lang;": "\u27e8", + "langd;": "\u2991", + "langle;": "\u27e8", + "lap;": "\u2a85", + "laquo": "\xab", + "laquo;": "\xab", + "larr;": "\u2190", + "larrb;": "\u21e4", + "larrbfs;": "\u291f", + "larrfs;": "\u291d", + "larrhk;": "\u21a9", + "larrlp;": "\u21ab", + "larrpl;": "\u2939", + "larrsim;": "\u2973", + "larrtl;": "\u21a2", + "lat;": "\u2aab", + "latail;": "\u2919", + "late;": "\u2aad", + "lates;": "\u2aad\ufe00", + "lbarr;": "\u290c", + "lbbrk;": "\u2772", + "lbrace;": "{", + "lbrack;": "[", + "lbrke;": "\u298b", + "lbrksld;": "\u298f", + "lbrkslu;": "\u298d", + "lcaron;": "\u013e", + "lcedil;": "\u013c", + "lceil;": "\u2308", + "lcub;": "{", + "lcy;": "\u043b", + "ldca;": "\u2936", + "ldquo;": "\u201c", + "ldquor;": "\u201e", + "ldrdhar;": "\u2967", + "ldrushar;": "\u294b", + "ldsh;": "\u21b2", + "le;": "\u2264", + "leftarrow;": "\u2190", + "leftarrowtail;": "\u21a2", + "leftharpoondown;": "\u21bd", + "leftharpoonup;": "\u21bc", + "leftleftarrows;": "\u21c7", + "leftrightarrow;": "\u2194", + "leftrightarrows;": "\u21c6", + "leftrightharpoons;": "\u21cb", + "leftrightsquigarrow;": "\u21ad", + "leftthreetimes;": "\u22cb", + "leg;": "\u22da", + "leq;": "\u2264", + "leqq;": "\u2266", + "leqslant;": "\u2a7d", + "les;": "\u2a7d", + "lescc;": "\u2aa8", + "lesdot;": "\u2a7f", + "lesdoto;": "\u2a81", + "lesdotor;": "\u2a83", + "lesg;": "\u22da\ufe00", + "lesges;": "\u2a93", + "lessapprox;": "\u2a85", + "lessdot;": "\u22d6", + "lesseqgtr;": "\u22da", + "lesseqqgtr;": "\u2a8b", + "lessgtr;": "\u2276", + "lesssim;": "\u2272", + "lfisht;": "\u297c", + "lfloor;": "\u230a", + "lfr;": "\U0001d529", + "lg;": "\u2276", + "lgE;": "\u2a91", + "lhard;": "\u21bd", + "lharu;": "\u21bc", + "lharul;": "\u296a", + "lhblk;": "\u2584", + "ljcy;": "\u0459", + "ll;": "\u226a", + "llarr;": "\u21c7", + "llcorner;": "\u231e", + "llhard;": "\u296b", + "lltri;": "\u25fa", + "lmidot;": "\u0140", + "lmoust;": "\u23b0", + "lmoustache;": "\u23b0", + "lnE;": "\u2268", + "lnap;": "\u2a89", + "lnapprox;": "\u2a89", + "lne;": "\u2a87", + "lneq;": "\u2a87", + "lneqq;": "\u2268", + "lnsim;": "\u22e6", + "loang;": "\u27ec", + "loarr;": "\u21fd", + "lobrk;": "\u27e6", + "longleftarrow;": "\u27f5", + "longleftrightarrow;": "\u27f7", + "longmapsto;": "\u27fc", + "longrightarrow;": "\u27f6", + "looparrowleft;": "\u21ab", + "looparrowright;": "\u21ac", + "lopar;": "\u2985", + "lopf;": "\U0001d55d", + "loplus;": "\u2a2d", + "lotimes;": "\u2a34", + "lowast;": "\u2217", + "lowbar;": "_", + "loz;": "\u25ca", + "lozenge;": "\u25ca", + "lozf;": "\u29eb", + "lpar;": "(", + "lparlt;": "\u2993", + "lrarr;": "\u21c6", + "lrcorner;": "\u231f", + "lrhar;": "\u21cb", + "lrhard;": "\u296d", + "lrm;": "\u200e", + "lrtri;": "\u22bf", + "lsaquo;": "\u2039", + "lscr;": "\U0001d4c1", + "lsh;": "\u21b0", + "lsim;": "\u2272", + "lsime;": "\u2a8d", + "lsimg;": "\u2a8f", + "lsqb;": "[", + "lsquo;": "\u2018", + "lsquor;": "\u201a", + "lstrok;": "\u0142", + "lt": "<", + "lt;": "<", + "ltcc;": "\u2aa6", + "ltcir;": "\u2a79", + "ltdot;": "\u22d6", + "lthree;": "\u22cb", + "ltimes;": "\u22c9", + "ltlarr;": "\u2976", + "ltquest;": "\u2a7b", + "ltrPar;": "\u2996", + "ltri;": "\u25c3", + "ltrie;": "\u22b4", + "ltrif;": "\u25c2", + "lurdshar;": "\u294a", + "luruhar;": "\u2966", + "lvertneqq;": "\u2268\ufe00", + "lvnE;": "\u2268\ufe00", + "mDDot;": "\u223a", + "macr": "\xaf", + "macr;": "\xaf", + "male;": "\u2642", + "malt;": "\u2720", + "maltese;": "\u2720", + "map;": "\u21a6", + "mapsto;": "\u21a6", + "mapstodown;": "\u21a7", + "mapstoleft;": "\u21a4", + "mapstoup;": "\u21a5", + "marker;": "\u25ae", + "mcomma;": "\u2a29", + "mcy;": "\u043c", + "mdash;": "\u2014", + "measuredangle;": "\u2221", + "mfr;": "\U0001d52a", + "mho;": "\u2127", + "micro": "\xb5", + "micro;": "\xb5", + "mid;": "\u2223", + "midast;": "*", + "midcir;": "\u2af0", + "middot": "\xb7", + "middot;": "\xb7", + "minus;": "\u2212", + "minusb;": "\u229f", + "minusd;": "\u2238", + "minusdu;": "\u2a2a", + "mlcp;": "\u2adb", + "mldr;": "\u2026", + "mnplus;": "\u2213", + "models;": "\u22a7", + "mopf;": "\U0001d55e", + "mp;": "\u2213", + "mscr;": "\U0001d4c2", + "mstpos;": "\u223e", + "mu;": "\u03bc", + "multimap;": "\u22b8", + "mumap;": "\u22b8", + "nGg;": "\u22d9\u0338", + "nGt;": "\u226b\u20d2", + "nGtv;": "\u226b\u0338", + "nLeftarrow;": "\u21cd", + "nLeftrightarrow;": "\u21ce", + "nLl;": "\u22d8\u0338", + "nLt;": "\u226a\u20d2", + "nLtv;": "\u226a\u0338", + "nRightarrow;": "\u21cf", + "nVDash;": "\u22af", + "nVdash;": "\u22ae", + "nabla;": "\u2207", + "nacute;": "\u0144", + "nang;": "\u2220\u20d2", + "nap;": "\u2249", + "napE;": "\u2a70\u0338", + "napid;": "\u224b\u0338", + "napos;": "\u0149", + "napprox;": "\u2249", + "natur;": "\u266e", + "natural;": "\u266e", + "naturals;": "\u2115", + "nbsp": "\xa0", + "nbsp;": "\xa0", + "nbump;": "\u224e\u0338", + "nbumpe;": "\u224f\u0338", + "ncap;": "\u2a43", + "ncaron;": "\u0148", + "ncedil;": "\u0146", + "ncong;": "\u2247", + "ncongdot;": "\u2a6d\u0338", + "ncup;": "\u2a42", + "ncy;": "\u043d", + "ndash;": "\u2013", + "ne;": "\u2260", + "neArr;": "\u21d7", + "nearhk;": "\u2924", + "nearr;": "\u2197", + "nearrow;": "\u2197", + "nedot;": "\u2250\u0338", + "nequiv;": "\u2262", + "nesear;": "\u2928", + "nesim;": "\u2242\u0338", + "nexist;": "\u2204", + "nexists;": "\u2204", + "nfr;": "\U0001d52b", + "ngE;": "\u2267\u0338", + "nge;": "\u2271", + "ngeq;": "\u2271", + "ngeqq;": "\u2267\u0338", + "ngeqslant;": "\u2a7e\u0338", + "nges;": "\u2a7e\u0338", + "ngsim;": "\u2275", + "ngt;": "\u226f", + "ngtr;": "\u226f", + "nhArr;": "\u21ce", + "nharr;": "\u21ae", + "nhpar;": "\u2af2", + "ni;": "\u220b", + "nis;": "\u22fc", + "nisd;": "\u22fa", + "niv;": "\u220b", + "njcy;": "\u045a", + "nlArr;": "\u21cd", + "nlE;": "\u2266\u0338", + "nlarr;": "\u219a", + "nldr;": "\u2025", + "nle;": "\u2270", + "nleftarrow;": "\u219a", + "nleftrightarrow;": "\u21ae", + "nleq;": "\u2270", + "nleqq;": "\u2266\u0338", + "nleqslant;": "\u2a7d\u0338", + "nles;": "\u2a7d\u0338", + "nless;": "\u226e", + "nlsim;": "\u2274", + "nlt;": "\u226e", + "nltri;": "\u22ea", + "nltrie;": "\u22ec", + "nmid;": "\u2224", + "nopf;": "\U0001d55f", + "not": "\xac", + "not;": "\xac", + "notin;": "\u2209", + "notinE;": "\u22f9\u0338", + "notindot;": "\u22f5\u0338", + "notinva;": "\u2209", + "notinvb;": "\u22f7", + "notinvc;": "\u22f6", + "notni;": "\u220c", + "notniva;": "\u220c", + "notnivb;": "\u22fe", + "notnivc;": "\u22fd", + "npar;": "\u2226", + "nparallel;": "\u2226", + "nparsl;": "\u2afd\u20e5", + "npart;": "\u2202\u0338", + "npolint;": "\u2a14", + "npr;": "\u2280", + "nprcue;": "\u22e0", + "npre;": "\u2aaf\u0338", + "nprec;": "\u2280", + "npreceq;": "\u2aaf\u0338", + "nrArr;": "\u21cf", + "nrarr;": "\u219b", + "nrarrc;": "\u2933\u0338", + "nrarrw;": "\u219d\u0338", + "nrightarrow;": "\u219b", + "nrtri;": "\u22eb", + "nrtrie;": "\u22ed", + "nsc;": "\u2281", + "nsccue;": "\u22e1", + "nsce;": "\u2ab0\u0338", + "nscr;": "\U0001d4c3", + "nshortmid;": "\u2224", + "nshortparallel;": "\u2226", + "nsim;": "\u2241", + "nsime;": "\u2244", + "nsimeq;": "\u2244", + "nsmid;": "\u2224", + "nspar;": "\u2226", + "nsqsube;": "\u22e2", + "nsqsupe;": "\u22e3", + "nsub;": "\u2284", + "nsubE;": "\u2ac5\u0338", + "nsube;": "\u2288", + "nsubset;": "\u2282\u20d2", + "nsubseteq;": "\u2288", + "nsubseteqq;": "\u2ac5\u0338", + "nsucc;": "\u2281", + "nsucceq;": "\u2ab0\u0338", + "nsup;": "\u2285", + "nsupE;": "\u2ac6\u0338", + "nsupe;": "\u2289", + "nsupset;": "\u2283\u20d2", + "nsupseteq;": "\u2289", + "nsupseteqq;": "\u2ac6\u0338", + "ntgl;": "\u2279", + "ntilde": "\xf1", + "ntilde;": "\xf1", + "ntlg;": "\u2278", + "ntriangleleft;": "\u22ea", + "ntrianglelefteq;": "\u22ec", + "ntriangleright;": "\u22eb", + "ntrianglerighteq;": "\u22ed", + "nu;": "\u03bd", + "num;": "#", + "numero;": "\u2116", + "numsp;": "\u2007", + "nvDash;": "\u22ad", + "nvHarr;": "\u2904", + "nvap;": "\u224d\u20d2", + "nvdash;": "\u22ac", + "nvge;": "\u2265\u20d2", + "nvgt;": ">\u20d2", + "nvinfin;": "\u29de", + "nvlArr;": "\u2902", + "nvle;": "\u2264\u20d2", + "nvlt;": "<\u20d2", + "nvltrie;": "\u22b4\u20d2", + "nvrArr;": "\u2903", + "nvrtrie;": "\u22b5\u20d2", + "nvsim;": "\u223c\u20d2", + "nwArr;": "\u21d6", + "nwarhk;": "\u2923", + "nwarr;": "\u2196", + "nwarrow;": "\u2196", + "nwnear;": "\u2927", + "oS;": "\u24c8", + "oacute": "\xf3", + "oacute;": "\xf3", + "oast;": "\u229b", + "ocir;": "\u229a", + "ocirc": "\xf4", + "ocirc;": "\xf4", + "ocy;": "\u043e", + "odash;": "\u229d", + "odblac;": "\u0151", + "odiv;": "\u2a38", + "odot;": "\u2299", + "odsold;": "\u29bc", + "oelig;": "\u0153", + "ofcir;": "\u29bf", + "ofr;": "\U0001d52c", + "ogon;": "\u02db", + "ograve": "\xf2", + "ograve;": "\xf2", + "ogt;": "\u29c1", + "ohbar;": "\u29b5", + "ohm;": "\u03a9", + "oint;": "\u222e", + "olarr;": "\u21ba", + "olcir;": "\u29be", + "olcross;": "\u29bb", + "oline;": "\u203e", + "olt;": "\u29c0", + "omacr;": "\u014d", + "omega;": "\u03c9", + "omicron;": "\u03bf", + "omid;": "\u29b6", + "ominus;": "\u2296", + "oopf;": "\U0001d560", + "opar;": "\u29b7", + "operp;": "\u29b9", + "oplus;": "\u2295", + "or;": "\u2228", + "orarr;": "\u21bb", + "ord;": "\u2a5d", + "order;": "\u2134", + "orderof;": "\u2134", + "ordf": "\xaa", + "ordf;": "\xaa", + "ordm": "\xba", + "ordm;": "\xba", + "origof;": "\u22b6", + "oror;": "\u2a56", + "orslope;": "\u2a57", + "orv;": "\u2a5b", + "oscr;": "\u2134", + "oslash": "\xf8", + "oslash;": "\xf8", + "osol;": "\u2298", + "otilde": "\xf5", + "otilde;": "\xf5", + "otimes;": "\u2297", + "otimesas;": "\u2a36", + "ouml": "\xf6", + "ouml;": "\xf6", + "ovbar;": "\u233d", + "par;": "\u2225", + "para": "\xb6", + "para;": "\xb6", + "parallel;": "\u2225", + "parsim;": "\u2af3", + "parsl;": "\u2afd", + "part;": "\u2202", + "pcy;": "\u043f", + "percnt;": "%", + "period;": ".", + "permil;": "\u2030", + "perp;": "\u22a5", + "pertenk;": "\u2031", + "pfr;": "\U0001d52d", + "phi;": "\u03c6", + "phiv;": "\u03d5", + "phmmat;": "\u2133", + "phone;": "\u260e", + "pi;": "\u03c0", + "pitchfork;": "\u22d4", + "piv;": "\u03d6", + "planck;": "\u210f", + "planckh;": "\u210e", + "plankv;": "\u210f", + "plus;": "+", + "plusacir;": "\u2a23", + "plusb;": "\u229e", + "pluscir;": "\u2a22", + "plusdo;": "\u2214", + "plusdu;": "\u2a25", + "pluse;": "\u2a72", + "plusmn": "\xb1", + "plusmn;": "\xb1", + "plussim;": "\u2a26", + "plustwo;": "\u2a27", + "pm;": "\xb1", + "pointint;": "\u2a15", + "popf;": "\U0001d561", + "pound": "\xa3", + "pound;": "\xa3", + "pr;": "\u227a", + "prE;": "\u2ab3", + "prap;": "\u2ab7", + "prcue;": "\u227c", + "pre;": "\u2aaf", + "prec;": "\u227a", + "precapprox;": "\u2ab7", + "preccurlyeq;": "\u227c", + "preceq;": "\u2aaf", + "precnapprox;": "\u2ab9", + "precneqq;": "\u2ab5", + "precnsim;": "\u22e8", + "precsim;": "\u227e", + "prime;": "\u2032", + "primes;": "\u2119", + "prnE;": "\u2ab5", + "prnap;": "\u2ab9", + "prnsim;": "\u22e8", + "prod;": "\u220f", + "profalar;": "\u232e", + "profline;": "\u2312", + "profsurf;": "\u2313", + "prop;": "\u221d", + "propto;": "\u221d", + "prsim;": "\u227e", + "prurel;": "\u22b0", + "pscr;": "\U0001d4c5", + "psi;": "\u03c8", + "puncsp;": "\u2008", + "qfr;": "\U0001d52e", + "qint;": "\u2a0c", + "qopf;": "\U0001d562", + "qprime;": "\u2057", + "qscr;": "\U0001d4c6", + "quaternions;": "\u210d", + "quatint;": "\u2a16", + "quest;": "?", + "questeq;": "\u225f", + "quot": "\"", + "quot;": "\"", + "rAarr;": "\u21db", + "rArr;": "\u21d2", + "rAtail;": "\u291c", + "rBarr;": "\u290f", + "rHar;": "\u2964", + "race;": "\u223d\u0331", + "racute;": "\u0155", + "radic;": "\u221a", + "raemptyv;": "\u29b3", + "rang;": "\u27e9", + "rangd;": "\u2992", + "range;": "\u29a5", + "rangle;": "\u27e9", + "raquo": "\xbb", + "raquo;": "\xbb", + "rarr;": "\u2192", + "rarrap;": "\u2975", + "rarrb;": "\u21e5", + "rarrbfs;": "\u2920", + "rarrc;": "\u2933", + "rarrfs;": "\u291e", + "rarrhk;": "\u21aa", + "rarrlp;": "\u21ac", + "rarrpl;": "\u2945", + "rarrsim;": "\u2974", + "rarrtl;": "\u21a3", + "rarrw;": "\u219d", + "ratail;": "\u291a", + "ratio;": "\u2236", + "rationals;": "\u211a", + "rbarr;": "\u290d", + "rbbrk;": "\u2773", + "rbrace;": "}", + "rbrack;": "]", + "rbrke;": "\u298c", + "rbrksld;": "\u298e", + "rbrkslu;": "\u2990", + "rcaron;": "\u0159", + "rcedil;": "\u0157", + "rceil;": "\u2309", + "rcub;": "}", + "rcy;": "\u0440", + "rdca;": "\u2937", + "rdldhar;": "\u2969", + "rdquo;": "\u201d", + "rdquor;": "\u201d", + "rdsh;": "\u21b3", + "real;": "\u211c", + "realine;": "\u211b", + "realpart;": "\u211c", + "reals;": "\u211d", + "rect;": "\u25ad", + "reg": "\xae", + "reg;": "\xae", + "rfisht;": "\u297d", + "rfloor;": "\u230b", + "rfr;": "\U0001d52f", + "rhard;": "\u21c1", + "rharu;": "\u21c0", + "rharul;": "\u296c", + "rho;": "\u03c1", + "rhov;": "\u03f1", + "rightarrow;": "\u2192", + "rightarrowtail;": "\u21a3", + "rightharpoondown;": "\u21c1", + "rightharpoonup;": "\u21c0", + "rightleftarrows;": "\u21c4", + "rightleftharpoons;": "\u21cc", + "rightrightarrows;": "\u21c9", + "rightsquigarrow;": "\u219d", + "rightthreetimes;": "\u22cc", + "ring;": "\u02da", + "risingdotseq;": "\u2253", + "rlarr;": "\u21c4", + "rlhar;": "\u21cc", + "rlm;": "\u200f", + "rmoust;": "\u23b1", + "rmoustache;": "\u23b1", + "rnmid;": "\u2aee", + "roang;": "\u27ed", + "roarr;": "\u21fe", + "robrk;": "\u27e7", + "ropar;": "\u2986", + "ropf;": "\U0001d563", + "roplus;": "\u2a2e", + "rotimes;": "\u2a35", + "rpar;": ")", + "rpargt;": "\u2994", + "rppolint;": "\u2a12", + "rrarr;": "\u21c9", + "rsaquo;": "\u203a", + "rscr;": "\U0001d4c7", + "rsh;": "\u21b1", + "rsqb;": "]", + "rsquo;": "\u2019", + "rsquor;": "\u2019", + "rthree;": "\u22cc", + "rtimes;": "\u22ca", + "rtri;": "\u25b9", + "rtrie;": "\u22b5", + "rtrif;": "\u25b8", + "rtriltri;": "\u29ce", + "ruluhar;": "\u2968", + "rx;": "\u211e", + "sacute;": "\u015b", + "sbquo;": "\u201a", + "sc;": "\u227b", + "scE;": "\u2ab4", + "scap;": "\u2ab8", + "scaron;": "\u0161", + "sccue;": "\u227d", + "sce;": "\u2ab0", + "scedil;": "\u015f", + "scirc;": "\u015d", + "scnE;": "\u2ab6", + "scnap;": "\u2aba", + "scnsim;": "\u22e9", + "scpolint;": "\u2a13", + "scsim;": "\u227f", + "scy;": "\u0441", + "sdot;": "\u22c5", + "sdotb;": "\u22a1", + "sdote;": "\u2a66", + "seArr;": "\u21d8", + "searhk;": "\u2925", + "searr;": "\u2198", + "searrow;": "\u2198", + "sect": "\xa7", + "sect;": "\xa7", + "semi;": ";", + "seswar;": "\u2929", + "setminus;": "\u2216", + "setmn;": "\u2216", + "sext;": "\u2736", + "sfr;": "\U0001d530", + "sfrown;": "\u2322", + "sharp;": "\u266f", + "shchcy;": "\u0449", + "shcy;": "\u0448", + "shortmid;": "\u2223", + "shortparallel;": "\u2225", + "shy": "\xad", + "shy;": "\xad", + "sigma;": "\u03c3", + "sigmaf;": "\u03c2", + "sigmav;": "\u03c2", + "sim;": "\u223c", + "simdot;": "\u2a6a", + "sime;": "\u2243", + "simeq;": "\u2243", + "simg;": "\u2a9e", + "simgE;": "\u2aa0", + "siml;": "\u2a9d", + "simlE;": "\u2a9f", + "simne;": "\u2246", + "simplus;": "\u2a24", + "simrarr;": "\u2972", + "slarr;": "\u2190", + "smallsetminus;": "\u2216", + "smashp;": "\u2a33", + "smeparsl;": "\u29e4", + "smid;": "\u2223", + "smile;": "\u2323", + "smt;": "\u2aaa", + "smte;": "\u2aac", + "smtes;": "\u2aac\ufe00", + "softcy;": "\u044c", + "sol;": "/", + "solb;": "\u29c4", + "solbar;": "\u233f", + "sopf;": "\U0001d564", + "spades;": "\u2660", + "spadesuit;": "\u2660", + "spar;": "\u2225", + "sqcap;": "\u2293", + "sqcaps;": "\u2293\ufe00", + "sqcup;": "\u2294", + "sqcups;": "\u2294\ufe00", + "sqsub;": "\u228f", + "sqsube;": "\u2291", + "sqsubset;": "\u228f", + "sqsubseteq;": "\u2291", + "sqsup;": "\u2290", + "sqsupe;": "\u2292", + "sqsupset;": "\u2290", + "sqsupseteq;": "\u2292", + "squ;": "\u25a1", + "square;": "\u25a1", + "squarf;": "\u25aa", + "squf;": "\u25aa", + "srarr;": "\u2192", + "sscr;": "\U0001d4c8", + "ssetmn;": "\u2216", + "ssmile;": "\u2323", + "sstarf;": "\u22c6", + "star;": "\u2606", + "starf;": "\u2605", + "straightepsilon;": "\u03f5", + "straightphi;": "\u03d5", + "strns;": "\xaf", + "sub;": "\u2282", + "subE;": "\u2ac5", + "subdot;": "\u2abd", + "sube;": "\u2286", + "subedot;": "\u2ac3", + "submult;": "\u2ac1", + "subnE;": "\u2acb", + "subne;": "\u228a", + "subplus;": "\u2abf", + "subrarr;": "\u2979", + "subset;": "\u2282", + "subseteq;": "\u2286", + "subseteqq;": "\u2ac5", + "subsetneq;": "\u228a", + "subsetneqq;": "\u2acb", + "subsim;": "\u2ac7", + "subsub;": "\u2ad5", + "subsup;": "\u2ad3", + "succ;": "\u227b", + "succapprox;": "\u2ab8", + "succcurlyeq;": "\u227d", + "succeq;": "\u2ab0", + "succnapprox;": "\u2aba", + "succneqq;": "\u2ab6", + "succnsim;": "\u22e9", + "succsim;": "\u227f", + "sum;": "\u2211", + "sung;": "\u266a", + "sup1": "\xb9", + "sup1;": "\xb9", + "sup2": "\xb2", + "sup2;": "\xb2", + "sup3": "\xb3", + "sup3;": "\xb3", + "sup;": "\u2283", + "supE;": "\u2ac6", + "supdot;": "\u2abe", + "supdsub;": "\u2ad8", + "supe;": "\u2287", + "supedot;": "\u2ac4", + "suphsol;": "\u27c9", + "suphsub;": "\u2ad7", + "suplarr;": "\u297b", + "supmult;": "\u2ac2", + "supnE;": "\u2acc", + "supne;": "\u228b", + "supplus;": "\u2ac0", + "supset;": "\u2283", + "supseteq;": "\u2287", + "supseteqq;": "\u2ac6", + "supsetneq;": "\u228b", + "supsetneqq;": "\u2acc", + "supsim;": "\u2ac8", + "supsub;": "\u2ad4", + "supsup;": "\u2ad6", + "swArr;": "\u21d9", + "swarhk;": "\u2926", + "swarr;": "\u2199", + "swarrow;": "\u2199", + "swnwar;": "\u292a", + "szlig": "\xdf", + "szlig;": "\xdf", + "target;": "\u2316", + "tau;": "\u03c4", + "tbrk;": "\u23b4", + "tcaron;": "\u0165", + "tcedil;": "\u0163", + "tcy;": "\u0442", + "tdot;": "\u20db", + "telrec;": "\u2315", + "tfr;": "\U0001d531", + "there4;": "\u2234", + "therefore;": "\u2234", + "theta;": "\u03b8", + "thetasym;": "\u03d1", + "thetav;": "\u03d1", + "thickapprox;": "\u2248", + "thicksim;": "\u223c", + "thinsp;": "\u2009", + "thkap;": "\u2248", + "thksim;": "\u223c", + "thorn": "\xfe", + "thorn;": "\xfe", + "tilde;": "\u02dc", + "times": "\xd7", + "times;": "\xd7", + "timesb;": "\u22a0", + "timesbar;": "\u2a31", + "timesd;": "\u2a30", + "tint;": "\u222d", + "toea;": "\u2928", + "top;": "\u22a4", + "topbot;": "\u2336", + "topcir;": "\u2af1", + "topf;": "\U0001d565", + "topfork;": "\u2ada", + "tosa;": "\u2929", + "tprime;": "\u2034", + "trade;": "\u2122", + "triangle;": "\u25b5", + "triangledown;": "\u25bf", + "triangleleft;": "\u25c3", + "trianglelefteq;": "\u22b4", + "triangleq;": "\u225c", + "triangleright;": "\u25b9", + "trianglerighteq;": "\u22b5", + "tridot;": "\u25ec", + "trie;": "\u225c", + "triminus;": "\u2a3a", + "triplus;": "\u2a39", + "trisb;": "\u29cd", + "tritime;": "\u2a3b", + "trpezium;": "\u23e2", + "tscr;": "\U0001d4c9", + "tscy;": "\u0446", + "tshcy;": "\u045b", + "tstrok;": "\u0167", + "twixt;": "\u226c", + "twoheadleftarrow;": "\u219e", + "twoheadrightarrow;": "\u21a0", + "uArr;": "\u21d1", + "uHar;": "\u2963", + "uacute": "\xfa", + "uacute;": "\xfa", + "uarr;": "\u2191", + "ubrcy;": "\u045e", + "ubreve;": "\u016d", + "ucirc": "\xfb", + "ucirc;": "\xfb", + "ucy;": "\u0443", + "udarr;": "\u21c5", + "udblac;": "\u0171", + "udhar;": "\u296e", + "ufisht;": "\u297e", + "ufr;": "\U0001d532", + "ugrave": "\xf9", + "ugrave;": "\xf9", + "uharl;": "\u21bf", + "uharr;": "\u21be", + "uhblk;": "\u2580", + "ulcorn;": "\u231c", + "ulcorner;": "\u231c", + "ulcrop;": "\u230f", + "ultri;": "\u25f8", + "umacr;": "\u016b", + "uml": "\xa8", + "uml;": "\xa8", + "uogon;": "\u0173", + "uopf;": "\U0001d566", + "uparrow;": "\u2191", + "updownarrow;": "\u2195", + "upharpoonleft;": "\u21bf", + "upharpoonright;": "\u21be", + "uplus;": "\u228e", + "upsi;": "\u03c5", + "upsih;": "\u03d2", + "upsilon;": "\u03c5", + "upuparrows;": "\u21c8", + "urcorn;": "\u231d", + "urcorner;": "\u231d", + "urcrop;": "\u230e", + "uring;": "\u016f", + "urtri;": "\u25f9", + "uscr;": "\U0001d4ca", + "utdot;": "\u22f0", + "utilde;": "\u0169", + "utri;": "\u25b5", + "utrif;": "\u25b4", + "uuarr;": "\u21c8", + "uuml": "\xfc", + "uuml;": "\xfc", + "uwangle;": "\u29a7", + "vArr;": "\u21d5", + "vBar;": "\u2ae8", + "vBarv;": "\u2ae9", + "vDash;": "\u22a8", + "vangrt;": "\u299c", + "varepsilon;": "\u03f5", + "varkappa;": "\u03f0", + "varnothing;": "\u2205", + "varphi;": "\u03d5", + "varpi;": "\u03d6", + "varpropto;": "\u221d", + "varr;": "\u2195", + "varrho;": "\u03f1", + "varsigma;": "\u03c2", + "varsubsetneq;": "\u228a\ufe00", + "varsubsetneqq;": "\u2acb\ufe00", + "varsupsetneq;": "\u228b\ufe00", + "varsupsetneqq;": "\u2acc\ufe00", + "vartheta;": "\u03d1", + "vartriangleleft;": "\u22b2", + "vartriangleright;": "\u22b3", + "vcy;": "\u0432", + "vdash;": "\u22a2", + "vee;": "\u2228", + "veebar;": "\u22bb", + "veeeq;": "\u225a", + "vellip;": "\u22ee", + "verbar;": "|", + "vert;": "|", + "vfr;": "\U0001d533", + "vltri;": "\u22b2", + "vnsub;": "\u2282\u20d2", + "vnsup;": "\u2283\u20d2", + "vopf;": "\U0001d567", + "vprop;": "\u221d", + "vrtri;": "\u22b3", + "vscr;": "\U0001d4cb", + "vsubnE;": "\u2acb\ufe00", + "vsubne;": "\u228a\ufe00", + "vsupnE;": "\u2acc\ufe00", + "vsupne;": "\u228b\ufe00", + "vzigzag;": "\u299a", + "wcirc;": "\u0175", + "wedbar;": "\u2a5f", + "wedge;": "\u2227", + "wedgeq;": "\u2259", + "weierp;": "\u2118", + "wfr;": "\U0001d534", + "wopf;": "\U0001d568", + "wp;": "\u2118", + "wr;": "\u2240", + "wreath;": "\u2240", + "wscr;": "\U0001d4cc", + "xcap;": "\u22c2", + "xcirc;": "\u25ef", + "xcup;": "\u22c3", + "xdtri;": "\u25bd", + "xfr;": "\U0001d535", + "xhArr;": "\u27fa", + "xharr;": "\u27f7", + "xi;": "\u03be", + "xlArr;": "\u27f8", + "xlarr;": "\u27f5", + "xmap;": "\u27fc", + "xnis;": "\u22fb", + "xodot;": "\u2a00", + "xopf;": "\U0001d569", + "xoplus;": "\u2a01", + "xotime;": "\u2a02", + "xrArr;": "\u27f9", + "xrarr;": "\u27f6", + "xscr;": "\U0001d4cd", + "xsqcup;": "\u2a06", + "xuplus;": "\u2a04", + "xutri;": "\u25b3", + "xvee;": "\u22c1", + "xwedge;": "\u22c0", + "yacute": "\xfd", + "yacute;": "\xfd", + "yacy;": "\u044f", + "ycirc;": "\u0177", + "ycy;": "\u044b", + "yen": "\xa5", + "yen;": "\xa5", + "yfr;": "\U0001d536", + "yicy;": "\u0457", + "yopf;": "\U0001d56a", + "yscr;": "\U0001d4ce", + "yucy;": "\u044e", + "yuml": "\xff", + "yuml;": "\xff", + "zacute;": "\u017a", + "zcaron;": "\u017e", + "zcy;": "\u0437", + "zdot;": "\u017c", + "zeetrf;": "\u2128", + "zeta;": "\u03b6", + "zfr;": "\U0001d537", + "zhcy;": "\u0436", + "zigrarr;": "\u21dd", + "zopf;": "\U0001d56b", + "zscr;": "\U0001d4cf", + "zwj;": "\u200d", + "zwnj;": "\u200c", +} + +replacementCharacters = { + 0x0: "\uFFFD", + 0x0d: "\u000D", + 0x80: "\u20AC", + 0x81: "\u0081", + 0x82: "\u201A", + 0x83: "\u0192", + 0x84: "\u201E", + 0x85: "\u2026", + 0x86: "\u2020", + 0x87: "\u2021", + 0x88: "\u02C6", + 0x89: "\u2030", + 0x8A: "\u0160", + 0x8B: "\u2039", + 0x8C: "\u0152", + 0x8D: "\u008D", + 0x8E: "\u017D", + 0x8F: "\u008F", + 0x90: "\u0090", + 0x91: "\u2018", + 0x92: "\u2019", + 0x93: "\u201C", + 0x94: "\u201D", + 0x95: "\u2022", + 0x96: "\u2013", + 0x97: "\u2014", + 0x98: "\u02DC", + 0x99: "\u2122", + 0x9A: "\u0161", + 0x9B: "\u203A", + 0x9C: "\u0153", + 0x9D: "\u009D", + 0x9E: "\u017E", + 0x9F: "\u0178", +} + +tokenTypes = { + "Doctype": 0, + "Characters": 1, + "SpaceCharacters": 2, + "StartTag": 3, + "EndTag": 4, + "EmptyTag": 5, + "Comment": 6, + "ParseError": 7 +} + +tagTokenTypes = frozenset([tokenTypes["StartTag"], tokenTypes["EndTag"], + tokenTypes["EmptyTag"]]) + + +prefixes = dict([(v, k) for k, v in namespaces.items()]) +prefixes["http://www.w3.org/1998/Math/MathML"] = "math" + + +class DataLossWarning(UserWarning): + """Raised when the current tree is unable to represent the input data""" + pass + + +class _ReparseException(Exception): + pass diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/alphabeticalattributes.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/alphabeticalattributes.py new file mode 100644 index 00000000..5ba926e3 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/alphabeticalattributes.py @@ -0,0 +1,29 @@ +from __future__ import absolute_import, division, unicode_literals + +from . import base + +from collections import OrderedDict + + +def _attr_key(attr): + """Return an appropriate key for an attribute for sorting + + Attributes have a namespace that can be either ``None`` or a string. We + can't compare the two because they're different types, so we convert + ``None`` to an empty string first. + + """ + return (attr[0][0] or ''), attr[0][1] + + +class Filter(base.Filter): + """Alphabetizes attributes for elements""" + def __iter__(self): + for token in base.Filter.__iter__(self): + if token["type"] in ("StartTag", "EmptyTag"): + attrs = OrderedDict() + for name, value in sorted(token["data"].items(), + key=_attr_key): + attrs[name] = value + token["data"] = attrs + yield token diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/base.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/base.py new file mode 100644 index 00000000..c7dbaed0 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/base.py @@ -0,0 +1,12 @@ +from __future__ import absolute_import, division, unicode_literals + + +class Filter(object): + def __init__(self, source): + self.source = source + + def __iter__(self): + return iter(self.source) + + def __getattr__(self, name): + return getattr(self.source, name) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/inject_meta_charset.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/inject_meta_charset.py new file mode 100644 index 00000000..aefb5c84 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/inject_meta_charset.py @@ -0,0 +1,73 @@ +from __future__ import absolute_import, division, unicode_literals + +from . import base + + +class Filter(base.Filter): + """Injects ``<meta charset=ENCODING>`` tag into head of document""" + def __init__(self, source, encoding): + """Creates a Filter + + :arg source: the source token stream + + :arg encoding: the encoding to set + + """ + base.Filter.__init__(self, source) + self.encoding = encoding + + def __iter__(self): + state = "pre_head" + meta_found = (self.encoding is None) + pending = [] + + for token in base.Filter.__iter__(self): + type = token["type"] + if type == "StartTag": + if token["name"].lower() == "head": + state = "in_head" + + elif type == "EmptyTag": + if token["name"].lower() == "meta": + # replace charset with actual encoding + has_http_equiv_content_type = False + for (namespace, name), value in token["data"].items(): + if namespace is not None: + continue + elif name.lower() == 'charset': + token["data"][(namespace, name)] = self.encoding + meta_found = True + break + elif name == 'http-equiv' and value.lower() == 'content-type': + has_http_equiv_content_type = True + else: + if has_http_equiv_content_type and (None, "content") in token["data"]: + token["data"][(None, "content")] = 'text/html; charset=%s' % self.encoding + meta_found = True + + elif token["name"].lower() == "head" and not meta_found: + # insert meta into empty head + yield {"type": "StartTag", "name": "head", + "data": token["data"]} + yield {"type": "EmptyTag", "name": "meta", + "data": {(None, "charset"): self.encoding}} + yield {"type": "EndTag", "name": "head"} + meta_found = True + continue + + elif type == "EndTag": + if token["name"].lower() == "head" and pending: + # insert meta into head (if necessary) and flush pending queue + yield pending.pop(0) + if not meta_found: + yield {"type": "EmptyTag", "name": "meta", + "data": {(None, "charset"): self.encoding}} + while pending: + yield pending.pop(0) + meta_found = True + state = "post_head" + + if state == "in_head": + pending.append(token) + else: + yield token diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/lint.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/lint.py new file mode 100644 index 00000000..fcc07eec --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/lint.py @@ -0,0 +1,93 @@ +from __future__ import absolute_import, division, unicode_literals + +from pip._vendor.six import text_type + +from . import base +from ..constants import namespaces, voidElements + +from ..constants import spaceCharacters +spaceCharacters = "".join(spaceCharacters) + + +class Filter(base.Filter): + """Lints the token stream for errors + + If it finds any errors, it'll raise an ``AssertionError``. + + """ + def __init__(self, source, require_matching_tags=True): + """Creates a Filter + + :arg source: the source token stream + + :arg require_matching_tags: whether or not to require matching tags + + """ + super(Filter, self).__init__(source) + self.require_matching_tags = require_matching_tags + + def __iter__(self): + open_elements = [] + for token in base.Filter.__iter__(self): + type = token["type"] + if type in ("StartTag", "EmptyTag"): + namespace = token["namespace"] + name = token["name"] + assert namespace is None or isinstance(namespace, text_type) + assert namespace != "" + assert isinstance(name, text_type) + assert name != "" + assert isinstance(token["data"], dict) + if (not namespace or namespace == namespaces["html"]) and name in voidElements: + assert type == "EmptyTag" + else: + assert type == "StartTag" + if type == "StartTag" and self.require_matching_tags: + open_elements.append((namespace, name)) + for (namespace, name), value in token["data"].items(): + assert namespace is None or isinstance(namespace, text_type) + assert namespace != "" + assert isinstance(name, text_type) + assert name != "" + assert isinstance(value, text_type) + + elif type == "EndTag": + namespace = token["namespace"] + name = token["name"] + assert namespace is None or isinstance(namespace, text_type) + assert namespace != "" + assert isinstance(name, text_type) + assert name != "" + if (not namespace or namespace == namespaces["html"]) and name in voidElements: + assert False, "Void element reported as EndTag token: %(tag)s" % {"tag": name} + elif self.require_matching_tags: + start = open_elements.pop() + assert start == (namespace, name) + + elif type == "Comment": + data = token["data"] + assert isinstance(data, text_type) + + elif type in ("Characters", "SpaceCharacters"): + data = token["data"] + assert isinstance(data, text_type) + assert data != "" + if type == "SpaceCharacters": + assert data.strip(spaceCharacters) == "" + + elif type == "Doctype": + name = token["name"] + assert name is None or isinstance(name, text_type) + assert token["publicId"] is None or isinstance(name, text_type) + assert token["systemId"] is None or isinstance(name, text_type) + + elif type == "Entity": + assert isinstance(token["name"], text_type) + + elif type == "SerializerError": + assert isinstance(token["data"], text_type) + + else: + assert False, "Unknown token type: %(type)s" % {"type": type} + + yield token diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/optionaltags.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/optionaltags.py new file mode 100644 index 00000000..4a865012 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/optionaltags.py @@ -0,0 +1,207 @@ +from __future__ import absolute_import, division, unicode_literals + +from . import base + + +class Filter(base.Filter): + """Removes optional tags from the token stream""" + def slider(self): + previous1 = previous2 = None + for token in self.source: + if previous1 is not None: + yield previous2, previous1, token + previous2 = previous1 + previous1 = token + if previous1 is not None: + yield previous2, previous1, None + + def __iter__(self): + for previous, token, next in self.slider(): + type = token["type"] + if type == "StartTag": + if (token["data"] or + not self.is_optional_start(token["name"], previous, next)): + yield token + elif type == "EndTag": + if not self.is_optional_end(token["name"], next): + yield token + else: + yield token + + def is_optional_start(self, tagname, previous, next): + type = next and next["type"] or None + if tagname in 'html': + # An html element's start tag may be omitted if the first thing + # inside the html element is not a space character or a comment. + return type not in ("Comment", "SpaceCharacters") + elif tagname == 'head': + # A head element's start tag may be omitted if the first thing + # inside the head element is an element. + # XXX: we also omit the start tag if the head element is empty + if type in ("StartTag", "EmptyTag"): + return True + elif type == "EndTag": + return next["name"] == "head" + elif tagname == 'body': + # A body element's start tag may be omitted if the first thing + # inside the body element is not a space character or a comment, + # except if the first thing inside the body element is a script + # or style element and the node immediately preceding the body + # element is a head element whose end tag has been omitted. + if type in ("Comment", "SpaceCharacters"): + return False + elif type == "StartTag": + # XXX: we do not look at the preceding event, so we never omit + # the body element's start tag if it's followed by a script or + # a style element. + return next["name"] not in ('script', 'style') + else: + return True + elif tagname == 'colgroup': + # A colgroup element's start tag may be omitted if the first thing + # inside the colgroup element is a col element, and if the element + # is not immediately preceded by another colgroup element whose + # end tag has been omitted. + if type in ("StartTag", "EmptyTag"): + # XXX: we do not look at the preceding event, so instead we never + # omit the colgroup element's end tag when it is immediately + # followed by another colgroup element. See is_optional_end. + return next["name"] == "col" + else: + return False + elif tagname == 'tbody': + # A tbody element's start tag may be omitted if the first thing + # inside the tbody element is a tr element, and if the element is + # not immediately preceded by a tbody, thead, or tfoot element + # whose end tag has been omitted. + if type == "StartTag": + # omit the thead and tfoot elements' end tag when they are + # immediately followed by a tbody element. See is_optional_end. + if previous and previous['type'] == 'EndTag' and \ + previous['name'] in ('tbody', 'thead', 'tfoot'): + return False + return next["name"] == 'tr' + else: + return False + return False + + def is_optional_end(self, tagname, next): + type = next and next["type"] or None + if tagname in ('html', 'head', 'body'): + # An html element's end tag may be omitted if the html element + # is not immediately followed by a space character or a comment. + return type not in ("Comment", "SpaceCharacters") + elif tagname in ('li', 'optgroup', 'tr'): + # A li element's end tag may be omitted if the li element is + # immediately followed by another li element or if there is + # no more content in the parent element. + # An optgroup element's end tag may be omitted if the optgroup + # element is immediately followed by another optgroup element, + # or if there is no more content in the parent element. + # A tr element's end tag may be omitted if the tr element is + # immediately followed by another tr element, or if there is + # no more content in the parent element. + if type == "StartTag": + return next["name"] == tagname + else: + return type == "EndTag" or type is None + elif tagname in ('dt', 'dd'): + # A dt element's end tag may be omitted if the dt element is + # immediately followed by another dt element or a dd element. + # A dd element's end tag may be omitted if the dd element is + # immediately followed by another dd element or a dt element, + # or if there is no more content in the parent element. + if type == "StartTag": + return next["name"] in ('dt', 'dd') + elif tagname == 'dd': + return type == "EndTag" or type is None + else: + return False + elif tagname == 'p': + # A p element's end tag may be omitted if the p element is + # immediately followed by an address, article, aside, + # blockquote, datagrid, dialog, dir, div, dl, fieldset, + # footer, form, h1, h2, h3, h4, h5, h6, header, hr, menu, + # nav, ol, p, pre, section, table, or ul, element, or if + # there is no more content in the parent element. + if type in ("StartTag", "EmptyTag"): + return next["name"] in ('address', 'article', 'aside', + 'blockquote', 'datagrid', 'dialog', + 'dir', 'div', 'dl', 'fieldset', 'footer', + 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', + 'header', 'hr', 'menu', 'nav', 'ol', + 'p', 'pre', 'section', 'table', 'ul') + else: + return type == "EndTag" or type is None + elif tagname == 'option': + # An option element's end tag may be omitted if the option + # element is immediately followed by another option element, + # or if it is immediately followed by an <code>optgroup</code> + # element, or if there is no more content in the parent + # element. + if type == "StartTag": + return next["name"] in ('option', 'optgroup') + else: + return type == "EndTag" or type is None + elif tagname in ('rt', 'rp'): + # An rt element's end tag may be omitted if the rt element is + # immediately followed by an rt or rp element, or if there is + # no more content in the parent element. + # An rp element's end tag may be omitted if the rp element is + # immediately followed by an rt or rp element, or if there is + # no more content in the parent element. + if type == "StartTag": + return next["name"] in ('rt', 'rp') + else: + return type == "EndTag" or type is None + elif tagname == 'colgroup': + # A colgroup element's end tag may be omitted if the colgroup + # element is not immediately followed by a space character or + # a comment. + if type in ("Comment", "SpaceCharacters"): + return False + elif type == "StartTag": + # XXX: we also look for an immediately following colgroup + # element. See is_optional_start. + return next["name"] != 'colgroup' + else: + return True + elif tagname in ('thead', 'tbody'): + # A thead element's end tag may be omitted if the thead element + # is immediately followed by a tbody or tfoot element. + # A tbody element's end tag may be omitted if the tbody element + # is immediately followed by a tbody or tfoot element, or if + # there is no more content in the parent element. + # A tfoot element's end tag may be omitted if the tfoot element + # is immediately followed by a tbody element, or if there is no + # more content in the parent element. + # XXX: we never omit the end tag when the following element is + # a tbody. See is_optional_start. + if type == "StartTag": + return next["name"] in ['tbody', 'tfoot'] + elif tagname == 'tbody': + return type == "EndTag" or type is None + else: + return False + elif tagname == 'tfoot': + # A tfoot element's end tag may be omitted if the tfoot element + # is immediately followed by a tbody element, or if there is no + # more content in the parent element. + # XXX: we never omit the end tag when the following element is + # a tbody. See is_optional_start. + if type == "StartTag": + return next["name"] == 'tbody' + else: + return type == "EndTag" or type is None + elif tagname in ('td', 'th'): + # A td element's end tag may be omitted if the td element is + # immediately followed by a td or th element, or if there is + # no more content in the parent element. + # A th element's end tag may be omitted if the th element is + # immediately followed by a td or th element, or if there is + # no more content in the parent element. + if type == "StartTag": + return next["name"] in ('td', 'th') + else: + return type == "EndTag" or type is None + return False diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/sanitizer.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/sanitizer.py new file mode 100644 index 00000000..af8e77b8 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/sanitizer.py @@ -0,0 +1,896 @@ +from __future__ import absolute_import, division, unicode_literals + +import re +from xml.sax.saxutils import escape, unescape + +from pip._vendor.six.moves import urllib_parse as urlparse + +from . import base +from ..constants import namespaces, prefixes + +__all__ = ["Filter"] + + +allowed_elements = frozenset(( + (namespaces['html'], 'a'), + (namespaces['html'], 'abbr'), + (namespaces['html'], 'acronym'), + (namespaces['html'], 'address'), + (namespaces['html'], 'area'), + (namespaces['html'], 'article'), + (namespaces['html'], 'aside'), + (namespaces['html'], 'audio'), + (namespaces['html'], 'b'), + (namespaces['html'], 'big'), + (namespaces['html'], 'blockquote'), + (namespaces['html'], 'br'), + (namespaces['html'], 'button'), + (namespaces['html'], 'canvas'), + (namespaces['html'], 'caption'), + (namespaces['html'], 'center'), + (namespaces['html'], 'cite'), + (namespaces['html'], 'code'), + (namespaces['html'], 'col'), + (namespaces['html'], 'colgroup'), + (namespaces['html'], 'command'), + (namespaces['html'], 'datagrid'), + (namespaces['html'], 'datalist'), + (namespaces['html'], 'dd'), + (namespaces['html'], 'del'), + (namespaces['html'], 'details'), + (namespaces['html'], 'dfn'), + (namespaces['html'], 'dialog'), + (namespaces['html'], 'dir'), + (namespaces['html'], 'div'), + (namespaces['html'], 'dl'), + (namespaces['html'], 'dt'), + (namespaces['html'], 'em'), + (namespaces['html'], 'event-source'), + (namespaces['html'], 'fieldset'), + (namespaces['html'], 'figcaption'), + (namespaces['html'], 'figure'), + (namespaces['html'], 'footer'), + (namespaces['html'], 'font'), + (namespaces['html'], 'form'), + (namespaces['html'], 'header'), + (namespaces['html'], 'h1'), + (namespaces['html'], 'h2'), + (namespaces['html'], 'h3'), + (namespaces['html'], 'h4'), + (namespaces['html'], 'h5'), + (namespaces['html'], 'h6'), + (namespaces['html'], 'hr'), + (namespaces['html'], 'i'), + (namespaces['html'], 'img'), + (namespaces['html'], 'input'), + (namespaces['html'], 'ins'), + (namespaces['html'], 'keygen'), + (namespaces['html'], 'kbd'), + (namespaces['html'], 'label'), + (namespaces['html'], 'legend'), + (namespaces['html'], 'li'), + (namespaces['html'], 'm'), + (namespaces['html'], 'map'), + (namespaces['html'], 'menu'), + (namespaces['html'], 'meter'), + (namespaces['html'], 'multicol'), + (namespaces['html'], 'nav'), + (namespaces['html'], 'nextid'), + (namespaces['html'], 'ol'), + (namespaces['html'], 'output'), + (namespaces['html'], 'optgroup'), + (namespaces['html'], 'option'), + (namespaces['html'], 'p'), + (namespaces['html'], 'pre'), + (namespaces['html'], 'progress'), + (namespaces['html'], 'q'), + (namespaces['html'], 's'), + (namespaces['html'], 'samp'), + (namespaces['html'], 'section'), + (namespaces['html'], 'select'), + (namespaces['html'], 'small'), + (namespaces['html'], 'sound'), + (namespaces['html'], 'source'), + (namespaces['html'], 'spacer'), + (namespaces['html'], 'span'), + (namespaces['html'], 'strike'), + (namespaces['html'], 'strong'), + (namespaces['html'], 'sub'), + (namespaces['html'], 'sup'), + (namespaces['html'], 'table'), + (namespaces['html'], 'tbody'), + (namespaces['html'], 'td'), + (namespaces['html'], 'textarea'), + (namespaces['html'], 'time'), + (namespaces['html'], 'tfoot'), + (namespaces['html'], 'th'), + (namespaces['html'], 'thead'), + (namespaces['html'], 'tr'), + (namespaces['html'], 'tt'), + (namespaces['html'], 'u'), + (namespaces['html'], 'ul'), + (namespaces['html'], 'var'), + (namespaces['html'], 'video'), + (namespaces['mathml'], 'maction'), + (namespaces['mathml'], 'math'), + (namespaces['mathml'], 'merror'), + (namespaces['mathml'], 'mfrac'), + (namespaces['mathml'], 'mi'), + (namespaces['mathml'], 'mmultiscripts'), + (namespaces['mathml'], 'mn'), + (namespaces['mathml'], 'mo'), + (namespaces['mathml'], 'mover'), + (namespaces['mathml'], 'mpadded'), + (namespaces['mathml'], 'mphantom'), + (namespaces['mathml'], 'mprescripts'), + (namespaces['mathml'], 'mroot'), + (namespaces['mathml'], 'mrow'), + (namespaces['mathml'], 'mspace'), + (namespaces['mathml'], 'msqrt'), + (namespaces['mathml'], 'mstyle'), + (namespaces['mathml'], 'msub'), + (namespaces['mathml'], 'msubsup'), + (namespaces['mathml'], 'msup'), + (namespaces['mathml'], 'mtable'), + (namespaces['mathml'], 'mtd'), + (namespaces['mathml'], 'mtext'), + (namespaces['mathml'], 'mtr'), + (namespaces['mathml'], 'munder'), + (namespaces['mathml'], 'munderover'), + (namespaces['mathml'], 'none'), + (namespaces['svg'], 'a'), + (namespaces['svg'], 'animate'), + (namespaces['svg'], 'animateColor'), + (namespaces['svg'], 'animateMotion'), + (namespaces['svg'], 'animateTransform'), + (namespaces['svg'], 'clipPath'), + (namespaces['svg'], 'circle'), + (namespaces['svg'], 'defs'), + (namespaces['svg'], 'desc'), + (namespaces['svg'], 'ellipse'), + (namespaces['svg'], 'font-face'), + (namespaces['svg'], 'font-face-name'), + (namespaces['svg'], 'font-face-src'), + (namespaces['svg'], 'g'), + (namespaces['svg'], 'glyph'), + (namespaces['svg'], 'hkern'), + (namespaces['svg'], 'linearGradient'), + (namespaces['svg'], 'line'), + (namespaces['svg'], 'marker'), + (namespaces['svg'], 'metadata'), + (namespaces['svg'], 'missing-glyph'), + (namespaces['svg'], 'mpath'), + (namespaces['svg'], 'path'), + (namespaces['svg'], 'polygon'), + (namespaces['svg'], 'polyline'), + (namespaces['svg'], 'radialGradient'), + (namespaces['svg'], 'rect'), + (namespaces['svg'], 'set'), + (namespaces['svg'], 'stop'), + (namespaces['svg'], 'svg'), + (namespaces['svg'], 'switch'), + (namespaces['svg'], 'text'), + (namespaces['svg'], 'title'), + (namespaces['svg'], 'tspan'), + (namespaces['svg'], 'use'), +)) + +allowed_attributes = frozenset(( + # HTML attributes + (None, 'abbr'), + (None, 'accept'), + (None, 'accept-charset'), + (None, 'accesskey'), + (None, 'action'), + (None, 'align'), + (None, 'alt'), + (None, 'autocomplete'), + (None, 'autofocus'), + (None, 'axis'), + (None, 'background'), + (None, 'balance'), + (None, 'bgcolor'), + (None, 'bgproperties'), + (None, 'border'), + (None, 'bordercolor'), + (None, 'bordercolordark'), + (None, 'bordercolorlight'), + (None, 'bottompadding'), + (None, 'cellpadding'), + (None, 'cellspacing'), + (None, 'ch'), + (None, 'challenge'), + (None, 'char'), + (None, 'charoff'), + (None, 'choff'), + (None, 'charset'), + (None, 'checked'), + (None, 'cite'), + (None, 'class'), + (None, 'clear'), + (None, 'color'), + (None, 'cols'), + (None, 'colspan'), + (None, 'compact'), + (None, 'contenteditable'), + (None, 'controls'), + (None, 'coords'), + (None, 'data'), + (None, 'datafld'), + (None, 'datapagesize'), + (None, 'datasrc'), + (None, 'datetime'), + (None, 'default'), + (None, 'delay'), + (None, 'dir'), + (None, 'disabled'), + (None, 'draggable'), + (None, 'dynsrc'), + (None, 'enctype'), + (None, 'end'), + (None, 'face'), + (None, 'for'), + (None, 'form'), + (None, 'frame'), + (None, 'galleryimg'), + (None, 'gutter'), + (None, 'headers'), + (None, 'height'), + (None, 'hidefocus'), + (None, 'hidden'), + (None, 'high'), + (None, 'href'), + (None, 'hreflang'), + (None, 'hspace'), + (None, 'icon'), + (None, 'id'), + (None, 'inputmode'), + (None, 'ismap'), + (None, 'keytype'), + (None, 'label'), + (None, 'leftspacing'), + (None, 'lang'), + (None, 'list'), + (None, 'longdesc'), + (None, 'loop'), + (None, 'loopcount'), + (None, 'loopend'), + (None, 'loopstart'), + (None, 'low'), + (None, 'lowsrc'), + (None, 'max'), + (None, 'maxlength'), + (None, 'media'), + (None, 'method'), + (None, 'min'), + (None, 'multiple'), + (None, 'name'), + (None, 'nohref'), + (None, 'noshade'), + (None, 'nowrap'), + (None, 'open'), + (None, 'optimum'), + (None, 'pattern'), + (None, 'ping'), + (None, 'point-size'), + (None, 'poster'), + (None, 'pqg'), + (None, 'preload'), + (None, 'prompt'), + (None, 'radiogroup'), + (None, 'readonly'), + (None, 'rel'), + (None, 'repeat-max'), + (None, 'repeat-min'), + (None, 'replace'), + (None, 'required'), + (None, 'rev'), + (None, 'rightspacing'), + (None, 'rows'), + (None, 'rowspan'), + (None, 'rules'), + (None, 'scope'), + (None, 'selected'), + (None, 'shape'), + (None, 'size'), + (None, 'span'), + (None, 'src'), + (None, 'start'), + (None, 'step'), + (None, 'style'), + (None, 'summary'), + (None, 'suppress'), + (None, 'tabindex'), + (None, 'target'), + (None, 'template'), + (None, 'title'), + (None, 'toppadding'), + (None, 'type'), + (None, 'unselectable'), + (None, 'usemap'), + (None, 'urn'), + (None, 'valign'), + (None, 'value'), + (None, 'variable'), + (None, 'volume'), + (None, 'vspace'), + (None, 'vrml'), + (None, 'width'), + (None, 'wrap'), + (namespaces['xml'], 'lang'), + # MathML attributes + (None, 'actiontype'), + (None, 'align'), + (None, 'columnalign'), + (None, 'columnalign'), + (None, 'columnalign'), + (None, 'columnlines'), + (None, 'columnspacing'), + (None, 'columnspan'), + (None, 'depth'), + (None, 'display'), + (None, 'displaystyle'), + (None, 'equalcolumns'), + (None, 'equalrows'), + (None, 'fence'), + (None, 'fontstyle'), + (None, 'fontweight'), + (None, 'frame'), + (None, 'height'), + (None, 'linethickness'), + (None, 'lspace'), + (None, 'mathbackground'), + (None, 'mathcolor'), + (None, 'mathvariant'), + (None, 'mathvariant'), + (None, 'maxsize'), + (None, 'minsize'), + (None, 'other'), + (None, 'rowalign'), + (None, 'rowalign'), + (None, 'rowalign'), + (None, 'rowlines'), + (None, 'rowspacing'), + (None, 'rowspan'), + (None, 'rspace'), + (None, 'scriptlevel'), + (None, 'selection'), + (None, 'separator'), + (None, 'stretchy'), + (None, 'width'), + (None, 'width'), + (namespaces['xlink'], 'href'), + (namespaces['xlink'], 'show'), + (namespaces['xlink'], 'type'), + # SVG attributes + (None, 'accent-height'), + (None, 'accumulate'), + (None, 'additive'), + (None, 'alphabetic'), + (None, 'arabic-form'), + (None, 'ascent'), + (None, 'attributeName'), + (None, 'attributeType'), + (None, 'baseProfile'), + (None, 'bbox'), + (None, 'begin'), + (None, 'by'), + (None, 'calcMode'), + (None, 'cap-height'), + (None, 'class'), + (None, 'clip-path'), + (None, 'color'), + (None, 'color-rendering'), + (None, 'content'), + (None, 'cx'), + (None, 'cy'), + (None, 'd'), + (None, 'dx'), + (None, 'dy'), + (None, 'descent'), + (None, 'display'), + (None, 'dur'), + (None, 'end'), + (None, 'fill'), + (None, 'fill-opacity'), + (None, 'fill-rule'), + (None, 'font-family'), + (None, 'font-size'), + (None, 'font-stretch'), + (None, 'font-style'), + (None, 'font-variant'), + (None, 'font-weight'), + (None, 'from'), + (None, 'fx'), + (None, 'fy'), + (None, 'g1'), + (None, 'g2'), + (None, 'glyph-name'), + (None, 'gradientUnits'), + (None, 'hanging'), + (None, 'height'), + (None, 'horiz-adv-x'), + (None, 'horiz-origin-x'), + (None, 'id'), + (None, 'ideographic'), + (None, 'k'), + (None, 'keyPoints'), + (None, 'keySplines'), + (None, 'keyTimes'), + (None, 'lang'), + (None, 'marker-end'), + (None, 'marker-mid'), + (None, 'marker-start'), + (None, 'markerHeight'), + (None, 'markerUnits'), + (None, 'markerWidth'), + (None, 'mathematical'), + (None, 'max'), + (None, 'min'), + (None, 'name'), + (None, 'offset'), + (None, 'opacity'), + (None, 'orient'), + (None, 'origin'), + (None, 'overline-position'), + (None, 'overline-thickness'), + (None, 'panose-1'), + (None, 'path'), + (None, 'pathLength'), + (None, 'points'), + (None, 'preserveAspectRatio'), + (None, 'r'), + (None, 'refX'), + (None, 'refY'), + (None, 'repeatCount'), + (None, 'repeatDur'), + (None, 'requiredExtensions'), + (None, 'requiredFeatures'), + (None, 'restart'), + (None, 'rotate'), + (None, 'rx'), + (None, 'ry'), + (None, 'slope'), + (None, 'stemh'), + (None, 'stemv'), + (None, 'stop-color'), + (None, 'stop-opacity'), + (None, 'strikethrough-position'), + (None, 'strikethrough-thickness'), + (None, 'stroke'), + (None, 'stroke-dasharray'), + (None, 'stroke-dashoffset'), + (None, 'stroke-linecap'), + (None, 'stroke-linejoin'), + (None, 'stroke-miterlimit'), + (None, 'stroke-opacity'), + (None, 'stroke-width'), + (None, 'systemLanguage'), + (None, 'target'), + (None, 'text-anchor'), + (None, 'to'), + (None, 'transform'), + (None, 'type'), + (None, 'u1'), + (None, 'u2'), + (None, 'underline-position'), + (None, 'underline-thickness'), + (None, 'unicode'), + (None, 'unicode-range'), + (None, 'units-per-em'), + (None, 'values'), + (None, 'version'), + (None, 'viewBox'), + (None, 'visibility'), + (None, 'width'), + (None, 'widths'), + (None, 'x'), + (None, 'x-height'), + (None, 'x1'), + (None, 'x2'), + (namespaces['xlink'], 'actuate'), + (namespaces['xlink'], 'arcrole'), + (namespaces['xlink'], 'href'), + (namespaces['xlink'], 'role'), + (namespaces['xlink'], 'show'), + (namespaces['xlink'], 'title'), + (namespaces['xlink'], 'type'), + (namespaces['xml'], 'base'), + (namespaces['xml'], 'lang'), + (namespaces['xml'], 'space'), + (None, 'y'), + (None, 'y1'), + (None, 'y2'), + (None, 'zoomAndPan'), +)) + +attr_val_is_uri = frozenset(( + (None, 'href'), + (None, 'src'), + (None, 'cite'), + (None, 'action'), + (None, 'longdesc'), + (None, 'poster'), + (None, 'background'), + (None, 'datasrc'), + (None, 'dynsrc'), + (None, 'lowsrc'), + (None, 'ping'), + (namespaces['xlink'], 'href'), + (namespaces['xml'], 'base'), +)) + +svg_attr_val_allows_ref = frozenset(( + (None, 'clip-path'), + (None, 'color-profile'), + (None, 'cursor'), + (None, 'fill'), + (None, 'filter'), + (None, 'marker'), + (None, 'marker-start'), + (None, 'marker-mid'), + (None, 'marker-end'), + (None, 'mask'), + (None, 'stroke'), +)) + +svg_allow_local_href = frozenset(( + (None, 'altGlyph'), + (None, 'animate'), + (None, 'animateColor'), + (None, 'animateMotion'), + (None, 'animateTransform'), + (None, 'cursor'), + (None, 'feImage'), + (None, 'filter'), + (None, 'linearGradient'), + (None, 'pattern'), + (None, 'radialGradient'), + (None, 'textpath'), + (None, 'tref'), + (None, 'set'), + (None, 'use') +)) + +allowed_css_properties = frozenset(( + 'azimuth', + 'background-color', + 'border-bottom-color', + 'border-collapse', + 'border-color', + 'border-left-color', + 'border-right-color', + 'border-top-color', + 'clear', + 'color', + 'cursor', + 'direction', + 'display', + 'elevation', + 'float', + 'font', + 'font-family', + 'font-size', + 'font-style', + 'font-variant', + 'font-weight', + 'height', + 'letter-spacing', + 'line-height', + 'overflow', + 'pause', + 'pause-after', + 'pause-before', + 'pitch', + 'pitch-range', + 'richness', + 'speak', + 'speak-header', + 'speak-numeral', + 'speak-punctuation', + 'speech-rate', + 'stress', + 'text-align', + 'text-decoration', + 'text-indent', + 'unicode-bidi', + 'vertical-align', + 'voice-family', + 'volume', + 'white-space', + 'width', +)) + +allowed_css_keywords = frozenset(( + 'auto', + 'aqua', + 'black', + 'block', + 'blue', + 'bold', + 'both', + 'bottom', + 'brown', + 'center', + 'collapse', + 'dashed', + 'dotted', + 'fuchsia', + 'gray', + 'green', + '!important', + 'italic', + 'left', + 'lime', + 'maroon', + 'medium', + 'none', + 'navy', + 'normal', + 'nowrap', + 'olive', + 'pointer', + 'purple', + 'red', + 'right', + 'solid', + 'silver', + 'teal', + 'top', + 'transparent', + 'underline', + 'white', + 'yellow', +)) + +allowed_svg_properties = frozenset(( + 'fill', + 'fill-opacity', + 'fill-rule', + 'stroke', + 'stroke-width', + 'stroke-linecap', + 'stroke-linejoin', + 'stroke-opacity', +)) + +allowed_protocols = frozenset(( + 'ed2k', + 'ftp', + 'http', + 'https', + 'irc', + 'mailto', + 'news', + 'gopher', + 'nntp', + 'telnet', + 'webcal', + 'xmpp', + 'callto', + 'feed', + 'urn', + 'aim', + 'rsync', + 'tag', + 'ssh', + 'sftp', + 'rtsp', + 'afs', + 'data', +)) + +allowed_content_types = frozenset(( + 'image/png', + 'image/jpeg', + 'image/gif', + 'image/webp', + 'image/bmp', + 'text/plain', +)) + + +data_content_type = re.compile(r''' + ^ + # Match a content type <application>/<type> + (?P<content_type>[-a-zA-Z0-9.]+/[-a-zA-Z0-9.]+) + # Match any character set and encoding + (?:(?:;charset=(?:[-a-zA-Z0-9]+)(?:;(?:base64))?) + |(?:;(?:base64))?(?:;charset=(?:[-a-zA-Z0-9]+))?) + # Assume the rest is data + ,.* + $ + ''', + re.VERBOSE) + + +class Filter(base.Filter): + """Sanitizes token stream of XHTML+MathML+SVG and of inline style attributes""" + def __init__(self, + source, + allowed_elements=allowed_elements, + allowed_attributes=allowed_attributes, + allowed_css_properties=allowed_css_properties, + allowed_css_keywords=allowed_css_keywords, + allowed_svg_properties=allowed_svg_properties, + allowed_protocols=allowed_protocols, + allowed_content_types=allowed_content_types, + attr_val_is_uri=attr_val_is_uri, + svg_attr_val_allows_ref=svg_attr_val_allows_ref, + svg_allow_local_href=svg_allow_local_href): + """Creates a Filter + + :arg allowed_elements: set of elements to allow--everything else will + be escaped + + :arg allowed_attributes: set of attributes to allow in + elements--everything else will be stripped + + :arg allowed_css_properties: set of CSS properties to allow--everything + else will be stripped + + :arg allowed_css_keywords: set of CSS keywords to allow--everything + else will be stripped + + :arg allowed_svg_properties: set of SVG properties to allow--everything + else will be removed + + :arg allowed_protocols: set of allowed protocols for URIs + + :arg allowed_content_types: set of allowed content types for ``data`` URIs. + + :arg attr_val_is_uri: set of attributes that have URI values--values + that have a scheme not listed in ``allowed_protocols`` are removed + + :arg svg_attr_val_allows_ref: set of SVG attributes that can have + references + + :arg svg_allow_local_href: set of SVG elements that can have local + hrefs--these are removed + + """ + super(Filter, self).__init__(source) + self.allowed_elements = allowed_elements + self.allowed_attributes = allowed_attributes + self.allowed_css_properties = allowed_css_properties + self.allowed_css_keywords = allowed_css_keywords + self.allowed_svg_properties = allowed_svg_properties + self.allowed_protocols = allowed_protocols + self.allowed_content_types = allowed_content_types + self.attr_val_is_uri = attr_val_is_uri + self.svg_attr_val_allows_ref = svg_attr_val_allows_ref + self.svg_allow_local_href = svg_allow_local_href + + def __iter__(self): + for token in base.Filter.__iter__(self): + token = self.sanitize_token(token) + if token: + yield token + + # Sanitize the +html+, escaping all elements not in ALLOWED_ELEMENTS, and + # stripping out all attributes not in ALLOWED_ATTRIBUTES. Style attributes + # are parsed, and a restricted set, specified by ALLOWED_CSS_PROPERTIES and + # ALLOWED_CSS_KEYWORDS, are allowed through. attributes in ATTR_VAL_IS_URI + # are scanned, and only URI schemes specified in ALLOWED_PROTOCOLS are + # allowed. + # + # sanitize_html('<script> do_nasty_stuff() </script>') + # => <script> do_nasty_stuff() </script> + # sanitize_html('<a href="javascript: sucker();">Click here for $100</a>') + # => <a>Click here for $100</a> + def sanitize_token(self, token): + + # accommodate filters which use token_type differently + token_type = token["type"] + if token_type in ("StartTag", "EndTag", "EmptyTag"): + name = token["name"] + namespace = token["namespace"] + if ((namespace, name) in self.allowed_elements or + (namespace is None and + (namespaces["html"], name) in self.allowed_elements)): + return self.allowed_token(token) + else: + return self.disallowed_token(token) + elif token_type == "Comment": + pass + else: + return token + + def allowed_token(self, token): + if "data" in token: + attrs = token["data"] + attr_names = set(attrs.keys()) + + # Remove forbidden attributes + for to_remove in (attr_names - self.allowed_attributes): + del token["data"][to_remove] + attr_names.remove(to_remove) + + # Remove attributes with disallowed URL values + for attr in (attr_names & self.attr_val_is_uri): + assert attr in attrs + # I don't have a clue where this regexp comes from or why it matches those + # characters, nor why we call unescape. I just know it's always been here. + # Should you be worried by this comment in a sanitizer? Yes. On the other hand, all + # this will do is remove *more* than it otherwise would. + val_unescaped = re.sub("[`\x00-\x20\x7f-\xa0\\s]+", '', + unescape(attrs[attr])).lower() + # remove replacement characters from unescaped characters + val_unescaped = val_unescaped.replace("\ufffd", "") + try: + uri = urlparse.urlparse(val_unescaped) + except ValueError: + uri = None + del attrs[attr] + if uri and uri.scheme: + if uri.scheme not in self.allowed_protocols: + del attrs[attr] + if uri.scheme == 'data': + m = data_content_type.match(uri.path) + if not m: + del attrs[attr] + elif m.group('content_type') not in self.allowed_content_types: + del attrs[attr] + + for attr in self.svg_attr_val_allows_ref: + if attr in attrs: + attrs[attr] = re.sub(r'url\s*\(\s*[^#\s][^)]+?\)', + ' ', + unescape(attrs[attr])) + if (token["name"] in self.svg_allow_local_href and + (namespaces['xlink'], 'href') in attrs and re.search(r'^\s*[^#\s].*', + attrs[(namespaces['xlink'], 'href')])): + del attrs[(namespaces['xlink'], 'href')] + if (None, 'style') in attrs: + attrs[(None, 'style')] = self.sanitize_css(attrs[(None, 'style')]) + token["data"] = attrs + return token + + def disallowed_token(self, token): + token_type = token["type"] + if token_type == "EndTag": + token["data"] = "</%s>" % token["name"] + elif token["data"]: + assert token_type in ("StartTag", "EmptyTag") + attrs = [] + for (ns, name), v in token["data"].items(): + attrs.append(' %s="%s"' % (name if ns is None else "%s:%s" % (prefixes[ns], name), escape(v))) + token["data"] = "<%s%s>" % (token["name"], ''.join(attrs)) + else: + token["data"] = "<%s>" % token["name"] + if token.get("selfClosing"): + token["data"] = token["data"][:-1] + "/>" + + token["type"] = "Characters" + + del token["name"] + return token + + def sanitize_css(self, style): + # disallow urls + style = re.compile(r'url\s*\(\s*[^\s)]+?\s*\)\s*').sub(' ', style) + + # gauntlet + if not re.match(r"""^([:,;#%.\sa-zA-Z0-9!]|\w-\w|'[\s\w]+'|"[\s\w]+"|\([\d,\s]+\))*$""", style): + return '' + if not re.match(r"^\s*([-\w]+\s*:[^:;]*(;\s*|$))*$", style): + return '' + + clean = [] + for prop, value in re.findall(r"([-\w]+)\s*:\s*([^:;]*)", style): + if not value: + continue + if prop.lower() in self.allowed_css_properties: + clean.append(prop + ': ' + value + ';') + elif prop.split('-')[0].lower() in ['background', 'border', 'margin', + 'padding']: + for keyword in value.split(): + if keyword not in self.allowed_css_keywords and \ + not re.match(r"^(#[0-9a-fA-F]+|rgb\(\d+%?,\d*%?,?\d*%?\)?|\d{0,2}\.?\d{0,2}(cm|em|ex|in|mm|pc|pt|px|%|,|\))?)$", keyword): # noqa + break + else: + clean.append(prop + ': ' + value + ';') + elif prop.lower() in self.allowed_svg_properties: + clean.append(prop + ': ' + value + ';') + + return ' '.join(clean) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/whitespace.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/whitespace.py new file mode 100644 index 00000000..0d12584b --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/filters/whitespace.py @@ -0,0 +1,38 @@ +from __future__ import absolute_import, division, unicode_literals + +import re + +from . import base +from ..constants import rcdataElements, spaceCharacters +spaceCharacters = "".join(spaceCharacters) + +SPACES_REGEX = re.compile("[%s]+" % spaceCharacters) + + +class Filter(base.Filter): + """Collapses whitespace except in pre, textarea, and script elements""" + spacePreserveElements = frozenset(["pre", "textarea"] + list(rcdataElements)) + + def __iter__(self): + preserve = 0 + for token in base.Filter.__iter__(self): + type = token["type"] + if type == "StartTag" \ + and (preserve or token["name"] in self.spacePreserveElements): + preserve += 1 + + elif type == "EndTag" and preserve: + preserve -= 1 + + elif not preserve and type == "SpaceCharacters" and token["data"]: + # Test on token["data"] above to not introduce spaces where there were not + token["data"] = " " + + elif not preserve and type == "Characters": + token["data"] = collapse_spaces(token["data"]) + + yield token + + +def collapse_spaces(text): + return SPACES_REGEX.sub(' ', text) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/html5parser.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/html5parser.py new file mode 100644 index 00000000..ae41a133 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/html5parser.py @@ -0,0 +1,2791 @@ +from __future__ import absolute_import, division, unicode_literals +from pip._vendor.six import with_metaclass, viewkeys + +import types +from collections import OrderedDict + +from . import _inputstream +from . import _tokenizer + +from . import treebuilders +from .treebuilders.base import Marker + +from . import _utils +from .constants import ( + spaceCharacters, asciiUpper2Lower, + specialElements, headingElements, cdataElements, rcdataElements, + tokenTypes, tagTokenTypes, + namespaces, + htmlIntegrationPointElements, mathmlTextIntegrationPointElements, + adjustForeignAttributes as adjustForeignAttributesMap, + adjustMathMLAttributes, adjustSVGAttributes, + E, + _ReparseException +) + + +def parse(doc, treebuilder="etree", namespaceHTMLElements=True, **kwargs): + """Parse an HTML document as a string or file-like object into a tree + + :arg doc: the document to parse as a string or file-like object + + :arg treebuilder: the treebuilder to use when parsing + + :arg namespaceHTMLElements: whether or not to namespace HTML elements + + :returns: parsed tree + + Example: + + >>> from html5lib.html5parser import parse + >>> parse('<html><body><p>This is a doc</p></body></html>') + <Element u'{http://www.w3.org/1999/xhtml}html' at 0x7feac4909db0> + + """ + tb = treebuilders.getTreeBuilder(treebuilder) + p = HTMLParser(tb, namespaceHTMLElements=namespaceHTMLElements) + return p.parse(doc, **kwargs) + + +def parseFragment(doc, container="div", treebuilder="etree", namespaceHTMLElements=True, **kwargs): + """Parse an HTML fragment as a string or file-like object into a tree + + :arg doc: the fragment to parse as a string or file-like object + + :arg container: the container context to parse the fragment in + + :arg treebuilder: the treebuilder to use when parsing + + :arg namespaceHTMLElements: whether or not to namespace HTML elements + + :returns: parsed tree + + Example: + + >>> from html5lib.html5libparser import parseFragment + >>> parseFragment('<b>this is a fragment</b>') + <Element u'DOCUMENT_FRAGMENT' at 0x7feac484b090> + + """ + tb = treebuilders.getTreeBuilder(treebuilder) + p = HTMLParser(tb, namespaceHTMLElements=namespaceHTMLElements) + return p.parseFragment(doc, container=container, **kwargs) + + +def method_decorator_metaclass(function): + class Decorated(type): + def __new__(meta, classname, bases, classDict): + for attributeName, attribute in classDict.items(): + if isinstance(attribute, types.FunctionType): + attribute = function(attribute) + + classDict[attributeName] = attribute + return type.__new__(meta, classname, bases, classDict) + return Decorated + + +class HTMLParser(object): + """HTML parser + + Generates a tree structure from a stream of (possibly malformed) HTML. + + """ + + def __init__(self, tree=None, strict=False, namespaceHTMLElements=True, debug=False): + """ + :arg tree: a treebuilder class controlling the type of tree that will be + returned. Built in treebuilders can be accessed through + html5lib.treebuilders.getTreeBuilder(treeType) + + :arg strict: raise an exception when a parse error is encountered + + :arg namespaceHTMLElements: whether or not to namespace HTML elements + + :arg debug: whether or not to enable debug mode which logs things + + Example: + + >>> from html5lib.html5parser import HTMLParser + >>> parser = HTMLParser() # generates parser with etree builder + >>> parser = HTMLParser('lxml', strict=True) # generates parser with lxml builder which is strict + + """ + + # Raise an exception on the first error encountered + self.strict = strict + + if tree is None: + tree = treebuilders.getTreeBuilder("etree") + self.tree = tree(namespaceHTMLElements) + self.errors = [] + + self.phases = dict([(name, cls(self, self.tree)) for name, cls in + getPhases(debug).items()]) + + def _parse(self, stream, innerHTML=False, container="div", scripting=False, **kwargs): + + self.innerHTMLMode = innerHTML + self.container = container + self.scripting = scripting + self.tokenizer = _tokenizer.HTMLTokenizer(stream, parser=self, **kwargs) + self.reset() + + try: + self.mainLoop() + except _ReparseException: + self.reset() + self.mainLoop() + + def reset(self): + self.tree.reset() + self.firstStartTag = False + self.errors = [] + self.log = [] # only used with debug mode + # "quirks" / "limited quirks" / "no quirks" + self.compatMode = "no quirks" + + if self.innerHTMLMode: + self.innerHTML = self.container.lower() + + if self.innerHTML in cdataElements: + self.tokenizer.state = self.tokenizer.rcdataState + elif self.innerHTML in rcdataElements: + self.tokenizer.state = self.tokenizer.rawtextState + elif self.innerHTML == 'plaintext': + self.tokenizer.state = self.tokenizer.plaintextState + else: + # state already is data state + # self.tokenizer.state = self.tokenizer.dataState + pass + self.phase = self.phases["beforeHtml"] + self.phase.insertHtmlElement() + self.resetInsertionMode() + else: + self.innerHTML = False # pylint:disable=redefined-variable-type + self.phase = self.phases["initial"] + + self.lastPhase = None + + self.beforeRCDataPhase = None + + self.framesetOK = True + + @property + def documentEncoding(self): + """Name of the character encoding that was used to decode the input stream, or + :obj:`None` if that is not determined yet + + """ + if not hasattr(self, 'tokenizer'): + return None + return self.tokenizer.stream.charEncoding[0].name + + def isHTMLIntegrationPoint(self, element): + if (element.name == "annotation-xml" and + element.namespace == namespaces["mathml"]): + return ("encoding" in element.attributes and + element.attributes["encoding"].translate( + asciiUpper2Lower) in + ("text/html", "application/xhtml+xml")) + else: + return (element.namespace, element.name) in htmlIntegrationPointElements + + def isMathMLTextIntegrationPoint(self, element): + return (element.namespace, element.name) in mathmlTextIntegrationPointElements + + def mainLoop(self): + CharactersToken = tokenTypes["Characters"] + SpaceCharactersToken = tokenTypes["SpaceCharacters"] + StartTagToken = tokenTypes["StartTag"] + EndTagToken = tokenTypes["EndTag"] + CommentToken = tokenTypes["Comment"] + DoctypeToken = tokenTypes["Doctype"] + ParseErrorToken = tokenTypes["ParseError"] + + for token in self.normalizedTokens(): + prev_token = None + new_token = token + while new_token is not None: + prev_token = new_token + currentNode = self.tree.openElements[-1] if self.tree.openElements else None + currentNodeNamespace = currentNode.namespace if currentNode else None + currentNodeName = currentNode.name if currentNode else None + + type = new_token["type"] + + if type == ParseErrorToken: + self.parseError(new_token["data"], new_token.get("datavars", {})) + new_token = None + else: + if (len(self.tree.openElements) == 0 or + currentNodeNamespace == self.tree.defaultNamespace or + (self.isMathMLTextIntegrationPoint(currentNode) and + ((type == StartTagToken and + token["name"] not in frozenset(["mglyph", "malignmark"])) or + type in (CharactersToken, SpaceCharactersToken))) or + (currentNodeNamespace == namespaces["mathml"] and + currentNodeName == "annotation-xml" and + type == StartTagToken and + token["name"] == "svg") or + (self.isHTMLIntegrationPoint(currentNode) and + type in (StartTagToken, CharactersToken, SpaceCharactersToken))): + phase = self.phase + else: + phase = self.phases["inForeignContent"] + + if type == CharactersToken: + new_token = phase.processCharacters(new_token) + elif type == SpaceCharactersToken: + new_token = phase.processSpaceCharacters(new_token) + elif type == StartTagToken: + new_token = phase.processStartTag(new_token) + elif type == EndTagToken: + new_token = phase.processEndTag(new_token) + elif type == CommentToken: + new_token = phase.processComment(new_token) + elif type == DoctypeToken: + new_token = phase.processDoctype(new_token) + + if (type == StartTagToken and prev_token["selfClosing"] and + not prev_token["selfClosingAcknowledged"]): + self.parseError("non-void-element-with-trailing-solidus", + {"name": prev_token["name"]}) + + # When the loop finishes it's EOF + reprocess = True + phases = [] + while reprocess: + phases.append(self.phase) + reprocess = self.phase.processEOF() + if reprocess: + assert self.phase not in phases + + def normalizedTokens(self): + for token in self.tokenizer: + yield self.normalizeToken(token) + + def parse(self, stream, *args, **kwargs): + """Parse a HTML document into a well-formed tree + + :arg stream: a file-like object or string containing the HTML to be parsed + + The optional encoding parameter must be a string that indicates + the encoding. If specified, that encoding will be used, + regardless of any BOM or later declaration (such as in a meta + element). + + :arg scripting: treat noscript elements as if JavaScript was turned on + + :returns: parsed tree + + Example: + + >>> from html5lib.html5parser import HTMLParser + >>> parser = HTMLParser() + >>> parser.parse('<html><body><p>This is a doc</p></body></html>') + <Element u'{http://www.w3.org/1999/xhtml}html' at 0x7feac4909db0> + + """ + self._parse(stream, False, None, *args, **kwargs) + return self.tree.getDocument() + + def parseFragment(self, stream, *args, **kwargs): + """Parse a HTML fragment into a well-formed tree fragment + + :arg container: name of the element we're setting the innerHTML + property if set to None, default to 'div' + + :arg stream: a file-like object or string containing the HTML to be parsed + + The optional encoding parameter must be a string that indicates + the encoding. If specified, that encoding will be used, + regardless of any BOM or later declaration (such as in a meta + element) + + :arg scripting: treat noscript elements as if JavaScript was turned on + + :returns: parsed tree + + Example: + + >>> from html5lib.html5libparser import HTMLParser + >>> parser = HTMLParser() + >>> parser.parseFragment('<b>this is a fragment</b>') + <Element u'DOCUMENT_FRAGMENT' at 0x7feac484b090> + + """ + self._parse(stream, True, *args, **kwargs) + return self.tree.getFragment() + + def parseError(self, errorcode="XXX-undefined-error", datavars=None): + # XXX The idea is to make errorcode mandatory. + if datavars is None: + datavars = {} + self.errors.append((self.tokenizer.stream.position(), errorcode, datavars)) + if self.strict: + raise ParseError(E[errorcode] % datavars) + + def normalizeToken(self, token): + # HTML5 specific normalizations to the token stream + if token["type"] == tokenTypes["StartTag"]: + raw = token["data"] + token["data"] = OrderedDict(raw) + if len(raw) > len(token["data"]): + # we had some duplicated attribute, fix so first wins + token["data"].update(raw[::-1]) + + return token + + def adjustMathMLAttributes(self, token): + adjust_attributes(token, adjustMathMLAttributes) + + def adjustSVGAttributes(self, token): + adjust_attributes(token, adjustSVGAttributes) + + def adjustForeignAttributes(self, token): + adjust_attributes(token, adjustForeignAttributesMap) + + def reparseTokenNormal(self, token): + # pylint:disable=unused-argument + self.parser.phase() + + def resetInsertionMode(self): + # The name of this method is mostly historical. (It's also used in the + # specification.) + last = False + newModes = { + "select": "inSelect", + "td": "inCell", + "th": "inCell", + "tr": "inRow", + "tbody": "inTableBody", + "thead": "inTableBody", + "tfoot": "inTableBody", + "caption": "inCaption", + "colgroup": "inColumnGroup", + "table": "inTable", + "head": "inBody", + "body": "inBody", + "frameset": "inFrameset", + "html": "beforeHead" + } + for node in self.tree.openElements[::-1]: + nodeName = node.name + new_phase = None + if node == self.tree.openElements[0]: + assert self.innerHTML + last = True + nodeName = self.innerHTML + # Check for conditions that should only happen in the innerHTML + # case + if nodeName in ("select", "colgroup", "head", "html"): + assert self.innerHTML + + if not last and node.namespace != self.tree.defaultNamespace: + continue + + if nodeName in newModes: + new_phase = self.phases[newModes[nodeName]] + break + elif last: + new_phase = self.phases["inBody"] + break + + self.phase = new_phase + + def parseRCDataRawtext(self, token, contentType): + # Generic RCDATA/RAWTEXT Parsing algorithm + assert contentType in ("RAWTEXT", "RCDATA") + + self.tree.insertElement(token) + + if contentType == "RAWTEXT": + self.tokenizer.state = self.tokenizer.rawtextState + else: + self.tokenizer.state = self.tokenizer.rcdataState + + self.originalPhase = self.phase + + self.phase = self.phases["text"] + + +@_utils.memoize +def getPhases(debug): + def log(function): + """Logger that records which phase processes each token""" + type_names = dict((value, key) for key, value in + tokenTypes.items()) + + def wrapped(self, *args, **kwargs): + if function.__name__.startswith("process") and len(args) > 0: + token = args[0] + try: + info = {"type": type_names[token['type']]} + except: + raise + if token['type'] in tagTokenTypes: + info["name"] = token['name'] + + self.parser.log.append((self.parser.tokenizer.state.__name__, + self.parser.phase.__class__.__name__, + self.__class__.__name__, + function.__name__, + info)) + return function(self, *args, **kwargs) + else: + return function(self, *args, **kwargs) + return wrapped + + def getMetaclass(use_metaclass, metaclass_func): + if use_metaclass: + return method_decorator_metaclass(metaclass_func) + else: + return type + + # pylint:disable=unused-argument + class Phase(with_metaclass(getMetaclass(debug, log))): + """Base class for helper object that implements each phase of processing + """ + + def __init__(self, parser, tree): + self.parser = parser + self.tree = tree + + def processEOF(self): + raise NotImplementedError + + def processComment(self, token): + # For most phases the following is correct. Where it's not it will be + # overridden. + self.tree.insertComment(token, self.tree.openElements[-1]) + + def processDoctype(self, token): + self.parser.parseError("unexpected-doctype") + + def processCharacters(self, token): + self.tree.insertText(token["data"]) + + def processSpaceCharacters(self, token): + self.tree.insertText(token["data"]) + + def processStartTag(self, token): + return self.startTagHandler[token["name"]](token) + + def startTagHtml(self, token): + if not self.parser.firstStartTag and token["name"] == "html": + self.parser.parseError("non-html-root") + # XXX Need a check here to see if the first start tag token emitted is + # this token... If it's not, invoke self.parser.parseError(). + for attr, value in token["data"].items(): + if attr not in self.tree.openElements[0].attributes: + self.tree.openElements[0].attributes[attr] = value + self.parser.firstStartTag = False + + def processEndTag(self, token): + return self.endTagHandler[token["name"]](token) + + class InitialPhase(Phase): + def processSpaceCharacters(self, token): + pass + + def processComment(self, token): + self.tree.insertComment(token, self.tree.document) + + def processDoctype(self, token): + name = token["name"] + publicId = token["publicId"] + systemId = token["systemId"] + correct = token["correct"] + + if (name != "html" or publicId is not None or + systemId is not None and systemId != "about:legacy-compat"): + self.parser.parseError("unknown-doctype") + + if publicId is None: + publicId = "" + + self.tree.insertDoctype(token) + + if publicId != "": + publicId = publicId.translate(asciiUpper2Lower) + + if (not correct or token["name"] != "html" or + publicId.startswith( + ("+//silmaril//dtd html pro v0r11 19970101//", + "-//advasoft ltd//dtd html 3.0 aswedit + extensions//", + "-//as//dtd html 3.0 aswedit + extensions//", + "-//ietf//dtd html 2.0 level 1//", + "-//ietf//dtd html 2.0 level 2//", + "-//ietf//dtd html 2.0 strict level 1//", + "-//ietf//dtd html 2.0 strict level 2//", + "-//ietf//dtd html 2.0 strict//", + "-//ietf//dtd html 2.0//", + "-//ietf//dtd html 2.1e//", + "-//ietf//dtd html 3.0//", + "-//ietf//dtd html 3.2 final//", + "-//ietf//dtd html 3.2//", + "-//ietf//dtd html 3//", + "-//ietf//dtd html level 0//", + "-//ietf//dtd html level 1//", + "-//ietf//dtd html level 2//", + "-//ietf//dtd html level 3//", + "-//ietf//dtd html strict level 0//", + "-//ietf//dtd html strict level 1//", + "-//ietf//dtd html strict level 2//", + "-//ietf//dtd html strict level 3//", + "-//ietf//dtd html strict//", + "-//ietf//dtd html//", + "-//metrius//dtd metrius presentational//", + "-//microsoft//dtd internet explorer 2.0 html strict//", + "-//microsoft//dtd internet explorer 2.0 html//", + "-//microsoft//dtd internet explorer 2.0 tables//", + "-//microsoft//dtd internet explorer 3.0 html strict//", + "-//microsoft//dtd internet explorer 3.0 html//", + "-//microsoft//dtd internet explorer 3.0 tables//", + "-//netscape comm. corp.//dtd html//", + "-//netscape comm. corp.//dtd strict html//", + "-//o'reilly and associates//dtd html 2.0//", + "-//o'reilly and associates//dtd html extended 1.0//", + "-//o'reilly and associates//dtd html extended relaxed 1.0//", + "-//softquad software//dtd hotmetal pro 6.0::19990601::extensions to html 4.0//", + "-//softquad//dtd hotmetal pro 4.0::19971010::extensions to html 4.0//", + "-//spyglass//dtd html 2.0 extended//", + "-//sq//dtd html 2.0 hotmetal + extensions//", + "-//sun microsystems corp.//dtd hotjava html//", + "-//sun microsystems corp.//dtd hotjava strict html//", + "-//w3c//dtd html 3 1995-03-24//", + "-//w3c//dtd html 3.2 draft//", + "-//w3c//dtd html 3.2 final//", + "-//w3c//dtd html 3.2//", + "-//w3c//dtd html 3.2s draft//", + "-//w3c//dtd html 4.0 frameset//", + "-//w3c//dtd html 4.0 transitional//", + "-//w3c//dtd html experimental 19960712//", + "-//w3c//dtd html experimental 970421//", + "-//w3c//dtd w3 html//", + "-//w3o//dtd w3 html 3.0//", + "-//webtechs//dtd mozilla html 2.0//", + "-//webtechs//dtd mozilla html//")) or + publicId in ("-//w3o//dtd w3 html strict 3.0//en//", + "-/w3c/dtd html 4.0 transitional/en", + "html") or + publicId.startswith( + ("-//w3c//dtd html 4.01 frameset//", + "-//w3c//dtd html 4.01 transitional//")) and + systemId is None or + systemId and systemId.lower() == "http://www.ibm.com/data/dtd/v11/ibmxhtml1-transitional.dtd"): + self.parser.compatMode = "quirks" + elif (publicId.startswith( + ("-//w3c//dtd xhtml 1.0 frameset//", + "-//w3c//dtd xhtml 1.0 transitional//")) or + publicId.startswith( + ("-//w3c//dtd html 4.01 frameset//", + "-//w3c//dtd html 4.01 transitional//")) and + systemId is not None): + self.parser.compatMode = "limited quirks" + + self.parser.phase = self.parser.phases["beforeHtml"] + + def anythingElse(self): + self.parser.compatMode = "quirks" + self.parser.phase = self.parser.phases["beforeHtml"] + + def processCharacters(self, token): + self.parser.parseError("expected-doctype-but-got-chars") + self.anythingElse() + return token + + def processStartTag(self, token): + self.parser.parseError("expected-doctype-but-got-start-tag", + {"name": token["name"]}) + self.anythingElse() + return token + + def processEndTag(self, token): + self.parser.parseError("expected-doctype-but-got-end-tag", + {"name": token["name"]}) + self.anythingElse() + return token + + def processEOF(self): + self.parser.parseError("expected-doctype-but-got-eof") + self.anythingElse() + return True + + class BeforeHtmlPhase(Phase): + # helper methods + def insertHtmlElement(self): + self.tree.insertRoot(impliedTagToken("html", "StartTag")) + self.parser.phase = self.parser.phases["beforeHead"] + + # other + def processEOF(self): + self.insertHtmlElement() + return True + + def processComment(self, token): + self.tree.insertComment(token, self.tree.document) + + def processSpaceCharacters(self, token): + pass + + def processCharacters(self, token): + self.insertHtmlElement() + return token + + def processStartTag(self, token): + if token["name"] == "html": + self.parser.firstStartTag = True + self.insertHtmlElement() + return token + + def processEndTag(self, token): + if token["name"] not in ("head", "body", "html", "br"): + self.parser.parseError("unexpected-end-tag-before-html", + {"name": token["name"]}) + else: + self.insertHtmlElement() + return token + + class BeforeHeadPhase(Phase): + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + + self.startTagHandler = _utils.MethodDispatcher([ + ("html", self.startTagHtml), + ("head", self.startTagHead) + ]) + self.startTagHandler.default = self.startTagOther + + self.endTagHandler = _utils.MethodDispatcher([ + (("head", "body", "html", "br"), self.endTagImplyHead) + ]) + self.endTagHandler.default = self.endTagOther + + def processEOF(self): + self.startTagHead(impliedTagToken("head", "StartTag")) + return True + + def processSpaceCharacters(self, token): + pass + + def processCharacters(self, token): + self.startTagHead(impliedTagToken("head", "StartTag")) + return token + + def startTagHtml(self, token): + return self.parser.phases["inBody"].processStartTag(token) + + def startTagHead(self, token): + self.tree.insertElement(token) + self.tree.headPointer = self.tree.openElements[-1] + self.parser.phase = self.parser.phases["inHead"] + + def startTagOther(self, token): + self.startTagHead(impliedTagToken("head", "StartTag")) + return token + + def endTagImplyHead(self, token): + self.startTagHead(impliedTagToken("head", "StartTag")) + return token + + def endTagOther(self, token): + self.parser.parseError("end-tag-after-implied-root", + {"name": token["name"]}) + + class InHeadPhase(Phase): + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + + self.startTagHandler = _utils.MethodDispatcher([ + ("html", self.startTagHtml), + ("title", self.startTagTitle), + (("noframes", "style"), self.startTagNoFramesStyle), + ("noscript", self.startTagNoscript), + ("script", self.startTagScript), + (("base", "basefont", "bgsound", "command", "link"), + self.startTagBaseLinkCommand), + ("meta", self.startTagMeta), + ("head", self.startTagHead) + ]) + self.startTagHandler.default = self.startTagOther + + self.endTagHandler = _utils.MethodDispatcher([ + ("head", self.endTagHead), + (("br", "html", "body"), self.endTagHtmlBodyBr) + ]) + self.endTagHandler.default = self.endTagOther + + # the real thing + def processEOF(self): + self.anythingElse() + return True + + def processCharacters(self, token): + self.anythingElse() + return token + + def startTagHtml(self, token): + return self.parser.phases["inBody"].processStartTag(token) + + def startTagHead(self, token): + self.parser.parseError("two-heads-are-not-better-than-one") + + def startTagBaseLinkCommand(self, token): + self.tree.insertElement(token) + self.tree.openElements.pop() + token["selfClosingAcknowledged"] = True + + def startTagMeta(self, token): + self.tree.insertElement(token) + self.tree.openElements.pop() + token["selfClosingAcknowledged"] = True + + attributes = token["data"] + if self.parser.tokenizer.stream.charEncoding[1] == "tentative": + if "charset" in attributes: + self.parser.tokenizer.stream.changeEncoding(attributes["charset"]) + elif ("content" in attributes and + "http-equiv" in attributes and + attributes["http-equiv"].lower() == "content-type"): + # Encoding it as UTF-8 here is a hack, as really we should pass + # the abstract Unicode string, and just use the + # ContentAttrParser on that, but using UTF-8 allows all chars + # to be encoded and as a ASCII-superset works. + data = _inputstream.EncodingBytes(attributes["content"].encode("utf-8")) + parser = _inputstream.ContentAttrParser(data) + codec = parser.parse() + self.parser.tokenizer.stream.changeEncoding(codec) + + def startTagTitle(self, token): + self.parser.parseRCDataRawtext(token, "RCDATA") + + def startTagNoFramesStyle(self, token): + # Need to decide whether to implement the scripting-disabled case + self.parser.parseRCDataRawtext(token, "RAWTEXT") + + def startTagNoscript(self, token): + if self.parser.scripting: + self.parser.parseRCDataRawtext(token, "RAWTEXT") + else: + self.tree.insertElement(token) + self.parser.phase = self.parser.phases["inHeadNoscript"] + + def startTagScript(self, token): + self.tree.insertElement(token) + self.parser.tokenizer.state = self.parser.tokenizer.scriptDataState + self.parser.originalPhase = self.parser.phase + self.parser.phase = self.parser.phases["text"] + + def startTagOther(self, token): + self.anythingElse() + return token + + def endTagHead(self, token): + node = self.parser.tree.openElements.pop() + assert node.name == "head", "Expected head got %s" % node.name + self.parser.phase = self.parser.phases["afterHead"] + + def endTagHtmlBodyBr(self, token): + self.anythingElse() + return token + + def endTagOther(self, token): + self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) + + def anythingElse(self): + self.endTagHead(impliedTagToken("head")) + + class InHeadNoscriptPhase(Phase): + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + + self.startTagHandler = _utils.MethodDispatcher([ + ("html", self.startTagHtml), + (("basefont", "bgsound", "link", "meta", "noframes", "style"), self.startTagBaseLinkCommand), + (("head", "noscript"), self.startTagHeadNoscript), + ]) + self.startTagHandler.default = self.startTagOther + + self.endTagHandler = _utils.MethodDispatcher([ + ("noscript", self.endTagNoscript), + ("br", self.endTagBr), + ]) + self.endTagHandler.default = self.endTagOther + + def processEOF(self): + self.parser.parseError("eof-in-head-noscript") + self.anythingElse() + return True + + def processComment(self, token): + return self.parser.phases["inHead"].processComment(token) + + def processCharacters(self, token): + self.parser.parseError("char-in-head-noscript") + self.anythingElse() + return token + + def processSpaceCharacters(self, token): + return self.parser.phases["inHead"].processSpaceCharacters(token) + + def startTagHtml(self, token): + return self.parser.phases["inBody"].processStartTag(token) + + def startTagBaseLinkCommand(self, token): + return self.parser.phases["inHead"].processStartTag(token) + + def startTagHeadNoscript(self, token): + self.parser.parseError("unexpected-start-tag", {"name": token["name"]}) + + def startTagOther(self, token): + self.parser.parseError("unexpected-inhead-noscript-tag", {"name": token["name"]}) + self.anythingElse() + return token + + def endTagNoscript(self, token): + node = self.parser.tree.openElements.pop() + assert node.name == "noscript", "Expected noscript got %s" % node.name + self.parser.phase = self.parser.phases["inHead"] + + def endTagBr(self, token): + self.parser.parseError("unexpected-inhead-noscript-tag", {"name": token["name"]}) + self.anythingElse() + return token + + def endTagOther(self, token): + self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) + + def anythingElse(self): + # Caller must raise parse error first! + self.endTagNoscript(impliedTagToken("noscript")) + + class AfterHeadPhase(Phase): + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + + self.startTagHandler = _utils.MethodDispatcher([ + ("html", self.startTagHtml), + ("body", self.startTagBody), + ("frameset", self.startTagFrameset), + (("base", "basefont", "bgsound", "link", "meta", "noframes", "script", + "style", "title"), + self.startTagFromHead), + ("head", self.startTagHead) + ]) + self.startTagHandler.default = self.startTagOther + self.endTagHandler = _utils.MethodDispatcher([(("body", "html", "br"), + self.endTagHtmlBodyBr)]) + self.endTagHandler.default = self.endTagOther + + def processEOF(self): + self.anythingElse() + return True + + def processCharacters(self, token): + self.anythingElse() + return token + + def startTagHtml(self, token): + return self.parser.phases["inBody"].processStartTag(token) + + def startTagBody(self, token): + self.parser.framesetOK = False + self.tree.insertElement(token) + self.parser.phase = self.parser.phases["inBody"] + + def startTagFrameset(self, token): + self.tree.insertElement(token) + self.parser.phase = self.parser.phases["inFrameset"] + + def startTagFromHead(self, token): + self.parser.parseError("unexpected-start-tag-out-of-my-head", + {"name": token["name"]}) + self.tree.openElements.append(self.tree.headPointer) + self.parser.phases["inHead"].processStartTag(token) + for node in self.tree.openElements[::-1]: + if node.name == "head": + self.tree.openElements.remove(node) + break + + def startTagHead(self, token): + self.parser.parseError("unexpected-start-tag", {"name": token["name"]}) + + def startTagOther(self, token): + self.anythingElse() + return token + + def endTagHtmlBodyBr(self, token): + self.anythingElse() + return token + + def endTagOther(self, token): + self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) + + def anythingElse(self): + self.tree.insertElement(impliedTagToken("body", "StartTag")) + self.parser.phase = self.parser.phases["inBody"] + self.parser.framesetOK = True + + class InBodyPhase(Phase): + # http://www.whatwg.org/specs/web-apps/current-work/#parsing-main-inbody + # the really-really-really-very crazy mode + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + + # Set this to the default handler + self.processSpaceCharacters = self.processSpaceCharactersNonPre + + self.startTagHandler = _utils.MethodDispatcher([ + ("html", self.startTagHtml), + (("base", "basefont", "bgsound", "command", "link", "meta", + "script", "style", "title"), + self.startTagProcessInHead), + ("body", self.startTagBody), + ("frameset", self.startTagFrameset), + (("address", "article", "aside", "blockquote", "center", "details", + "dir", "div", "dl", "fieldset", "figcaption", "figure", + "footer", "header", "hgroup", "main", "menu", "nav", "ol", "p", + "section", "summary", "ul"), + self.startTagCloseP), + (headingElements, self.startTagHeading), + (("pre", "listing"), self.startTagPreListing), + ("form", self.startTagForm), + (("li", "dd", "dt"), self.startTagListItem), + ("plaintext", self.startTagPlaintext), + ("a", self.startTagA), + (("b", "big", "code", "em", "font", "i", "s", "small", "strike", + "strong", "tt", "u"), self.startTagFormatting), + ("nobr", self.startTagNobr), + ("button", self.startTagButton), + (("applet", "marquee", "object"), self.startTagAppletMarqueeObject), + ("xmp", self.startTagXmp), + ("table", self.startTagTable), + (("area", "br", "embed", "img", "keygen", "wbr"), + self.startTagVoidFormatting), + (("param", "source", "track"), self.startTagParamSource), + ("input", self.startTagInput), + ("hr", self.startTagHr), + ("image", self.startTagImage), + ("isindex", self.startTagIsIndex), + ("textarea", self.startTagTextarea), + ("iframe", self.startTagIFrame), + ("noscript", self.startTagNoscript), + (("noembed", "noframes"), self.startTagRawtext), + ("select", self.startTagSelect), + (("rp", "rt"), self.startTagRpRt), + (("option", "optgroup"), self.startTagOpt), + (("math"), self.startTagMath), + (("svg"), self.startTagSvg), + (("caption", "col", "colgroup", "frame", "head", + "tbody", "td", "tfoot", "th", "thead", + "tr"), self.startTagMisplaced) + ]) + self.startTagHandler.default = self.startTagOther + + self.endTagHandler = _utils.MethodDispatcher([ + ("body", self.endTagBody), + ("html", self.endTagHtml), + (("address", "article", "aside", "blockquote", "button", "center", + "details", "dialog", "dir", "div", "dl", "fieldset", "figcaption", "figure", + "footer", "header", "hgroup", "listing", "main", "menu", "nav", "ol", "pre", + "section", "summary", "ul"), self.endTagBlock), + ("form", self.endTagForm), + ("p", self.endTagP), + (("dd", "dt", "li"), self.endTagListItem), + (headingElements, self.endTagHeading), + (("a", "b", "big", "code", "em", "font", "i", "nobr", "s", "small", + "strike", "strong", "tt", "u"), self.endTagFormatting), + (("applet", "marquee", "object"), self.endTagAppletMarqueeObject), + ("br", self.endTagBr), + ]) + self.endTagHandler.default = self.endTagOther + + def isMatchingFormattingElement(self, node1, node2): + return (node1.name == node2.name and + node1.namespace == node2.namespace and + node1.attributes == node2.attributes) + + # helper + def addFormattingElement(self, token): + self.tree.insertElement(token) + element = self.tree.openElements[-1] + + matchingElements = [] + for node in self.tree.activeFormattingElements[::-1]: + if node is Marker: + break + elif self.isMatchingFormattingElement(node, element): + matchingElements.append(node) + + assert len(matchingElements) <= 3 + if len(matchingElements) == 3: + self.tree.activeFormattingElements.remove(matchingElements[-1]) + self.tree.activeFormattingElements.append(element) + + # the real deal + def processEOF(self): + allowed_elements = frozenset(("dd", "dt", "li", "p", "tbody", "td", + "tfoot", "th", "thead", "tr", "body", + "html")) + for node in self.tree.openElements[::-1]: + if node.name not in allowed_elements: + self.parser.parseError("expected-closing-tag-but-got-eof") + break + # Stop parsing + + def processSpaceCharactersDropNewline(self, token): + # Sometimes (start of <pre>, <listing>, and <textarea> blocks) we + # want to drop leading newlines + data = token["data"] + self.processSpaceCharacters = self.processSpaceCharactersNonPre + if (data.startswith("\n") and + self.tree.openElements[-1].name in ("pre", "listing", "textarea") and + not self.tree.openElements[-1].hasContent()): + data = data[1:] + if data: + self.tree.reconstructActiveFormattingElements() + self.tree.insertText(data) + + def processCharacters(self, token): + if token["data"] == "\u0000": + # The tokenizer should always emit null on its own + return + self.tree.reconstructActiveFormattingElements() + self.tree.insertText(token["data"]) + # This must be bad for performance + if (self.parser.framesetOK and + any([char not in spaceCharacters + for char in token["data"]])): + self.parser.framesetOK = False + + def processSpaceCharactersNonPre(self, token): + self.tree.reconstructActiveFormattingElements() + self.tree.insertText(token["data"]) + + def startTagProcessInHead(self, token): + return self.parser.phases["inHead"].processStartTag(token) + + def startTagBody(self, token): + self.parser.parseError("unexpected-start-tag", {"name": "body"}) + if (len(self.tree.openElements) == 1 or + self.tree.openElements[1].name != "body"): + assert self.parser.innerHTML + else: + self.parser.framesetOK = False + for attr, value in token["data"].items(): + if attr not in self.tree.openElements[1].attributes: + self.tree.openElements[1].attributes[attr] = value + + def startTagFrameset(self, token): + self.parser.parseError("unexpected-start-tag", {"name": "frameset"}) + if (len(self.tree.openElements) == 1 or self.tree.openElements[1].name != "body"): + assert self.parser.innerHTML + elif not self.parser.framesetOK: + pass + else: + if self.tree.openElements[1].parent: + self.tree.openElements[1].parent.removeChild(self.tree.openElements[1]) + while self.tree.openElements[-1].name != "html": + self.tree.openElements.pop() + self.tree.insertElement(token) + self.parser.phase = self.parser.phases["inFrameset"] + + def startTagCloseP(self, token): + if self.tree.elementInScope("p", variant="button"): + self.endTagP(impliedTagToken("p")) + self.tree.insertElement(token) + + def startTagPreListing(self, token): + if self.tree.elementInScope("p", variant="button"): + self.endTagP(impliedTagToken("p")) + self.tree.insertElement(token) + self.parser.framesetOK = False + self.processSpaceCharacters = self.processSpaceCharactersDropNewline + + def startTagForm(self, token): + if self.tree.formPointer: + self.parser.parseError("unexpected-start-tag", {"name": "form"}) + else: + if self.tree.elementInScope("p", variant="button"): + self.endTagP(impliedTagToken("p")) + self.tree.insertElement(token) + self.tree.formPointer = self.tree.openElements[-1] + + def startTagListItem(self, token): + self.parser.framesetOK = False + + stopNamesMap = {"li": ["li"], + "dt": ["dt", "dd"], + "dd": ["dt", "dd"]} + stopNames = stopNamesMap[token["name"]] + for node in reversed(self.tree.openElements): + if node.name in stopNames: + self.parser.phase.processEndTag( + impliedTagToken(node.name, "EndTag")) + break + if (node.nameTuple in specialElements and + node.name not in ("address", "div", "p")): + break + + if self.tree.elementInScope("p", variant="button"): + self.parser.phase.processEndTag( + impliedTagToken("p", "EndTag")) + + self.tree.insertElement(token) + + def startTagPlaintext(self, token): + if self.tree.elementInScope("p", variant="button"): + self.endTagP(impliedTagToken("p")) + self.tree.insertElement(token) + self.parser.tokenizer.state = self.parser.tokenizer.plaintextState + + def startTagHeading(self, token): + if self.tree.elementInScope("p", variant="button"): + self.endTagP(impliedTagToken("p")) + if self.tree.openElements[-1].name in headingElements: + self.parser.parseError("unexpected-start-tag", {"name": token["name"]}) + self.tree.openElements.pop() + self.tree.insertElement(token) + + def startTagA(self, token): + afeAElement = self.tree.elementInActiveFormattingElements("a") + if afeAElement: + self.parser.parseError("unexpected-start-tag-implies-end-tag", + {"startName": "a", "endName": "a"}) + self.endTagFormatting(impliedTagToken("a")) + if afeAElement in self.tree.openElements: + self.tree.openElements.remove(afeAElement) + if afeAElement in self.tree.activeFormattingElements: + self.tree.activeFormattingElements.remove(afeAElement) + self.tree.reconstructActiveFormattingElements() + self.addFormattingElement(token) + + def startTagFormatting(self, token): + self.tree.reconstructActiveFormattingElements() + self.addFormattingElement(token) + + def startTagNobr(self, token): + self.tree.reconstructActiveFormattingElements() + if self.tree.elementInScope("nobr"): + self.parser.parseError("unexpected-start-tag-implies-end-tag", + {"startName": "nobr", "endName": "nobr"}) + self.processEndTag(impliedTagToken("nobr")) + # XXX Need tests that trigger the following + self.tree.reconstructActiveFormattingElements() + self.addFormattingElement(token) + + def startTagButton(self, token): + if self.tree.elementInScope("button"): + self.parser.parseError("unexpected-start-tag-implies-end-tag", + {"startName": "button", "endName": "button"}) + self.processEndTag(impliedTagToken("button")) + return token + else: + self.tree.reconstructActiveFormattingElements() + self.tree.insertElement(token) + self.parser.framesetOK = False + + def startTagAppletMarqueeObject(self, token): + self.tree.reconstructActiveFormattingElements() + self.tree.insertElement(token) + self.tree.activeFormattingElements.append(Marker) + self.parser.framesetOK = False + + def startTagXmp(self, token): + if self.tree.elementInScope("p", variant="button"): + self.endTagP(impliedTagToken("p")) + self.tree.reconstructActiveFormattingElements() + self.parser.framesetOK = False + self.parser.parseRCDataRawtext(token, "RAWTEXT") + + def startTagTable(self, token): + if self.parser.compatMode != "quirks": + if self.tree.elementInScope("p", variant="button"): + self.processEndTag(impliedTagToken("p")) + self.tree.insertElement(token) + self.parser.framesetOK = False + self.parser.phase = self.parser.phases["inTable"] + + def startTagVoidFormatting(self, token): + self.tree.reconstructActiveFormattingElements() + self.tree.insertElement(token) + self.tree.openElements.pop() + token["selfClosingAcknowledged"] = True + self.parser.framesetOK = False + + def startTagInput(self, token): + framesetOK = self.parser.framesetOK + self.startTagVoidFormatting(token) + if ("type" in token["data"] and + token["data"]["type"].translate(asciiUpper2Lower) == "hidden"): + # input type=hidden doesn't change framesetOK + self.parser.framesetOK = framesetOK + + def startTagParamSource(self, token): + self.tree.insertElement(token) + self.tree.openElements.pop() + token["selfClosingAcknowledged"] = True + + def startTagHr(self, token): + if self.tree.elementInScope("p", variant="button"): + self.endTagP(impliedTagToken("p")) + self.tree.insertElement(token) + self.tree.openElements.pop() + token["selfClosingAcknowledged"] = True + self.parser.framesetOK = False + + def startTagImage(self, token): + # No really... + self.parser.parseError("unexpected-start-tag-treated-as", + {"originalName": "image", "newName": "img"}) + self.processStartTag(impliedTagToken("img", "StartTag", + attributes=token["data"], + selfClosing=token["selfClosing"])) + + def startTagIsIndex(self, token): + self.parser.parseError("deprecated-tag", {"name": "isindex"}) + if self.tree.formPointer: + return + form_attrs = {} + if "action" in token["data"]: + form_attrs["action"] = token["data"]["action"] + self.processStartTag(impliedTagToken("form", "StartTag", + attributes=form_attrs)) + self.processStartTag(impliedTagToken("hr", "StartTag")) + self.processStartTag(impliedTagToken("label", "StartTag")) + # XXX Localization ... + if "prompt" in token["data"]: + prompt = token["data"]["prompt"] + else: + prompt = "This is a searchable index. Enter search keywords: " + self.processCharacters( + {"type": tokenTypes["Characters"], "data": prompt}) + attributes = token["data"].copy() + if "action" in attributes: + del attributes["action"] + if "prompt" in attributes: + del attributes["prompt"] + attributes["name"] = "isindex" + self.processStartTag(impliedTagToken("input", "StartTag", + attributes=attributes, + selfClosing=token["selfClosing"])) + self.processEndTag(impliedTagToken("label")) + self.processStartTag(impliedTagToken("hr", "StartTag")) + self.processEndTag(impliedTagToken("form")) + + def startTagTextarea(self, token): + self.tree.insertElement(token) + self.parser.tokenizer.state = self.parser.tokenizer.rcdataState + self.processSpaceCharacters = self.processSpaceCharactersDropNewline + self.parser.framesetOK = False + + def startTagIFrame(self, token): + self.parser.framesetOK = False + self.startTagRawtext(token) + + def startTagNoscript(self, token): + if self.parser.scripting: + self.startTagRawtext(token) + else: + self.startTagOther(token) + + def startTagRawtext(self, token): + """iframe, noembed noframes, noscript(if scripting enabled)""" + self.parser.parseRCDataRawtext(token, "RAWTEXT") + + def startTagOpt(self, token): + if self.tree.openElements[-1].name == "option": + self.parser.phase.processEndTag(impliedTagToken("option")) + self.tree.reconstructActiveFormattingElements() + self.parser.tree.insertElement(token) + + def startTagSelect(self, token): + self.tree.reconstructActiveFormattingElements() + self.tree.insertElement(token) + self.parser.framesetOK = False + if self.parser.phase in (self.parser.phases["inTable"], + self.parser.phases["inCaption"], + self.parser.phases["inColumnGroup"], + self.parser.phases["inTableBody"], + self.parser.phases["inRow"], + self.parser.phases["inCell"]): + self.parser.phase = self.parser.phases["inSelectInTable"] + else: + self.parser.phase = self.parser.phases["inSelect"] + + def startTagRpRt(self, token): + if self.tree.elementInScope("ruby"): + self.tree.generateImpliedEndTags() + if self.tree.openElements[-1].name != "ruby": + self.parser.parseError() + self.tree.insertElement(token) + + def startTagMath(self, token): + self.tree.reconstructActiveFormattingElements() + self.parser.adjustMathMLAttributes(token) + self.parser.adjustForeignAttributes(token) + token["namespace"] = namespaces["mathml"] + self.tree.insertElement(token) + # Need to get the parse error right for the case where the token + # has a namespace not equal to the xmlns attribute + if token["selfClosing"]: + self.tree.openElements.pop() + token["selfClosingAcknowledged"] = True + + def startTagSvg(self, token): + self.tree.reconstructActiveFormattingElements() + self.parser.adjustSVGAttributes(token) + self.parser.adjustForeignAttributes(token) + token["namespace"] = namespaces["svg"] + self.tree.insertElement(token) + # Need to get the parse error right for the case where the token + # has a namespace not equal to the xmlns attribute + if token["selfClosing"]: + self.tree.openElements.pop() + token["selfClosingAcknowledged"] = True + + def startTagMisplaced(self, token): + """ Elements that should be children of other elements that have a + different insertion mode; here they are ignored + "caption", "col", "colgroup", "frame", "frameset", "head", + "option", "optgroup", "tbody", "td", "tfoot", "th", "thead", + "tr", "noscript" + """ + self.parser.parseError("unexpected-start-tag-ignored", {"name": token["name"]}) + + def startTagOther(self, token): + self.tree.reconstructActiveFormattingElements() + self.tree.insertElement(token) + + def endTagP(self, token): + if not self.tree.elementInScope("p", variant="button"): + self.startTagCloseP(impliedTagToken("p", "StartTag")) + self.parser.parseError("unexpected-end-tag", {"name": "p"}) + self.endTagP(impliedTagToken("p", "EndTag")) + else: + self.tree.generateImpliedEndTags("p") + if self.tree.openElements[-1].name != "p": + self.parser.parseError("unexpected-end-tag", {"name": "p"}) + node = self.tree.openElements.pop() + while node.name != "p": + node = self.tree.openElements.pop() + + def endTagBody(self, token): + if not self.tree.elementInScope("body"): + self.parser.parseError() + return + elif self.tree.openElements[-1].name != "body": + for node in self.tree.openElements[2:]: + if node.name not in frozenset(("dd", "dt", "li", "optgroup", + "option", "p", "rp", "rt", + "tbody", "td", "tfoot", + "th", "thead", "tr", "body", + "html")): + # Not sure this is the correct name for the parse error + self.parser.parseError( + "expected-one-end-tag-but-got-another", + {"gotName": "body", "expectedName": node.name}) + break + self.parser.phase = self.parser.phases["afterBody"] + + def endTagHtml(self, token): + # We repeat the test for the body end tag token being ignored here + if self.tree.elementInScope("body"): + self.endTagBody(impliedTagToken("body")) + return token + + def endTagBlock(self, token): + # Put us back in the right whitespace handling mode + if token["name"] == "pre": + self.processSpaceCharacters = self.processSpaceCharactersNonPre + inScope = self.tree.elementInScope(token["name"]) + if inScope: + self.tree.generateImpliedEndTags() + if self.tree.openElements[-1].name != token["name"]: + self.parser.parseError("end-tag-too-early", {"name": token["name"]}) + if inScope: + node = self.tree.openElements.pop() + while node.name != token["name"]: + node = self.tree.openElements.pop() + + def endTagForm(self, token): + node = self.tree.formPointer + self.tree.formPointer = None + if node is None or not self.tree.elementInScope(node): + self.parser.parseError("unexpected-end-tag", + {"name": "form"}) + else: + self.tree.generateImpliedEndTags() + if self.tree.openElements[-1] != node: + self.parser.parseError("end-tag-too-early-ignored", + {"name": "form"}) + self.tree.openElements.remove(node) + + def endTagListItem(self, token): + if token["name"] == "li": + variant = "list" + else: + variant = None + if not self.tree.elementInScope(token["name"], variant=variant): + self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) + else: + self.tree.generateImpliedEndTags(exclude=token["name"]) + if self.tree.openElements[-1].name != token["name"]: + self.parser.parseError( + "end-tag-too-early", + {"name": token["name"]}) + node = self.tree.openElements.pop() + while node.name != token["name"]: + node = self.tree.openElements.pop() + + def endTagHeading(self, token): + for item in headingElements: + if self.tree.elementInScope(item): + self.tree.generateImpliedEndTags() + break + if self.tree.openElements[-1].name != token["name"]: + self.parser.parseError("end-tag-too-early", {"name": token["name"]}) + + for item in headingElements: + if self.tree.elementInScope(item): + item = self.tree.openElements.pop() + while item.name not in headingElements: + item = self.tree.openElements.pop() + break + + def endTagFormatting(self, token): + """The much-feared adoption agency algorithm""" + # http://svn.whatwg.org/webapps/complete.html#adoptionAgency revision 7867 + # XXX Better parseError messages appreciated. + + # Step 1 + outerLoopCounter = 0 + + # Step 2 + while outerLoopCounter < 8: + + # Step 3 + outerLoopCounter += 1 + + # Step 4: + + # Let the formatting element be the last element in + # the list of active formatting elements that: + # - is between the end of the list and the last scope + # marker in the list, if any, or the start of the list + # otherwise, and + # - has the same tag name as the token. + formattingElement = self.tree.elementInActiveFormattingElements( + token["name"]) + if (not formattingElement or + (formattingElement in self.tree.openElements and + not self.tree.elementInScope(formattingElement.name))): + # If there is no such node, then abort these steps + # and instead act as described in the "any other + # end tag" entry below. + self.endTagOther(token) + return + + # Otherwise, if there is such a node, but that node is + # not in the stack of open elements, then this is a + # parse error; remove the element from the list, and + # abort these steps. + elif formattingElement not in self.tree.openElements: + self.parser.parseError("adoption-agency-1.2", {"name": token["name"]}) + self.tree.activeFormattingElements.remove(formattingElement) + return + + # Otherwise, if there is such a node, and that node is + # also in the stack of open elements, but the element + # is not in scope, then this is a parse error; ignore + # the token, and abort these steps. + elif not self.tree.elementInScope(formattingElement.name): + self.parser.parseError("adoption-agency-4.4", {"name": token["name"]}) + return + + # Otherwise, there is a formatting element and that + # element is in the stack and is in scope. If the + # element is not the current node, this is a parse + # error. In any case, proceed with the algorithm as + # written in the following steps. + else: + if formattingElement != self.tree.openElements[-1]: + self.parser.parseError("adoption-agency-1.3", {"name": token["name"]}) + + # Step 5: + + # Let the furthest block be the topmost node in the + # stack of open elements that is lower in the stack + # than the formatting element, and is an element in + # the special category. There might not be one. + afeIndex = self.tree.openElements.index(formattingElement) + furthestBlock = None + for element in self.tree.openElements[afeIndex:]: + if element.nameTuple in specialElements: + furthestBlock = element + break + + # Step 6: + + # If there is no furthest block, then the UA must + # first pop all the nodes from the bottom of the stack + # of open elements, from the current node up to and + # including the formatting element, then remove the + # formatting element from the list of active + # formatting elements, and finally abort these steps. + if furthestBlock is None: + element = self.tree.openElements.pop() + while element != formattingElement: + element = self.tree.openElements.pop() + self.tree.activeFormattingElements.remove(element) + return + + # Step 7 + commonAncestor = self.tree.openElements[afeIndex - 1] + + # Step 8: + # The bookmark is supposed to help us identify where to reinsert + # nodes in step 15. We have to ensure that we reinsert nodes after + # the node before the active formatting element. Note the bookmark + # can move in step 9.7 + bookmark = self.tree.activeFormattingElements.index(formattingElement) + + # Step 9 + lastNode = node = furthestBlock + innerLoopCounter = 0 + + index = self.tree.openElements.index(node) + while innerLoopCounter < 3: + innerLoopCounter += 1 + # Node is element before node in open elements + index -= 1 + node = self.tree.openElements[index] + if node not in self.tree.activeFormattingElements: + self.tree.openElements.remove(node) + continue + # Step 9.6 + if node == formattingElement: + break + # Step 9.7 + if lastNode == furthestBlock: + bookmark = self.tree.activeFormattingElements.index(node) + 1 + # Step 9.8 + clone = node.cloneNode() + # Replace node with clone + self.tree.activeFormattingElements[ + self.tree.activeFormattingElements.index(node)] = clone + self.tree.openElements[ + self.tree.openElements.index(node)] = clone + node = clone + # Step 9.9 + # Remove lastNode from its parents, if any + if lastNode.parent: + lastNode.parent.removeChild(lastNode) + node.appendChild(lastNode) + # Step 9.10 + lastNode = node + + # Step 10 + # Foster parent lastNode if commonAncestor is a + # table, tbody, tfoot, thead, or tr we need to foster + # parent the lastNode + if lastNode.parent: + lastNode.parent.removeChild(lastNode) + + if commonAncestor.name in frozenset(("table", "tbody", "tfoot", "thead", "tr")): + parent, insertBefore = self.tree.getTableMisnestedNodePosition() + parent.insertBefore(lastNode, insertBefore) + else: + commonAncestor.appendChild(lastNode) + + # Step 11 + clone = formattingElement.cloneNode() + + # Step 12 + furthestBlock.reparentChildren(clone) + + # Step 13 + furthestBlock.appendChild(clone) + + # Step 14 + self.tree.activeFormattingElements.remove(formattingElement) + self.tree.activeFormattingElements.insert(bookmark, clone) + + # Step 15 + self.tree.openElements.remove(formattingElement) + self.tree.openElements.insert( + self.tree.openElements.index(furthestBlock) + 1, clone) + + def endTagAppletMarqueeObject(self, token): + if self.tree.elementInScope(token["name"]): + self.tree.generateImpliedEndTags() + if self.tree.openElements[-1].name != token["name"]: + self.parser.parseError("end-tag-too-early", {"name": token["name"]}) + + if self.tree.elementInScope(token["name"]): + element = self.tree.openElements.pop() + while element.name != token["name"]: + element = self.tree.openElements.pop() + self.tree.clearActiveFormattingElements() + + def endTagBr(self, token): + self.parser.parseError("unexpected-end-tag-treated-as", + {"originalName": "br", "newName": "br element"}) + self.tree.reconstructActiveFormattingElements() + self.tree.insertElement(impliedTagToken("br", "StartTag")) + self.tree.openElements.pop() + + def endTagOther(self, token): + for node in self.tree.openElements[::-1]: + if node.name == token["name"]: + self.tree.generateImpliedEndTags(exclude=token["name"]) + if self.tree.openElements[-1].name != token["name"]: + self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) + while self.tree.openElements.pop() != node: + pass + break + else: + if node.nameTuple in specialElements: + self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) + break + + class TextPhase(Phase): + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + self.startTagHandler = _utils.MethodDispatcher([]) + self.startTagHandler.default = self.startTagOther + self.endTagHandler = _utils.MethodDispatcher([ + ("script", self.endTagScript)]) + self.endTagHandler.default = self.endTagOther + + def processCharacters(self, token): + self.tree.insertText(token["data"]) + + def processEOF(self): + self.parser.parseError("expected-named-closing-tag-but-got-eof", + {"name": self.tree.openElements[-1].name}) + self.tree.openElements.pop() + self.parser.phase = self.parser.originalPhase + return True + + def startTagOther(self, token): + assert False, "Tried to process start tag %s in RCDATA/RAWTEXT mode" % token['name'] + + def endTagScript(self, token): + node = self.tree.openElements.pop() + assert node.name == "script" + self.parser.phase = self.parser.originalPhase + # The rest of this method is all stuff that only happens if + # document.write works + + def endTagOther(self, token): + self.tree.openElements.pop() + self.parser.phase = self.parser.originalPhase + + class InTablePhase(Phase): + # http://www.whatwg.org/specs/web-apps/current-work/#in-table + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + self.startTagHandler = _utils.MethodDispatcher([ + ("html", self.startTagHtml), + ("caption", self.startTagCaption), + ("colgroup", self.startTagColgroup), + ("col", self.startTagCol), + (("tbody", "tfoot", "thead"), self.startTagRowGroup), + (("td", "th", "tr"), self.startTagImplyTbody), + ("table", self.startTagTable), + (("style", "script"), self.startTagStyleScript), + ("input", self.startTagInput), + ("form", self.startTagForm) + ]) + self.startTagHandler.default = self.startTagOther + + self.endTagHandler = _utils.MethodDispatcher([ + ("table", self.endTagTable), + (("body", "caption", "col", "colgroup", "html", "tbody", "td", + "tfoot", "th", "thead", "tr"), self.endTagIgnore) + ]) + self.endTagHandler.default = self.endTagOther + + # helper methods + def clearStackToTableContext(self): + # "clear the stack back to a table context" + while self.tree.openElements[-1].name not in ("table", "html"): + # self.parser.parseError("unexpected-implied-end-tag-in-table", + # {"name": self.tree.openElements[-1].name}) + self.tree.openElements.pop() + # When the current node is <html> it's an innerHTML case + + # processing methods + def processEOF(self): + if self.tree.openElements[-1].name != "html": + self.parser.parseError("eof-in-table") + else: + assert self.parser.innerHTML + # Stop parsing + + def processSpaceCharacters(self, token): + originalPhase = self.parser.phase + self.parser.phase = self.parser.phases["inTableText"] + self.parser.phase.originalPhase = originalPhase + self.parser.phase.processSpaceCharacters(token) + + def processCharacters(self, token): + originalPhase = self.parser.phase + self.parser.phase = self.parser.phases["inTableText"] + self.parser.phase.originalPhase = originalPhase + self.parser.phase.processCharacters(token) + + def insertText(self, token): + # If we get here there must be at least one non-whitespace character + # Do the table magic! + self.tree.insertFromTable = True + self.parser.phases["inBody"].processCharacters(token) + self.tree.insertFromTable = False + + def startTagCaption(self, token): + self.clearStackToTableContext() + self.tree.activeFormattingElements.append(Marker) + self.tree.insertElement(token) + self.parser.phase = self.parser.phases["inCaption"] + + def startTagColgroup(self, token): + self.clearStackToTableContext() + self.tree.insertElement(token) + self.parser.phase = self.parser.phases["inColumnGroup"] + + def startTagCol(self, token): + self.startTagColgroup(impliedTagToken("colgroup", "StartTag")) + return token + + def startTagRowGroup(self, token): + self.clearStackToTableContext() + self.tree.insertElement(token) + self.parser.phase = self.parser.phases["inTableBody"] + + def startTagImplyTbody(self, token): + self.startTagRowGroup(impliedTagToken("tbody", "StartTag")) + return token + + def startTagTable(self, token): + self.parser.parseError("unexpected-start-tag-implies-end-tag", + {"startName": "table", "endName": "table"}) + self.parser.phase.processEndTag(impliedTagToken("table")) + if not self.parser.innerHTML: + return token + + def startTagStyleScript(self, token): + return self.parser.phases["inHead"].processStartTag(token) + + def startTagInput(self, token): + if ("type" in token["data"] and + token["data"]["type"].translate(asciiUpper2Lower) == "hidden"): + self.parser.parseError("unexpected-hidden-input-in-table") + self.tree.insertElement(token) + # XXX associate with form + self.tree.openElements.pop() + else: + self.startTagOther(token) + + def startTagForm(self, token): + self.parser.parseError("unexpected-form-in-table") + if self.tree.formPointer is None: + self.tree.insertElement(token) + self.tree.formPointer = self.tree.openElements[-1] + self.tree.openElements.pop() + + def startTagOther(self, token): + self.parser.parseError("unexpected-start-tag-implies-table-voodoo", {"name": token["name"]}) + # Do the table magic! + self.tree.insertFromTable = True + self.parser.phases["inBody"].processStartTag(token) + self.tree.insertFromTable = False + + def endTagTable(self, token): + if self.tree.elementInScope("table", variant="table"): + self.tree.generateImpliedEndTags() + if self.tree.openElements[-1].name != "table": + self.parser.parseError("end-tag-too-early-named", + {"gotName": "table", + "expectedName": self.tree.openElements[-1].name}) + while self.tree.openElements[-1].name != "table": + self.tree.openElements.pop() + self.tree.openElements.pop() + self.parser.resetInsertionMode() + else: + # innerHTML case + assert self.parser.innerHTML + self.parser.parseError() + + def endTagIgnore(self, token): + self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) + + def endTagOther(self, token): + self.parser.parseError("unexpected-end-tag-implies-table-voodoo", {"name": token["name"]}) + # Do the table magic! + self.tree.insertFromTable = True + self.parser.phases["inBody"].processEndTag(token) + self.tree.insertFromTable = False + + class InTableTextPhase(Phase): + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + self.originalPhase = None + self.characterTokens = [] + + def flushCharacters(self): + data = "".join([item["data"] for item in self.characterTokens]) + if any([item not in spaceCharacters for item in data]): + token = {"type": tokenTypes["Characters"], "data": data} + self.parser.phases["inTable"].insertText(token) + elif data: + self.tree.insertText(data) + self.characterTokens = [] + + def processComment(self, token): + self.flushCharacters() + self.parser.phase = self.originalPhase + return token + + def processEOF(self): + self.flushCharacters() + self.parser.phase = self.originalPhase + return True + + def processCharacters(self, token): + if token["data"] == "\u0000": + return + self.characterTokens.append(token) + + def processSpaceCharacters(self, token): + # pretty sure we should never reach here + self.characterTokens.append(token) + # assert False + + def processStartTag(self, token): + self.flushCharacters() + self.parser.phase = self.originalPhase + return token + + def processEndTag(self, token): + self.flushCharacters() + self.parser.phase = self.originalPhase + return token + + class InCaptionPhase(Phase): + # http://www.whatwg.org/specs/web-apps/current-work/#in-caption + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + + self.startTagHandler = _utils.MethodDispatcher([ + ("html", self.startTagHtml), + (("caption", "col", "colgroup", "tbody", "td", "tfoot", "th", + "thead", "tr"), self.startTagTableElement) + ]) + self.startTagHandler.default = self.startTagOther + + self.endTagHandler = _utils.MethodDispatcher([ + ("caption", self.endTagCaption), + ("table", self.endTagTable), + (("body", "col", "colgroup", "html", "tbody", "td", "tfoot", "th", + "thead", "tr"), self.endTagIgnore) + ]) + self.endTagHandler.default = self.endTagOther + + def ignoreEndTagCaption(self): + return not self.tree.elementInScope("caption", variant="table") + + def processEOF(self): + self.parser.phases["inBody"].processEOF() + + def processCharacters(self, token): + return self.parser.phases["inBody"].processCharacters(token) + + def startTagTableElement(self, token): + self.parser.parseError() + # XXX Have to duplicate logic here to find out if the tag is ignored + ignoreEndTag = self.ignoreEndTagCaption() + self.parser.phase.processEndTag(impliedTagToken("caption")) + if not ignoreEndTag: + return token + + def startTagOther(self, token): + return self.parser.phases["inBody"].processStartTag(token) + + def endTagCaption(self, token): + if not self.ignoreEndTagCaption(): + # AT this code is quite similar to endTagTable in "InTable" + self.tree.generateImpliedEndTags() + if self.tree.openElements[-1].name != "caption": + self.parser.parseError("expected-one-end-tag-but-got-another", + {"gotName": "caption", + "expectedName": self.tree.openElements[-1].name}) + while self.tree.openElements[-1].name != "caption": + self.tree.openElements.pop() + self.tree.openElements.pop() + self.tree.clearActiveFormattingElements() + self.parser.phase = self.parser.phases["inTable"] + else: + # innerHTML case + assert self.parser.innerHTML + self.parser.parseError() + + def endTagTable(self, token): + self.parser.parseError() + ignoreEndTag = self.ignoreEndTagCaption() + self.parser.phase.processEndTag(impliedTagToken("caption")) + if not ignoreEndTag: + return token + + def endTagIgnore(self, token): + self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) + + def endTagOther(self, token): + return self.parser.phases["inBody"].processEndTag(token) + + class InColumnGroupPhase(Phase): + # http://www.whatwg.org/specs/web-apps/current-work/#in-column + + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + + self.startTagHandler = _utils.MethodDispatcher([ + ("html", self.startTagHtml), + ("col", self.startTagCol) + ]) + self.startTagHandler.default = self.startTagOther + + self.endTagHandler = _utils.MethodDispatcher([ + ("colgroup", self.endTagColgroup), + ("col", self.endTagCol) + ]) + self.endTagHandler.default = self.endTagOther + + def ignoreEndTagColgroup(self): + return self.tree.openElements[-1].name == "html" + + def processEOF(self): + if self.tree.openElements[-1].name == "html": + assert self.parser.innerHTML + return + else: + ignoreEndTag = self.ignoreEndTagColgroup() + self.endTagColgroup(impliedTagToken("colgroup")) + if not ignoreEndTag: + return True + + def processCharacters(self, token): + ignoreEndTag = self.ignoreEndTagColgroup() + self.endTagColgroup(impliedTagToken("colgroup")) + if not ignoreEndTag: + return token + + def startTagCol(self, token): + self.tree.insertElement(token) + self.tree.openElements.pop() + token["selfClosingAcknowledged"] = True + + def startTagOther(self, token): + ignoreEndTag = self.ignoreEndTagColgroup() + self.endTagColgroup(impliedTagToken("colgroup")) + if not ignoreEndTag: + return token + + def endTagColgroup(self, token): + if self.ignoreEndTagColgroup(): + # innerHTML case + assert self.parser.innerHTML + self.parser.parseError() + else: + self.tree.openElements.pop() + self.parser.phase = self.parser.phases["inTable"] + + def endTagCol(self, token): + self.parser.parseError("no-end-tag", {"name": "col"}) + + def endTagOther(self, token): + ignoreEndTag = self.ignoreEndTagColgroup() + self.endTagColgroup(impliedTagToken("colgroup")) + if not ignoreEndTag: + return token + + class InTableBodyPhase(Phase): + # http://www.whatwg.org/specs/web-apps/current-work/#in-table0 + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + self.startTagHandler = _utils.MethodDispatcher([ + ("html", self.startTagHtml), + ("tr", self.startTagTr), + (("td", "th"), self.startTagTableCell), + (("caption", "col", "colgroup", "tbody", "tfoot", "thead"), + self.startTagTableOther) + ]) + self.startTagHandler.default = self.startTagOther + + self.endTagHandler = _utils.MethodDispatcher([ + (("tbody", "tfoot", "thead"), self.endTagTableRowGroup), + ("table", self.endTagTable), + (("body", "caption", "col", "colgroup", "html", "td", "th", + "tr"), self.endTagIgnore) + ]) + self.endTagHandler.default = self.endTagOther + + # helper methods + def clearStackToTableBodyContext(self): + while self.tree.openElements[-1].name not in ("tbody", "tfoot", + "thead", "html"): + # self.parser.parseError("unexpected-implied-end-tag-in-table", + # {"name": self.tree.openElements[-1].name}) + self.tree.openElements.pop() + if self.tree.openElements[-1].name == "html": + assert self.parser.innerHTML + + # the rest + def processEOF(self): + self.parser.phases["inTable"].processEOF() + + def processSpaceCharacters(self, token): + return self.parser.phases["inTable"].processSpaceCharacters(token) + + def processCharacters(self, token): + return self.parser.phases["inTable"].processCharacters(token) + + def startTagTr(self, token): + self.clearStackToTableBodyContext() + self.tree.insertElement(token) + self.parser.phase = self.parser.phases["inRow"] + + def startTagTableCell(self, token): + self.parser.parseError("unexpected-cell-in-table-body", + {"name": token["name"]}) + self.startTagTr(impliedTagToken("tr", "StartTag")) + return token + + def startTagTableOther(self, token): + # XXX AT Any ideas on how to share this with endTagTable? + if (self.tree.elementInScope("tbody", variant="table") or + self.tree.elementInScope("thead", variant="table") or + self.tree.elementInScope("tfoot", variant="table")): + self.clearStackToTableBodyContext() + self.endTagTableRowGroup( + impliedTagToken(self.tree.openElements[-1].name)) + return token + else: + # innerHTML case + assert self.parser.innerHTML + self.parser.parseError() + + def startTagOther(self, token): + return self.parser.phases["inTable"].processStartTag(token) + + def endTagTableRowGroup(self, token): + if self.tree.elementInScope(token["name"], variant="table"): + self.clearStackToTableBodyContext() + self.tree.openElements.pop() + self.parser.phase = self.parser.phases["inTable"] + else: + self.parser.parseError("unexpected-end-tag-in-table-body", + {"name": token["name"]}) + + def endTagTable(self, token): + if (self.tree.elementInScope("tbody", variant="table") or + self.tree.elementInScope("thead", variant="table") or + self.tree.elementInScope("tfoot", variant="table")): + self.clearStackToTableBodyContext() + self.endTagTableRowGroup( + impliedTagToken(self.tree.openElements[-1].name)) + return token + else: + # innerHTML case + assert self.parser.innerHTML + self.parser.parseError() + + def endTagIgnore(self, token): + self.parser.parseError("unexpected-end-tag-in-table-body", + {"name": token["name"]}) + + def endTagOther(self, token): + return self.parser.phases["inTable"].processEndTag(token) + + class InRowPhase(Phase): + # http://www.whatwg.org/specs/web-apps/current-work/#in-row + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + self.startTagHandler = _utils.MethodDispatcher([ + ("html", self.startTagHtml), + (("td", "th"), self.startTagTableCell), + (("caption", "col", "colgroup", "tbody", "tfoot", "thead", + "tr"), self.startTagTableOther) + ]) + self.startTagHandler.default = self.startTagOther + + self.endTagHandler = _utils.MethodDispatcher([ + ("tr", self.endTagTr), + ("table", self.endTagTable), + (("tbody", "tfoot", "thead"), self.endTagTableRowGroup), + (("body", "caption", "col", "colgroup", "html", "td", "th"), + self.endTagIgnore) + ]) + self.endTagHandler.default = self.endTagOther + + # helper methods (XXX unify this with other table helper methods) + def clearStackToTableRowContext(self): + while self.tree.openElements[-1].name not in ("tr", "html"): + self.parser.parseError("unexpected-implied-end-tag-in-table-row", + {"name": self.tree.openElements[-1].name}) + self.tree.openElements.pop() + + def ignoreEndTagTr(self): + return not self.tree.elementInScope("tr", variant="table") + + # the rest + def processEOF(self): + self.parser.phases["inTable"].processEOF() + + def processSpaceCharacters(self, token): + return self.parser.phases["inTable"].processSpaceCharacters(token) + + def processCharacters(self, token): + return self.parser.phases["inTable"].processCharacters(token) + + def startTagTableCell(self, token): + self.clearStackToTableRowContext() + self.tree.insertElement(token) + self.parser.phase = self.parser.phases["inCell"] + self.tree.activeFormattingElements.append(Marker) + + def startTagTableOther(self, token): + ignoreEndTag = self.ignoreEndTagTr() + self.endTagTr(impliedTagToken("tr")) + # XXX how are we sure it's always ignored in the innerHTML case? + if not ignoreEndTag: + return token + + def startTagOther(self, token): + return self.parser.phases["inTable"].processStartTag(token) + + def endTagTr(self, token): + if not self.ignoreEndTagTr(): + self.clearStackToTableRowContext() + self.tree.openElements.pop() + self.parser.phase = self.parser.phases["inTableBody"] + else: + # innerHTML case + assert self.parser.innerHTML + self.parser.parseError() + + def endTagTable(self, token): + ignoreEndTag = self.ignoreEndTagTr() + self.endTagTr(impliedTagToken("tr")) + # Reprocess the current tag if the tr end tag was not ignored + # XXX how are we sure it's always ignored in the innerHTML case? + if not ignoreEndTag: + return token + + def endTagTableRowGroup(self, token): + if self.tree.elementInScope(token["name"], variant="table"): + self.endTagTr(impliedTagToken("tr")) + return token + else: + self.parser.parseError() + + def endTagIgnore(self, token): + self.parser.parseError("unexpected-end-tag-in-table-row", + {"name": token["name"]}) + + def endTagOther(self, token): + return self.parser.phases["inTable"].processEndTag(token) + + class InCellPhase(Phase): + # http://www.whatwg.org/specs/web-apps/current-work/#in-cell + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + self.startTagHandler = _utils.MethodDispatcher([ + ("html", self.startTagHtml), + (("caption", "col", "colgroup", "tbody", "td", "tfoot", "th", + "thead", "tr"), self.startTagTableOther) + ]) + self.startTagHandler.default = self.startTagOther + + self.endTagHandler = _utils.MethodDispatcher([ + (("td", "th"), self.endTagTableCell), + (("body", "caption", "col", "colgroup", "html"), self.endTagIgnore), + (("table", "tbody", "tfoot", "thead", "tr"), self.endTagImply) + ]) + self.endTagHandler.default = self.endTagOther + + # helper + def closeCell(self): + if self.tree.elementInScope("td", variant="table"): + self.endTagTableCell(impliedTagToken("td")) + elif self.tree.elementInScope("th", variant="table"): + self.endTagTableCell(impliedTagToken("th")) + + # the rest + def processEOF(self): + self.parser.phases["inBody"].processEOF() + + def processCharacters(self, token): + return self.parser.phases["inBody"].processCharacters(token) + + def startTagTableOther(self, token): + if (self.tree.elementInScope("td", variant="table") or + self.tree.elementInScope("th", variant="table")): + self.closeCell() + return token + else: + # innerHTML case + assert self.parser.innerHTML + self.parser.parseError() + + def startTagOther(self, token): + return self.parser.phases["inBody"].processStartTag(token) + + def endTagTableCell(self, token): + if self.tree.elementInScope(token["name"], variant="table"): + self.tree.generateImpliedEndTags(token["name"]) + if self.tree.openElements[-1].name != token["name"]: + self.parser.parseError("unexpected-cell-end-tag", + {"name": token["name"]}) + while True: + node = self.tree.openElements.pop() + if node.name == token["name"]: + break + else: + self.tree.openElements.pop() + self.tree.clearActiveFormattingElements() + self.parser.phase = self.parser.phases["inRow"] + else: + self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) + + def endTagIgnore(self, token): + self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) + + def endTagImply(self, token): + if self.tree.elementInScope(token["name"], variant="table"): + self.closeCell() + return token + else: + # sometimes innerHTML case + self.parser.parseError() + + def endTagOther(self, token): + return self.parser.phases["inBody"].processEndTag(token) + + class InSelectPhase(Phase): + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + + self.startTagHandler = _utils.MethodDispatcher([ + ("html", self.startTagHtml), + ("option", self.startTagOption), + ("optgroup", self.startTagOptgroup), + ("select", self.startTagSelect), + (("input", "keygen", "textarea"), self.startTagInput), + ("script", self.startTagScript) + ]) + self.startTagHandler.default = self.startTagOther + + self.endTagHandler = _utils.MethodDispatcher([ + ("option", self.endTagOption), + ("optgroup", self.endTagOptgroup), + ("select", self.endTagSelect) + ]) + self.endTagHandler.default = self.endTagOther + + # http://www.whatwg.org/specs/web-apps/current-work/#in-select + def processEOF(self): + if self.tree.openElements[-1].name != "html": + self.parser.parseError("eof-in-select") + else: + assert self.parser.innerHTML + + def processCharacters(self, token): + if token["data"] == "\u0000": + return + self.tree.insertText(token["data"]) + + def startTagOption(self, token): + # We need to imply </option> if <option> is the current node. + if self.tree.openElements[-1].name == "option": + self.tree.openElements.pop() + self.tree.insertElement(token) + + def startTagOptgroup(self, token): + if self.tree.openElements[-1].name == "option": + self.tree.openElements.pop() + if self.tree.openElements[-1].name == "optgroup": + self.tree.openElements.pop() + self.tree.insertElement(token) + + def startTagSelect(self, token): + self.parser.parseError("unexpected-select-in-select") + self.endTagSelect(impliedTagToken("select")) + + def startTagInput(self, token): + self.parser.parseError("unexpected-input-in-select") + if self.tree.elementInScope("select", variant="select"): + self.endTagSelect(impliedTagToken("select")) + return token + else: + assert self.parser.innerHTML + + def startTagScript(self, token): + return self.parser.phases["inHead"].processStartTag(token) + + def startTagOther(self, token): + self.parser.parseError("unexpected-start-tag-in-select", + {"name": token["name"]}) + + def endTagOption(self, token): + if self.tree.openElements[-1].name == "option": + self.tree.openElements.pop() + else: + self.parser.parseError("unexpected-end-tag-in-select", + {"name": "option"}) + + def endTagOptgroup(self, token): + # </optgroup> implicitly closes <option> + if (self.tree.openElements[-1].name == "option" and + self.tree.openElements[-2].name == "optgroup"): + self.tree.openElements.pop() + # It also closes </optgroup> + if self.tree.openElements[-1].name == "optgroup": + self.tree.openElements.pop() + # But nothing else + else: + self.parser.parseError("unexpected-end-tag-in-select", + {"name": "optgroup"}) + + def endTagSelect(self, token): + if self.tree.elementInScope("select", variant="select"): + node = self.tree.openElements.pop() + while node.name != "select": + node = self.tree.openElements.pop() + self.parser.resetInsertionMode() + else: + # innerHTML case + assert self.parser.innerHTML + self.parser.parseError() + + def endTagOther(self, token): + self.parser.parseError("unexpected-end-tag-in-select", + {"name": token["name"]}) + + class InSelectInTablePhase(Phase): + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + + self.startTagHandler = _utils.MethodDispatcher([ + (("caption", "table", "tbody", "tfoot", "thead", "tr", "td", "th"), + self.startTagTable) + ]) + self.startTagHandler.default = self.startTagOther + + self.endTagHandler = _utils.MethodDispatcher([ + (("caption", "table", "tbody", "tfoot", "thead", "tr", "td", "th"), + self.endTagTable) + ]) + self.endTagHandler.default = self.endTagOther + + def processEOF(self): + self.parser.phases["inSelect"].processEOF() + + def processCharacters(self, token): + return self.parser.phases["inSelect"].processCharacters(token) + + def startTagTable(self, token): + self.parser.parseError("unexpected-table-element-start-tag-in-select-in-table", {"name": token["name"]}) + self.endTagOther(impliedTagToken("select")) + return token + + def startTagOther(self, token): + return self.parser.phases["inSelect"].processStartTag(token) + + def endTagTable(self, token): + self.parser.parseError("unexpected-table-element-end-tag-in-select-in-table", {"name": token["name"]}) + if self.tree.elementInScope(token["name"], variant="table"): + self.endTagOther(impliedTagToken("select")) + return token + + def endTagOther(self, token): + return self.parser.phases["inSelect"].processEndTag(token) + + class InForeignContentPhase(Phase): + breakoutElements = frozenset(["b", "big", "blockquote", "body", "br", + "center", "code", "dd", "div", "dl", "dt", + "em", "embed", "h1", "h2", "h3", + "h4", "h5", "h6", "head", "hr", "i", "img", + "li", "listing", "menu", "meta", "nobr", + "ol", "p", "pre", "ruby", "s", "small", + "span", "strong", "strike", "sub", "sup", + "table", "tt", "u", "ul", "var"]) + + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + + def adjustSVGTagNames(self, token): + replacements = {"altglyph": "altGlyph", + "altglyphdef": "altGlyphDef", + "altglyphitem": "altGlyphItem", + "animatecolor": "animateColor", + "animatemotion": "animateMotion", + "animatetransform": "animateTransform", + "clippath": "clipPath", + "feblend": "feBlend", + "fecolormatrix": "feColorMatrix", + "fecomponenttransfer": "feComponentTransfer", + "fecomposite": "feComposite", + "feconvolvematrix": "feConvolveMatrix", + "fediffuselighting": "feDiffuseLighting", + "fedisplacementmap": "feDisplacementMap", + "fedistantlight": "feDistantLight", + "feflood": "feFlood", + "fefunca": "feFuncA", + "fefuncb": "feFuncB", + "fefuncg": "feFuncG", + "fefuncr": "feFuncR", + "fegaussianblur": "feGaussianBlur", + "feimage": "feImage", + "femerge": "feMerge", + "femergenode": "feMergeNode", + "femorphology": "feMorphology", + "feoffset": "feOffset", + "fepointlight": "fePointLight", + "fespecularlighting": "feSpecularLighting", + "fespotlight": "feSpotLight", + "fetile": "feTile", + "feturbulence": "feTurbulence", + "foreignobject": "foreignObject", + "glyphref": "glyphRef", + "lineargradient": "linearGradient", + "radialgradient": "radialGradient", + "textpath": "textPath"} + + if token["name"] in replacements: + token["name"] = replacements[token["name"]] + + def processCharacters(self, token): + if token["data"] == "\u0000": + token["data"] = "\uFFFD" + elif (self.parser.framesetOK and + any(char not in spaceCharacters for char in token["data"])): + self.parser.framesetOK = False + Phase.processCharacters(self, token) + + def processStartTag(self, token): + currentNode = self.tree.openElements[-1] + if (token["name"] in self.breakoutElements or + (token["name"] == "font" and + set(token["data"].keys()) & set(["color", "face", "size"]))): + self.parser.parseError("unexpected-html-element-in-foreign-content", + {"name": token["name"]}) + while (self.tree.openElements[-1].namespace != + self.tree.defaultNamespace and + not self.parser.isHTMLIntegrationPoint(self.tree.openElements[-1]) and + not self.parser.isMathMLTextIntegrationPoint(self.tree.openElements[-1])): + self.tree.openElements.pop() + return token + + else: + if currentNode.namespace == namespaces["mathml"]: + self.parser.adjustMathMLAttributes(token) + elif currentNode.namespace == namespaces["svg"]: + self.adjustSVGTagNames(token) + self.parser.adjustSVGAttributes(token) + self.parser.adjustForeignAttributes(token) + token["namespace"] = currentNode.namespace + self.tree.insertElement(token) + if token["selfClosing"]: + self.tree.openElements.pop() + token["selfClosingAcknowledged"] = True + + def processEndTag(self, token): + nodeIndex = len(self.tree.openElements) - 1 + node = self.tree.openElements[-1] + if node.name.translate(asciiUpper2Lower) != token["name"]: + self.parser.parseError("unexpected-end-tag", {"name": token["name"]}) + + while True: + if node.name.translate(asciiUpper2Lower) == token["name"]: + # XXX this isn't in the spec but it seems necessary + if self.parser.phase == self.parser.phases["inTableText"]: + self.parser.phase.flushCharacters() + self.parser.phase = self.parser.phase.originalPhase + while self.tree.openElements.pop() != node: + assert self.tree.openElements + new_token = None + break + nodeIndex -= 1 + + node = self.tree.openElements[nodeIndex] + if node.namespace != self.tree.defaultNamespace: + continue + else: + new_token = self.parser.phase.processEndTag(token) + break + return new_token + + class AfterBodyPhase(Phase): + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + + self.startTagHandler = _utils.MethodDispatcher([ + ("html", self.startTagHtml) + ]) + self.startTagHandler.default = self.startTagOther + + self.endTagHandler = _utils.MethodDispatcher([("html", self.endTagHtml)]) + self.endTagHandler.default = self.endTagOther + + def processEOF(self): + # Stop parsing + pass + + def processComment(self, token): + # This is needed because data is to be appended to the <html> element + # here and not to whatever is currently open. + self.tree.insertComment(token, self.tree.openElements[0]) + + def processCharacters(self, token): + self.parser.parseError("unexpected-char-after-body") + self.parser.phase = self.parser.phases["inBody"] + return token + + def startTagHtml(self, token): + return self.parser.phases["inBody"].processStartTag(token) + + def startTagOther(self, token): + self.parser.parseError("unexpected-start-tag-after-body", + {"name": token["name"]}) + self.parser.phase = self.parser.phases["inBody"] + return token + + def endTagHtml(self, name): + if self.parser.innerHTML: + self.parser.parseError("unexpected-end-tag-after-body-innerhtml") + else: + self.parser.phase = self.parser.phases["afterAfterBody"] + + def endTagOther(self, token): + self.parser.parseError("unexpected-end-tag-after-body", + {"name": token["name"]}) + self.parser.phase = self.parser.phases["inBody"] + return token + + class InFramesetPhase(Phase): + # http://www.whatwg.org/specs/web-apps/current-work/#in-frameset + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + + self.startTagHandler = _utils.MethodDispatcher([ + ("html", self.startTagHtml), + ("frameset", self.startTagFrameset), + ("frame", self.startTagFrame), + ("noframes", self.startTagNoframes) + ]) + self.startTagHandler.default = self.startTagOther + + self.endTagHandler = _utils.MethodDispatcher([ + ("frameset", self.endTagFrameset) + ]) + self.endTagHandler.default = self.endTagOther + + def processEOF(self): + if self.tree.openElements[-1].name != "html": + self.parser.parseError("eof-in-frameset") + else: + assert self.parser.innerHTML + + def processCharacters(self, token): + self.parser.parseError("unexpected-char-in-frameset") + + def startTagFrameset(self, token): + self.tree.insertElement(token) + + def startTagFrame(self, token): + self.tree.insertElement(token) + self.tree.openElements.pop() + + def startTagNoframes(self, token): + return self.parser.phases["inBody"].processStartTag(token) + + def startTagOther(self, token): + self.parser.parseError("unexpected-start-tag-in-frameset", + {"name": token["name"]}) + + def endTagFrameset(self, token): + if self.tree.openElements[-1].name == "html": + # innerHTML case + self.parser.parseError("unexpected-frameset-in-frameset-innerhtml") + else: + self.tree.openElements.pop() + if (not self.parser.innerHTML and + self.tree.openElements[-1].name != "frameset"): + # If we're not in innerHTML mode and the current node is not a + # "frameset" element (anymore) then switch. + self.parser.phase = self.parser.phases["afterFrameset"] + + def endTagOther(self, token): + self.parser.parseError("unexpected-end-tag-in-frameset", + {"name": token["name"]}) + + class AfterFramesetPhase(Phase): + # http://www.whatwg.org/specs/web-apps/current-work/#after3 + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + + self.startTagHandler = _utils.MethodDispatcher([ + ("html", self.startTagHtml), + ("noframes", self.startTagNoframes) + ]) + self.startTagHandler.default = self.startTagOther + + self.endTagHandler = _utils.MethodDispatcher([ + ("html", self.endTagHtml) + ]) + self.endTagHandler.default = self.endTagOther + + def processEOF(self): + # Stop parsing + pass + + def processCharacters(self, token): + self.parser.parseError("unexpected-char-after-frameset") + + def startTagNoframes(self, token): + return self.parser.phases["inHead"].processStartTag(token) + + def startTagOther(self, token): + self.parser.parseError("unexpected-start-tag-after-frameset", + {"name": token["name"]}) + + def endTagHtml(self, token): + self.parser.phase = self.parser.phases["afterAfterFrameset"] + + def endTagOther(self, token): + self.parser.parseError("unexpected-end-tag-after-frameset", + {"name": token["name"]}) + + class AfterAfterBodyPhase(Phase): + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + + self.startTagHandler = _utils.MethodDispatcher([ + ("html", self.startTagHtml) + ]) + self.startTagHandler.default = self.startTagOther + + def processEOF(self): + pass + + def processComment(self, token): + self.tree.insertComment(token, self.tree.document) + + def processSpaceCharacters(self, token): + return self.parser.phases["inBody"].processSpaceCharacters(token) + + def processCharacters(self, token): + self.parser.parseError("expected-eof-but-got-char") + self.parser.phase = self.parser.phases["inBody"] + return token + + def startTagHtml(self, token): + return self.parser.phases["inBody"].processStartTag(token) + + def startTagOther(self, token): + self.parser.parseError("expected-eof-but-got-start-tag", + {"name": token["name"]}) + self.parser.phase = self.parser.phases["inBody"] + return token + + def processEndTag(self, token): + self.parser.parseError("expected-eof-but-got-end-tag", + {"name": token["name"]}) + self.parser.phase = self.parser.phases["inBody"] + return token + + class AfterAfterFramesetPhase(Phase): + def __init__(self, parser, tree): + Phase.__init__(self, parser, tree) + + self.startTagHandler = _utils.MethodDispatcher([ + ("html", self.startTagHtml), + ("noframes", self.startTagNoFrames) + ]) + self.startTagHandler.default = self.startTagOther + + def processEOF(self): + pass + + def processComment(self, token): + self.tree.insertComment(token, self.tree.document) + + def processSpaceCharacters(self, token): + return self.parser.phases["inBody"].processSpaceCharacters(token) + + def processCharacters(self, token): + self.parser.parseError("expected-eof-but-got-char") + + def startTagHtml(self, token): + return self.parser.phases["inBody"].processStartTag(token) + + def startTagNoFrames(self, token): + return self.parser.phases["inHead"].processStartTag(token) + + def startTagOther(self, token): + self.parser.parseError("expected-eof-but-got-start-tag", + {"name": token["name"]}) + + def processEndTag(self, token): + self.parser.parseError("expected-eof-but-got-end-tag", + {"name": token["name"]}) + # pylint:enable=unused-argument + + return { + "initial": InitialPhase, + "beforeHtml": BeforeHtmlPhase, + "beforeHead": BeforeHeadPhase, + "inHead": InHeadPhase, + "inHeadNoscript": InHeadNoscriptPhase, + "afterHead": AfterHeadPhase, + "inBody": InBodyPhase, + "text": TextPhase, + "inTable": InTablePhase, + "inTableText": InTableTextPhase, + "inCaption": InCaptionPhase, + "inColumnGroup": InColumnGroupPhase, + "inTableBody": InTableBodyPhase, + "inRow": InRowPhase, + "inCell": InCellPhase, + "inSelect": InSelectPhase, + "inSelectInTable": InSelectInTablePhase, + "inForeignContent": InForeignContentPhase, + "afterBody": AfterBodyPhase, + "inFrameset": InFramesetPhase, + "afterFrameset": AfterFramesetPhase, + "afterAfterBody": AfterAfterBodyPhase, + "afterAfterFrameset": AfterAfterFramesetPhase, + # XXX after after frameset + } + + +def adjust_attributes(token, replacements): + needs_adjustment = viewkeys(token['data']) & viewkeys(replacements) + if needs_adjustment: + token['data'] = OrderedDict((replacements.get(k, k), v) + for k, v in token['data'].items()) + + +def impliedTagToken(name, type="EndTag", attributes=None, + selfClosing=False): + if attributes is None: + attributes = {} + return {"type": tokenTypes[type], "name": name, "data": attributes, + "selfClosing": selfClosing} + + +class ParseError(Exception): + """Error in parsed document""" + pass diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/serializer.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/serializer.py new file mode 100644 index 00000000..53f4d44c --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/serializer.py @@ -0,0 +1,409 @@ +from __future__ import absolute_import, division, unicode_literals +from pip._vendor.six import text_type + +import re + +from codecs import register_error, xmlcharrefreplace_errors + +from .constants import voidElements, booleanAttributes, spaceCharacters +from .constants import rcdataElements, entities, xmlEntities +from . import treewalkers, _utils +from xml.sax.saxutils import escape + +_quoteAttributeSpecChars = "".join(spaceCharacters) + "\"'=<>`" +_quoteAttributeSpec = re.compile("[" + _quoteAttributeSpecChars + "]") +_quoteAttributeLegacy = re.compile("[" + _quoteAttributeSpecChars + + "\x00\x01\x02\x03\x04\x05\x06\x07\x08\t\n" + "\x0b\x0c\r\x0e\x0f\x10\x11\x12\x13\x14\x15" + "\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f" + "\x20\x2f\x60\xa0\u1680\u180e\u180f\u2000" + "\u2001\u2002\u2003\u2004\u2005\u2006\u2007" + "\u2008\u2009\u200a\u2028\u2029\u202f\u205f" + "\u3000]") + + +_encode_entity_map = {} +_is_ucs4 = len("\U0010FFFF") == 1 +for k, v in list(entities.items()): + # skip multi-character entities + if ((_is_ucs4 and len(v) > 1) or + (not _is_ucs4 and len(v) > 2)): + continue + if v != "&": + if len(v) == 2: + v = _utils.surrogatePairToCodepoint(v) + else: + v = ord(v) + if v not in _encode_entity_map or k.islower(): + # prefer < over < and similarly for &, >, etc. + _encode_entity_map[v] = k + + +def htmlentityreplace_errors(exc): + if isinstance(exc, (UnicodeEncodeError, UnicodeTranslateError)): + res = [] + codepoints = [] + skip = False + for i, c in enumerate(exc.object[exc.start:exc.end]): + if skip: + skip = False + continue + index = i + exc.start + if _utils.isSurrogatePair(exc.object[index:min([exc.end, index + 2])]): + codepoint = _utils.surrogatePairToCodepoint(exc.object[index:index + 2]) + skip = True + else: + codepoint = ord(c) + codepoints.append(codepoint) + for cp in codepoints: + e = _encode_entity_map.get(cp) + if e: + res.append("&") + res.append(e) + if not e.endswith(";"): + res.append(";") + else: + res.append("&#x%s;" % (hex(cp)[2:])) + return ("".join(res), exc.end) + else: + return xmlcharrefreplace_errors(exc) + + +register_error("htmlentityreplace", htmlentityreplace_errors) + + +def serialize(input, tree="etree", encoding=None, **serializer_opts): + """Serializes the input token stream using the specified treewalker + + :arg input: the token stream to serialize + + :arg tree: the treewalker to use + + :arg encoding: the encoding to use + + :arg serializer_opts: any options to pass to the + :py:class:`html5lib.serializer.HTMLSerializer` that gets created + + :returns: the tree serialized as a string + + Example: + + >>> from html5lib.html5parser import parse + >>> from html5lib.serializer import serialize + >>> token_stream = parse('<html><body><p>Hi!</p></body></html>') + >>> serialize(token_stream, omit_optional_tags=False) + '<html><head></head><body><p>Hi!</p></body></html>' + + """ + # XXX: Should we cache this? + walker = treewalkers.getTreeWalker(tree) + s = HTMLSerializer(**serializer_opts) + return s.render(walker(input), encoding) + + +class HTMLSerializer(object): + + # attribute quoting options + quote_attr_values = "legacy" # be secure by default + quote_char = '"' + use_best_quote_char = True + + # tag syntax options + omit_optional_tags = True + minimize_boolean_attributes = True + use_trailing_solidus = False + space_before_trailing_solidus = True + + # escaping options + escape_lt_in_attrs = False + escape_rcdata = False + resolve_entities = True + + # miscellaneous options + alphabetical_attributes = False + inject_meta_charset = True + strip_whitespace = False + sanitize = False + + options = ("quote_attr_values", "quote_char", "use_best_quote_char", + "omit_optional_tags", "minimize_boolean_attributes", + "use_trailing_solidus", "space_before_trailing_solidus", + "escape_lt_in_attrs", "escape_rcdata", "resolve_entities", + "alphabetical_attributes", "inject_meta_charset", + "strip_whitespace", "sanitize") + + def __init__(self, **kwargs): + """Initialize HTMLSerializer + + :arg inject_meta_charset: Whether or not to inject the meta charset. + + Defaults to ``True``. + + :arg quote_attr_values: Whether to quote attribute values that don't + require quoting per legacy browser behavior (``"legacy"``), when + required by the standard (``"spec"``), or always (``"always"``). + + Defaults to ``"legacy"``. + + :arg quote_char: Use given quote character for attribute quoting. + + Defaults to ``"`` which will use double quotes unless attribute + value contains a double quote, in which case single quotes are + used. + + :arg escape_lt_in_attrs: Whether or not to escape ``<`` in attribute + values. + + Defaults to ``False``. + + :arg escape_rcdata: Whether to escape characters that need to be + escaped within normal elements within rcdata elements such as + style. + + Defaults to ``False``. + + :arg resolve_entities: Whether to resolve named character entities that + appear in the source tree. The XML predefined entities < > + & " ' are unaffected by this setting. + + Defaults to ``True``. + + :arg strip_whitespace: Whether to remove semantically meaningless + whitespace. (This compresses all whitespace to a single space + except within ``pre``.) + + Defaults to ``False``. + + :arg minimize_boolean_attributes: Shortens boolean attributes to give + just the attribute value, for example:: + + <input disabled="disabled"> + + becomes:: + + <input disabled> + + Defaults to ``True``. + + :arg use_trailing_solidus: Includes a close-tag slash at the end of the + start tag of void elements (empty elements whose end tag is + forbidden). E.g. ``<hr/>``. + + Defaults to ``False``. + + :arg space_before_trailing_solidus: Places a space immediately before + the closing slash in a tag using a trailing solidus. E.g. + ``<hr />``. Requires ``use_trailing_solidus=True``. + + Defaults to ``True``. + + :arg sanitize: Strip all unsafe or unknown constructs from output. + See :py:class:`html5lib.filters.sanitizer.Filter`. + + Defaults to ``False``. + + :arg omit_optional_tags: Omit start/end tags that are optional. + + Defaults to ``True``. + + :arg alphabetical_attributes: Reorder attributes to be in alphabetical order. + + Defaults to ``False``. + + """ + unexpected_args = frozenset(kwargs) - frozenset(self.options) + if len(unexpected_args) > 0: + raise TypeError("__init__() got an unexpected keyword argument '%s'" % next(iter(unexpected_args))) + if 'quote_char' in kwargs: + self.use_best_quote_char = False + for attr in self.options: + setattr(self, attr, kwargs.get(attr, getattr(self, attr))) + self.errors = [] + self.strict = False + + def encode(self, string): + assert(isinstance(string, text_type)) + if self.encoding: + return string.encode(self.encoding, "htmlentityreplace") + else: + return string + + def encodeStrict(self, string): + assert(isinstance(string, text_type)) + if self.encoding: + return string.encode(self.encoding, "strict") + else: + return string + + def serialize(self, treewalker, encoding=None): + # pylint:disable=too-many-nested-blocks + self.encoding = encoding + in_cdata = False + self.errors = [] + + if encoding and self.inject_meta_charset: + from .filters.inject_meta_charset import Filter + treewalker = Filter(treewalker, encoding) + # Alphabetical attributes is here under the assumption that none of + # the later filters add or change order of attributes; it needs to be + # before the sanitizer so escaped elements come out correctly + if self.alphabetical_attributes: + from .filters.alphabeticalattributes import Filter + treewalker = Filter(treewalker) + # WhitespaceFilter should be used before OptionalTagFilter + # for maximum efficiently of this latter filter + if self.strip_whitespace: + from .filters.whitespace import Filter + treewalker = Filter(treewalker) + if self.sanitize: + from .filters.sanitizer import Filter + treewalker = Filter(treewalker) + if self.omit_optional_tags: + from .filters.optionaltags import Filter + treewalker = Filter(treewalker) + + for token in treewalker: + type = token["type"] + if type == "Doctype": + doctype = "<!DOCTYPE %s" % token["name"] + + if token["publicId"]: + doctype += ' PUBLIC "%s"' % token["publicId"] + elif token["systemId"]: + doctype += " SYSTEM" + if token["systemId"]: + if token["systemId"].find('"') >= 0: + if token["systemId"].find("'") >= 0: + self.serializeError("System identifer contains both single and double quote characters") + quote_char = "'" + else: + quote_char = '"' + doctype += " %s%s%s" % (quote_char, token["systemId"], quote_char) + + doctype += ">" + yield self.encodeStrict(doctype) + + elif type in ("Characters", "SpaceCharacters"): + if type == "SpaceCharacters" or in_cdata: + if in_cdata and token["data"].find("</") >= 0: + self.serializeError("Unexpected </ in CDATA") + yield self.encode(token["data"]) + else: + yield self.encode(escape(token["data"])) + + elif type in ("StartTag", "EmptyTag"): + name = token["name"] + yield self.encodeStrict("<%s" % name) + if name in rcdataElements and not self.escape_rcdata: + in_cdata = True + elif in_cdata: + self.serializeError("Unexpected child element of a CDATA element") + for (_, attr_name), attr_value in token["data"].items(): + # TODO: Add namespace support here + k = attr_name + v = attr_value + yield self.encodeStrict(' ') + + yield self.encodeStrict(k) + if not self.minimize_boolean_attributes or \ + (k not in booleanAttributes.get(name, tuple()) and + k not in booleanAttributes.get("", tuple())): + yield self.encodeStrict("=") + if self.quote_attr_values == "always" or len(v) == 0: + quote_attr = True + elif self.quote_attr_values == "spec": + quote_attr = _quoteAttributeSpec.search(v) is not None + elif self.quote_attr_values == "legacy": + quote_attr = _quoteAttributeLegacy.search(v) is not None + else: + raise ValueError("quote_attr_values must be one of: " + "'always', 'spec', or 'legacy'") + v = v.replace("&", "&") + if self.escape_lt_in_attrs: + v = v.replace("<", "<") + if quote_attr: + quote_char = self.quote_char + if self.use_best_quote_char: + if "'" in v and '"' not in v: + quote_char = '"' + elif '"' in v and "'" not in v: + quote_char = "'" + if quote_char == "'": + v = v.replace("'", "'") + else: + v = v.replace('"', """) + yield self.encodeStrict(quote_char) + yield self.encode(v) + yield self.encodeStrict(quote_char) + else: + yield self.encode(v) + if name in voidElements and self.use_trailing_solidus: + if self.space_before_trailing_solidus: + yield self.encodeStrict(" /") + else: + yield self.encodeStrict("/") + yield self.encode(">") + + elif type == "EndTag": + name = token["name"] + if name in rcdataElements: + in_cdata = False + elif in_cdata: + self.serializeError("Unexpected child element of a CDATA element") + yield self.encodeStrict("</%s>" % name) + + elif type == "Comment": + data = token["data"] + if data.find("--") >= 0: + self.serializeError("Comment contains --") + yield self.encodeStrict("<!--%s-->" % token["data"]) + + elif type == "Entity": + name = token["name"] + key = name + ";" + if key not in entities: + self.serializeError("Entity %s not recognized" % name) + if self.resolve_entities and key not in xmlEntities: + data = entities[key] + else: + data = "&%s;" % name + yield self.encodeStrict(data) + + else: + self.serializeError(token["data"]) + + def render(self, treewalker, encoding=None): + """Serializes the stream from the treewalker into a string + + :arg treewalker: the treewalker to serialize + + :arg encoding: the string encoding to use + + :returns: the serialized tree + + Example: + + >>> from html5lib import parse, getTreeWalker + >>> from html5lib.serializer import HTMLSerializer + >>> token_stream = parse('<html><body>Hi!</body></html>') + >>> walker = getTreeWalker('etree') + >>> serializer = HTMLSerializer(omit_optional_tags=False) + >>> serializer.render(walker(token_stream)) + '<html><head></head><body>Hi!</body></html>' + + """ + if encoding: + return b"".join(list(self.serialize(treewalker, encoding))) + else: + return "".join(list(self.serialize(treewalker))) + + def serializeError(self, data="XXX ERROR MESSAGE NEEDED"): + # XXX The idea is to make data mandatory. + self.errors.append(data) + if self.strict: + raise SerializeError + + +class SerializeError(Exception): + """Error in serialized tree""" + pass diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treeadapters/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treeadapters/__init__.py new file mode 100644 index 00000000..7ef59590 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treeadapters/__init__.py @@ -0,0 +1,30 @@ +"""Tree adapters let you convert from one tree structure to another + +Example: + +.. code-block:: python + + from pip._vendor import html5lib + from pip._vendor.html5lib.treeadapters import genshi + + doc = '<html><body>Hi!</body></html>' + treebuilder = html5lib.getTreeBuilder('etree') + parser = html5lib.HTMLParser(tree=treebuilder) + tree = parser.parse(doc) + TreeWalker = html5lib.getTreeWalker('etree') + + genshi_tree = genshi.to_genshi(TreeWalker(tree)) + +""" +from __future__ import absolute_import, division, unicode_literals + +from . import sax + +__all__ = ["sax"] + +try: + from . import genshi # noqa +except ImportError: + pass +else: + __all__.append("genshi") diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treeadapters/genshi.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treeadapters/genshi.py new file mode 100644 index 00000000..61d5fb6a --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treeadapters/genshi.py @@ -0,0 +1,54 @@ +from __future__ import absolute_import, division, unicode_literals + +from genshi.core import QName, Attrs +from genshi.core import START, END, TEXT, COMMENT, DOCTYPE + + +def to_genshi(walker): + """Convert a tree to a genshi tree + + :arg walker: the treewalker to use to walk the tree to convert it + + :returns: generator of genshi nodes + + """ + text = [] + for token in walker: + type = token["type"] + if type in ("Characters", "SpaceCharacters"): + text.append(token["data"]) + elif text: + yield TEXT, "".join(text), (None, -1, -1) + text = [] + + if type in ("StartTag", "EmptyTag"): + if token["namespace"]: + name = "{%s}%s" % (token["namespace"], token["name"]) + else: + name = token["name"] + attrs = Attrs([(QName("{%s}%s" % attr if attr[0] is not None else attr[1]), value) + for attr, value in token["data"].items()]) + yield (START, (QName(name), attrs), (None, -1, -1)) + if type == "EmptyTag": + type = "EndTag" + + if type == "EndTag": + if token["namespace"]: + name = "{%s}%s" % (token["namespace"], token["name"]) + else: + name = token["name"] + + yield END, QName(name), (None, -1, -1) + + elif type == "Comment": + yield COMMENT, token["data"], (None, -1, -1) + + elif type == "Doctype": + yield DOCTYPE, (token["name"], token["publicId"], + token["systemId"]), (None, -1, -1) + + else: + pass # FIXME: What to do? + + if text: + yield TEXT, "".join(text), (None, -1, -1) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treeadapters/sax.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treeadapters/sax.py new file mode 100644 index 00000000..f4ccea5a --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treeadapters/sax.py @@ -0,0 +1,50 @@ +from __future__ import absolute_import, division, unicode_literals + +from xml.sax.xmlreader import AttributesNSImpl + +from ..constants import adjustForeignAttributes, unadjustForeignAttributes + +prefix_mapping = {} +for prefix, localName, namespace in adjustForeignAttributes.values(): + if prefix is not None: + prefix_mapping[prefix] = namespace + + +def to_sax(walker, handler): + """Call SAX-like content handler based on treewalker walker + + :arg walker: the treewalker to use to walk the tree to convert it + + :arg handler: SAX handler to use + + """ + handler.startDocument() + for prefix, namespace in prefix_mapping.items(): + handler.startPrefixMapping(prefix, namespace) + + for token in walker: + type = token["type"] + if type == "Doctype": + continue + elif type in ("StartTag", "EmptyTag"): + attrs = AttributesNSImpl(token["data"], + unadjustForeignAttributes) + handler.startElementNS((token["namespace"], token["name"]), + token["name"], + attrs) + if type == "EmptyTag": + handler.endElementNS((token["namespace"], token["name"]), + token["name"]) + elif type == "EndTag": + handler.endElementNS((token["namespace"], token["name"]), + token["name"]) + elif type in ("Characters", "SpaceCharacters"): + handler.characters(token["data"]) + elif type == "Comment": + pass + else: + assert False, "Unknown token type" + + for prefix, namespace in prefix_mapping.items(): + handler.endPrefixMapping(prefix) + handler.endDocument() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treebuilders/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treebuilders/__init__.py new file mode 100644 index 00000000..d44447ea --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treebuilders/__init__.py @@ -0,0 +1,88 @@ +"""A collection of modules for building different kinds of trees from HTML +documents. + +To create a treebuilder for a new type of tree, you need to do +implement several things: + +1. A set of classes for various types of elements: Document, Doctype, Comment, + Element. These must implement the interface of ``base.treebuilders.Node`` + (although comment nodes have a different signature for their constructor, + see ``treebuilders.etree.Comment``) Textual content may also be implemented + as another node type, or not, as your tree implementation requires. + +2. A treebuilder object (called ``TreeBuilder`` by convention) that inherits + from ``treebuilders.base.TreeBuilder``. This has 4 required attributes: + + * ``documentClass`` - the class to use for the bottommost node of a document + * ``elementClass`` - the class to use for HTML Elements + * ``commentClass`` - the class to use for comments + * ``doctypeClass`` - the class to use for doctypes + + It also has one required method: + + * ``getDocument`` - Returns the root node of the complete document tree + +3. If you wish to run the unit tests, you must also create a ``testSerializer`` + method on your treebuilder which accepts a node and returns a string + containing Node and its children serialized according to the format used in + the unittests + +""" + +from __future__ import absolute_import, division, unicode_literals + +from .._utils import default_etree + +treeBuilderCache = {} + + +def getTreeBuilder(treeType, implementation=None, **kwargs): + """Get a TreeBuilder class for various types of trees with built-in support + + :arg treeType: the name of the tree type required (case-insensitive). Supported + values are: + + * "dom" - A generic builder for DOM implementations, defaulting to a + xml.dom.minidom based implementation. + * "etree" - A generic builder for tree implementations exposing an + ElementTree-like interface, defaulting to xml.etree.cElementTree if + available and xml.etree.ElementTree if not. + * "lxml" - A etree-based builder for lxml.etree, handling limitations + of lxml's implementation. + + :arg implementation: (Currently applies to the "etree" and "dom" tree + types). A module implementing the tree type e.g. xml.etree.ElementTree + or xml.etree.cElementTree. + + :arg kwargs: Any additional options to pass to the TreeBuilder when + creating it. + + Example: + + >>> from html5lib.treebuilders import getTreeBuilder + >>> builder = getTreeBuilder('etree') + + """ + + treeType = treeType.lower() + if treeType not in treeBuilderCache: + if treeType == "dom": + from . import dom + # Come up with a sane default (pref. from the stdlib) + if implementation is None: + from xml.dom import minidom + implementation = minidom + # NEVER cache here, caching is done in the dom submodule + return dom.getDomModule(implementation, **kwargs).TreeBuilder + elif treeType == "lxml": + from . import etree_lxml + treeBuilderCache[treeType] = etree_lxml.TreeBuilder + elif treeType == "etree": + from . import etree + if implementation is None: + implementation = default_etree + # NEVER cache here, caching is done in the etree submodule + return etree.getETreeModule(implementation, **kwargs).TreeBuilder + else: + raise ValueError("""Unrecognised treebuilder "%s" """ % treeType) + return treeBuilderCache.get(treeType) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treebuilders/base.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treebuilders/base.py new file mode 100644 index 00000000..73973db5 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treebuilders/base.py @@ -0,0 +1,417 @@ +from __future__ import absolute_import, division, unicode_literals +from pip._vendor.six import text_type + +from ..constants import scopingElements, tableInsertModeElements, namespaces + +# The scope markers are inserted when entering object elements, +# marquees, table cells, and table captions, and are used to prevent formatting +# from "leaking" into tables, object elements, and marquees. +Marker = None + +listElementsMap = { + None: (frozenset(scopingElements), False), + "button": (frozenset(scopingElements | set([(namespaces["html"], "button")])), False), + "list": (frozenset(scopingElements | set([(namespaces["html"], "ol"), + (namespaces["html"], "ul")])), False), + "table": (frozenset([(namespaces["html"], "html"), + (namespaces["html"], "table")]), False), + "select": (frozenset([(namespaces["html"], "optgroup"), + (namespaces["html"], "option")]), True) +} + + +class Node(object): + """Represents an item in the tree""" + def __init__(self, name): + """Creates a Node + + :arg name: The tag name associated with the node + + """ + # The tag name assocaited with the node + self.name = name + # The parent of the current node (or None for the document node) + self.parent = None + # The value of the current node (applies to text nodes and comments) + self.value = None + # A dict holding name -> value pairs for attributes of the node + self.attributes = {} + # A list of child nodes of the current node. This must include all + # elements but not necessarily other node types. + self.childNodes = [] + # A list of miscellaneous flags that can be set on the node. + self._flags = [] + + def __str__(self): + attributesStr = " ".join(["%s=\"%s\"" % (name, value) + for name, value in + self.attributes.items()]) + if attributesStr: + return "<%s %s>" % (self.name, attributesStr) + else: + return "<%s>" % (self.name) + + def __repr__(self): + return "<%s>" % (self.name) + + def appendChild(self, node): + """Insert node as a child of the current node + + :arg node: the node to insert + + """ + raise NotImplementedError + + def insertText(self, data, insertBefore=None): + """Insert data as text in the current node, positioned before the + start of node insertBefore or to the end of the node's text. + + :arg data: the data to insert + + :arg insertBefore: True if you want to insert the text before the node + and False if you want to insert it after the node + + """ + raise NotImplementedError + + def insertBefore(self, node, refNode): + """Insert node as a child of the current node, before refNode in the + list of child nodes. Raises ValueError if refNode is not a child of + the current node + + :arg node: the node to insert + + :arg refNode: the child node to insert the node before + + """ + raise NotImplementedError + + def removeChild(self, node): + """Remove node from the children of the current node + + :arg node: the child node to remove + + """ + raise NotImplementedError + + def reparentChildren(self, newParent): + """Move all the children of the current node to newParent. + This is needed so that trees that don't store text as nodes move the + text in the correct way + + :arg newParent: the node to move all this node's children to + + """ + # XXX - should this method be made more general? + for child in self.childNodes: + newParent.appendChild(child) + self.childNodes = [] + + def cloneNode(self): + """Return a shallow copy of the current node i.e. a node with the same + name and attributes but with no parent or child nodes + """ + raise NotImplementedError + + def hasContent(self): + """Return true if the node has children or text, false otherwise + """ + raise NotImplementedError + + +class ActiveFormattingElements(list): + def append(self, node): + equalCount = 0 + if node != Marker: + for element in self[::-1]: + if element == Marker: + break + if self.nodesEqual(element, node): + equalCount += 1 + if equalCount == 3: + self.remove(element) + break + list.append(self, node) + + def nodesEqual(self, node1, node2): + if not node1.nameTuple == node2.nameTuple: + return False + + if not node1.attributes == node2.attributes: + return False + + return True + + +class TreeBuilder(object): + """Base treebuilder implementation + + * documentClass - the class to use for the bottommost node of a document + * elementClass - the class to use for HTML Elements + * commentClass - the class to use for comments + * doctypeClass - the class to use for doctypes + + """ + # pylint:disable=not-callable + + # Document class + documentClass = None + + # The class to use for creating a node + elementClass = None + + # The class to use for creating comments + commentClass = None + + # The class to use for creating doctypes + doctypeClass = None + + # Fragment class + fragmentClass = None + + def __init__(self, namespaceHTMLElements): + """Create a TreeBuilder + + :arg namespaceHTMLElements: whether or not to namespace HTML elements + + """ + if namespaceHTMLElements: + self.defaultNamespace = "http://www.w3.org/1999/xhtml" + else: + self.defaultNamespace = None + self.reset() + + def reset(self): + self.openElements = [] + self.activeFormattingElements = ActiveFormattingElements() + + # XXX - rename these to headElement, formElement + self.headPointer = None + self.formPointer = None + + self.insertFromTable = False + + self.document = self.documentClass() + + def elementInScope(self, target, variant=None): + + # If we pass a node in we match that. if we pass a string + # match any node with that name + exactNode = hasattr(target, "nameTuple") + if not exactNode: + if isinstance(target, text_type): + target = (namespaces["html"], target) + assert isinstance(target, tuple) + + listElements, invert = listElementsMap[variant] + + for node in reversed(self.openElements): + if exactNode and node == target: + return True + elif not exactNode and node.nameTuple == target: + return True + elif (invert ^ (node.nameTuple in listElements)): + return False + + assert False # We should never reach this point + + def reconstructActiveFormattingElements(self): + # Within this algorithm the order of steps described in the + # specification is not quite the same as the order of steps in the + # code. It should still do the same though. + + # Step 1: stop the algorithm when there's nothing to do. + if not self.activeFormattingElements: + return + + # Step 2 and step 3: we start with the last element. So i is -1. + i = len(self.activeFormattingElements) - 1 + entry = self.activeFormattingElements[i] + if entry == Marker or entry in self.openElements: + return + + # Step 6 + while entry != Marker and entry not in self.openElements: + if i == 0: + # This will be reset to 0 below + i = -1 + break + i -= 1 + # Step 5: let entry be one earlier in the list. + entry = self.activeFormattingElements[i] + + while True: + # Step 7 + i += 1 + + # Step 8 + entry = self.activeFormattingElements[i] + clone = entry.cloneNode() # Mainly to get a new copy of the attributes + + # Step 9 + element = self.insertElement({"type": "StartTag", + "name": clone.name, + "namespace": clone.namespace, + "data": clone.attributes}) + + # Step 10 + self.activeFormattingElements[i] = element + + # Step 11 + if element == self.activeFormattingElements[-1]: + break + + def clearActiveFormattingElements(self): + entry = self.activeFormattingElements.pop() + while self.activeFormattingElements and entry != Marker: + entry = self.activeFormattingElements.pop() + + def elementInActiveFormattingElements(self, name): + """Check if an element exists between the end of the active + formatting elements and the last marker. If it does, return it, else + return false""" + + for item in self.activeFormattingElements[::-1]: + # Check for Marker first because if it's a Marker it doesn't have a + # name attribute. + if item == Marker: + break + elif item.name == name: + return item + return False + + def insertRoot(self, token): + element = self.createElement(token) + self.openElements.append(element) + self.document.appendChild(element) + + def insertDoctype(self, token): + name = token["name"] + publicId = token["publicId"] + systemId = token["systemId"] + + doctype = self.doctypeClass(name, publicId, systemId) + self.document.appendChild(doctype) + + def insertComment(self, token, parent=None): + if parent is None: + parent = self.openElements[-1] + parent.appendChild(self.commentClass(token["data"])) + + def createElement(self, token): + """Create an element but don't insert it anywhere""" + name = token["name"] + namespace = token.get("namespace", self.defaultNamespace) + element = self.elementClass(name, namespace) + element.attributes = token["data"] + return element + + def _getInsertFromTable(self): + return self._insertFromTable + + def _setInsertFromTable(self, value): + """Switch the function used to insert an element from the + normal one to the misnested table one and back again""" + self._insertFromTable = value + if value: + self.insertElement = self.insertElementTable + else: + self.insertElement = self.insertElementNormal + + insertFromTable = property(_getInsertFromTable, _setInsertFromTable) + + def insertElementNormal(self, token): + name = token["name"] + assert isinstance(name, text_type), "Element %s not unicode" % name + namespace = token.get("namespace", self.defaultNamespace) + element = self.elementClass(name, namespace) + element.attributes = token["data"] + self.openElements[-1].appendChild(element) + self.openElements.append(element) + return element + + def insertElementTable(self, token): + """Create an element and insert it into the tree""" + element = self.createElement(token) + if self.openElements[-1].name not in tableInsertModeElements: + return self.insertElementNormal(token) + else: + # We should be in the InTable mode. This means we want to do + # special magic element rearranging + parent, insertBefore = self.getTableMisnestedNodePosition() + if insertBefore is None: + parent.appendChild(element) + else: + parent.insertBefore(element, insertBefore) + self.openElements.append(element) + return element + + def insertText(self, data, parent=None): + """Insert text data.""" + if parent is None: + parent = self.openElements[-1] + + if (not self.insertFromTable or (self.insertFromTable and + self.openElements[-1].name + not in tableInsertModeElements)): + parent.insertText(data) + else: + # We should be in the InTable mode. This means we want to do + # special magic element rearranging + parent, insertBefore = self.getTableMisnestedNodePosition() + parent.insertText(data, insertBefore) + + def getTableMisnestedNodePosition(self): + """Get the foster parent element, and sibling to insert before + (or None) when inserting a misnested table node""" + # The foster parent element is the one which comes before the most + # recently opened table element + # XXX - this is really inelegant + lastTable = None + fosterParent = None + insertBefore = None + for elm in self.openElements[::-1]: + if elm.name == "table": + lastTable = elm + break + if lastTable: + # XXX - we should really check that this parent is actually a + # node here + if lastTable.parent: + fosterParent = lastTable.parent + insertBefore = lastTable + else: + fosterParent = self.openElements[ + self.openElements.index(lastTable) - 1] + else: + fosterParent = self.openElements[0] + return fosterParent, insertBefore + + def generateImpliedEndTags(self, exclude=None): + name = self.openElements[-1].name + # XXX td, th and tr are not actually needed + if (name in frozenset(("dd", "dt", "li", "option", "optgroup", "p", "rp", "rt")) and + name != exclude): + self.openElements.pop() + # XXX This is not entirely what the specification says. We should + # investigate it more closely. + self.generateImpliedEndTags(exclude) + + def getDocument(self): + """Return the final tree""" + return self.document + + def getFragment(self): + """Return the final fragment""" + # assert self.innerHTML + fragment = self.fragmentClass() + self.openElements[0].reparentChildren(fragment) + return fragment + + def testSerializer(self, node): + """Serialize the subtree of node in the format required by unit tests + + :arg node: the node from which to start serializing + + """ + raise NotImplementedError diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treebuilders/dom.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treebuilders/dom.py new file mode 100644 index 00000000..dcfac220 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treebuilders/dom.py @@ -0,0 +1,236 @@ +from __future__ import absolute_import, division, unicode_literals + + +from collections import MutableMapping +from xml.dom import minidom, Node +import weakref + +from . import base +from .. import constants +from ..constants import namespaces +from .._utils import moduleFactoryFactory + + +def getDomBuilder(DomImplementation): + Dom = DomImplementation + + class AttrList(MutableMapping): + def __init__(self, element): + self.element = element + + def __iter__(self): + return iter(self.element.attributes.keys()) + + def __setitem__(self, name, value): + if isinstance(name, tuple): + raise NotImplementedError + else: + attr = self.element.ownerDocument.createAttribute(name) + attr.value = value + self.element.attributes[name] = attr + + def __len__(self): + return len(self.element.attributes) + + def items(self): + return list(self.element.attributes.items()) + + def values(self): + return list(self.element.attributes.values()) + + def __getitem__(self, name): + if isinstance(name, tuple): + raise NotImplementedError + else: + return self.element.attributes[name].value + + def __delitem__(self, name): + if isinstance(name, tuple): + raise NotImplementedError + else: + del self.element.attributes[name] + + class NodeBuilder(base.Node): + def __init__(self, element): + base.Node.__init__(self, element.nodeName) + self.element = element + + namespace = property(lambda self: hasattr(self.element, "namespaceURI") and + self.element.namespaceURI or None) + + def appendChild(self, node): + node.parent = self + self.element.appendChild(node.element) + + def insertText(self, data, insertBefore=None): + text = self.element.ownerDocument.createTextNode(data) + if insertBefore: + self.element.insertBefore(text, insertBefore.element) + else: + self.element.appendChild(text) + + def insertBefore(self, node, refNode): + self.element.insertBefore(node.element, refNode.element) + node.parent = self + + def removeChild(self, node): + if node.element.parentNode == self.element: + self.element.removeChild(node.element) + node.parent = None + + def reparentChildren(self, newParent): + while self.element.hasChildNodes(): + child = self.element.firstChild + self.element.removeChild(child) + newParent.element.appendChild(child) + self.childNodes = [] + + def getAttributes(self): + return AttrList(self.element) + + def setAttributes(self, attributes): + if attributes: + for name, value in list(attributes.items()): + if isinstance(name, tuple): + if name[0] is not None: + qualifiedName = (name[0] + ":" + name[1]) + else: + qualifiedName = name[1] + self.element.setAttributeNS(name[2], qualifiedName, + value) + else: + self.element.setAttribute( + name, value) + attributes = property(getAttributes, setAttributes) + + def cloneNode(self): + return NodeBuilder(self.element.cloneNode(False)) + + def hasContent(self): + return self.element.hasChildNodes() + + def getNameTuple(self): + if self.namespace is None: + return namespaces["html"], self.name + else: + return self.namespace, self.name + + nameTuple = property(getNameTuple) + + class TreeBuilder(base.TreeBuilder): # pylint:disable=unused-variable + def documentClass(self): + self.dom = Dom.getDOMImplementation().createDocument(None, None, None) + return weakref.proxy(self) + + def insertDoctype(self, token): + name = token["name"] + publicId = token["publicId"] + systemId = token["systemId"] + + domimpl = Dom.getDOMImplementation() + doctype = domimpl.createDocumentType(name, publicId, systemId) + self.document.appendChild(NodeBuilder(doctype)) + if Dom == minidom: + doctype.ownerDocument = self.dom + + def elementClass(self, name, namespace=None): + if namespace is None and self.defaultNamespace is None: + node = self.dom.createElement(name) + else: + node = self.dom.createElementNS(namespace, name) + + return NodeBuilder(node) + + def commentClass(self, data): + return NodeBuilder(self.dom.createComment(data)) + + def fragmentClass(self): + return NodeBuilder(self.dom.createDocumentFragment()) + + def appendChild(self, node): + self.dom.appendChild(node.element) + + def testSerializer(self, element): + return testSerializer(element) + + def getDocument(self): + return self.dom + + def getFragment(self): + return base.TreeBuilder.getFragment(self).element + + def insertText(self, data, parent=None): + data = data + if parent != self: + base.TreeBuilder.insertText(self, data, parent) + else: + # HACK: allow text nodes as children of the document node + if hasattr(self.dom, '_child_node_types'): + # pylint:disable=protected-access + if Node.TEXT_NODE not in self.dom._child_node_types: + self.dom._child_node_types = list(self.dom._child_node_types) + self.dom._child_node_types.append(Node.TEXT_NODE) + self.dom.appendChild(self.dom.createTextNode(data)) + + implementation = DomImplementation + name = None + + def testSerializer(element): + element.normalize() + rv = [] + + def serializeElement(element, indent=0): + if element.nodeType == Node.DOCUMENT_TYPE_NODE: + if element.name: + if element.publicId or element.systemId: + publicId = element.publicId or "" + systemId = element.systemId or "" + rv.append("""|%s<!DOCTYPE %s "%s" "%s">""" % + (' ' * indent, element.name, publicId, systemId)) + else: + rv.append("|%s<!DOCTYPE %s>" % (' ' * indent, element.name)) + else: + rv.append("|%s<!DOCTYPE >" % (' ' * indent,)) + elif element.nodeType == Node.DOCUMENT_NODE: + rv.append("#document") + elif element.nodeType == Node.DOCUMENT_FRAGMENT_NODE: + rv.append("#document-fragment") + elif element.nodeType == Node.COMMENT_NODE: + rv.append("|%s<!-- %s -->" % (' ' * indent, element.nodeValue)) + elif element.nodeType == Node.TEXT_NODE: + rv.append("|%s\"%s\"" % (' ' * indent, element.nodeValue)) + else: + if (hasattr(element, "namespaceURI") and + element.namespaceURI is not None): + name = "%s %s" % (constants.prefixes[element.namespaceURI], + element.nodeName) + else: + name = element.nodeName + rv.append("|%s<%s>" % (' ' * indent, name)) + if element.hasAttributes(): + attributes = [] + for i in range(len(element.attributes)): + attr = element.attributes.item(i) + name = attr.nodeName + value = attr.value + ns = attr.namespaceURI + if ns: + name = "%s %s" % (constants.prefixes[ns], attr.localName) + else: + name = attr.nodeName + attributes.append((name, value)) + + for name, value in sorted(attributes): + rv.append('|%s%s="%s"' % (' ' * (indent + 2), name, value)) + indent += 2 + for child in element.childNodes: + serializeElement(child, indent) + serializeElement(element, 0) + + return "\n".join(rv) + + return locals() + + +# The actual means to get a module! +getDomModule = moduleFactoryFactory(getDomBuilder) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treebuilders/etree.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treebuilders/etree.py new file mode 100644 index 00000000..0dedf441 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treebuilders/etree.py @@ -0,0 +1,340 @@ +from __future__ import absolute_import, division, unicode_literals +# pylint:disable=protected-access + +from pip._vendor.six import text_type + +import re + +from . import base +from .. import _ihatexml +from .. import constants +from ..constants import namespaces +from .._utils import moduleFactoryFactory + +tag_regexp = re.compile("{([^}]*)}(.*)") + + +def getETreeBuilder(ElementTreeImplementation, fullTree=False): + ElementTree = ElementTreeImplementation + ElementTreeCommentType = ElementTree.Comment("asd").tag + + class Element(base.Node): + def __init__(self, name, namespace=None): + self._name = name + self._namespace = namespace + self._element = ElementTree.Element(self._getETreeTag(name, + namespace)) + if namespace is None: + self.nameTuple = namespaces["html"], self._name + else: + self.nameTuple = self._namespace, self._name + self.parent = None + self._childNodes = [] + self._flags = [] + + def _getETreeTag(self, name, namespace): + if namespace is None: + etree_tag = name + else: + etree_tag = "{%s}%s" % (namespace, name) + return etree_tag + + def _setName(self, name): + self._name = name + self._element.tag = self._getETreeTag(self._name, self._namespace) + + def _getName(self): + return self._name + + name = property(_getName, _setName) + + def _setNamespace(self, namespace): + self._namespace = namespace + self._element.tag = self._getETreeTag(self._name, self._namespace) + + def _getNamespace(self): + return self._namespace + + namespace = property(_getNamespace, _setNamespace) + + def _getAttributes(self): + return self._element.attrib + + def _setAttributes(self, attributes): + # Delete existing attributes first + # XXX - there may be a better way to do this... + for key in list(self._element.attrib.keys()): + del self._element.attrib[key] + for key, value in attributes.items(): + if isinstance(key, tuple): + name = "{%s}%s" % (key[2], key[1]) + else: + name = key + self._element.set(name, value) + + attributes = property(_getAttributes, _setAttributes) + + def _getChildNodes(self): + return self._childNodes + + def _setChildNodes(self, value): + del self._element[:] + self._childNodes = [] + for element in value: + self.insertChild(element) + + childNodes = property(_getChildNodes, _setChildNodes) + + def hasContent(self): + """Return true if the node has children or text""" + return bool(self._element.text or len(self._element)) + + def appendChild(self, node): + self._childNodes.append(node) + self._element.append(node._element) + node.parent = self + + def insertBefore(self, node, refNode): + index = list(self._element).index(refNode._element) + self._element.insert(index, node._element) + node.parent = self + + def removeChild(self, node): + self._childNodes.remove(node) + self._element.remove(node._element) + node.parent = None + + def insertText(self, data, insertBefore=None): + if not(len(self._element)): + if not self._element.text: + self._element.text = "" + self._element.text += data + elif insertBefore is None: + # Insert the text as the tail of the last child element + if not self._element[-1].tail: + self._element[-1].tail = "" + self._element[-1].tail += data + else: + # Insert the text before the specified node + children = list(self._element) + index = children.index(insertBefore._element) + if index > 0: + if not self._element[index - 1].tail: + self._element[index - 1].tail = "" + self._element[index - 1].tail += data + else: + if not self._element.text: + self._element.text = "" + self._element.text += data + + def cloneNode(self): + element = type(self)(self.name, self.namespace) + for name, value in self.attributes.items(): + element.attributes[name] = value + return element + + def reparentChildren(self, newParent): + if newParent.childNodes: + newParent.childNodes[-1]._element.tail += self._element.text + else: + if not newParent._element.text: + newParent._element.text = "" + if self._element.text is not None: + newParent._element.text += self._element.text + self._element.text = "" + base.Node.reparentChildren(self, newParent) + + class Comment(Element): + def __init__(self, data): + # Use the superclass constructor to set all properties on the + # wrapper element + self._element = ElementTree.Comment(data) + self.parent = None + self._childNodes = [] + self._flags = [] + + def _getData(self): + return self._element.text + + def _setData(self, value): + self._element.text = value + + data = property(_getData, _setData) + + class DocumentType(Element): + def __init__(self, name, publicId, systemId): + Element.__init__(self, "<!DOCTYPE>") + self._element.text = name + self.publicId = publicId + self.systemId = systemId + + def _getPublicId(self): + return self._element.get("publicId", "") + + def _setPublicId(self, value): + if value is not None: + self._element.set("publicId", value) + + publicId = property(_getPublicId, _setPublicId) + + def _getSystemId(self): + return self._element.get("systemId", "") + + def _setSystemId(self, value): + if value is not None: + self._element.set("systemId", value) + + systemId = property(_getSystemId, _setSystemId) + + class Document(Element): + def __init__(self): + Element.__init__(self, "DOCUMENT_ROOT") + + class DocumentFragment(Element): + def __init__(self): + Element.__init__(self, "DOCUMENT_FRAGMENT") + + def testSerializer(element): + rv = [] + + def serializeElement(element, indent=0): + if not(hasattr(element, "tag")): + element = element.getroot() + if element.tag == "<!DOCTYPE>": + if element.get("publicId") or element.get("systemId"): + publicId = element.get("publicId") or "" + systemId = element.get("systemId") or "" + rv.append("""<!DOCTYPE %s "%s" "%s">""" % + (element.text, publicId, systemId)) + else: + rv.append("<!DOCTYPE %s>" % (element.text,)) + elif element.tag == "DOCUMENT_ROOT": + rv.append("#document") + if element.text is not None: + rv.append("|%s\"%s\"" % (' ' * (indent + 2), element.text)) + if element.tail is not None: + raise TypeError("Document node cannot have tail") + if hasattr(element, "attrib") and len(element.attrib): + raise TypeError("Document node cannot have attributes") + elif element.tag == ElementTreeCommentType: + rv.append("|%s<!-- %s -->" % (' ' * indent, element.text)) + else: + assert isinstance(element.tag, text_type), \ + "Expected unicode, got %s, %s" % (type(element.tag), element.tag) + nsmatch = tag_regexp.match(element.tag) + + if nsmatch is None: + name = element.tag + else: + ns, name = nsmatch.groups() + prefix = constants.prefixes[ns] + name = "%s %s" % (prefix, name) + rv.append("|%s<%s>" % (' ' * indent, name)) + + if hasattr(element, "attrib"): + attributes = [] + for name, value in element.attrib.items(): + nsmatch = tag_regexp.match(name) + if nsmatch is not None: + ns, name = nsmatch.groups() + prefix = constants.prefixes[ns] + attr_string = "%s %s" % (prefix, name) + else: + attr_string = name + attributes.append((attr_string, value)) + + for name, value in sorted(attributes): + rv.append('|%s%s="%s"' % (' ' * (indent + 2), name, value)) + if element.text: + rv.append("|%s\"%s\"" % (' ' * (indent + 2), element.text)) + indent += 2 + for child in element: + serializeElement(child, indent) + if element.tail: + rv.append("|%s\"%s\"" % (' ' * (indent - 2), element.tail)) + serializeElement(element, 0) + + return "\n".join(rv) + + def tostring(element): # pylint:disable=unused-variable + """Serialize an element and its child nodes to a string""" + rv = [] + filter = _ihatexml.InfosetFilter() + + def serializeElement(element): + if isinstance(element, ElementTree.ElementTree): + element = element.getroot() + + if element.tag == "<!DOCTYPE>": + if element.get("publicId") or element.get("systemId"): + publicId = element.get("publicId") or "" + systemId = element.get("systemId") or "" + rv.append("""<!DOCTYPE %s PUBLIC "%s" "%s">""" % + (element.text, publicId, systemId)) + else: + rv.append("<!DOCTYPE %s>" % (element.text,)) + elif element.tag == "DOCUMENT_ROOT": + if element.text is not None: + rv.append(element.text) + if element.tail is not None: + raise TypeError("Document node cannot have tail") + if hasattr(element, "attrib") and len(element.attrib): + raise TypeError("Document node cannot have attributes") + + for child in element: + serializeElement(child) + + elif element.tag == ElementTreeCommentType: + rv.append("<!--%s-->" % (element.text,)) + else: + # This is assumed to be an ordinary element + if not element.attrib: + rv.append("<%s>" % (filter.fromXmlName(element.tag),)) + else: + attr = " ".join(["%s=\"%s\"" % ( + filter.fromXmlName(name), value) + for name, value in element.attrib.items()]) + rv.append("<%s %s>" % (element.tag, attr)) + if element.text: + rv.append(element.text) + + for child in element: + serializeElement(child) + + rv.append("</%s>" % (element.tag,)) + + if element.tail: + rv.append(element.tail) + + serializeElement(element) + + return "".join(rv) + + class TreeBuilder(base.TreeBuilder): # pylint:disable=unused-variable + documentClass = Document + doctypeClass = DocumentType + elementClass = Element + commentClass = Comment + fragmentClass = DocumentFragment + implementation = ElementTreeImplementation + + def testSerializer(self, element): + return testSerializer(element) + + def getDocument(self): + if fullTree: + return self.document._element + else: + if self.defaultNamespace is not None: + return self.document._element.find( + "{%s}html" % self.defaultNamespace) + else: + return self.document._element.find("html") + + def getFragment(self): + return base.TreeBuilder.getFragment(self)._element + + return locals() + + +getETreeModule = moduleFactoryFactory(getETreeBuilder) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treebuilders/etree_lxml.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treebuilders/etree_lxml.py new file mode 100644 index 00000000..ca12a99c --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treebuilders/etree_lxml.py @@ -0,0 +1,366 @@ +"""Module for supporting the lxml.etree library. The idea here is to use as much +of the native library as possible, without using fragile hacks like custom element +names that break between releases. The downside of this is that we cannot represent +all possible trees; specifically the following are known to cause problems: + +Text or comments as siblings of the root element +Docypes with no name + +When any of these things occur, we emit a DataLossWarning +""" + +from __future__ import absolute_import, division, unicode_literals +# pylint:disable=protected-access + +import warnings +import re +import sys + +from . import base +from ..constants import DataLossWarning +from .. import constants +from . import etree as etree_builders +from .. import _ihatexml + +import lxml.etree as etree + + +fullTree = True +tag_regexp = re.compile("{([^}]*)}(.*)") + +comment_type = etree.Comment("asd").tag + + +class DocumentType(object): + def __init__(self, name, publicId, systemId): + self.name = name + self.publicId = publicId + self.systemId = systemId + + +class Document(object): + def __init__(self): + self._elementTree = None + self._childNodes = [] + + def appendChild(self, element): + self._elementTree.getroot().addnext(element._element) + + def _getChildNodes(self): + return self._childNodes + + childNodes = property(_getChildNodes) + + +def testSerializer(element): + rv = [] + infosetFilter = _ihatexml.InfosetFilter(preventDoubleDashComments=True) + + def serializeElement(element, indent=0): + if not hasattr(element, "tag"): + if hasattr(element, "getroot"): + # Full tree case + rv.append("#document") + if element.docinfo.internalDTD: + if not (element.docinfo.public_id or + element.docinfo.system_url): + dtd_str = "<!DOCTYPE %s>" % element.docinfo.root_name + else: + dtd_str = """<!DOCTYPE %s "%s" "%s">""" % ( + element.docinfo.root_name, + element.docinfo.public_id, + element.docinfo.system_url) + rv.append("|%s%s" % (' ' * (indent + 2), dtd_str)) + next_element = element.getroot() + while next_element.getprevious() is not None: + next_element = next_element.getprevious() + while next_element is not None: + serializeElement(next_element, indent + 2) + next_element = next_element.getnext() + elif isinstance(element, str) or isinstance(element, bytes): + # Text in a fragment + assert isinstance(element, str) or sys.version_info[0] == 2 + rv.append("|%s\"%s\"" % (' ' * indent, element)) + else: + # Fragment case + rv.append("#document-fragment") + for next_element in element: + serializeElement(next_element, indent + 2) + elif element.tag == comment_type: + rv.append("|%s<!-- %s -->" % (' ' * indent, element.text)) + if hasattr(element, "tail") and element.tail: + rv.append("|%s\"%s\"" % (' ' * indent, element.tail)) + else: + assert isinstance(element, etree._Element) + nsmatch = etree_builders.tag_regexp.match(element.tag) + if nsmatch is not None: + ns = nsmatch.group(1) + tag = nsmatch.group(2) + prefix = constants.prefixes[ns] + rv.append("|%s<%s %s>" % (' ' * indent, prefix, + infosetFilter.fromXmlName(tag))) + else: + rv.append("|%s<%s>" % (' ' * indent, + infosetFilter.fromXmlName(element.tag))) + + if hasattr(element, "attrib"): + attributes = [] + for name, value in element.attrib.items(): + nsmatch = tag_regexp.match(name) + if nsmatch is not None: + ns, name = nsmatch.groups() + name = infosetFilter.fromXmlName(name) + prefix = constants.prefixes[ns] + attr_string = "%s %s" % (prefix, name) + else: + attr_string = infosetFilter.fromXmlName(name) + attributes.append((attr_string, value)) + + for name, value in sorted(attributes): + rv.append('|%s%s="%s"' % (' ' * (indent + 2), name, value)) + + if element.text: + rv.append("|%s\"%s\"" % (' ' * (indent + 2), element.text)) + indent += 2 + for child in element: + serializeElement(child, indent) + if hasattr(element, "tail") and element.tail: + rv.append("|%s\"%s\"" % (' ' * (indent - 2), element.tail)) + serializeElement(element, 0) + + return "\n".join(rv) + + +def tostring(element): + """Serialize an element and its child nodes to a string""" + rv = [] + + def serializeElement(element): + if not hasattr(element, "tag"): + if element.docinfo.internalDTD: + if element.docinfo.doctype: + dtd_str = element.docinfo.doctype + else: + dtd_str = "<!DOCTYPE %s>" % element.docinfo.root_name + rv.append(dtd_str) + serializeElement(element.getroot()) + + elif element.tag == comment_type: + rv.append("<!--%s-->" % (element.text,)) + + else: + # This is assumed to be an ordinary element + if not element.attrib: + rv.append("<%s>" % (element.tag,)) + else: + attr = " ".join(["%s=\"%s\"" % (name, value) + for name, value in element.attrib.items()]) + rv.append("<%s %s>" % (element.tag, attr)) + if element.text: + rv.append(element.text) + + for child in element: + serializeElement(child) + + rv.append("</%s>" % (element.tag,)) + + if hasattr(element, "tail") and element.tail: + rv.append(element.tail) + + serializeElement(element) + + return "".join(rv) + + +class TreeBuilder(base.TreeBuilder): + documentClass = Document + doctypeClass = DocumentType + elementClass = None + commentClass = None + fragmentClass = Document + implementation = etree + + def __init__(self, namespaceHTMLElements, fullTree=False): + builder = etree_builders.getETreeModule(etree, fullTree=fullTree) + infosetFilter = self.infosetFilter = _ihatexml.InfosetFilter(preventDoubleDashComments=True) + self.namespaceHTMLElements = namespaceHTMLElements + + class Attributes(dict): + def __init__(self, element, value=None): + if value is None: + value = {} + self._element = element + dict.__init__(self, value) # pylint:disable=non-parent-init-called + for key, value in self.items(): + if isinstance(key, tuple): + name = "{%s}%s" % (key[2], infosetFilter.coerceAttribute(key[1])) + else: + name = infosetFilter.coerceAttribute(key) + self._element._element.attrib[name] = value + + def __setitem__(self, key, value): + dict.__setitem__(self, key, value) + if isinstance(key, tuple): + name = "{%s}%s" % (key[2], infosetFilter.coerceAttribute(key[1])) + else: + name = infosetFilter.coerceAttribute(key) + self._element._element.attrib[name] = value + + class Element(builder.Element): + def __init__(self, name, namespace): + name = infosetFilter.coerceElement(name) + builder.Element.__init__(self, name, namespace=namespace) + self._attributes = Attributes(self) + + def _setName(self, name): + self._name = infosetFilter.coerceElement(name) + self._element.tag = self._getETreeTag( + self._name, self._namespace) + + def _getName(self): + return infosetFilter.fromXmlName(self._name) + + name = property(_getName, _setName) + + def _getAttributes(self): + return self._attributes + + def _setAttributes(self, attributes): + self._attributes = Attributes(self, attributes) + + attributes = property(_getAttributes, _setAttributes) + + def insertText(self, data, insertBefore=None): + data = infosetFilter.coerceCharacters(data) + builder.Element.insertText(self, data, insertBefore) + + def appendChild(self, child): + builder.Element.appendChild(self, child) + + class Comment(builder.Comment): + def __init__(self, data): + data = infosetFilter.coerceComment(data) + builder.Comment.__init__(self, data) + + def _setData(self, data): + data = infosetFilter.coerceComment(data) + self._element.text = data + + def _getData(self): + return self._element.text + + data = property(_getData, _setData) + + self.elementClass = Element + self.commentClass = Comment + # self.fragmentClass = builder.DocumentFragment + base.TreeBuilder.__init__(self, namespaceHTMLElements) + + def reset(self): + base.TreeBuilder.reset(self) + self.insertComment = self.insertCommentInitial + self.initial_comments = [] + self.doctype = None + + def testSerializer(self, element): + return testSerializer(element) + + def getDocument(self): + if fullTree: + return self.document._elementTree + else: + return self.document._elementTree.getroot() + + def getFragment(self): + fragment = [] + element = self.openElements[0]._element + if element.text: + fragment.append(element.text) + fragment.extend(list(element)) + if element.tail: + fragment.append(element.tail) + return fragment + + def insertDoctype(self, token): + name = token["name"] + publicId = token["publicId"] + systemId = token["systemId"] + + if not name: + warnings.warn("lxml cannot represent empty doctype", DataLossWarning) + self.doctype = None + else: + coercedName = self.infosetFilter.coerceElement(name) + if coercedName != name: + warnings.warn("lxml cannot represent non-xml doctype", DataLossWarning) + + doctype = self.doctypeClass(coercedName, publicId, systemId) + self.doctype = doctype + + def insertCommentInitial(self, data, parent=None): + assert parent is None or parent is self.document + assert self.document._elementTree is None + self.initial_comments.append(data) + + def insertCommentMain(self, data, parent=None): + if (parent == self.document and + self.document._elementTree.getroot()[-1].tag == comment_type): + warnings.warn("lxml cannot represent adjacent comments beyond the root elements", DataLossWarning) + super(TreeBuilder, self).insertComment(data, parent) + + def insertRoot(self, token): + # Because of the way libxml2 works, it doesn't seem to be possible to + # alter information like the doctype after the tree has been parsed. + # Therefore we need to use the built-in parser to create our initial + # tree, after which we can add elements like normal + docStr = "" + if self.doctype: + assert self.doctype.name + docStr += "<!DOCTYPE %s" % self.doctype.name + if (self.doctype.publicId is not None or + self.doctype.systemId is not None): + docStr += (' PUBLIC "%s" ' % + (self.infosetFilter.coercePubid(self.doctype.publicId or ""))) + if self.doctype.systemId: + sysid = self.doctype.systemId + if sysid.find("'") >= 0 and sysid.find('"') >= 0: + warnings.warn("DOCTYPE system cannot contain single and double quotes", DataLossWarning) + sysid = sysid.replace("'", 'U00027') + if sysid.find("'") >= 0: + docStr += '"%s"' % sysid + else: + docStr += "'%s'" % sysid + else: + docStr += "''" + docStr += ">" + if self.doctype.name != token["name"]: + warnings.warn("lxml cannot represent doctype with a different name to the root element", DataLossWarning) + docStr += "<THIS_SHOULD_NEVER_APPEAR_PUBLICLY/>" + root = etree.fromstring(docStr) + + # Append the initial comments: + for comment_token in self.initial_comments: + comment = self.commentClass(comment_token["data"]) + root.addprevious(comment._element) + + # Create the root document and add the ElementTree to it + self.document = self.documentClass() + self.document._elementTree = root.getroottree() + + # Give the root element the right name + name = token["name"] + namespace = token.get("namespace", self.defaultNamespace) + if namespace is None: + etree_tag = name + else: + etree_tag = "{%s}%s" % (namespace, name) + root.tag = etree_tag + + # Add the root element to the internal child/open data structures + root_element = self.elementClass(name, namespace) + root_element._element = root + self.document._childNodes.append(root_element) + self.openElements.append(root_element) + + # Reset to the default insert comment function + self.insertComment = self.insertCommentMain diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/__init__.py new file mode 100644 index 00000000..9bec2076 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/__init__.py @@ -0,0 +1,154 @@ +"""A collection of modules for iterating through different kinds of +tree, generating tokens identical to those produced by the tokenizer +module. + +To create a tree walker for a new type of tree, you need to do +implement a tree walker object (called TreeWalker by convention) that +implements a 'serialize' method taking a tree as sole argument and +returning an iterator generating tokens. +""" + +from __future__ import absolute_import, division, unicode_literals + +from .. import constants +from .._utils import default_etree + +__all__ = ["getTreeWalker", "pprint"] + +treeWalkerCache = {} + + +def getTreeWalker(treeType, implementation=None, **kwargs): + """Get a TreeWalker class for various types of tree with built-in support + + :arg str treeType: the name of the tree type required (case-insensitive). + Supported values are: + + * "dom": The xml.dom.minidom DOM implementation + * "etree": A generic walker for tree implementations exposing an + elementtree-like interface (known to work with ElementTree, + cElementTree and lxml.etree). + * "lxml": Optimized walker for lxml.etree + * "genshi": a Genshi stream + + :arg implementation: A module implementing the tree type e.g. + xml.etree.ElementTree or cElementTree (Currently applies to the "etree" + tree type only). + + :arg kwargs: keyword arguments passed to the etree walker--for other + walkers, this has no effect + + :returns: a TreeWalker class + + """ + + treeType = treeType.lower() + if treeType not in treeWalkerCache: + if treeType == "dom": + from . import dom + treeWalkerCache[treeType] = dom.TreeWalker + elif treeType == "genshi": + from . import genshi + treeWalkerCache[treeType] = genshi.TreeWalker + elif treeType == "lxml": + from . import etree_lxml + treeWalkerCache[treeType] = etree_lxml.TreeWalker + elif treeType == "etree": + from . import etree + if implementation is None: + implementation = default_etree + # XXX: NEVER cache here, caching is done in the etree submodule + return etree.getETreeModule(implementation, **kwargs).TreeWalker + return treeWalkerCache.get(treeType) + + +def concatenateCharacterTokens(tokens): + pendingCharacters = [] + for token in tokens: + type = token["type"] + if type in ("Characters", "SpaceCharacters"): + pendingCharacters.append(token["data"]) + else: + if pendingCharacters: + yield {"type": "Characters", "data": "".join(pendingCharacters)} + pendingCharacters = [] + yield token + if pendingCharacters: + yield {"type": "Characters", "data": "".join(pendingCharacters)} + + +def pprint(walker): + """Pretty printer for tree walkers + + Takes a TreeWalker instance and pretty prints the output of walking the tree. + + :arg walker: a TreeWalker instance + + """ + output = [] + indent = 0 + for token in concatenateCharacterTokens(walker): + type = token["type"] + if type in ("StartTag", "EmptyTag"): + # tag name + if token["namespace"] and token["namespace"] != constants.namespaces["html"]: + if token["namespace"] in constants.prefixes: + ns = constants.prefixes[token["namespace"]] + else: + ns = token["namespace"] + name = "%s %s" % (ns, token["name"]) + else: + name = token["name"] + output.append("%s<%s>" % (" " * indent, name)) + indent += 2 + # attributes (sorted for consistent ordering) + attrs = token["data"] + for (namespace, localname), value in sorted(attrs.items()): + if namespace: + if namespace in constants.prefixes: + ns = constants.prefixes[namespace] + else: + ns = namespace + name = "%s %s" % (ns, localname) + else: + name = localname + output.append("%s%s=\"%s\"" % (" " * indent, name, value)) + # self-closing + if type == "EmptyTag": + indent -= 2 + + elif type == "EndTag": + indent -= 2 + + elif type == "Comment": + output.append("%s<!-- %s -->" % (" " * indent, token["data"])) + + elif type == "Doctype": + if token["name"]: + if token["publicId"]: + output.append("""%s<!DOCTYPE %s "%s" "%s">""" % + (" " * indent, + token["name"], + token["publicId"], + token["systemId"] if token["systemId"] else "")) + elif token["systemId"]: + output.append("""%s<!DOCTYPE %s "" "%s">""" % + (" " * indent, + token["name"], + token["systemId"])) + else: + output.append("%s<!DOCTYPE %s>" % (" " * indent, + token["name"])) + else: + output.append("%s<!DOCTYPE >" % (" " * indent,)) + + elif type == "Characters": + output.append("%s\"%s\"" % (" " * indent, token["data"])) + + elif type == "SpaceCharacters": + assert False, "concatenateCharacterTokens should have got rid of all Space tokens" + + else: + raise ValueError("Unknown token type, %s" % type) + + return "\n".join(output) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/base.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/base.py new file mode 100644 index 00000000..80c474c4 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/base.py @@ -0,0 +1,252 @@ +from __future__ import absolute_import, division, unicode_literals + +from xml.dom import Node +from ..constants import namespaces, voidElements, spaceCharacters + +__all__ = ["DOCUMENT", "DOCTYPE", "TEXT", "ELEMENT", "COMMENT", "ENTITY", "UNKNOWN", + "TreeWalker", "NonRecursiveTreeWalker"] + +DOCUMENT = Node.DOCUMENT_NODE +DOCTYPE = Node.DOCUMENT_TYPE_NODE +TEXT = Node.TEXT_NODE +ELEMENT = Node.ELEMENT_NODE +COMMENT = Node.COMMENT_NODE +ENTITY = Node.ENTITY_NODE +UNKNOWN = "<#UNKNOWN#>" + +spaceCharacters = "".join(spaceCharacters) + + +class TreeWalker(object): + """Walks a tree yielding tokens + + Tokens are dicts that all have a ``type`` field specifying the type of the + token. + + """ + def __init__(self, tree): + """Creates a TreeWalker + + :arg tree: the tree to walk + + """ + self.tree = tree + + def __iter__(self): + raise NotImplementedError + + def error(self, msg): + """Generates an error token with the given message + + :arg msg: the error message + + :returns: SerializeError token + + """ + return {"type": "SerializeError", "data": msg} + + def emptyTag(self, namespace, name, attrs, hasChildren=False): + """Generates an EmptyTag token + + :arg namespace: the namespace of the token--can be ``None`` + + :arg name: the name of the element + + :arg attrs: the attributes of the element as a dict + + :arg hasChildren: whether or not to yield a SerializationError because + this tag shouldn't have children + + :returns: EmptyTag token + + """ + yield {"type": "EmptyTag", "name": name, + "namespace": namespace, + "data": attrs} + if hasChildren: + yield self.error("Void element has children") + + def startTag(self, namespace, name, attrs): + """Generates a StartTag token + + :arg namespace: the namespace of the token--can be ``None`` + + :arg name: the name of the element + + :arg attrs: the attributes of the element as a dict + + :returns: StartTag token + + """ + return {"type": "StartTag", + "name": name, + "namespace": namespace, + "data": attrs} + + def endTag(self, namespace, name): + """Generates an EndTag token + + :arg namespace: the namespace of the token--can be ``None`` + + :arg name: the name of the element + + :returns: EndTag token + + """ + return {"type": "EndTag", + "name": name, + "namespace": namespace} + + def text(self, data): + """Generates SpaceCharacters and Characters tokens + + Depending on what's in the data, this generates one or more + ``SpaceCharacters`` and ``Characters`` tokens. + + For example: + + >>> from html5lib.treewalkers.base import TreeWalker + >>> # Give it an empty tree just so it instantiates + >>> walker = TreeWalker([]) + >>> list(walker.text('')) + [] + >>> list(walker.text(' ')) + [{u'data': ' ', u'type': u'SpaceCharacters'}] + >>> list(walker.text(' abc ')) # doctest: +NORMALIZE_WHITESPACE + [{u'data': ' ', u'type': u'SpaceCharacters'}, + {u'data': u'abc', u'type': u'Characters'}, + {u'data': u' ', u'type': u'SpaceCharacters'}] + + :arg data: the text data + + :returns: one or more ``SpaceCharacters`` and ``Characters`` tokens + + """ + data = data + middle = data.lstrip(spaceCharacters) + left = data[:len(data) - len(middle)] + if left: + yield {"type": "SpaceCharacters", "data": left} + data = middle + middle = data.rstrip(spaceCharacters) + right = data[len(middle):] + if middle: + yield {"type": "Characters", "data": middle} + if right: + yield {"type": "SpaceCharacters", "data": right} + + def comment(self, data): + """Generates a Comment token + + :arg data: the comment + + :returns: Comment token + + """ + return {"type": "Comment", "data": data} + + def doctype(self, name, publicId=None, systemId=None): + """Generates a Doctype token + + :arg name: + + :arg publicId: + + :arg systemId: + + :returns: the Doctype token + + """ + return {"type": "Doctype", + "name": name, + "publicId": publicId, + "systemId": systemId} + + def entity(self, name): + """Generates an Entity token + + :arg name: the entity name + + :returns: an Entity token + + """ + return {"type": "Entity", "name": name} + + def unknown(self, nodeType): + """Handles unknown node types""" + return self.error("Unknown node type: " + nodeType) + + +class NonRecursiveTreeWalker(TreeWalker): + def getNodeDetails(self, node): + raise NotImplementedError + + def getFirstChild(self, node): + raise NotImplementedError + + def getNextSibling(self, node): + raise NotImplementedError + + def getParentNode(self, node): + raise NotImplementedError + + def __iter__(self): + currentNode = self.tree + while currentNode is not None: + details = self.getNodeDetails(currentNode) + type, details = details[0], details[1:] + hasChildren = False + + if type == DOCTYPE: + yield self.doctype(*details) + + elif type == TEXT: + for token in self.text(*details): + yield token + + elif type == ELEMENT: + namespace, name, attributes, hasChildren = details + if (not namespace or namespace == namespaces["html"]) and name in voidElements: + for token in self.emptyTag(namespace, name, attributes, + hasChildren): + yield token + hasChildren = False + else: + yield self.startTag(namespace, name, attributes) + + elif type == COMMENT: + yield self.comment(details[0]) + + elif type == ENTITY: + yield self.entity(details[0]) + + elif type == DOCUMENT: + hasChildren = True + + else: + yield self.unknown(details[0]) + + if hasChildren: + firstChild = self.getFirstChild(currentNode) + else: + firstChild = None + + if firstChild is not None: + currentNode = firstChild + else: + while currentNode is not None: + details = self.getNodeDetails(currentNode) + type, details = details[0], details[1:] + if type == ELEMENT: + namespace, name, attributes, hasChildren = details + if (namespace and namespace != namespaces["html"]) or name not in voidElements: + yield self.endTag(namespace, name) + if self.tree is currentNode: + currentNode = None + break + nextSibling = self.getNextSibling(currentNode) + if nextSibling is not None: + currentNode = nextSibling + break + else: + currentNode = self.getParentNode(currentNode) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/dom.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/dom.py new file mode 100644 index 00000000..b0c89b00 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/dom.py @@ -0,0 +1,43 @@ +from __future__ import absolute_import, division, unicode_literals + +from xml.dom import Node + +from . import base + + +class TreeWalker(base.NonRecursiveTreeWalker): + def getNodeDetails(self, node): + if node.nodeType == Node.DOCUMENT_TYPE_NODE: + return base.DOCTYPE, node.name, node.publicId, node.systemId + + elif node.nodeType in (Node.TEXT_NODE, Node.CDATA_SECTION_NODE): + return base.TEXT, node.nodeValue + + elif node.nodeType == Node.ELEMENT_NODE: + attrs = {} + for attr in list(node.attributes.keys()): + attr = node.getAttributeNode(attr) + if attr.namespaceURI: + attrs[(attr.namespaceURI, attr.localName)] = attr.value + else: + attrs[(None, attr.name)] = attr.value + return (base.ELEMENT, node.namespaceURI, node.nodeName, + attrs, node.hasChildNodes()) + + elif node.nodeType == Node.COMMENT_NODE: + return base.COMMENT, node.nodeValue + + elif node.nodeType in (Node.DOCUMENT_NODE, Node.DOCUMENT_FRAGMENT_NODE): + return (base.DOCUMENT,) + + else: + return base.UNKNOWN, node.nodeType + + def getFirstChild(self, node): + return node.firstChild + + def getNextSibling(self, node): + return node.nextSibling + + def getParentNode(self, node): + return node.parentNode diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/etree.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/etree.py new file mode 100644 index 00000000..95fc0c17 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/etree.py @@ -0,0 +1,130 @@ +from __future__ import absolute_import, division, unicode_literals + +from collections import OrderedDict +import re + +from pip._vendor.six import string_types + +from . import base +from .._utils import moduleFactoryFactory + +tag_regexp = re.compile("{([^}]*)}(.*)") + + +def getETreeBuilder(ElementTreeImplementation): + ElementTree = ElementTreeImplementation + ElementTreeCommentType = ElementTree.Comment("asd").tag + + class TreeWalker(base.NonRecursiveTreeWalker): # pylint:disable=unused-variable + """Given the particular ElementTree representation, this implementation, + to avoid using recursion, returns "nodes" as tuples with the following + content: + + 1. The current element + + 2. The index of the element relative to its parent + + 3. A stack of ancestor elements + + 4. A flag "text", "tail" or None to indicate if the current node is a + text node; either the text or tail of the current element (1) + """ + def getNodeDetails(self, node): + if isinstance(node, tuple): # It might be the root Element + elt, _, _, flag = node + if flag in ("text", "tail"): + return base.TEXT, getattr(elt, flag) + else: + node = elt + + if not(hasattr(node, "tag")): + node = node.getroot() + + if node.tag in ("DOCUMENT_ROOT", "DOCUMENT_FRAGMENT"): + return (base.DOCUMENT,) + + elif node.tag == "<!DOCTYPE>": + return (base.DOCTYPE, node.text, + node.get("publicId"), node.get("systemId")) + + elif node.tag == ElementTreeCommentType: + return base.COMMENT, node.text + + else: + assert isinstance(node.tag, string_types), type(node.tag) + # This is assumed to be an ordinary element + match = tag_regexp.match(node.tag) + if match: + namespace, tag = match.groups() + else: + namespace = None + tag = node.tag + attrs = OrderedDict() + for name, value in list(node.attrib.items()): + match = tag_regexp.match(name) + if match: + attrs[(match.group(1), match.group(2))] = value + else: + attrs[(None, name)] = value + return (base.ELEMENT, namespace, tag, + attrs, len(node) or node.text) + + def getFirstChild(self, node): + if isinstance(node, tuple): + element, key, parents, flag = node + else: + element, key, parents, flag = node, None, [], None + + if flag in ("text", "tail"): + return None + else: + if element.text: + return element, key, parents, "text" + elif len(element): + parents.append(element) + return element[0], 0, parents, None + else: + return None + + def getNextSibling(self, node): + if isinstance(node, tuple): + element, key, parents, flag = node + else: + return None + + if flag == "text": + if len(element): + parents.append(element) + return element[0], 0, parents, None + else: + return None + else: + if element.tail and flag != "tail": + return element, key, parents, "tail" + elif key < len(parents[-1]) - 1: + return parents[-1][key + 1], key + 1, parents, None + else: + return None + + def getParentNode(self, node): + if isinstance(node, tuple): + element, key, parents, flag = node + else: + return None + + if flag == "text": + if not parents: + return element + else: + return element, key, parents, None + else: + parent = parents.pop() + if not parents: + return parent + else: + assert list(parents[-1]).count(parent) == 1 + return parent, list(parents[-1]).index(parent), parents, None + + return locals() + +getETreeModule = moduleFactoryFactory(getETreeBuilder) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/etree_lxml.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/etree_lxml.py new file mode 100644 index 00000000..e81ddf33 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/etree_lxml.py @@ -0,0 +1,213 @@ +from __future__ import absolute_import, division, unicode_literals +from pip._vendor.six import text_type + +from lxml import etree +from ..treebuilders.etree import tag_regexp + +from . import base + +from .. import _ihatexml + + +def ensure_str(s): + if s is None: + return None + elif isinstance(s, text_type): + return s + else: + return s.decode("ascii", "strict") + + +class Root(object): + def __init__(self, et): + self.elementtree = et + self.children = [] + + try: + if et.docinfo.internalDTD: + self.children.append(Doctype(self, + ensure_str(et.docinfo.root_name), + ensure_str(et.docinfo.public_id), + ensure_str(et.docinfo.system_url))) + except AttributeError: + pass + + try: + node = et.getroot() + except AttributeError: + node = et + + while node.getprevious() is not None: + node = node.getprevious() + while node is not None: + self.children.append(node) + node = node.getnext() + + self.text = None + self.tail = None + + def __getitem__(self, key): + return self.children[key] + + def getnext(self): + return None + + def __len__(self): + return 1 + + +class Doctype(object): + def __init__(self, root_node, name, public_id, system_id): + self.root_node = root_node + self.name = name + self.public_id = public_id + self.system_id = system_id + + self.text = None + self.tail = None + + def getnext(self): + return self.root_node.children[1] + + +class FragmentRoot(Root): + def __init__(self, children): + self.children = [FragmentWrapper(self, child) for child in children] + self.text = self.tail = None + + def getnext(self): + return None + + +class FragmentWrapper(object): + def __init__(self, fragment_root, obj): + self.root_node = fragment_root + self.obj = obj + if hasattr(self.obj, 'text'): + self.text = ensure_str(self.obj.text) + else: + self.text = None + if hasattr(self.obj, 'tail'): + self.tail = ensure_str(self.obj.tail) + else: + self.tail = None + + def __getattr__(self, name): + return getattr(self.obj, name) + + def getnext(self): + siblings = self.root_node.children + idx = siblings.index(self) + if idx < len(siblings) - 1: + return siblings[idx + 1] + else: + return None + + def __getitem__(self, key): + return self.obj[key] + + def __bool__(self): + return bool(self.obj) + + def getparent(self): + return None + + def __str__(self): + return str(self.obj) + + def __unicode__(self): + return str(self.obj) + + def __len__(self): + return len(self.obj) + + +class TreeWalker(base.NonRecursiveTreeWalker): + def __init__(self, tree): + # pylint:disable=redefined-variable-type + if isinstance(tree, list): + self.fragmentChildren = set(tree) + tree = FragmentRoot(tree) + else: + self.fragmentChildren = set() + tree = Root(tree) + base.NonRecursiveTreeWalker.__init__(self, tree) + self.filter = _ihatexml.InfosetFilter() + + def getNodeDetails(self, node): + if isinstance(node, tuple): # Text node + node, key = node + assert key in ("text", "tail"), "Text nodes are text or tail, found %s" % key + return base.TEXT, ensure_str(getattr(node, key)) + + elif isinstance(node, Root): + return (base.DOCUMENT,) + + elif isinstance(node, Doctype): + return base.DOCTYPE, node.name, node.public_id, node.system_id + + elif isinstance(node, FragmentWrapper) and not hasattr(node, "tag"): + return base.TEXT, ensure_str(node.obj) + + elif node.tag == etree.Comment: + return base.COMMENT, ensure_str(node.text) + + elif node.tag == etree.Entity: + return base.ENTITY, ensure_str(node.text)[1:-1] # strip &; + + else: + # This is assumed to be an ordinary element + match = tag_regexp.match(ensure_str(node.tag)) + if match: + namespace, tag = match.groups() + else: + namespace = None + tag = ensure_str(node.tag) + attrs = {} + for name, value in list(node.attrib.items()): + name = ensure_str(name) + value = ensure_str(value) + match = tag_regexp.match(name) + if match: + attrs[(match.group(1), match.group(2))] = value + else: + attrs[(None, name)] = value + return (base.ELEMENT, namespace, self.filter.fromXmlName(tag), + attrs, len(node) > 0 or node.text) + + def getFirstChild(self, node): + assert not isinstance(node, tuple), "Text nodes have no children" + + assert len(node) or node.text, "Node has no children" + if node.text: + return (node, "text") + else: + return node[0] + + def getNextSibling(self, node): + if isinstance(node, tuple): # Text node + node, key = node + assert key in ("text", "tail"), "Text nodes are text or tail, found %s" % key + if key == "text": + # XXX: we cannot use a "bool(node) and node[0] or None" construct here + # because node[0] might evaluate to False if it has no child element + if len(node): + return node[0] + else: + return None + else: # tail + return node.getnext() + + return (node, "tail") if node.tail else node.getnext() + + def getParentNode(self, node): + if isinstance(node, tuple): # Text node + node, key = node + assert key in ("text", "tail"), "Text nodes are text or tail, found %s" % key + if key == "text": + return node + # else: fallback to "normal" processing + elif node in self.fragmentChildren: + return None + + return node.getparent() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/genshi.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/genshi.py new file mode 100644 index 00000000..7483be27 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/html5lib/treewalkers/genshi.py @@ -0,0 +1,69 @@ +from __future__ import absolute_import, division, unicode_literals + +from genshi.core import QName +from genshi.core import START, END, XML_NAMESPACE, DOCTYPE, TEXT +from genshi.core import START_NS, END_NS, START_CDATA, END_CDATA, PI, COMMENT + +from . import base + +from ..constants import voidElements, namespaces + + +class TreeWalker(base.TreeWalker): + def __iter__(self): + # Buffer the events so we can pass in the following one + previous = None + for event in self.tree: + if previous is not None: + for token in self.tokens(previous, event): + yield token + previous = event + + # Don't forget the final event! + if previous is not None: + for token in self.tokens(previous, None): + yield token + + def tokens(self, event, next): + kind, data, _ = event + if kind == START: + tag, attribs = data + name = tag.localname + namespace = tag.namespace + converted_attribs = {} + for k, v in attribs: + if isinstance(k, QName): + converted_attribs[(k.namespace, k.localname)] = v + else: + converted_attribs[(None, k)] = v + + if namespace == namespaces["html"] and name in voidElements: + for token in self.emptyTag(namespace, name, converted_attribs, + not next or next[0] != END or + next[1] != tag): + yield token + else: + yield self.startTag(namespace, name, converted_attribs) + + elif kind == END: + name = data.localname + namespace = data.namespace + if namespace != namespaces["html"] or name not in voidElements: + yield self.endTag(namespace, name) + + elif kind == COMMENT: + yield self.comment(data) + + elif kind == TEXT: + for token in self.text(data): + yield token + + elif kind == DOCTYPE: + yield self.doctype(*data) + + elif kind in (XML_NAMESPACE, DOCTYPE, START_NS, END_NS, + START_CDATA, END_CDATA, PI): + pass + + else: + yield self.unknown(kind) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/__init__.py new file mode 100644 index 00000000..847bf935 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/__init__.py @@ -0,0 +1,2 @@ +from .package_data import __version__ +from .core import * diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/codec.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/codec.py new file mode 100644 index 00000000..98c65ead --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/codec.py @@ -0,0 +1,118 @@ +from .core import encode, decode, alabel, ulabel, IDNAError +import codecs +import re + +_unicode_dots_re = re.compile(u'[\u002e\u3002\uff0e\uff61]') + +class Codec(codecs.Codec): + + def encode(self, data, errors='strict'): + + if errors != 'strict': + raise IDNAError("Unsupported error handling \"{0}\"".format(errors)) + + if not data: + return "", 0 + + return encode(data), len(data) + + def decode(self, data, errors='strict'): + + if errors != 'strict': + raise IDNAError("Unsupported error handling \"{0}\"".format(errors)) + + if not data: + return u"", 0 + + return decode(data), len(data) + +class IncrementalEncoder(codecs.BufferedIncrementalEncoder): + def _buffer_encode(self, data, errors, final): + if errors != 'strict': + raise IDNAError("Unsupported error handling \"{0}\"".format(errors)) + + if not data: + return ("", 0) + + labels = _unicode_dots_re.split(data) + trailing_dot = u'' + if labels: + if not labels[-1]: + trailing_dot = '.' + del labels[-1] + elif not final: + # Keep potentially unfinished label until the next call + del labels[-1] + if labels: + trailing_dot = '.' + + result = [] + size = 0 + for label in labels: + result.append(alabel(label)) + if size: + size += 1 + size += len(label) + + # Join with U+002E + result = ".".join(result) + trailing_dot + size += len(trailing_dot) + return (result, size) + +class IncrementalDecoder(codecs.BufferedIncrementalDecoder): + def _buffer_decode(self, data, errors, final): + if errors != 'strict': + raise IDNAError("Unsupported error handling \"{0}\"".format(errors)) + + if not data: + return (u"", 0) + + # IDNA allows decoding to operate on Unicode strings, too. + if isinstance(data, unicode): + labels = _unicode_dots_re.split(data) + else: + # Must be ASCII string + data = str(data) + unicode(data, "ascii") + labels = data.split(".") + + trailing_dot = u'' + if labels: + if not labels[-1]: + trailing_dot = u'.' + del labels[-1] + elif not final: + # Keep potentially unfinished label until the next call + del labels[-1] + if labels: + trailing_dot = u'.' + + result = [] + size = 0 + for label in labels: + result.append(ulabel(label)) + if size: + size += 1 + size += len(label) + + result = u".".join(result) + trailing_dot + size += len(trailing_dot) + return (result, size) + + +class StreamWriter(Codec, codecs.StreamWriter): + pass + +class StreamReader(Codec, codecs.StreamReader): + pass + +def getregentry(): + return codecs.CodecInfo( + name='idna', + encode=Codec().encode, + decode=Codec().decode, + incrementalencoder=IncrementalEncoder, + incrementaldecoder=IncrementalDecoder, + streamwriter=StreamWriter, + streamreader=StreamReader, + ) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/compat.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/compat.py new file mode 100644 index 00000000..4d47f336 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/compat.py @@ -0,0 +1,12 @@ +from .core import * +from .codec import * + +def ToASCII(label): + return encode(label) + +def ToUnicode(label): + return decode(label) + +def nameprep(s): + raise NotImplementedError("IDNA 2008 does not utilise nameprep protocol") + diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/core.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/core.py new file mode 100644 index 00000000..b55b6645 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/core.py @@ -0,0 +1,387 @@ +from . import idnadata +import bisect +import unicodedata +import re +import sys +from .intranges import intranges_contain + +_virama_combining_class = 9 +_alabel_prefix = b'xn--' +_unicode_dots_re = re.compile(u'[\u002e\u3002\uff0e\uff61]') + +if sys.version_info[0] == 3: + unicode = str + unichr = chr + +class IDNAError(UnicodeError): + """ Base exception for all IDNA-encoding related problems """ + pass + + +class IDNABidiError(IDNAError): + """ Exception when bidirectional requirements are not satisfied """ + pass + + +class InvalidCodepoint(IDNAError): + """ Exception when a disallowed or unallocated codepoint is used """ + pass + + +class InvalidCodepointContext(IDNAError): + """ Exception when the codepoint is not valid in the context it is used """ + pass + + +def _combining_class(cp): + return unicodedata.combining(unichr(cp)) + +def _is_script(cp, script): + return intranges_contain(ord(cp), idnadata.scripts[script]) + +def _punycode(s): + return s.encode('punycode') + +def _unot(s): + return 'U+{0:04X}'.format(s) + + +def valid_label_length(label): + + if len(label) > 63: + return False + return True + + +def valid_string_length(label, trailing_dot): + + if len(label) > (254 if trailing_dot else 253): + return False + return True + + +def check_bidi(label, check_ltr=False): + + # Bidi rules should only be applied if string contains RTL characters + bidi_label = False + for (idx, cp) in enumerate(label, 1): + direction = unicodedata.bidirectional(cp) + if direction == '': + # String likely comes from a newer version of Unicode + raise IDNABidiError('Unknown directionality in label {0} at position {1}'.format(repr(label), idx)) + if direction in ['R', 'AL', 'AN']: + bidi_label = True + break + if not bidi_label and not check_ltr: + return True + + # Bidi rule 1 + direction = unicodedata.bidirectional(label[0]) + if direction in ['R', 'AL']: + rtl = True + elif direction == 'L': + rtl = False + else: + raise IDNABidiError('First codepoint in label {0} must be directionality L, R or AL'.format(repr(label))) + + valid_ending = False + number_type = False + for (idx, cp) in enumerate(label, 1): + direction = unicodedata.bidirectional(cp) + + if rtl: + # Bidi rule 2 + if not direction in ['R', 'AL', 'AN', 'EN', 'ES', 'CS', 'ET', 'ON', 'BN', 'NSM']: + raise IDNABidiError('Invalid direction for codepoint at position {0} in a right-to-left label'.format(idx)) + # Bidi rule 3 + if direction in ['R', 'AL', 'EN', 'AN']: + valid_ending = True + elif direction != 'NSM': + valid_ending = False + # Bidi rule 4 + if direction in ['AN', 'EN']: + if not number_type: + number_type = direction + else: + if number_type != direction: + raise IDNABidiError('Can not mix numeral types in a right-to-left label') + else: + # Bidi rule 5 + if not direction in ['L', 'EN', 'ES', 'CS', 'ET', 'ON', 'BN', 'NSM']: + raise IDNABidiError('Invalid direction for codepoint at position {0} in a left-to-right label'.format(idx)) + # Bidi rule 6 + if direction in ['L', 'EN']: + valid_ending = True + elif direction != 'NSM': + valid_ending = False + + if not valid_ending: + raise IDNABidiError('Label ends with illegal codepoint directionality') + + return True + + +def check_initial_combiner(label): + + if unicodedata.category(label[0])[0] == 'M': + raise IDNAError('Label begins with an illegal combining character') + return True + + +def check_hyphen_ok(label): + + if label[2:4] == '--': + raise IDNAError('Label has disallowed hyphens in 3rd and 4th position') + if label[0] == '-' or label[-1] == '-': + raise IDNAError('Label must not start or end with a hyphen') + return True + + +def check_nfc(label): + + if unicodedata.normalize('NFC', label) != label: + raise IDNAError('Label must be in Normalization Form C') + + +def valid_contextj(label, pos): + + cp_value = ord(label[pos]) + + if cp_value == 0x200c: + + if pos > 0: + if _combining_class(ord(label[pos - 1])) == _virama_combining_class: + return True + + ok = False + for i in range(pos-1, -1, -1): + joining_type = idnadata.joining_types.get(ord(label[i])) + if joining_type == ord('T'): + continue + if joining_type in [ord('L'), ord('D')]: + ok = True + break + + if not ok: + return False + + ok = False + for i in range(pos+1, len(label)): + joining_type = idnadata.joining_types.get(ord(label[i])) + if joining_type == ord('T'): + continue + if joining_type in [ord('R'), ord('D')]: + ok = True + break + return ok + + if cp_value == 0x200d: + + if pos > 0: + if _combining_class(ord(label[pos - 1])) == _virama_combining_class: + return True + return False + + else: + + return False + + +def valid_contexto(label, pos, exception=False): + + cp_value = ord(label[pos]) + + if cp_value == 0x00b7: + if 0 < pos < len(label)-1: + if ord(label[pos - 1]) == 0x006c and ord(label[pos + 1]) == 0x006c: + return True + return False + + elif cp_value == 0x0375: + if pos < len(label)-1 and len(label) > 1: + return _is_script(label[pos + 1], 'Greek') + return False + + elif cp_value == 0x05f3 or cp_value == 0x05f4: + if pos > 0: + return _is_script(label[pos - 1], 'Hebrew') + return False + + elif cp_value == 0x30fb: + for cp in label: + if cp == u'\u30fb': + continue + if _is_script(cp, 'Hiragana') or _is_script(cp, 'Katakana') or _is_script(cp, 'Han'): + return True + return False + + elif 0x660 <= cp_value <= 0x669: + for cp in label: + if 0x6f0 <= ord(cp) <= 0x06f9: + return False + return True + + elif 0x6f0 <= cp_value <= 0x6f9: + for cp in label: + if 0x660 <= ord(cp) <= 0x0669: + return False + return True + + +def check_label(label): + + if isinstance(label, (bytes, bytearray)): + label = label.decode('utf-8') + if len(label) == 0: + raise IDNAError('Empty Label') + + check_nfc(label) + check_hyphen_ok(label) + check_initial_combiner(label) + + for (pos, cp) in enumerate(label): + cp_value = ord(cp) + if intranges_contain(cp_value, idnadata.codepoint_classes['PVALID']): + continue + elif intranges_contain(cp_value, idnadata.codepoint_classes['CONTEXTJ']): + if not valid_contextj(label, pos): + raise InvalidCodepointContext('Joiner {0} not allowed at position {1} in {2}'.format(_unot(cp_value), pos+1, repr(label))) + elif intranges_contain(cp_value, idnadata.codepoint_classes['CONTEXTO']): + if not valid_contexto(label, pos): + raise InvalidCodepointContext('Codepoint {0} not allowed at position {1} in {2}'.format(_unot(cp_value), pos+1, repr(label))) + else: + raise InvalidCodepoint('Codepoint {0} at position {1} of {2} not allowed'.format(_unot(cp_value), pos+1, repr(label))) + + check_bidi(label) + + +def alabel(label): + + try: + label = label.encode('ascii') + try: + ulabel(label) + except IDNAError: + raise IDNAError('The label {0} is not a valid A-label'.format(label)) + if not valid_label_length(label): + raise IDNAError('Label too long') + return label + except UnicodeEncodeError: + pass + + if not label: + raise IDNAError('No Input') + + label = unicode(label) + check_label(label) + label = _punycode(label) + label = _alabel_prefix + label + + if not valid_label_length(label): + raise IDNAError('Label too long') + + return label + + +def ulabel(label): + + if not isinstance(label, (bytes, bytearray)): + try: + label = label.encode('ascii') + except UnicodeEncodeError: + check_label(label) + return label + + label = label.lower() + if label.startswith(_alabel_prefix): + label = label[len(_alabel_prefix):] + else: + check_label(label) + return label.decode('ascii') + + label = label.decode('punycode') + check_label(label) + return label + + +def uts46_remap(domain, std3_rules=True, transitional=False): + """Re-map the characters in the string according to UTS46 processing.""" + from .uts46data import uts46data + output = u"" + try: + for pos, char in enumerate(domain): + code_point = ord(char) + uts46row = uts46data[code_point if code_point < 256 else + bisect.bisect_left(uts46data, (code_point, "Z")) - 1] + status = uts46row[1] + replacement = uts46row[2] if len(uts46row) == 3 else None + if (status == "V" or + (status == "D" and not transitional) or + (status == "3" and std3_rules and replacement is None)): + output += char + elif replacement is not None and (status == "M" or + (status == "3" and std3_rules) or + (status == "D" and transitional)): + output += replacement + elif status != "I": + raise IndexError() + return unicodedata.normalize("NFC", output) + except IndexError: + raise InvalidCodepoint( + "Codepoint {0} not allowed at position {1} in {2}".format( + _unot(code_point), pos + 1, repr(domain))) + + +def encode(s, strict=False, uts46=False, std3_rules=False, transitional=False): + + if isinstance(s, (bytes, bytearray)): + s = s.decode("ascii") + if uts46: + s = uts46_remap(s, std3_rules, transitional) + trailing_dot = False + result = [] + if strict: + labels = s.split('.') + else: + labels = _unicode_dots_re.split(s) + while labels and not labels[0]: + del labels[0] + if not labels: + raise IDNAError('Empty domain') + if labels[-1] == '': + del labels[-1] + trailing_dot = True + for label in labels: + result.append(alabel(label)) + if trailing_dot: + result.append(b'') + s = b'.'.join(result) + if not valid_string_length(s, trailing_dot): + raise IDNAError('Domain too long') + return s + + +def decode(s, strict=False, uts46=False, std3_rules=False): + + if isinstance(s, (bytes, bytearray)): + s = s.decode("ascii") + if uts46: + s = uts46_remap(s, std3_rules, False) + trailing_dot = False + result = [] + if not strict: + labels = _unicode_dots_re.split(s) + else: + labels = s.split(u'.') + while labels and not labels[0]: + del labels[0] + if not labels: + raise IDNAError('Empty domain') + if not labels[-1]: + del labels[-1] + trailing_dot = True + for label in labels: + result.append(ulabel(label)) + if trailing_dot: + result.append(u'') + return u'.'.join(result) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/idnadata.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/idnadata.py new file mode 100644 index 00000000..c48f1b50 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/idnadata.py @@ -0,0 +1,1585 @@ +# This file is automatically generated by tools/idna-data + +__version__ = "6.3.0" +scripts = { + 'Greek': ( + 0x37000000374, + 0x37500000378, + 0x37a0000037e, + 0x38400000385, + 0x38600000387, + 0x3880000038b, + 0x38c0000038d, + 0x38e000003a2, + 0x3a3000003e2, + 0x3f000000400, + 0x1d2600001d2b, + 0x1d5d00001d62, + 0x1d6600001d6b, + 0x1dbf00001dc0, + 0x1f0000001f16, + 0x1f1800001f1e, + 0x1f2000001f46, + 0x1f4800001f4e, + 0x1f5000001f58, + 0x1f5900001f5a, + 0x1f5b00001f5c, + 0x1f5d00001f5e, + 0x1f5f00001f7e, + 0x1f8000001fb5, + 0x1fb600001fc5, + 0x1fc600001fd4, + 0x1fd600001fdc, + 0x1fdd00001ff0, + 0x1ff200001ff5, + 0x1ff600001fff, + 0x212600002127, + 0x101400001018b, + 0x1d2000001d246, + ), + 'Han': ( + 0x2e8000002e9a, + 0x2e9b00002ef4, + 0x2f0000002fd6, + 0x300500003006, + 0x300700003008, + 0x30210000302a, + 0x30380000303c, + 0x340000004db6, + 0x4e0000009fcd, + 0xf9000000fa6e, + 0xfa700000fada, + 0x200000002a6d7, + 0x2a7000002b735, + 0x2b7400002b81e, + 0x2f8000002fa1e, + ), + 'Hebrew': ( + 0x591000005c8, + 0x5d0000005eb, + 0x5f0000005f5, + 0xfb1d0000fb37, + 0xfb380000fb3d, + 0xfb3e0000fb3f, + 0xfb400000fb42, + 0xfb430000fb45, + 0xfb460000fb50, + ), + 'Hiragana': ( + 0x304100003097, + 0x309d000030a0, + 0x1b0010001b002, + 0x1f2000001f201, + ), + 'Katakana': ( + 0x30a1000030fb, + 0x30fd00003100, + 0x31f000003200, + 0x32d0000032ff, + 0x330000003358, + 0xff660000ff70, + 0xff710000ff9e, + 0x1b0000001b001, + ), +} +joining_types = { + 0x600: 85, + 0x601: 85, + 0x602: 85, + 0x603: 85, + 0x604: 85, + 0x608: 85, + 0x60b: 85, + 0x620: 68, + 0x621: 85, + 0x622: 82, + 0x623: 82, + 0x624: 82, + 0x625: 82, + 0x626: 68, + 0x627: 82, + 0x628: 68, + 0x629: 82, + 0x62a: 68, + 0x62b: 68, + 0x62c: 68, + 0x62d: 68, + 0x62e: 68, + 0x62f: 82, + 0x630: 82, + 0x631: 82, + 0x632: 82, + 0x633: 68, + 0x634: 68, + 0x635: 68, + 0x636: 68, + 0x637: 68, + 0x638: 68, + 0x639: 68, + 0x63a: 68, + 0x63b: 68, + 0x63c: 68, + 0x63d: 68, + 0x63e: 68, + 0x63f: 68, + 0x640: 67, + 0x641: 68, + 0x642: 68, + 0x643: 68, + 0x644: 68, + 0x645: 68, + 0x646: 68, + 0x647: 68, + 0x648: 82, + 0x649: 68, + 0x64a: 68, + 0x66e: 68, + 0x66f: 68, + 0x671: 82, + 0x672: 82, + 0x673: 82, + 0x674: 85, + 0x675: 82, + 0x676: 82, + 0x677: 82, + 0x678: 68, + 0x679: 68, + 0x67a: 68, + 0x67b: 68, + 0x67c: 68, + 0x67d: 68, + 0x67e: 68, + 0x67f: 68, + 0x680: 68, + 0x681: 68, + 0x682: 68, + 0x683: 68, + 0x684: 68, + 0x685: 68, + 0x686: 68, + 0x687: 68, + 0x688: 82, + 0x689: 82, + 0x68a: 82, + 0x68b: 82, + 0x68c: 82, + 0x68d: 82, + 0x68e: 82, + 0x68f: 82, + 0x690: 82, + 0x691: 82, + 0x692: 82, + 0x693: 82, + 0x694: 82, + 0x695: 82, + 0x696: 82, + 0x697: 82, + 0x698: 82, + 0x699: 82, + 0x69a: 68, + 0x69b: 68, + 0x69c: 68, + 0x69d: 68, + 0x69e: 68, + 0x69f: 68, + 0x6a0: 68, + 0x6a1: 68, + 0x6a2: 68, + 0x6a3: 68, + 0x6a4: 68, + 0x6a5: 68, + 0x6a6: 68, + 0x6a7: 68, + 0x6a8: 68, + 0x6a9: 68, + 0x6aa: 68, + 0x6ab: 68, + 0x6ac: 68, + 0x6ad: 68, + 0x6ae: 68, + 0x6af: 68, + 0x6b0: 68, + 0x6b1: 68, + 0x6b2: 68, + 0x6b3: 68, + 0x6b4: 68, + 0x6b5: 68, + 0x6b6: 68, + 0x6b7: 68, + 0x6b8: 68, + 0x6b9: 68, + 0x6ba: 68, + 0x6bb: 68, + 0x6bc: 68, + 0x6bd: 68, + 0x6be: 68, + 0x6bf: 68, + 0x6c0: 82, + 0x6c1: 68, + 0x6c2: 68, + 0x6c3: 82, + 0x6c4: 82, + 0x6c5: 82, + 0x6c6: 82, + 0x6c7: 82, + 0x6c8: 82, + 0x6c9: 82, + 0x6ca: 82, + 0x6cb: 82, + 0x6cc: 68, + 0x6cd: 82, + 0x6ce: 68, + 0x6cf: 82, + 0x6d0: 68, + 0x6d1: 68, + 0x6d2: 82, + 0x6d3: 82, + 0x6d5: 82, + 0x6dd: 85, + 0x6ee: 82, + 0x6ef: 82, + 0x6fa: 68, + 0x6fb: 68, + 0x6fc: 68, + 0x6ff: 68, + 0x710: 82, + 0x712: 68, + 0x713: 68, + 0x714: 68, + 0x715: 82, + 0x716: 82, + 0x717: 82, + 0x718: 82, + 0x719: 82, + 0x71a: 68, + 0x71b: 68, + 0x71c: 68, + 0x71d: 68, + 0x71e: 82, + 0x71f: 68, + 0x720: 68, + 0x721: 68, + 0x722: 68, + 0x723: 68, + 0x724: 68, + 0x725: 68, + 0x726: 68, + 0x727: 68, + 0x728: 82, + 0x729: 68, + 0x72a: 82, + 0x72b: 68, + 0x72c: 82, + 0x72d: 68, + 0x72e: 68, + 0x72f: 82, + 0x74d: 82, + 0x74e: 68, + 0x74f: 68, + 0x750: 68, + 0x751: 68, + 0x752: 68, + 0x753: 68, + 0x754: 68, + 0x755: 68, + 0x756: 68, + 0x757: 68, + 0x758: 68, + 0x759: 82, + 0x75a: 82, + 0x75b: 82, + 0x75c: 68, + 0x75d: 68, + 0x75e: 68, + 0x75f: 68, + 0x760: 68, + 0x761: 68, + 0x762: 68, + 0x763: 68, + 0x764: 68, + 0x765: 68, + 0x766: 68, + 0x767: 68, + 0x768: 68, + 0x769: 68, + 0x76a: 68, + 0x76b: 82, + 0x76c: 82, + 0x76d: 68, + 0x76e: 68, + 0x76f: 68, + 0x770: 68, + 0x771: 82, + 0x772: 68, + 0x773: 82, + 0x774: 82, + 0x775: 68, + 0x776: 68, + 0x777: 68, + 0x778: 82, + 0x779: 82, + 0x77a: 68, + 0x77b: 68, + 0x77c: 68, + 0x77d: 68, + 0x77e: 68, + 0x77f: 68, + 0x7ca: 68, + 0x7cb: 68, + 0x7cc: 68, + 0x7cd: 68, + 0x7ce: 68, + 0x7cf: 68, + 0x7d0: 68, + 0x7d1: 68, + 0x7d2: 68, + 0x7d3: 68, + 0x7d4: 68, + 0x7d5: 68, + 0x7d6: 68, + 0x7d7: 68, + 0x7d8: 68, + 0x7d9: 68, + 0x7da: 68, + 0x7db: 68, + 0x7dc: 68, + 0x7dd: 68, + 0x7de: 68, + 0x7df: 68, + 0x7e0: 68, + 0x7e1: 68, + 0x7e2: 68, + 0x7e3: 68, + 0x7e4: 68, + 0x7e5: 68, + 0x7e6: 68, + 0x7e7: 68, + 0x7e8: 68, + 0x7e9: 68, + 0x7ea: 68, + 0x7fa: 67, + 0x840: 82, + 0x841: 68, + 0x842: 68, + 0x843: 68, + 0x844: 68, + 0x845: 68, + 0x846: 82, + 0x847: 68, + 0x848: 68, + 0x849: 82, + 0x84a: 68, + 0x84b: 68, + 0x84c: 68, + 0x84d: 68, + 0x84e: 68, + 0x84f: 82, + 0x850: 68, + 0x851: 68, + 0x852: 68, + 0x853: 68, + 0x854: 82, + 0x855: 68, + 0x856: 85, + 0x857: 85, + 0x858: 85, + 0x8a0: 68, + 0x8a2: 68, + 0x8a3: 68, + 0x8a4: 68, + 0x8a5: 68, + 0x8a6: 68, + 0x8a7: 68, + 0x8a8: 68, + 0x8a9: 68, + 0x8aa: 82, + 0x8ab: 82, + 0x8ac: 82, + 0x1806: 85, + 0x1807: 68, + 0x180a: 67, + 0x180e: 85, + 0x1820: 68, + 0x1821: 68, + 0x1822: 68, + 0x1823: 68, + 0x1824: 68, + 0x1825: 68, + 0x1826: 68, + 0x1827: 68, + 0x1828: 68, + 0x1829: 68, + 0x182a: 68, + 0x182b: 68, + 0x182c: 68, + 0x182d: 68, + 0x182e: 68, + 0x182f: 68, + 0x1830: 68, + 0x1831: 68, + 0x1832: 68, + 0x1833: 68, + 0x1834: 68, + 0x1835: 68, + 0x1836: 68, + 0x1837: 68, + 0x1838: 68, + 0x1839: 68, + 0x183a: 68, + 0x183b: 68, + 0x183c: 68, + 0x183d: 68, + 0x183e: 68, + 0x183f: 68, + 0x1840: 68, + 0x1841: 68, + 0x1842: 68, + 0x1843: 68, + 0x1844: 68, + 0x1845: 68, + 0x1846: 68, + 0x1847: 68, + 0x1848: 68, + 0x1849: 68, + 0x184a: 68, + 0x184b: 68, + 0x184c: 68, + 0x184d: 68, + 0x184e: 68, + 0x184f: 68, + 0x1850: 68, + 0x1851: 68, + 0x1852: 68, + 0x1853: 68, + 0x1854: 68, + 0x1855: 68, + 0x1856: 68, + 0x1857: 68, + 0x1858: 68, + 0x1859: 68, + 0x185a: 68, + 0x185b: 68, + 0x185c: 68, + 0x185d: 68, + 0x185e: 68, + 0x185f: 68, + 0x1860: 68, + 0x1861: 68, + 0x1862: 68, + 0x1863: 68, + 0x1864: 68, + 0x1865: 68, + 0x1866: 68, + 0x1867: 68, + 0x1868: 68, + 0x1869: 68, + 0x186a: 68, + 0x186b: 68, + 0x186c: 68, + 0x186d: 68, + 0x186e: 68, + 0x186f: 68, + 0x1870: 68, + 0x1871: 68, + 0x1872: 68, + 0x1873: 68, + 0x1874: 68, + 0x1875: 68, + 0x1876: 68, + 0x1877: 68, + 0x1880: 85, + 0x1881: 85, + 0x1882: 85, + 0x1883: 85, + 0x1884: 85, + 0x1885: 85, + 0x1886: 85, + 0x1887: 68, + 0x1888: 68, + 0x1889: 68, + 0x188a: 68, + 0x188b: 68, + 0x188c: 68, + 0x188d: 68, + 0x188e: 68, + 0x188f: 68, + 0x1890: 68, + 0x1891: 68, + 0x1892: 68, + 0x1893: 68, + 0x1894: 68, + 0x1895: 68, + 0x1896: 68, + 0x1897: 68, + 0x1898: 68, + 0x1899: 68, + 0x189a: 68, + 0x189b: 68, + 0x189c: 68, + 0x189d: 68, + 0x189e: 68, + 0x189f: 68, + 0x18a0: 68, + 0x18a1: 68, + 0x18a2: 68, + 0x18a3: 68, + 0x18a4: 68, + 0x18a5: 68, + 0x18a6: 68, + 0x18a7: 68, + 0x18a8: 68, + 0x18aa: 68, + 0x200c: 85, + 0x200d: 67, + 0x2066: 85, + 0x2067: 85, + 0x2068: 85, + 0x2069: 85, + 0xa840: 68, + 0xa841: 68, + 0xa842: 68, + 0xa843: 68, + 0xa844: 68, + 0xa845: 68, + 0xa846: 68, + 0xa847: 68, + 0xa848: 68, + 0xa849: 68, + 0xa84a: 68, + 0xa84b: 68, + 0xa84c: 68, + 0xa84d: 68, + 0xa84e: 68, + 0xa84f: 68, + 0xa850: 68, + 0xa851: 68, + 0xa852: 68, + 0xa853: 68, + 0xa854: 68, + 0xa855: 68, + 0xa856: 68, + 0xa857: 68, + 0xa858: 68, + 0xa859: 68, + 0xa85a: 68, + 0xa85b: 68, + 0xa85c: 68, + 0xa85d: 68, + 0xa85e: 68, + 0xa85f: 68, + 0xa860: 68, + 0xa861: 68, + 0xa862: 68, + 0xa863: 68, + 0xa864: 68, + 0xa865: 68, + 0xa866: 68, + 0xa867: 68, + 0xa868: 68, + 0xa869: 68, + 0xa86a: 68, + 0xa86b: 68, + 0xa86c: 68, + 0xa86d: 68, + 0xa86e: 68, + 0xa86f: 68, + 0xa870: 68, + 0xa871: 68, + 0xa872: 76, + 0xa873: 85, +} +codepoint_classes = { + 'PVALID': ( + 0x2d0000002e, + 0x300000003a, + 0x610000007b, + 0xdf000000f7, + 0xf800000100, + 0x10100000102, + 0x10300000104, + 0x10500000106, + 0x10700000108, + 0x1090000010a, + 0x10b0000010c, + 0x10d0000010e, + 0x10f00000110, + 0x11100000112, + 0x11300000114, + 0x11500000116, + 0x11700000118, + 0x1190000011a, + 0x11b0000011c, + 0x11d0000011e, + 0x11f00000120, + 0x12100000122, + 0x12300000124, + 0x12500000126, + 0x12700000128, + 0x1290000012a, + 0x12b0000012c, + 0x12d0000012e, + 0x12f00000130, + 0x13100000132, + 0x13500000136, + 0x13700000139, + 0x13a0000013b, + 0x13c0000013d, + 0x13e0000013f, + 0x14200000143, + 0x14400000145, + 0x14600000147, + 0x14800000149, + 0x14b0000014c, + 0x14d0000014e, + 0x14f00000150, + 0x15100000152, + 0x15300000154, + 0x15500000156, + 0x15700000158, + 0x1590000015a, + 0x15b0000015c, + 0x15d0000015e, + 0x15f00000160, + 0x16100000162, + 0x16300000164, + 0x16500000166, + 0x16700000168, + 0x1690000016a, + 0x16b0000016c, + 0x16d0000016e, + 0x16f00000170, + 0x17100000172, + 0x17300000174, + 0x17500000176, + 0x17700000178, + 0x17a0000017b, + 0x17c0000017d, + 0x17e0000017f, + 0x18000000181, + 0x18300000184, + 0x18500000186, + 0x18800000189, + 0x18c0000018e, + 0x19200000193, + 0x19500000196, + 0x1990000019c, + 0x19e0000019f, + 0x1a1000001a2, + 0x1a3000001a4, + 0x1a5000001a6, + 0x1a8000001a9, + 0x1aa000001ac, + 0x1ad000001ae, + 0x1b0000001b1, + 0x1b4000001b5, + 0x1b6000001b7, + 0x1b9000001bc, + 0x1bd000001c4, + 0x1ce000001cf, + 0x1d0000001d1, + 0x1d2000001d3, + 0x1d4000001d5, + 0x1d6000001d7, + 0x1d8000001d9, + 0x1da000001db, + 0x1dc000001de, + 0x1df000001e0, + 0x1e1000001e2, + 0x1e3000001e4, + 0x1e5000001e6, + 0x1e7000001e8, + 0x1e9000001ea, + 0x1eb000001ec, + 0x1ed000001ee, + 0x1ef000001f1, + 0x1f5000001f6, + 0x1f9000001fa, + 0x1fb000001fc, + 0x1fd000001fe, + 0x1ff00000200, + 0x20100000202, + 0x20300000204, + 0x20500000206, + 0x20700000208, + 0x2090000020a, + 0x20b0000020c, + 0x20d0000020e, + 0x20f00000210, + 0x21100000212, + 0x21300000214, + 0x21500000216, + 0x21700000218, + 0x2190000021a, + 0x21b0000021c, + 0x21d0000021e, + 0x21f00000220, + 0x22100000222, + 0x22300000224, + 0x22500000226, + 0x22700000228, + 0x2290000022a, + 0x22b0000022c, + 0x22d0000022e, + 0x22f00000230, + 0x23100000232, + 0x2330000023a, + 0x23c0000023d, + 0x23f00000241, + 0x24200000243, + 0x24700000248, + 0x2490000024a, + 0x24b0000024c, + 0x24d0000024e, + 0x24f000002b0, + 0x2b9000002c2, + 0x2c6000002d2, + 0x2ec000002ed, + 0x2ee000002ef, + 0x30000000340, + 0x34200000343, + 0x3460000034f, + 0x35000000370, + 0x37100000372, + 0x37300000374, + 0x37700000378, + 0x37b0000037e, + 0x39000000391, + 0x3ac000003cf, + 0x3d7000003d8, + 0x3d9000003da, + 0x3db000003dc, + 0x3dd000003de, + 0x3df000003e0, + 0x3e1000003e2, + 0x3e3000003e4, + 0x3e5000003e6, + 0x3e7000003e8, + 0x3e9000003ea, + 0x3eb000003ec, + 0x3ed000003ee, + 0x3ef000003f0, + 0x3f3000003f4, + 0x3f8000003f9, + 0x3fb000003fd, + 0x43000000460, + 0x46100000462, + 0x46300000464, + 0x46500000466, + 0x46700000468, + 0x4690000046a, + 0x46b0000046c, + 0x46d0000046e, + 0x46f00000470, + 0x47100000472, + 0x47300000474, + 0x47500000476, + 0x47700000478, + 0x4790000047a, + 0x47b0000047c, + 0x47d0000047e, + 0x47f00000480, + 0x48100000482, + 0x48300000488, + 0x48b0000048c, + 0x48d0000048e, + 0x48f00000490, + 0x49100000492, + 0x49300000494, + 0x49500000496, + 0x49700000498, + 0x4990000049a, + 0x49b0000049c, + 0x49d0000049e, + 0x49f000004a0, + 0x4a1000004a2, + 0x4a3000004a4, + 0x4a5000004a6, + 0x4a7000004a8, + 0x4a9000004aa, + 0x4ab000004ac, + 0x4ad000004ae, + 0x4af000004b0, + 0x4b1000004b2, + 0x4b3000004b4, + 0x4b5000004b6, + 0x4b7000004b8, + 0x4b9000004ba, + 0x4bb000004bc, + 0x4bd000004be, + 0x4bf000004c0, + 0x4c2000004c3, + 0x4c4000004c5, + 0x4c6000004c7, + 0x4c8000004c9, + 0x4ca000004cb, + 0x4cc000004cd, + 0x4ce000004d0, + 0x4d1000004d2, + 0x4d3000004d4, + 0x4d5000004d6, + 0x4d7000004d8, + 0x4d9000004da, + 0x4db000004dc, + 0x4dd000004de, + 0x4df000004e0, + 0x4e1000004e2, + 0x4e3000004e4, + 0x4e5000004e6, + 0x4e7000004e8, + 0x4e9000004ea, + 0x4eb000004ec, + 0x4ed000004ee, + 0x4ef000004f0, + 0x4f1000004f2, + 0x4f3000004f4, + 0x4f5000004f6, + 0x4f7000004f8, + 0x4f9000004fa, + 0x4fb000004fc, + 0x4fd000004fe, + 0x4ff00000500, + 0x50100000502, + 0x50300000504, + 0x50500000506, + 0x50700000508, + 0x5090000050a, + 0x50b0000050c, + 0x50d0000050e, + 0x50f00000510, + 0x51100000512, + 0x51300000514, + 0x51500000516, + 0x51700000518, + 0x5190000051a, + 0x51b0000051c, + 0x51d0000051e, + 0x51f00000520, + 0x52100000522, + 0x52300000524, + 0x52500000526, + 0x52700000528, + 0x5590000055a, + 0x56100000587, + 0x591000005be, + 0x5bf000005c0, + 0x5c1000005c3, + 0x5c4000005c6, + 0x5c7000005c8, + 0x5d0000005eb, + 0x5f0000005f3, + 0x6100000061b, + 0x62000000640, + 0x64100000660, + 0x66e00000675, + 0x679000006d4, + 0x6d5000006dd, + 0x6df000006e9, + 0x6ea000006f0, + 0x6fa00000700, + 0x7100000074b, + 0x74d000007b2, + 0x7c0000007f6, + 0x8000000082e, + 0x8400000085c, + 0x8a0000008a1, + 0x8a2000008ad, + 0x8e4000008ff, + 0x90000000958, + 0x96000000964, + 0x96600000970, + 0x97100000978, + 0x97900000980, + 0x98100000984, + 0x9850000098d, + 0x98f00000991, + 0x993000009a9, + 0x9aa000009b1, + 0x9b2000009b3, + 0x9b6000009ba, + 0x9bc000009c5, + 0x9c7000009c9, + 0x9cb000009cf, + 0x9d7000009d8, + 0x9e0000009e4, + 0x9e6000009f2, + 0xa0100000a04, + 0xa0500000a0b, + 0xa0f00000a11, + 0xa1300000a29, + 0xa2a00000a31, + 0xa3200000a33, + 0xa3500000a36, + 0xa3800000a3a, + 0xa3c00000a3d, + 0xa3e00000a43, + 0xa4700000a49, + 0xa4b00000a4e, + 0xa5100000a52, + 0xa5c00000a5d, + 0xa6600000a76, + 0xa8100000a84, + 0xa8500000a8e, + 0xa8f00000a92, + 0xa9300000aa9, + 0xaaa00000ab1, + 0xab200000ab4, + 0xab500000aba, + 0xabc00000ac6, + 0xac700000aca, + 0xacb00000ace, + 0xad000000ad1, + 0xae000000ae4, + 0xae600000af0, + 0xb0100000b04, + 0xb0500000b0d, + 0xb0f00000b11, + 0xb1300000b29, + 0xb2a00000b31, + 0xb3200000b34, + 0xb3500000b3a, + 0xb3c00000b45, + 0xb4700000b49, + 0xb4b00000b4e, + 0xb5600000b58, + 0xb5f00000b64, + 0xb6600000b70, + 0xb7100000b72, + 0xb8200000b84, + 0xb8500000b8b, + 0xb8e00000b91, + 0xb9200000b96, + 0xb9900000b9b, + 0xb9c00000b9d, + 0xb9e00000ba0, + 0xba300000ba5, + 0xba800000bab, + 0xbae00000bba, + 0xbbe00000bc3, + 0xbc600000bc9, + 0xbca00000bce, + 0xbd000000bd1, + 0xbd700000bd8, + 0xbe600000bf0, + 0xc0100000c04, + 0xc0500000c0d, + 0xc0e00000c11, + 0xc1200000c29, + 0xc2a00000c34, + 0xc3500000c3a, + 0xc3d00000c45, + 0xc4600000c49, + 0xc4a00000c4e, + 0xc5500000c57, + 0xc5800000c5a, + 0xc6000000c64, + 0xc6600000c70, + 0xc8200000c84, + 0xc8500000c8d, + 0xc8e00000c91, + 0xc9200000ca9, + 0xcaa00000cb4, + 0xcb500000cba, + 0xcbc00000cc5, + 0xcc600000cc9, + 0xcca00000cce, + 0xcd500000cd7, + 0xcde00000cdf, + 0xce000000ce4, + 0xce600000cf0, + 0xcf100000cf3, + 0xd0200000d04, + 0xd0500000d0d, + 0xd0e00000d11, + 0xd1200000d3b, + 0xd3d00000d45, + 0xd4600000d49, + 0xd4a00000d4f, + 0xd5700000d58, + 0xd6000000d64, + 0xd6600000d70, + 0xd7a00000d80, + 0xd8200000d84, + 0xd8500000d97, + 0xd9a00000db2, + 0xdb300000dbc, + 0xdbd00000dbe, + 0xdc000000dc7, + 0xdca00000dcb, + 0xdcf00000dd5, + 0xdd600000dd7, + 0xdd800000de0, + 0xdf200000df4, + 0xe0100000e33, + 0xe3400000e3b, + 0xe4000000e4f, + 0xe5000000e5a, + 0xe8100000e83, + 0xe8400000e85, + 0xe8700000e89, + 0xe8a00000e8b, + 0xe8d00000e8e, + 0xe9400000e98, + 0xe9900000ea0, + 0xea100000ea4, + 0xea500000ea6, + 0xea700000ea8, + 0xeaa00000eac, + 0xead00000eb3, + 0xeb400000eba, + 0xebb00000ebe, + 0xec000000ec5, + 0xec600000ec7, + 0xec800000ece, + 0xed000000eda, + 0xede00000ee0, + 0xf0000000f01, + 0xf0b00000f0c, + 0xf1800000f1a, + 0xf2000000f2a, + 0xf3500000f36, + 0xf3700000f38, + 0xf3900000f3a, + 0xf3e00000f43, + 0xf4400000f48, + 0xf4900000f4d, + 0xf4e00000f52, + 0xf5300000f57, + 0xf5800000f5c, + 0xf5d00000f69, + 0xf6a00000f6d, + 0xf7100000f73, + 0xf7400000f75, + 0xf7a00000f81, + 0xf8200000f85, + 0xf8600000f93, + 0xf9400000f98, + 0xf9900000f9d, + 0xf9e00000fa2, + 0xfa300000fa7, + 0xfa800000fac, + 0xfad00000fb9, + 0xfba00000fbd, + 0xfc600000fc7, + 0x10000000104a, + 0x10500000109e, + 0x10d0000010fb, + 0x10fd00001100, + 0x120000001249, + 0x124a0000124e, + 0x125000001257, + 0x125800001259, + 0x125a0000125e, + 0x126000001289, + 0x128a0000128e, + 0x1290000012b1, + 0x12b2000012b6, + 0x12b8000012bf, + 0x12c0000012c1, + 0x12c2000012c6, + 0x12c8000012d7, + 0x12d800001311, + 0x131200001316, + 0x13180000135b, + 0x135d00001360, + 0x138000001390, + 0x13a0000013f5, + 0x14010000166d, + 0x166f00001680, + 0x16810000169b, + 0x16a0000016eb, + 0x17000000170d, + 0x170e00001715, + 0x172000001735, + 0x174000001754, + 0x17600000176d, + 0x176e00001771, + 0x177200001774, + 0x1780000017b4, + 0x17b6000017d4, + 0x17d7000017d8, + 0x17dc000017de, + 0x17e0000017ea, + 0x18100000181a, + 0x182000001878, + 0x1880000018ab, + 0x18b0000018f6, + 0x19000000191d, + 0x19200000192c, + 0x19300000193c, + 0x19460000196e, + 0x197000001975, + 0x1980000019ac, + 0x19b0000019ca, + 0x19d0000019da, + 0x1a0000001a1c, + 0x1a2000001a5f, + 0x1a6000001a7d, + 0x1a7f00001a8a, + 0x1a9000001a9a, + 0x1aa700001aa8, + 0x1b0000001b4c, + 0x1b5000001b5a, + 0x1b6b00001b74, + 0x1b8000001bf4, + 0x1c0000001c38, + 0x1c4000001c4a, + 0x1c4d00001c7e, + 0x1cd000001cd3, + 0x1cd400001cf7, + 0x1d0000001d2c, + 0x1d2f00001d30, + 0x1d3b00001d3c, + 0x1d4e00001d4f, + 0x1d6b00001d78, + 0x1d7900001d9b, + 0x1dc000001de7, + 0x1dfc00001e00, + 0x1e0100001e02, + 0x1e0300001e04, + 0x1e0500001e06, + 0x1e0700001e08, + 0x1e0900001e0a, + 0x1e0b00001e0c, + 0x1e0d00001e0e, + 0x1e0f00001e10, + 0x1e1100001e12, + 0x1e1300001e14, + 0x1e1500001e16, + 0x1e1700001e18, + 0x1e1900001e1a, + 0x1e1b00001e1c, + 0x1e1d00001e1e, + 0x1e1f00001e20, + 0x1e2100001e22, + 0x1e2300001e24, + 0x1e2500001e26, + 0x1e2700001e28, + 0x1e2900001e2a, + 0x1e2b00001e2c, + 0x1e2d00001e2e, + 0x1e2f00001e30, + 0x1e3100001e32, + 0x1e3300001e34, + 0x1e3500001e36, + 0x1e3700001e38, + 0x1e3900001e3a, + 0x1e3b00001e3c, + 0x1e3d00001e3e, + 0x1e3f00001e40, + 0x1e4100001e42, + 0x1e4300001e44, + 0x1e4500001e46, + 0x1e4700001e48, + 0x1e4900001e4a, + 0x1e4b00001e4c, + 0x1e4d00001e4e, + 0x1e4f00001e50, + 0x1e5100001e52, + 0x1e5300001e54, + 0x1e5500001e56, + 0x1e5700001e58, + 0x1e5900001e5a, + 0x1e5b00001e5c, + 0x1e5d00001e5e, + 0x1e5f00001e60, + 0x1e6100001e62, + 0x1e6300001e64, + 0x1e6500001e66, + 0x1e6700001e68, + 0x1e6900001e6a, + 0x1e6b00001e6c, + 0x1e6d00001e6e, + 0x1e6f00001e70, + 0x1e7100001e72, + 0x1e7300001e74, + 0x1e7500001e76, + 0x1e7700001e78, + 0x1e7900001e7a, + 0x1e7b00001e7c, + 0x1e7d00001e7e, + 0x1e7f00001e80, + 0x1e8100001e82, + 0x1e8300001e84, + 0x1e8500001e86, + 0x1e8700001e88, + 0x1e8900001e8a, + 0x1e8b00001e8c, + 0x1e8d00001e8e, + 0x1e8f00001e90, + 0x1e9100001e92, + 0x1e9300001e94, + 0x1e9500001e9a, + 0x1e9c00001e9e, + 0x1e9f00001ea0, + 0x1ea100001ea2, + 0x1ea300001ea4, + 0x1ea500001ea6, + 0x1ea700001ea8, + 0x1ea900001eaa, + 0x1eab00001eac, + 0x1ead00001eae, + 0x1eaf00001eb0, + 0x1eb100001eb2, + 0x1eb300001eb4, + 0x1eb500001eb6, + 0x1eb700001eb8, + 0x1eb900001eba, + 0x1ebb00001ebc, + 0x1ebd00001ebe, + 0x1ebf00001ec0, + 0x1ec100001ec2, + 0x1ec300001ec4, + 0x1ec500001ec6, + 0x1ec700001ec8, + 0x1ec900001eca, + 0x1ecb00001ecc, + 0x1ecd00001ece, + 0x1ecf00001ed0, + 0x1ed100001ed2, + 0x1ed300001ed4, + 0x1ed500001ed6, + 0x1ed700001ed8, + 0x1ed900001eda, + 0x1edb00001edc, + 0x1edd00001ede, + 0x1edf00001ee0, + 0x1ee100001ee2, + 0x1ee300001ee4, + 0x1ee500001ee6, + 0x1ee700001ee8, + 0x1ee900001eea, + 0x1eeb00001eec, + 0x1eed00001eee, + 0x1eef00001ef0, + 0x1ef100001ef2, + 0x1ef300001ef4, + 0x1ef500001ef6, + 0x1ef700001ef8, + 0x1ef900001efa, + 0x1efb00001efc, + 0x1efd00001efe, + 0x1eff00001f08, + 0x1f1000001f16, + 0x1f2000001f28, + 0x1f3000001f38, + 0x1f4000001f46, + 0x1f5000001f58, + 0x1f6000001f68, + 0x1f7000001f71, + 0x1f7200001f73, + 0x1f7400001f75, + 0x1f7600001f77, + 0x1f7800001f79, + 0x1f7a00001f7b, + 0x1f7c00001f7d, + 0x1fb000001fb2, + 0x1fb600001fb7, + 0x1fc600001fc7, + 0x1fd000001fd3, + 0x1fd600001fd8, + 0x1fe000001fe3, + 0x1fe400001fe8, + 0x1ff600001ff7, + 0x214e0000214f, + 0x218400002185, + 0x2c3000002c5f, + 0x2c6100002c62, + 0x2c6500002c67, + 0x2c6800002c69, + 0x2c6a00002c6b, + 0x2c6c00002c6d, + 0x2c7100002c72, + 0x2c7300002c75, + 0x2c7600002c7c, + 0x2c8100002c82, + 0x2c8300002c84, + 0x2c8500002c86, + 0x2c8700002c88, + 0x2c8900002c8a, + 0x2c8b00002c8c, + 0x2c8d00002c8e, + 0x2c8f00002c90, + 0x2c9100002c92, + 0x2c9300002c94, + 0x2c9500002c96, + 0x2c9700002c98, + 0x2c9900002c9a, + 0x2c9b00002c9c, + 0x2c9d00002c9e, + 0x2c9f00002ca0, + 0x2ca100002ca2, + 0x2ca300002ca4, + 0x2ca500002ca6, + 0x2ca700002ca8, + 0x2ca900002caa, + 0x2cab00002cac, + 0x2cad00002cae, + 0x2caf00002cb0, + 0x2cb100002cb2, + 0x2cb300002cb4, + 0x2cb500002cb6, + 0x2cb700002cb8, + 0x2cb900002cba, + 0x2cbb00002cbc, + 0x2cbd00002cbe, + 0x2cbf00002cc0, + 0x2cc100002cc2, + 0x2cc300002cc4, + 0x2cc500002cc6, + 0x2cc700002cc8, + 0x2cc900002cca, + 0x2ccb00002ccc, + 0x2ccd00002cce, + 0x2ccf00002cd0, + 0x2cd100002cd2, + 0x2cd300002cd4, + 0x2cd500002cd6, + 0x2cd700002cd8, + 0x2cd900002cda, + 0x2cdb00002cdc, + 0x2cdd00002cde, + 0x2cdf00002ce0, + 0x2ce100002ce2, + 0x2ce300002ce5, + 0x2cec00002ced, + 0x2cee00002cf2, + 0x2cf300002cf4, + 0x2d0000002d26, + 0x2d2700002d28, + 0x2d2d00002d2e, + 0x2d3000002d68, + 0x2d7f00002d97, + 0x2da000002da7, + 0x2da800002daf, + 0x2db000002db7, + 0x2db800002dbf, + 0x2dc000002dc7, + 0x2dc800002dcf, + 0x2dd000002dd7, + 0x2dd800002ddf, + 0x2de000002e00, + 0x2e2f00002e30, + 0x300500003008, + 0x302a0000302e, + 0x303c0000303d, + 0x304100003097, + 0x30990000309b, + 0x309d0000309f, + 0x30a1000030fb, + 0x30fc000030ff, + 0x31050000312e, + 0x31a0000031bb, + 0x31f000003200, + 0x340000004db6, + 0x4e0000009fcd, + 0xa0000000a48d, + 0xa4d00000a4fe, + 0xa5000000a60d, + 0xa6100000a62c, + 0xa6410000a642, + 0xa6430000a644, + 0xa6450000a646, + 0xa6470000a648, + 0xa6490000a64a, + 0xa64b0000a64c, + 0xa64d0000a64e, + 0xa64f0000a650, + 0xa6510000a652, + 0xa6530000a654, + 0xa6550000a656, + 0xa6570000a658, + 0xa6590000a65a, + 0xa65b0000a65c, + 0xa65d0000a65e, + 0xa65f0000a660, + 0xa6610000a662, + 0xa6630000a664, + 0xa6650000a666, + 0xa6670000a668, + 0xa6690000a66a, + 0xa66b0000a66c, + 0xa66d0000a670, + 0xa6740000a67e, + 0xa67f0000a680, + 0xa6810000a682, + 0xa6830000a684, + 0xa6850000a686, + 0xa6870000a688, + 0xa6890000a68a, + 0xa68b0000a68c, + 0xa68d0000a68e, + 0xa68f0000a690, + 0xa6910000a692, + 0xa6930000a694, + 0xa6950000a696, + 0xa6970000a698, + 0xa69f0000a6e6, + 0xa6f00000a6f2, + 0xa7170000a720, + 0xa7230000a724, + 0xa7250000a726, + 0xa7270000a728, + 0xa7290000a72a, + 0xa72b0000a72c, + 0xa72d0000a72e, + 0xa72f0000a732, + 0xa7330000a734, + 0xa7350000a736, + 0xa7370000a738, + 0xa7390000a73a, + 0xa73b0000a73c, + 0xa73d0000a73e, + 0xa73f0000a740, + 0xa7410000a742, + 0xa7430000a744, + 0xa7450000a746, + 0xa7470000a748, + 0xa7490000a74a, + 0xa74b0000a74c, + 0xa74d0000a74e, + 0xa74f0000a750, + 0xa7510000a752, + 0xa7530000a754, + 0xa7550000a756, + 0xa7570000a758, + 0xa7590000a75a, + 0xa75b0000a75c, + 0xa75d0000a75e, + 0xa75f0000a760, + 0xa7610000a762, + 0xa7630000a764, + 0xa7650000a766, + 0xa7670000a768, + 0xa7690000a76a, + 0xa76b0000a76c, + 0xa76d0000a76e, + 0xa76f0000a770, + 0xa7710000a779, + 0xa77a0000a77b, + 0xa77c0000a77d, + 0xa77f0000a780, + 0xa7810000a782, + 0xa7830000a784, + 0xa7850000a786, + 0xa7870000a789, + 0xa78c0000a78d, + 0xa78e0000a78f, + 0xa7910000a792, + 0xa7930000a794, + 0xa7a10000a7a2, + 0xa7a30000a7a4, + 0xa7a50000a7a6, + 0xa7a70000a7a8, + 0xa7a90000a7aa, + 0xa7fa0000a828, + 0xa8400000a874, + 0xa8800000a8c5, + 0xa8d00000a8da, + 0xa8e00000a8f8, + 0xa8fb0000a8fc, + 0xa9000000a92e, + 0xa9300000a954, + 0xa9800000a9c1, + 0xa9cf0000a9da, + 0xaa000000aa37, + 0xaa400000aa4e, + 0xaa500000aa5a, + 0xaa600000aa77, + 0xaa7a0000aa7c, + 0xaa800000aac3, + 0xaadb0000aade, + 0xaae00000aaf0, + 0xaaf20000aaf7, + 0xab010000ab07, + 0xab090000ab0f, + 0xab110000ab17, + 0xab200000ab27, + 0xab280000ab2f, + 0xabc00000abeb, + 0xabec0000abee, + 0xabf00000abfa, + 0xac000000d7a4, + 0xfa0e0000fa10, + 0xfa110000fa12, + 0xfa130000fa15, + 0xfa1f0000fa20, + 0xfa210000fa22, + 0xfa230000fa25, + 0xfa270000fa2a, + 0xfb1e0000fb1f, + 0xfe200000fe27, + 0xfe730000fe74, + 0x100000001000c, + 0x1000d00010027, + 0x100280001003b, + 0x1003c0001003e, + 0x1003f0001004e, + 0x100500001005e, + 0x10080000100fb, + 0x101fd000101fe, + 0x102800001029d, + 0x102a0000102d1, + 0x103000001031f, + 0x1033000010341, + 0x103420001034a, + 0x103800001039e, + 0x103a0000103c4, + 0x103c8000103d0, + 0x104280001049e, + 0x104a0000104aa, + 0x1080000010806, + 0x1080800010809, + 0x1080a00010836, + 0x1083700010839, + 0x1083c0001083d, + 0x1083f00010856, + 0x1090000010916, + 0x109200001093a, + 0x10980000109b8, + 0x109be000109c0, + 0x10a0000010a04, + 0x10a0500010a07, + 0x10a0c00010a14, + 0x10a1500010a18, + 0x10a1900010a34, + 0x10a3800010a3b, + 0x10a3f00010a40, + 0x10a6000010a7d, + 0x10b0000010b36, + 0x10b4000010b56, + 0x10b6000010b73, + 0x10c0000010c49, + 0x1100000011047, + 0x1106600011070, + 0x11080000110bb, + 0x110d0000110e9, + 0x110f0000110fa, + 0x1110000011135, + 0x1113600011140, + 0x11180000111c5, + 0x111d0000111da, + 0x11680000116b8, + 0x116c0000116ca, + 0x120000001236f, + 0x130000001342f, + 0x1680000016a39, + 0x16f0000016f45, + 0x16f5000016f7f, + 0x16f8f00016fa0, + 0x1b0000001b002, + 0x200000002a6d7, + 0x2a7000002b735, + 0x2b7400002b81e, + ), + 'CONTEXTJ': ( + 0x200c0000200e, + ), + 'CONTEXTO': ( + 0xb7000000b8, + 0x37500000376, + 0x5f3000005f5, + 0x6600000066a, + 0x6f0000006fa, + 0x30fb000030fc, + ), +} diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/intranges.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/intranges.py new file mode 100644 index 00000000..fa8a7356 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/intranges.py @@ -0,0 +1,53 @@ +""" +Given a list of integers, made up of (hopefully) a small number of long runs +of consecutive integers, compute a representation of the form +((start1, end1), (start2, end2) ...). Then answer the question "was x present +in the original list?" in time O(log(# runs)). +""" + +import bisect + +def intranges_from_list(list_): + """Represent a list of integers as a sequence of ranges: + ((start_0, end_0), (start_1, end_1), ...), such that the original + integers are exactly those x such that start_i <= x < end_i for some i. + + Ranges are encoded as single integers (start << 32 | end), not as tuples. + """ + + sorted_list = sorted(list_) + ranges = [] + last_write = -1 + for i in range(len(sorted_list)): + if i+1 < len(sorted_list): + if sorted_list[i] == sorted_list[i+1]-1: + continue + current_range = sorted_list[last_write+1:i+1] + ranges.append(_encode_range(current_range[0], current_range[-1] + 1)) + last_write = i + + return tuple(ranges) + +def _encode_range(start, end): + return (start << 32) | end + +def _decode_range(r): + return (r >> 32), (r & ((1 << 32) - 1)) + + +def intranges_contain(int_, ranges): + """Determine if `int_` falls into one of the ranges in `ranges`.""" + tuple_ = _encode_range(int_, 0) + pos = bisect.bisect_left(ranges, tuple_) + # we could be immediately ahead of a tuple (start, end) + # with start < int_ <= end + if pos > 0: + left, right = _decode_range(ranges[pos-1]) + if left <= int_ < right: + return True + # or we could be immediately behind a tuple (int_, end) + if pos < len(ranges): + left, _ = _decode_range(ranges[pos]) + if left == int_: + return True + return False diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/package_data.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/package_data.py new file mode 100644 index 00000000..fc331392 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/package_data.py @@ -0,0 +1,2 @@ +__version__ = '2.6' + diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/uts46data.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/uts46data.py new file mode 100644 index 00000000..f9b3236f --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/idna/uts46data.py @@ -0,0 +1,7634 @@ +# This file is automatically generated by tools/idna-data +# vim: set fileencoding=utf-8 : + +"""IDNA Mapping Table from UTS46.""" + + +__version__ = "6.3.0" +def _seg_0(): + return [ + (0x0, '3'), + (0x1, '3'), + (0x2, '3'), + (0x3, '3'), + (0x4, '3'), + (0x5, '3'), + (0x6, '3'), + (0x7, '3'), + (0x8, '3'), + (0x9, '3'), + (0xA, '3'), + (0xB, '3'), + (0xC, '3'), + (0xD, '3'), + (0xE, '3'), + (0xF, '3'), + (0x10, '3'), + (0x11, '3'), + (0x12, '3'), + (0x13, '3'), + (0x14, '3'), + (0x15, '3'), + (0x16, '3'), + (0x17, '3'), + (0x18, '3'), + (0x19, '3'), + (0x1A, '3'), + (0x1B, '3'), + (0x1C, '3'), + (0x1D, '3'), + (0x1E, '3'), + (0x1F, '3'), + (0x20, '3'), + (0x21, '3'), + (0x22, '3'), + (0x23, '3'), + (0x24, '3'), + (0x25, '3'), + (0x26, '3'), + (0x27, '3'), + (0x28, '3'), + (0x29, '3'), + (0x2A, '3'), + (0x2B, '3'), + (0x2C, '3'), + (0x2D, 'V'), + (0x2E, 'V'), + (0x2F, '3'), + (0x30, 'V'), + (0x31, 'V'), + (0x32, 'V'), + (0x33, 'V'), + (0x34, 'V'), + (0x35, 'V'), + (0x36, 'V'), + (0x37, 'V'), + (0x38, 'V'), + (0x39, 'V'), + (0x3A, '3'), + (0x3B, '3'), + (0x3C, '3'), + (0x3D, '3'), + (0x3E, '3'), + (0x3F, '3'), + (0x40, '3'), + (0x41, 'M', u'a'), + (0x42, 'M', u'b'), + (0x43, 'M', u'c'), + (0x44, 'M', u'd'), + (0x45, 'M', u'e'), + (0x46, 'M', u'f'), + (0x47, 'M', u'g'), + (0x48, 'M', u'h'), + (0x49, 'M', u'i'), + (0x4A, 'M', u'j'), + (0x4B, 'M', u'k'), + (0x4C, 'M', u'l'), + (0x4D, 'M', u'm'), + (0x4E, 'M', u'n'), + (0x4F, 'M', u'o'), + (0x50, 'M', u'p'), + (0x51, 'M', u'q'), + (0x52, 'M', u'r'), + (0x53, 'M', u's'), + (0x54, 'M', u't'), + (0x55, 'M', u'u'), + (0x56, 'M', u'v'), + (0x57, 'M', u'w'), + (0x58, 'M', u'x'), + (0x59, 'M', u'y'), + (0x5A, 'M', u'z'), + (0x5B, '3'), + (0x5C, '3'), + (0x5D, '3'), + (0x5E, '3'), + (0x5F, '3'), + (0x60, '3'), + (0x61, 'V'), + (0x62, 'V'), + (0x63, 'V'), + ] + +def _seg_1(): + return [ + (0x64, 'V'), + (0x65, 'V'), + (0x66, 'V'), + (0x67, 'V'), + (0x68, 'V'), + (0x69, 'V'), + (0x6A, 'V'), + (0x6B, 'V'), + (0x6C, 'V'), + (0x6D, 'V'), + (0x6E, 'V'), + (0x6F, 'V'), + (0x70, 'V'), + (0x71, 'V'), + (0x72, 'V'), + (0x73, 'V'), + (0x74, 'V'), + (0x75, 'V'), + (0x76, 'V'), + (0x77, 'V'), + (0x78, 'V'), + (0x79, 'V'), + (0x7A, 'V'), + (0x7B, '3'), + (0x7C, '3'), + (0x7D, '3'), + (0x7E, '3'), + (0x7F, '3'), + (0x80, 'X'), + (0x81, 'X'), + (0x82, 'X'), + (0x83, 'X'), + (0x84, 'X'), + (0x85, 'X'), + (0x86, 'X'), + (0x87, 'X'), + (0x88, 'X'), + (0x89, 'X'), + (0x8A, 'X'), + (0x8B, 'X'), + (0x8C, 'X'), + (0x8D, 'X'), + (0x8E, 'X'), + (0x8F, 'X'), + (0x90, 'X'), + (0x91, 'X'), + (0x92, 'X'), + (0x93, 'X'), + (0x94, 'X'), + (0x95, 'X'), + (0x96, 'X'), + (0x97, 'X'), + (0x98, 'X'), + (0x99, 'X'), + (0x9A, 'X'), + (0x9B, 'X'), + (0x9C, 'X'), + (0x9D, 'X'), + (0x9E, 'X'), + (0x9F, 'X'), + (0xA0, '3', u' '), + (0xA1, 'V'), + (0xA2, 'V'), + (0xA3, 'V'), + (0xA4, 'V'), + (0xA5, 'V'), + (0xA6, 'V'), + (0xA7, 'V'), + (0xA8, '3', u' ̈'), + (0xA9, 'V'), + (0xAA, 'M', u'a'), + (0xAB, 'V'), + (0xAC, 'V'), + (0xAD, 'I'), + (0xAE, 'V'), + (0xAF, '3', u' ̄'), + (0xB0, 'V'), + (0xB1, 'V'), + (0xB2, 'M', u'2'), + (0xB3, 'M', u'3'), + (0xB4, '3', u' ́'), + (0xB5, 'M', u'μ'), + (0xB6, 'V'), + (0xB7, 'V'), + (0xB8, '3', u' ̧'), + (0xB9, 'M', u'1'), + (0xBA, 'M', u'o'), + (0xBB, 'V'), + (0xBC, 'M', u'1⁄4'), + (0xBD, 'M', u'1⁄2'), + (0xBE, 'M', u'3⁄4'), + (0xBF, 'V'), + (0xC0, 'M', u'à'), + (0xC1, 'M', u'á'), + (0xC2, 'M', u'â'), + (0xC3, 'M', u'ã'), + (0xC4, 'M', u'ä'), + (0xC5, 'M', u'å'), + (0xC6, 'M', u'æ'), + (0xC7, 'M', u'ç'), + ] + +def _seg_2(): + return [ + (0xC8, 'M', u'è'), + (0xC9, 'M', u'é'), + (0xCA, 'M', u'ê'), + (0xCB, 'M', u'ë'), + (0xCC, 'M', u'ì'), + (0xCD, 'M', u'í'), + (0xCE, 'M', u'î'), + (0xCF, 'M', u'ï'), + (0xD0, 'M', u'ð'), + (0xD1, 'M', u'ñ'), + (0xD2, 'M', u'ò'), + (0xD3, 'M', u'ó'), + (0xD4, 'M', u'ô'), + (0xD5, 'M', u'õ'), + (0xD6, 'M', u'ö'), + (0xD7, 'V'), + (0xD8, 'M', u'ø'), + (0xD9, 'M', u'ù'), + (0xDA, 'M', u'ú'), + (0xDB, 'M', u'û'), + (0xDC, 'M', u'ü'), + (0xDD, 'M', u'ý'), + (0xDE, 'M', u'þ'), + (0xDF, 'D', u'ss'), + (0xE0, 'V'), + (0xE1, 'V'), + (0xE2, 'V'), + (0xE3, 'V'), + (0xE4, 'V'), + (0xE5, 'V'), + (0xE6, 'V'), + (0xE7, 'V'), + (0xE8, 'V'), + (0xE9, 'V'), + (0xEA, 'V'), + (0xEB, 'V'), + (0xEC, 'V'), + (0xED, 'V'), + (0xEE, 'V'), + (0xEF, 'V'), + (0xF0, 'V'), + (0xF1, 'V'), + (0xF2, 'V'), + (0xF3, 'V'), + (0xF4, 'V'), + (0xF5, 'V'), + (0xF6, 'V'), + (0xF7, 'V'), + (0xF8, 'V'), + (0xF9, 'V'), + (0xFA, 'V'), + (0xFB, 'V'), + (0xFC, 'V'), + (0xFD, 'V'), + (0xFE, 'V'), + (0xFF, 'V'), + (0x100, 'M', u'ā'), + (0x101, 'V'), + (0x102, 'M', u'ă'), + (0x103, 'V'), + (0x104, 'M', u'ą'), + (0x105, 'V'), + (0x106, 'M', u'ć'), + (0x107, 'V'), + (0x108, 'M', u'ĉ'), + (0x109, 'V'), + (0x10A, 'M', u'ċ'), + (0x10B, 'V'), + (0x10C, 'M', u'č'), + (0x10D, 'V'), + (0x10E, 'M', u'ď'), + (0x10F, 'V'), + (0x110, 'M', u'đ'), + (0x111, 'V'), + (0x112, 'M', u'ē'), + (0x113, 'V'), + (0x114, 'M', u'ĕ'), + (0x115, 'V'), + (0x116, 'M', u'ė'), + (0x117, 'V'), + (0x118, 'M', u'ę'), + (0x119, 'V'), + (0x11A, 'M', u'ě'), + (0x11B, 'V'), + (0x11C, 'M', u'ĝ'), + (0x11D, 'V'), + (0x11E, 'M', u'ğ'), + (0x11F, 'V'), + (0x120, 'M', u'ġ'), + (0x121, 'V'), + (0x122, 'M', u'ģ'), + (0x123, 'V'), + (0x124, 'M', u'ĥ'), + (0x125, 'V'), + (0x126, 'M', u'ħ'), + (0x127, 'V'), + (0x128, 'M', u'ĩ'), + (0x129, 'V'), + (0x12A, 'M', u'ī'), + (0x12B, 'V'), + ] + +def _seg_3(): + return [ + (0x12C, 'M', u'ĭ'), + (0x12D, 'V'), + (0x12E, 'M', u'į'), + (0x12F, 'V'), + (0x130, 'M', u'i̇'), + (0x131, 'V'), + (0x132, 'M', u'ij'), + (0x134, 'M', u'ĵ'), + (0x135, 'V'), + (0x136, 'M', u'ķ'), + (0x137, 'V'), + (0x139, 'M', u'ĺ'), + (0x13A, 'V'), + (0x13B, 'M', u'ļ'), + (0x13C, 'V'), + (0x13D, 'M', u'ľ'), + (0x13E, 'V'), + (0x13F, 'M', u'l·'), + (0x141, 'M', u'ł'), + (0x142, 'V'), + (0x143, 'M', u'ń'), + (0x144, 'V'), + (0x145, 'M', u'ņ'), + (0x146, 'V'), + (0x147, 'M', u'ň'), + (0x148, 'V'), + (0x149, 'M', u'ʼn'), + (0x14A, 'M', u'ŋ'), + (0x14B, 'V'), + (0x14C, 'M', u'ō'), + (0x14D, 'V'), + (0x14E, 'M', u'ŏ'), + (0x14F, 'V'), + (0x150, 'M', u'ő'), + (0x151, 'V'), + (0x152, 'M', u'œ'), + (0x153, 'V'), + (0x154, 'M', u'ŕ'), + (0x155, 'V'), + (0x156, 'M', u'ŗ'), + (0x157, 'V'), + (0x158, 'M', u'ř'), + (0x159, 'V'), + (0x15A, 'M', u'ś'), + (0x15B, 'V'), + (0x15C, 'M', u'ŝ'), + (0x15D, 'V'), + (0x15E, 'M', u'ş'), + (0x15F, 'V'), + (0x160, 'M', u'š'), + (0x161, 'V'), + (0x162, 'M', u'ţ'), + (0x163, 'V'), + (0x164, 'M', u'ť'), + (0x165, 'V'), + (0x166, 'M', u'ŧ'), + (0x167, 'V'), + (0x168, 'M', u'ũ'), + (0x169, 'V'), + (0x16A, 'M', u'ū'), + (0x16B, 'V'), + (0x16C, 'M', u'ŭ'), + (0x16D, 'V'), + (0x16E, 'M', u'ů'), + (0x16F, 'V'), + (0x170, 'M', u'ű'), + (0x171, 'V'), + (0x172, 'M', u'ų'), + (0x173, 'V'), + (0x174, 'M', u'ŵ'), + (0x175, 'V'), + (0x176, 'M', u'ŷ'), + (0x177, 'V'), + (0x178, 'M', u'ÿ'), + (0x179, 'M', u'ź'), + (0x17A, 'V'), + (0x17B, 'M', u'ż'), + (0x17C, 'V'), + (0x17D, 'M', u'ž'), + (0x17E, 'V'), + (0x17F, 'M', u's'), + (0x180, 'V'), + (0x181, 'M', u'ɓ'), + (0x182, 'M', u'ƃ'), + (0x183, 'V'), + (0x184, 'M', u'ƅ'), + (0x185, 'V'), + (0x186, 'M', u'ɔ'), + (0x187, 'M', u'ƈ'), + (0x188, 'V'), + (0x189, 'M', u'ɖ'), + (0x18A, 'M', u'ɗ'), + (0x18B, 'M', u'ƌ'), + (0x18C, 'V'), + (0x18E, 'M', u'ǝ'), + (0x18F, 'M', u'ə'), + (0x190, 'M', u'ɛ'), + (0x191, 'M', u'ƒ'), + (0x192, 'V'), + (0x193, 'M', u'ɠ'), + ] + +def _seg_4(): + return [ + (0x194, 'M', u'ɣ'), + (0x195, 'V'), + (0x196, 'M', u'ɩ'), + (0x197, 'M', u'ɨ'), + (0x198, 'M', u'ƙ'), + (0x199, 'V'), + (0x19C, 'M', u'ɯ'), + (0x19D, 'M', u'ɲ'), + (0x19E, 'V'), + (0x19F, 'M', u'ɵ'), + (0x1A0, 'M', u'ơ'), + (0x1A1, 'V'), + (0x1A2, 'M', u'ƣ'), + (0x1A3, 'V'), + (0x1A4, 'M', u'ƥ'), + (0x1A5, 'V'), + (0x1A6, 'M', u'ʀ'), + (0x1A7, 'M', u'ƨ'), + (0x1A8, 'V'), + (0x1A9, 'M', u'ʃ'), + (0x1AA, 'V'), + (0x1AC, 'M', u'ƭ'), + (0x1AD, 'V'), + (0x1AE, 'M', u'ʈ'), + (0x1AF, 'M', u'ư'), + (0x1B0, 'V'), + (0x1B1, 'M', u'ʊ'), + (0x1B2, 'M', u'ʋ'), + (0x1B3, 'M', u'ƴ'), + (0x1B4, 'V'), + (0x1B5, 'M', u'ƶ'), + (0x1B6, 'V'), + (0x1B7, 'M', u'ʒ'), + (0x1B8, 'M', u'ƹ'), + (0x1B9, 'V'), + (0x1BC, 'M', u'ƽ'), + (0x1BD, 'V'), + (0x1C4, 'M', u'dž'), + (0x1C7, 'M', u'lj'), + (0x1CA, 'M', u'nj'), + (0x1CD, 'M', u'ǎ'), + (0x1CE, 'V'), + (0x1CF, 'M', u'ǐ'), + (0x1D0, 'V'), + (0x1D1, 'M', u'ǒ'), + (0x1D2, 'V'), + (0x1D3, 'M', u'ǔ'), + (0x1D4, 'V'), + (0x1D5, 'M', u'ǖ'), + (0x1D6, 'V'), + (0x1D7, 'M', u'ǘ'), + (0x1D8, 'V'), + (0x1D9, 'M', u'ǚ'), + (0x1DA, 'V'), + (0x1DB, 'M', u'ǜ'), + (0x1DC, 'V'), + (0x1DE, 'M', u'ǟ'), + (0x1DF, 'V'), + (0x1E0, 'M', u'ǡ'), + (0x1E1, 'V'), + (0x1E2, 'M', u'ǣ'), + (0x1E3, 'V'), + (0x1E4, 'M', u'ǥ'), + (0x1E5, 'V'), + (0x1E6, 'M', u'ǧ'), + (0x1E7, 'V'), + (0x1E8, 'M', u'ǩ'), + (0x1E9, 'V'), + (0x1EA, 'M', u'ǫ'), + (0x1EB, 'V'), + (0x1EC, 'M', u'ǭ'), + (0x1ED, 'V'), + (0x1EE, 'M', u'ǯ'), + (0x1EF, 'V'), + (0x1F1, 'M', u'dz'), + (0x1F4, 'M', u'ǵ'), + (0x1F5, 'V'), + (0x1F6, 'M', u'ƕ'), + (0x1F7, 'M', u'ƿ'), + (0x1F8, 'M', u'ǹ'), + (0x1F9, 'V'), + (0x1FA, 'M', u'ǻ'), + (0x1FB, 'V'), + (0x1FC, 'M', u'ǽ'), + (0x1FD, 'V'), + (0x1FE, 'M', u'ǿ'), + (0x1FF, 'V'), + (0x200, 'M', u'ȁ'), + (0x201, 'V'), + (0x202, 'M', u'ȃ'), + (0x203, 'V'), + (0x204, 'M', u'ȅ'), + (0x205, 'V'), + (0x206, 'M', u'ȇ'), + (0x207, 'V'), + (0x208, 'M', u'ȉ'), + (0x209, 'V'), + (0x20A, 'M', u'ȋ'), + (0x20B, 'V'), + (0x20C, 'M', u'ȍ'), + ] + +def _seg_5(): + return [ + (0x20D, 'V'), + (0x20E, 'M', u'ȏ'), + (0x20F, 'V'), + (0x210, 'M', u'ȑ'), + (0x211, 'V'), + (0x212, 'M', u'ȓ'), + (0x213, 'V'), + (0x214, 'M', u'ȕ'), + (0x215, 'V'), + (0x216, 'M', u'ȗ'), + (0x217, 'V'), + (0x218, 'M', u'ș'), + (0x219, 'V'), + (0x21A, 'M', u'ț'), + (0x21B, 'V'), + (0x21C, 'M', u'ȝ'), + (0x21D, 'V'), + (0x21E, 'M', u'ȟ'), + (0x21F, 'V'), + (0x220, 'M', u'ƞ'), + (0x221, 'V'), + (0x222, 'M', u'ȣ'), + (0x223, 'V'), + (0x224, 'M', u'ȥ'), + (0x225, 'V'), + (0x226, 'M', u'ȧ'), + (0x227, 'V'), + (0x228, 'M', u'ȩ'), + (0x229, 'V'), + (0x22A, 'M', u'ȫ'), + (0x22B, 'V'), + (0x22C, 'M', u'ȭ'), + (0x22D, 'V'), + (0x22E, 'M', u'ȯ'), + (0x22F, 'V'), + (0x230, 'M', u'ȱ'), + (0x231, 'V'), + (0x232, 'M', u'ȳ'), + (0x233, 'V'), + (0x23A, 'M', u'ⱥ'), + (0x23B, 'M', u'ȼ'), + (0x23C, 'V'), + (0x23D, 'M', u'ƚ'), + (0x23E, 'M', u'ⱦ'), + (0x23F, 'V'), + (0x241, 'M', u'ɂ'), + (0x242, 'V'), + (0x243, 'M', u'ƀ'), + (0x244, 'M', u'ʉ'), + (0x245, 'M', u'ʌ'), + (0x246, 'M', u'ɇ'), + (0x247, 'V'), + (0x248, 'M', u'ɉ'), + (0x249, 'V'), + (0x24A, 'M', u'ɋ'), + (0x24B, 'V'), + (0x24C, 'M', u'ɍ'), + (0x24D, 'V'), + (0x24E, 'M', u'ɏ'), + (0x24F, 'V'), + (0x2B0, 'M', u'h'), + (0x2B1, 'M', u'ɦ'), + (0x2B2, 'M', u'j'), + (0x2B3, 'M', u'r'), + (0x2B4, 'M', u'ɹ'), + (0x2B5, 'M', u'ɻ'), + (0x2B6, 'M', u'ʁ'), + (0x2B7, 'M', u'w'), + (0x2B8, 'M', u'y'), + (0x2B9, 'V'), + (0x2D8, '3', u' ̆'), + (0x2D9, '3', u' ̇'), + (0x2DA, '3', u' ̊'), + (0x2DB, '3', u' ̨'), + (0x2DC, '3', u' ̃'), + (0x2DD, '3', u' ̋'), + (0x2DE, 'V'), + (0x2E0, 'M', u'ɣ'), + (0x2E1, 'M', u'l'), + (0x2E2, 'M', u's'), + (0x2E3, 'M', u'x'), + (0x2E4, 'M', u'ʕ'), + (0x2E5, 'V'), + (0x340, 'M', u'̀'), + (0x341, 'M', u'́'), + (0x342, 'V'), + (0x343, 'M', u'̓'), + (0x344, 'M', u'̈́'), + (0x345, 'M', u'ι'), + (0x346, 'V'), + (0x34F, 'I'), + (0x350, 'V'), + (0x370, 'M', u'ͱ'), + (0x371, 'V'), + (0x372, 'M', u'ͳ'), + (0x373, 'V'), + (0x374, 'M', u'ʹ'), + (0x375, 'V'), + (0x376, 'M', u'ͷ'), + (0x377, 'V'), + ] + +def _seg_6(): + return [ + (0x378, 'X'), + (0x37A, '3', u' ι'), + (0x37B, 'V'), + (0x37E, '3', u';'), + (0x37F, 'X'), + (0x384, '3', u' ́'), + (0x385, '3', u' ̈́'), + (0x386, 'M', u'ά'), + (0x387, 'M', u'·'), + (0x388, 'M', u'έ'), + (0x389, 'M', u'ή'), + (0x38A, 'M', u'ί'), + (0x38B, 'X'), + (0x38C, 'M', u'ό'), + (0x38D, 'X'), + (0x38E, 'M', u'ύ'), + (0x38F, 'M', u'ώ'), + (0x390, 'V'), + (0x391, 'M', u'α'), + (0x392, 'M', u'β'), + (0x393, 'M', u'γ'), + (0x394, 'M', u'δ'), + (0x395, 'M', u'ε'), + (0x396, 'M', u'ζ'), + (0x397, 'M', u'η'), + (0x398, 'M', u'θ'), + (0x399, 'M', u'ι'), + (0x39A, 'M', u'κ'), + (0x39B, 'M', u'λ'), + (0x39C, 'M', u'μ'), + (0x39D, 'M', u'ν'), + (0x39E, 'M', u'ξ'), + (0x39F, 'M', u'ο'), + (0x3A0, 'M', u'π'), + (0x3A1, 'M', u'ρ'), + (0x3A2, 'X'), + (0x3A3, 'M', u'σ'), + (0x3A4, 'M', u'τ'), + (0x3A5, 'M', u'υ'), + (0x3A6, 'M', u'φ'), + (0x3A7, 'M', u'χ'), + (0x3A8, 'M', u'ψ'), + (0x3A9, 'M', u'ω'), + (0x3AA, 'M', u'ϊ'), + (0x3AB, 'M', u'ϋ'), + (0x3AC, 'V'), + (0x3C2, 'D', u'σ'), + (0x3C3, 'V'), + (0x3CF, 'M', u'ϗ'), + (0x3D0, 'M', u'β'), + (0x3D1, 'M', u'θ'), + (0x3D2, 'M', u'υ'), + (0x3D3, 'M', u'ύ'), + (0x3D4, 'M', u'ϋ'), + (0x3D5, 'M', u'φ'), + (0x3D6, 'M', u'π'), + (0x3D7, 'V'), + (0x3D8, 'M', u'ϙ'), + (0x3D9, 'V'), + (0x3DA, 'M', u'ϛ'), + (0x3DB, 'V'), + (0x3DC, 'M', u'ϝ'), + (0x3DD, 'V'), + (0x3DE, 'M', u'ϟ'), + (0x3DF, 'V'), + (0x3E0, 'M', u'ϡ'), + (0x3E1, 'V'), + (0x3E2, 'M', u'ϣ'), + (0x3E3, 'V'), + (0x3E4, 'M', u'ϥ'), + (0x3E5, 'V'), + (0x3E6, 'M', u'ϧ'), + (0x3E7, 'V'), + (0x3E8, 'M', u'ϩ'), + (0x3E9, 'V'), + (0x3EA, 'M', u'ϫ'), + (0x3EB, 'V'), + (0x3EC, 'M', u'ϭ'), + (0x3ED, 'V'), + (0x3EE, 'M', u'ϯ'), + (0x3EF, 'V'), + (0x3F0, 'M', u'κ'), + (0x3F1, 'M', u'ρ'), + (0x3F2, 'M', u'σ'), + (0x3F3, 'V'), + (0x3F4, 'M', u'θ'), + (0x3F5, 'M', u'ε'), + (0x3F6, 'V'), + (0x3F7, 'M', u'ϸ'), + (0x3F8, 'V'), + (0x3F9, 'M', u'σ'), + (0x3FA, 'M', u'ϻ'), + (0x3FB, 'V'), + (0x3FD, 'M', u'ͻ'), + (0x3FE, 'M', u'ͼ'), + (0x3FF, 'M', u'ͽ'), + (0x400, 'M', u'ѐ'), + (0x401, 'M', u'ё'), + (0x402, 'M', u'ђ'), + (0x403, 'M', u'ѓ'), + ] + +def _seg_7(): + return [ + (0x404, 'M', u'є'), + (0x405, 'M', u'ѕ'), + (0x406, 'M', u'і'), + (0x407, 'M', u'ї'), + (0x408, 'M', u'ј'), + (0x409, 'M', u'љ'), + (0x40A, 'M', u'њ'), + (0x40B, 'M', u'ћ'), + (0x40C, 'M', u'ќ'), + (0x40D, 'M', u'ѝ'), + (0x40E, 'M', u'ў'), + (0x40F, 'M', u'џ'), + (0x410, 'M', u'а'), + (0x411, 'M', u'б'), + (0x412, 'M', u'в'), + (0x413, 'M', u'г'), + (0x414, 'M', u'д'), + (0x415, 'M', u'е'), + (0x416, 'M', u'ж'), + (0x417, 'M', u'з'), + (0x418, 'M', u'и'), + (0x419, 'M', u'й'), + (0x41A, 'M', u'к'), + (0x41B, 'M', u'л'), + (0x41C, 'M', u'м'), + (0x41D, 'M', u'н'), + (0x41E, 'M', u'о'), + (0x41F, 'M', u'п'), + (0x420, 'M', u'р'), + (0x421, 'M', u'с'), + (0x422, 'M', u'т'), + (0x423, 'M', u'у'), + (0x424, 'M', u'ф'), + (0x425, 'M', u'х'), + (0x426, 'M', u'ц'), + (0x427, 'M', u'ч'), + (0x428, 'M', u'ш'), + (0x429, 'M', u'щ'), + (0x42A, 'M', u'ъ'), + (0x42B, 'M', u'ы'), + (0x42C, 'M', u'ь'), + (0x42D, 'M', u'э'), + (0x42E, 'M', u'ю'), + (0x42F, 'M', u'я'), + (0x430, 'V'), + (0x460, 'M', u'ѡ'), + (0x461, 'V'), + (0x462, 'M', u'ѣ'), + (0x463, 'V'), + (0x464, 'M', u'ѥ'), + (0x465, 'V'), + (0x466, 'M', u'ѧ'), + (0x467, 'V'), + (0x468, 'M', u'ѩ'), + (0x469, 'V'), + (0x46A, 'M', u'ѫ'), + (0x46B, 'V'), + (0x46C, 'M', u'ѭ'), + (0x46D, 'V'), + (0x46E, 'M', u'ѯ'), + (0x46F, 'V'), + (0x470, 'M', u'ѱ'), + (0x471, 'V'), + (0x472, 'M', u'ѳ'), + (0x473, 'V'), + (0x474, 'M', u'ѵ'), + (0x475, 'V'), + (0x476, 'M', u'ѷ'), + (0x477, 'V'), + (0x478, 'M', u'ѹ'), + (0x479, 'V'), + (0x47A, 'M', u'ѻ'), + (0x47B, 'V'), + (0x47C, 'M', u'ѽ'), + (0x47D, 'V'), + (0x47E, 'M', u'ѿ'), + (0x47F, 'V'), + (0x480, 'M', u'ҁ'), + (0x481, 'V'), + (0x48A, 'M', u'ҋ'), + (0x48B, 'V'), + (0x48C, 'M', u'ҍ'), + (0x48D, 'V'), + (0x48E, 'M', u'ҏ'), + (0x48F, 'V'), + (0x490, 'M', u'ґ'), + (0x491, 'V'), + (0x492, 'M', u'ғ'), + (0x493, 'V'), + (0x494, 'M', u'ҕ'), + (0x495, 'V'), + (0x496, 'M', u'җ'), + (0x497, 'V'), + (0x498, 'M', u'ҙ'), + (0x499, 'V'), + (0x49A, 'M', u'қ'), + (0x49B, 'V'), + (0x49C, 'M', u'ҝ'), + (0x49D, 'V'), + (0x49E, 'M', u'ҟ'), + ] + +def _seg_8(): + return [ + (0x49F, 'V'), + (0x4A0, 'M', u'ҡ'), + (0x4A1, 'V'), + (0x4A2, 'M', u'ң'), + (0x4A3, 'V'), + (0x4A4, 'M', u'ҥ'), + (0x4A5, 'V'), + (0x4A6, 'M', u'ҧ'), + (0x4A7, 'V'), + (0x4A8, 'M', u'ҩ'), + (0x4A9, 'V'), + (0x4AA, 'M', u'ҫ'), + (0x4AB, 'V'), + (0x4AC, 'M', u'ҭ'), + (0x4AD, 'V'), + (0x4AE, 'M', u'ү'), + (0x4AF, 'V'), + (0x4B0, 'M', u'ұ'), + (0x4B1, 'V'), + (0x4B2, 'M', u'ҳ'), + (0x4B3, 'V'), + (0x4B4, 'M', u'ҵ'), + (0x4B5, 'V'), + (0x4B6, 'M', u'ҷ'), + (0x4B7, 'V'), + (0x4B8, 'M', u'ҹ'), + (0x4B9, 'V'), + (0x4BA, 'M', u'һ'), + (0x4BB, 'V'), + (0x4BC, 'M', u'ҽ'), + (0x4BD, 'V'), + (0x4BE, 'M', u'ҿ'), + (0x4BF, 'V'), + (0x4C0, 'X'), + (0x4C1, 'M', u'ӂ'), + (0x4C2, 'V'), + (0x4C3, 'M', u'ӄ'), + (0x4C4, 'V'), + (0x4C5, 'M', u'ӆ'), + (0x4C6, 'V'), + (0x4C7, 'M', u'ӈ'), + (0x4C8, 'V'), + (0x4C9, 'M', u'ӊ'), + (0x4CA, 'V'), + (0x4CB, 'M', u'ӌ'), + (0x4CC, 'V'), + (0x4CD, 'M', u'ӎ'), + (0x4CE, 'V'), + (0x4D0, 'M', u'ӑ'), + (0x4D1, 'V'), + (0x4D2, 'M', u'ӓ'), + (0x4D3, 'V'), + (0x4D4, 'M', u'ӕ'), + (0x4D5, 'V'), + (0x4D6, 'M', u'ӗ'), + (0x4D7, 'V'), + (0x4D8, 'M', u'ә'), + (0x4D9, 'V'), + (0x4DA, 'M', u'ӛ'), + (0x4DB, 'V'), + (0x4DC, 'M', u'ӝ'), + (0x4DD, 'V'), + (0x4DE, 'M', u'ӟ'), + (0x4DF, 'V'), + (0x4E0, 'M', u'ӡ'), + (0x4E1, 'V'), + (0x4E2, 'M', u'ӣ'), + (0x4E3, 'V'), + (0x4E4, 'M', u'ӥ'), + (0x4E5, 'V'), + (0x4E6, 'M', u'ӧ'), + (0x4E7, 'V'), + (0x4E8, 'M', u'ө'), + (0x4E9, 'V'), + (0x4EA, 'M', u'ӫ'), + (0x4EB, 'V'), + (0x4EC, 'M', u'ӭ'), + (0x4ED, 'V'), + (0x4EE, 'M', u'ӯ'), + (0x4EF, 'V'), + (0x4F0, 'M', u'ӱ'), + (0x4F1, 'V'), + (0x4F2, 'M', u'ӳ'), + (0x4F3, 'V'), + (0x4F4, 'M', u'ӵ'), + (0x4F5, 'V'), + (0x4F6, 'M', u'ӷ'), + (0x4F7, 'V'), + (0x4F8, 'M', u'ӹ'), + (0x4F9, 'V'), + (0x4FA, 'M', u'ӻ'), + (0x4FB, 'V'), + (0x4FC, 'M', u'ӽ'), + (0x4FD, 'V'), + (0x4FE, 'M', u'ӿ'), + (0x4FF, 'V'), + (0x500, 'M', u'ԁ'), + (0x501, 'V'), + (0x502, 'M', u'ԃ'), + (0x503, 'V'), + ] + +def _seg_9(): + return [ + (0x504, 'M', u'ԅ'), + (0x505, 'V'), + (0x506, 'M', u'ԇ'), + (0x507, 'V'), + (0x508, 'M', u'ԉ'), + (0x509, 'V'), + (0x50A, 'M', u'ԋ'), + (0x50B, 'V'), + (0x50C, 'M', u'ԍ'), + (0x50D, 'V'), + (0x50E, 'M', u'ԏ'), + (0x50F, 'V'), + (0x510, 'M', u'ԑ'), + (0x511, 'V'), + (0x512, 'M', u'ԓ'), + (0x513, 'V'), + (0x514, 'M', u'ԕ'), + (0x515, 'V'), + (0x516, 'M', u'ԗ'), + (0x517, 'V'), + (0x518, 'M', u'ԙ'), + (0x519, 'V'), + (0x51A, 'M', u'ԛ'), + (0x51B, 'V'), + (0x51C, 'M', u'ԝ'), + (0x51D, 'V'), + (0x51E, 'M', u'ԟ'), + (0x51F, 'V'), + (0x520, 'M', u'ԡ'), + (0x521, 'V'), + (0x522, 'M', u'ԣ'), + (0x523, 'V'), + (0x524, 'M', u'ԥ'), + (0x525, 'V'), + (0x526, 'M', u'ԧ'), + (0x527, 'V'), + (0x528, 'X'), + (0x531, 'M', u'ա'), + (0x532, 'M', u'բ'), + (0x533, 'M', u'գ'), + (0x534, 'M', u'դ'), + (0x535, 'M', u'ե'), + (0x536, 'M', u'զ'), + (0x537, 'M', u'է'), + (0x538, 'M', u'ը'), + (0x539, 'M', u'թ'), + (0x53A, 'M', u'ժ'), + (0x53B, 'M', u'ի'), + (0x53C, 'M', u'լ'), + (0x53D, 'M', u'խ'), + (0x53E, 'M', u'ծ'), + (0x53F, 'M', u'կ'), + (0x540, 'M', u'հ'), + (0x541, 'M', u'ձ'), + (0x542, 'M', u'ղ'), + (0x543, 'M', u'ճ'), + (0x544, 'M', u'մ'), + (0x545, 'M', u'յ'), + (0x546, 'M', u'ն'), + (0x547, 'M', u'շ'), + (0x548, 'M', u'ո'), + (0x549, 'M', u'չ'), + (0x54A, 'M', u'պ'), + (0x54B, 'M', u'ջ'), + (0x54C, 'M', u'ռ'), + (0x54D, 'M', u'ս'), + (0x54E, 'M', u'վ'), + (0x54F, 'M', u'տ'), + (0x550, 'M', u'ր'), + (0x551, 'M', u'ց'), + (0x552, 'M', u'ւ'), + (0x553, 'M', u'փ'), + (0x554, 'M', u'ք'), + (0x555, 'M', u'օ'), + (0x556, 'M', u'ֆ'), + (0x557, 'X'), + (0x559, 'V'), + (0x560, 'X'), + (0x561, 'V'), + (0x587, 'M', u'եւ'), + (0x588, 'X'), + (0x589, 'V'), + (0x58B, 'X'), + (0x58F, 'V'), + (0x590, 'X'), + (0x591, 'V'), + (0x5C8, 'X'), + (0x5D0, 'V'), + (0x5EB, 'X'), + (0x5F0, 'V'), + (0x5F5, 'X'), + (0x606, 'V'), + (0x61C, 'X'), + (0x61E, 'V'), + (0x675, 'M', u'اٴ'), + (0x676, 'M', u'وٴ'), + (0x677, 'M', u'ۇٴ'), + (0x678, 'M', u'يٴ'), + (0x679, 'V'), + (0x6DD, 'X'), + ] + +def _seg_10(): + return [ + (0x6DE, 'V'), + (0x70E, 'X'), + (0x710, 'V'), + (0x74B, 'X'), + (0x74D, 'V'), + (0x7B2, 'X'), + (0x7C0, 'V'), + (0x7FB, 'X'), + (0x800, 'V'), + (0x82E, 'X'), + (0x830, 'V'), + (0x83F, 'X'), + (0x840, 'V'), + (0x85C, 'X'), + (0x85E, 'V'), + (0x85F, 'X'), + (0x8A0, 'V'), + (0x8A1, 'X'), + (0x8A2, 'V'), + (0x8AD, 'X'), + (0x8E4, 'V'), + (0x8FF, 'X'), + (0x900, 'V'), + (0x958, 'M', u'क़'), + (0x959, 'M', u'ख़'), + (0x95A, 'M', u'ग़'), + (0x95B, 'M', u'ज़'), + (0x95C, 'M', u'ड़'), + (0x95D, 'M', u'ढ़'), + (0x95E, 'M', u'फ़'), + (0x95F, 'M', u'य़'), + (0x960, 'V'), + (0x978, 'X'), + (0x979, 'V'), + (0x980, 'X'), + (0x981, 'V'), + (0x984, 'X'), + (0x985, 'V'), + (0x98D, 'X'), + (0x98F, 'V'), + (0x991, 'X'), + (0x993, 'V'), + (0x9A9, 'X'), + (0x9AA, 'V'), + (0x9B1, 'X'), + (0x9B2, 'V'), + (0x9B3, 'X'), + (0x9B6, 'V'), + (0x9BA, 'X'), + (0x9BC, 'V'), + (0x9C5, 'X'), + (0x9C7, 'V'), + (0x9C9, 'X'), + (0x9CB, 'V'), + (0x9CF, 'X'), + (0x9D7, 'V'), + (0x9D8, 'X'), + (0x9DC, 'M', u'ড়'), + (0x9DD, 'M', u'ঢ়'), + (0x9DE, 'X'), + (0x9DF, 'M', u'য়'), + (0x9E0, 'V'), + (0x9E4, 'X'), + (0x9E6, 'V'), + (0x9FC, 'X'), + (0xA01, 'V'), + (0xA04, 'X'), + (0xA05, 'V'), + (0xA0B, 'X'), + (0xA0F, 'V'), + (0xA11, 'X'), + (0xA13, 'V'), + (0xA29, 'X'), + (0xA2A, 'V'), + (0xA31, 'X'), + (0xA32, 'V'), + (0xA33, 'M', u'ਲ਼'), + (0xA34, 'X'), + (0xA35, 'V'), + (0xA36, 'M', u'ਸ਼'), + (0xA37, 'X'), + (0xA38, 'V'), + (0xA3A, 'X'), + (0xA3C, 'V'), + (0xA3D, 'X'), + (0xA3E, 'V'), + (0xA43, 'X'), + (0xA47, 'V'), + (0xA49, 'X'), + (0xA4B, 'V'), + (0xA4E, 'X'), + (0xA51, 'V'), + (0xA52, 'X'), + (0xA59, 'M', u'ਖ਼'), + (0xA5A, 'M', u'ਗ਼'), + (0xA5B, 'M', u'ਜ਼'), + (0xA5C, 'V'), + (0xA5D, 'X'), + (0xA5E, 'M', u'ਫ਼'), + (0xA5F, 'X'), + ] + +def _seg_11(): + return [ + (0xA66, 'V'), + (0xA76, 'X'), + (0xA81, 'V'), + (0xA84, 'X'), + (0xA85, 'V'), + (0xA8E, 'X'), + (0xA8F, 'V'), + (0xA92, 'X'), + (0xA93, 'V'), + (0xAA9, 'X'), + (0xAAA, 'V'), + (0xAB1, 'X'), + (0xAB2, 'V'), + (0xAB4, 'X'), + (0xAB5, 'V'), + (0xABA, 'X'), + (0xABC, 'V'), + (0xAC6, 'X'), + (0xAC7, 'V'), + (0xACA, 'X'), + (0xACB, 'V'), + (0xACE, 'X'), + (0xAD0, 'V'), + (0xAD1, 'X'), + (0xAE0, 'V'), + (0xAE4, 'X'), + (0xAE6, 'V'), + (0xAF2, 'X'), + (0xB01, 'V'), + (0xB04, 'X'), + (0xB05, 'V'), + (0xB0D, 'X'), + (0xB0F, 'V'), + (0xB11, 'X'), + (0xB13, 'V'), + (0xB29, 'X'), + (0xB2A, 'V'), + (0xB31, 'X'), + (0xB32, 'V'), + (0xB34, 'X'), + (0xB35, 'V'), + (0xB3A, 'X'), + (0xB3C, 'V'), + (0xB45, 'X'), + (0xB47, 'V'), + (0xB49, 'X'), + (0xB4B, 'V'), + (0xB4E, 'X'), + (0xB56, 'V'), + (0xB58, 'X'), + (0xB5C, 'M', u'ଡ଼'), + (0xB5D, 'M', u'ଢ଼'), + (0xB5E, 'X'), + (0xB5F, 'V'), + (0xB64, 'X'), + (0xB66, 'V'), + (0xB78, 'X'), + (0xB82, 'V'), + (0xB84, 'X'), + (0xB85, 'V'), + (0xB8B, 'X'), + (0xB8E, 'V'), + (0xB91, 'X'), + (0xB92, 'V'), + (0xB96, 'X'), + (0xB99, 'V'), + (0xB9B, 'X'), + (0xB9C, 'V'), + (0xB9D, 'X'), + (0xB9E, 'V'), + (0xBA0, 'X'), + (0xBA3, 'V'), + (0xBA5, 'X'), + (0xBA8, 'V'), + (0xBAB, 'X'), + (0xBAE, 'V'), + (0xBBA, 'X'), + (0xBBE, 'V'), + (0xBC3, 'X'), + (0xBC6, 'V'), + (0xBC9, 'X'), + (0xBCA, 'V'), + (0xBCE, 'X'), + (0xBD0, 'V'), + (0xBD1, 'X'), + (0xBD7, 'V'), + (0xBD8, 'X'), + (0xBE6, 'V'), + (0xBFB, 'X'), + (0xC01, 'V'), + (0xC04, 'X'), + (0xC05, 'V'), + (0xC0D, 'X'), + (0xC0E, 'V'), + (0xC11, 'X'), + (0xC12, 'V'), + (0xC29, 'X'), + (0xC2A, 'V'), + (0xC34, 'X'), + (0xC35, 'V'), + ] + +def _seg_12(): + return [ + (0xC3A, 'X'), + (0xC3D, 'V'), + (0xC45, 'X'), + (0xC46, 'V'), + (0xC49, 'X'), + (0xC4A, 'V'), + (0xC4E, 'X'), + (0xC55, 'V'), + (0xC57, 'X'), + (0xC58, 'V'), + (0xC5A, 'X'), + (0xC60, 'V'), + (0xC64, 'X'), + (0xC66, 'V'), + (0xC70, 'X'), + (0xC78, 'V'), + (0xC80, 'X'), + (0xC82, 'V'), + (0xC84, 'X'), + (0xC85, 'V'), + (0xC8D, 'X'), + (0xC8E, 'V'), + (0xC91, 'X'), + (0xC92, 'V'), + (0xCA9, 'X'), + (0xCAA, 'V'), + (0xCB4, 'X'), + (0xCB5, 'V'), + (0xCBA, 'X'), + (0xCBC, 'V'), + (0xCC5, 'X'), + (0xCC6, 'V'), + (0xCC9, 'X'), + (0xCCA, 'V'), + (0xCCE, 'X'), + (0xCD5, 'V'), + (0xCD7, 'X'), + (0xCDE, 'V'), + (0xCDF, 'X'), + (0xCE0, 'V'), + (0xCE4, 'X'), + (0xCE6, 'V'), + (0xCF0, 'X'), + (0xCF1, 'V'), + (0xCF3, 'X'), + (0xD02, 'V'), + (0xD04, 'X'), + (0xD05, 'V'), + (0xD0D, 'X'), + (0xD0E, 'V'), + (0xD11, 'X'), + (0xD12, 'V'), + (0xD3B, 'X'), + (0xD3D, 'V'), + (0xD45, 'X'), + (0xD46, 'V'), + (0xD49, 'X'), + (0xD4A, 'V'), + (0xD4F, 'X'), + (0xD57, 'V'), + (0xD58, 'X'), + (0xD60, 'V'), + (0xD64, 'X'), + (0xD66, 'V'), + (0xD76, 'X'), + (0xD79, 'V'), + (0xD80, 'X'), + (0xD82, 'V'), + (0xD84, 'X'), + (0xD85, 'V'), + (0xD97, 'X'), + (0xD9A, 'V'), + (0xDB2, 'X'), + (0xDB3, 'V'), + (0xDBC, 'X'), + (0xDBD, 'V'), + (0xDBE, 'X'), + (0xDC0, 'V'), + (0xDC7, 'X'), + (0xDCA, 'V'), + (0xDCB, 'X'), + (0xDCF, 'V'), + (0xDD5, 'X'), + (0xDD6, 'V'), + (0xDD7, 'X'), + (0xDD8, 'V'), + (0xDE0, 'X'), + (0xDF2, 'V'), + (0xDF5, 'X'), + (0xE01, 'V'), + (0xE33, 'M', u'ํา'), + (0xE34, 'V'), + (0xE3B, 'X'), + (0xE3F, 'V'), + (0xE5C, 'X'), + (0xE81, 'V'), + (0xE83, 'X'), + (0xE84, 'V'), + (0xE85, 'X'), + (0xE87, 'V'), + ] + +def _seg_13(): + return [ + (0xE89, 'X'), + (0xE8A, 'V'), + (0xE8B, 'X'), + (0xE8D, 'V'), + (0xE8E, 'X'), + (0xE94, 'V'), + (0xE98, 'X'), + (0xE99, 'V'), + (0xEA0, 'X'), + (0xEA1, 'V'), + (0xEA4, 'X'), + (0xEA5, 'V'), + (0xEA6, 'X'), + (0xEA7, 'V'), + (0xEA8, 'X'), + (0xEAA, 'V'), + (0xEAC, 'X'), + (0xEAD, 'V'), + (0xEB3, 'M', u'ໍາ'), + (0xEB4, 'V'), + (0xEBA, 'X'), + (0xEBB, 'V'), + (0xEBE, 'X'), + (0xEC0, 'V'), + (0xEC5, 'X'), + (0xEC6, 'V'), + (0xEC7, 'X'), + (0xEC8, 'V'), + (0xECE, 'X'), + (0xED0, 'V'), + (0xEDA, 'X'), + (0xEDC, 'M', u'ຫນ'), + (0xEDD, 'M', u'ຫມ'), + (0xEDE, 'V'), + (0xEE0, 'X'), + (0xF00, 'V'), + (0xF0C, 'M', u'་'), + (0xF0D, 'V'), + (0xF43, 'M', u'གྷ'), + (0xF44, 'V'), + (0xF48, 'X'), + (0xF49, 'V'), + (0xF4D, 'M', u'ཌྷ'), + (0xF4E, 'V'), + (0xF52, 'M', u'དྷ'), + (0xF53, 'V'), + (0xF57, 'M', u'བྷ'), + (0xF58, 'V'), + (0xF5C, 'M', u'ཛྷ'), + (0xF5D, 'V'), + (0xF69, 'M', u'ཀྵ'), + (0xF6A, 'V'), + (0xF6D, 'X'), + (0xF71, 'V'), + (0xF73, 'M', u'ཱི'), + (0xF74, 'V'), + (0xF75, 'M', u'ཱུ'), + (0xF76, 'M', u'ྲྀ'), + (0xF77, 'M', u'ྲཱྀ'), + (0xF78, 'M', u'ླྀ'), + (0xF79, 'M', u'ླཱྀ'), + (0xF7A, 'V'), + (0xF81, 'M', u'ཱྀ'), + (0xF82, 'V'), + (0xF93, 'M', u'ྒྷ'), + (0xF94, 'V'), + (0xF98, 'X'), + (0xF99, 'V'), + (0xF9D, 'M', u'ྜྷ'), + (0xF9E, 'V'), + (0xFA2, 'M', u'ྡྷ'), + (0xFA3, 'V'), + (0xFA7, 'M', u'ྦྷ'), + (0xFA8, 'V'), + (0xFAC, 'M', u'ྫྷ'), + (0xFAD, 'V'), + (0xFB9, 'M', u'ྐྵ'), + (0xFBA, 'V'), + (0xFBD, 'X'), + (0xFBE, 'V'), + (0xFCD, 'X'), + (0xFCE, 'V'), + (0xFDB, 'X'), + (0x1000, 'V'), + (0x10A0, 'X'), + (0x10C7, 'M', u'ⴧ'), + (0x10C8, 'X'), + (0x10CD, 'M', u'ⴭ'), + (0x10CE, 'X'), + (0x10D0, 'V'), + (0x10FC, 'M', u'ნ'), + (0x10FD, 'V'), + (0x115F, 'X'), + (0x1161, 'V'), + (0x1249, 'X'), + (0x124A, 'V'), + (0x124E, 'X'), + (0x1250, 'V'), + (0x1257, 'X'), + (0x1258, 'V'), + ] + +def _seg_14(): + return [ + (0x1259, 'X'), + (0x125A, 'V'), + (0x125E, 'X'), + (0x1260, 'V'), + (0x1289, 'X'), + (0x128A, 'V'), + (0x128E, 'X'), + (0x1290, 'V'), + (0x12B1, 'X'), + (0x12B2, 'V'), + (0x12B6, 'X'), + (0x12B8, 'V'), + (0x12BF, 'X'), + (0x12C0, 'V'), + (0x12C1, 'X'), + (0x12C2, 'V'), + (0x12C6, 'X'), + (0x12C8, 'V'), + (0x12D7, 'X'), + (0x12D8, 'V'), + (0x1311, 'X'), + (0x1312, 'V'), + (0x1316, 'X'), + (0x1318, 'V'), + (0x135B, 'X'), + (0x135D, 'V'), + (0x137D, 'X'), + (0x1380, 'V'), + (0x139A, 'X'), + (0x13A0, 'V'), + (0x13F5, 'X'), + (0x1400, 'V'), + (0x1680, 'X'), + (0x1681, 'V'), + (0x169D, 'X'), + (0x16A0, 'V'), + (0x16F1, 'X'), + (0x1700, 'V'), + (0x170D, 'X'), + (0x170E, 'V'), + (0x1715, 'X'), + (0x1720, 'V'), + (0x1737, 'X'), + (0x1740, 'V'), + (0x1754, 'X'), + (0x1760, 'V'), + (0x176D, 'X'), + (0x176E, 'V'), + (0x1771, 'X'), + (0x1772, 'V'), + (0x1774, 'X'), + (0x1780, 'V'), + (0x17B4, 'X'), + (0x17B6, 'V'), + (0x17DE, 'X'), + (0x17E0, 'V'), + (0x17EA, 'X'), + (0x17F0, 'V'), + (0x17FA, 'X'), + (0x1800, 'V'), + (0x1806, 'X'), + (0x1807, 'V'), + (0x180B, 'I'), + (0x180E, 'X'), + (0x1810, 'V'), + (0x181A, 'X'), + (0x1820, 'V'), + (0x1878, 'X'), + (0x1880, 'V'), + (0x18AB, 'X'), + (0x18B0, 'V'), + (0x18F6, 'X'), + (0x1900, 'V'), + (0x191D, 'X'), + (0x1920, 'V'), + (0x192C, 'X'), + (0x1930, 'V'), + (0x193C, 'X'), + (0x1940, 'V'), + (0x1941, 'X'), + (0x1944, 'V'), + (0x196E, 'X'), + (0x1970, 'V'), + (0x1975, 'X'), + (0x1980, 'V'), + (0x19AC, 'X'), + (0x19B0, 'V'), + (0x19CA, 'X'), + (0x19D0, 'V'), + (0x19DB, 'X'), + (0x19DE, 'V'), + (0x1A1C, 'X'), + (0x1A1E, 'V'), + (0x1A5F, 'X'), + (0x1A60, 'V'), + (0x1A7D, 'X'), + (0x1A7F, 'V'), + (0x1A8A, 'X'), + (0x1A90, 'V'), + (0x1A9A, 'X'), + ] + +def _seg_15(): + return [ + (0x1AA0, 'V'), + (0x1AAE, 'X'), + (0x1B00, 'V'), + (0x1B4C, 'X'), + (0x1B50, 'V'), + (0x1B7D, 'X'), + (0x1B80, 'V'), + (0x1BF4, 'X'), + (0x1BFC, 'V'), + (0x1C38, 'X'), + (0x1C3B, 'V'), + (0x1C4A, 'X'), + (0x1C4D, 'V'), + (0x1C80, 'X'), + (0x1CC0, 'V'), + (0x1CC8, 'X'), + (0x1CD0, 'V'), + (0x1CF7, 'X'), + (0x1D00, 'V'), + (0x1D2C, 'M', u'a'), + (0x1D2D, 'M', u'æ'), + (0x1D2E, 'M', u'b'), + (0x1D2F, 'V'), + (0x1D30, 'M', u'd'), + (0x1D31, 'M', u'e'), + (0x1D32, 'M', u'ǝ'), + (0x1D33, 'M', u'g'), + (0x1D34, 'M', u'h'), + (0x1D35, 'M', u'i'), + (0x1D36, 'M', u'j'), + (0x1D37, 'M', u'k'), + (0x1D38, 'M', u'l'), + (0x1D39, 'M', u'm'), + (0x1D3A, 'M', u'n'), + (0x1D3B, 'V'), + (0x1D3C, 'M', u'o'), + (0x1D3D, 'M', u'ȣ'), + (0x1D3E, 'M', u'p'), + (0x1D3F, 'M', u'r'), + (0x1D40, 'M', u't'), + (0x1D41, 'M', u'u'), + (0x1D42, 'M', u'w'), + (0x1D43, 'M', u'a'), + (0x1D44, 'M', u'ɐ'), + (0x1D45, 'M', u'ɑ'), + (0x1D46, 'M', u'ᴂ'), + (0x1D47, 'M', u'b'), + (0x1D48, 'M', u'd'), + (0x1D49, 'M', u'e'), + (0x1D4A, 'M', u'ə'), + (0x1D4B, 'M', u'ɛ'), + (0x1D4C, 'M', u'ɜ'), + (0x1D4D, 'M', u'g'), + (0x1D4E, 'V'), + (0x1D4F, 'M', u'k'), + (0x1D50, 'M', u'm'), + (0x1D51, 'M', u'ŋ'), + (0x1D52, 'M', u'o'), + (0x1D53, 'M', u'ɔ'), + (0x1D54, 'M', u'ᴖ'), + (0x1D55, 'M', u'ᴗ'), + (0x1D56, 'M', u'p'), + (0x1D57, 'M', u't'), + (0x1D58, 'M', u'u'), + (0x1D59, 'M', u'ᴝ'), + (0x1D5A, 'M', u'ɯ'), + (0x1D5B, 'M', u'v'), + (0x1D5C, 'M', u'ᴥ'), + (0x1D5D, 'M', u'β'), + (0x1D5E, 'M', u'γ'), + (0x1D5F, 'M', u'δ'), + (0x1D60, 'M', u'φ'), + (0x1D61, 'M', u'χ'), + (0x1D62, 'M', u'i'), + (0x1D63, 'M', u'r'), + (0x1D64, 'M', u'u'), + (0x1D65, 'M', u'v'), + (0x1D66, 'M', u'β'), + (0x1D67, 'M', u'γ'), + (0x1D68, 'M', u'ρ'), + (0x1D69, 'M', u'φ'), + (0x1D6A, 'M', u'χ'), + (0x1D6B, 'V'), + (0x1D78, 'M', u'н'), + (0x1D79, 'V'), + (0x1D9B, 'M', u'ɒ'), + (0x1D9C, 'M', u'c'), + (0x1D9D, 'M', u'ɕ'), + (0x1D9E, 'M', u'ð'), + (0x1D9F, 'M', u'ɜ'), + (0x1DA0, 'M', u'f'), + (0x1DA1, 'M', u'ɟ'), + (0x1DA2, 'M', u'ɡ'), + (0x1DA3, 'M', u'ɥ'), + (0x1DA4, 'M', u'ɨ'), + (0x1DA5, 'M', u'ɩ'), + (0x1DA6, 'M', u'ɪ'), + (0x1DA7, 'M', u'ᵻ'), + (0x1DA8, 'M', u'ʝ'), + (0x1DA9, 'M', u'ɭ'), + ] + +def _seg_16(): + return [ + (0x1DAA, 'M', u'ᶅ'), + (0x1DAB, 'M', u'ʟ'), + (0x1DAC, 'M', u'ɱ'), + (0x1DAD, 'M', u'ɰ'), + (0x1DAE, 'M', u'ɲ'), + (0x1DAF, 'M', u'ɳ'), + (0x1DB0, 'M', u'ɴ'), + (0x1DB1, 'M', u'ɵ'), + (0x1DB2, 'M', u'ɸ'), + (0x1DB3, 'M', u'ʂ'), + (0x1DB4, 'M', u'ʃ'), + (0x1DB5, 'M', u'ƫ'), + (0x1DB6, 'M', u'ʉ'), + (0x1DB7, 'M', u'ʊ'), + (0x1DB8, 'M', u'ᴜ'), + (0x1DB9, 'M', u'ʋ'), + (0x1DBA, 'M', u'ʌ'), + (0x1DBB, 'M', u'z'), + (0x1DBC, 'M', u'ʐ'), + (0x1DBD, 'M', u'ʑ'), + (0x1DBE, 'M', u'ʒ'), + (0x1DBF, 'M', u'θ'), + (0x1DC0, 'V'), + (0x1DE7, 'X'), + (0x1DFC, 'V'), + (0x1E00, 'M', u'ḁ'), + (0x1E01, 'V'), + (0x1E02, 'M', u'ḃ'), + (0x1E03, 'V'), + (0x1E04, 'M', u'ḅ'), + (0x1E05, 'V'), + (0x1E06, 'M', u'ḇ'), + (0x1E07, 'V'), + (0x1E08, 'M', u'ḉ'), + (0x1E09, 'V'), + (0x1E0A, 'M', u'ḋ'), + (0x1E0B, 'V'), + (0x1E0C, 'M', u'ḍ'), + (0x1E0D, 'V'), + (0x1E0E, 'M', u'ḏ'), + (0x1E0F, 'V'), + (0x1E10, 'M', u'ḑ'), + (0x1E11, 'V'), + (0x1E12, 'M', u'ḓ'), + (0x1E13, 'V'), + (0x1E14, 'M', u'ḕ'), + (0x1E15, 'V'), + (0x1E16, 'M', u'ḗ'), + (0x1E17, 'V'), + (0x1E18, 'M', u'ḙ'), + (0x1E19, 'V'), + (0x1E1A, 'M', u'ḛ'), + (0x1E1B, 'V'), + (0x1E1C, 'M', u'ḝ'), + (0x1E1D, 'V'), + (0x1E1E, 'M', u'ḟ'), + (0x1E1F, 'V'), + (0x1E20, 'M', u'ḡ'), + (0x1E21, 'V'), + (0x1E22, 'M', u'ḣ'), + (0x1E23, 'V'), + (0x1E24, 'M', u'ḥ'), + (0x1E25, 'V'), + (0x1E26, 'M', u'ḧ'), + (0x1E27, 'V'), + (0x1E28, 'M', u'ḩ'), + (0x1E29, 'V'), + (0x1E2A, 'M', u'ḫ'), + (0x1E2B, 'V'), + (0x1E2C, 'M', u'ḭ'), + (0x1E2D, 'V'), + (0x1E2E, 'M', u'ḯ'), + (0x1E2F, 'V'), + (0x1E30, 'M', u'ḱ'), + (0x1E31, 'V'), + (0x1E32, 'M', u'ḳ'), + (0x1E33, 'V'), + (0x1E34, 'M', u'ḵ'), + (0x1E35, 'V'), + (0x1E36, 'M', u'ḷ'), + (0x1E37, 'V'), + (0x1E38, 'M', u'ḹ'), + (0x1E39, 'V'), + (0x1E3A, 'M', u'ḻ'), + (0x1E3B, 'V'), + (0x1E3C, 'M', u'ḽ'), + (0x1E3D, 'V'), + (0x1E3E, 'M', u'ḿ'), + (0x1E3F, 'V'), + (0x1E40, 'M', u'ṁ'), + (0x1E41, 'V'), + (0x1E42, 'M', u'ṃ'), + (0x1E43, 'V'), + (0x1E44, 'M', u'ṅ'), + (0x1E45, 'V'), + (0x1E46, 'M', u'ṇ'), + (0x1E47, 'V'), + (0x1E48, 'M', u'ṉ'), + (0x1E49, 'V'), + (0x1E4A, 'M', u'ṋ'), + ] + +def _seg_17(): + return [ + (0x1E4B, 'V'), + (0x1E4C, 'M', u'ṍ'), + (0x1E4D, 'V'), + (0x1E4E, 'M', u'ṏ'), + (0x1E4F, 'V'), + (0x1E50, 'M', u'ṑ'), + (0x1E51, 'V'), + (0x1E52, 'M', u'ṓ'), + (0x1E53, 'V'), + (0x1E54, 'M', u'ṕ'), + (0x1E55, 'V'), + (0x1E56, 'M', u'ṗ'), + (0x1E57, 'V'), + (0x1E58, 'M', u'ṙ'), + (0x1E59, 'V'), + (0x1E5A, 'M', u'ṛ'), + (0x1E5B, 'V'), + (0x1E5C, 'M', u'ṝ'), + (0x1E5D, 'V'), + (0x1E5E, 'M', u'ṟ'), + (0x1E5F, 'V'), + (0x1E60, 'M', u'ṡ'), + (0x1E61, 'V'), + (0x1E62, 'M', u'ṣ'), + (0x1E63, 'V'), + (0x1E64, 'M', u'ṥ'), + (0x1E65, 'V'), + (0x1E66, 'M', u'ṧ'), + (0x1E67, 'V'), + (0x1E68, 'M', u'ṩ'), + (0x1E69, 'V'), + (0x1E6A, 'M', u'ṫ'), + (0x1E6B, 'V'), + (0x1E6C, 'M', u'ṭ'), + (0x1E6D, 'V'), + (0x1E6E, 'M', u'ṯ'), + (0x1E6F, 'V'), + (0x1E70, 'M', u'ṱ'), + (0x1E71, 'V'), + (0x1E72, 'M', u'ṳ'), + (0x1E73, 'V'), + (0x1E74, 'M', u'ṵ'), + (0x1E75, 'V'), + (0x1E76, 'M', u'ṷ'), + (0x1E77, 'V'), + (0x1E78, 'M', u'ṹ'), + (0x1E79, 'V'), + (0x1E7A, 'M', u'ṻ'), + (0x1E7B, 'V'), + (0x1E7C, 'M', u'ṽ'), + (0x1E7D, 'V'), + (0x1E7E, 'M', u'ṿ'), + (0x1E7F, 'V'), + (0x1E80, 'M', u'ẁ'), + (0x1E81, 'V'), + (0x1E82, 'M', u'ẃ'), + (0x1E83, 'V'), + (0x1E84, 'M', u'ẅ'), + (0x1E85, 'V'), + (0x1E86, 'M', u'ẇ'), + (0x1E87, 'V'), + (0x1E88, 'M', u'ẉ'), + (0x1E89, 'V'), + (0x1E8A, 'M', u'ẋ'), + (0x1E8B, 'V'), + (0x1E8C, 'M', u'ẍ'), + (0x1E8D, 'V'), + (0x1E8E, 'M', u'ẏ'), + (0x1E8F, 'V'), + (0x1E90, 'M', u'ẑ'), + (0x1E91, 'V'), + (0x1E92, 'M', u'ẓ'), + (0x1E93, 'V'), + (0x1E94, 'M', u'ẕ'), + (0x1E95, 'V'), + (0x1E9A, 'M', u'aʾ'), + (0x1E9B, 'M', u'ṡ'), + (0x1E9C, 'V'), + (0x1E9E, 'M', u'ss'), + (0x1E9F, 'V'), + (0x1EA0, 'M', u'ạ'), + (0x1EA1, 'V'), + (0x1EA2, 'M', u'ả'), + (0x1EA3, 'V'), + (0x1EA4, 'M', u'ấ'), + (0x1EA5, 'V'), + (0x1EA6, 'M', u'ầ'), + (0x1EA7, 'V'), + (0x1EA8, 'M', u'ẩ'), + (0x1EA9, 'V'), + (0x1EAA, 'M', u'ẫ'), + (0x1EAB, 'V'), + (0x1EAC, 'M', u'ậ'), + (0x1EAD, 'V'), + (0x1EAE, 'M', u'ắ'), + (0x1EAF, 'V'), + (0x1EB0, 'M', u'ằ'), + (0x1EB1, 'V'), + (0x1EB2, 'M', u'ẳ'), + (0x1EB3, 'V'), + ] + +def _seg_18(): + return [ + (0x1EB4, 'M', u'ẵ'), + (0x1EB5, 'V'), + (0x1EB6, 'M', u'ặ'), + (0x1EB7, 'V'), + (0x1EB8, 'M', u'ẹ'), + (0x1EB9, 'V'), + (0x1EBA, 'M', u'ẻ'), + (0x1EBB, 'V'), + (0x1EBC, 'M', u'ẽ'), + (0x1EBD, 'V'), + (0x1EBE, 'M', u'ế'), + (0x1EBF, 'V'), + (0x1EC0, 'M', u'ề'), + (0x1EC1, 'V'), + (0x1EC2, 'M', u'ể'), + (0x1EC3, 'V'), + (0x1EC4, 'M', u'ễ'), + (0x1EC5, 'V'), + (0x1EC6, 'M', u'ệ'), + (0x1EC7, 'V'), + (0x1EC8, 'M', u'ỉ'), + (0x1EC9, 'V'), + (0x1ECA, 'M', u'ị'), + (0x1ECB, 'V'), + (0x1ECC, 'M', u'ọ'), + (0x1ECD, 'V'), + (0x1ECE, 'M', u'ỏ'), + (0x1ECF, 'V'), + (0x1ED0, 'M', u'ố'), + (0x1ED1, 'V'), + (0x1ED2, 'M', u'ồ'), + (0x1ED3, 'V'), + (0x1ED4, 'M', u'ổ'), + (0x1ED5, 'V'), + (0x1ED6, 'M', u'ỗ'), + (0x1ED7, 'V'), + (0x1ED8, 'M', u'ộ'), + (0x1ED9, 'V'), + (0x1EDA, 'M', u'ớ'), + (0x1EDB, 'V'), + (0x1EDC, 'M', u'ờ'), + (0x1EDD, 'V'), + (0x1EDE, 'M', u'ở'), + (0x1EDF, 'V'), + (0x1EE0, 'M', u'ỡ'), + (0x1EE1, 'V'), + (0x1EE2, 'M', u'ợ'), + (0x1EE3, 'V'), + (0x1EE4, 'M', u'ụ'), + (0x1EE5, 'V'), + (0x1EE6, 'M', u'ủ'), + (0x1EE7, 'V'), + (0x1EE8, 'M', u'ứ'), + (0x1EE9, 'V'), + (0x1EEA, 'M', u'ừ'), + (0x1EEB, 'V'), + (0x1EEC, 'M', u'ử'), + (0x1EED, 'V'), + (0x1EEE, 'M', u'ữ'), + (0x1EEF, 'V'), + (0x1EF0, 'M', u'ự'), + (0x1EF1, 'V'), + (0x1EF2, 'M', u'ỳ'), + (0x1EF3, 'V'), + (0x1EF4, 'M', u'ỵ'), + (0x1EF5, 'V'), + (0x1EF6, 'M', u'ỷ'), + (0x1EF7, 'V'), + (0x1EF8, 'M', u'ỹ'), + (0x1EF9, 'V'), + (0x1EFA, 'M', u'ỻ'), + (0x1EFB, 'V'), + (0x1EFC, 'M', u'ỽ'), + (0x1EFD, 'V'), + (0x1EFE, 'M', u'ỿ'), + (0x1EFF, 'V'), + (0x1F08, 'M', u'ἀ'), + (0x1F09, 'M', u'ἁ'), + (0x1F0A, 'M', u'ἂ'), + (0x1F0B, 'M', u'ἃ'), + (0x1F0C, 'M', u'ἄ'), + (0x1F0D, 'M', u'ἅ'), + (0x1F0E, 'M', u'ἆ'), + (0x1F0F, 'M', u'ἇ'), + (0x1F10, 'V'), + (0x1F16, 'X'), + (0x1F18, 'M', u'ἐ'), + (0x1F19, 'M', u'ἑ'), + (0x1F1A, 'M', u'ἒ'), + (0x1F1B, 'M', u'ἓ'), + (0x1F1C, 'M', u'ἔ'), + (0x1F1D, 'M', u'ἕ'), + (0x1F1E, 'X'), + (0x1F20, 'V'), + (0x1F28, 'M', u'ἠ'), + (0x1F29, 'M', u'ἡ'), + (0x1F2A, 'M', u'ἢ'), + (0x1F2B, 'M', u'ἣ'), + (0x1F2C, 'M', u'ἤ'), + (0x1F2D, 'M', u'ἥ'), + ] + +def _seg_19(): + return [ + (0x1F2E, 'M', u'ἦ'), + (0x1F2F, 'M', u'ἧ'), + (0x1F30, 'V'), + (0x1F38, 'M', u'ἰ'), + (0x1F39, 'M', u'ἱ'), + (0x1F3A, 'M', u'ἲ'), + (0x1F3B, 'M', u'ἳ'), + (0x1F3C, 'M', u'ἴ'), + (0x1F3D, 'M', u'ἵ'), + (0x1F3E, 'M', u'ἶ'), + (0x1F3F, 'M', u'ἷ'), + (0x1F40, 'V'), + (0x1F46, 'X'), + (0x1F48, 'M', u'ὀ'), + (0x1F49, 'M', u'ὁ'), + (0x1F4A, 'M', u'ὂ'), + (0x1F4B, 'M', u'ὃ'), + (0x1F4C, 'M', u'ὄ'), + (0x1F4D, 'M', u'ὅ'), + (0x1F4E, 'X'), + (0x1F50, 'V'), + (0x1F58, 'X'), + (0x1F59, 'M', u'ὑ'), + (0x1F5A, 'X'), + (0x1F5B, 'M', u'ὓ'), + (0x1F5C, 'X'), + (0x1F5D, 'M', u'ὕ'), + (0x1F5E, 'X'), + (0x1F5F, 'M', u'ὗ'), + (0x1F60, 'V'), + (0x1F68, 'M', u'ὠ'), + (0x1F69, 'M', u'ὡ'), + (0x1F6A, 'M', u'ὢ'), + (0x1F6B, 'M', u'ὣ'), + (0x1F6C, 'M', u'ὤ'), + (0x1F6D, 'M', u'ὥ'), + (0x1F6E, 'M', u'ὦ'), + (0x1F6F, 'M', u'ὧ'), + (0x1F70, 'V'), + (0x1F71, 'M', u'ά'), + (0x1F72, 'V'), + (0x1F73, 'M', u'έ'), + (0x1F74, 'V'), + (0x1F75, 'M', u'ή'), + (0x1F76, 'V'), + (0x1F77, 'M', u'ί'), + (0x1F78, 'V'), + (0x1F79, 'M', u'ό'), + (0x1F7A, 'V'), + (0x1F7B, 'M', u'ύ'), + (0x1F7C, 'V'), + (0x1F7D, 'M', u'ώ'), + (0x1F7E, 'X'), + (0x1F80, 'M', u'ἀι'), + (0x1F81, 'M', u'ἁι'), + (0x1F82, 'M', u'ἂι'), + (0x1F83, 'M', u'ἃι'), + (0x1F84, 'M', u'ἄι'), + (0x1F85, 'M', u'ἅι'), + (0x1F86, 'M', u'ἆι'), + (0x1F87, 'M', u'ἇι'), + (0x1F88, 'M', u'ἀι'), + (0x1F89, 'M', u'ἁι'), + (0x1F8A, 'M', u'ἂι'), + (0x1F8B, 'M', u'ἃι'), + (0x1F8C, 'M', u'ἄι'), + (0x1F8D, 'M', u'ἅι'), + (0x1F8E, 'M', u'ἆι'), + (0x1F8F, 'M', u'ἇι'), + (0x1F90, 'M', u'ἠι'), + (0x1F91, 'M', u'ἡι'), + (0x1F92, 'M', u'ἢι'), + (0x1F93, 'M', u'ἣι'), + (0x1F94, 'M', u'ἤι'), + (0x1F95, 'M', u'ἥι'), + (0x1F96, 'M', u'ἦι'), + (0x1F97, 'M', u'ἧι'), + (0x1F98, 'M', u'ἠι'), + (0x1F99, 'M', u'ἡι'), + (0x1F9A, 'M', u'ἢι'), + (0x1F9B, 'M', u'ἣι'), + (0x1F9C, 'M', u'ἤι'), + (0x1F9D, 'M', u'ἥι'), + (0x1F9E, 'M', u'ἦι'), + (0x1F9F, 'M', u'ἧι'), + (0x1FA0, 'M', u'ὠι'), + (0x1FA1, 'M', u'ὡι'), + (0x1FA2, 'M', u'ὢι'), + (0x1FA3, 'M', u'ὣι'), + (0x1FA4, 'M', u'ὤι'), + (0x1FA5, 'M', u'ὥι'), + (0x1FA6, 'M', u'ὦι'), + (0x1FA7, 'M', u'ὧι'), + (0x1FA8, 'M', u'ὠι'), + (0x1FA9, 'M', u'ὡι'), + (0x1FAA, 'M', u'ὢι'), + (0x1FAB, 'M', u'ὣι'), + (0x1FAC, 'M', u'ὤι'), + (0x1FAD, 'M', u'ὥι'), + (0x1FAE, 'M', u'ὦι'), + ] + +def _seg_20(): + return [ + (0x1FAF, 'M', u'ὧι'), + (0x1FB0, 'V'), + (0x1FB2, 'M', u'ὰι'), + (0x1FB3, 'M', u'αι'), + (0x1FB4, 'M', u'άι'), + (0x1FB5, 'X'), + (0x1FB6, 'V'), + (0x1FB7, 'M', u'ᾶι'), + (0x1FB8, 'M', u'ᾰ'), + (0x1FB9, 'M', u'ᾱ'), + (0x1FBA, 'M', u'ὰ'), + (0x1FBB, 'M', u'ά'), + (0x1FBC, 'M', u'αι'), + (0x1FBD, '3', u' ̓'), + (0x1FBE, 'M', u'ι'), + (0x1FBF, '3', u' ̓'), + (0x1FC0, '3', u' ͂'), + (0x1FC1, '3', u' ̈͂'), + (0x1FC2, 'M', u'ὴι'), + (0x1FC3, 'M', u'ηι'), + (0x1FC4, 'M', u'ήι'), + (0x1FC5, 'X'), + (0x1FC6, 'V'), + (0x1FC7, 'M', u'ῆι'), + (0x1FC8, 'M', u'ὲ'), + (0x1FC9, 'M', u'έ'), + (0x1FCA, 'M', u'ὴ'), + (0x1FCB, 'M', u'ή'), + (0x1FCC, 'M', u'ηι'), + (0x1FCD, '3', u' ̓̀'), + (0x1FCE, '3', u' ̓́'), + (0x1FCF, '3', u' ̓͂'), + (0x1FD0, 'V'), + (0x1FD3, 'M', u'ΐ'), + (0x1FD4, 'X'), + (0x1FD6, 'V'), + (0x1FD8, 'M', u'ῐ'), + (0x1FD9, 'M', u'ῑ'), + (0x1FDA, 'M', u'ὶ'), + (0x1FDB, 'M', u'ί'), + (0x1FDC, 'X'), + (0x1FDD, '3', u' ̔̀'), + (0x1FDE, '3', u' ̔́'), + (0x1FDF, '3', u' ̔͂'), + (0x1FE0, 'V'), + (0x1FE3, 'M', u'ΰ'), + (0x1FE4, 'V'), + (0x1FE8, 'M', u'ῠ'), + (0x1FE9, 'M', u'ῡ'), + (0x1FEA, 'M', u'ὺ'), + (0x1FEB, 'M', u'ύ'), + (0x1FEC, 'M', u'ῥ'), + (0x1FED, '3', u' ̈̀'), + (0x1FEE, '3', u' ̈́'), + (0x1FEF, '3', u'`'), + (0x1FF0, 'X'), + (0x1FF2, 'M', u'ὼι'), + (0x1FF3, 'M', u'ωι'), + (0x1FF4, 'M', u'ώι'), + (0x1FF5, 'X'), + (0x1FF6, 'V'), + (0x1FF7, 'M', u'ῶι'), + (0x1FF8, 'M', u'ὸ'), + (0x1FF9, 'M', u'ό'), + (0x1FFA, 'M', u'ὼ'), + (0x1FFB, 'M', u'ώ'), + (0x1FFC, 'M', u'ωι'), + (0x1FFD, '3', u' ́'), + (0x1FFE, '3', u' ̔'), + (0x1FFF, 'X'), + (0x2000, '3', u' '), + (0x200B, 'I'), + (0x200C, 'D', u''), + (0x200E, 'X'), + (0x2010, 'V'), + (0x2011, 'M', u'‐'), + (0x2012, 'V'), + (0x2017, '3', u' ̳'), + (0x2018, 'V'), + (0x2024, 'X'), + (0x2027, 'V'), + (0x2028, 'X'), + (0x202F, '3', u' '), + (0x2030, 'V'), + (0x2033, 'M', u'′′'), + (0x2034, 'M', u'′′′'), + (0x2035, 'V'), + (0x2036, 'M', u'‵‵'), + (0x2037, 'M', u'‵‵‵'), + (0x2038, 'V'), + (0x203C, '3', u'!!'), + (0x203D, 'V'), + (0x203E, '3', u' ̅'), + (0x203F, 'V'), + (0x2047, '3', u'??'), + (0x2048, '3', u'?!'), + (0x2049, '3', u'!?'), + (0x204A, 'V'), + (0x2057, 'M', u'′′′′'), + (0x2058, 'V'), + ] + +def _seg_21(): + return [ + (0x205F, '3', u' '), + (0x2060, 'I'), + (0x2061, 'X'), + (0x2064, 'I'), + (0x2065, 'X'), + (0x2070, 'M', u'0'), + (0x2071, 'M', u'i'), + (0x2072, 'X'), + (0x2074, 'M', u'4'), + (0x2075, 'M', u'5'), + (0x2076, 'M', u'6'), + (0x2077, 'M', u'7'), + (0x2078, 'M', u'8'), + (0x2079, 'M', u'9'), + (0x207A, '3', u'+'), + (0x207B, 'M', u'−'), + (0x207C, '3', u'='), + (0x207D, '3', u'('), + (0x207E, '3', u')'), + (0x207F, 'M', u'n'), + (0x2080, 'M', u'0'), + (0x2081, 'M', u'1'), + (0x2082, 'M', u'2'), + (0x2083, 'M', u'3'), + (0x2084, 'M', u'4'), + (0x2085, 'M', u'5'), + (0x2086, 'M', u'6'), + (0x2087, 'M', u'7'), + (0x2088, 'M', u'8'), + (0x2089, 'M', u'9'), + (0x208A, '3', u'+'), + (0x208B, 'M', u'−'), + (0x208C, '3', u'='), + (0x208D, '3', u'('), + (0x208E, '3', u')'), + (0x208F, 'X'), + (0x2090, 'M', u'a'), + (0x2091, 'M', u'e'), + (0x2092, 'M', u'o'), + (0x2093, 'M', u'x'), + (0x2094, 'M', u'ə'), + (0x2095, 'M', u'h'), + (0x2096, 'M', u'k'), + (0x2097, 'M', u'l'), + (0x2098, 'M', u'm'), + (0x2099, 'M', u'n'), + (0x209A, 'M', u'p'), + (0x209B, 'M', u's'), + (0x209C, 'M', u't'), + (0x209D, 'X'), + (0x20A0, 'V'), + (0x20A8, 'M', u'rs'), + (0x20A9, 'V'), + (0x20BB, 'X'), + (0x20D0, 'V'), + (0x20F1, 'X'), + (0x2100, '3', u'a/c'), + (0x2101, '3', u'a/s'), + (0x2102, 'M', u'c'), + (0x2103, 'M', u'°c'), + (0x2104, 'V'), + (0x2105, '3', u'c/o'), + (0x2106, '3', u'c/u'), + (0x2107, 'M', u'ɛ'), + (0x2108, 'V'), + (0x2109, 'M', u'°f'), + (0x210A, 'M', u'g'), + (0x210B, 'M', u'h'), + (0x210F, 'M', u'ħ'), + (0x2110, 'M', u'i'), + (0x2112, 'M', u'l'), + (0x2114, 'V'), + (0x2115, 'M', u'n'), + (0x2116, 'M', u'no'), + (0x2117, 'V'), + (0x2119, 'M', u'p'), + (0x211A, 'M', u'q'), + (0x211B, 'M', u'r'), + (0x211E, 'V'), + (0x2120, 'M', u'sm'), + (0x2121, 'M', u'tel'), + (0x2122, 'M', u'tm'), + (0x2123, 'V'), + (0x2124, 'M', u'z'), + (0x2125, 'V'), + (0x2126, 'M', u'ω'), + (0x2127, 'V'), + (0x2128, 'M', u'z'), + (0x2129, 'V'), + (0x212A, 'M', u'k'), + (0x212B, 'M', u'å'), + (0x212C, 'M', u'b'), + (0x212D, 'M', u'c'), + (0x212E, 'V'), + (0x212F, 'M', u'e'), + (0x2131, 'M', u'f'), + (0x2132, 'X'), + (0x2133, 'M', u'm'), + (0x2134, 'M', u'o'), + (0x2135, 'M', u'א'), + ] + +def _seg_22(): + return [ + (0x2136, 'M', u'ב'), + (0x2137, 'M', u'ג'), + (0x2138, 'M', u'ד'), + (0x2139, 'M', u'i'), + (0x213A, 'V'), + (0x213B, 'M', u'fax'), + (0x213C, 'M', u'π'), + (0x213D, 'M', u'γ'), + (0x213F, 'M', u'π'), + (0x2140, 'M', u'∑'), + (0x2141, 'V'), + (0x2145, 'M', u'd'), + (0x2147, 'M', u'e'), + (0x2148, 'M', u'i'), + (0x2149, 'M', u'j'), + (0x214A, 'V'), + (0x2150, 'M', u'1⁄7'), + (0x2151, 'M', u'1⁄9'), + (0x2152, 'M', u'1⁄10'), + (0x2153, 'M', u'1⁄3'), + (0x2154, 'M', u'2⁄3'), + (0x2155, 'M', u'1⁄5'), + (0x2156, 'M', u'2⁄5'), + (0x2157, 'M', u'3⁄5'), + (0x2158, 'M', u'4⁄5'), + (0x2159, 'M', u'1⁄6'), + (0x215A, 'M', u'5⁄6'), + (0x215B, 'M', u'1⁄8'), + (0x215C, 'M', u'3⁄8'), + (0x215D, 'M', u'5⁄8'), + (0x215E, 'M', u'7⁄8'), + (0x215F, 'M', u'1⁄'), + (0x2160, 'M', u'i'), + (0x2161, 'M', u'ii'), + (0x2162, 'M', u'iii'), + (0x2163, 'M', u'iv'), + (0x2164, 'M', u'v'), + (0x2165, 'M', u'vi'), + (0x2166, 'M', u'vii'), + (0x2167, 'M', u'viii'), + (0x2168, 'M', u'ix'), + (0x2169, 'M', u'x'), + (0x216A, 'M', u'xi'), + (0x216B, 'M', u'xii'), + (0x216C, 'M', u'l'), + (0x216D, 'M', u'c'), + (0x216E, 'M', u'd'), + (0x216F, 'M', u'm'), + (0x2170, 'M', u'i'), + (0x2171, 'M', u'ii'), + (0x2172, 'M', u'iii'), + (0x2173, 'M', u'iv'), + (0x2174, 'M', u'v'), + (0x2175, 'M', u'vi'), + (0x2176, 'M', u'vii'), + (0x2177, 'M', u'viii'), + (0x2178, 'M', u'ix'), + (0x2179, 'M', u'x'), + (0x217A, 'M', u'xi'), + (0x217B, 'M', u'xii'), + (0x217C, 'M', u'l'), + (0x217D, 'M', u'c'), + (0x217E, 'M', u'd'), + (0x217F, 'M', u'm'), + (0x2180, 'V'), + (0x2183, 'X'), + (0x2184, 'V'), + (0x2189, 'M', u'0⁄3'), + (0x218A, 'X'), + (0x2190, 'V'), + (0x222C, 'M', u'∫∫'), + (0x222D, 'M', u'∫∫∫'), + (0x222E, 'V'), + (0x222F, 'M', u'∮∮'), + (0x2230, 'M', u'∮∮∮'), + (0x2231, 'V'), + (0x2260, '3'), + (0x2261, 'V'), + (0x226E, '3'), + (0x2270, 'V'), + (0x2329, 'M', u'〈'), + (0x232A, 'M', u'〉'), + (0x232B, 'V'), + (0x23F4, 'X'), + (0x2400, 'V'), + (0x2427, 'X'), + (0x2440, 'V'), + (0x244B, 'X'), + (0x2460, 'M', u'1'), + (0x2461, 'M', u'2'), + (0x2462, 'M', u'3'), + (0x2463, 'M', u'4'), + (0x2464, 'M', u'5'), + (0x2465, 'M', u'6'), + (0x2466, 'M', u'7'), + (0x2467, 'M', u'8'), + (0x2468, 'M', u'9'), + (0x2469, 'M', u'10'), + (0x246A, 'M', u'11'), + (0x246B, 'M', u'12'), + ] + +def _seg_23(): + return [ + (0x246C, 'M', u'13'), + (0x246D, 'M', u'14'), + (0x246E, 'M', u'15'), + (0x246F, 'M', u'16'), + (0x2470, 'M', u'17'), + (0x2471, 'M', u'18'), + (0x2472, 'M', u'19'), + (0x2473, 'M', u'20'), + (0x2474, '3', u'(1)'), + (0x2475, '3', u'(2)'), + (0x2476, '3', u'(3)'), + (0x2477, '3', u'(4)'), + (0x2478, '3', u'(5)'), + (0x2479, '3', u'(6)'), + (0x247A, '3', u'(7)'), + (0x247B, '3', u'(8)'), + (0x247C, '3', u'(9)'), + (0x247D, '3', u'(10)'), + (0x247E, '3', u'(11)'), + (0x247F, '3', u'(12)'), + (0x2480, '3', u'(13)'), + (0x2481, '3', u'(14)'), + (0x2482, '3', u'(15)'), + (0x2483, '3', u'(16)'), + (0x2484, '3', u'(17)'), + (0x2485, '3', u'(18)'), + (0x2486, '3', u'(19)'), + (0x2487, '3', u'(20)'), + (0x2488, 'X'), + (0x249C, '3', u'(a)'), + (0x249D, '3', u'(b)'), + (0x249E, '3', u'(c)'), + (0x249F, '3', u'(d)'), + (0x24A0, '3', u'(e)'), + (0x24A1, '3', u'(f)'), + (0x24A2, '3', u'(g)'), + (0x24A3, '3', u'(h)'), + (0x24A4, '3', u'(i)'), + (0x24A5, '3', u'(j)'), + (0x24A6, '3', u'(k)'), + (0x24A7, '3', u'(l)'), + (0x24A8, '3', u'(m)'), + (0x24A9, '3', u'(n)'), + (0x24AA, '3', u'(o)'), + (0x24AB, '3', u'(p)'), + (0x24AC, '3', u'(q)'), + (0x24AD, '3', u'(r)'), + (0x24AE, '3', u'(s)'), + (0x24AF, '3', u'(t)'), + (0x24B0, '3', u'(u)'), + (0x24B1, '3', u'(v)'), + (0x24B2, '3', u'(w)'), + (0x24B3, '3', u'(x)'), + (0x24B4, '3', u'(y)'), + (0x24B5, '3', u'(z)'), + (0x24B6, 'M', u'a'), + (0x24B7, 'M', u'b'), + (0x24B8, 'M', u'c'), + (0x24B9, 'M', u'd'), + (0x24BA, 'M', u'e'), + (0x24BB, 'M', u'f'), + (0x24BC, 'M', u'g'), + (0x24BD, 'M', u'h'), + (0x24BE, 'M', u'i'), + (0x24BF, 'M', u'j'), + (0x24C0, 'M', u'k'), + (0x24C1, 'M', u'l'), + (0x24C2, 'M', u'm'), + (0x24C3, 'M', u'n'), + (0x24C4, 'M', u'o'), + (0x24C5, 'M', u'p'), + (0x24C6, 'M', u'q'), + (0x24C7, 'M', u'r'), + (0x24C8, 'M', u's'), + (0x24C9, 'M', u't'), + (0x24CA, 'M', u'u'), + (0x24CB, 'M', u'v'), + (0x24CC, 'M', u'w'), + (0x24CD, 'M', u'x'), + (0x24CE, 'M', u'y'), + (0x24CF, 'M', u'z'), + (0x24D0, 'M', u'a'), + (0x24D1, 'M', u'b'), + (0x24D2, 'M', u'c'), + (0x24D3, 'M', u'd'), + (0x24D4, 'M', u'e'), + (0x24D5, 'M', u'f'), + (0x24D6, 'M', u'g'), + (0x24D7, 'M', u'h'), + (0x24D8, 'M', u'i'), + (0x24D9, 'M', u'j'), + (0x24DA, 'M', u'k'), + (0x24DB, 'M', u'l'), + (0x24DC, 'M', u'm'), + (0x24DD, 'M', u'n'), + (0x24DE, 'M', u'o'), + (0x24DF, 'M', u'p'), + (0x24E0, 'M', u'q'), + (0x24E1, 'M', u'r'), + (0x24E2, 'M', u's'), + ] + +def _seg_24(): + return [ + (0x24E3, 'M', u't'), + (0x24E4, 'M', u'u'), + (0x24E5, 'M', u'v'), + (0x24E6, 'M', u'w'), + (0x24E7, 'M', u'x'), + (0x24E8, 'M', u'y'), + (0x24E9, 'M', u'z'), + (0x24EA, 'M', u'0'), + (0x24EB, 'V'), + (0x2700, 'X'), + (0x2701, 'V'), + (0x2A0C, 'M', u'∫∫∫∫'), + (0x2A0D, 'V'), + (0x2A74, '3', u'::='), + (0x2A75, '3', u'=='), + (0x2A76, '3', u'==='), + (0x2A77, 'V'), + (0x2ADC, 'M', u'⫝̸'), + (0x2ADD, 'V'), + (0x2B4D, 'X'), + (0x2B50, 'V'), + (0x2B5A, 'X'), + (0x2C00, 'M', u'ⰰ'), + (0x2C01, 'M', u'ⰱ'), + (0x2C02, 'M', u'ⰲ'), + (0x2C03, 'M', u'ⰳ'), + (0x2C04, 'M', u'ⰴ'), + (0x2C05, 'M', u'ⰵ'), + (0x2C06, 'M', u'ⰶ'), + (0x2C07, 'M', u'ⰷ'), + (0x2C08, 'M', u'ⰸ'), + (0x2C09, 'M', u'ⰹ'), + (0x2C0A, 'M', u'ⰺ'), + (0x2C0B, 'M', u'ⰻ'), + (0x2C0C, 'M', u'ⰼ'), + (0x2C0D, 'M', u'ⰽ'), + (0x2C0E, 'M', u'ⰾ'), + (0x2C0F, 'M', u'ⰿ'), + (0x2C10, 'M', u'ⱀ'), + (0x2C11, 'M', u'ⱁ'), + (0x2C12, 'M', u'ⱂ'), + (0x2C13, 'M', u'ⱃ'), + (0x2C14, 'M', u'ⱄ'), + (0x2C15, 'M', u'ⱅ'), + (0x2C16, 'M', u'ⱆ'), + (0x2C17, 'M', u'ⱇ'), + (0x2C18, 'M', u'ⱈ'), + (0x2C19, 'M', u'ⱉ'), + (0x2C1A, 'M', u'ⱊ'), + (0x2C1B, 'M', u'ⱋ'), + (0x2C1C, 'M', u'ⱌ'), + (0x2C1D, 'M', u'ⱍ'), + (0x2C1E, 'M', u'ⱎ'), + (0x2C1F, 'M', u'ⱏ'), + (0x2C20, 'M', u'ⱐ'), + (0x2C21, 'M', u'ⱑ'), + (0x2C22, 'M', u'ⱒ'), + (0x2C23, 'M', u'ⱓ'), + (0x2C24, 'M', u'ⱔ'), + (0x2C25, 'M', u'ⱕ'), + (0x2C26, 'M', u'ⱖ'), + (0x2C27, 'M', u'ⱗ'), + (0x2C28, 'M', u'ⱘ'), + (0x2C29, 'M', u'ⱙ'), + (0x2C2A, 'M', u'ⱚ'), + (0x2C2B, 'M', u'ⱛ'), + (0x2C2C, 'M', u'ⱜ'), + (0x2C2D, 'M', u'ⱝ'), + (0x2C2E, 'M', u'ⱞ'), + (0x2C2F, 'X'), + (0x2C30, 'V'), + (0x2C5F, 'X'), + (0x2C60, 'M', u'ⱡ'), + (0x2C61, 'V'), + (0x2C62, 'M', u'ɫ'), + (0x2C63, 'M', u'ᵽ'), + (0x2C64, 'M', u'ɽ'), + (0x2C65, 'V'), + (0x2C67, 'M', u'ⱨ'), + (0x2C68, 'V'), + (0x2C69, 'M', u'ⱪ'), + (0x2C6A, 'V'), + (0x2C6B, 'M', u'ⱬ'), + (0x2C6C, 'V'), + (0x2C6D, 'M', u'ɑ'), + (0x2C6E, 'M', u'ɱ'), + (0x2C6F, 'M', u'ɐ'), + (0x2C70, 'M', u'ɒ'), + (0x2C71, 'V'), + (0x2C72, 'M', u'ⱳ'), + (0x2C73, 'V'), + (0x2C75, 'M', u'ⱶ'), + (0x2C76, 'V'), + (0x2C7C, 'M', u'j'), + (0x2C7D, 'M', u'v'), + (0x2C7E, 'M', u'ȿ'), + (0x2C7F, 'M', u'ɀ'), + (0x2C80, 'M', u'ⲁ'), + (0x2C81, 'V'), + (0x2C82, 'M', u'ⲃ'), + ] + +def _seg_25(): + return [ + (0x2C83, 'V'), + (0x2C84, 'M', u'ⲅ'), + (0x2C85, 'V'), + (0x2C86, 'M', u'ⲇ'), + (0x2C87, 'V'), + (0x2C88, 'M', u'ⲉ'), + (0x2C89, 'V'), + (0x2C8A, 'M', u'ⲋ'), + (0x2C8B, 'V'), + (0x2C8C, 'M', u'ⲍ'), + (0x2C8D, 'V'), + (0x2C8E, 'M', u'ⲏ'), + (0x2C8F, 'V'), + (0x2C90, 'M', u'ⲑ'), + (0x2C91, 'V'), + (0x2C92, 'M', u'ⲓ'), + (0x2C93, 'V'), + (0x2C94, 'M', u'ⲕ'), + (0x2C95, 'V'), + (0x2C96, 'M', u'ⲗ'), + (0x2C97, 'V'), + (0x2C98, 'M', u'ⲙ'), + (0x2C99, 'V'), + (0x2C9A, 'M', u'ⲛ'), + (0x2C9B, 'V'), + (0x2C9C, 'M', u'ⲝ'), + (0x2C9D, 'V'), + (0x2C9E, 'M', u'ⲟ'), + (0x2C9F, 'V'), + (0x2CA0, 'M', u'ⲡ'), + (0x2CA1, 'V'), + (0x2CA2, 'M', u'ⲣ'), + (0x2CA3, 'V'), + (0x2CA4, 'M', u'ⲥ'), + (0x2CA5, 'V'), + (0x2CA6, 'M', u'ⲧ'), + (0x2CA7, 'V'), + (0x2CA8, 'M', u'ⲩ'), + (0x2CA9, 'V'), + (0x2CAA, 'M', u'ⲫ'), + (0x2CAB, 'V'), + (0x2CAC, 'M', u'ⲭ'), + (0x2CAD, 'V'), + (0x2CAE, 'M', u'ⲯ'), + (0x2CAF, 'V'), + (0x2CB0, 'M', u'ⲱ'), + (0x2CB1, 'V'), + (0x2CB2, 'M', u'ⲳ'), + (0x2CB3, 'V'), + (0x2CB4, 'M', u'ⲵ'), + (0x2CB5, 'V'), + (0x2CB6, 'M', u'ⲷ'), + (0x2CB7, 'V'), + (0x2CB8, 'M', u'ⲹ'), + (0x2CB9, 'V'), + (0x2CBA, 'M', u'ⲻ'), + (0x2CBB, 'V'), + (0x2CBC, 'M', u'ⲽ'), + (0x2CBD, 'V'), + (0x2CBE, 'M', u'ⲿ'), + (0x2CBF, 'V'), + (0x2CC0, 'M', u'ⳁ'), + (0x2CC1, 'V'), + (0x2CC2, 'M', u'ⳃ'), + (0x2CC3, 'V'), + (0x2CC4, 'M', u'ⳅ'), + (0x2CC5, 'V'), + (0x2CC6, 'M', u'ⳇ'), + (0x2CC7, 'V'), + (0x2CC8, 'M', u'ⳉ'), + (0x2CC9, 'V'), + (0x2CCA, 'M', u'ⳋ'), + (0x2CCB, 'V'), + (0x2CCC, 'M', u'ⳍ'), + (0x2CCD, 'V'), + (0x2CCE, 'M', u'ⳏ'), + (0x2CCF, 'V'), + (0x2CD0, 'M', u'ⳑ'), + (0x2CD1, 'V'), + (0x2CD2, 'M', u'ⳓ'), + (0x2CD3, 'V'), + (0x2CD4, 'M', u'ⳕ'), + (0x2CD5, 'V'), + (0x2CD6, 'M', u'ⳗ'), + (0x2CD7, 'V'), + (0x2CD8, 'M', u'ⳙ'), + (0x2CD9, 'V'), + (0x2CDA, 'M', u'ⳛ'), + (0x2CDB, 'V'), + (0x2CDC, 'M', u'ⳝ'), + (0x2CDD, 'V'), + (0x2CDE, 'M', u'ⳟ'), + (0x2CDF, 'V'), + (0x2CE0, 'M', u'ⳡ'), + (0x2CE1, 'V'), + (0x2CE2, 'M', u'ⳣ'), + (0x2CE3, 'V'), + (0x2CEB, 'M', u'ⳬ'), + (0x2CEC, 'V'), + (0x2CED, 'M', u'ⳮ'), + ] + +def _seg_26(): + return [ + (0x2CEE, 'V'), + (0x2CF2, 'M', u'ⳳ'), + (0x2CF3, 'V'), + (0x2CF4, 'X'), + (0x2CF9, 'V'), + (0x2D26, 'X'), + (0x2D27, 'V'), + (0x2D28, 'X'), + (0x2D2D, 'V'), + (0x2D2E, 'X'), + (0x2D30, 'V'), + (0x2D68, 'X'), + (0x2D6F, 'M', u'ⵡ'), + (0x2D70, 'V'), + (0x2D71, 'X'), + (0x2D7F, 'V'), + (0x2D97, 'X'), + (0x2DA0, 'V'), + (0x2DA7, 'X'), + (0x2DA8, 'V'), + (0x2DAF, 'X'), + (0x2DB0, 'V'), + (0x2DB7, 'X'), + (0x2DB8, 'V'), + (0x2DBF, 'X'), + (0x2DC0, 'V'), + (0x2DC7, 'X'), + (0x2DC8, 'V'), + (0x2DCF, 'X'), + (0x2DD0, 'V'), + (0x2DD7, 'X'), + (0x2DD8, 'V'), + (0x2DDF, 'X'), + (0x2DE0, 'V'), + (0x2E3C, 'X'), + (0x2E80, 'V'), + (0x2E9A, 'X'), + (0x2E9B, 'V'), + (0x2E9F, 'M', u'母'), + (0x2EA0, 'V'), + (0x2EF3, 'M', u'龟'), + (0x2EF4, 'X'), + (0x2F00, 'M', u'一'), + (0x2F01, 'M', u'丨'), + (0x2F02, 'M', u'丶'), + (0x2F03, 'M', u'丿'), + (0x2F04, 'M', u'乙'), + (0x2F05, 'M', u'亅'), + (0x2F06, 'M', u'二'), + (0x2F07, 'M', u'亠'), + (0x2F08, 'M', u'人'), + (0x2F09, 'M', u'儿'), + (0x2F0A, 'M', u'入'), + (0x2F0B, 'M', u'八'), + (0x2F0C, 'M', u'冂'), + (0x2F0D, 'M', u'冖'), + (0x2F0E, 'M', u'冫'), + (0x2F0F, 'M', u'几'), + (0x2F10, 'M', u'凵'), + (0x2F11, 'M', u'刀'), + (0x2F12, 'M', u'力'), + (0x2F13, 'M', u'勹'), + (0x2F14, 'M', u'匕'), + (0x2F15, 'M', u'匚'), + (0x2F16, 'M', u'匸'), + (0x2F17, 'M', u'十'), + (0x2F18, 'M', u'卜'), + (0x2F19, 'M', u'卩'), + (0x2F1A, 'M', u'厂'), + (0x2F1B, 'M', u'厶'), + (0x2F1C, 'M', u'又'), + (0x2F1D, 'M', u'口'), + (0x2F1E, 'M', u'囗'), + (0x2F1F, 'M', u'土'), + (0x2F20, 'M', u'士'), + (0x2F21, 'M', u'夂'), + (0x2F22, 'M', u'夊'), + (0x2F23, 'M', u'夕'), + (0x2F24, 'M', u'大'), + (0x2F25, 'M', u'女'), + (0x2F26, 'M', u'子'), + (0x2F27, 'M', u'宀'), + (0x2F28, 'M', u'寸'), + (0x2F29, 'M', u'小'), + (0x2F2A, 'M', u'尢'), + (0x2F2B, 'M', u'尸'), + (0x2F2C, 'M', u'屮'), + (0x2F2D, 'M', u'山'), + (0x2F2E, 'M', u'巛'), + (0x2F2F, 'M', u'工'), + (0x2F30, 'M', u'己'), + (0x2F31, 'M', u'巾'), + (0x2F32, 'M', u'干'), + (0x2F33, 'M', u'幺'), + (0x2F34, 'M', u'广'), + (0x2F35, 'M', u'廴'), + (0x2F36, 'M', u'廾'), + (0x2F37, 'M', u'弋'), + (0x2F38, 'M', u'弓'), + (0x2F39, 'M', u'彐'), + ] + +def _seg_27(): + return [ + (0x2F3A, 'M', u'彡'), + (0x2F3B, 'M', u'彳'), + (0x2F3C, 'M', u'心'), + (0x2F3D, 'M', u'戈'), + (0x2F3E, 'M', u'戶'), + (0x2F3F, 'M', u'手'), + (0x2F40, 'M', u'支'), + (0x2F41, 'M', u'攴'), + (0x2F42, 'M', u'文'), + (0x2F43, 'M', u'斗'), + (0x2F44, 'M', u'斤'), + (0x2F45, 'M', u'方'), + (0x2F46, 'M', u'无'), + (0x2F47, 'M', u'日'), + (0x2F48, 'M', u'曰'), + (0x2F49, 'M', u'月'), + (0x2F4A, 'M', u'木'), + (0x2F4B, 'M', u'欠'), + (0x2F4C, 'M', u'止'), + (0x2F4D, 'M', u'歹'), + (0x2F4E, 'M', u'殳'), + (0x2F4F, 'M', u'毋'), + (0x2F50, 'M', u'比'), + (0x2F51, 'M', u'毛'), + (0x2F52, 'M', u'氏'), + (0x2F53, 'M', u'气'), + (0x2F54, 'M', u'水'), + (0x2F55, 'M', u'火'), + (0x2F56, 'M', u'爪'), + (0x2F57, 'M', u'父'), + (0x2F58, 'M', u'爻'), + (0x2F59, 'M', u'爿'), + (0x2F5A, 'M', u'片'), + (0x2F5B, 'M', u'牙'), + (0x2F5C, 'M', u'牛'), + (0x2F5D, 'M', u'犬'), + (0x2F5E, 'M', u'玄'), + (0x2F5F, 'M', u'玉'), + (0x2F60, 'M', u'瓜'), + (0x2F61, 'M', u'瓦'), + (0x2F62, 'M', u'甘'), + (0x2F63, 'M', u'生'), + (0x2F64, 'M', u'用'), + (0x2F65, 'M', u'田'), + (0x2F66, 'M', u'疋'), + (0x2F67, 'M', u'疒'), + (0x2F68, 'M', u'癶'), + (0x2F69, 'M', u'白'), + (0x2F6A, 'M', u'皮'), + (0x2F6B, 'M', u'皿'), + (0x2F6C, 'M', u'目'), + (0x2F6D, 'M', u'矛'), + (0x2F6E, 'M', u'矢'), + (0x2F6F, 'M', u'石'), + (0x2F70, 'M', u'示'), + (0x2F71, 'M', u'禸'), + (0x2F72, 'M', u'禾'), + (0x2F73, 'M', u'穴'), + (0x2F74, 'M', u'立'), + (0x2F75, 'M', u'竹'), + (0x2F76, 'M', u'米'), + (0x2F77, 'M', u'糸'), + (0x2F78, 'M', u'缶'), + (0x2F79, 'M', u'网'), + (0x2F7A, 'M', u'羊'), + (0x2F7B, 'M', u'羽'), + (0x2F7C, 'M', u'老'), + (0x2F7D, 'M', u'而'), + (0x2F7E, 'M', u'耒'), + (0x2F7F, 'M', u'耳'), + (0x2F80, 'M', u'聿'), + (0x2F81, 'M', u'肉'), + (0x2F82, 'M', u'臣'), + (0x2F83, 'M', u'自'), + (0x2F84, 'M', u'至'), + (0x2F85, 'M', u'臼'), + (0x2F86, 'M', u'舌'), + (0x2F87, 'M', u'舛'), + (0x2F88, 'M', u'舟'), + (0x2F89, 'M', u'艮'), + (0x2F8A, 'M', u'色'), + (0x2F8B, 'M', u'艸'), + (0x2F8C, 'M', u'虍'), + (0x2F8D, 'M', u'虫'), + (0x2F8E, 'M', u'血'), + (0x2F8F, 'M', u'行'), + (0x2F90, 'M', u'衣'), + (0x2F91, 'M', u'襾'), + (0x2F92, 'M', u'見'), + (0x2F93, 'M', u'角'), + (0x2F94, 'M', u'言'), + (0x2F95, 'M', u'谷'), + (0x2F96, 'M', u'豆'), + (0x2F97, 'M', u'豕'), + (0x2F98, 'M', u'豸'), + (0x2F99, 'M', u'貝'), + (0x2F9A, 'M', u'赤'), + (0x2F9B, 'M', u'走'), + (0x2F9C, 'M', u'足'), + (0x2F9D, 'M', u'身'), + ] + +def _seg_28(): + return [ + (0x2F9E, 'M', u'車'), + (0x2F9F, 'M', u'辛'), + (0x2FA0, 'M', u'辰'), + (0x2FA1, 'M', u'辵'), + (0x2FA2, 'M', u'邑'), + (0x2FA3, 'M', u'酉'), + (0x2FA4, 'M', u'釆'), + (0x2FA5, 'M', u'里'), + (0x2FA6, 'M', u'金'), + (0x2FA7, 'M', u'長'), + (0x2FA8, 'M', u'門'), + (0x2FA9, 'M', u'阜'), + (0x2FAA, 'M', u'隶'), + (0x2FAB, 'M', u'隹'), + (0x2FAC, 'M', u'雨'), + (0x2FAD, 'M', u'靑'), + (0x2FAE, 'M', u'非'), + (0x2FAF, 'M', u'面'), + (0x2FB0, 'M', u'革'), + (0x2FB1, 'M', u'韋'), + (0x2FB2, 'M', u'韭'), + (0x2FB3, 'M', u'音'), + (0x2FB4, 'M', u'頁'), + (0x2FB5, 'M', u'風'), + (0x2FB6, 'M', u'飛'), + (0x2FB7, 'M', u'食'), + (0x2FB8, 'M', u'首'), + (0x2FB9, 'M', u'香'), + (0x2FBA, 'M', u'馬'), + (0x2FBB, 'M', u'骨'), + (0x2FBC, 'M', u'高'), + (0x2FBD, 'M', u'髟'), + (0x2FBE, 'M', u'鬥'), + (0x2FBF, 'M', u'鬯'), + (0x2FC0, 'M', u'鬲'), + (0x2FC1, 'M', u'鬼'), + (0x2FC2, 'M', u'魚'), + (0x2FC3, 'M', u'鳥'), + (0x2FC4, 'M', u'鹵'), + (0x2FC5, 'M', u'鹿'), + (0x2FC6, 'M', u'麥'), + (0x2FC7, 'M', u'麻'), + (0x2FC8, 'M', u'黃'), + (0x2FC9, 'M', u'黍'), + (0x2FCA, 'M', u'黑'), + (0x2FCB, 'M', u'黹'), + (0x2FCC, 'M', u'黽'), + (0x2FCD, 'M', u'鼎'), + (0x2FCE, 'M', u'鼓'), + (0x2FCF, 'M', u'鼠'), + (0x2FD0, 'M', u'鼻'), + (0x2FD1, 'M', u'齊'), + (0x2FD2, 'M', u'齒'), + (0x2FD3, 'M', u'龍'), + (0x2FD4, 'M', u'龜'), + (0x2FD5, 'M', u'龠'), + (0x2FD6, 'X'), + (0x3000, '3', u' '), + (0x3001, 'V'), + (0x3002, 'M', u'.'), + (0x3003, 'V'), + (0x3036, 'M', u'〒'), + (0x3037, 'V'), + (0x3038, 'M', u'十'), + (0x3039, 'M', u'卄'), + (0x303A, 'M', u'卅'), + (0x303B, 'V'), + (0x3040, 'X'), + (0x3041, 'V'), + (0x3097, 'X'), + (0x3099, 'V'), + (0x309B, '3', u' ゙'), + (0x309C, '3', u' ゚'), + (0x309D, 'V'), + (0x309F, 'M', u'より'), + (0x30A0, 'V'), + (0x30FF, 'M', u'コト'), + (0x3100, 'X'), + (0x3105, 'V'), + (0x312E, 'X'), + (0x3131, 'M', u'ᄀ'), + (0x3132, 'M', u'ᄁ'), + (0x3133, 'M', u'ᆪ'), + (0x3134, 'M', u'ᄂ'), + (0x3135, 'M', u'ᆬ'), + (0x3136, 'M', u'ᆭ'), + (0x3137, 'M', u'ᄃ'), + (0x3138, 'M', u'ᄄ'), + (0x3139, 'M', u'ᄅ'), + (0x313A, 'M', u'ᆰ'), + (0x313B, 'M', u'ᆱ'), + (0x313C, 'M', u'ᆲ'), + (0x313D, 'M', u'ᆳ'), + (0x313E, 'M', u'ᆴ'), + (0x313F, 'M', u'ᆵ'), + (0x3140, 'M', u'ᄚ'), + (0x3141, 'M', u'ᄆ'), + (0x3142, 'M', u'ᄇ'), + (0x3143, 'M', u'ᄈ'), + (0x3144, 'M', u'ᄡ'), + ] + +def _seg_29(): + return [ + (0x3145, 'M', u'ᄉ'), + (0x3146, 'M', u'ᄊ'), + (0x3147, 'M', u'ᄋ'), + (0x3148, 'M', u'ᄌ'), + (0x3149, 'M', u'ᄍ'), + (0x314A, 'M', u'ᄎ'), + (0x314B, 'M', u'ᄏ'), + (0x314C, 'M', u'ᄐ'), + (0x314D, 'M', u'ᄑ'), + (0x314E, 'M', u'ᄒ'), + (0x314F, 'M', u'ᅡ'), + (0x3150, 'M', u'ᅢ'), + (0x3151, 'M', u'ᅣ'), + (0x3152, 'M', u'ᅤ'), + (0x3153, 'M', u'ᅥ'), + (0x3154, 'M', u'ᅦ'), + (0x3155, 'M', u'ᅧ'), + (0x3156, 'M', u'ᅨ'), + (0x3157, 'M', u'ᅩ'), + (0x3158, 'M', u'ᅪ'), + (0x3159, 'M', u'ᅫ'), + (0x315A, 'M', u'ᅬ'), + (0x315B, 'M', u'ᅭ'), + (0x315C, 'M', u'ᅮ'), + (0x315D, 'M', u'ᅯ'), + (0x315E, 'M', u'ᅰ'), + (0x315F, 'M', u'ᅱ'), + (0x3160, 'M', u'ᅲ'), + (0x3161, 'M', u'ᅳ'), + (0x3162, 'M', u'ᅴ'), + (0x3163, 'M', u'ᅵ'), + (0x3164, 'X'), + (0x3165, 'M', u'ᄔ'), + (0x3166, 'M', u'ᄕ'), + (0x3167, 'M', u'ᇇ'), + (0x3168, 'M', u'ᇈ'), + (0x3169, 'M', u'ᇌ'), + (0x316A, 'M', u'ᇎ'), + (0x316B, 'M', u'ᇓ'), + (0x316C, 'M', u'ᇗ'), + (0x316D, 'M', u'ᇙ'), + (0x316E, 'M', u'ᄜ'), + (0x316F, 'M', u'ᇝ'), + (0x3170, 'M', u'ᇟ'), + (0x3171, 'M', u'ᄝ'), + (0x3172, 'M', u'ᄞ'), + (0x3173, 'M', u'ᄠ'), + (0x3174, 'M', u'ᄢ'), + (0x3175, 'M', u'ᄣ'), + (0x3176, 'M', u'ᄧ'), + (0x3177, 'M', u'ᄩ'), + (0x3178, 'M', u'ᄫ'), + (0x3179, 'M', u'ᄬ'), + (0x317A, 'M', u'ᄭ'), + (0x317B, 'M', u'ᄮ'), + (0x317C, 'M', u'ᄯ'), + (0x317D, 'M', u'ᄲ'), + (0x317E, 'M', u'ᄶ'), + (0x317F, 'M', u'ᅀ'), + (0x3180, 'M', u'ᅇ'), + (0x3181, 'M', u'ᅌ'), + (0x3182, 'M', u'ᇱ'), + (0x3183, 'M', u'ᇲ'), + (0x3184, 'M', u'ᅗ'), + (0x3185, 'M', u'ᅘ'), + (0x3186, 'M', u'ᅙ'), + (0x3187, 'M', u'ᆄ'), + (0x3188, 'M', u'ᆅ'), + (0x3189, 'M', u'ᆈ'), + (0x318A, 'M', u'ᆑ'), + (0x318B, 'M', u'ᆒ'), + (0x318C, 'M', u'ᆔ'), + (0x318D, 'M', u'ᆞ'), + (0x318E, 'M', u'ᆡ'), + (0x318F, 'X'), + (0x3190, 'V'), + (0x3192, 'M', u'一'), + (0x3193, 'M', u'二'), + (0x3194, 'M', u'三'), + (0x3195, 'M', u'四'), + (0x3196, 'M', u'上'), + (0x3197, 'M', u'中'), + (0x3198, 'M', u'下'), + (0x3199, 'M', u'甲'), + (0x319A, 'M', u'乙'), + (0x319B, 'M', u'丙'), + (0x319C, 'M', u'丁'), + (0x319D, 'M', u'天'), + (0x319E, 'M', u'地'), + (0x319F, 'M', u'人'), + (0x31A0, 'V'), + (0x31BB, 'X'), + (0x31C0, 'V'), + (0x31E4, 'X'), + (0x31F0, 'V'), + (0x3200, '3', u'(ᄀ)'), + (0x3201, '3', u'(ᄂ)'), + (0x3202, '3', u'(ᄃ)'), + (0x3203, '3', u'(ᄅ)'), + (0x3204, '3', u'(ᄆ)'), + ] + +def _seg_30(): + return [ + (0x3205, '3', u'(ᄇ)'), + (0x3206, '3', u'(ᄉ)'), + (0x3207, '3', u'(ᄋ)'), + (0x3208, '3', u'(ᄌ)'), + (0x3209, '3', u'(ᄎ)'), + (0x320A, '3', u'(ᄏ)'), + (0x320B, '3', u'(ᄐ)'), + (0x320C, '3', u'(ᄑ)'), + (0x320D, '3', u'(ᄒ)'), + (0x320E, '3', u'(가)'), + (0x320F, '3', u'(나)'), + (0x3210, '3', u'(다)'), + (0x3211, '3', u'(라)'), + (0x3212, '3', u'(마)'), + (0x3213, '3', u'(바)'), + (0x3214, '3', u'(사)'), + (0x3215, '3', u'(아)'), + (0x3216, '3', u'(자)'), + (0x3217, '3', u'(차)'), + (0x3218, '3', u'(카)'), + (0x3219, '3', u'(타)'), + (0x321A, '3', u'(파)'), + (0x321B, '3', u'(하)'), + (0x321C, '3', u'(주)'), + (0x321D, '3', u'(오전)'), + (0x321E, '3', u'(오후)'), + (0x321F, 'X'), + (0x3220, '3', u'(一)'), + (0x3221, '3', u'(二)'), + (0x3222, '3', u'(三)'), + (0x3223, '3', u'(四)'), + (0x3224, '3', u'(五)'), + (0x3225, '3', u'(六)'), + (0x3226, '3', u'(七)'), + (0x3227, '3', u'(八)'), + (0x3228, '3', u'(九)'), + (0x3229, '3', u'(十)'), + (0x322A, '3', u'(月)'), + (0x322B, '3', u'(火)'), + (0x322C, '3', u'(水)'), + (0x322D, '3', u'(木)'), + (0x322E, '3', u'(金)'), + (0x322F, '3', u'(土)'), + (0x3230, '3', u'(日)'), + (0x3231, '3', u'(株)'), + (0x3232, '3', u'(有)'), + (0x3233, '3', u'(社)'), + (0x3234, '3', u'(名)'), + (0x3235, '3', u'(特)'), + (0x3236, '3', u'(財)'), + (0x3237, '3', u'(祝)'), + (0x3238, '3', u'(労)'), + (0x3239, '3', u'(代)'), + (0x323A, '3', u'(呼)'), + (0x323B, '3', u'(学)'), + (0x323C, '3', u'(監)'), + (0x323D, '3', u'(企)'), + (0x323E, '3', u'(資)'), + (0x323F, '3', u'(協)'), + (0x3240, '3', u'(祭)'), + (0x3241, '3', u'(休)'), + (0x3242, '3', u'(自)'), + (0x3243, '3', u'(至)'), + (0x3244, 'M', u'問'), + (0x3245, 'M', u'幼'), + (0x3246, 'M', u'文'), + (0x3247, 'M', u'箏'), + (0x3248, 'V'), + (0x3250, 'M', u'pte'), + (0x3251, 'M', u'21'), + (0x3252, 'M', u'22'), + (0x3253, 'M', u'23'), + (0x3254, 'M', u'24'), + (0x3255, 'M', u'25'), + (0x3256, 'M', u'26'), + (0x3257, 'M', u'27'), + (0x3258, 'M', u'28'), + (0x3259, 'M', u'29'), + (0x325A, 'M', u'30'), + (0x325B, 'M', u'31'), + (0x325C, 'M', u'32'), + (0x325D, 'M', u'33'), + (0x325E, 'M', u'34'), + (0x325F, 'M', u'35'), + (0x3260, 'M', u'ᄀ'), + (0x3261, 'M', u'ᄂ'), + (0x3262, 'M', u'ᄃ'), + (0x3263, 'M', u'ᄅ'), + (0x3264, 'M', u'ᄆ'), + (0x3265, 'M', u'ᄇ'), + (0x3266, 'M', u'ᄉ'), + (0x3267, 'M', u'ᄋ'), + (0x3268, 'M', u'ᄌ'), + (0x3269, 'M', u'ᄎ'), + (0x326A, 'M', u'ᄏ'), + (0x326B, 'M', u'ᄐ'), + (0x326C, 'M', u'ᄑ'), + (0x326D, 'M', u'ᄒ'), + (0x326E, 'M', u'가'), + (0x326F, 'M', u'나'), + ] + +def _seg_31(): + return [ + (0x3270, 'M', u'다'), + (0x3271, 'M', u'라'), + (0x3272, 'M', u'마'), + (0x3273, 'M', u'바'), + (0x3274, 'M', u'사'), + (0x3275, 'M', u'아'), + (0x3276, 'M', u'자'), + (0x3277, 'M', u'차'), + (0x3278, 'M', u'카'), + (0x3279, 'M', u'타'), + (0x327A, 'M', u'파'), + (0x327B, 'M', u'하'), + (0x327C, 'M', u'참고'), + (0x327D, 'M', u'주의'), + (0x327E, 'M', u'우'), + (0x327F, 'V'), + (0x3280, 'M', u'一'), + (0x3281, 'M', u'二'), + (0x3282, 'M', u'三'), + (0x3283, 'M', u'四'), + (0x3284, 'M', u'五'), + (0x3285, 'M', u'六'), + (0x3286, 'M', u'七'), + (0x3287, 'M', u'八'), + (0x3288, 'M', u'九'), + (0x3289, 'M', u'十'), + (0x328A, 'M', u'月'), + (0x328B, 'M', u'火'), + (0x328C, 'M', u'水'), + (0x328D, 'M', u'木'), + (0x328E, 'M', u'金'), + (0x328F, 'M', u'土'), + (0x3290, 'M', u'日'), + (0x3291, 'M', u'株'), + (0x3292, 'M', u'有'), + (0x3293, 'M', u'社'), + (0x3294, 'M', u'名'), + (0x3295, 'M', u'特'), + (0x3296, 'M', u'財'), + (0x3297, 'M', u'祝'), + (0x3298, 'M', u'労'), + (0x3299, 'M', u'秘'), + (0x329A, 'M', u'男'), + (0x329B, 'M', u'女'), + (0x329C, 'M', u'適'), + (0x329D, 'M', u'優'), + (0x329E, 'M', u'印'), + (0x329F, 'M', u'注'), + (0x32A0, 'M', u'項'), + (0x32A1, 'M', u'休'), + (0x32A2, 'M', u'写'), + (0x32A3, 'M', u'正'), + (0x32A4, 'M', u'上'), + (0x32A5, 'M', u'中'), + (0x32A6, 'M', u'下'), + (0x32A7, 'M', u'左'), + (0x32A8, 'M', u'右'), + (0x32A9, 'M', u'医'), + (0x32AA, 'M', u'宗'), + (0x32AB, 'M', u'学'), + (0x32AC, 'M', u'監'), + (0x32AD, 'M', u'企'), + (0x32AE, 'M', u'資'), + (0x32AF, 'M', u'協'), + (0x32B0, 'M', u'夜'), + (0x32B1, 'M', u'36'), + (0x32B2, 'M', u'37'), + (0x32B3, 'M', u'38'), + (0x32B4, 'M', u'39'), + (0x32B5, 'M', u'40'), + (0x32B6, 'M', u'41'), + (0x32B7, 'M', u'42'), + (0x32B8, 'M', u'43'), + (0x32B9, 'M', u'44'), + (0x32BA, 'M', u'45'), + (0x32BB, 'M', u'46'), + (0x32BC, 'M', u'47'), + (0x32BD, 'M', u'48'), + (0x32BE, 'M', u'49'), + (0x32BF, 'M', u'50'), + (0x32C0, 'M', u'1月'), + (0x32C1, 'M', u'2月'), + (0x32C2, 'M', u'3月'), + (0x32C3, 'M', u'4月'), + (0x32C4, 'M', u'5月'), + (0x32C5, 'M', u'6月'), + (0x32C6, 'M', u'7月'), + (0x32C7, 'M', u'8月'), + (0x32C8, 'M', u'9月'), + (0x32C9, 'M', u'10月'), + (0x32CA, 'M', u'11月'), + (0x32CB, 'M', u'12月'), + (0x32CC, 'M', u'hg'), + (0x32CD, 'M', u'erg'), + (0x32CE, 'M', u'ev'), + (0x32CF, 'M', u'ltd'), + (0x32D0, 'M', u'ア'), + (0x32D1, 'M', u'イ'), + (0x32D2, 'M', u'ウ'), + (0x32D3, 'M', u'エ'), + ] + +def _seg_32(): + return [ + (0x32D4, 'M', u'オ'), + (0x32D5, 'M', u'カ'), + (0x32D6, 'M', u'キ'), + (0x32D7, 'M', u'ク'), + (0x32D8, 'M', u'ケ'), + (0x32D9, 'M', u'コ'), + (0x32DA, 'M', u'サ'), + (0x32DB, 'M', u'シ'), + (0x32DC, 'M', u'ス'), + (0x32DD, 'M', u'セ'), + (0x32DE, 'M', u'ソ'), + (0x32DF, 'M', u'タ'), + (0x32E0, 'M', u'チ'), + (0x32E1, 'M', u'ツ'), + (0x32E2, 'M', u'テ'), + (0x32E3, 'M', u'ト'), + (0x32E4, 'M', u'ナ'), + (0x32E5, 'M', u'ニ'), + (0x32E6, 'M', u'ヌ'), + (0x32E7, 'M', u'ネ'), + (0x32E8, 'M', u'ノ'), + (0x32E9, 'M', u'ハ'), + (0x32EA, 'M', u'ヒ'), + (0x32EB, 'M', u'フ'), + (0x32EC, 'M', u'ヘ'), + (0x32ED, 'M', u'ホ'), + (0x32EE, 'M', u'マ'), + (0x32EF, 'M', u'ミ'), + (0x32F0, 'M', u'ム'), + (0x32F1, 'M', u'メ'), + (0x32F2, 'M', u'モ'), + (0x32F3, 'M', u'ヤ'), + (0x32F4, 'M', u'ユ'), + (0x32F5, 'M', u'ヨ'), + (0x32F6, 'M', u'ラ'), + (0x32F7, 'M', u'リ'), + (0x32F8, 'M', u'ル'), + (0x32F9, 'M', u'レ'), + (0x32FA, 'M', u'ロ'), + (0x32FB, 'M', u'ワ'), + (0x32FC, 'M', u'ヰ'), + (0x32FD, 'M', u'ヱ'), + (0x32FE, 'M', u'ヲ'), + (0x32FF, 'X'), + (0x3300, 'M', u'アパート'), + (0x3301, 'M', u'アルファ'), + (0x3302, 'M', u'アンペア'), + (0x3303, 'M', u'アール'), + (0x3304, 'M', u'イニング'), + (0x3305, 'M', u'インチ'), + (0x3306, 'M', u'ウォン'), + (0x3307, 'M', u'エスクード'), + (0x3308, 'M', u'エーカー'), + (0x3309, 'M', u'オンス'), + (0x330A, 'M', u'オーム'), + (0x330B, 'M', u'カイリ'), + (0x330C, 'M', u'カラット'), + (0x330D, 'M', u'カロリー'), + (0x330E, 'M', u'ガロン'), + (0x330F, 'M', u'ガンマ'), + (0x3310, 'M', u'ギガ'), + (0x3311, 'M', u'ギニー'), + (0x3312, 'M', u'キュリー'), + (0x3313, 'M', u'ギルダー'), + (0x3314, 'M', u'キロ'), + (0x3315, 'M', u'キログラム'), + (0x3316, 'M', u'キロメートル'), + (0x3317, 'M', u'キロワット'), + (0x3318, 'M', u'グラム'), + (0x3319, 'M', u'グラムトン'), + (0x331A, 'M', u'クルゼイロ'), + (0x331B, 'M', u'クローネ'), + (0x331C, 'M', u'ケース'), + (0x331D, 'M', u'コルナ'), + (0x331E, 'M', u'コーポ'), + (0x331F, 'M', u'サイクル'), + (0x3320, 'M', u'サンチーム'), + (0x3321, 'M', u'シリング'), + (0x3322, 'M', u'センチ'), + (0x3323, 'M', u'セント'), + (0x3324, 'M', u'ダース'), + (0x3325, 'M', u'デシ'), + (0x3326, 'M', u'ドル'), + (0x3327, 'M', u'トン'), + (0x3328, 'M', u'ナノ'), + (0x3329, 'M', u'ノット'), + (0x332A, 'M', u'ハイツ'), + (0x332B, 'M', u'パーセント'), + (0x332C, 'M', u'パーツ'), + (0x332D, 'M', u'バーレル'), + (0x332E, 'M', u'ピアストル'), + (0x332F, 'M', u'ピクル'), + (0x3330, 'M', u'ピコ'), + (0x3331, 'M', u'ビル'), + (0x3332, 'M', u'ファラッド'), + (0x3333, 'M', u'フィート'), + (0x3334, 'M', u'ブッシェル'), + (0x3335, 'M', u'フラン'), + (0x3336, 'M', u'ヘクタール'), + (0x3337, 'M', u'ペソ'), + ] + +def _seg_33(): + return [ + (0x3338, 'M', u'ペニヒ'), + (0x3339, 'M', u'ヘルツ'), + (0x333A, 'M', u'ペンス'), + (0x333B, 'M', u'ページ'), + (0x333C, 'M', u'ベータ'), + (0x333D, 'M', u'ポイント'), + (0x333E, 'M', u'ボルト'), + (0x333F, 'M', u'ホン'), + (0x3340, 'M', u'ポンド'), + (0x3341, 'M', u'ホール'), + (0x3342, 'M', u'ホーン'), + (0x3343, 'M', u'マイクロ'), + (0x3344, 'M', u'マイル'), + (0x3345, 'M', u'マッハ'), + (0x3346, 'M', u'マルク'), + (0x3347, 'M', u'マンション'), + (0x3348, 'M', u'ミクロン'), + (0x3349, 'M', u'ミリ'), + (0x334A, 'M', u'ミリバール'), + (0x334B, 'M', u'メガ'), + (0x334C, 'M', u'メガトン'), + (0x334D, 'M', u'メートル'), + (0x334E, 'M', u'ヤード'), + (0x334F, 'M', u'ヤール'), + (0x3350, 'M', u'ユアン'), + (0x3351, 'M', u'リットル'), + (0x3352, 'M', u'リラ'), + (0x3353, 'M', u'ルピー'), + (0x3354, 'M', u'ルーブル'), + (0x3355, 'M', u'レム'), + (0x3356, 'M', u'レントゲン'), + (0x3357, 'M', u'ワット'), + (0x3358, 'M', u'0点'), + (0x3359, 'M', u'1点'), + (0x335A, 'M', u'2点'), + (0x335B, 'M', u'3点'), + (0x335C, 'M', u'4点'), + (0x335D, 'M', u'5点'), + (0x335E, 'M', u'6点'), + (0x335F, 'M', u'7点'), + (0x3360, 'M', u'8点'), + (0x3361, 'M', u'9点'), + (0x3362, 'M', u'10点'), + (0x3363, 'M', u'11点'), + (0x3364, 'M', u'12点'), + (0x3365, 'M', u'13点'), + (0x3366, 'M', u'14点'), + (0x3367, 'M', u'15点'), + (0x3368, 'M', u'16点'), + (0x3369, 'M', u'17点'), + (0x336A, 'M', u'18点'), + (0x336B, 'M', u'19点'), + (0x336C, 'M', u'20点'), + (0x336D, 'M', u'21点'), + (0x336E, 'M', u'22点'), + (0x336F, 'M', u'23点'), + (0x3370, 'M', u'24点'), + (0x3371, 'M', u'hpa'), + (0x3372, 'M', u'da'), + (0x3373, 'M', u'au'), + (0x3374, 'M', u'bar'), + (0x3375, 'M', u'ov'), + (0x3376, 'M', u'pc'), + (0x3377, 'M', u'dm'), + (0x3378, 'M', u'dm2'), + (0x3379, 'M', u'dm3'), + (0x337A, 'M', u'iu'), + (0x337B, 'M', u'平成'), + (0x337C, 'M', u'昭和'), + (0x337D, 'M', u'大正'), + (0x337E, 'M', u'明治'), + (0x337F, 'M', u'株式会社'), + (0x3380, 'M', u'pa'), + (0x3381, 'M', u'na'), + (0x3382, 'M', u'μa'), + (0x3383, 'M', u'ma'), + (0x3384, 'M', u'ka'), + (0x3385, 'M', u'kb'), + (0x3386, 'M', u'mb'), + (0x3387, 'M', u'gb'), + (0x3388, 'M', u'cal'), + (0x3389, 'M', u'kcal'), + (0x338A, 'M', u'pf'), + (0x338B, 'M', u'nf'), + (0x338C, 'M', u'μf'), + (0x338D, 'M', u'μg'), + (0x338E, 'M', u'mg'), + (0x338F, 'M', u'kg'), + (0x3390, 'M', u'hz'), + (0x3391, 'M', u'khz'), + (0x3392, 'M', u'mhz'), + (0x3393, 'M', u'ghz'), + (0x3394, 'M', u'thz'), + (0x3395, 'M', u'μl'), + (0x3396, 'M', u'ml'), + (0x3397, 'M', u'dl'), + (0x3398, 'M', u'kl'), + (0x3399, 'M', u'fm'), + (0x339A, 'M', u'nm'), + (0x339B, 'M', u'μm'), + ] + +def _seg_34(): + return [ + (0x339C, 'M', u'mm'), + (0x339D, 'M', u'cm'), + (0x339E, 'M', u'km'), + (0x339F, 'M', u'mm2'), + (0x33A0, 'M', u'cm2'), + (0x33A1, 'M', u'm2'), + (0x33A2, 'M', u'km2'), + (0x33A3, 'M', u'mm3'), + (0x33A4, 'M', u'cm3'), + (0x33A5, 'M', u'm3'), + (0x33A6, 'M', u'km3'), + (0x33A7, 'M', u'm∕s'), + (0x33A8, 'M', u'm∕s2'), + (0x33A9, 'M', u'pa'), + (0x33AA, 'M', u'kpa'), + (0x33AB, 'M', u'mpa'), + (0x33AC, 'M', u'gpa'), + (0x33AD, 'M', u'rad'), + (0x33AE, 'M', u'rad∕s'), + (0x33AF, 'M', u'rad∕s2'), + (0x33B0, 'M', u'ps'), + (0x33B1, 'M', u'ns'), + (0x33B2, 'M', u'μs'), + (0x33B3, 'M', u'ms'), + (0x33B4, 'M', u'pv'), + (0x33B5, 'M', u'nv'), + (0x33B6, 'M', u'μv'), + (0x33B7, 'M', u'mv'), + (0x33B8, 'M', u'kv'), + (0x33B9, 'M', u'mv'), + (0x33BA, 'M', u'pw'), + (0x33BB, 'M', u'nw'), + (0x33BC, 'M', u'μw'), + (0x33BD, 'M', u'mw'), + (0x33BE, 'M', u'kw'), + (0x33BF, 'M', u'mw'), + (0x33C0, 'M', u'kω'), + (0x33C1, 'M', u'mω'), + (0x33C2, 'X'), + (0x33C3, 'M', u'bq'), + (0x33C4, 'M', u'cc'), + (0x33C5, 'M', u'cd'), + (0x33C6, 'M', u'c∕kg'), + (0x33C7, 'X'), + (0x33C8, 'M', u'db'), + (0x33C9, 'M', u'gy'), + (0x33CA, 'M', u'ha'), + (0x33CB, 'M', u'hp'), + (0x33CC, 'M', u'in'), + (0x33CD, 'M', u'kk'), + (0x33CE, 'M', u'km'), + (0x33CF, 'M', u'kt'), + (0x33D0, 'M', u'lm'), + (0x33D1, 'M', u'ln'), + (0x33D2, 'M', u'log'), + (0x33D3, 'M', u'lx'), + (0x33D4, 'M', u'mb'), + (0x33D5, 'M', u'mil'), + (0x33D6, 'M', u'mol'), + (0x33D7, 'M', u'ph'), + (0x33D8, 'X'), + (0x33D9, 'M', u'ppm'), + (0x33DA, 'M', u'pr'), + (0x33DB, 'M', u'sr'), + (0x33DC, 'M', u'sv'), + (0x33DD, 'M', u'wb'), + (0x33DE, 'M', u'v∕m'), + (0x33DF, 'M', u'a∕m'), + (0x33E0, 'M', u'1日'), + (0x33E1, 'M', u'2日'), + (0x33E2, 'M', u'3日'), + (0x33E3, 'M', u'4日'), + (0x33E4, 'M', u'5日'), + (0x33E5, 'M', u'6日'), + (0x33E6, 'M', u'7日'), + (0x33E7, 'M', u'8日'), + (0x33E8, 'M', u'9日'), + (0x33E9, 'M', u'10日'), + (0x33EA, 'M', u'11日'), + (0x33EB, 'M', u'12日'), + (0x33EC, 'M', u'13日'), + (0x33ED, 'M', u'14日'), + (0x33EE, 'M', u'15日'), + (0x33EF, 'M', u'16日'), + (0x33F0, 'M', u'17日'), + (0x33F1, 'M', u'18日'), + (0x33F2, 'M', u'19日'), + (0x33F3, 'M', u'20日'), + (0x33F4, 'M', u'21日'), + (0x33F5, 'M', u'22日'), + (0x33F6, 'M', u'23日'), + (0x33F7, 'M', u'24日'), + (0x33F8, 'M', u'25日'), + (0x33F9, 'M', u'26日'), + (0x33FA, 'M', u'27日'), + (0x33FB, 'M', u'28日'), + (0x33FC, 'M', u'29日'), + (0x33FD, 'M', u'30日'), + (0x33FE, 'M', u'31日'), + (0x33FF, 'M', u'gal'), + ] + +def _seg_35(): + return [ + (0x3400, 'V'), + (0x4DB6, 'X'), + (0x4DC0, 'V'), + (0x9FCD, 'X'), + (0xA000, 'V'), + (0xA48D, 'X'), + (0xA490, 'V'), + (0xA4C7, 'X'), + (0xA4D0, 'V'), + (0xA62C, 'X'), + (0xA640, 'M', u'ꙁ'), + (0xA641, 'V'), + (0xA642, 'M', u'ꙃ'), + (0xA643, 'V'), + (0xA644, 'M', u'ꙅ'), + (0xA645, 'V'), + (0xA646, 'M', u'ꙇ'), + (0xA647, 'V'), + (0xA648, 'M', u'ꙉ'), + (0xA649, 'V'), + (0xA64A, 'M', u'ꙋ'), + (0xA64B, 'V'), + (0xA64C, 'M', u'ꙍ'), + (0xA64D, 'V'), + (0xA64E, 'M', u'ꙏ'), + (0xA64F, 'V'), + (0xA650, 'M', u'ꙑ'), + (0xA651, 'V'), + (0xA652, 'M', u'ꙓ'), + (0xA653, 'V'), + (0xA654, 'M', u'ꙕ'), + (0xA655, 'V'), + (0xA656, 'M', u'ꙗ'), + (0xA657, 'V'), + (0xA658, 'M', u'ꙙ'), + (0xA659, 'V'), + (0xA65A, 'M', u'ꙛ'), + (0xA65B, 'V'), + (0xA65C, 'M', u'ꙝ'), + (0xA65D, 'V'), + (0xA65E, 'M', u'ꙟ'), + (0xA65F, 'V'), + (0xA660, 'M', u'ꙡ'), + (0xA661, 'V'), + (0xA662, 'M', u'ꙣ'), + (0xA663, 'V'), + (0xA664, 'M', u'ꙥ'), + (0xA665, 'V'), + (0xA666, 'M', u'ꙧ'), + (0xA667, 'V'), + (0xA668, 'M', u'ꙩ'), + (0xA669, 'V'), + (0xA66A, 'M', u'ꙫ'), + (0xA66B, 'V'), + (0xA66C, 'M', u'ꙭ'), + (0xA66D, 'V'), + (0xA680, 'M', u'ꚁ'), + (0xA681, 'V'), + (0xA682, 'M', u'ꚃ'), + (0xA683, 'V'), + (0xA684, 'M', u'ꚅ'), + (0xA685, 'V'), + (0xA686, 'M', u'ꚇ'), + (0xA687, 'V'), + (0xA688, 'M', u'ꚉ'), + (0xA689, 'V'), + (0xA68A, 'M', u'ꚋ'), + (0xA68B, 'V'), + (0xA68C, 'M', u'ꚍ'), + (0xA68D, 'V'), + (0xA68E, 'M', u'ꚏ'), + (0xA68F, 'V'), + (0xA690, 'M', u'ꚑ'), + (0xA691, 'V'), + (0xA692, 'M', u'ꚓ'), + (0xA693, 'V'), + (0xA694, 'M', u'ꚕ'), + (0xA695, 'V'), + (0xA696, 'M', u'ꚗ'), + (0xA697, 'V'), + (0xA698, 'X'), + (0xA69F, 'V'), + (0xA6F8, 'X'), + (0xA700, 'V'), + (0xA722, 'M', u'ꜣ'), + (0xA723, 'V'), + (0xA724, 'M', u'ꜥ'), + (0xA725, 'V'), + (0xA726, 'M', u'ꜧ'), + (0xA727, 'V'), + (0xA728, 'M', u'ꜩ'), + (0xA729, 'V'), + (0xA72A, 'M', u'ꜫ'), + (0xA72B, 'V'), + (0xA72C, 'M', u'ꜭ'), + (0xA72D, 'V'), + (0xA72E, 'M', u'ꜯ'), + (0xA72F, 'V'), + (0xA732, 'M', u'ꜳ'), + (0xA733, 'V'), + ] + +def _seg_36(): + return [ + (0xA734, 'M', u'ꜵ'), + (0xA735, 'V'), + (0xA736, 'M', u'ꜷ'), + (0xA737, 'V'), + (0xA738, 'M', u'ꜹ'), + (0xA739, 'V'), + (0xA73A, 'M', u'ꜻ'), + (0xA73B, 'V'), + (0xA73C, 'M', u'ꜽ'), + (0xA73D, 'V'), + (0xA73E, 'M', u'ꜿ'), + (0xA73F, 'V'), + (0xA740, 'M', u'ꝁ'), + (0xA741, 'V'), + (0xA742, 'M', u'ꝃ'), + (0xA743, 'V'), + (0xA744, 'M', u'ꝅ'), + (0xA745, 'V'), + (0xA746, 'M', u'ꝇ'), + (0xA747, 'V'), + (0xA748, 'M', u'ꝉ'), + (0xA749, 'V'), + (0xA74A, 'M', u'ꝋ'), + (0xA74B, 'V'), + (0xA74C, 'M', u'ꝍ'), + (0xA74D, 'V'), + (0xA74E, 'M', u'ꝏ'), + (0xA74F, 'V'), + (0xA750, 'M', u'ꝑ'), + (0xA751, 'V'), + (0xA752, 'M', u'ꝓ'), + (0xA753, 'V'), + (0xA754, 'M', u'ꝕ'), + (0xA755, 'V'), + (0xA756, 'M', u'ꝗ'), + (0xA757, 'V'), + (0xA758, 'M', u'ꝙ'), + (0xA759, 'V'), + (0xA75A, 'M', u'ꝛ'), + (0xA75B, 'V'), + (0xA75C, 'M', u'ꝝ'), + (0xA75D, 'V'), + (0xA75E, 'M', u'ꝟ'), + (0xA75F, 'V'), + (0xA760, 'M', u'ꝡ'), + (0xA761, 'V'), + (0xA762, 'M', u'ꝣ'), + (0xA763, 'V'), + (0xA764, 'M', u'ꝥ'), + (0xA765, 'V'), + (0xA766, 'M', u'ꝧ'), + (0xA767, 'V'), + (0xA768, 'M', u'ꝩ'), + (0xA769, 'V'), + (0xA76A, 'M', u'ꝫ'), + (0xA76B, 'V'), + (0xA76C, 'M', u'ꝭ'), + (0xA76D, 'V'), + (0xA76E, 'M', u'ꝯ'), + (0xA76F, 'V'), + (0xA770, 'M', u'ꝯ'), + (0xA771, 'V'), + (0xA779, 'M', u'ꝺ'), + (0xA77A, 'V'), + (0xA77B, 'M', u'ꝼ'), + (0xA77C, 'V'), + (0xA77D, 'M', u'ᵹ'), + (0xA77E, 'M', u'ꝿ'), + (0xA77F, 'V'), + (0xA780, 'M', u'ꞁ'), + (0xA781, 'V'), + (0xA782, 'M', u'ꞃ'), + (0xA783, 'V'), + (0xA784, 'M', u'ꞅ'), + (0xA785, 'V'), + (0xA786, 'M', u'ꞇ'), + (0xA787, 'V'), + (0xA78B, 'M', u'ꞌ'), + (0xA78C, 'V'), + (0xA78D, 'M', u'ɥ'), + (0xA78E, 'V'), + (0xA78F, 'X'), + (0xA790, 'M', u'ꞑ'), + (0xA791, 'V'), + (0xA792, 'M', u'ꞓ'), + (0xA793, 'V'), + (0xA794, 'X'), + (0xA7A0, 'M', u'ꞡ'), + (0xA7A1, 'V'), + (0xA7A2, 'M', u'ꞣ'), + (0xA7A3, 'V'), + (0xA7A4, 'M', u'ꞥ'), + (0xA7A5, 'V'), + (0xA7A6, 'M', u'ꞧ'), + (0xA7A7, 'V'), + (0xA7A8, 'M', u'ꞩ'), + (0xA7A9, 'V'), + (0xA7AA, 'M', u'ɦ'), + (0xA7AB, 'X'), + (0xA7F8, 'M', u'ħ'), + ] + +def _seg_37(): + return [ + (0xA7F9, 'M', u'œ'), + (0xA7FA, 'V'), + (0xA82C, 'X'), + (0xA830, 'V'), + (0xA83A, 'X'), + (0xA840, 'V'), + (0xA878, 'X'), + (0xA880, 'V'), + (0xA8C5, 'X'), + (0xA8CE, 'V'), + (0xA8DA, 'X'), + (0xA8E0, 'V'), + (0xA8FC, 'X'), + (0xA900, 'V'), + (0xA954, 'X'), + (0xA95F, 'V'), + (0xA97D, 'X'), + (0xA980, 'V'), + (0xA9CE, 'X'), + (0xA9CF, 'V'), + (0xA9DA, 'X'), + (0xA9DE, 'V'), + (0xA9E0, 'X'), + (0xAA00, 'V'), + (0xAA37, 'X'), + (0xAA40, 'V'), + (0xAA4E, 'X'), + (0xAA50, 'V'), + (0xAA5A, 'X'), + (0xAA5C, 'V'), + (0xAA7C, 'X'), + (0xAA80, 'V'), + (0xAAC3, 'X'), + (0xAADB, 'V'), + (0xAAF7, 'X'), + (0xAB01, 'V'), + (0xAB07, 'X'), + (0xAB09, 'V'), + (0xAB0F, 'X'), + (0xAB11, 'V'), + (0xAB17, 'X'), + (0xAB20, 'V'), + (0xAB27, 'X'), + (0xAB28, 'V'), + (0xAB2F, 'X'), + (0xABC0, 'V'), + (0xABEE, 'X'), + (0xABF0, 'V'), + (0xABFA, 'X'), + (0xAC00, 'V'), + (0xD7A4, 'X'), + (0xD7B0, 'V'), + (0xD7C7, 'X'), + (0xD7CB, 'V'), + (0xD7FC, 'X'), + (0xF900, 'M', u'豈'), + (0xF901, 'M', u'更'), + (0xF902, 'M', u'車'), + (0xF903, 'M', u'賈'), + (0xF904, 'M', u'滑'), + (0xF905, 'M', u'串'), + (0xF906, 'M', u'句'), + (0xF907, 'M', u'龜'), + (0xF909, 'M', u'契'), + (0xF90A, 'M', u'金'), + (0xF90B, 'M', u'喇'), + (0xF90C, 'M', u'奈'), + (0xF90D, 'M', u'懶'), + (0xF90E, 'M', u'癩'), + (0xF90F, 'M', u'羅'), + (0xF910, 'M', u'蘿'), + (0xF911, 'M', u'螺'), + (0xF912, 'M', u'裸'), + (0xF913, 'M', u'邏'), + (0xF914, 'M', u'樂'), + (0xF915, 'M', u'洛'), + (0xF916, 'M', u'烙'), + (0xF917, 'M', u'珞'), + (0xF918, 'M', u'落'), + (0xF919, 'M', u'酪'), + (0xF91A, 'M', u'駱'), + (0xF91B, 'M', u'亂'), + (0xF91C, 'M', u'卵'), + (0xF91D, 'M', u'欄'), + (0xF91E, 'M', u'爛'), + (0xF91F, 'M', u'蘭'), + (0xF920, 'M', u'鸞'), + (0xF921, 'M', u'嵐'), + (0xF922, 'M', u'濫'), + (0xF923, 'M', u'藍'), + (0xF924, 'M', u'襤'), + (0xF925, 'M', u'拉'), + (0xF926, 'M', u'臘'), + (0xF927, 'M', u'蠟'), + (0xF928, 'M', u'廊'), + (0xF929, 'M', u'朗'), + (0xF92A, 'M', u'浪'), + (0xF92B, 'M', u'狼'), + (0xF92C, 'M', u'郎'), + (0xF92D, 'M', u'來'), + ] + +def _seg_38(): + return [ + (0xF92E, 'M', u'冷'), + (0xF92F, 'M', u'勞'), + (0xF930, 'M', u'擄'), + (0xF931, 'M', u'櫓'), + (0xF932, 'M', u'爐'), + (0xF933, 'M', u'盧'), + (0xF934, 'M', u'老'), + (0xF935, 'M', u'蘆'), + (0xF936, 'M', u'虜'), + (0xF937, 'M', u'路'), + (0xF938, 'M', u'露'), + (0xF939, 'M', u'魯'), + (0xF93A, 'M', u'鷺'), + (0xF93B, 'M', u'碌'), + (0xF93C, 'M', u'祿'), + (0xF93D, 'M', u'綠'), + (0xF93E, 'M', u'菉'), + (0xF93F, 'M', u'錄'), + (0xF940, 'M', u'鹿'), + (0xF941, 'M', u'論'), + (0xF942, 'M', u'壟'), + (0xF943, 'M', u'弄'), + (0xF944, 'M', u'籠'), + (0xF945, 'M', u'聾'), + (0xF946, 'M', u'牢'), + (0xF947, 'M', u'磊'), + (0xF948, 'M', u'賂'), + (0xF949, 'M', u'雷'), + (0xF94A, 'M', u'壘'), + (0xF94B, 'M', u'屢'), + (0xF94C, 'M', u'樓'), + (0xF94D, 'M', u'淚'), + (0xF94E, 'M', u'漏'), + (0xF94F, 'M', u'累'), + (0xF950, 'M', u'縷'), + (0xF951, 'M', u'陋'), + (0xF952, 'M', u'勒'), + (0xF953, 'M', u'肋'), + (0xF954, 'M', u'凜'), + (0xF955, 'M', u'凌'), + (0xF956, 'M', u'稜'), + (0xF957, 'M', u'綾'), + (0xF958, 'M', u'菱'), + (0xF959, 'M', u'陵'), + (0xF95A, 'M', u'讀'), + (0xF95B, 'M', u'拏'), + (0xF95C, 'M', u'樂'), + (0xF95D, 'M', u'諾'), + (0xF95E, 'M', u'丹'), + (0xF95F, 'M', u'寧'), + (0xF960, 'M', u'怒'), + (0xF961, 'M', u'率'), + (0xF962, 'M', u'異'), + (0xF963, 'M', u'北'), + (0xF964, 'M', u'磻'), + (0xF965, 'M', u'便'), + (0xF966, 'M', u'復'), + (0xF967, 'M', u'不'), + (0xF968, 'M', u'泌'), + (0xF969, 'M', u'數'), + (0xF96A, 'M', u'索'), + (0xF96B, 'M', u'參'), + (0xF96C, 'M', u'塞'), + (0xF96D, 'M', u'省'), + (0xF96E, 'M', u'葉'), + (0xF96F, 'M', u'說'), + (0xF970, 'M', u'殺'), + (0xF971, 'M', u'辰'), + (0xF972, 'M', u'沈'), + (0xF973, 'M', u'拾'), + (0xF974, 'M', u'若'), + (0xF975, 'M', u'掠'), + (0xF976, 'M', u'略'), + (0xF977, 'M', u'亮'), + (0xF978, 'M', u'兩'), + (0xF979, 'M', u'凉'), + (0xF97A, 'M', u'梁'), + (0xF97B, 'M', u'糧'), + (0xF97C, 'M', u'良'), + (0xF97D, 'M', u'諒'), + (0xF97E, 'M', u'量'), + (0xF97F, 'M', u'勵'), + (0xF980, 'M', u'呂'), + (0xF981, 'M', u'女'), + (0xF982, 'M', u'廬'), + (0xF983, 'M', u'旅'), + (0xF984, 'M', u'濾'), + (0xF985, 'M', u'礪'), + (0xF986, 'M', u'閭'), + (0xF987, 'M', u'驪'), + (0xF988, 'M', u'麗'), + (0xF989, 'M', u'黎'), + (0xF98A, 'M', u'力'), + (0xF98B, 'M', u'曆'), + (0xF98C, 'M', u'歷'), + (0xF98D, 'M', u'轢'), + (0xF98E, 'M', u'年'), + (0xF98F, 'M', u'憐'), + (0xF990, 'M', u'戀'), + (0xF991, 'M', u'撚'), + ] + +def _seg_39(): + return [ + (0xF992, 'M', u'漣'), + (0xF993, 'M', u'煉'), + (0xF994, 'M', u'璉'), + (0xF995, 'M', u'秊'), + (0xF996, 'M', u'練'), + (0xF997, 'M', u'聯'), + (0xF998, 'M', u'輦'), + (0xF999, 'M', u'蓮'), + (0xF99A, 'M', u'連'), + (0xF99B, 'M', u'鍊'), + (0xF99C, 'M', u'列'), + (0xF99D, 'M', u'劣'), + (0xF99E, 'M', u'咽'), + (0xF99F, 'M', u'烈'), + (0xF9A0, 'M', u'裂'), + (0xF9A1, 'M', u'說'), + (0xF9A2, 'M', u'廉'), + (0xF9A3, 'M', u'念'), + (0xF9A4, 'M', u'捻'), + (0xF9A5, 'M', u'殮'), + (0xF9A6, 'M', u'簾'), + (0xF9A7, 'M', u'獵'), + (0xF9A8, 'M', u'令'), + (0xF9A9, 'M', u'囹'), + (0xF9AA, 'M', u'寧'), + (0xF9AB, 'M', u'嶺'), + (0xF9AC, 'M', u'怜'), + (0xF9AD, 'M', u'玲'), + (0xF9AE, 'M', u'瑩'), + (0xF9AF, 'M', u'羚'), + (0xF9B0, 'M', u'聆'), + (0xF9B1, 'M', u'鈴'), + (0xF9B2, 'M', u'零'), + (0xF9B3, 'M', u'靈'), + (0xF9B4, 'M', u'領'), + (0xF9B5, 'M', u'例'), + (0xF9B6, 'M', u'禮'), + (0xF9B7, 'M', u'醴'), + (0xF9B8, 'M', u'隸'), + (0xF9B9, 'M', u'惡'), + (0xF9BA, 'M', u'了'), + (0xF9BB, 'M', u'僚'), + (0xF9BC, 'M', u'寮'), + (0xF9BD, 'M', u'尿'), + (0xF9BE, 'M', u'料'), + (0xF9BF, 'M', u'樂'), + (0xF9C0, 'M', u'燎'), + (0xF9C1, 'M', u'療'), + (0xF9C2, 'M', u'蓼'), + (0xF9C3, 'M', u'遼'), + (0xF9C4, 'M', u'龍'), + (0xF9C5, 'M', u'暈'), + (0xF9C6, 'M', u'阮'), + (0xF9C7, 'M', u'劉'), + (0xF9C8, 'M', u'杻'), + (0xF9C9, 'M', u'柳'), + (0xF9CA, 'M', u'流'), + (0xF9CB, 'M', u'溜'), + (0xF9CC, 'M', u'琉'), + (0xF9CD, 'M', u'留'), + (0xF9CE, 'M', u'硫'), + (0xF9CF, 'M', u'紐'), + (0xF9D0, 'M', u'類'), + (0xF9D1, 'M', u'六'), + (0xF9D2, 'M', u'戮'), + (0xF9D3, 'M', u'陸'), + (0xF9D4, 'M', u'倫'), + (0xF9D5, 'M', u'崙'), + (0xF9D6, 'M', u'淪'), + (0xF9D7, 'M', u'輪'), + (0xF9D8, 'M', u'律'), + (0xF9D9, 'M', u'慄'), + (0xF9DA, 'M', u'栗'), + (0xF9DB, 'M', u'率'), + (0xF9DC, 'M', u'隆'), + (0xF9DD, 'M', u'利'), + (0xF9DE, 'M', u'吏'), + (0xF9DF, 'M', u'履'), + (0xF9E0, 'M', u'易'), + (0xF9E1, 'M', u'李'), + (0xF9E2, 'M', u'梨'), + (0xF9E3, 'M', u'泥'), + (0xF9E4, 'M', u'理'), + (0xF9E5, 'M', u'痢'), + (0xF9E6, 'M', u'罹'), + (0xF9E7, 'M', u'裏'), + (0xF9E8, 'M', u'裡'), + (0xF9E9, 'M', u'里'), + (0xF9EA, 'M', u'離'), + (0xF9EB, 'M', u'匿'), + (0xF9EC, 'M', u'溺'), + (0xF9ED, 'M', u'吝'), + (0xF9EE, 'M', u'燐'), + (0xF9EF, 'M', u'璘'), + (0xF9F0, 'M', u'藺'), + (0xF9F1, 'M', u'隣'), + (0xF9F2, 'M', u'鱗'), + (0xF9F3, 'M', u'麟'), + (0xF9F4, 'M', u'林'), + (0xF9F5, 'M', u'淋'), + ] + +def _seg_40(): + return [ + (0xF9F6, 'M', u'臨'), + (0xF9F7, 'M', u'立'), + (0xF9F8, 'M', u'笠'), + (0xF9F9, 'M', u'粒'), + (0xF9FA, 'M', u'狀'), + (0xF9FB, 'M', u'炙'), + (0xF9FC, 'M', u'識'), + (0xF9FD, 'M', u'什'), + (0xF9FE, 'M', u'茶'), + (0xF9FF, 'M', u'刺'), + (0xFA00, 'M', u'切'), + (0xFA01, 'M', u'度'), + (0xFA02, 'M', u'拓'), + (0xFA03, 'M', u'糖'), + (0xFA04, 'M', u'宅'), + (0xFA05, 'M', u'洞'), + (0xFA06, 'M', u'暴'), + (0xFA07, 'M', u'輻'), + (0xFA08, 'M', u'行'), + (0xFA09, 'M', u'降'), + (0xFA0A, 'M', u'見'), + (0xFA0B, 'M', u'廓'), + (0xFA0C, 'M', u'兀'), + (0xFA0D, 'M', u'嗀'), + (0xFA0E, 'V'), + (0xFA10, 'M', u'塚'), + (0xFA11, 'V'), + (0xFA12, 'M', u'晴'), + (0xFA13, 'V'), + (0xFA15, 'M', u'凞'), + (0xFA16, 'M', u'猪'), + (0xFA17, 'M', u'益'), + (0xFA18, 'M', u'礼'), + (0xFA19, 'M', u'神'), + (0xFA1A, 'M', u'祥'), + (0xFA1B, 'M', u'福'), + (0xFA1C, 'M', u'靖'), + (0xFA1D, 'M', u'精'), + (0xFA1E, 'M', u'羽'), + (0xFA1F, 'V'), + (0xFA20, 'M', u'蘒'), + (0xFA21, 'V'), + (0xFA22, 'M', u'諸'), + (0xFA23, 'V'), + (0xFA25, 'M', u'逸'), + (0xFA26, 'M', u'都'), + (0xFA27, 'V'), + (0xFA2A, 'M', u'飯'), + (0xFA2B, 'M', u'飼'), + (0xFA2C, 'M', u'館'), + (0xFA2D, 'M', u'鶴'), + (0xFA2E, 'M', u'郞'), + (0xFA2F, 'M', u'隷'), + (0xFA30, 'M', u'侮'), + (0xFA31, 'M', u'僧'), + (0xFA32, 'M', u'免'), + (0xFA33, 'M', u'勉'), + (0xFA34, 'M', u'勤'), + (0xFA35, 'M', u'卑'), + (0xFA36, 'M', u'喝'), + (0xFA37, 'M', u'嘆'), + (0xFA38, 'M', u'器'), + (0xFA39, 'M', u'塀'), + (0xFA3A, 'M', u'墨'), + (0xFA3B, 'M', u'層'), + (0xFA3C, 'M', u'屮'), + (0xFA3D, 'M', u'悔'), + (0xFA3E, 'M', u'慨'), + (0xFA3F, 'M', u'憎'), + (0xFA40, 'M', u'懲'), + (0xFA41, 'M', u'敏'), + (0xFA42, 'M', u'既'), + (0xFA43, 'M', u'暑'), + (0xFA44, 'M', u'梅'), + (0xFA45, 'M', u'海'), + (0xFA46, 'M', u'渚'), + (0xFA47, 'M', u'漢'), + (0xFA48, 'M', u'煮'), + (0xFA49, 'M', u'爫'), + (0xFA4A, 'M', u'琢'), + (0xFA4B, 'M', u'碑'), + (0xFA4C, 'M', u'社'), + (0xFA4D, 'M', u'祉'), + (0xFA4E, 'M', u'祈'), + (0xFA4F, 'M', u'祐'), + (0xFA50, 'M', u'祖'), + (0xFA51, 'M', u'祝'), + (0xFA52, 'M', u'禍'), + (0xFA53, 'M', u'禎'), + (0xFA54, 'M', u'穀'), + (0xFA55, 'M', u'突'), + (0xFA56, 'M', u'節'), + (0xFA57, 'M', u'練'), + (0xFA58, 'M', u'縉'), + (0xFA59, 'M', u'繁'), + (0xFA5A, 'M', u'署'), + (0xFA5B, 'M', u'者'), + (0xFA5C, 'M', u'臭'), + (0xFA5D, 'M', u'艹'), + (0xFA5F, 'M', u'著'), + ] + +def _seg_41(): + return [ + (0xFA60, 'M', u'褐'), + (0xFA61, 'M', u'視'), + (0xFA62, 'M', u'謁'), + (0xFA63, 'M', u'謹'), + (0xFA64, 'M', u'賓'), + (0xFA65, 'M', u'贈'), + (0xFA66, 'M', u'辶'), + (0xFA67, 'M', u'逸'), + (0xFA68, 'M', u'難'), + (0xFA69, 'M', u'響'), + (0xFA6A, 'M', u'頻'), + (0xFA6B, 'M', u'恵'), + (0xFA6C, 'M', u'𤋮'), + (0xFA6D, 'M', u'舘'), + (0xFA6E, 'X'), + (0xFA70, 'M', u'並'), + (0xFA71, 'M', u'况'), + (0xFA72, 'M', u'全'), + (0xFA73, 'M', u'侀'), + (0xFA74, 'M', u'充'), + (0xFA75, 'M', u'冀'), + (0xFA76, 'M', u'勇'), + (0xFA77, 'M', u'勺'), + (0xFA78, 'M', u'喝'), + (0xFA79, 'M', u'啕'), + (0xFA7A, 'M', u'喙'), + (0xFA7B, 'M', u'嗢'), + (0xFA7C, 'M', u'塚'), + (0xFA7D, 'M', u'墳'), + (0xFA7E, 'M', u'奄'), + (0xFA7F, 'M', u'奔'), + (0xFA80, 'M', u'婢'), + (0xFA81, 'M', u'嬨'), + (0xFA82, 'M', u'廒'), + (0xFA83, 'M', u'廙'), + (0xFA84, 'M', u'彩'), + (0xFA85, 'M', u'徭'), + (0xFA86, 'M', u'惘'), + (0xFA87, 'M', u'慎'), + (0xFA88, 'M', u'愈'), + (0xFA89, 'M', u'憎'), + (0xFA8A, 'M', u'慠'), + (0xFA8B, 'M', u'懲'), + (0xFA8C, 'M', u'戴'), + (0xFA8D, 'M', u'揄'), + (0xFA8E, 'M', u'搜'), + (0xFA8F, 'M', u'摒'), + (0xFA90, 'M', u'敖'), + (0xFA91, 'M', u'晴'), + (0xFA92, 'M', u'朗'), + (0xFA93, 'M', u'望'), + (0xFA94, 'M', u'杖'), + (0xFA95, 'M', u'歹'), + (0xFA96, 'M', u'殺'), + (0xFA97, 'M', u'流'), + (0xFA98, 'M', u'滛'), + (0xFA99, 'M', u'滋'), + (0xFA9A, 'M', u'漢'), + (0xFA9B, 'M', u'瀞'), + (0xFA9C, 'M', u'煮'), + (0xFA9D, 'M', u'瞧'), + (0xFA9E, 'M', u'爵'), + (0xFA9F, 'M', u'犯'), + (0xFAA0, 'M', u'猪'), + (0xFAA1, 'M', u'瑱'), + (0xFAA2, 'M', u'甆'), + (0xFAA3, 'M', u'画'), + (0xFAA4, 'M', u'瘝'), + (0xFAA5, 'M', u'瘟'), + (0xFAA6, 'M', u'益'), + (0xFAA7, 'M', u'盛'), + (0xFAA8, 'M', u'直'), + (0xFAA9, 'M', u'睊'), + (0xFAAA, 'M', u'着'), + (0xFAAB, 'M', u'磌'), + (0xFAAC, 'M', u'窱'), + (0xFAAD, 'M', u'節'), + (0xFAAE, 'M', u'类'), + (0xFAAF, 'M', u'絛'), + (0xFAB0, 'M', u'練'), + (0xFAB1, 'M', u'缾'), + (0xFAB2, 'M', u'者'), + (0xFAB3, 'M', u'荒'), + (0xFAB4, 'M', u'華'), + (0xFAB5, 'M', u'蝹'), + (0xFAB6, 'M', u'襁'), + (0xFAB7, 'M', u'覆'), + (0xFAB8, 'M', u'視'), + (0xFAB9, 'M', u'調'), + (0xFABA, 'M', u'諸'), + (0xFABB, 'M', u'請'), + (0xFABC, 'M', u'謁'), + (0xFABD, 'M', u'諾'), + (0xFABE, 'M', u'諭'), + (0xFABF, 'M', u'謹'), + (0xFAC0, 'M', u'變'), + (0xFAC1, 'M', u'贈'), + (0xFAC2, 'M', u'輸'), + (0xFAC3, 'M', u'遲'), + (0xFAC4, 'M', u'醙'), + ] + +def _seg_42(): + return [ + (0xFAC5, 'M', u'鉶'), + (0xFAC6, 'M', u'陼'), + (0xFAC7, 'M', u'難'), + (0xFAC8, 'M', u'靖'), + (0xFAC9, 'M', u'韛'), + (0xFACA, 'M', u'響'), + (0xFACB, 'M', u'頋'), + (0xFACC, 'M', u'頻'), + (0xFACD, 'M', u'鬒'), + (0xFACE, 'M', u'龜'), + (0xFACF, 'M', u'𢡊'), + (0xFAD0, 'M', u'𢡄'), + (0xFAD1, 'M', u'𣏕'), + (0xFAD2, 'M', u'㮝'), + (0xFAD3, 'M', u'䀘'), + (0xFAD4, 'M', u'䀹'), + (0xFAD5, 'M', u'𥉉'), + (0xFAD6, 'M', u'𥳐'), + (0xFAD7, 'M', u'𧻓'), + (0xFAD8, 'M', u'齃'), + (0xFAD9, 'M', u'龎'), + (0xFADA, 'X'), + (0xFB00, 'M', u'ff'), + (0xFB01, 'M', u'fi'), + (0xFB02, 'M', u'fl'), + (0xFB03, 'M', u'ffi'), + (0xFB04, 'M', u'ffl'), + (0xFB05, 'M', u'st'), + (0xFB07, 'X'), + (0xFB13, 'M', u'մն'), + (0xFB14, 'M', u'մե'), + (0xFB15, 'M', u'մի'), + (0xFB16, 'M', u'վն'), + (0xFB17, 'M', u'մխ'), + (0xFB18, 'X'), + (0xFB1D, 'M', u'יִ'), + (0xFB1E, 'V'), + (0xFB1F, 'M', u'ײַ'), + (0xFB20, 'M', u'ע'), + (0xFB21, 'M', u'א'), + (0xFB22, 'M', u'ד'), + (0xFB23, 'M', u'ה'), + (0xFB24, 'M', u'כ'), + (0xFB25, 'M', u'ל'), + (0xFB26, 'M', u'ם'), + (0xFB27, 'M', u'ר'), + (0xFB28, 'M', u'ת'), + (0xFB29, '3', u'+'), + (0xFB2A, 'M', u'שׁ'), + (0xFB2B, 'M', u'שׂ'), + (0xFB2C, 'M', u'שּׁ'), + (0xFB2D, 'M', u'שּׂ'), + (0xFB2E, 'M', u'אַ'), + (0xFB2F, 'M', u'אָ'), + (0xFB30, 'M', u'אּ'), + (0xFB31, 'M', u'בּ'), + (0xFB32, 'M', u'גּ'), + (0xFB33, 'M', u'דּ'), + (0xFB34, 'M', u'הּ'), + (0xFB35, 'M', u'וּ'), + (0xFB36, 'M', u'זּ'), + (0xFB37, 'X'), + (0xFB38, 'M', u'טּ'), + (0xFB39, 'M', u'יּ'), + (0xFB3A, 'M', u'ךּ'), + (0xFB3B, 'M', u'כּ'), + (0xFB3C, 'M', u'לּ'), + (0xFB3D, 'X'), + (0xFB3E, 'M', u'מּ'), + (0xFB3F, 'X'), + (0xFB40, 'M', u'נּ'), + (0xFB41, 'M', u'סּ'), + (0xFB42, 'X'), + (0xFB43, 'M', u'ףּ'), + (0xFB44, 'M', u'פּ'), + (0xFB45, 'X'), + (0xFB46, 'M', u'צּ'), + (0xFB47, 'M', u'קּ'), + (0xFB48, 'M', u'רּ'), + (0xFB49, 'M', u'שּ'), + (0xFB4A, 'M', u'תּ'), + (0xFB4B, 'M', u'וֹ'), + (0xFB4C, 'M', u'בֿ'), + (0xFB4D, 'M', u'כֿ'), + (0xFB4E, 'M', u'פֿ'), + (0xFB4F, 'M', u'אל'), + (0xFB50, 'M', u'ٱ'), + (0xFB52, 'M', u'ٻ'), + (0xFB56, 'M', u'پ'), + (0xFB5A, 'M', u'ڀ'), + (0xFB5E, 'M', u'ٺ'), + (0xFB62, 'M', u'ٿ'), + (0xFB66, 'M', u'ٹ'), + (0xFB6A, 'M', u'ڤ'), + (0xFB6E, 'M', u'ڦ'), + (0xFB72, 'M', u'ڄ'), + (0xFB76, 'M', u'ڃ'), + (0xFB7A, 'M', u'چ'), + (0xFB7E, 'M', u'ڇ'), + (0xFB82, 'M', u'ڍ'), + ] + +def _seg_43(): + return [ + (0xFB84, 'M', u'ڌ'), + (0xFB86, 'M', u'ڎ'), + (0xFB88, 'M', u'ڈ'), + (0xFB8A, 'M', u'ژ'), + (0xFB8C, 'M', u'ڑ'), + (0xFB8E, 'M', u'ک'), + (0xFB92, 'M', u'گ'), + (0xFB96, 'M', u'ڳ'), + (0xFB9A, 'M', u'ڱ'), + (0xFB9E, 'M', u'ں'), + (0xFBA0, 'M', u'ڻ'), + (0xFBA4, 'M', u'ۀ'), + (0xFBA6, 'M', u'ہ'), + (0xFBAA, 'M', u'ھ'), + (0xFBAE, 'M', u'ے'), + (0xFBB0, 'M', u'ۓ'), + (0xFBB2, 'V'), + (0xFBC2, 'X'), + (0xFBD3, 'M', u'ڭ'), + (0xFBD7, 'M', u'ۇ'), + (0xFBD9, 'M', u'ۆ'), + (0xFBDB, 'M', u'ۈ'), + (0xFBDD, 'M', u'ۇٴ'), + (0xFBDE, 'M', u'ۋ'), + (0xFBE0, 'M', u'ۅ'), + (0xFBE2, 'M', u'ۉ'), + (0xFBE4, 'M', u'ې'), + (0xFBE8, 'M', u'ى'), + (0xFBEA, 'M', u'ئا'), + (0xFBEC, 'M', u'ئە'), + (0xFBEE, 'M', u'ئو'), + (0xFBF0, 'M', u'ئۇ'), + (0xFBF2, 'M', u'ئۆ'), + (0xFBF4, 'M', u'ئۈ'), + (0xFBF6, 'M', u'ئې'), + (0xFBF9, 'M', u'ئى'), + (0xFBFC, 'M', u'ی'), + (0xFC00, 'M', u'ئج'), + (0xFC01, 'M', u'ئح'), + (0xFC02, 'M', u'ئم'), + (0xFC03, 'M', u'ئى'), + (0xFC04, 'M', u'ئي'), + (0xFC05, 'M', u'بج'), + (0xFC06, 'M', u'بح'), + (0xFC07, 'M', u'بخ'), + (0xFC08, 'M', u'بم'), + (0xFC09, 'M', u'بى'), + (0xFC0A, 'M', u'بي'), + (0xFC0B, 'M', u'تج'), + (0xFC0C, 'M', u'تح'), + (0xFC0D, 'M', u'تخ'), + (0xFC0E, 'M', u'تم'), + (0xFC0F, 'M', u'تى'), + (0xFC10, 'M', u'تي'), + (0xFC11, 'M', u'ثج'), + (0xFC12, 'M', u'ثم'), + (0xFC13, 'M', u'ثى'), + (0xFC14, 'M', u'ثي'), + (0xFC15, 'M', u'جح'), + (0xFC16, 'M', u'جم'), + (0xFC17, 'M', u'حج'), + (0xFC18, 'M', u'حم'), + (0xFC19, 'M', u'خج'), + (0xFC1A, 'M', u'خح'), + (0xFC1B, 'M', u'خم'), + (0xFC1C, 'M', u'سج'), + (0xFC1D, 'M', u'سح'), + (0xFC1E, 'M', u'سخ'), + (0xFC1F, 'M', u'سم'), + (0xFC20, 'M', u'صح'), + (0xFC21, 'M', u'صم'), + (0xFC22, 'M', u'ضج'), + (0xFC23, 'M', u'ضح'), + (0xFC24, 'M', u'ضخ'), + (0xFC25, 'M', u'ضم'), + (0xFC26, 'M', u'طح'), + (0xFC27, 'M', u'طم'), + (0xFC28, 'M', u'ظم'), + (0xFC29, 'M', u'عج'), + (0xFC2A, 'M', u'عم'), + (0xFC2B, 'M', u'غج'), + (0xFC2C, 'M', u'غم'), + (0xFC2D, 'M', u'فج'), + (0xFC2E, 'M', u'فح'), + (0xFC2F, 'M', u'فخ'), + (0xFC30, 'M', u'فم'), + (0xFC31, 'M', u'فى'), + (0xFC32, 'M', u'في'), + (0xFC33, 'M', u'قح'), + (0xFC34, 'M', u'قم'), + (0xFC35, 'M', u'قى'), + (0xFC36, 'M', u'قي'), + (0xFC37, 'M', u'كا'), + (0xFC38, 'M', u'كج'), + (0xFC39, 'M', u'كح'), + (0xFC3A, 'M', u'كخ'), + (0xFC3B, 'M', u'كل'), + (0xFC3C, 'M', u'كم'), + (0xFC3D, 'M', u'كى'), + (0xFC3E, 'M', u'كي'), + ] + +def _seg_44(): + return [ + (0xFC3F, 'M', u'لج'), + (0xFC40, 'M', u'لح'), + (0xFC41, 'M', u'لخ'), + (0xFC42, 'M', u'لم'), + (0xFC43, 'M', u'لى'), + (0xFC44, 'M', u'لي'), + (0xFC45, 'M', u'مج'), + (0xFC46, 'M', u'مح'), + (0xFC47, 'M', u'مخ'), + (0xFC48, 'M', u'مم'), + (0xFC49, 'M', u'مى'), + (0xFC4A, 'M', u'مي'), + (0xFC4B, 'M', u'نج'), + (0xFC4C, 'M', u'نح'), + (0xFC4D, 'M', u'نخ'), + (0xFC4E, 'M', u'نم'), + (0xFC4F, 'M', u'نى'), + (0xFC50, 'M', u'ني'), + (0xFC51, 'M', u'هج'), + (0xFC52, 'M', u'هم'), + (0xFC53, 'M', u'هى'), + (0xFC54, 'M', u'هي'), + (0xFC55, 'M', u'يج'), + (0xFC56, 'M', u'يح'), + (0xFC57, 'M', u'يخ'), + (0xFC58, 'M', u'يم'), + (0xFC59, 'M', u'يى'), + (0xFC5A, 'M', u'يي'), + (0xFC5B, 'M', u'ذٰ'), + (0xFC5C, 'M', u'رٰ'), + (0xFC5D, 'M', u'ىٰ'), + (0xFC5E, '3', u' ٌّ'), + (0xFC5F, '3', u' ٍّ'), + (0xFC60, '3', u' َّ'), + (0xFC61, '3', u' ُّ'), + (0xFC62, '3', u' ِّ'), + (0xFC63, '3', u' ّٰ'), + (0xFC64, 'M', u'ئر'), + (0xFC65, 'M', u'ئز'), + (0xFC66, 'M', u'ئم'), + (0xFC67, 'M', u'ئن'), + (0xFC68, 'M', u'ئى'), + (0xFC69, 'M', u'ئي'), + (0xFC6A, 'M', u'بر'), + (0xFC6B, 'M', u'بز'), + (0xFC6C, 'M', u'بم'), + (0xFC6D, 'M', u'بن'), + (0xFC6E, 'M', u'بى'), + (0xFC6F, 'M', u'بي'), + (0xFC70, 'M', u'تر'), + (0xFC71, 'M', u'تز'), + (0xFC72, 'M', u'تم'), + (0xFC73, 'M', u'تن'), + (0xFC74, 'M', u'تى'), + (0xFC75, 'M', u'تي'), + (0xFC76, 'M', u'ثر'), + (0xFC77, 'M', u'ثز'), + (0xFC78, 'M', u'ثم'), + (0xFC79, 'M', u'ثن'), + (0xFC7A, 'M', u'ثى'), + (0xFC7B, 'M', u'ثي'), + (0xFC7C, 'M', u'فى'), + (0xFC7D, 'M', u'في'), + (0xFC7E, 'M', u'قى'), + (0xFC7F, 'M', u'قي'), + (0xFC80, 'M', u'كا'), + (0xFC81, 'M', u'كل'), + (0xFC82, 'M', u'كم'), + (0xFC83, 'M', u'كى'), + (0xFC84, 'M', u'كي'), + (0xFC85, 'M', u'لم'), + (0xFC86, 'M', u'لى'), + (0xFC87, 'M', u'لي'), + (0xFC88, 'M', u'ما'), + (0xFC89, 'M', u'مم'), + (0xFC8A, 'M', u'نر'), + (0xFC8B, 'M', u'نز'), + (0xFC8C, 'M', u'نم'), + (0xFC8D, 'M', u'نن'), + (0xFC8E, 'M', u'نى'), + (0xFC8F, 'M', u'ني'), + (0xFC90, 'M', u'ىٰ'), + (0xFC91, 'M', u'ير'), + (0xFC92, 'M', u'يز'), + (0xFC93, 'M', u'يم'), + (0xFC94, 'M', u'ين'), + (0xFC95, 'M', u'يى'), + (0xFC96, 'M', u'يي'), + (0xFC97, 'M', u'ئج'), + (0xFC98, 'M', u'ئح'), + (0xFC99, 'M', u'ئخ'), + (0xFC9A, 'M', u'ئم'), + (0xFC9B, 'M', u'ئه'), + (0xFC9C, 'M', u'بج'), + (0xFC9D, 'M', u'بح'), + (0xFC9E, 'M', u'بخ'), + (0xFC9F, 'M', u'بم'), + (0xFCA0, 'M', u'به'), + (0xFCA1, 'M', u'تج'), + (0xFCA2, 'M', u'تح'), + ] + +def _seg_45(): + return [ + (0xFCA3, 'M', u'تخ'), + (0xFCA4, 'M', u'تم'), + (0xFCA5, 'M', u'ته'), + (0xFCA6, 'M', u'ثم'), + (0xFCA7, 'M', u'جح'), + (0xFCA8, 'M', u'جم'), + (0xFCA9, 'M', u'حج'), + (0xFCAA, 'M', u'حم'), + (0xFCAB, 'M', u'خج'), + (0xFCAC, 'M', u'خم'), + (0xFCAD, 'M', u'سج'), + (0xFCAE, 'M', u'سح'), + (0xFCAF, 'M', u'سخ'), + (0xFCB0, 'M', u'سم'), + (0xFCB1, 'M', u'صح'), + (0xFCB2, 'M', u'صخ'), + (0xFCB3, 'M', u'صم'), + (0xFCB4, 'M', u'ضج'), + (0xFCB5, 'M', u'ضح'), + (0xFCB6, 'M', u'ضخ'), + (0xFCB7, 'M', u'ضم'), + (0xFCB8, 'M', u'طح'), + (0xFCB9, 'M', u'ظم'), + (0xFCBA, 'M', u'عج'), + (0xFCBB, 'M', u'عم'), + (0xFCBC, 'M', u'غج'), + (0xFCBD, 'M', u'غم'), + (0xFCBE, 'M', u'فج'), + (0xFCBF, 'M', u'فح'), + (0xFCC0, 'M', u'فخ'), + (0xFCC1, 'M', u'فم'), + (0xFCC2, 'M', u'قح'), + (0xFCC3, 'M', u'قم'), + (0xFCC4, 'M', u'كج'), + (0xFCC5, 'M', u'كح'), + (0xFCC6, 'M', u'كخ'), + (0xFCC7, 'M', u'كل'), + (0xFCC8, 'M', u'كم'), + (0xFCC9, 'M', u'لج'), + (0xFCCA, 'M', u'لح'), + (0xFCCB, 'M', u'لخ'), + (0xFCCC, 'M', u'لم'), + (0xFCCD, 'M', u'له'), + (0xFCCE, 'M', u'مج'), + (0xFCCF, 'M', u'مح'), + (0xFCD0, 'M', u'مخ'), + (0xFCD1, 'M', u'مم'), + (0xFCD2, 'M', u'نج'), + (0xFCD3, 'M', u'نح'), + (0xFCD4, 'M', u'نخ'), + (0xFCD5, 'M', u'نم'), + (0xFCD6, 'M', u'نه'), + (0xFCD7, 'M', u'هج'), + (0xFCD8, 'M', u'هم'), + (0xFCD9, 'M', u'هٰ'), + (0xFCDA, 'M', u'يج'), + (0xFCDB, 'M', u'يح'), + (0xFCDC, 'M', u'يخ'), + (0xFCDD, 'M', u'يم'), + (0xFCDE, 'M', u'يه'), + (0xFCDF, 'M', u'ئم'), + (0xFCE0, 'M', u'ئه'), + (0xFCE1, 'M', u'بم'), + (0xFCE2, 'M', u'به'), + (0xFCE3, 'M', u'تم'), + (0xFCE4, 'M', u'ته'), + (0xFCE5, 'M', u'ثم'), + (0xFCE6, 'M', u'ثه'), + (0xFCE7, 'M', u'سم'), + (0xFCE8, 'M', u'سه'), + (0xFCE9, 'M', u'شم'), + (0xFCEA, 'M', u'شه'), + (0xFCEB, 'M', u'كل'), + (0xFCEC, 'M', u'كم'), + (0xFCED, 'M', u'لم'), + (0xFCEE, 'M', u'نم'), + (0xFCEF, 'M', u'نه'), + (0xFCF0, 'M', u'يم'), + (0xFCF1, 'M', u'يه'), + (0xFCF2, 'M', u'ـَّ'), + (0xFCF3, 'M', u'ـُّ'), + (0xFCF4, 'M', u'ـِّ'), + (0xFCF5, 'M', u'طى'), + (0xFCF6, 'M', u'طي'), + (0xFCF7, 'M', u'عى'), + (0xFCF8, 'M', u'عي'), + (0xFCF9, 'M', u'غى'), + (0xFCFA, 'M', u'غي'), + (0xFCFB, 'M', u'سى'), + (0xFCFC, 'M', u'سي'), + (0xFCFD, 'M', u'شى'), + (0xFCFE, 'M', u'شي'), + (0xFCFF, 'M', u'حى'), + (0xFD00, 'M', u'حي'), + (0xFD01, 'M', u'جى'), + (0xFD02, 'M', u'جي'), + (0xFD03, 'M', u'خى'), + (0xFD04, 'M', u'خي'), + (0xFD05, 'M', u'صى'), + (0xFD06, 'M', u'صي'), + ] + +def _seg_46(): + return [ + (0xFD07, 'M', u'ضى'), + (0xFD08, 'M', u'ضي'), + (0xFD09, 'M', u'شج'), + (0xFD0A, 'M', u'شح'), + (0xFD0B, 'M', u'شخ'), + (0xFD0C, 'M', u'شم'), + (0xFD0D, 'M', u'شر'), + (0xFD0E, 'M', u'سر'), + (0xFD0F, 'M', u'صر'), + (0xFD10, 'M', u'ضر'), + (0xFD11, 'M', u'طى'), + (0xFD12, 'M', u'طي'), + (0xFD13, 'M', u'عى'), + (0xFD14, 'M', u'عي'), + (0xFD15, 'M', u'غى'), + (0xFD16, 'M', u'غي'), + (0xFD17, 'M', u'سى'), + (0xFD18, 'M', u'سي'), + (0xFD19, 'M', u'شى'), + (0xFD1A, 'M', u'شي'), + (0xFD1B, 'M', u'حى'), + (0xFD1C, 'M', u'حي'), + (0xFD1D, 'M', u'جى'), + (0xFD1E, 'M', u'جي'), + (0xFD1F, 'M', u'خى'), + (0xFD20, 'M', u'خي'), + (0xFD21, 'M', u'صى'), + (0xFD22, 'M', u'صي'), + (0xFD23, 'M', u'ضى'), + (0xFD24, 'M', u'ضي'), + (0xFD25, 'M', u'شج'), + (0xFD26, 'M', u'شح'), + (0xFD27, 'M', u'شخ'), + (0xFD28, 'M', u'شم'), + (0xFD29, 'M', u'شر'), + (0xFD2A, 'M', u'سر'), + (0xFD2B, 'M', u'صر'), + (0xFD2C, 'M', u'ضر'), + (0xFD2D, 'M', u'شج'), + (0xFD2E, 'M', u'شح'), + (0xFD2F, 'M', u'شخ'), + (0xFD30, 'M', u'شم'), + (0xFD31, 'M', u'سه'), + (0xFD32, 'M', u'شه'), + (0xFD33, 'M', u'طم'), + (0xFD34, 'M', u'سج'), + (0xFD35, 'M', u'سح'), + (0xFD36, 'M', u'سخ'), + (0xFD37, 'M', u'شج'), + (0xFD38, 'M', u'شح'), + (0xFD39, 'M', u'شخ'), + (0xFD3A, 'M', u'طم'), + (0xFD3B, 'M', u'ظم'), + (0xFD3C, 'M', u'اً'), + (0xFD3E, 'V'), + (0xFD40, 'X'), + (0xFD50, 'M', u'تجم'), + (0xFD51, 'M', u'تحج'), + (0xFD53, 'M', u'تحم'), + (0xFD54, 'M', u'تخم'), + (0xFD55, 'M', u'تمج'), + (0xFD56, 'M', u'تمح'), + (0xFD57, 'M', u'تمخ'), + (0xFD58, 'M', u'جمح'), + (0xFD5A, 'M', u'حمي'), + (0xFD5B, 'M', u'حمى'), + (0xFD5C, 'M', u'سحج'), + (0xFD5D, 'M', u'سجح'), + (0xFD5E, 'M', u'سجى'), + (0xFD5F, 'M', u'سمح'), + (0xFD61, 'M', u'سمج'), + (0xFD62, 'M', u'سمم'), + (0xFD64, 'M', u'صحح'), + (0xFD66, 'M', u'صمم'), + (0xFD67, 'M', u'شحم'), + (0xFD69, 'M', u'شجي'), + (0xFD6A, 'M', u'شمخ'), + (0xFD6C, 'M', u'شمم'), + (0xFD6E, 'M', u'ضحى'), + (0xFD6F, 'M', u'ضخم'), + (0xFD71, 'M', u'طمح'), + (0xFD73, 'M', u'طمم'), + (0xFD74, 'M', u'طمي'), + (0xFD75, 'M', u'عجم'), + (0xFD76, 'M', u'عمم'), + (0xFD78, 'M', u'عمى'), + (0xFD79, 'M', u'غمم'), + (0xFD7A, 'M', u'غمي'), + (0xFD7B, 'M', u'غمى'), + (0xFD7C, 'M', u'فخم'), + (0xFD7E, 'M', u'قمح'), + (0xFD7F, 'M', u'قمم'), + (0xFD80, 'M', u'لحم'), + (0xFD81, 'M', u'لحي'), + (0xFD82, 'M', u'لحى'), + (0xFD83, 'M', u'لجج'), + (0xFD85, 'M', u'لخم'), + (0xFD87, 'M', u'لمح'), + (0xFD89, 'M', u'محج'), + (0xFD8A, 'M', u'محم'), + ] + +def _seg_47(): + return [ + (0xFD8B, 'M', u'محي'), + (0xFD8C, 'M', u'مجح'), + (0xFD8D, 'M', u'مجم'), + (0xFD8E, 'M', u'مخج'), + (0xFD8F, 'M', u'مخم'), + (0xFD90, 'X'), + (0xFD92, 'M', u'مجخ'), + (0xFD93, 'M', u'همج'), + (0xFD94, 'M', u'همم'), + (0xFD95, 'M', u'نحم'), + (0xFD96, 'M', u'نحى'), + (0xFD97, 'M', u'نجم'), + (0xFD99, 'M', u'نجى'), + (0xFD9A, 'M', u'نمي'), + (0xFD9B, 'M', u'نمى'), + (0xFD9C, 'M', u'يمم'), + (0xFD9E, 'M', u'بخي'), + (0xFD9F, 'M', u'تجي'), + (0xFDA0, 'M', u'تجى'), + (0xFDA1, 'M', u'تخي'), + (0xFDA2, 'M', u'تخى'), + (0xFDA3, 'M', u'تمي'), + (0xFDA4, 'M', u'تمى'), + (0xFDA5, 'M', u'جمي'), + (0xFDA6, 'M', u'جحى'), + (0xFDA7, 'M', u'جمى'), + (0xFDA8, 'M', u'سخى'), + (0xFDA9, 'M', u'صحي'), + (0xFDAA, 'M', u'شحي'), + (0xFDAB, 'M', u'ضحي'), + (0xFDAC, 'M', u'لجي'), + (0xFDAD, 'M', u'لمي'), + (0xFDAE, 'M', u'يحي'), + (0xFDAF, 'M', u'يجي'), + (0xFDB0, 'M', u'يمي'), + (0xFDB1, 'M', u'ممي'), + (0xFDB2, 'M', u'قمي'), + (0xFDB3, 'M', u'نحي'), + (0xFDB4, 'M', u'قمح'), + (0xFDB5, 'M', u'لحم'), + (0xFDB6, 'M', u'عمي'), + (0xFDB7, 'M', u'كمي'), + (0xFDB8, 'M', u'نجح'), + (0xFDB9, 'M', u'مخي'), + (0xFDBA, 'M', u'لجم'), + (0xFDBB, 'M', u'كمم'), + (0xFDBC, 'M', u'لجم'), + (0xFDBD, 'M', u'نجح'), + (0xFDBE, 'M', u'جحي'), + (0xFDBF, 'M', u'حجي'), + (0xFDC0, 'M', u'مجي'), + (0xFDC1, 'M', u'فمي'), + (0xFDC2, 'M', u'بحي'), + (0xFDC3, 'M', u'كمم'), + (0xFDC4, 'M', u'عجم'), + (0xFDC5, 'M', u'صمم'), + (0xFDC6, 'M', u'سخي'), + (0xFDC7, 'M', u'نجي'), + (0xFDC8, 'X'), + (0xFDF0, 'M', u'صلے'), + (0xFDF1, 'M', u'قلے'), + (0xFDF2, 'M', u'الله'), + (0xFDF3, 'M', u'اكبر'), + (0xFDF4, 'M', u'محمد'), + (0xFDF5, 'M', u'صلعم'), + (0xFDF6, 'M', u'رسول'), + (0xFDF7, 'M', u'عليه'), + (0xFDF8, 'M', u'وسلم'), + (0xFDF9, 'M', u'صلى'), + (0xFDFA, '3', u'صلى الله عليه وسلم'), + (0xFDFB, '3', u'جل جلاله'), + (0xFDFC, 'M', u'ریال'), + (0xFDFD, 'V'), + (0xFDFE, 'X'), + (0xFE00, 'I'), + (0xFE10, '3', u','), + (0xFE11, 'M', u'、'), + (0xFE12, 'X'), + (0xFE13, '3', u':'), + (0xFE14, '3', u';'), + (0xFE15, '3', u'!'), + (0xFE16, '3', u'?'), + (0xFE17, 'M', u'〖'), + (0xFE18, 'M', u'〗'), + (0xFE19, 'X'), + (0xFE20, 'V'), + (0xFE27, 'X'), + (0xFE31, 'M', u'—'), + (0xFE32, 'M', u'–'), + (0xFE33, '3', u'_'), + (0xFE35, '3', u'('), + (0xFE36, '3', u')'), + (0xFE37, '3', u'{'), + (0xFE38, '3', u'}'), + (0xFE39, 'M', u'〔'), + (0xFE3A, 'M', u'〕'), + (0xFE3B, 'M', u'【'), + (0xFE3C, 'M', u'】'), + (0xFE3D, 'M', u'《'), + (0xFE3E, 'M', u'》'), + ] + +def _seg_48(): + return [ + (0xFE3F, 'M', u'〈'), + (0xFE40, 'M', u'〉'), + (0xFE41, 'M', u'「'), + (0xFE42, 'M', u'」'), + (0xFE43, 'M', u'『'), + (0xFE44, 'M', u'』'), + (0xFE45, 'V'), + (0xFE47, '3', u'['), + (0xFE48, '3', u']'), + (0xFE49, '3', u' ̅'), + (0xFE4D, '3', u'_'), + (0xFE50, '3', u','), + (0xFE51, 'M', u'、'), + (0xFE52, 'X'), + (0xFE54, '3', u';'), + (0xFE55, '3', u':'), + (0xFE56, '3', u'?'), + (0xFE57, '3', u'!'), + (0xFE58, 'M', u'—'), + (0xFE59, '3', u'('), + (0xFE5A, '3', u')'), + (0xFE5B, '3', u'{'), + (0xFE5C, '3', u'}'), + (0xFE5D, 'M', u'〔'), + (0xFE5E, 'M', u'〕'), + (0xFE5F, '3', u'#'), + (0xFE60, '3', u'&'), + (0xFE61, '3', u'*'), + (0xFE62, '3', u'+'), + (0xFE63, 'M', u'-'), + (0xFE64, '3', u'<'), + (0xFE65, '3', u'>'), + (0xFE66, '3', u'='), + (0xFE67, 'X'), + (0xFE68, '3', u'\\'), + (0xFE69, '3', u'$'), + (0xFE6A, '3', u'%'), + (0xFE6B, '3', u'@'), + (0xFE6C, 'X'), + (0xFE70, '3', u' ً'), + (0xFE71, 'M', u'ـً'), + (0xFE72, '3', u' ٌ'), + (0xFE73, 'V'), + (0xFE74, '3', u' ٍ'), + (0xFE75, 'X'), + (0xFE76, '3', u' َ'), + (0xFE77, 'M', u'ـَ'), + (0xFE78, '3', u' ُ'), + (0xFE79, 'M', u'ـُ'), + (0xFE7A, '3', u' ِ'), + (0xFE7B, 'M', u'ـِ'), + (0xFE7C, '3', u' ّ'), + (0xFE7D, 'M', u'ـّ'), + (0xFE7E, '3', u' ْ'), + (0xFE7F, 'M', u'ـْ'), + (0xFE80, 'M', u'ء'), + (0xFE81, 'M', u'آ'), + (0xFE83, 'M', u'أ'), + (0xFE85, 'M', u'ؤ'), + (0xFE87, 'M', u'إ'), + (0xFE89, 'M', u'ئ'), + (0xFE8D, 'M', u'ا'), + (0xFE8F, 'M', u'ب'), + (0xFE93, 'M', u'ة'), + (0xFE95, 'M', u'ت'), + (0xFE99, 'M', u'ث'), + (0xFE9D, 'M', u'ج'), + (0xFEA1, 'M', u'ح'), + (0xFEA5, 'M', u'خ'), + (0xFEA9, 'M', u'د'), + (0xFEAB, 'M', u'ذ'), + (0xFEAD, 'M', u'ر'), + (0xFEAF, 'M', u'ز'), + (0xFEB1, 'M', u'س'), + (0xFEB5, 'M', u'ش'), + (0xFEB9, 'M', u'ص'), + (0xFEBD, 'M', u'ض'), + (0xFEC1, 'M', u'ط'), + (0xFEC5, 'M', u'ظ'), + (0xFEC9, 'M', u'ع'), + (0xFECD, 'M', u'غ'), + (0xFED1, 'M', u'ف'), + (0xFED5, 'M', u'ق'), + (0xFED9, 'M', u'ك'), + (0xFEDD, 'M', u'ل'), + (0xFEE1, 'M', u'م'), + (0xFEE5, 'M', u'ن'), + (0xFEE9, 'M', u'ه'), + (0xFEED, 'M', u'و'), + (0xFEEF, 'M', u'ى'), + (0xFEF1, 'M', u'ي'), + (0xFEF5, 'M', u'لآ'), + (0xFEF7, 'M', u'لأ'), + (0xFEF9, 'M', u'لإ'), + (0xFEFB, 'M', u'لا'), + (0xFEFD, 'X'), + (0xFEFF, 'I'), + (0xFF00, 'X'), + (0xFF01, '3', u'!'), + (0xFF02, '3', u'"'), + ] + +def _seg_49(): + return [ + (0xFF03, '3', u'#'), + (0xFF04, '3', u'$'), + (0xFF05, '3', u'%'), + (0xFF06, '3', u'&'), + (0xFF07, '3', u'\''), + (0xFF08, '3', u'('), + (0xFF09, '3', u')'), + (0xFF0A, '3', u'*'), + (0xFF0B, '3', u'+'), + (0xFF0C, '3', u','), + (0xFF0D, 'M', u'-'), + (0xFF0E, 'M', u'.'), + (0xFF0F, '3', u'/'), + (0xFF10, 'M', u'0'), + (0xFF11, 'M', u'1'), + (0xFF12, 'M', u'2'), + (0xFF13, 'M', u'3'), + (0xFF14, 'M', u'4'), + (0xFF15, 'M', u'5'), + (0xFF16, 'M', u'6'), + (0xFF17, 'M', u'7'), + (0xFF18, 'M', u'8'), + (0xFF19, 'M', u'9'), + (0xFF1A, '3', u':'), + (0xFF1B, '3', u';'), + (0xFF1C, '3', u'<'), + (0xFF1D, '3', u'='), + (0xFF1E, '3', u'>'), + (0xFF1F, '3', u'?'), + (0xFF20, '3', u'@'), + (0xFF21, 'M', u'a'), + (0xFF22, 'M', u'b'), + (0xFF23, 'M', u'c'), + (0xFF24, 'M', u'd'), + (0xFF25, 'M', u'e'), + (0xFF26, 'M', u'f'), + (0xFF27, 'M', u'g'), + (0xFF28, 'M', u'h'), + (0xFF29, 'M', u'i'), + (0xFF2A, 'M', u'j'), + (0xFF2B, 'M', u'k'), + (0xFF2C, 'M', u'l'), + (0xFF2D, 'M', u'm'), + (0xFF2E, 'M', u'n'), + (0xFF2F, 'M', u'o'), + (0xFF30, 'M', u'p'), + (0xFF31, 'M', u'q'), + (0xFF32, 'M', u'r'), + (0xFF33, 'M', u's'), + (0xFF34, 'M', u't'), + (0xFF35, 'M', u'u'), + (0xFF36, 'M', u'v'), + (0xFF37, 'M', u'w'), + (0xFF38, 'M', u'x'), + (0xFF39, 'M', u'y'), + (0xFF3A, 'M', u'z'), + (0xFF3B, '3', u'['), + (0xFF3C, '3', u'\\'), + (0xFF3D, '3', u']'), + (0xFF3E, '3', u'^'), + (0xFF3F, '3', u'_'), + (0xFF40, '3', u'`'), + (0xFF41, 'M', u'a'), + (0xFF42, 'M', u'b'), + (0xFF43, 'M', u'c'), + (0xFF44, 'M', u'd'), + (0xFF45, 'M', u'e'), + (0xFF46, 'M', u'f'), + (0xFF47, 'M', u'g'), + (0xFF48, 'M', u'h'), + (0xFF49, 'M', u'i'), + (0xFF4A, 'M', u'j'), + (0xFF4B, 'M', u'k'), + (0xFF4C, 'M', u'l'), + (0xFF4D, 'M', u'm'), + (0xFF4E, 'M', u'n'), + (0xFF4F, 'M', u'o'), + (0xFF50, 'M', u'p'), + (0xFF51, 'M', u'q'), + (0xFF52, 'M', u'r'), + (0xFF53, 'M', u's'), + (0xFF54, 'M', u't'), + (0xFF55, 'M', u'u'), + (0xFF56, 'M', u'v'), + (0xFF57, 'M', u'w'), + (0xFF58, 'M', u'x'), + (0xFF59, 'M', u'y'), + (0xFF5A, 'M', u'z'), + (0xFF5B, '3', u'{'), + (0xFF5C, '3', u'|'), + (0xFF5D, '3', u'}'), + (0xFF5E, '3', u'~'), + (0xFF5F, 'M', u'⦅'), + (0xFF60, 'M', u'⦆'), + (0xFF61, 'M', u'.'), + (0xFF62, 'M', u'「'), + (0xFF63, 'M', u'」'), + (0xFF64, 'M', u'、'), + (0xFF65, 'M', u'・'), + (0xFF66, 'M', u'ヲ'), + ] + +def _seg_50(): + return [ + (0xFF67, 'M', u'ァ'), + (0xFF68, 'M', u'ィ'), + (0xFF69, 'M', u'ゥ'), + (0xFF6A, 'M', u'ェ'), + (0xFF6B, 'M', u'ォ'), + (0xFF6C, 'M', u'ャ'), + (0xFF6D, 'M', u'ュ'), + (0xFF6E, 'M', u'ョ'), + (0xFF6F, 'M', u'ッ'), + (0xFF70, 'M', u'ー'), + (0xFF71, 'M', u'ア'), + (0xFF72, 'M', u'イ'), + (0xFF73, 'M', u'ウ'), + (0xFF74, 'M', u'エ'), + (0xFF75, 'M', u'オ'), + (0xFF76, 'M', u'カ'), + (0xFF77, 'M', u'キ'), + (0xFF78, 'M', u'ク'), + (0xFF79, 'M', u'ケ'), + (0xFF7A, 'M', u'コ'), + (0xFF7B, 'M', u'サ'), + (0xFF7C, 'M', u'シ'), + (0xFF7D, 'M', u'ス'), + (0xFF7E, 'M', u'セ'), + (0xFF7F, 'M', u'ソ'), + (0xFF80, 'M', u'タ'), + (0xFF81, 'M', u'チ'), + (0xFF82, 'M', u'ツ'), + (0xFF83, 'M', u'テ'), + (0xFF84, 'M', u'ト'), + (0xFF85, 'M', u'ナ'), + (0xFF86, 'M', u'ニ'), + (0xFF87, 'M', u'ヌ'), + (0xFF88, 'M', u'ネ'), + (0xFF89, 'M', u'ノ'), + (0xFF8A, 'M', u'ハ'), + (0xFF8B, 'M', u'ヒ'), + (0xFF8C, 'M', u'フ'), + (0xFF8D, 'M', u'ヘ'), + (0xFF8E, 'M', u'ホ'), + (0xFF8F, 'M', u'マ'), + (0xFF90, 'M', u'ミ'), + (0xFF91, 'M', u'ム'), + (0xFF92, 'M', u'メ'), + (0xFF93, 'M', u'モ'), + (0xFF94, 'M', u'ヤ'), + (0xFF95, 'M', u'ユ'), + (0xFF96, 'M', u'ヨ'), + (0xFF97, 'M', u'ラ'), + (0xFF98, 'M', u'リ'), + (0xFF99, 'M', u'ル'), + (0xFF9A, 'M', u'レ'), + (0xFF9B, 'M', u'ロ'), + (0xFF9C, 'M', u'ワ'), + (0xFF9D, 'M', u'ン'), + (0xFF9E, 'M', u'゙'), + (0xFF9F, 'M', u'゚'), + (0xFFA0, 'X'), + (0xFFA1, 'M', u'ᄀ'), + (0xFFA2, 'M', u'ᄁ'), + (0xFFA3, 'M', u'ᆪ'), + (0xFFA4, 'M', u'ᄂ'), + (0xFFA5, 'M', u'ᆬ'), + (0xFFA6, 'M', u'ᆭ'), + (0xFFA7, 'M', u'ᄃ'), + (0xFFA8, 'M', u'ᄄ'), + (0xFFA9, 'M', u'ᄅ'), + (0xFFAA, 'M', u'ᆰ'), + (0xFFAB, 'M', u'ᆱ'), + (0xFFAC, 'M', u'ᆲ'), + (0xFFAD, 'M', u'ᆳ'), + (0xFFAE, 'M', u'ᆴ'), + (0xFFAF, 'M', u'ᆵ'), + (0xFFB0, 'M', u'ᄚ'), + (0xFFB1, 'M', u'ᄆ'), + (0xFFB2, 'M', u'ᄇ'), + (0xFFB3, 'M', u'ᄈ'), + (0xFFB4, 'M', u'ᄡ'), + (0xFFB5, 'M', u'ᄉ'), + (0xFFB6, 'M', u'ᄊ'), + (0xFFB7, 'M', u'ᄋ'), + (0xFFB8, 'M', u'ᄌ'), + (0xFFB9, 'M', u'ᄍ'), + (0xFFBA, 'M', u'ᄎ'), + (0xFFBB, 'M', u'ᄏ'), + (0xFFBC, 'M', u'ᄐ'), + (0xFFBD, 'M', u'ᄑ'), + (0xFFBE, 'M', u'ᄒ'), + (0xFFBF, 'X'), + (0xFFC2, 'M', u'ᅡ'), + (0xFFC3, 'M', u'ᅢ'), + (0xFFC4, 'M', u'ᅣ'), + (0xFFC5, 'M', u'ᅤ'), + (0xFFC6, 'M', u'ᅥ'), + (0xFFC7, 'M', u'ᅦ'), + (0xFFC8, 'X'), + (0xFFCA, 'M', u'ᅧ'), + (0xFFCB, 'M', u'ᅨ'), + (0xFFCC, 'M', u'ᅩ'), + (0xFFCD, 'M', u'ᅪ'), + ] + +def _seg_51(): + return [ + (0xFFCE, 'M', u'ᅫ'), + (0xFFCF, 'M', u'ᅬ'), + (0xFFD0, 'X'), + (0xFFD2, 'M', u'ᅭ'), + (0xFFD3, 'M', u'ᅮ'), + (0xFFD4, 'M', u'ᅯ'), + (0xFFD5, 'M', u'ᅰ'), + (0xFFD6, 'M', u'ᅱ'), + (0xFFD7, 'M', u'ᅲ'), + (0xFFD8, 'X'), + (0xFFDA, 'M', u'ᅳ'), + (0xFFDB, 'M', u'ᅴ'), + (0xFFDC, 'M', u'ᅵ'), + (0xFFDD, 'X'), + (0xFFE0, 'M', u'¢'), + (0xFFE1, 'M', u'£'), + (0xFFE2, 'M', u'¬'), + (0xFFE3, '3', u' ̄'), + (0xFFE4, 'M', u'¦'), + (0xFFE5, 'M', u'¥'), + (0xFFE6, 'M', u'₩'), + (0xFFE7, 'X'), + (0xFFE8, 'M', u'│'), + (0xFFE9, 'M', u'←'), + (0xFFEA, 'M', u'↑'), + (0xFFEB, 'M', u'→'), + (0xFFEC, 'M', u'↓'), + (0xFFED, 'M', u'■'), + (0xFFEE, 'M', u'○'), + (0xFFEF, 'X'), + (0x10000, 'V'), + (0x1000C, 'X'), + (0x1000D, 'V'), + (0x10027, 'X'), + (0x10028, 'V'), + (0x1003B, 'X'), + (0x1003C, 'V'), + (0x1003E, 'X'), + (0x1003F, 'V'), + (0x1004E, 'X'), + (0x10050, 'V'), + (0x1005E, 'X'), + (0x10080, 'V'), + (0x100FB, 'X'), + (0x10100, 'V'), + (0x10103, 'X'), + (0x10107, 'V'), + (0x10134, 'X'), + (0x10137, 'V'), + (0x1018B, 'X'), + (0x10190, 'V'), + (0x1019C, 'X'), + (0x101D0, 'V'), + (0x101FE, 'X'), + (0x10280, 'V'), + (0x1029D, 'X'), + (0x102A0, 'V'), + (0x102D1, 'X'), + (0x10300, 'V'), + (0x1031F, 'X'), + (0x10320, 'V'), + (0x10324, 'X'), + (0x10330, 'V'), + (0x1034B, 'X'), + (0x10380, 'V'), + (0x1039E, 'X'), + (0x1039F, 'V'), + (0x103C4, 'X'), + (0x103C8, 'V'), + (0x103D6, 'X'), + (0x10400, 'M', u'𐐨'), + (0x10401, 'M', u'𐐩'), + (0x10402, 'M', u'𐐪'), + (0x10403, 'M', u'𐐫'), + (0x10404, 'M', u'𐐬'), + (0x10405, 'M', u'𐐭'), + (0x10406, 'M', u'𐐮'), + (0x10407, 'M', u'𐐯'), + (0x10408, 'M', u'𐐰'), + (0x10409, 'M', u'𐐱'), + (0x1040A, 'M', u'𐐲'), + (0x1040B, 'M', u'𐐳'), + (0x1040C, 'M', u'𐐴'), + (0x1040D, 'M', u'𐐵'), + (0x1040E, 'M', u'𐐶'), + (0x1040F, 'M', u'𐐷'), + (0x10410, 'M', u'𐐸'), + (0x10411, 'M', u'𐐹'), + (0x10412, 'M', u'𐐺'), + (0x10413, 'M', u'𐐻'), + (0x10414, 'M', u'𐐼'), + (0x10415, 'M', u'𐐽'), + (0x10416, 'M', u'𐐾'), + (0x10417, 'M', u'𐐿'), + (0x10418, 'M', u'𐑀'), + (0x10419, 'M', u'𐑁'), + (0x1041A, 'M', u'𐑂'), + (0x1041B, 'M', u'𐑃'), + (0x1041C, 'M', u'𐑄'), + (0x1041D, 'M', u'𐑅'), + ] + +def _seg_52(): + return [ + (0x1041E, 'M', u'𐑆'), + (0x1041F, 'M', u'𐑇'), + (0x10420, 'M', u'𐑈'), + (0x10421, 'M', u'𐑉'), + (0x10422, 'M', u'𐑊'), + (0x10423, 'M', u'𐑋'), + (0x10424, 'M', u'𐑌'), + (0x10425, 'M', u'𐑍'), + (0x10426, 'M', u'𐑎'), + (0x10427, 'M', u'𐑏'), + (0x10428, 'V'), + (0x1049E, 'X'), + (0x104A0, 'V'), + (0x104AA, 'X'), + (0x10800, 'V'), + (0x10806, 'X'), + (0x10808, 'V'), + (0x10809, 'X'), + (0x1080A, 'V'), + (0x10836, 'X'), + (0x10837, 'V'), + (0x10839, 'X'), + (0x1083C, 'V'), + (0x1083D, 'X'), + (0x1083F, 'V'), + (0x10856, 'X'), + (0x10857, 'V'), + (0x10860, 'X'), + (0x10900, 'V'), + (0x1091C, 'X'), + (0x1091F, 'V'), + (0x1093A, 'X'), + (0x1093F, 'V'), + (0x10940, 'X'), + (0x10980, 'V'), + (0x109B8, 'X'), + (0x109BE, 'V'), + (0x109C0, 'X'), + (0x10A00, 'V'), + (0x10A04, 'X'), + (0x10A05, 'V'), + (0x10A07, 'X'), + (0x10A0C, 'V'), + (0x10A14, 'X'), + (0x10A15, 'V'), + (0x10A18, 'X'), + (0x10A19, 'V'), + (0x10A34, 'X'), + (0x10A38, 'V'), + (0x10A3B, 'X'), + (0x10A3F, 'V'), + (0x10A48, 'X'), + (0x10A50, 'V'), + (0x10A59, 'X'), + (0x10A60, 'V'), + (0x10A80, 'X'), + (0x10B00, 'V'), + (0x10B36, 'X'), + (0x10B39, 'V'), + (0x10B56, 'X'), + (0x10B58, 'V'), + (0x10B73, 'X'), + (0x10B78, 'V'), + (0x10B80, 'X'), + (0x10C00, 'V'), + (0x10C49, 'X'), + (0x10E60, 'V'), + (0x10E7F, 'X'), + (0x11000, 'V'), + (0x1104E, 'X'), + (0x11052, 'V'), + (0x11070, 'X'), + (0x11080, 'V'), + (0x110BD, 'X'), + (0x110BE, 'V'), + (0x110C2, 'X'), + (0x110D0, 'V'), + (0x110E9, 'X'), + (0x110F0, 'V'), + (0x110FA, 'X'), + (0x11100, 'V'), + (0x11135, 'X'), + (0x11136, 'V'), + (0x11144, 'X'), + (0x11180, 'V'), + (0x111C9, 'X'), + (0x111D0, 'V'), + (0x111DA, 'X'), + (0x11680, 'V'), + (0x116B8, 'X'), + (0x116C0, 'V'), + (0x116CA, 'X'), + (0x12000, 'V'), + (0x1236F, 'X'), + (0x12400, 'V'), + (0x12463, 'X'), + (0x12470, 'V'), + (0x12474, 'X'), + (0x13000, 'V'), + (0x1342F, 'X'), + ] + +def _seg_53(): + return [ + (0x16800, 'V'), + (0x16A39, 'X'), + (0x16F00, 'V'), + (0x16F45, 'X'), + (0x16F50, 'V'), + (0x16F7F, 'X'), + (0x16F8F, 'V'), + (0x16FA0, 'X'), + (0x1B000, 'V'), + (0x1B002, 'X'), + (0x1D000, 'V'), + (0x1D0F6, 'X'), + (0x1D100, 'V'), + (0x1D127, 'X'), + (0x1D129, 'V'), + (0x1D15E, 'M', u'𝅗𝅥'), + (0x1D15F, 'M', u'𝅘𝅥'), + (0x1D160, 'M', u'𝅘𝅥𝅮'), + (0x1D161, 'M', u'𝅘𝅥𝅯'), + (0x1D162, 'M', u'𝅘𝅥𝅰'), + (0x1D163, 'M', u'𝅘𝅥𝅱'), + (0x1D164, 'M', u'𝅘𝅥𝅲'), + (0x1D165, 'V'), + (0x1D173, 'X'), + (0x1D17B, 'V'), + (0x1D1BB, 'M', u'𝆹𝅥'), + (0x1D1BC, 'M', u'𝆺𝅥'), + (0x1D1BD, 'M', u'𝆹𝅥𝅮'), + (0x1D1BE, 'M', u'𝆺𝅥𝅮'), + (0x1D1BF, 'M', u'𝆹𝅥𝅯'), + (0x1D1C0, 'M', u'𝆺𝅥𝅯'), + (0x1D1C1, 'V'), + (0x1D1DE, 'X'), + (0x1D200, 'V'), + (0x1D246, 'X'), + (0x1D300, 'V'), + (0x1D357, 'X'), + (0x1D360, 'V'), + (0x1D372, 'X'), + (0x1D400, 'M', u'a'), + (0x1D401, 'M', u'b'), + (0x1D402, 'M', u'c'), + (0x1D403, 'M', u'd'), + (0x1D404, 'M', u'e'), + (0x1D405, 'M', u'f'), + (0x1D406, 'M', u'g'), + (0x1D407, 'M', u'h'), + (0x1D408, 'M', u'i'), + (0x1D409, 'M', u'j'), + (0x1D40A, 'M', u'k'), + (0x1D40B, 'M', u'l'), + (0x1D40C, 'M', u'm'), + (0x1D40D, 'M', u'n'), + (0x1D40E, 'M', u'o'), + (0x1D40F, 'M', u'p'), + (0x1D410, 'M', u'q'), + (0x1D411, 'M', u'r'), + (0x1D412, 'M', u's'), + (0x1D413, 'M', u't'), + (0x1D414, 'M', u'u'), + (0x1D415, 'M', u'v'), + (0x1D416, 'M', u'w'), + (0x1D417, 'M', u'x'), + (0x1D418, 'M', u'y'), + (0x1D419, 'M', u'z'), + (0x1D41A, 'M', u'a'), + (0x1D41B, 'M', u'b'), + (0x1D41C, 'M', u'c'), + (0x1D41D, 'M', u'd'), + (0x1D41E, 'M', u'e'), + (0x1D41F, 'M', u'f'), + (0x1D420, 'M', u'g'), + (0x1D421, 'M', u'h'), + (0x1D422, 'M', u'i'), + (0x1D423, 'M', u'j'), + (0x1D424, 'M', u'k'), + (0x1D425, 'M', u'l'), + (0x1D426, 'M', u'm'), + (0x1D427, 'M', u'n'), + (0x1D428, 'M', u'o'), + (0x1D429, 'M', u'p'), + (0x1D42A, 'M', u'q'), + (0x1D42B, 'M', u'r'), + (0x1D42C, 'M', u's'), + (0x1D42D, 'M', u't'), + (0x1D42E, 'M', u'u'), + (0x1D42F, 'M', u'v'), + (0x1D430, 'M', u'w'), + (0x1D431, 'M', u'x'), + (0x1D432, 'M', u'y'), + (0x1D433, 'M', u'z'), + (0x1D434, 'M', u'a'), + (0x1D435, 'M', u'b'), + (0x1D436, 'M', u'c'), + (0x1D437, 'M', u'd'), + (0x1D438, 'M', u'e'), + (0x1D439, 'M', u'f'), + (0x1D43A, 'M', u'g'), + (0x1D43B, 'M', u'h'), + (0x1D43C, 'M', u'i'), + ] + +def _seg_54(): + return [ + (0x1D43D, 'M', u'j'), + (0x1D43E, 'M', u'k'), + (0x1D43F, 'M', u'l'), + (0x1D440, 'M', u'm'), + (0x1D441, 'M', u'n'), + (0x1D442, 'M', u'o'), + (0x1D443, 'M', u'p'), + (0x1D444, 'M', u'q'), + (0x1D445, 'M', u'r'), + (0x1D446, 'M', u's'), + (0x1D447, 'M', u't'), + (0x1D448, 'M', u'u'), + (0x1D449, 'M', u'v'), + (0x1D44A, 'M', u'w'), + (0x1D44B, 'M', u'x'), + (0x1D44C, 'M', u'y'), + (0x1D44D, 'M', u'z'), + (0x1D44E, 'M', u'a'), + (0x1D44F, 'M', u'b'), + (0x1D450, 'M', u'c'), + (0x1D451, 'M', u'd'), + (0x1D452, 'M', u'e'), + (0x1D453, 'M', u'f'), + (0x1D454, 'M', u'g'), + (0x1D455, 'X'), + (0x1D456, 'M', u'i'), + (0x1D457, 'M', u'j'), + (0x1D458, 'M', u'k'), + (0x1D459, 'M', u'l'), + (0x1D45A, 'M', u'm'), + (0x1D45B, 'M', u'n'), + (0x1D45C, 'M', u'o'), + (0x1D45D, 'M', u'p'), + (0x1D45E, 'M', u'q'), + (0x1D45F, 'M', u'r'), + (0x1D460, 'M', u's'), + (0x1D461, 'M', u't'), + (0x1D462, 'M', u'u'), + (0x1D463, 'M', u'v'), + (0x1D464, 'M', u'w'), + (0x1D465, 'M', u'x'), + (0x1D466, 'M', u'y'), + (0x1D467, 'M', u'z'), + (0x1D468, 'M', u'a'), + (0x1D469, 'M', u'b'), + (0x1D46A, 'M', u'c'), + (0x1D46B, 'M', u'd'), + (0x1D46C, 'M', u'e'), + (0x1D46D, 'M', u'f'), + (0x1D46E, 'M', u'g'), + (0x1D46F, 'M', u'h'), + (0x1D470, 'M', u'i'), + (0x1D471, 'M', u'j'), + (0x1D472, 'M', u'k'), + (0x1D473, 'M', u'l'), + (0x1D474, 'M', u'm'), + (0x1D475, 'M', u'n'), + (0x1D476, 'M', u'o'), + (0x1D477, 'M', u'p'), + (0x1D478, 'M', u'q'), + (0x1D479, 'M', u'r'), + (0x1D47A, 'M', u's'), + (0x1D47B, 'M', u't'), + (0x1D47C, 'M', u'u'), + (0x1D47D, 'M', u'v'), + (0x1D47E, 'M', u'w'), + (0x1D47F, 'M', u'x'), + (0x1D480, 'M', u'y'), + (0x1D481, 'M', u'z'), + (0x1D482, 'M', u'a'), + (0x1D483, 'M', u'b'), + (0x1D484, 'M', u'c'), + (0x1D485, 'M', u'd'), + (0x1D486, 'M', u'e'), + (0x1D487, 'M', u'f'), + (0x1D488, 'M', u'g'), + (0x1D489, 'M', u'h'), + (0x1D48A, 'M', u'i'), + (0x1D48B, 'M', u'j'), + (0x1D48C, 'M', u'k'), + (0x1D48D, 'M', u'l'), + (0x1D48E, 'M', u'm'), + (0x1D48F, 'M', u'n'), + (0x1D490, 'M', u'o'), + (0x1D491, 'M', u'p'), + (0x1D492, 'M', u'q'), + (0x1D493, 'M', u'r'), + (0x1D494, 'M', u's'), + (0x1D495, 'M', u't'), + (0x1D496, 'M', u'u'), + (0x1D497, 'M', u'v'), + (0x1D498, 'M', u'w'), + (0x1D499, 'M', u'x'), + (0x1D49A, 'M', u'y'), + (0x1D49B, 'M', u'z'), + (0x1D49C, 'M', u'a'), + (0x1D49D, 'X'), + (0x1D49E, 'M', u'c'), + (0x1D49F, 'M', u'd'), + (0x1D4A0, 'X'), + ] + +def _seg_55(): + return [ + (0x1D4A2, 'M', u'g'), + (0x1D4A3, 'X'), + (0x1D4A5, 'M', u'j'), + (0x1D4A6, 'M', u'k'), + (0x1D4A7, 'X'), + (0x1D4A9, 'M', u'n'), + (0x1D4AA, 'M', u'o'), + (0x1D4AB, 'M', u'p'), + (0x1D4AC, 'M', u'q'), + (0x1D4AD, 'X'), + (0x1D4AE, 'M', u's'), + (0x1D4AF, 'M', u't'), + (0x1D4B0, 'M', u'u'), + (0x1D4B1, 'M', u'v'), + (0x1D4B2, 'M', u'w'), + (0x1D4B3, 'M', u'x'), + (0x1D4B4, 'M', u'y'), + (0x1D4B5, 'M', u'z'), + (0x1D4B6, 'M', u'a'), + (0x1D4B7, 'M', u'b'), + (0x1D4B8, 'M', u'c'), + (0x1D4B9, 'M', u'd'), + (0x1D4BA, 'X'), + (0x1D4BB, 'M', u'f'), + (0x1D4BC, 'X'), + (0x1D4BD, 'M', u'h'), + (0x1D4BE, 'M', u'i'), + (0x1D4BF, 'M', u'j'), + (0x1D4C0, 'M', u'k'), + (0x1D4C1, 'M', u'l'), + (0x1D4C2, 'M', u'm'), + (0x1D4C3, 'M', u'n'), + (0x1D4C4, 'X'), + (0x1D4C5, 'M', u'p'), + (0x1D4C6, 'M', u'q'), + (0x1D4C7, 'M', u'r'), + (0x1D4C8, 'M', u's'), + (0x1D4C9, 'M', u't'), + (0x1D4CA, 'M', u'u'), + (0x1D4CB, 'M', u'v'), + (0x1D4CC, 'M', u'w'), + (0x1D4CD, 'M', u'x'), + (0x1D4CE, 'M', u'y'), + (0x1D4CF, 'M', u'z'), + (0x1D4D0, 'M', u'a'), + (0x1D4D1, 'M', u'b'), + (0x1D4D2, 'M', u'c'), + (0x1D4D3, 'M', u'd'), + (0x1D4D4, 'M', u'e'), + (0x1D4D5, 'M', u'f'), + (0x1D4D6, 'M', u'g'), + (0x1D4D7, 'M', u'h'), + (0x1D4D8, 'M', u'i'), + (0x1D4D9, 'M', u'j'), + (0x1D4DA, 'M', u'k'), + (0x1D4DB, 'M', u'l'), + (0x1D4DC, 'M', u'm'), + (0x1D4DD, 'M', u'n'), + (0x1D4DE, 'M', u'o'), + (0x1D4DF, 'M', u'p'), + (0x1D4E0, 'M', u'q'), + (0x1D4E1, 'M', u'r'), + (0x1D4E2, 'M', u's'), + (0x1D4E3, 'M', u't'), + (0x1D4E4, 'M', u'u'), + (0x1D4E5, 'M', u'v'), + (0x1D4E6, 'M', u'w'), + (0x1D4E7, 'M', u'x'), + (0x1D4E8, 'M', u'y'), + (0x1D4E9, 'M', u'z'), + (0x1D4EA, 'M', u'a'), + (0x1D4EB, 'M', u'b'), + (0x1D4EC, 'M', u'c'), + (0x1D4ED, 'M', u'd'), + (0x1D4EE, 'M', u'e'), + (0x1D4EF, 'M', u'f'), + (0x1D4F0, 'M', u'g'), + (0x1D4F1, 'M', u'h'), + (0x1D4F2, 'M', u'i'), + (0x1D4F3, 'M', u'j'), + (0x1D4F4, 'M', u'k'), + (0x1D4F5, 'M', u'l'), + (0x1D4F6, 'M', u'm'), + (0x1D4F7, 'M', u'n'), + (0x1D4F8, 'M', u'o'), + (0x1D4F9, 'M', u'p'), + (0x1D4FA, 'M', u'q'), + (0x1D4FB, 'M', u'r'), + (0x1D4FC, 'M', u's'), + (0x1D4FD, 'M', u't'), + (0x1D4FE, 'M', u'u'), + (0x1D4FF, 'M', u'v'), + (0x1D500, 'M', u'w'), + (0x1D501, 'M', u'x'), + (0x1D502, 'M', u'y'), + (0x1D503, 'M', u'z'), + (0x1D504, 'M', u'a'), + (0x1D505, 'M', u'b'), + (0x1D506, 'X'), + (0x1D507, 'M', u'd'), + ] + +def _seg_56(): + return [ + (0x1D508, 'M', u'e'), + (0x1D509, 'M', u'f'), + (0x1D50A, 'M', u'g'), + (0x1D50B, 'X'), + (0x1D50D, 'M', u'j'), + (0x1D50E, 'M', u'k'), + (0x1D50F, 'M', u'l'), + (0x1D510, 'M', u'm'), + (0x1D511, 'M', u'n'), + (0x1D512, 'M', u'o'), + (0x1D513, 'M', u'p'), + (0x1D514, 'M', u'q'), + (0x1D515, 'X'), + (0x1D516, 'M', u's'), + (0x1D517, 'M', u't'), + (0x1D518, 'M', u'u'), + (0x1D519, 'M', u'v'), + (0x1D51A, 'M', u'w'), + (0x1D51B, 'M', u'x'), + (0x1D51C, 'M', u'y'), + (0x1D51D, 'X'), + (0x1D51E, 'M', u'a'), + (0x1D51F, 'M', u'b'), + (0x1D520, 'M', u'c'), + (0x1D521, 'M', u'd'), + (0x1D522, 'M', u'e'), + (0x1D523, 'M', u'f'), + (0x1D524, 'M', u'g'), + (0x1D525, 'M', u'h'), + (0x1D526, 'M', u'i'), + (0x1D527, 'M', u'j'), + (0x1D528, 'M', u'k'), + (0x1D529, 'M', u'l'), + (0x1D52A, 'M', u'm'), + (0x1D52B, 'M', u'n'), + (0x1D52C, 'M', u'o'), + (0x1D52D, 'M', u'p'), + (0x1D52E, 'M', u'q'), + (0x1D52F, 'M', u'r'), + (0x1D530, 'M', u's'), + (0x1D531, 'M', u't'), + (0x1D532, 'M', u'u'), + (0x1D533, 'M', u'v'), + (0x1D534, 'M', u'w'), + (0x1D535, 'M', u'x'), + (0x1D536, 'M', u'y'), + (0x1D537, 'M', u'z'), + (0x1D538, 'M', u'a'), + (0x1D539, 'M', u'b'), + (0x1D53A, 'X'), + (0x1D53B, 'M', u'd'), + (0x1D53C, 'M', u'e'), + (0x1D53D, 'M', u'f'), + (0x1D53E, 'M', u'g'), + (0x1D53F, 'X'), + (0x1D540, 'M', u'i'), + (0x1D541, 'M', u'j'), + (0x1D542, 'M', u'k'), + (0x1D543, 'M', u'l'), + (0x1D544, 'M', u'm'), + (0x1D545, 'X'), + (0x1D546, 'M', u'o'), + (0x1D547, 'X'), + (0x1D54A, 'M', u's'), + (0x1D54B, 'M', u't'), + (0x1D54C, 'M', u'u'), + (0x1D54D, 'M', u'v'), + (0x1D54E, 'M', u'w'), + (0x1D54F, 'M', u'x'), + (0x1D550, 'M', u'y'), + (0x1D551, 'X'), + (0x1D552, 'M', u'a'), + (0x1D553, 'M', u'b'), + (0x1D554, 'M', u'c'), + (0x1D555, 'M', u'd'), + (0x1D556, 'M', u'e'), + (0x1D557, 'M', u'f'), + (0x1D558, 'M', u'g'), + (0x1D559, 'M', u'h'), + (0x1D55A, 'M', u'i'), + (0x1D55B, 'M', u'j'), + (0x1D55C, 'M', u'k'), + (0x1D55D, 'M', u'l'), + (0x1D55E, 'M', u'm'), + (0x1D55F, 'M', u'n'), + (0x1D560, 'M', u'o'), + (0x1D561, 'M', u'p'), + (0x1D562, 'M', u'q'), + (0x1D563, 'M', u'r'), + (0x1D564, 'M', u's'), + (0x1D565, 'M', u't'), + (0x1D566, 'M', u'u'), + (0x1D567, 'M', u'v'), + (0x1D568, 'M', u'w'), + (0x1D569, 'M', u'x'), + (0x1D56A, 'M', u'y'), + (0x1D56B, 'M', u'z'), + (0x1D56C, 'M', u'a'), + (0x1D56D, 'M', u'b'), + (0x1D56E, 'M', u'c'), + ] + +def _seg_57(): + return [ + (0x1D56F, 'M', u'd'), + (0x1D570, 'M', u'e'), + (0x1D571, 'M', u'f'), + (0x1D572, 'M', u'g'), + (0x1D573, 'M', u'h'), + (0x1D574, 'M', u'i'), + (0x1D575, 'M', u'j'), + (0x1D576, 'M', u'k'), + (0x1D577, 'M', u'l'), + (0x1D578, 'M', u'm'), + (0x1D579, 'M', u'n'), + (0x1D57A, 'M', u'o'), + (0x1D57B, 'M', u'p'), + (0x1D57C, 'M', u'q'), + (0x1D57D, 'M', u'r'), + (0x1D57E, 'M', u's'), + (0x1D57F, 'M', u't'), + (0x1D580, 'M', u'u'), + (0x1D581, 'M', u'v'), + (0x1D582, 'M', u'w'), + (0x1D583, 'M', u'x'), + (0x1D584, 'M', u'y'), + (0x1D585, 'M', u'z'), + (0x1D586, 'M', u'a'), + (0x1D587, 'M', u'b'), + (0x1D588, 'M', u'c'), + (0x1D589, 'M', u'd'), + (0x1D58A, 'M', u'e'), + (0x1D58B, 'M', u'f'), + (0x1D58C, 'M', u'g'), + (0x1D58D, 'M', u'h'), + (0x1D58E, 'M', u'i'), + (0x1D58F, 'M', u'j'), + (0x1D590, 'M', u'k'), + (0x1D591, 'M', u'l'), + (0x1D592, 'M', u'm'), + (0x1D593, 'M', u'n'), + (0x1D594, 'M', u'o'), + (0x1D595, 'M', u'p'), + (0x1D596, 'M', u'q'), + (0x1D597, 'M', u'r'), + (0x1D598, 'M', u's'), + (0x1D599, 'M', u't'), + (0x1D59A, 'M', u'u'), + (0x1D59B, 'M', u'v'), + (0x1D59C, 'M', u'w'), + (0x1D59D, 'M', u'x'), + (0x1D59E, 'M', u'y'), + (0x1D59F, 'M', u'z'), + (0x1D5A0, 'M', u'a'), + (0x1D5A1, 'M', u'b'), + (0x1D5A2, 'M', u'c'), + (0x1D5A3, 'M', u'd'), + (0x1D5A4, 'M', u'e'), + (0x1D5A5, 'M', u'f'), + (0x1D5A6, 'M', u'g'), + (0x1D5A7, 'M', u'h'), + (0x1D5A8, 'M', u'i'), + (0x1D5A9, 'M', u'j'), + (0x1D5AA, 'M', u'k'), + (0x1D5AB, 'M', u'l'), + (0x1D5AC, 'M', u'm'), + (0x1D5AD, 'M', u'n'), + (0x1D5AE, 'M', u'o'), + (0x1D5AF, 'M', u'p'), + (0x1D5B0, 'M', u'q'), + (0x1D5B1, 'M', u'r'), + (0x1D5B2, 'M', u's'), + (0x1D5B3, 'M', u't'), + (0x1D5B4, 'M', u'u'), + (0x1D5B5, 'M', u'v'), + (0x1D5B6, 'M', u'w'), + (0x1D5B7, 'M', u'x'), + (0x1D5B8, 'M', u'y'), + (0x1D5B9, 'M', u'z'), + (0x1D5BA, 'M', u'a'), + (0x1D5BB, 'M', u'b'), + (0x1D5BC, 'M', u'c'), + (0x1D5BD, 'M', u'd'), + (0x1D5BE, 'M', u'e'), + (0x1D5BF, 'M', u'f'), + (0x1D5C0, 'M', u'g'), + (0x1D5C1, 'M', u'h'), + (0x1D5C2, 'M', u'i'), + (0x1D5C3, 'M', u'j'), + (0x1D5C4, 'M', u'k'), + (0x1D5C5, 'M', u'l'), + (0x1D5C6, 'M', u'm'), + (0x1D5C7, 'M', u'n'), + (0x1D5C8, 'M', u'o'), + (0x1D5C9, 'M', u'p'), + (0x1D5CA, 'M', u'q'), + (0x1D5CB, 'M', u'r'), + (0x1D5CC, 'M', u's'), + (0x1D5CD, 'M', u't'), + (0x1D5CE, 'M', u'u'), + (0x1D5CF, 'M', u'v'), + (0x1D5D0, 'M', u'w'), + (0x1D5D1, 'M', u'x'), + (0x1D5D2, 'M', u'y'), + ] + +def _seg_58(): + return [ + (0x1D5D3, 'M', u'z'), + (0x1D5D4, 'M', u'a'), + (0x1D5D5, 'M', u'b'), + (0x1D5D6, 'M', u'c'), + (0x1D5D7, 'M', u'd'), + (0x1D5D8, 'M', u'e'), + (0x1D5D9, 'M', u'f'), + (0x1D5DA, 'M', u'g'), + (0x1D5DB, 'M', u'h'), + (0x1D5DC, 'M', u'i'), + (0x1D5DD, 'M', u'j'), + (0x1D5DE, 'M', u'k'), + (0x1D5DF, 'M', u'l'), + (0x1D5E0, 'M', u'm'), + (0x1D5E1, 'M', u'n'), + (0x1D5E2, 'M', u'o'), + (0x1D5E3, 'M', u'p'), + (0x1D5E4, 'M', u'q'), + (0x1D5E5, 'M', u'r'), + (0x1D5E6, 'M', u's'), + (0x1D5E7, 'M', u't'), + (0x1D5E8, 'M', u'u'), + (0x1D5E9, 'M', u'v'), + (0x1D5EA, 'M', u'w'), + (0x1D5EB, 'M', u'x'), + (0x1D5EC, 'M', u'y'), + (0x1D5ED, 'M', u'z'), + (0x1D5EE, 'M', u'a'), + (0x1D5EF, 'M', u'b'), + (0x1D5F0, 'M', u'c'), + (0x1D5F1, 'M', u'd'), + (0x1D5F2, 'M', u'e'), + (0x1D5F3, 'M', u'f'), + (0x1D5F4, 'M', u'g'), + (0x1D5F5, 'M', u'h'), + (0x1D5F6, 'M', u'i'), + (0x1D5F7, 'M', u'j'), + (0x1D5F8, 'M', u'k'), + (0x1D5F9, 'M', u'l'), + (0x1D5FA, 'M', u'm'), + (0x1D5FB, 'M', u'n'), + (0x1D5FC, 'M', u'o'), + (0x1D5FD, 'M', u'p'), + (0x1D5FE, 'M', u'q'), + (0x1D5FF, 'M', u'r'), + (0x1D600, 'M', u's'), + (0x1D601, 'M', u't'), + (0x1D602, 'M', u'u'), + (0x1D603, 'M', u'v'), + (0x1D604, 'M', u'w'), + (0x1D605, 'M', u'x'), + (0x1D606, 'M', u'y'), + (0x1D607, 'M', u'z'), + (0x1D608, 'M', u'a'), + (0x1D609, 'M', u'b'), + (0x1D60A, 'M', u'c'), + (0x1D60B, 'M', u'd'), + (0x1D60C, 'M', u'e'), + (0x1D60D, 'M', u'f'), + (0x1D60E, 'M', u'g'), + (0x1D60F, 'M', u'h'), + (0x1D610, 'M', u'i'), + (0x1D611, 'M', u'j'), + (0x1D612, 'M', u'k'), + (0x1D613, 'M', u'l'), + (0x1D614, 'M', u'm'), + (0x1D615, 'M', u'n'), + (0x1D616, 'M', u'o'), + (0x1D617, 'M', u'p'), + (0x1D618, 'M', u'q'), + (0x1D619, 'M', u'r'), + (0x1D61A, 'M', u's'), + (0x1D61B, 'M', u't'), + (0x1D61C, 'M', u'u'), + (0x1D61D, 'M', u'v'), + (0x1D61E, 'M', u'w'), + (0x1D61F, 'M', u'x'), + (0x1D620, 'M', u'y'), + (0x1D621, 'M', u'z'), + (0x1D622, 'M', u'a'), + (0x1D623, 'M', u'b'), + (0x1D624, 'M', u'c'), + (0x1D625, 'M', u'd'), + (0x1D626, 'M', u'e'), + (0x1D627, 'M', u'f'), + (0x1D628, 'M', u'g'), + (0x1D629, 'M', u'h'), + (0x1D62A, 'M', u'i'), + (0x1D62B, 'M', u'j'), + (0x1D62C, 'M', u'k'), + (0x1D62D, 'M', u'l'), + (0x1D62E, 'M', u'm'), + (0x1D62F, 'M', u'n'), + (0x1D630, 'M', u'o'), + (0x1D631, 'M', u'p'), + (0x1D632, 'M', u'q'), + (0x1D633, 'M', u'r'), + (0x1D634, 'M', u's'), + (0x1D635, 'M', u't'), + (0x1D636, 'M', u'u'), + ] + +def _seg_59(): + return [ + (0x1D637, 'M', u'v'), + (0x1D638, 'M', u'w'), + (0x1D639, 'M', u'x'), + (0x1D63A, 'M', u'y'), + (0x1D63B, 'M', u'z'), + (0x1D63C, 'M', u'a'), + (0x1D63D, 'M', u'b'), + (0x1D63E, 'M', u'c'), + (0x1D63F, 'M', u'd'), + (0x1D640, 'M', u'e'), + (0x1D641, 'M', u'f'), + (0x1D642, 'M', u'g'), + (0x1D643, 'M', u'h'), + (0x1D644, 'M', u'i'), + (0x1D645, 'M', u'j'), + (0x1D646, 'M', u'k'), + (0x1D647, 'M', u'l'), + (0x1D648, 'M', u'm'), + (0x1D649, 'M', u'n'), + (0x1D64A, 'M', u'o'), + (0x1D64B, 'M', u'p'), + (0x1D64C, 'M', u'q'), + (0x1D64D, 'M', u'r'), + (0x1D64E, 'M', u's'), + (0x1D64F, 'M', u't'), + (0x1D650, 'M', u'u'), + (0x1D651, 'M', u'v'), + (0x1D652, 'M', u'w'), + (0x1D653, 'M', u'x'), + (0x1D654, 'M', u'y'), + (0x1D655, 'M', u'z'), + (0x1D656, 'M', u'a'), + (0x1D657, 'M', u'b'), + (0x1D658, 'M', u'c'), + (0x1D659, 'M', u'd'), + (0x1D65A, 'M', u'e'), + (0x1D65B, 'M', u'f'), + (0x1D65C, 'M', u'g'), + (0x1D65D, 'M', u'h'), + (0x1D65E, 'M', u'i'), + (0x1D65F, 'M', u'j'), + (0x1D660, 'M', u'k'), + (0x1D661, 'M', u'l'), + (0x1D662, 'M', u'm'), + (0x1D663, 'M', u'n'), + (0x1D664, 'M', u'o'), + (0x1D665, 'M', u'p'), + (0x1D666, 'M', u'q'), + (0x1D667, 'M', u'r'), + (0x1D668, 'M', u's'), + (0x1D669, 'M', u't'), + (0x1D66A, 'M', u'u'), + (0x1D66B, 'M', u'v'), + (0x1D66C, 'M', u'w'), + (0x1D66D, 'M', u'x'), + (0x1D66E, 'M', u'y'), + (0x1D66F, 'M', u'z'), + (0x1D670, 'M', u'a'), + (0x1D671, 'M', u'b'), + (0x1D672, 'M', u'c'), + (0x1D673, 'M', u'd'), + (0x1D674, 'M', u'e'), + (0x1D675, 'M', u'f'), + (0x1D676, 'M', u'g'), + (0x1D677, 'M', u'h'), + (0x1D678, 'M', u'i'), + (0x1D679, 'M', u'j'), + (0x1D67A, 'M', u'k'), + (0x1D67B, 'M', u'l'), + (0x1D67C, 'M', u'm'), + (0x1D67D, 'M', u'n'), + (0x1D67E, 'M', u'o'), + (0x1D67F, 'M', u'p'), + (0x1D680, 'M', u'q'), + (0x1D681, 'M', u'r'), + (0x1D682, 'M', u's'), + (0x1D683, 'M', u't'), + (0x1D684, 'M', u'u'), + (0x1D685, 'M', u'v'), + (0x1D686, 'M', u'w'), + (0x1D687, 'M', u'x'), + (0x1D688, 'M', u'y'), + (0x1D689, 'M', u'z'), + (0x1D68A, 'M', u'a'), + (0x1D68B, 'M', u'b'), + (0x1D68C, 'M', u'c'), + (0x1D68D, 'M', u'd'), + (0x1D68E, 'M', u'e'), + (0x1D68F, 'M', u'f'), + (0x1D690, 'M', u'g'), + (0x1D691, 'M', u'h'), + (0x1D692, 'M', u'i'), + (0x1D693, 'M', u'j'), + (0x1D694, 'M', u'k'), + (0x1D695, 'M', u'l'), + (0x1D696, 'M', u'm'), + (0x1D697, 'M', u'n'), + (0x1D698, 'M', u'o'), + (0x1D699, 'M', u'p'), + (0x1D69A, 'M', u'q'), + ] + +def _seg_60(): + return [ + (0x1D69B, 'M', u'r'), + (0x1D69C, 'M', u's'), + (0x1D69D, 'M', u't'), + (0x1D69E, 'M', u'u'), + (0x1D69F, 'M', u'v'), + (0x1D6A0, 'M', u'w'), + (0x1D6A1, 'M', u'x'), + (0x1D6A2, 'M', u'y'), + (0x1D6A3, 'M', u'z'), + (0x1D6A4, 'M', u'ı'), + (0x1D6A5, 'M', u'ȷ'), + (0x1D6A6, 'X'), + (0x1D6A8, 'M', u'α'), + (0x1D6A9, 'M', u'β'), + (0x1D6AA, 'M', u'γ'), + (0x1D6AB, 'M', u'δ'), + (0x1D6AC, 'M', u'ε'), + (0x1D6AD, 'M', u'ζ'), + (0x1D6AE, 'M', u'η'), + (0x1D6AF, 'M', u'θ'), + (0x1D6B0, 'M', u'ι'), + (0x1D6B1, 'M', u'κ'), + (0x1D6B2, 'M', u'λ'), + (0x1D6B3, 'M', u'μ'), + (0x1D6B4, 'M', u'ν'), + (0x1D6B5, 'M', u'ξ'), + (0x1D6B6, 'M', u'ο'), + (0x1D6B7, 'M', u'π'), + (0x1D6B8, 'M', u'ρ'), + (0x1D6B9, 'M', u'θ'), + (0x1D6BA, 'M', u'σ'), + (0x1D6BB, 'M', u'τ'), + (0x1D6BC, 'M', u'υ'), + (0x1D6BD, 'M', u'φ'), + (0x1D6BE, 'M', u'χ'), + (0x1D6BF, 'M', u'ψ'), + (0x1D6C0, 'M', u'ω'), + (0x1D6C1, 'M', u'∇'), + (0x1D6C2, 'M', u'α'), + (0x1D6C3, 'M', u'β'), + (0x1D6C4, 'M', u'γ'), + (0x1D6C5, 'M', u'δ'), + (0x1D6C6, 'M', u'ε'), + (0x1D6C7, 'M', u'ζ'), + (0x1D6C8, 'M', u'η'), + (0x1D6C9, 'M', u'θ'), + (0x1D6CA, 'M', u'ι'), + (0x1D6CB, 'M', u'κ'), + (0x1D6CC, 'M', u'λ'), + (0x1D6CD, 'M', u'μ'), + (0x1D6CE, 'M', u'ν'), + (0x1D6CF, 'M', u'ξ'), + (0x1D6D0, 'M', u'ο'), + (0x1D6D1, 'M', u'π'), + (0x1D6D2, 'M', u'ρ'), + (0x1D6D3, 'M', u'σ'), + (0x1D6D5, 'M', u'τ'), + (0x1D6D6, 'M', u'υ'), + (0x1D6D7, 'M', u'φ'), + (0x1D6D8, 'M', u'χ'), + (0x1D6D9, 'M', u'ψ'), + (0x1D6DA, 'M', u'ω'), + (0x1D6DB, 'M', u'∂'), + (0x1D6DC, 'M', u'ε'), + (0x1D6DD, 'M', u'θ'), + (0x1D6DE, 'M', u'κ'), + (0x1D6DF, 'M', u'φ'), + (0x1D6E0, 'M', u'ρ'), + (0x1D6E1, 'M', u'π'), + (0x1D6E2, 'M', u'α'), + (0x1D6E3, 'M', u'β'), + (0x1D6E4, 'M', u'γ'), + (0x1D6E5, 'M', u'δ'), + (0x1D6E6, 'M', u'ε'), + (0x1D6E7, 'M', u'ζ'), + (0x1D6E8, 'M', u'η'), + (0x1D6E9, 'M', u'θ'), + (0x1D6EA, 'M', u'ι'), + (0x1D6EB, 'M', u'κ'), + (0x1D6EC, 'M', u'λ'), + (0x1D6ED, 'M', u'μ'), + (0x1D6EE, 'M', u'ν'), + (0x1D6EF, 'M', u'ξ'), + (0x1D6F0, 'M', u'ο'), + (0x1D6F1, 'M', u'π'), + (0x1D6F2, 'M', u'ρ'), + (0x1D6F3, 'M', u'θ'), + (0x1D6F4, 'M', u'σ'), + (0x1D6F5, 'M', u'τ'), + (0x1D6F6, 'M', u'υ'), + (0x1D6F7, 'M', u'φ'), + (0x1D6F8, 'M', u'χ'), + (0x1D6F9, 'M', u'ψ'), + (0x1D6FA, 'M', u'ω'), + (0x1D6FB, 'M', u'∇'), + (0x1D6FC, 'M', u'α'), + (0x1D6FD, 'M', u'β'), + (0x1D6FE, 'M', u'γ'), + (0x1D6FF, 'M', u'δ'), + (0x1D700, 'M', u'ε'), + ] + +def _seg_61(): + return [ + (0x1D701, 'M', u'ζ'), + (0x1D702, 'M', u'η'), + (0x1D703, 'M', u'θ'), + (0x1D704, 'M', u'ι'), + (0x1D705, 'M', u'κ'), + (0x1D706, 'M', u'λ'), + (0x1D707, 'M', u'μ'), + (0x1D708, 'M', u'ν'), + (0x1D709, 'M', u'ξ'), + (0x1D70A, 'M', u'ο'), + (0x1D70B, 'M', u'π'), + (0x1D70C, 'M', u'ρ'), + (0x1D70D, 'M', u'σ'), + (0x1D70F, 'M', u'τ'), + (0x1D710, 'M', u'υ'), + (0x1D711, 'M', u'φ'), + (0x1D712, 'M', u'χ'), + (0x1D713, 'M', u'ψ'), + (0x1D714, 'M', u'ω'), + (0x1D715, 'M', u'∂'), + (0x1D716, 'M', u'ε'), + (0x1D717, 'M', u'θ'), + (0x1D718, 'M', u'κ'), + (0x1D719, 'M', u'φ'), + (0x1D71A, 'M', u'ρ'), + (0x1D71B, 'M', u'π'), + (0x1D71C, 'M', u'α'), + (0x1D71D, 'M', u'β'), + (0x1D71E, 'M', u'γ'), + (0x1D71F, 'M', u'δ'), + (0x1D720, 'M', u'ε'), + (0x1D721, 'M', u'ζ'), + (0x1D722, 'M', u'η'), + (0x1D723, 'M', u'θ'), + (0x1D724, 'M', u'ι'), + (0x1D725, 'M', u'κ'), + (0x1D726, 'M', u'λ'), + (0x1D727, 'M', u'μ'), + (0x1D728, 'M', u'ν'), + (0x1D729, 'M', u'ξ'), + (0x1D72A, 'M', u'ο'), + (0x1D72B, 'M', u'π'), + (0x1D72C, 'M', u'ρ'), + (0x1D72D, 'M', u'θ'), + (0x1D72E, 'M', u'σ'), + (0x1D72F, 'M', u'τ'), + (0x1D730, 'M', u'υ'), + (0x1D731, 'M', u'φ'), + (0x1D732, 'M', u'χ'), + (0x1D733, 'M', u'ψ'), + (0x1D734, 'M', u'ω'), + (0x1D735, 'M', u'∇'), + (0x1D736, 'M', u'α'), + (0x1D737, 'M', u'β'), + (0x1D738, 'M', u'γ'), + (0x1D739, 'M', u'δ'), + (0x1D73A, 'M', u'ε'), + (0x1D73B, 'M', u'ζ'), + (0x1D73C, 'M', u'η'), + (0x1D73D, 'M', u'θ'), + (0x1D73E, 'M', u'ι'), + (0x1D73F, 'M', u'κ'), + (0x1D740, 'M', u'λ'), + (0x1D741, 'M', u'μ'), + (0x1D742, 'M', u'ν'), + (0x1D743, 'M', u'ξ'), + (0x1D744, 'M', u'ο'), + (0x1D745, 'M', u'π'), + (0x1D746, 'M', u'ρ'), + (0x1D747, 'M', u'σ'), + (0x1D749, 'M', u'τ'), + (0x1D74A, 'M', u'υ'), + (0x1D74B, 'M', u'φ'), + (0x1D74C, 'M', u'χ'), + (0x1D74D, 'M', u'ψ'), + (0x1D74E, 'M', u'ω'), + (0x1D74F, 'M', u'∂'), + (0x1D750, 'M', u'ε'), + (0x1D751, 'M', u'θ'), + (0x1D752, 'M', u'κ'), + (0x1D753, 'M', u'φ'), + (0x1D754, 'M', u'ρ'), + (0x1D755, 'M', u'π'), + (0x1D756, 'M', u'α'), + (0x1D757, 'M', u'β'), + (0x1D758, 'M', u'γ'), + (0x1D759, 'M', u'δ'), + (0x1D75A, 'M', u'ε'), + (0x1D75B, 'M', u'ζ'), + (0x1D75C, 'M', u'η'), + (0x1D75D, 'M', u'θ'), + (0x1D75E, 'M', u'ι'), + (0x1D75F, 'M', u'κ'), + (0x1D760, 'M', u'λ'), + (0x1D761, 'M', u'μ'), + (0x1D762, 'M', u'ν'), + (0x1D763, 'M', u'ξ'), + (0x1D764, 'M', u'ο'), + (0x1D765, 'M', u'π'), + (0x1D766, 'M', u'ρ'), + ] + +def _seg_62(): + return [ + (0x1D767, 'M', u'θ'), + (0x1D768, 'M', u'σ'), + (0x1D769, 'M', u'τ'), + (0x1D76A, 'M', u'υ'), + (0x1D76B, 'M', u'φ'), + (0x1D76C, 'M', u'χ'), + (0x1D76D, 'M', u'ψ'), + (0x1D76E, 'M', u'ω'), + (0x1D76F, 'M', u'∇'), + (0x1D770, 'M', u'α'), + (0x1D771, 'M', u'β'), + (0x1D772, 'M', u'γ'), + (0x1D773, 'M', u'δ'), + (0x1D774, 'M', u'ε'), + (0x1D775, 'M', u'ζ'), + (0x1D776, 'M', u'η'), + (0x1D777, 'M', u'θ'), + (0x1D778, 'M', u'ι'), + (0x1D779, 'M', u'κ'), + (0x1D77A, 'M', u'λ'), + (0x1D77B, 'M', u'μ'), + (0x1D77C, 'M', u'ν'), + (0x1D77D, 'M', u'ξ'), + (0x1D77E, 'M', u'ο'), + (0x1D77F, 'M', u'π'), + (0x1D780, 'M', u'ρ'), + (0x1D781, 'M', u'σ'), + (0x1D783, 'M', u'τ'), + (0x1D784, 'M', u'υ'), + (0x1D785, 'M', u'φ'), + (0x1D786, 'M', u'χ'), + (0x1D787, 'M', u'ψ'), + (0x1D788, 'M', u'ω'), + (0x1D789, 'M', u'∂'), + (0x1D78A, 'M', u'ε'), + (0x1D78B, 'M', u'θ'), + (0x1D78C, 'M', u'κ'), + (0x1D78D, 'M', u'φ'), + (0x1D78E, 'M', u'ρ'), + (0x1D78F, 'M', u'π'), + (0x1D790, 'M', u'α'), + (0x1D791, 'M', u'β'), + (0x1D792, 'M', u'γ'), + (0x1D793, 'M', u'δ'), + (0x1D794, 'M', u'ε'), + (0x1D795, 'M', u'ζ'), + (0x1D796, 'M', u'η'), + (0x1D797, 'M', u'θ'), + (0x1D798, 'M', u'ι'), + (0x1D799, 'M', u'κ'), + (0x1D79A, 'M', u'λ'), + (0x1D79B, 'M', u'μ'), + (0x1D79C, 'M', u'ν'), + (0x1D79D, 'M', u'ξ'), + (0x1D79E, 'M', u'ο'), + (0x1D79F, 'M', u'π'), + (0x1D7A0, 'M', u'ρ'), + (0x1D7A1, 'M', u'θ'), + (0x1D7A2, 'M', u'σ'), + (0x1D7A3, 'M', u'τ'), + (0x1D7A4, 'M', u'υ'), + (0x1D7A5, 'M', u'φ'), + (0x1D7A6, 'M', u'χ'), + (0x1D7A7, 'M', u'ψ'), + (0x1D7A8, 'M', u'ω'), + (0x1D7A9, 'M', u'∇'), + (0x1D7AA, 'M', u'α'), + (0x1D7AB, 'M', u'β'), + (0x1D7AC, 'M', u'γ'), + (0x1D7AD, 'M', u'δ'), + (0x1D7AE, 'M', u'ε'), + (0x1D7AF, 'M', u'ζ'), + (0x1D7B0, 'M', u'η'), + (0x1D7B1, 'M', u'θ'), + (0x1D7B2, 'M', u'ι'), + (0x1D7B3, 'M', u'κ'), + (0x1D7B4, 'M', u'λ'), + (0x1D7B5, 'M', u'μ'), + (0x1D7B6, 'M', u'ν'), + (0x1D7B7, 'M', u'ξ'), + (0x1D7B8, 'M', u'ο'), + (0x1D7B9, 'M', u'π'), + (0x1D7BA, 'M', u'ρ'), + (0x1D7BB, 'M', u'σ'), + (0x1D7BD, 'M', u'τ'), + (0x1D7BE, 'M', u'υ'), + (0x1D7BF, 'M', u'φ'), + (0x1D7C0, 'M', u'χ'), + (0x1D7C1, 'M', u'ψ'), + (0x1D7C2, 'M', u'ω'), + (0x1D7C3, 'M', u'∂'), + (0x1D7C4, 'M', u'ε'), + (0x1D7C5, 'M', u'θ'), + (0x1D7C6, 'M', u'κ'), + (0x1D7C7, 'M', u'φ'), + (0x1D7C8, 'M', u'ρ'), + (0x1D7C9, 'M', u'π'), + (0x1D7CA, 'M', u'ϝ'), + (0x1D7CC, 'X'), + (0x1D7CE, 'M', u'0'), + ] + +def _seg_63(): + return [ + (0x1D7CF, 'M', u'1'), + (0x1D7D0, 'M', u'2'), + (0x1D7D1, 'M', u'3'), + (0x1D7D2, 'M', u'4'), + (0x1D7D3, 'M', u'5'), + (0x1D7D4, 'M', u'6'), + (0x1D7D5, 'M', u'7'), + (0x1D7D6, 'M', u'8'), + (0x1D7D7, 'M', u'9'), + (0x1D7D8, 'M', u'0'), + (0x1D7D9, 'M', u'1'), + (0x1D7DA, 'M', u'2'), + (0x1D7DB, 'M', u'3'), + (0x1D7DC, 'M', u'4'), + (0x1D7DD, 'M', u'5'), + (0x1D7DE, 'M', u'6'), + (0x1D7DF, 'M', u'7'), + (0x1D7E0, 'M', u'8'), + (0x1D7E1, 'M', u'9'), + (0x1D7E2, 'M', u'0'), + (0x1D7E3, 'M', u'1'), + (0x1D7E4, 'M', u'2'), + (0x1D7E5, 'M', u'3'), + (0x1D7E6, 'M', u'4'), + (0x1D7E7, 'M', u'5'), + (0x1D7E8, 'M', u'6'), + (0x1D7E9, 'M', u'7'), + (0x1D7EA, 'M', u'8'), + (0x1D7EB, 'M', u'9'), + (0x1D7EC, 'M', u'0'), + (0x1D7ED, 'M', u'1'), + (0x1D7EE, 'M', u'2'), + (0x1D7EF, 'M', u'3'), + (0x1D7F0, 'M', u'4'), + (0x1D7F1, 'M', u'5'), + (0x1D7F2, 'M', u'6'), + (0x1D7F3, 'M', u'7'), + (0x1D7F4, 'M', u'8'), + (0x1D7F5, 'M', u'9'), + (0x1D7F6, 'M', u'0'), + (0x1D7F7, 'M', u'1'), + (0x1D7F8, 'M', u'2'), + (0x1D7F9, 'M', u'3'), + (0x1D7FA, 'M', u'4'), + (0x1D7FB, 'M', u'5'), + (0x1D7FC, 'M', u'6'), + (0x1D7FD, 'M', u'7'), + (0x1D7FE, 'M', u'8'), + (0x1D7FF, 'M', u'9'), + (0x1D800, 'X'), + (0x1EE00, 'M', u'ا'), + (0x1EE01, 'M', u'ب'), + (0x1EE02, 'M', u'ج'), + (0x1EE03, 'M', u'د'), + (0x1EE04, 'X'), + (0x1EE05, 'M', u'و'), + (0x1EE06, 'M', u'ز'), + (0x1EE07, 'M', u'ح'), + (0x1EE08, 'M', u'ط'), + (0x1EE09, 'M', u'ي'), + (0x1EE0A, 'M', u'ك'), + (0x1EE0B, 'M', u'ل'), + (0x1EE0C, 'M', u'م'), + (0x1EE0D, 'M', u'ن'), + (0x1EE0E, 'M', u'س'), + (0x1EE0F, 'M', u'ع'), + (0x1EE10, 'M', u'ف'), + (0x1EE11, 'M', u'ص'), + (0x1EE12, 'M', u'ق'), + (0x1EE13, 'M', u'ر'), + (0x1EE14, 'M', u'ش'), + (0x1EE15, 'M', u'ت'), + (0x1EE16, 'M', u'ث'), + (0x1EE17, 'M', u'خ'), + (0x1EE18, 'M', u'ذ'), + (0x1EE19, 'M', u'ض'), + (0x1EE1A, 'M', u'ظ'), + (0x1EE1B, 'M', u'غ'), + (0x1EE1C, 'M', u'ٮ'), + (0x1EE1D, 'M', u'ں'), + (0x1EE1E, 'M', u'ڡ'), + (0x1EE1F, 'M', u'ٯ'), + (0x1EE20, 'X'), + (0x1EE21, 'M', u'ب'), + (0x1EE22, 'M', u'ج'), + (0x1EE23, 'X'), + (0x1EE24, 'M', u'ه'), + (0x1EE25, 'X'), + (0x1EE27, 'M', u'ح'), + (0x1EE28, 'X'), + (0x1EE29, 'M', u'ي'), + (0x1EE2A, 'M', u'ك'), + (0x1EE2B, 'M', u'ل'), + (0x1EE2C, 'M', u'م'), + (0x1EE2D, 'M', u'ن'), + (0x1EE2E, 'M', u'س'), + (0x1EE2F, 'M', u'ع'), + (0x1EE30, 'M', u'ف'), + (0x1EE31, 'M', u'ص'), + (0x1EE32, 'M', u'ق'), + ] + +def _seg_64(): + return [ + (0x1EE33, 'X'), + (0x1EE34, 'M', u'ش'), + (0x1EE35, 'M', u'ت'), + (0x1EE36, 'M', u'ث'), + (0x1EE37, 'M', u'خ'), + (0x1EE38, 'X'), + (0x1EE39, 'M', u'ض'), + (0x1EE3A, 'X'), + (0x1EE3B, 'M', u'غ'), + (0x1EE3C, 'X'), + (0x1EE42, 'M', u'ج'), + (0x1EE43, 'X'), + (0x1EE47, 'M', u'ح'), + (0x1EE48, 'X'), + (0x1EE49, 'M', u'ي'), + (0x1EE4A, 'X'), + (0x1EE4B, 'M', u'ل'), + (0x1EE4C, 'X'), + (0x1EE4D, 'M', u'ن'), + (0x1EE4E, 'M', u'س'), + (0x1EE4F, 'M', u'ع'), + (0x1EE50, 'X'), + (0x1EE51, 'M', u'ص'), + (0x1EE52, 'M', u'ق'), + (0x1EE53, 'X'), + (0x1EE54, 'M', u'ش'), + (0x1EE55, 'X'), + (0x1EE57, 'M', u'خ'), + (0x1EE58, 'X'), + (0x1EE59, 'M', u'ض'), + (0x1EE5A, 'X'), + (0x1EE5B, 'M', u'غ'), + (0x1EE5C, 'X'), + (0x1EE5D, 'M', u'ں'), + (0x1EE5E, 'X'), + (0x1EE5F, 'M', u'ٯ'), + (0x1EE60, 'X'), + (0x1EE61, 'M', u'ب'), + (0x1EE62, 'M', u'ج'), + (0x1EE63, 'X'), + (0x1EE64, 'M', u'ه'), + (0x1EE65, 'X'), + (0x1EE67, 'M', u'ح'), + (0x1EE68, 'M', u'ط'), + (0x1EE69, 'M', u'ي'), + (0x1EE6A, 'M', u'ك'), + (0x1EE6B, 'X'), + (0x1EE6C, 'M', u'م'), + (0x1EE6D, 'M', u'ن'), + (0x1EE6E, 'M', u'س'), + (0x1EE6F, 'M', u'ع'), + (0x1EE70, 'M', u'ف'), + (0x1EE71, 'M', u'ص'), + (0x1EE72, 'M', u'ق'), + (0x1EE73, 'X'), + (0x1EE74, 'M', u'ش'), + (0x1EE75, 'M', u'ت'), + (0x1EE76, 'M', u'ث'), + (0x1EE77, 'M', u'خ'), + (0x1EE78, 'X'), + (0x1EE79, 'M', u'ض'), + (0x1EE7A, 'M', u'ظ'), + (0x1EE7B, 'M', u'غ'), + (0x1EE7C, 'M', u'ٮ'), + (0x1EE7D, 'X'), + (0x1EE7E, 'M', u'ڡ'), + (0x1EE7F, 'X'), + (0x1EE80, 'M', u'ا'), + (0x1EE81, 'M', u'ب'), + (0x1EE82, 'M', u'ج'), + (0x1EE83, 'M', u'د'), + (0x1EE84, 'M', u'ه'), + (0x1EE85, 'M', u'و'), + (0x1EE86, 'M', u'ز'), + (0x1EE87, 'M', u'ح'), + (0x1EE88, 'M', u'ط'), + (0x1EE89, 'M', u'ي'), + (0x1EE8A, 'X'), + (0x1EE8B, 'M', u'ل'), + (0x1EE8C, 'M', u'م'), + (0x1EE8D, 'M', u'ن'), + (0x1EE8E, 'M', u'س'), + (0x1EE8F, 'M', u'ع'), + (0x1EE90, 'M', u'ف'), + (0x1EE91, 'M', u'ص'), + (0x1EE92, 'M', u'ق'), + (0x1EE93, 'M', u'ر'), + (0x1EE94, 'M', u'ش'), + (0x1EE95, 'M', u'ت'), + (0x1EE96, 'M', u'ث'), + (0x1EE97, 'M', u'خ'), + (0x1EE98, 'M', u'ذ'), + (0x1EE99, 'M', u'ض'), + (0x1EE9A, 'M', u'ظ'), + (0x1EE9B, 'M', u'غ'), + (0x1EE9C, 'X'), + (0x1EEA1, 'M', u'ب'), + (0x1EEA2, 'M', u'ج'), + (0x1EEA3, 'M', u'د'), + (0x1EEA4, 'X'), + ] + +def _seg_65(): + return [ + (0x1EEA5, 'M', u'و'), + (0x1EEA6, 'M', u'ز'), + (0x1EEA7, 'M', u'ح'), + (0x1EEA8, 'M', u'ط'), + (0x1EEA9, 'M', u'ي'), + (0x1EEAA, 'X'), + (0x1EEAB, 'M', u'ل'), + (0x1EEAC, 'M', u'م'), + (0x1EEAD, 'M', u'ن'), + (0x1EEAE, 'M', u'س'), + (0x1EEAF, 'M', u'ع'), + (0x1EEB0, 'M', u'ف'), + (0x1EEB1, 'M', u'ص'), + (0x1EEB2, 'M', u'ق'), + (0x1EEB3, 'M', u'ر'), + (0x1EEB4, 'M', u'ش'), + (0x1EEB5, 'M', u'ت'), + (0x1EEB6, 'M', u'ث'), + (0x1EEB7, 'M', u'خ'), + (0x1EEB8, 'M', u'ذ'), + (0x1EEB9, 'M', u'ض'), + (0x1EEBA, 'M', u'ظ'), + (0x1EEBB, 'M', u'غ'), + (0x1EEBC, 'X'), + (0x1EEF0, 'V'), + (0x1EEF2, 'X'), + (0x1F000, 'V'), + (0x1F02C, 'X'), + (0x1F030, 'V'), + (0x1F094, 'X'), + (0x1F0A0, 'V'), + (0x1F0AF, 'X'), + (0x1F0B1, 'V'), + (0x1F0BF, 'X'), + (0x1F0C1, 'V'), + (0x1F0D0, 'X'), + (0x1F0D1, 'V'), + (0x1F0E0, 'X'), + (0x1F101, '3', u'0,'), + (0x1F102, '3', u'1,'), + (0x1F103, '3', u'2,'), + (0x1F104, '3', u'3,'), + (0x1F105, '3', u'4,'), + (0x1F106, '3', u'5,'), + (0x1F107, '3', u'6,'), + (0x1F108, '3', u'7,'), + (0x1F109, '3', u'8,'), + (0x1F10A, '3', u'9,'), + (0x1F10B, 'X'), + (0x1F110, '3', u'(a)'), + (0x1F111, '3', u'(b)'), + (0x1F112, '3', u'(c)'), + (0x1F113, '3', u'(d)'), + (0x1F114, '3', u'(e)'), + (0x1F115, '3', u'(f)'), + (0x1F116, '3', u'(g)'), + (0x1F117, '3', u'(h)'), + (0x1F118, '3', u'(i)'), + (0x1F119, '3', u'(j)'), + (0x1F11A, '3', u'(k)'), + (0x1F11B, '3', u'(l)'), + (0x1F11C, '3', u'(m)'), + (0x1F11D, '3', u'(n)'), + (0x1F11E, '3', u'(o)'), + (0x1F11F, '3', u'(p)'), + (0x1F120, '3', u'(q)'), + (0x1F121, '3', u'(r)'), + (0x1F122, '3', u'(s)'), + (0x1F123, '3', u'(t)'), + (0x1F124, '3', u'(u)'), + (0x1F125, '3', u'(v)'), + (0x1F126, '3', u'(w)'), + (0x1F127, '3', u'(x)'), + (0x1F128, '3', u'(y)'), + (0x1F129, '3', u'(z)'), + (0x1F12A, 'M', u'〔s〕'), + (0x1F12B, 'M', u'c'), + (0x1F12C, 'M', u'r'), + (0x1F12D, 'M', u'cd'), + (0x1F12E, 'M', u'wz'), + (0x1F12F, 'X'), + (0x1F130, 'M', u'a'), + (0x1F131, 'M', u'b'), + (0x1F132, 'M', u'c'), + (0x1F133, 'M', u'd'), + (0x1F134, 'M', u'e'), + (0x1F135, 'M', u'f'), + (0x1F136, 'M', u'g'), + (0x1F137, 'M', u'h'), + (0x1F138, 'M', u'i'), + (0x1F139, 'M', u'j'), + (0x1F13A, 'M', u'k'), + (0x1F13B, 'M', u'l'), + (0x1F13C, 'M', u'm'), + (0x1F13D, 'M', u'n'), + (0x1F13E, 'M', u'o'), + (0x1F13F, 'M', u'p'), + (0x1F140, 'M', u'q'), + (0x1F141, 'M', u'r'), + (0x1F142, 'M', u's'), + ] + +def _seg_66(): + return [ + (0x1F143, 'M', u't'), + (0x1F144, 'M', u'u'), + (0x1F145, 'M', u'v'), + (0x1F146, 'M', u'w'), + (0x1F147, 'M', u'x'), + (0x1F148, 'M', u'y'), + (0x1F149, 'M', u'z'), + (0x1F14A, 'M', u'hv'), + (0x1F14B, 'M', u'mv'), + (0x1F14C, 'M', u'sd'), + (0x1F14D, 'M', u'ss'), + (0x1F14E, 'M', u'ppv'), + (0x1F14F, 'M', u'wc'), + (0x1F150, 'V'), + (0x1F16A, 'M', u'mc'), + (0x1F16B, 'M', u'md'), + (0x1F16C, 'X'), + (0x1F170, 'V'), + (0x1F190, 'M', u'dj'), + (0x1F191, 'V'), + (0x1F19B, 'X'), + (0x1F1E6, 'V'), + (0x1F200, 'M', u'ほか'), + (0x1F201, 'M', u'ココ'), + (0x1F202, 'M', u'サ'), + (0x1F203, 'X'), + (0x1F210, 'M', u'手'), + (0x1F211, 'M', u'字'), + (0x1F212, 'M', u'双'), + (0x1F213, 'M', u'デ'), + (0x1F214, 'M', u'二'), + (0x1F215, 'M', u'多'), + (0x1F216, 'M', u'解'), + (0x1F217, 'M', u'天'), + (0x1F218, 'M', u'交'), + (0x1F219, 'M', u'映'), + (0x1F21A, 'M', u'無'), + (0x1F21B, 'M', u'料'), + (0x1F21C, 'M', u'前'), + (0x1F21D, 'M', u'後'), + (0x1F21E, 'M', u'再'), + (0x1F21F, 'M', u'新'), + (0x1F220, 'M', u'初'), + (0x1F221, 'M', u'終'), + (0x1F222, 'M', u'生'), + (0x1F223, 'M', u'販'), + (0x1F224, 'M', u'声'), + (0x1F225, 'M', u'吹'), + (0x1F226, 'M', u'演'), + (0x1F227, 'M', u'投'), + (0x1F228, 'M', u'捕'), + (0x1F229, 'M', u'一'), + (0x1F22A, 'M', u'三'), + (0x1F22B, 'M', u'遊'), + (0x1F22C, 'M', u'左'), + (0x1F22D, 'M', u'中'), + (0x1F22E, 'M', u'右'), + (0x1F22F, 'M', u'指'), + (0x1F230, 'M', u'走'), + (0x1F231, 'M', u'打'), + (0x1F232, 'M', u'禁'), + (0x1F233, 'M', u'空'), + (0x1F234, 'M', u'合'), + (0x1F235, 'M', u'満'), + (0x1F236, 'M', u'有'), + (0x1F237, 'M', u'月'), + (0x1F238, 'M', u'申'), + (0x1F239, 'M', u'割'), + (0x1F23A, 'M', u'営'), + (0x1F23B, 'X'), + (0x1F240, 'M', u'〔本〕'), + (0x1F241, 'M', u'〔三〕'), + (0x1F242, 'M', u'〔二〕'), + (0x1F243, 'M', u'〔安〕'), + (0x1F244, 'M', u'〔点〕'), + (0x1F245, 'M', u'〔打〕'), + (0x1F246, 'M', u'〔盗〕'), + (0x1F247, 'M', u'〔勝〕'), + (0x1F248, 'M', u'〔敗〕'), + (0x1F249, 'X'), + (0x1F250, 'M', u'得'), + (0x1F251, 'M', u'可'), + (0x1F252, 'X'), + (0x1F300, 'V'), + (0x1F321, 'X'), + (0x1F330, 'V'), + (0x1F336, 'X'), + (0x1F337, 'V'), + (0x1F37D, 'X'), + (0x1F380, 'V'), + (0x1F394, 'X'), + (0x1F3A0, 'V'), + (0x1F3C5, 'X'), + (0x1F3C6, 'V'), + (0x1F3CB, 'X'), + (0x1F3E0, 'V'), + (0x1F3F1, 'X'), + (0x1F400, 'V'), + (0x1F43F, 'X'), + (0x1F440, 'V'), + ] + +def _seg_67(): + return [ + (0x1F441, 'X'), + (0x1F442, 'V'), + (0x1F4F8, 'X'), + (0x1F4F9, 'V'), + (0x1F4FD, 'X'), + (0x1F500, 'V'), + (0x1F53E, 'X'), + (0x1F540, 'V'), + (0x1F544, 'X'), + (0x1F550, 'V'), + (0x1F568, 'X'), + (0x1F5FB, 'V'), + (0x1F641, 'X'), + (0x1F645, 'V'), + (0x1F650, 'X'), + (0x1F680, 'V'), + (0x1F6C6, 'X'), + (0x1F700, 'V'), + (0x1F774, 'X'), + (0x20000, 'V'), + (0x2A6D7, 'X'), + (0x2A700, 'V'), + (0x2B735, 'X'), + (0x2B740, 'V'), + (0x2B81E, 'X'), + (0x2F800, 'M', u'丽'), + (0x2F801, 'M', u'丸'), + (0x2F802, 'M', u'乁'), + (0x2F803, 'M', u'𠄢'), + (0x2F804, 'M', u'你'), + (0x2F805, 'M', u'侮'), + (0x2F806, 'M', u'侻'), + (0x2F807, 'M', u'倂'), + (0x2F808, 'M', u'偺'), + (0x2F809, 'M', u'備'), + (0x2F80A, 'M', u'僧'), + (0x2F80B, 'M', u'像'), + (0x2F80C, 'M', u'㒞'), + (0x2F80D, 'M', u'𠘺'), + (0x2F80E, 'M', u'免'), + (0x2F80F, 'M', u'兔'), + (0x2F810, 'M', u'兤'), + (0x2F811, 'M', u'具'), + (0x2F812, 'M', u'𠔜'), + (0x2F813, 'M', u'㒹'), + (0x2F814, 'M', u'內'), + (0x2F815, 'M', u'再'), + (0x2F816, 'M', u'𠕋'), + (0x2F817, 'M', u'冗'), + (0x2F818, 'M', u'冤'), + (0x2F819, 'M', u'仌'), + (0x2F81A, 'M', u'冬'), + (0x2F81B, 'M', u'况'), + (0x2F81C, 'M', u'𩇟'), + (0x2F81D, 'M', u'凵'), + (0x2F81E, 'M', u'刃'), + (0x2F81F, 'M', u'㓟'), + (0x2F820, 'M', u'刻'), + (0x2F821, 'M', u'剆'), + (0x2F822, 'M', u'割'), + (0x2F823, 'M', u'剷'), + (0x2F824, 'M', u'㔕'), + (0x2F825, 'M', u'勇'), + (0x2F826, 'M', u'勉'), + (0x2F827, 'M', u'勤'), + (0x2F828, 'M', u'勺'), + (0x2F829, 'M', u'包'), + (0x2F82A, 'M', u'匆'), + (0x2F82B, 'M', u'北'), + (0x2F82C, 'M', u'卉'), + (0x2F82D, 'M', u'卑'), + (0x2F82E, 'M', u'博'), + (0x2F82F, 'M', u'即'), + (0x2F830, 'M', u'卽'), + (0x2F831, 'M', u'卿'), + (0x2F834, 'M', u'𠨬'), + (0x2F835, 'M', u'灰'), + (0x2F836, 'M', u'及'), + (0x2F837, 'M', u'叟'), + (0x2F838, 'M', u'𠭣'), + (0x2F839, 'M', u'叫'), + (0x2F83A, 'M', u'叱'), + (0x2F83B, 'M', u'吆'), + (0x2F83C, 'M', u'咞'), + (0x2F83D, 'M', u'吸'), + (0x2F83E, 'M', u'呈'), + (0x2F83F, 'M', u'周'), + (0x2F840, 'M', u'咢'), + (0x2F841, 'M', u'哶'), + (0x2F842, 'M', u'唐'), + (0x2F843, 'M', u'啓'), + (0x2F844, 'M', u'啣'), + (0x2F845, 'M', u'善'), + (0x2F847, 'M', u'喙'), + (0x2F848, 'M', u'喫'), + (0x2F849, 'M', u'喳'), + (0x2F84A, 'M', u'嗂'), + (0x2F84B, 'M', u'圖'), + (0x2F84C, 'M', u'嘆'), + (0x2F84D, 'M', u'圗'), + ] + +def _seg_68(): + return [ + (0x2F84E, 'M', u'噑'), + (0x2F84F, 'M', u'噴'), + (0x2F850, 'M', u'切'), + (0x2F851, 'M', u'壮'), + (0x2F852, 'M', u'城'), + (0x2F853, 'M', u'埴'), + (0x2F854, 'M', u'堍'), + (0x2F855, 'M', u'型'), + (0x2F856, 'M', u'堲'), + (0x2F857, 'M', u'報'), + (0x2F858, 'M', u'墬'), + (0x2F859, 'M', u'𡓤'), + (0x2F85A, 'M', u'売'), + (0x2F85B, 'M', u'壷'), + (0x2F85C, 'M', u'夆'), + (0x2F85D, 'M', u'多'), + (0x2F85E, 'M', u'夢'), + (0x2F85F, 'M', u'奢'), + (0x2F860, 'M', u'𡚨'), + (0x2F861, 'M', u'𡛪'), + (0x2F862, 'M', u'姬'), + (0x2F863, 'M', u'娛'), + (0x2F864, 'M', u'娧'), + (0x2F865, 'M', u'姘'), + (0x2F866, 'M', u'婦'), + (0x2F867, 'M', u'㛮'), + (0x2F868, 'X'), + (0x2F869, 'M', u'嬈'), + (0x2F86A, 'M', u'嬾'), + (0x2F86C, 'M', u'𡧈'), + (0x2F86D, 'M', u'寃'), + (0x2F86E, 'M', u'寘'), + (0x2F86F, 'M', u'寧'), + (0x2F870, 'M', u'寳'), + (0x2F871, 'M', u'𡬘'), + (0x2F872, 'M', u'寿'), + (0x2F873, 'M', u'将'), + (0x2F874, 'X'), + (0x2F875, 'M', u'尢'), + (0x2F876, 'M', u'㞁'), + (0x2F877, 'M', u'屠'), + (0x2F878, 'M', u'屮'), + (0x2F879, 'M', u'峀'), + (0x2F87A, 'M', u'岍'), + (0x2F87B, 'M', u'𡷤'), + (0x2F87C, 'M', u'嵃'), + (0x2F87D, 'M', u'𡷦'), + (0x2F87E, 'M', u'嵮'), + (0x2F87F, 'M', u'嵫'), + (0x2F880, 'M', u'嵼'), + (0x2F881, 'M', u'巡'), + (0x2F882, 'M', u'巢'), + (0x2F883, 'M', u'㠯'), + (0x2F884, 'M', u'巽'), + (0x2F885, 'M', u'帨'), + (0x2F886, 'M', u'帽'), + (0x2F887, 'M', u'幩'), + (0x2F888, 'M', u'㡢'), + (0x2F889, 'M', u'𢆃'), + (0x2F88A, 'M', u'㡼'), + (0x2F88B, 'M', u'庰'), + (0x2F88C, 'M', u'庳'), + (0x2F88D, 'M', u'庶'), + (0x2F88E, 'M', u'廊'), + (0x2F88F, 'M', u'𪎒'), + (0x2F890, 'M', u'廾'), + (0x2F891, 'M', u'𢌱'), + (0x2F893, 'M', u'舁'), + (0x2F894, 'M', u'弢'), + (0x2F896, 'M', u'㣇'), + (0x2F897, 'M', u'𣊸'), + (0x2F898, 'M', u'𦇚'), + (0x2F899, 'M', u'形'), + (0x2F89A, 'M', u'彫'), + (0x2F89B, 'M', u'㣣'), + (0x2F89C, 'M', u'徚'), + (0x2F89D, 'M', u'忍'), + (0x2F89E, 'M', u'志'), + (0x2F89F, 'M', u'忹'), + (0x2F8A0, 'M', u'悁'), + (0x2F8A1, 'M', u'㤺'), + (0x2F8A2, 'M', u'㤜'), + (0x2F8A3, 'M', u'悔'), + (0x2F8A4, 'M', u'𢛔'), + (0x2F8A5, 'M', u'惇'), + (0x2F8A6, 'M', u'慈'), + (0x2F8A7, 'M', u'慌'), + (0x2F8A8, 'M', u'慎'), + (0x2F8A9, 'M', u'慌'), + (0x2F8AA, 'M', u'慺'), + (0x2F8AB, 'M', u'憎'), + (0x2F8AC, 'M', u'憲'), + (0x2F8AD, 'M', u'憤'), + (0x2F8AE, 'M', u'憯'), + (0x2F8AF, 'M', u'懞'), + (0x2F8B0, 'M', u'懲'), + (0x2F8B1, 'M', u'懶'), + (0x2F8B2, 'M', u'成'), + (0x2F8B3, 'M', u'戛'), + (0x2F8B4, 'M', u'扝'), + ] + +def _seg_69(): + return [ + (0x2F8B5, 'M', u'抱'), + (0x2F8B6, 'M', u'拔'), + (0x2F8B7, 'M', u'捐'), + (0x2F8B8, 'M', u'𢬌'), + (0x2F8B9, 'M', u'挽'), + (0x2F8BA, 'M', u'拼'), + (0x2F8BB, 'M', u'捨'), + (0x2F8BC, 'M', u'掃'), + (0x2F8BD, 'M', u'揤'), + (0x2F8BE, 'M', u'𢯱'), + (0x2F8BF, 'M', u'搢'), + (0x2F8C0, 'M', u'揅'), + (0x2F8C1, 'M', u'掩'), + (0x2F8C2, 'M', u'㨮'), + (0x2F8C3, 'M', u'摩'), + (0x2F8C4, 'M', u'摾'), + (0x2F8C5, 'M', u'撝'), + (0x2F8C6, 'M', u'摷'), + (0x2F8C7, 'M', u'㩬'), + (0x2F8C8, 'M', u'敏'), + (0x2F8C9, 'M', u'敬'), + (0x2F8CA, 'M', u'𣀊'), + (0x2F8CB, 'M', u'旣'), + (0x2F8CC, 'M', u'書'), + (0x2F8CD, 'M', u'晉'), + (0x2F8CE, 'M', u'㬙'), + (0x2F8CF, 'M', u'暑'), + (0x2F8D0, 'M', u'㬈'), + (0x2F8D1, 'M', u'㫤'), + (0x2F8D2, 'M', u'冒'), + (0x2F8D3, 'M', u'冕'), + (0x2F8D4, 'M', u'最'), + (0x2F8D5, 'M', u'暜'), + (0x2F8D6, 'M', u'肭'), + (0x2F8D7, 'M', u'䏙'), + (0x2F8D8, 'M', u'朗'), + (0x2F8D9, 'M', u'望'), + (0x2F8DA, 'M', u'朡'), + (0x2F8DB, 'M', u'杞'), + (0x2F8DC, 'M', u'杓'), + (0x2F8DD, 'M', u'𣏃'), + (0x2F8DE, 'M', u'㭉'), + (0x2F8DF, 'M', u'柺'), + (0x2F8E0, 'M', u'枅'), + (0x2F8E1, 'M', u'桒'), + (0x2F8E2, 'M', u'梅'), + (0x2F8E3, 'M', u'𣑭'), + (0x2F8E4, 'M', u'梎'), + (0x2F8E5, 'M', u'栟'), + (0x2F8E6, 'M', u'椔'), + (0x2F8E7, 'M', u'㮝'), + (0x2F8E8, 'M', u'楂'), + (0x2F8E9, 'M', u'榣'), + (0x2F8EA, 'M', u'槪'), + (0x2F8EB, 'M', u'檨'), + (0x2F8EC, 'M', u'𣚣'), + (0x2F8ED, 'M', u'櫛'), + (0x2F8EE, 'M', u'㰘'), + (0x2F8EF, 'M', u'次'), + (0x2F8F0, 'M', u'𣢧'), + (0x2F8F1, 'M', u'歔'), + (0x2F8F2, 'M', u'㱎'), + (0x2F8F3, 'M', u'歲'), + (0x2F8F4, 'M', u'殟'), + (0x2F8F5, 'M', u'殺'), + (0x2F8F6, 'M', u'殻'), + (0x2F8F7, 'M', u'𣪍'), + (0x2F8F8, 'M', u'𡴋'), + (0x2F8F9, 'M', u'𣫺'), + (0x2F8FA, 'M', u'汎'), + (0x2F8FB, 'M', u'𣲼'), + (0x2F8FC, 'M', u'沿'), + (0x2F8FD, 'M', u'泍'), + (0x2F8FE, 'M', u'汧'), + (0x2F8FF, 'M', u'洖'), + (0x2F900, 'M', u'派'), + (0x2F901, 'M', u'海'), + (0x2F902, 'M', u'流'), + (0x2F903, 'M', u'浩'), + (0x2F904, 'M', u'浸'), + (0x2F905, 'M', u'涅'), + (0x2F906, 'M', u'𣴞'), + (0x2F907, 'M', u'洴'), + (0x2F908, 'M', u'港'), + (0x2F909, 'M', u'湮'), + (0x2F90A, 'M', u'㴳'), + (0x2F90B, 'M', u'滋'), + (0x2F90C, 'M', u'滇'), + (0x2F90D, 'M', u'𣻑'), + (0x2F90E, 'M', u'淹'), + (0x2F90F, 'M', u'潮'), + (0x2F910, 'M', u'𣽞'), + (0x2F911, 'M', u'𣾎'), + (0x2F912, 'M', u'濆'), + (0x2F913, 'M', u'瀹'), + (0x2F914, 'M', u'瀞'), + (0x2F915, 'M', u'瀛'), + (0x2F916, 'M', u'㶖'), + (0x2F917, 'M', u'灊'), + (0x2F918, 'M', u'災'), + ] + +def _seg_70(): + return [ + (0x2F919, 'M', u'灷'), + (0x2F91A, 'M', u'炭'), + (0x2F91B, 'M', u'𠔥'), + (0x2F91C, 'M', u'煅'), + (0x2F91D, 'M', u'𤉣'), + (0x2F91E, 'M', u'熜'), + (0x2F91F, 'X'), + (0x2F920, 'M', u'爨'), + (0x2F921, 'M', u'爵'), + (0x2F922, 'M', u'牐'), + (0x2F923, 'M', u'𤘈'), + (0x2F924, 'M', u'犀'), + (0x2F925, 'M', u'犕'), + (0x2F926, 'M', u'𤜵'), + (0x2F927, 'M', u'𤠔'), + (0x2F928, 'M', u'獺'), + (0x2F929, 'M', u'王'), + (0x2F92A, 'M', u'㺬'), + (0x2F92B, 'M', u'玥'), + (0x2F92C, 'M', u'㺸'), + (0x2F92E, 'M', u'瑇'), + (0x2F92F, 'M', u'瑜'), + (0x2F930, 'M', u'瑱'), + (0x2F931, 'M', u'璅'), + (0x2F932, 'M', u'瓊'), + (0x2F933, 'M', u'㼛'), + (0x2F934, 'M', u'甤'), + (0x2F935, 'M', u'𤰶'), + (0x2F936, 'M', u'甾'), + (0x2F937, 'M', u'𤲒'), + (0x2F938, 'M', u'異'), + (0x2F939, 'M', u'𢆟'), + (0x2F93A, 'M', u'瘐'), + (0x2F93B, 'M', u'𤾡'), + (0x2F93C, 'M', u'𤾸'), + (0x2F93D, 'M', u'𥁄'), + (0x2F93E, 'M', u'㿼'), + (0x2F93F, 'M', u'䀈'), + (0x2F940, 'M', u'直'), + (0x2F941, 'M', u'𥃳'), + (0x2F942, 'M', u'𥃲'), + (0x2F943, 'M', u'𥄙'), + (0x2F944, 'M', u'𥄳'), + (0x2F945, 'M', u'眞'), + (0x2F946, 'M', u'真'), + (0x2F948, 'M', u'睊'), + (0x2F949, 'M', u'䀹'), + (0x2F94A, 'M', u'瞋'), + (0x2F94B, 'M', u'䁆'), + (0x2F94C, 'M', u'䂖'), + (0x2F94D, 'M', u'𥐝'), + (0x2F94E, 'M', u'硎'), + (0x2F94F, 'M', u'碌'), + (0x2F950, 'M', u'磌'), + (0x2F951, 'M', u'䃣'), + (0x2F952, 'M', u'𥘦'), + (0x2F953, 'M', u'祖'), + (0x2F954, 'M', u'𥚚'), + (0x2F955, 'M', u'𥛅'), + (0x2F956, 'M', u'福'), + (0x2F957, 'M', u'秫'), + (0x2F958, 'M', u'䄯'), + (0x2F959, 'M', u'穀'), + (0x2F95A, 'M', u'穊'), + (0x2F95B, 'M', u'穏'), + (0x2F95C, 'M', u'𥥼'), + (0x2F95D, 'M', u'𥪧'), + (0x2F95F, 'X'), + (0x2F960, 'M', u'䈂'), + (0x2F961, 'M', u'𥮫'), + (0x2F962, 'M', u'篆'), + (0x2F963, 'M', u'築'), + (0x2F964, 'M', u'䈧'), + (0x2F965, 'M', u'𥲀'), + (0x2F966, 'M', u'糒'), + (0x2F967, 'M', u'䊠'), + (0x2F968, 'M', u'糨'), + (0x2F969, 'M', u'糣'), + (0x2F96A, 'M', u'紀'), + (0x2F96B, 'M', u'𥾆'), + (0x2F96C, 'M', u'絣'), + (0x2F96D, 'M', u'䌁'), + (0x2F96E, 'M', u'緇'), + (0x2F96F, 'M', u'縂'), + (0x2F970, 'M', u'繅'), + (0x2F971, 'M', u'䌴'), + (0x2F972, 'M', u'𦈨'), + (0x2F973, 'M', u'𦉇'), + (0x2F974, 'M', u'䍙'), + (0x2F975, 'M', u'𦋙'), + (0x2F976, 'M', u'罺'), + (0x2F977, 'M', u'𦌾'), + (0x2F978, 'M', u'羕'), + (0x2F979, 'M', u'翺'), + (0x2F97A, 'M', u'者'), + (0x2F97B, 'M', u'𦓚'), + (0x2F97C, 'M', u'𦔣'), + (0x2F97D, 'M', u'聠'), + (0x2F97E, 'M', u'𦖨'), + (0x2F97F, 'M', u'聰'), + ] + +def _seg_71(): + return [ + (0x2F980, 'M', u'𣍟'), + (0x2F981, 'M', u'䏕'), + (0x2F982, 'M', u'育'), + (0x2F983, 'M', u'脃'), + (0x2F984, 'M', u'䐋'), + (0x2F985, 'M', u'脾'), + (0x2F986, 'M', u'媵'), + (0x2F987, 'M', u'𦞧'), + (0x2F988, 'M', u'𦞵'), + (0x2F989, 'M', u'𣎓'), + (0x2F98A, 'M', u'𣎜'), + (0x2F98B, 'M', u'舁'), + (0x2F98C, 'M', u'舄'), + (0x2F98D, 'M', u'辞'), + (0x2F98E, 'M', u'䑫'), + (0x2F98F, 'M', u'芑'), + (0x2F990, 'M', u'芋'), + (0x2F991, 'M', u'芝'), + (0x2F992, 'M', u'劳'), + (0x2F993, 'M', u'花'), + (0x2F994, 'M', u'芳'), + (0x2F995, 'M', u'芽'), + (0x2F996, 'M', u'苦'), + (0x2F997, 'M', u'𦬼'), + (0x2F998, 'M', u'若'), + (0x2F999, 'M', u'茝'), + (0x2F99A, 'M', u'荣'), + (0x2F99B, 'M', u'莭'), + (0x2F99C, 'M', u'茣'), + (0x2F99D, 'M', u'莽'), + (0x2F99E, 'M', u'菧'), + (0x2F99F, 'M', u'著'), + (0x2F9A0, 'M', u'荓'), + (0x2F9A1, 'M', u'菊'), + (0x2F9A2, 'M', u'菌'), + (0x2F9A3, 'M', u'菜'), + (0x2F9A4, 'M', u'𦰶'), + (0x2F9A5, 'M', u'𦵫'), + (0x2F9A6, 'M', u'𦳕'), + (0x2F9A7, 'M', u'䔫'), + (0x2F9A8, 'M', u'蓱'), + (0x2F9A9, 'M', u'蓳'), + (0x2F9AA, 'M', u'蔖'), + (0x2F9AB, 'M', u'𧏊'), + (0x2F9AC, 'M', u'蕤'), + (0x2F9AD, 'M', u'𦼬'), + (0x2F9AE, 'M', u'䕝'), + (0x2F9AF, 'M', u'䕡'), + (0x2F9B0, 'M', u'𦾱'), + (0x2F9B1, 'M', u'𧃒'), + (0x2F9B2, 'M', u'䕫'), + (0x2F9B3, 'M', u'虐'), + (0x2F9B4, 'M', u'虜'), + (0x2F9B5, 'M', u'虧'), + (0x2F9B6, 'M', u'虩'), + (0x2F9B7, 'M', u'蚩'), + (0x2F9B8, 'M', u'蚈'), + (0x2F9B9, 'M', u'蜎'), + (0x2F9BA, 'M', u'蛢'), + (0x2F9BB, 'M', u'蝹'), + (0x2F9BC, 'M', u'蜨'), + (0x2F9BD, 'M', u'蝫'), + (0x2F9BE, 'M', u'螆'), + (0x2F9BF, 'X'), + (0x2F9C0, 'M', u'蟡'), + (0x2F9C1, 'M', u'蠁'), + (0x2F9C2, 'M', u'䗹'), + (0x2F9C3, 'M', u'衠'), + (0x2F9C4, 'M', u'衣'), + (0x2F9C5, 'M', u'𧙧'), + (0x2F9C6, 'M', u'裗'), + (0x2F9C7, 'M', u'裞'), + (0x2F9C8, 'M', u'䘵'), + (0x2F9C9, 'M', u'裺'), + (0x2F9CA, 'M', u'㒻'), + (0x2F9CB, 'M', u'𧢮'), + (0x2F9CC, 'M', u'𧥦'), + (0x2F9CD, 'M', u'䚾'), + (0x2F9CE, 'M', u'䛇'), + (0x2F9CF, 'M', u'誠'), + (0x2F9D0, 'M', u'諭'), + (0x2F9D1, 'M', u'變'), + (0x2F9D2, 'M', u'豕'), + (0x2F9D3, 'M', u'𧲨'), + (0x2F9D4, 'M', u'貫'), + (0x2F9D5, 'M', u'賁'), + (0x2F9D6, 'M', u'贛'), + (0x2F9D7, 'M', u'起'), + (0x2F9D8, 'M', u'𧼯'), + (0x2F9D9, 'M', u'𠠄'), + (0x2F9DA, 'M', u'跋'), + (0x2F9DB, 'M', u'趼'), + (0x2F9DC, 'M', u'跰'), + (0x2F9DD, 'M', u'𠣞'), + (0x2F9DE, 'M', u'軔'), + (0x2F9DF, 'M', u'輸'), + (0x2F9E0, 'M', u'𨗒'), + (0x2F9E1, 'M', u'𨗭'), + (0x2F9E2, 'M', u'邔'), + (0x2F9E3, 'M', u'郱'), + ] + +def _seg_72(): + return [ + (0x2F9E4, 'M', u'鄑'), + (0x2F9E5, 'M', u'𨜮'), + (0x2F9E6, 'M', u'鄛'), + (0x2F9E7, 'M', u'鈸'), + (0x2F9E8, 'M', u'鋗'), + (0x2F9E9, 'M', u'鋘'), + (0x2F9EA, 'M', u'鉼'), + (0x2F9EB, 'M', u'鏹'), + (0x2F9EC, 'M', u'鐕'), + (0x2F9ED, 'M', u'𨯺'), + (0x2F9EE, 'M', u'開'), + (0x2F9EF, 'M', u'䦕'), + (0x2F9F0, 'M', u'閷'), + (0x2F9F1, 'M', u'𨵷'), + (0x2F9F2, 'M', u'䧦'), + (0x2F9F3, 'M', u'雃'), + (0x2F9F4, 'M', u'嶲'), + (0x2F9F5, 'M', u'霣'), + (0x2F9F6, 'M', u'𩅅'), + (0x2F9F7, 'M', u'𩈚'), + (0x2F9F8, 'M', u'䩮'), + (0x2F9F9, 'M', u'䩶'), + (0x2F9FA, 'M', u'韠'), + (0x2F9FB, 'M', u'𩐊'), + (0x2F9FC, 'M', u'䪲'), + (0x2F9FD, 'M', u'𩒖'), + (0x2F9FE, 'M', u'頋'), + (0x2FA00, 'M', u'頩'), + (0x2FA01, 'M', u'𩖶'), + (0x2FA02, 'M', u'飢'), + (0x2FA03, 'M', u'䬳'), + (0x2FA04, 'M', u'餩'), + (0x2FA05, 'M', u'馧'), + (0x2FA06, 'M', u'駂'), + (0x2FA07, 'M', u'駾'), + (0x2FA08, 'M', u'䯎'), + (0x2FA09, 'M', u'𩬰'), + (0x2FA0A, 'M', u'鬒'), + (0x2FA0B, 'M', u'鱀'), + (0x2FA0C, 'M', u'鳽'), + (0x2FA0D, 'M', u'䳎'), + (0x2FA0E, 'M', u'䳭'), + (0x2FA0F, 'M', u'鵧'), + (0x2FA10, 'M', u'𪃎'), + (0x2FA11, 'M', u'䳸'), + (0x2FA12, 'M', u'𪄅'), + (0x2FA13, 'M', u'𪈎'), + (0x2FA14, 'M', u'𪊑'), + (0x2FA15, 'M', u'麻'), + (0x2FA16, 'M', u'䵖'), + (0x2FA17, 'M', u'黹'), + (0x2FA18, 'M', u'黾'), + (0x2FA19, 'M', u'鼅'), + (0x2FA1A, 'M', u'鼏'), + (0x2FA1B, 'M', u'鼖'), + (0x2FA1C, 'M', u'鼻'), + (0x2FA1D, 'M', u'𪘀'), + (0x2FA1E, 'X'), + (0xE0100, 'I'), + (0xE01F0, 'X'), + ] + +uts46data = tuple( + _seg_0() + + _seg_1() + + _seg_2() + + _seg_3() + + _seg_4() + + _seg_5() + + _seg_6() + + _seg_7() + + _seg_8() + + _seg_9() + + _seg_10() + + _seg_11() + + _seg_12() + + _seg_13() + + _seg_14() + + _seg_15() + + _seg_16() + + _seg_17() + + _seg_18() + + _seg_19() + + _seg_20() + + _seg_21() + + _seg_22() + + _seg_23() + + _seg_24() + + _seg_25() + + _seg_26() + + _seg_27() + + _seg_28() + + _seg_29() + + _seg_30() + + _seg_31() + + _seg_32() + + _seg_33() + + _seg_34() + + _seg_35() + + _seg_36() + + _seg_37() + + _seg_38() + + _seg_39() + + _seg_40() + + _seg_41() + + _seg_42() + + _seg_43() + + _seg_44() + + _seg_45() + + _seg_46() + + _seg_47() + + _seg_48() + + _seg_49() + + _seg_50() + + _seg_51() + + _seg_52() + + _seg_53() + + _seg_54() + + _seg_55() + + _seg_56() + + _seg_57() + + _seg_58() + + _seg_59() + + _seg_60() + + _seg_61() + + _seg_62() + + _seg_63() + + _seg_64() + + _seg_65() + + _seg_66() + + _seg_67() + + _seg_68() + + _seg_69() + + _seg_70() + + _seg_71() + + _seg_72() +) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/ipaddress.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/ipaddress.py new file mode 100644 index 00000000..8cfdd58a --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/ipaddress.py @@ -0,0 +1,2419 @@ +# Copyright 2007 Google Inc. +# Licensed to PSF under a Contributor Agreement. + +"""A fast, lightweight IPv4/IPv6 manipulation library in Python. + +This library is used to create/poke/manipulate IPv4 and IPv6 addresses +and networks. + +""" + +from __future__ import unicode_literals + + +import itertools +import struct + +__version__ = '1.0.19' + +# Compatibility functions +_compat_int_types = (int,) +try: + _compat_int_types = (int, long) +except NameError: + pass +try: + _compat_str = unicode +except NameError: + _compat_str = str + assert bytes != str +if b'\0'[0] == 0: # Python 3 semantics + def _compat_bytes_to_byte_vals(byt): + return byt +else: + def _compat_bytes_to_byte_vals(byt): + return [struct.unpack(b'!B', b)[0] for b in byt] +try: + _compat_int_from_byte_vals = int.from_bytes +except AttributeError: + def _compat_int_from_byte_vals(bytvals, endianess): + assert endianess == 'big' + res = 0 + for bv in bytvals: + assert isinstance(bv, _compat_int_types) + res = (res << 8) + bv + return res + + +def _compat_to_bytes(intval, length, endianess): + assert isinstance(intval, _compat_int_types) + assert endianess == 'big' + if length == 4: + if intval < 0 or intval >= 2 ** 32: + raise struct.error("integer out of range for 'I' format code") + return struct.pack(b'!I', intval) + elif length == 16: + if intval < 0 or intval >= 2 ** 128: + raise struct.error("integer out of range for 'QQ' format code") + return struct.pack(b'!QQ', intval >> 64, intval & 0xffffffffffffffff) + else: + raise NotImplementedError() + + +if hasattr(int, 'bit_length'): + # Not int.bit_length , since that won't work in 2.7 where long exists + def _compat_bit_length(i): + return i.bit_length() +else: + def _compat_bit_length(i): + for res in itertools.count(): + if i >> res == 0: + return res + + +def _compat_range(start, end, step=1): + assert step > 0 + i = start + while i < end: + yield i + i += step + + +class _TotalOrderingMixin(object): + __slots__ = () + + # Helper that derives the other comparison operations from + # __lt__ and __eq__ + # We avoid functools.total_ordering because it doesn't handle + # NotImplemented correctly yet (http://bugs.python.org/issue10042) + def __eq__(self, other): + raise NotImplementedError + + def __ne__(self, other): + equal = self.__eq__(other) + if equal is NotImplemented: + return NotImplemented + return not equal + + def __lt__(self, other): + raise NotImplementedError + + def __le__(self, other): + less = self.__lt__(other) + if less is NotImplemented or not less: + return self.__eq__(other) + return less + + def __gt__(self, other): + less = self.__lt__(other) + if less is NotImplemented: + return NotImplemented + equal = self.__eq__(other) + if equal is NotImplemented: + return NotImplemented + return not (less or equal) + + def __ge__(self, other): + less = self.__lt__(other) + if less is NotImplemented: + return NotImplemented + return not less + + +IPV4LENGTH = 32 +IPV6LENGTH = 128 + + +class AddressValueError(ValueError): + """A Value Error related to the address.""" + + +class NetmaskValueError(ValueError): + """A Value Error related to the netmask.""" + + +def ip_address(address): + """Take an IP string/int and return an object of the correct type. + + Args: + address: A string or integer, the IP address. Either IPv4 or + IPv6 addresses may be supplied; integers less than 2**32 will + be considered to be IPv4 by default. + + Returns: + An IPv4Address or IPv6Address object. + + Raises: + ValueError: if the *address* passed isn't either a v4 or a v6 + address + + """ + try: + return IPv4Address(address) + except (AddressValueError, NetmaskValueError): + pass + + try: + return IPv6Address(address) + except (AddressValueError, NetmaskValueError): + pass + + if isinstance(address, bytes): + raise AddressValueError( + '%r does not appear to be an IPv4 or IPv6 address. ' + 'Did you pass in a bytes (str in Python 2) instead of' + ' a unicode object?' % address) + + raise ValueError('%r does not appear to be an IPv4 or IPv6 address' % + address) + + +def ip_network(address, strict=True): + """Take an IP string/int and return an object of the correct type. + + Args: + address: A string or integer, the IP network. Either IPv4 or + IPv6 networks may be supplied; integers less than 2**32 will + be considered to be IPv4 by default. + + Returns: + An IPv4Network or IPv6Network object. + + Raises: + ValueError: if the string passed isn't either a v4 or a v6 + address. Or if the network has host bits set. + + """ + try: + return IPv4Network(address, strict) + except (AddressValueError, NetmaskValueError): + pass + + try: + return IPv6Network(address, strict) + except (AddressValueError, NetmaskValueError): + pass + + if isinstance(address, bytes): + raise AddressValueError( + '%r does not appear to be an IPv4 or IPv6 network. ' + 'Did you pass in a bytes (str in Python 2) instead of' + ' a unicode object?' % address) + + raise ValueError('%r does not appear to be an IPv4 or IPv6 network' % + address) + + +def ip_interface(address): + """Take an IP string/int and return an object of the correct type. + + Args: + address: A string or integer, the IP address. Either IPv4 or + IPv6 addresses may be supplied; integers less than 2**32 will + be considered to be IPv4 by default. + + Returns: + An IPv4Interface or IPv6Interface object. + + Raises: + ValueError: if the string passed isn't either a v4 or a v6 + address. + + Notes: + The IPv?Interface classes describe an Address on a particular + Network, so they're basically a combination of both the Address + and Network classes. + + """ + try: + return IPv4Interface(address) + except (AddressValueError, NetmaskValueError): + pass + + try: + return IPv6Interface(address) + except (AddressValueError, NetmaskValueError): + pass + + raise ValueError('%r does not appear to be an IPv4 or IPv6 interface' % + address) + + +def v4_int_to_packed(address): + """Represent an address as 4 packed bytes in network (big-endian) order. + + Args: + address: An integer representation of an IPv4 IP address. + + Returns: + The integer address packed as 4 bytes in network (big-endian) order. + + Raises: + ValueError: If the integer is negative or too large to be an + IPv4 IP address. + + """ + try: + return _compat_to_bytes(address, 4, 'big') + except (struct.error, OverflowError): + raise ValueError("Address negative or too large for IPv4") + + +def v6_int_to_packed(address): + """Represent an address as 16 packed bytes in network (big-endian) order. + + Args: + address: An integer representation of an IPv6 IP address. + + Returns: + The integer address packed as 16 bytes in network (big-endian) order. + + """ + try: + return _compat_to_bytes(address, 16, 'big') + except (struct.error, OverflowError): + raise ValueError("Address negative or too large for IPv6") + + +def _split_optional_netmask(address): + """Helper to split the netmask and raise AddressValueError if needed""" + addr = _compat_str(address).split('/') + if len(addr) > 2: + raise AddressValueError("Only one '/' permitted in %r" % address) + return addr + + +def _find_address_range(addresses): + """Find a sequence of sorted deduplicated IPv#Address. + + Args: + addresses: a list of IPv#Address objects. + + Yields: + A tuple containing the first and last IP addresses in the sequence. + + """ + it = iter(addresses) + first = last = next(it) + for ip in it: + if ip._ip != last._ip + 1: + yield first, last + first = ip + last = ip + yield first, last + + +def _count_righthand_zero_bits(number, bits): + """Count the number of zero bits on the right hand side. + + Args: + number: an integer. + bits: maximum number of bits to count. + + Returns: + The number of zero bits on the right hand side of the number. + + """ + if number == 0: + return bits + return min(bits, _compat_bit_length(~number & (number - 1))) + + +def summarize_address_range(first, last): + """Summarize a network range given the first and last IP addresses. + + Example: + >>> list(summarize_address_range(IPv4Address('192.0.2.0'), + ... IPv4Address('192.0.2.130'))) + ... #doctest: +NORMALIZE_WHITESPACE + [IPv4Network('192.0.2.0/25'), IPv4Network('192.0.2.128/31'), + IPv4Network('192.0.2.130/32')] + + Args: + first: the first IPv4Address or IPv6Address in the range. + last: the last IPv4Address or IPv6Address in the range. + + Returns: + An iterator of the summarized IPv(4|6) network objects. + + Raise: + TypeError: + If the first and last objects are not IP addresses. + If the first and last objects are not the same version. + ValueError: + If the last object is not greater than the first. + If the version of the first address is not 4 or 6. + + """ + if (not (isinstance(first, _BaseAddress) and + isinstance(last, _BaseAddress))): + raise TypeError('first and last must be IP addresses, not networks') + if first.version != last.version: + raise TypeError("%s and %s are not of the same version" % ( + first, last)) + if first > last: + raise ValueError('last IP address must be greater than first') + + if first.version == 4: + ip = IPv4Network + elif first.version == 6: + ip = IPv6Network + else: + raise ValueError('unknown IP version') + + ip_bits = first._max_prefixlen + first_int = first._ip + last_int = last._ip + while first_int <= last_int: + nbits = min(_count_righthand_zero_bits(first_int, ip_bits), + _compat_bit_length(last_int - first_int + 1) - 1) + net = ip((first_int, ip_bits - nbits)) + yield net + first_int += 1 << nbits + if first_int - 1 == ip._ALL_ONES: + break + + +def _collapse_addresses_internal(addresses): + """Loops through the addresses, collapsing concurrent netblocks. + + Example: + + ip1 = IPv4Network('192.0.2.0/26') + ip2 = IPv4Network('192.0.2.64/26') + ip3 = IPv4Network('192.0.2.128/26') + ip4 = IPv4Network('192.0.2.192/26') + + _collapse_addresses_internal([ip1, ip2, ip3, ip4]) -> + [IPv4Network('192.0.2.0/24')] + + This shouldn't be called directly; it is called via + collapse_addresses([]). + + Args: + addresses: A list of IPv4Network's or IPv6Network's + + Returns: + A list of IPv4Network's or IPv6Network's depending on what we were + passed. + + """ + # First merge + to_merge = list(addresses) + subnets = {} + while to_merge: + net = to_merge.pop() + supernet = net.supernet() + existing = subnets.get(supernet) + if existing is None: + subnets[supernet] = net + elif existing != net: + # Merge consecutive subnets + del subnets[supernet] + to_merge.append(supernet) + # Then iterate over resulting networks, skipping subsumed subnets + last = None + for net in sorted(subnets.values()): + if last is not None: + # Since they are sorted, + # last.network_address <= net.network_address is a given. + if last.broadcast_address >= net.broadcast_address: + continue + yield net + last = net + + +def collapse_addresses(addresses): + """Collapse a list of IP objects. + + Example: + collapse_addresses([IPv4Network('192.0.2.0/25'), + IPv4Network('192.0.2.128/25')]) -> + [IPv4Network('192.0.2.0/24')] + + Args: + addresses: An iterator of IPv4Network or IPv6Network objects. + + Returns: + An iterator of the collapsed IPv(4|6)Network objects. + + Raises: + TypeError: If passed a list of mixed version objects. + + """ + addrs = [] + ips = [] + nets = [] + + # split IP addresses and networks + for ip in addresses: + if isinstance(ip, _BaseAddress): + if ips and ips[-1]._version != ip._version: + raise TypeError("%s and %s are not of the same version" % ( + ip, ips[-1])) + ips.append(ip) + elif ip._prefixlen == ip._max_prefixlen: + if ips and ips[-1]._version != ip._version: + raise TypeError("%s and %s are not of the same version" % ( + ip, ips[-1])) + try: + ips.append(ip.ip) + except AttributeError: + ips.append(ip.network_address) + else: + if nets and nets[-1]._version != ip._version: + raise TypeError("%s and %s are not of the same version" % ( + ip, nets[-1])) + nets.append(ip) + + # sort and dedup + ips = sorted(set(ips)) + + # find consecutive address ranges in the sorted sequence and summarize them + if ips: + for first, last in _find_address_range(ips): + addrs.extend(summarize_address_range(first, last)) + + return _collapse_addresses_internal(addrs + nets) + + +def get_mixed_type_key(obj): + """Return a key suitable for sorting between networks and addresses. + + Address and Network objects are not sortable by default; they're + fundamentally different so the expression + + IPv4Address('192.0.2.0') <= IPv4Network('192.0.2.0/24') + + doesn't make any sense. There are some times however, where you may wish + to have ipaddress sort these for you anyway. If you need to do this, you + can use this function as the key= argument to sorted(). + + Args: + obj: either a Network or Address object. + Returns: + appropriate key. + + """ + if isinstance(obj, _BaseNetwork): + return obj._get_networks_key() + elif isinstance(obj, _BaseAddress): + return obj._get_address_key() + return NotImplemented + + +class _IPAddressBase(_TotalOrderingMixin): + + """The mother class.""" + + __slots__ = () + + @property + def exploded(self): + """Return the longhand version of the IP address as a string.""" + return self._explode_shorthand_ip_string() + + @property + def compressed(self): + """Return the shorthand version of the IP address as a string.""" + return _compat_str(self) + + @property + def reverse_pointer(self): + """The name of the reverse DNS pointer for the IP address, e.g.: + >>> ipaddress.ip_address("127.0.0.1").reverse_pointer + '1.0.0.127.in-addr.arpa' + >>> ipaddress.ip_address("2001:db8::1").reverse_pointer + '1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa' + + """ + return self._reverse_pointer() + + @property + def version(self): + msg = '%200s has no version specified' % (type(self),) + raise NotImplementedError(msg) + + def _check_int_address(self, address): + if address < 0: + msg = "%d (< 0) is not permitted as an IPv%d address" + raise AddressValueError(msg % (address, self._version)) + if address > self._ALL_ONES: + msg = "%d (>= 2**%d) is not permitted as an IPv%d address" + raise AddressValueError(msg % (address, self._max_prefixlen, + self._version)) + + def _check_packed_address(self, address, expected_len): + address_len = len(address) + if address_len != expected_len: + msg = ( + '%r (len %d != %d) is not permitted as an IPv%d address. ' + 'Did you pass in a bytes (str in Python 2) instead of' + ' a unicode object?') + raise AddressValueError(msg % (address, address_len, + expected_len, self._version)) + + @classmethod + def _ip_int_from_prefix(cls, prefixlen): + """Turn the prefix length into a bitwise netmask + + Args: + prefixlen: An integer, the prefix length. + + Returns: + An integer. + + """ + return cls._ALL_ONES ^ (cls._ALL_ONES >> prefixlen) + + @classmethod + def _prefix_from_ip_int(cls, ip_int): + """Return prefix length from the bitwise netmask. + + Args: + ip_int: An integer, the netmask in expanded bitwise format + + Returns: + An integer, the prefix length. + + Raises: + ValueError: If the input intermingles zeroes & ones + """ + trailing_zeroes = _count_righthand_zero_bits(ip_int, + cls._max_prefixlen) + prefixlen = cls._max_prefixlen - trailing_zeroes + leading_ones = ip_int >> trailing_zeroes + all_ones = (1 << prefixlen) - 1 + if leading_ones != all_ones: + byteslen = cls._max_prefixlen // 8 + details = _compat_to_bytes(ip_int, byteslen, 'big') + msg = 'Netmask pattern %r mixes zeroes & ones' + raise ValueError(msg % details) + return prefixlen + + @classmethod + def _report_invalid_netmask(cls, netmask_str): + msg = '%r is not a valid netmask' % netmask_str + raise NetmaskValueError(msg) + + @classmethod + def _prefix_from_prefix_string(cls, prefixlen_str): + """Return prefix length from a numeric string + + Args: + prefixlen_str: The string to be converted + + Returns: + An integer, the prefix length. + + Raises: + NetmaskValueError: If the input is not a valid netmask + """ + # int allows a leading +/- as well as surrounding whitespace, + # so we ensure that isn't the case + if not _BaseV4._DECIMAL_DIGITS.issuperset(prefixlen_str): + cls._report_invalid_netmask(prefixlen_str) + try: + prefixlen = int(prefixlen_str) + except ValueError: + cls._report_invalid_netmask(prefixlen_str) + if not (0 <= prefixlen <= cls._max_prefixlen): + cls._report_invalid_netmask(prefixlen_str) + return prefixlen + + @classmethod + def _prefix_from_ip_string(cls, ip_str): + """Turn a netmask/hostmask string into a prefix length + + Args: + ip_str: The netmask/hostmask to be converted + + Returns: + An integer, the prefix length. + + Raises: + NetmaskValueError: If the input is not a valid netmask/hostmask + """ + # Parse the netmask/hostmask like an IP address. + try: + ip_int = cls._ip_int_from_string(ip_str) + except AddressValueError: + cls._report_invalid_netmask(ip_str) + + # Try matching a netmask (this would be /1*0*/ as a bitwise regexp). + # Note that the two ambiguous cases (all-ones and all-zeroes) are + # treated as netmasks. + try: + return cls._prefix_from_ip_int(ip_int) + except ValueError: + pass + + # Invert the bits, and try matching a /0+1+/ hostmask instead. + ip_int ^= cls._ALL_ONES + try: + return cls._prefix_from_ip_int(ip_int) + except ValueError: + cls._report_invalid_netmask(ip_str) + + def __reduce__(self): + return self.__class__, (_compat_str(self),) + + +class _BaseAddress(_IPAddressBase): + + """A generic IP object. + + This IP class contains the version independent methods which are + used by single IP addresses. + """ + + __slots__ = () + + def __int__(self): + return self._ip + + def __eq__(self, other): + try: + return (self._ip == other._ip and + self._version == other._version) + except AttributeError: + return NotImplemented + + def __lt__(self, other): + if not isinstance(other, _IPAddressBase): + return NotImplemented + if not isinstance(other, _BaseAddress): + raise TypeError('%s and %s are not of the same type' % ( + self, other)) + if self._version != other._version: + raise TypeError('%s and %s are not of the same version' % ( + self, other)) + if self._ip != other._ip: + return self._ip < other._ip + return False + + # Shorthand for Integer addition and subtraction. This is not + # meant to ever support addition/subtraction of addresses. + def __add__(self, other): + if not isinstance(other, _compat_int_types): + return NotImplemented + return self.__class__(int(self) + other) + + def __sub__(self, other): + if not isinstance(other, _compat_int_types): + return NotImplemented + return self.__class__(int(self) - other) + + def __repr__(self): + return '%s(%r)' % (self.__class__.__name__, _compat_str(self)) + + def __str__(self): + return _compat_str(self._string_from_ip_int(self._ip)) + + def __hash__(self): + return hash(hex(int(self._ip))) + + def _get_address_key(self): + return (self._version, self) + + def __reduce__(self): + return self.__class__, (self._ip,) + + +class _BaseNetwork(_IPAddressBase): + + """A generic IP network object. + + This IP class contains the version independent methods which are + used by networks. + + """ + def __init__(self, address): + self._cache = {} + + def __repr__(self): + return '%s(%r)' % (self.__class__.__name__, _compat_str(self)) + + def __str__(self): + return '%s/%d' % (self.network_address, self.prefixlen) + + def hosts(self): + """Generate Iterator over usable hosts in a network. + + This is like __iter__ except it doesn't return the network + or broadcast addresses. + + """ + network = int(self.network_address) + broadcast = int(self.broadcast_address) + for x in _compat_range(network + 1, broadcast): + yield self._address_class(x) + + def __iter__(self): + network = int(self.network_address) + broadcast = int(self.broadcast_address) + for x in _compat_range(network, broadcast + 1): + yield self._address_class(x) + + def __getitem__(self, n): + network = int(self.network_address) + broadcast = int(self.broadcast_address) + if n >= 0: + if network + n > broadcast: + raise IndexError('address out of range') + return self._address_class(network + n) + else: + n += 1 + if broadcast + n < network: + raise IndexError('address out of range') + return self._address_class(broadcast + n) + + def __lt__(self, other): + if not isinstance(other, _IPAddressBase): + return NotImplemented + if not isinstance(other, _BaseNetwork): + raise TypeError('%s and %s are not of the same type' % ( + self, other)) + if self._version != other._version: + raise TypeError('%s and %s are not of the same version' % ( + self, other)) + if self.network_address != other.network_address: + return self.network_address < other.network_address + if self.netmask != other.netmask: + return self.netmask < other.netmask + return False + + def __eq__(self, other): + try: + return (self._version == other._version and + self.network_address == other.network_address and + int(self.netmask) == int(other.netmask)) + except AttributeError: + return NotImplemented + + def __hash__(self): + return hash(int(self.network_address) ^ int(self.netmask)) + + def __contains__(self, other): + # always false if one is v4 and the other is v6. + if self._version != other._version: + return False + # dealing with another network. + if isinstance(other, _BaseNetwork): + return False + # dealing with another address + else: + # address + return (int(self.network_address) <= int(other._ip) <= + int(self.broadcast_address)) + + def overlaps(self, other): + """Tell if self is partly contained in other.""" + return self.network_address in other or ( + self.broadcast_address in other or ( + other.network_address in self or ( + other.broadcast_address in self))) + + @property + def broadcast_address(self): + x = self._cache.get('broadcast_address') + if x is None: + x = self._address_class(int(self.network_address) | + int(self.hostmask)) + self._cache['broadcast_address'] = x + return x + + @property + def hostmask(self): + x = self._cache.get('hostmask') + if x is None: + x = self._address_class(int(self.netmask) ^ self._ALL_ONES) + self._cache['hostmask'] = x + return x + + @property + def with_prefixlen(self): + return '%s/%d' % (self.network_address, self._prefixlen) + + @property + def with_netmask(self): + return '%s/%s' % (self.network_address, self.netmask) + + @property + def with_hostmask(self): + return '%s/%s' % (self.network_address, self.hostmask) + + @property + def num_addresses(self): + """Number of hosts in the current subnet.""" + return int(self.broadcast_address) - int(self.network_address) + 1 + + @property + def _address_class(self): + # Returning bare address objects (rather than interfaces) allows for + # more consistent behaviour across the network address, broadcast + # address and individual host addresses. + msg = '%200s has no associated address class' % (type(self),) + raise NotImplementedError(msg) + + @property + def prefixlen(self): + return self._prefixlen + + def address_exclude(self, other): + """Remove an address from a larger block. + + For example: + + addr1 = ip_network('192.0.2.0/28') + addr2 = ip_network('192.0.2.1/32') + list(addr1.address_exclude(addr2)) = + [IPv4Network('192.0.2.0/32'), IPv4Network('192.0.2.2/31'), + IPv4Network('192.0.2.4/30'), IPv4Network('192.0.2.8/29')] + + or IPv6: + + addr1 = ip_network('2001:db8::1/32') + addr2 = ip_network('2001:db8::1/128') + list(addr1.address_exclude(addr2)) = + [ip_network('2001:db8::1/128'), + ip_network('2001:db8::2/127'), + ip_network('2001:db8::4/126'), + ip_network('2001:db8::8/125'), + ... + ip_network('2001:db8:8000::/33')] + + Args: + other: An IPv4Network or IPv6Network object of the same type. + + Returns: + An iterator of the IPv(4|6)Network objects which is self + minus other. + + Raises: + TypeError: If self and other are of differing address + versions, or if other is not a network object. + ValueError: If other is not completely contained by self. + + """ + if not self._version == other._version: + raise TypeError("%s and %s are not of the same version" % ( + self, other)) + + if not isinstance(other, _BaseNetwork): + raise TypeError("%s is not a network object" % other) + + if not other.subnet_of(self): + raise ValueError('%s not contained in %s' % (other, self)) + if other == self: + return + + # Make sure we're comparing the network of other. + other = other.__class__('%s/%s' % (other.network_address, + other.prefixlen)) + + s1, s2 = self.subnets() + while s1 != other and s2 != other: + if other.subnet_of(s1): + yield s2 + s1, s2 = s1.subnets() + elif other.subnet_of(s2): + yield s1 + s1, s2 = s2.subnets() + else: + # If we got here, there's a bug somewhere. + raise AssertionError('Error performing exclusion: ' + 's1: %s s2: %s other: %s' % + (s1, s2, other)) + if s1 == other: + yield s2 + elif s2 == other: + yield s1 + else: + # If we got here, there's a bug somewhere. + raise AssertionError('Error performing exclusion: ' + 's1: %s s2: %s other: %s' % + (s1, s2, other)) + + def compare_networks(self, other): + """Compare two IP objects. + + This is only concerned about the comparison of the integer + representation of the network addresses. This means that the + host bits aren't considered at all in this method. If you want + to compare host bits, you can easily enough do a + 'HostA._ip < HostB._ip' + + Args: + other: An IP object. + + Returns: + If the IP versions of self and other are the same, returns: + + -1 if self < other: + eg: IPv4Network('192.0.2.0/25') < IPv4Network('192.0.2.128/25') + IPv6Network('2001:db8::1000/124') < + IPv6Network('2001:db8::2000/124') + 0 if self == other + eg: IPv4Network('192.0.2.0/24') == IPv4Network('192.0.2.0/24') + IPv6Network('2001:db8::1000/124') == + IPv6Network('2001:db8::1000/124') + 1 if self > other + eg: IPv4Network('192.0.2.128/25') > IPv4Network('192.0.2.0/25') + IPv6Network('2001:db8::2000/124') > + IPv6Network('2001:db8::1000/124') + + Raises: + TypeError if the IP versions are different. + + """ + # does this need to raise a ValueError? + if self._version != other._version: + raise TypeError('%s and %s are not of the same type' % ( + self, other)) + # self._version == other._version below here: + if self.network_address < other.network_address: + return -1 + if self.network_address > other.network_address: + return 1 + # self.network_address == other.network_address below here: + if self.netmask < other.netmask: + return -1 + if self.netmask > other.netmask: + return 1 + return 0 + + def _get_networks_key(self): + """Network-only key function. + + Returns an object that identifies this address' network and + netmask. This function is a suitable "key" argument for sorted() + and list.sort(). + + """ + return (self._version, self.network_address, self.netmask) + + def subnets(self, prefixlen_diff=1, new_prefix=None): + """The subnets which join to make the current subnet. + + In the case that self contains only one IP + (self._prefixlen == 32 for IPv4 or self._prefixlen == 128 + for IPv6), yield an iterator with just ourself. + + Args: + prefixlen_diff: An integer, the amount the prefix length + should be increased by. This should not be set if + new_prefix is also set. + new_prefix: The desired new prefix length. This must be a + larger number (smaller prefix) than the existing prefix. + This should not be set if prefixlen_diff is also set. + + Returns: + An iterator of IPv(4|6) objects. + + Raises: + ValueError: The prefixlen_diff is too small or too large. + OR + prefixlen_diff and new_prefix are both set or new_prefix + is a smaller number than the current prefix (smaller + number means a larger network) + + """ + if self._prefixlen == self._max_prefixlen: + yield self + return + + if new_prefix is not None: + if new_prefix < self._prefixlen: + raise ValueError('new prefix must be longer') + if prefixlen_diff != 1: + raise ValueError('cannot set prefixlen_diff and new_prefix') + prefixlen_diff = new_prefix - self._prefixlen + + if prefixlen_diff < 0: + raise ValueError('prefix length diff must be > 0') + new_prefixlen = self._prefixlen + prefixlen_diff + + if new_prefixlen > self._max_prefixlen: + raise ValueError( + 'prefix length diff %d is invalid for netblock %s' % ( + new_prefixlen, self)) + + start = int(self.network_address) + end = int(self.broadcast_address) + 1 + step = (int(self.hostmask) + 1) >> prefixlen_diff + for new_addr in _compat_range(start, end, step): + current = self.__class__((new_addr, new_prefixlen)) + yield current + + def supernet(self, prefixlen_diff=1, new_prefix=None): + """The supernet containing the current network. + + Args: + prefixlen_diff: An integer, the amount the prefix length of + the network should be decreased by. For example, given a + /24 network and a prefixlen_diff of 3, a supernet with a + /21 netmask is returned. + + Returns: + An IPv4 network object. + + Raises: + ValueError: If self.prefixlen - prefixlen_diff < 0. I.e., you have + a negative prefix length. + OR + If prefixlen_diff and new_prefix are both set or new_prefix is a + larger number than the current prefix (larger number means a + smaller network) + + """ + if self._prefixlen == 0: + return self + + if new_prefix is not None: + if new_prefix > self._prefixlen: + raise ValueError('new prefix must be shorter') + if prefixlen_diff != 1: + raise ValueError('cannot set prefixlen_diff and new_prefix') + prefixlen_diff = self._prefixlen - new_prefix + + new_prefixlen = self.prefixlen - prefixlen_diff + if new_prefixlen < 0: + raise ValueError( + 'current prefixlen is %d, cannot have a prefixlen_diff of %d' % + (self.prefixlen, prefixlen_diff)) + return self.__class__(( + int(self.network_address) & (int(self.netmask) << prefixlen_diff), + new_prefixlen)) + + @property + def is_multicast(self): + """Test if the address is reserved for multicast use. + + Returns: + A boolean, True if the address is a multicast address. + See RFC 2373 2.7 for details. + + """ + return (self.network_address.is_multicast and + self.broadcast_address.is_multicast) + + @staticmethod + def _is_subnet_of(a, b): + try: + # Always false if one is v4 and the other is v6. + if a._version != b._version: + raise TypeError("%s and %s are not of the same version" (a, b)) + return (b.network_address <= a.network_address and + b.broadcast_address >= a.broadcast_address) + except AttributeError: + raise TypeError("Unable to test subnet containment " + "between %s and %s" % (a, b)) + + def subnet_of(self, other): + """Return True if this network is a subnet of other.""" + return self._is_subnet_of(self, other) + + def supernet_of(self, other): + """Return True if this network is a supernet of other.""" + return self._is_subnet_of(other, self) + + @property + def is_reserved(self): + """Test if the address is otherwise IETF reserved. + + Returns: + A boolean, True if the address is within one of the + reserved IPv6 Network ranges. + + """ + return (self.network_address.is_reserved and + self.broadcast_address.is_reserved) + + @property + def is_link_local(self): + """Test if the address is reserved for link-local. + + Returns: + A boolean, True if the address is reserved per RFC 4291. + + """ + return (self.network_address.is_link_local and + self.broadcast_address.is_link_local) + + @property + def is_private(self): + """Test if this address is allocated for private networks. + + Returns: + A boolean, True if the address is reserved per + iana-ipv4-special-registry or iana-ipv6-special-registry. + + """ + return (self.network_address.is_private and + self.broadcast_address.is_private) + + @property + def is_global(self): + """Test if this address is allocated for public networks. + + Returns: + A boolean, True if the address is not reserved per + iana-ipv4-special-registry or iana-ipv6-special-registry. + + """ + return not self.is_private + + @property + def is_unspecified(self): + """Test if the address is unspecified. + + Returns: + A boolean, True if this is the unspecified address as defined in + RFC 2373 2.5.2. + + """ + return (self.network_address.is_unspecified and + self.broadcast_address.is_unspecified) + + @property + def is_loopback(self): + """Test if the address is a loopback address. + + Returns: + A boolean, True if the address is a loopback address as defined in + RFC 2373 2.5.3. + + """ + return (self.network_address.is_loopback and + self.broadcast_address.is_loopback) + + +class _BaseV4(object): + + """Base IPv4 object. + + The following methods are used by IPv4 objects in both single IP + addresses and networks. + + """ + + __slots__ = () + _version = 4 + # Equivalent to 255.255.255.255 or 32 bits of 1's. + _ALL_ONES = (2 ** IPV4LENGTH) - 1 + _DECIMAL_DIGITS = frozenset('0123456789') + + # the valid octets for host and netmasks. only useful for IPv4. + _valid_mask_octets = frozenset([255, 254, 252, 248, 240, 224, 192, 128, 0]) + + _max_prefixlen = IPV4LENGTH + # There are only a handful of valid v4 netmasks, so we cache them all + # when constructed (see _make_netmask()). + _netmask_cache = {} + + def _explode_shorthand_ip_string(self): + return _compat_str(self) + + @classmethod + def _make_netmask(cls, arg): + """Make a (netmask, prefix_len) tuple from the given argument. + + Argument can be: + - an integer (the prefix length) + - a string representing the prefix length (e.g. "24") + - a string representing the prefix netmask (e.g. "255.255.255.0") + """ + if arg not in cls._netmask_cache: + if isinstance(arg, _compat_int_types): + prefixlen = arg + else: + try: + # Check for a netmask in prefix length form + prefixlen = cls._prefix_from_prefix_string(arg) + except NetmaskValueError: + # Check for a netmask or hostmask in dotted-quad form. + # This may raise NetmaskValueError. + prefixlen = cls._prefix_from_ip_string(arg) + netmask = IPv4Address(cls._ip_int_from_prefix(prefixlen)) + cls._netmask_cache[arg] = netmask, prefixlen + return cls._netmask_cache[arg] + + @classmethod + def _ip_int_from_string(cls, ip_str): + """Turn the given IP string into an integer for comparison. + + Args: + ip_str: A string, the IP ip_str. + + Returns: + The IP ip_str as an integer. + + Raises: + AddressValueError: if ip_str isn't a valid IPv4 Address. + + """ + if not ip_str: + raise AddressValueError('Address cannot be empty') + + octets = ip_str.split('.') + if len(octets) != 4: + raise AddressValueError("Expected 4 octets in %r" % ip_str) + + try: + return _compat_int_from_byte_vals( + map(cls._parse_octet, octets), 'big') + except ValueError as exc: + raise AddressValueError("%s in %r" % (exc, ip_str)) + + @classmethod + def _parse_octet(cls, octet_str): + """Convert a decimal octet into an integer. + + Args: + octet_str: A string, the number to parse. + + Returns: + The octet as an integer. + + Raises: + ValueError: if the octet isn't strictly a decimal from [0..255]. + + """ + if not octet_str: + raise ValueError("Empty octet not permitted") + # Whitelist the characters, since int() allows a lot of bizarre stuff. + if not cls._DECIMAL_DIGITS.issuperset(octet_str): + msg = "Only decimal digits permitted in %r" + raise ValueError(msg % octet_str) + # We do the length check second, since the invalid character error + # is likely to be more informative for the user + if len(octet_str) > 3: + msg = "At most 3 characters permitted in %r" + raise ValueError(msg % octet_str) + # Convert to integer (we know digits are legal) + octet_int = int(octet_str, 10) + # Any octets that look like they *might* be written in octal, + # and which don't look exactly the same in both octal and + # decimal are rejected as ambiguous + if octet_int > 7 and octet_str[0] == '0': + msg = "Ambiguous (octal/decimal) value in %r not permitted" + raise ValueError(msg % octet_str) + if octet_int > 255: + raise ValueError("Octet %d (> 255) not permitted" % octet_int) + return octet_int + + @classmethod + def _string_from_ip_int(cls, ip_int): + """Turns a 32-bit integer into dotted decimal notation. + + Args: + ip_int: An integer, the IP address. + + Returns: + The IP address as a string in dotted decimal notation. + + """ + return '.'.join(_compat_str(struct.unpack(b'!B', b)[0] + if isinstance(b, bytes) + else b) + for b in _compat_to_bytes(ip_int, 4, 'big')) + + def _is_hostmask(self, ip_str): + """Test if the IP string is a hostmask (rather than a netmask). + + Args: + ip_str: A string, the potential hostmask. + + Returns: + A boolean, True if the IP string is a hostmask. + + """ + bits = ip_str.split('.') + try: + parts = [x for x in map(int, bits) if x in self._valid_mask_octets] + except ValueError: + return False + if len(parts) != len(bits): + return False + if parts[0] < parts[-1]: + return True + return False + + def _reverse_pointer(self): + """Return the reverse DNS pointer name for the IPv4 address. + + This implements the method described in RFC1035 3.5. + + """ + reverse_octets = _compat_str(self).split('.')[::-1] + return '.'.join(reverse_octets) + '.in-addr.arpa' + + @property + def max_prefixlen(self): + return self._max_prefixlen + + @property + def version(self): + return self._version + + +class IPv4Address(_BaseV4, _BaseAddress): + + """Represent and manipulate single IPv4 Addresses.""" + + __slots__ = ('_ip', '__weakref__') + + def __init__(self, address): + + """ + Args: + address: A string or integer representing the IP + + Additionally, an integer can be passed, so + IPv4Address('192.0.2.1') == IPv4Address(3221225985). + or, more generally + IPv4Address(int(IPv4Address('192.0.2.1'))) == + IPv4Address('192.0.2.1') + + Raises: + AddressValueError: If ipaddress isn't a valid IPv4 address. + + """ + # Efficient constructor from integer. + if isinstance(address, _compat_int_types): + self._check_int_address(address) + self._ip = address + return + + # Constructing from a packed address + if isinstance(address, bytes): + self._check_packed_address(address, 4) + bvs = _compat_bytes_to_byte_vals(address) + self._ip = _compat_int_from_byte_vals(bvs, 'big') + return + + # Assume input argument to be string or any object representation + # which converts into a formatted IP string. + addr_str = _compat_str(address) + if '/' in addr_str: + raise AddressValueError("Unexpected '/' in %r" % address) + self._ip = self._ip_int_from_string(addr_str) + + @property + def packed(self): + """The binary representation of this address.""" + return v4_int_to_packed(self._ip) + + @property + def is_reserved(self): + """Test if the address is otherwise IETF reserved. + + Returns: + A boolean, True if the address is within the + reserved IPv4 Network range. + + """ + return self in self._constants._reserved_network + + @property + def is_private(self): + """Test if this address is allocated for private networks. + + Returns: + A boolean, True if the address is reserved per + iana-ipv4-special-registry. + + """ + return any(self in net for net in self._constants._private_networks) + + @property + def is_global(self): + return ( + self not in self._constants._public_network and + not self.is_private) + + @property + def is_multicast(self): + """Test if the address is reserved for multicast use. + + Returns: + A boolean, True if the address is multicast. + See RFC 3171 for details. + + """ + return self in self._constants._multicast_network + + @property + def is_unspecified(self): + """Test if the address is unspecified. + + Returns: + A boolean, True if this is the unspecified address as defined in + RFC 5735 3. + + """ + return self == self._constants._unspecified_address + + @property + def is_loopback(self): + """Test if the address is a loopback address. + + Returns: + A boolean, True if the address is a loopback per RFC 3330. + + """ + return self in self._constants._loopback_network + + @property + def is_link_local(self): + """Test if the address is reserved for link-local. + + Returns: + A boolean, True if the address is link-local per RFC 3927. + + """ + return self in self._constants._linklocal_network + + +class IPv4Interface(IPv4Address): + + def __init__(self, address): + if isinstance(address, (bytes, _compat_int_types)): + IPv4Address.__init__(self, address) + self.network = IPv4Network(self._ip) + self._prefixlen = self._max_prefixlen + return + + if isinstance(address, tuple): + IPv4Address.__init__(self, address[0]) + if len(address) > 1: + self._prefixlen = int(address[1]) + else: + self._prefixlen = self._max_prefixlen + + self.network = IPv4Network(address, strict=False) + self.netmask = self.network.netmask + self.hostmask = self.network.hostmask + return + + addr = _split_optional_netmask(address) + IPv4Address.__init__(self, addr[0]) + + self.network = IPv4Network(address, strict=False) + self._prefixlen = self.network._prefixlen + + self.netmask = self.network.netmask + self.hostmask = self.network.hostmask + + def __str__(self): + return '%s/%d' % (self._string_from_ip_int(self._ip), + self.network.prefixlen) + + def __eq__(self, other): + address_equal = IPv4Address.__eq__(self, other) + if not address_equal or address_equal is NotImplemented: + return address_equal + try: + return self.network == other.network + except AttributeError: + # An interface with an associated network is NOT the + # same as an unassociated address. That's why the hash + # takes the extra info into account. + return False + + def __lt__(self, other): + address_less = IPv4Address.__lt__(self, other) + if address_less is NotImplemented: + return NotImplemented + try: + return (self.network < other.network or + self.network == other.network and address_less) + except AttributeError: + # We *do* allow addresses and interfaces to be sorted. The + # unassociated address is considered less than all interfaces. + return False + + def __hash__(self): + return self._ip ^ self._prefixlen ^ int(self.network.network_address) + + __reduce__ = _IPAddressBase.__reduce__ + + @property + def ip(self): + return IPv4Address(self._ip) + + @property + def with_prefixlen(self): + return '%s/%s' % (self._string_from_ip_int(self._ip), + self._prefixlen) + + @property + def with_netmask(self): + return '%s/%s' % (self._string_from_ip_int(self._ip), + self.netmask) + + @property + def with_hostmask(self): + return '%s/%s' % (self._string_from_ip_int(self._ip), + self.hostmask) + + +class IPv4Network(_BaseV4, _BaseNetwork): + + """This class represents and manipulates 32-bit IPv4 network + addresses.. + + Attributes: [examples for IPv4Network('192.0.2.0/27')] + .network_address: IPv4Address('192.0.2.0') + .hostmask: IPv4Address('0.0.0.31') + .broadcast_address: IPv4Address('192.0.2.32') + .netmask: IPv4Address('255.255.255.224') + .prefixlen: 27 + + """ + # Class to use when creating address objects + _address_class = IPv4Address + + def __init__(self, address, strict=True): + + """Instantiate a new IPv4 network object. + + Args: + address: A string or integer representing the IP [& network]. + '192.0.2.0/24' + '192.0.2.0/255.255.255.0' + '192.0.0.2/0.0.0.255' + are all functionally the same in IPv4. Similarly, + '192.0.2.1' + '192.0.2.1/255.255.255.255' + '192.0.2.1/32' + are also functionally equivalent. That is to say, failing to + provide a subnetmask will create an object with a mask of /32. + + If the mask (portion after the / in the argument) is given in + dotted quad form, it is treated as a netmask if it starts with a + non-zero field (e.g. /255.0.0.0 == /8) and as a hostmask if it + starts with a zero field (e.g. 0.255.255.255 == /8), with the + single exception of an all-zero mask which is treated as a + netmask == /0. If no mask is given, a default of /32 is used. + + Additionally, an integer can be passed, so + IPv4Network('192.0.2.1') == IPv4Network(3221225985) + or, more generally + IPv4Interface(int(IPv4Interface('192.0.2.1'))) == + IPv4Interface('192.0.2.1') + + Raises: + AddressValueError: If ipaddress isn't a valid IPv4 address. + NetmaskValueError: If the netmask isn't valid for + an IPv4 address. + ValueError: If strict is True and a network address is not + supplied. + + """ + _BaseNetwork.__init__(self, address) + + # Constructing from a packed address or integer + if isinstance(address, (_compat_int_types, bytes)): + self.network_address = IPv4Address(address) + self.netmask, self._prefixlen = self._make_netmask( + self._max_prefixlen) + # fixme: address/network test here. + return + + if isinstance(address, tuple): + if len(address) > 1: + arg = address[1] + else: + # We weren't given an address[1] + arg = self._max_prefixlen + self.network_address = IPv4Address(address[0]) + self.netmask, self._prefixlen = self._make_netmask(arg) + packed = int(self.network_address) + if packed & int(self.netmask) != packed: + if strict: + raise ValueError('%s has host bits set' % self) + else: + self.network_address = IPv4Address(packed & + int(self.netmask)) + return + + # Assume input argument to be string or any object representation + # which converts into a formatted IP prefix string. + addr = _split_optional_netmask(address) + self.network_address = IPv4Address(self._ip_int_from_string(addr[0])) + + if len(addr) == 2: + arg = addr[1] + else: + arg = self._max_prefixlen + self.netmask, self._prefixlen = self._make_netmask(arg) + + if strict: + if (IPv4Address(int(self.network_address) & int(self.netmask)) != + self.network_address): + raise ValueError('%s has host bits set' % self) + self.network_address = IPv4Address(int(self.network_address) & + int(self.netmask)) + + if self._prefixlen == (self._max_prefixlen - 1): + self.hosts = self.__iter__ + + @property + def is_global(self): + """Test if this address is allocated for public networks. + + Returns: + A boolean, True if the address is not reserved per + iana-ipv4-special-registry. + + """ + return (not (self.network_address in IPv4Network('100.64.0.0/10') and + self.broadcast_address in IPv4Network('100.64.0.0/10')) and + not self.is_private) + + +class _IPv4Constants(object): + + _linklocal_network = IPv4Network('169.254.0.0/16') + + _loopback_network = IPv4Network('127.0.0.0/8') + + _multicast_network = IPv4Network('224.0.0.0/4') + + _public_network = IPv4Network('100.64.0.0/10') + + _private_networks = [ + IPv4Network('0.0.0.0/8'), + IPv4Network('10.0.0.0/8'), + IPv4Network('127.0.0.0/8'), + IPv4Network('169.254.0.0/16'), + IPv4Network('172.16.0.0/12'), + IPv4Network('192.0.0.0/29'), + IPv4Network('192.0.0.170/31'), + IPv4Network('192.0.2.0/24'), + IPv4Network('192.168.0.0/16'), + IPv4Network('198.18.0.0/15'), + IPv4Network('198.51.100.0/24'), + IPv4Network('203.0.113.0/24'), + IPv4Network('240.0.0.0/4'), + IPv4Network('255.255.255.255/32'), + ] + + _reserved_network = IPv4Network('240.0.0.0/4') + + _unspecified_address = IPv4Address('0.0.0.0') + + +IPv4Address._constants = _IPv4Constants + + +class _BaseV6(object): + + """Base IPv6 object. + + The following methods are used by IPv6 objects in both single IP + addresses and networks. + + """ + + __slots__ = () + _version = 6 + _ALL_ONES = (2 ** IPV6LENGTH) - 1 + _HEXTET_COUNT = 8 + _HEX_DIGITS = frozenset('0123456789ABCDEFabcdef') + _max_prefixlen = IPV6LENGTH + + # There are only a bunch of valid v6 netmasks, so we cache them all + # when constructed (see _make_netmask()). + _netmask_cache = {} + + @classmethod + def _make_netmask(cls, arg): + """Make a (netmask, prefix_len) tuple from the given argument. + + Argument can be: + - an integer (the prefix length) + - a string representing the prefix length (e.g. "24") + - a string representing the prefix netmask (e.g. "255.255.255.0") + """ + if arg not in cls._netmask_cache: + if isinstance(arg, _compat_int_types): + prefixlen = arg + else: + prefixlen = cls._prefix_from_prefix_string(arg) + netmask = IPv6Address(cls._ip_int_from_prefix(prefixlen)) + cls._netmask_cache[arg] = netmask, prefixlen + return cls._netmask_cache[arg] + + @classmethod + def _ip_int_from_string(cls, ip_str): + """Turn an IPv6 ip_str into an integer. + + Args: + ip_str: A string, the IPv6 ip_str. + + Returns: + An int, the IPv6 address + + Raises: + AddressValueError: if ip_str isn't a valid IPv6 Address. + + """ + if not ip_str: + raise AddressValueError('Address cannot be empty') + + parts = ip_str.split(':') + + # An IPv6 address needs at least 2 colons (3 parts). + _min_parts = 3 + if len(parts) < _min_parts: + msg = "At least %d parts expected in %r" % (_min_parts, ip_str) + raise AddressValueError(msg) + + # If the address has an IPv4-style suffix, convert it to hexadecimal. + if '.' in parts[-1]: + try: + ipv4_int = IPv4Address(parts.pop())._ip + except AddressValueError as exc: + raise AddressValueError("%s in %r" % (exc, ip_str)) + parts.append('%x' % ((ipv4_int >> 16) & 0xFFFF)) + parts.append('%x' % (ipv4_int & 0xFFFF)) + + # An IPv6 address can't have more than 8 colons (9 parts). + # The extra colon comes from using the "::" notation for a single + # leading or trailing zero part. + _max_parts = cls._HEXTET_COUNT + 1 + if len(parts) > _max_parts: + msg = "At most %d colons permitted in %r" % ( + _max_parts - 1, ip_str) + raise AddressValueError(msg) + + # Disregarding the endpoints, find '::' with nothing in between. + # This indicates that a run of zeroes has been skipped. + skip_index = None + for i in _compat_range(1, len(parts) - 1): + if not parts[i]: + if skip_index is not None: + # Can't have more than one '::' + msg = "At most one '::' permitted in %r" % ip_str + raise AddressValueError(msg) + skip_index = i + + # parts_hi is the number of parts to copy from above/before the '::' + # parts_lo is the number of parts to copy from below/after the '::' + if skip_index is not None: + # If we found a '::', then check if it also covers the endpoints. + parts_hi = skip_index + parts_lo = len(parts) - skip_index - 1 + if not parts[0]: + parts_hi -= 1 + if parts_hi: + msg = "Leading ':' only permitted as part of '::' in %r" + raise AddressValueError(msg % ip_str) # ^: requires ^:: + if not parts[-1]: + parts_lo -= 1 + if parts_lo: + msg = "Trailing ':' only permitted as part of '::' in %r" + raise AddressValueError(msg % ip_str) # :$ requires ::$ + parts_skipped = cls._HEXTET_COUNT - (parts_hi + parts_lo) + if parts_skipped < 1: + msg = "Expected at most %d other parts with '::' in %r" + raise AddressValueError(msg % (cls._HEXTET_COUNT - 1, ip_str)) + else: + # Otherwise, allocate the entire address to parts_hi. The + # endpoints could still be empty, but _parse_hextet() will check + # for that. + if len(parts) != cls._HEXTET_COUNT: + msg = "Exactly %d parts expected without '::' in %r" + raise AddressValueError(msg % (cls._HEXTET_COUNT, ip_str)) + if not parts[0]: + msg = "Leading ':' only permitted as part of '::' in %r" + raise AddressValueError(msg % ip_str) # ^: requires ^:: + if not parts[-1]: + msg = "Trailing ':' only permitted as part of '::' in %r" + raise AddressValueError(msg % ip_str) # :$ requires ::$ + parts_hi = len(parts) + parts_lo = 0 + parts_skipped = 0 + + try: + # Now, parse the hextets into a 128-bit integer. + ip_int = 0 + for i in range(parts_hi): + ip_int <<= 16 + ip_int |= cls._parse_hextet(parts[i]) + ip_int <<= 16 * parts_skipped + for i in range(-parts_lo, 0): + ip_int <<= 16 + ip_int |= cls._parse_hextet(parts[i]) + return ip_int + except ValueError as exc: + raise AddressValueError("%s in %r" % (exc, ip_str)) + + @classmethod + def _parse_hextet(cls, hextet_str): + """Convert an IPv6 hextet string into an integer. + + Args: + hextet_str: A string, the number to parse. + + Returns: + The hextet as an integer. + + Raises: + ValueError: if the input isn't strictly a hex number from + [0..FFFF]. + + """ + # Whitelist the characters, since int() allows a lot of bizarre stuff. + if not cls._HEX_DIGITS.issuperset(hextet_str): + raise ValueError("Only hex digits permitted in %r" % hextet_str) + # We do the length check second, since the invalid character error + # is likely to be more informative for the user + if len(hextet_str) > 4: + msg = "At most 4 characters permitted in %r" + raise ValueError(msg % hextet_str) + # Length check means we can skip checking the integer value + return int(hextet_str, 16) + + @classmethod + def _compress_hextets(cls, hextets): + """Compresses a list of hextets. + + Compresses a list of strings, replacing the longest continuous + sequence of "0" in the list with "" and adding empty strings at + the beginning or at the end of the string such that subsequently + calling ":".join(hextets) will produce the compressed version of + the IPv6 address. + + Args: + hextets: A list of strings, the hextets to compress. + + Returns: + A list of strings. + + """ + best_doublecolon_start = -1 + best_doublecolon_len = 0 + doublecolon_start = -1 + doublecolon_len = 0 + for index, hextet in enumerate(hextets): + if hextet == '0': + doublecolon_len += 1 + if doublecolon_start == -1: + # Start of a sequence of zeros. + doublecolon_start = index + if doublecolon_len > best_doublecolon_len: + # This is the longest sequence of zeros so far. + best_doublecolon_len = doublecolon_len + best_doublecolon_start = doublecolon_start + else: + doublecolon_len = 0 + doublecolon_start = -1 + + if best_doublecolon_len > 1: + best_doublecolon_end = (best_doublecolon_start + + best_doublecolon_len) + # For zeros at the end of the address. + if best_doublecolon_end == len(hextets): + hextets += [''] + hextets[best_doublecolon_start:best_doublecolon_end] = [''] + # For zeros at the beginning of the address. + if best_doublecolon_start == 0: + hextets = [''] + hextets + + return hextets + + @classmethod + def _string_from_ip_int(cls, ip_int=None): + """Turns a 128-bit integer into hexadecimal notation. + + Args: + ip_int: An integer, the IP address. + + Returns: + A string, the hexadecimal representation of the address. + + Raises: + ValueError: The address is bigger than 128 bits of all ones. + + """ + if ip_int is None: + ip_int = int(cls._ip) + + if ip_int > cls._ALL_ONES: + raise ValueError('IPv6 address is too large') + + hex_str = '%032x' % ip_int + hextets = ['%x' % int(hex_str[x:x + 4], 16) for x in range(0, 32, 4)] + + hextets = cls._compress_hextets(hextets) + return ':'.join(hextets) + + def _explode_shorthand_ip_string(self): + """Expand a shortened IPv6 address. + + Args: + ip_str: A string, the IPv6 address. + + Returns: + A string, the expanded IPv6 address. + + """ + if isinstance(self, IPv6Network): + ip_str = _compat_str(self.network_address) + elif isinstance(self, IPv6Interface): + ip_str = _compat_str(self.ip) + else: + ip_str = _compat_str(self) + + ip_int = self._ip_int_from_string(ip_str) + hex_str = '%032x' % ip_int + parts = [hex_str[x:x + 4] for x in range(0, 32, 4)] + if isinstance(self, (_BaseNetwork, IPv6Interface)): + return '%s/%d' % (':'.join(parts), self._prefixlen) + return ':'.join(parts) + + def _reverse_pointer(self): + """Return the reverse DNS pointer name for the IPv6 address. + + This implements the method described in RFC3596 2.5. + + """ + reverse_chars = self.exploded[::-1].replace(':', '') + return '.'.join(reverse_chars) + '.ip6.arpa' + + @property + def max_prefixlen(self): + return self._max_prefixlen + + @property + def version(self): + return self._version + + +class IPv6Address(_BaseV6, _BaseAddress): + + """Represent and manipulate single IPv6 Addresses.""" + + __slots__ = ('_ip', '__weakref__') + + def __init__(self, address): + """Instantiate a new IPv6 address object. + + Args: + address: A string or integer representing the IP + + Additionally, an integer can be passed, so + IPv6Address('2001:db8::') == + IPv6Address(42540766411282592856903984951653826560) + or, more generally + IPv6Address(int(IPv6Address('2001:db8::'))) == + IPv6Address('2001:db8::') + + Raises: + AddressValueError: If address isn't a valid IPv6 address. + + """ + # Efficient constructor from integer. + if isinstance(address, _compat_int_types): + self._check_int_address(address) + self._ip = address + return + + # Constructing from a packed address + if isinstance(address, bytes): + self._check_packed_address(address, 16) + bvs = _compat_bytes_to_byte_vals(address) + self._ip = _compat_int_from_byte_vals(bvs, 'big') + return + + # Assume input argument to be string or any object representation + # which converts into a formatted IP string. + addr_str = _compat_str(address) + if '/' in addr_str: + raise AddressValueError("Unexpected '/' in %r" % address) + self._ip = self._ip_int_from_string(addr_str) + + @property + def packed(self): + """The binary representation of this address.""" + return v6_int_to_packed(self._ip) + + @property + def is_multicast(self): + """Test if the address is reserved for multicast use. + + Returns: + A boolean, True if the address is a multicast address. + See RFC 2373 2.7 for details. + + """ + return self in self._constants._multicast_network + + @property + def is_reserved(self): + """Test if the address is otherwise IETF reserved. + + Returns: + A boolean, True if the address is within one of the + reserved IPv6 Network ranges. + + """ + return any(self in x for x in self._constants._reserved_networks) + + @property + def is_link_local(self): + """Test if the address is reserved for link-local. + + Returns: + A boolean, True if the address is reserved per RFC 4291. + + """ + return self in self._constants._linklocal_network + + @property + def is_site_local(self): + """Test if the address is reserved for site-local. + + Note that the site-local address space has been deprecated by RFC 3879. + Use is_private to test if this address is in the space of unique local + addresses as defined by RFC 4193. + + Returns: + A boolean, True if the address is reserved per RFC 3513 2.5.6. + + """ + return self in self._constants._sitelocal_network + + @property + def is_private(self): + """Test if this address is allocated for private networks. + + Returns: + A boolean, True if the address is reserved per + iana-ipv6-special-registry. + + """ + return any(self in net for net in self._constants._private_networks) + + @property + def is_global(self): + """Test if this address is allocated for public networks. + + Returns: + A boolean, true if the address is not reserved per + iana-ipv6-special-registry. + + """ + return not self.is_private + + @property + def is_unspecified(self): + """Test if the address is unspecified. + + Returns: + A boolean, True if this is the unspecified address as defined in + RFC 2373 2.5.2. + + """ + return self._ip == 0 + + @property + def is_loopback(self): + """Test if the address is a loopback address. + + Returns: + A boolean, True if the address is a loopback address as defined in + RFC 2373 2.5.3. + + """ + return self._ip == 1 + + @property + def ipv4_mapped(self): + """Return the IPv4 mapped address. + + Returns: + If the IPv6 address is a v4 mapped address, return the + IPv4 mapped address. Return None otherwise. + + """ + if (self._ip >> 32) != 0xFFFF: + return None + return IPv4Address(self._ip & 0xFFFFFFFF) + + @property + def teredo(self): + """Tuple of embedded teredo IPs. + + Returns: + Tuple of the (server, client) IPs or None if the address + doesn't appear to be a teredo address (doesn't start with + 2001::/32) + + """ + if (self._ip >> 96) != 0x20010000: + return None + return (IPv4Address((self._ip >> 64) & 0xFFFFFFFF), + IPv4Address(~self._ip & 0xFFFFFFFF)) + + @property + def sixtofour(self): + """Return the IPv4 6to4 embedded address. + + Returns: + The IPv4 6to4-embedded address if present or None if the + address doesn't appear to contain a 6to4 embedded address. + + """ + if (self._ip >> 112) != 0x2002: + return None + return IPv4Address((self._ip >> 80) & 0xFFFFFFFF) + + +class IPv6Interface(IPv6Address): + + def __init__(self, address): + if isinstance(address, (bytes, _compat_int_types)): + IPv6Address.__init__(self, address) + self.network = IPv6Network(self._ip) + self._prefixlen = self._max_prefixlen + return + if isinstance(address, tuple): + IPv6Address.__init__(self, address[0]) + if len(address) > 1: + self._prefixlen = int(address[1]) + else: + self._prefixlen = self._max_prefixlen + self.network = IPv6Network(address, strict=False) + self.netmask = self.network.netmask + self.hostmask = self.network.hostmask + return + + addr = _split_optional_netmask(address) + IPv6Address.__init__(self, addr[0]) + self.network = IPv6Network(address, strict=False) + self.netmask = self.network.netmask + self._prefixlen = self.network._prefixlen + self.hostmask = self.network.hostmask + + def __str__(self): + return '%s/%d' % (self._string_from_ip_int(self._ip), + self.network.prefixlen) + + def __eq__(self, other): + address_equal = IPv6Address.__eq__(self, other) + if not address_equal or address_equal is NotImplemented: + return address_equal + try: + return self.network == other.network + except AttributeError: + # An interface with an associated network is NOT the + # same as an unassociated address. That's why the hash + # takes the extra info into account. + return False + + def __lt__(self, other): + address_less = IPv6Address.__lt__(self, other) + if address_less is NotImplemented: + return NotImplemented + try: + return (self.network < other.network or + self.network == other.network and address_less) + except AttributeError: + # We *do* allow addresses and interfaces to be sorted. The + # unassociated address is considered less than all interfaces. + return False + + def __hash__(self): + return self._ip ^ self._prefixlen ^ int(self.network.network_address) + + __reduce__ = _IPAddressBase.__reduce__ + + @property + def ip(self): + return IPv6Address(self._ip) + + @property + def with_prefixlen(self): + return '%s/%s' % (self._string_from_ip_int(self._ip), + self._prefixlen) + + @property + def with_netmask(self): + return '%s/%s' % (self._string_from_ip_int(self._ip), + self.netmask) + + @property + def with_hostmask(self): + return '%s/%s' % (self._string_from_ip_int(self._ip), + self.hostmask) + + @property + def is_unspecified(self): + return self._ip == 0 and self.network.is_unspecified + + @property + def is_loopback(self): + return self._ip == 1 and self.network.is_loopback + + +class IPv6Network(_BaseV6, _BaseNetwork): + + """This class represents and manipulates 128-bit IPv6 networks. + + Attributes: [examples for IPv6('2001:db8::1000/124')] + .network_address: IPv6Address('2001:db8::1000') + .hostmask: IPv6Address('::f') + .broadcast_address: IPv6Address('2001:db8::100f') + .netmask: IPv6Address('ffff:ffff:ffff:ffff:ffff:ffff:ffff:fff0') + .prefixlen: 124 + + """ + + # Class to use when creating address objects + _address_class = IPv6Address + + def __init__(self, address, strict=True): + """Instantiate a new IPv6 Network object. + + Args: + address: A string or integer representing the IPv6 network or the + IP and prefix/netmask. + '2001:db8::/128' + '2001:db8:0000:0000:0000:0000:0000:0000/128' + '2001:db8::' + are all functionally the same in IPv6. That is to say, + failing to provide a subnetmask will create an object with + a mask of /128. + + Additionally, an integer can be passed, so + IPv6Network('2001:db8::') == + IPv6Network(42540766411282592856903984951653826560) + or, more generally + IPv6Network(int(IPv6Network('2001:db8::'))) == + IPv6Network('2001:db8::') + + strict: A boolean. If true, ensure that we have been passed + A true network address, eg, 2001:db8::1000/124 and not an + IP address on a network, eg, 2001:db8::1/124. + + Raises: + AddressValueError: If address isn't a valid IPv6 address. + NetmaskValueError: If the netmask isn't valid for + an IPv6 address. + ValueError: If strict was True and a network address was not + supplied. + + """ + _BaseNetwork.__init__(self, address) + + # Efficient constructor from integer or packed address + if isinstance(address, (bytes, _compat_int_types)): + self.network_address = IPv6Address(address) + self.netmask, self._prefixlen = self._make_netmask( + self._max_prefixlen) + return + + if isinstance(address, tuple): + if len(address) > 1: + arg = address[1] + else: + arg = self._max_prefixlen + self.netmask, self._prefixlen = self._make_netmask(arg) + self.network_address = IPv6Address(address[0]) + packed = int(self.network_address) + if packed & int(self.netmask) != packed: + if strict: + raise ValueError('%s has host bits set' % self) + else: + self.network_address = IPv6Address(packed & + int(self.netmask)) + return + + # Assume input argument to be string or any object representation + # which converts into a formatted IP prefix string. + addr = _split_optional_netmask(address) + + self.network_address = IPv6Address(self._ip_int_from_string(addr[0])) + + if len(addr) == 2: + arg = addr[1] + else: + arg = self._max_prefixlen + self.netmask, self._prefixlen = self._make_netmask(arg) + + if strict: + if (IPv6Address(int(self.network_address) & int(self.netmask)) != + self.network_address): + raise ValueError('%s has host bits set' % self) + self.network_address = IPv6Address(int(self.network_address) & + int(self.netmask)) + + if self._prefixlen == (self._max_prefixlen - 1): + self.hosts = self.__iter__ + + def hosts(self): + """Generate Iterator over usable hosts in a network. + + This is like __iter__ except it doesn't return the + Subnet-Router anycast address. + + """ + network = int(self.network_address) + broadcast = int(self.broadcast_address) + for x in _compat_range(network + 1, broadcast + 1): + yield self._address_class(x) + + @property + def is_site_local(self): + """Test if the address is reserved for site-local. + + Note that the site-local address space has been deprecated by RFC 3879. + Use is_private to test if this address is in the space of unique local + addresses as defined by RFC 4193. + + Returns: + A boolean, True if the address is reserved per RFC 3513 2.5.6. + + """ + return (self.network_address.is_site_local and + self.broadcast_address.is_site_local) + + +class _IPv6Constants(object): + + _linklocal_network = IPv6Network('fe80::/10') + + _multicast_network = IPv6Network('ff00::/8') + + _private_networks = [ + IPv6Network('::1/128'), + IPv6Network('::/128'), + IPv6Network('::ffff:0:0/96'), + IPv6Network('100::/64'), + IPv6Network('2001::/23'), + IPv6Network('2001:2::/48'), + IPv6Network('2001:db8::/32'), + IPv6Network('2001:10::/28'), + IPv6Network('fc00::/7'), + IPv6Network('fe80::/10'), + ] + + _reserved_networks = [ + IPv6Network('::/8'), IPv6Network('100::/8'), + IPv6Network('200::/7'), IPv6Network('400::/6'), + IPv6Network('800::/5'), IPv6Network('1000::/4'), + IPv6Network('4000::/3'), IPv6Network('6000::/3'), + IPv6Network('8000::/3'), IPv6Network('A000::/3'), + IPv6Network('C000::/3'), IPv6Network('E000::/4'), + IPv6Network('F000::/5'), IPv6Network('F800::/6'), + IPv6Network('FE00::/9'), + ] + + _sitelocal_network = IPv6Network('fec0::/10') + + +IPv6Address._constants = _IPv6Constants diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/__init__.py new file mode 100644 index 00000000..a6f44a55 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/__init__.py @@ -0,0 +1,347 @@ +# -*- coding: utf-8 -*- + +""" +lockfile.py - Platform-independent advisory file locks. + +Requires Python 2.5 unless you apply 2.4.diff +Locking is done on a per-thread basis instead of a per-process basis. + +Usage: + +>>> lock = LockFile('somefile') +>>> try: +... lock.acquire() +... except AlreadyLocked: +... print 'somefile', 'is locked already.' +... except LockFailed: +... print 'somefile', 'can\\'t be locked.' +... else: +... print 'got lock' +got lock +>>> print lock.is_locked() +True +>>> lock.release() + +>>> lock = LockFile('somefile') +>>> print lock.is_locked() +False +>>> with lock: +... print lock.is_locked() +True +>>> print lock.is_locked() +False + +>>> lock = LockFile('somefile') +>>> # It is okay to lock twice from the same thread... +>>> with lock: +... lock.acquire() +... +>>> # Though no counter is kept, so you can't unlock multiple times... +>>> print lock.is_locked() +False + +Exceptions: + + Error - base class for other exceptions + LockError - base class for all locking exceptions + AlreadyLocked - Another thread or process already holds the lock + LockFailed - Lock failed for some other reason + UnlockError - base class for all unlocking exceptions + AlreadyUnlocked - File was not locked. + NotMyLock - File was locked but not by the current thread/process +""" + +from __future__ import absolute_import + +import functools +import os +import socket +import threading +import warnings + +# Work with PEP8 and non-PEP8 versions of threading module. +if not hasattr(threading, "current_thread"): + threading.current_thread = threading.currentThread +if not hasattr(threading.Thread, "get_name"): + threading.Thread.get_name = threading.Thread.getName + +__all__ = ['Error', 'LockError', 'LockTimeout', 'AlreadyLocked', + 'LockFailed', 'UnlockError', 'NotLocked', 'NotMyLock', + 'LinkFileLock', 'MkdirFileLock', 'SQLiteFileLock', + 'LockBase', 'locked'] + + +class Error(Exception): + """ + Base class for other exceptions. + + >>> try: + ... raise Error + ... except Exception: + ... pass + """ + pass + + +class LockError(Error): + """ + Base class for error arising from attempts to acquire the lock. + + >>> try: + ... raise LockError + ... except Error: + ... pass + """ + pass + + +class LockTimeout(LockError): + """Raised when lock creation fails within a user-defined period of time. + + >>> try: + ... raise LockTimeout + ... except LockError: + ... pass + """ + pass + + +class AlreadyLocked(LockError): + """Some other thread/process is locking the file. + + >>> try: + ... raise AlreadyLocked + ... except LockError: + ... pass + """ + pass + + +class LockFailed(LockError): + """Lock file creation failed for some other reason. + + >>> try: + ... raise LockFailed + ... except LockError: + ... pass + """ + pass + + +class UnlockError(Error): + """ + Base class for errors arising from attempts to release the lock. + + >>> try: + ... raise UnlockError + ... except Error: + ... pass + """ + pass + + +class NotLocked(UnlockError): + """Raised when an attempt is made to unlock an unlocked file. + + >>> try: + ... raise NotLocked + ... except UnlockError: + ... pass + """ + pass + + +class NotMyLock(UnlockError): + """Raised when an attempt is made to unlock a file someone else locked. + + >>> try: + ... raise NotMyLock + ... except UnlockError: + ... pass + """ + pass + + +class _SharedBase(object): + def __init__(self, path): + self.path = path + + def acquire(self, timeout=None): + """ + Acquire the lock. + + * If timeout is omitted (or None), wait forever trying to lock the + file. + + * If timeout > 0, try to acquire the lock for that many seconds. If + the lock period expires and the file is still locked, raise + LockTimeout. + + * If timeout <= 0, raise AlreadyLocked immediately if the file is + already locked. + """ + raise NotImplemented("implement in subclass") + + def release(self): + """ + Release the lock. + + If the file is not locked, raise NotLocked. + """ + raise NotImplemented("implement in subclass") + + def __enter__(self): + """ + Context manager support. + """ + self.acquire() + return self + + def __exit__(self, *_exc): + """ + Context manager support. + """ + self.release() + + def __repr__(self): + return "<%s: %r>" % (self.__class__.__name__, self.path) + + +class LockBase(_SharedBase): + """Base class for platform-specific lock classes.""" + def __init__(self, path, threaded=True, timeout=None): + """ + >>> lock = LockBase('somefile') + >>> lock = LockBase('somefile', threaded=False) + """ + super(LockBase, self).__init__(path) + self.lock_file = os.path.abspath(path) + ".lock" + self.hostname = socket.gethostname() + self.pid = os.getpid() + if threaded: + t = threading.current_thread() + # Thread objects in Python 2.4 and earlier do not have ident + # attrs. Worm around that. + ident = getattr(t, "ident", hash(t)) + self.tname = "-%x" % (ident & 0xffffffff) + else: + self.tname = "" + dirname = os.path.dirname(self.lock_file) + + # unique name is mostly about the current process, but must + # also contain the path -- otherwise, two adjacent locked + # files conflict (one file gets locked, creating lock-file and + # unique file, the other one gets locked, creating lock-file + # and overwriting the already existing lock-file, then one + # gets unlocked, deleting both lock-file and unique file, + # finally the last lock errors out upon releasing. + self.unique_name = os.path.join(dirname, + "%s%s.%s%s" % (self.hostname, + self.tname, + self.pid, + hash(self.path))) + self.timeout = timeout + + def is_locked(self): + """ + Tell whether or not the file is locked. + """ + raise NotImplemented("implement in subclass") + + def i_am_locking(self): + """ + Return True if this object is locking the file. + """ + raise NotImplemented("implement in subclass") + + def break_lock(self): + """ + Remove a lock. Useful if a locking thread failed to unlock. + """ + raise NotImplemented("implement in subclass") + + def __repr__(self): + return "<%s: %r -- %r>" % (self.__class__.__name__, self.unique_name, + self.path) + + +def _fl_helper(cls, mod, *args, **kwds): + warnings.warn("Import from %s module instead of lockfile package" % mod, + DeprecationWarning, stacklevel=2) + # This is a bit funky, but it's only for awhile. The way the unit tests + # are constructed this function winds up as an unbound method, so it + # actually takes three args, not two. We want to toss out self. + if not isinstance(args[0], str): + # We are testing, avoid the first arg + args = args[1:] + if len(args) == 1 and not kwds: + kwds["threaded"] = True + return cls(*args, **kwds) + + +def LinkFileLock(*args, **kwds): + """Factory function provided for backwards compatibility. + + Do not use in new code. Instead, import LinkLockFile from the + lockfile.linklockfile module. + """ + from . import linklockfile + return _fl_helper(linklockfile.LinkLockFile, "lockfile.linklockfile", + *args, **kwds) + + +def MkdirFileLock(*args, **kwds): + """Factory function provided for backwards compatibility. + + Do not use in new code. Instead, import MkdirLockFile from the + lockfile.mkdirlockfile module. + """ + from . import mkdirlockfile + return _fl_helper(mkdirlockfile.MkdirLockFile, "lockfile.mkdirlockfile", + *args, **kwds) + + +def SQLiteFileLock(*args, **kwds): + """Factory function provided for backwards compatibility. + + Do not use in new code. Instead, import SQLiteLockFile from the + lockfile.mkdirlockfile module. + """ + from . import sqlitelockfile + return _fl_helper(sqlitelockfile.SQLiteLockFile, "lockfile.sqlitelockfile", + *args, **kwds) + + +def locked(path, timeout=None): + """Decorator which enables locks for decorated function. + + Arguments: + - path: path for lockfile. + - timeout (optional): Timeout for acquiring lock. + + Usage: + @locked('/var/run/myname', timeout=0) + def myname(...): + ... + """ + def decor(func): + @functools.wraps(func) + def wrapper(*args, **kwargs): + lock = FileLock(path, timeout=timeout) + lock.acquire() + try: + return func(*args, **kwargs) + finally: + lock.release() + return wrapper + return decor + + +if hasattr(os, "link"): + from . import linklockfile as _llf + LockFile = _llf.LinkLockFile +else: + from . import mkdirlockfile as _mlf + LockFile = _mlf.MkdirLockFile + +FileLock = LockFile diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/linklockfile.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/linklockfile.py new file mode 100644 index 00000000..2ca9be04 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/linklockfile.py @@ -0,0 +1,73 @@ +from __future__ import absolute_import + +import time +import os + +from . import (LockBase, LockFailed, NotLocked, NotMyLock, LockTimeout, + AlreadyLocked) + + +class LinkLockFile(LockBase): + """Lock access to a file using atomic property of link(2). + + >>> lock = LinkLockFile('somefile') + >>> lock = LinkLockFile('somefile', threaded=False) + """ + + def acquire(self, timeout=None): + try: + open(self.unique_name, "wb").close() + except IOError: + raise LockFailed("failed to create %s" % self.unique_name) + + timeout = timeout if timeout is not None else self.timeout + end_time = time.time() + if timeout is not None and timeout > 0: + end_time += timeout + + while True: + # Try and create a hard link to it. + try: + os.link(self.unique_name, self.lock_file) + except OSError: + # Link creation failed. Maybe we've double-locked? + nlinks = os.stat(self.unique_name).st_nlink + if nlinks == 2: + # The original link plus the one I created == 2. We're + # good to go. + return + else: + # Otherwise the lock creation failed. + if timeout is not None and time.time() > end_time: + os.unlink(self.unique_name) + if timeout > 0: + raise LockTimeout("Timeout waiting to acquire" + " lock for %s" % + self.path) + else: + raise AlreadyLocked("%s is already locked" % + self.path) + time.sleep(timeout is not None and timeout / 10 or 0.1) + else: + # Link creation succeeded. We're good to go. + return + + def release(self): + if not self.is_locked(): + raise NotLocked("%s is not locked" % self.path) + elif not os.path.exists(self.unique_name): + raise NotMyLock("%s is locked, but not by me" % self.path) + os.unlink(self.unique_name) + os.unlink(self.lock_file) + + def is_locked(self): + return os.path.exists(self.lock_file) + + def i_am_locking(self): + return (self.is_locked() and + os.path.exists(self.unique_name) and + os.stat(self.unique_name).st_nlink == 2) + + def break_lock(self): + if os.path.exists(self.lock_file): + os.unlink(self.lock_file) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/mkdirlockfile.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/mkdirlockfile.py new file mode 100644 index 00000000..05a8c96c --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/mkdirlockfile.py @@ -0,0 +1,84 @@ +from __future__ import absolute_import, division + +import time +import os +import sys +import errno + +from . import (LockBase, LockFailed, NotLocked, NotMyLock, LockTimeout, + AlreadyLocked) + + +class MkdirLockFile(LockBase): + """Lock file by creating a directory.""" + def __init__(self, path, threaded=True, timeout=None): + """ + >>> lock = MkdirLockFile('somefile') + >>> lock = MkdirLockFile('somefile', threaded=False) + """ + LockBase.__init__(self, path, threaded, timeout) + # Lock file itself is a directory. Place the unique file name into + # it. + self.unique_name = os.path.join(self.lock_file, + "%s.%s%s" % (self.hostname, + self.tname, + self.pid)) + + def acquire(self, timeout=None): + timeout = timeout if timeout is not None else self.timeout + end_time = time.time() + if timeout is not None and timeout > 0: + end_time += timeout + + if timeout is None: + wait = 0.1 + else: + wait = max(0, timeout / 10) + + while True: + try: + os.mkdir(self.lock_file) + except OSError: + err = sys.exc_info()[1] + if err.errno == errno.EEXIST: + # Already locked. + if os.path.exists(self.unique_name): + # Already locked by me. + return + if timeout is not None and time.time() > end_time: + if timeout > 0: + raise LockTimeout("Timeout waiting to acquire" + " lock for %s" % + self.path) + else: + # Someone else has the lock. + raise AlreadyLocked("%s is already locked" % + self.path) + time.sleep(wait) + else: + # Couldn't create the lock for some other reason + raise LockFailed("failed to create %s" % self.lock_file) + else: + open(self.unique_name, "wb").close() + return + + def release(self): + if not self.is_locked(): + raise NotLocked("%s is not locked" % self.path) + elif not os.path.exists(self.unique_name): + raise NotMyLock("%s is locked, but not by me" % self.path) + os.unlink(self.unique_name) + os.rmdir(self.lock_file) + + def is_locked(self): + return os.path.exists(self.lock_file) + + def i_am_locking(self): + return (self.is_locked() and + os.path.exists(self.unique_name)) + + def break_lock(self): + if os.path.exists(self.lock_file): + for name in os.listdir(self.lock_file): + os.unlink(os.path.join(self.lock_file, name)) + os.rmdir(self.lock_file) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/pidlockfile.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/pidlockfile.py new file mode 100644 index 00000000..069e85b1 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/pidlockfile.py @@ -0,0 +1,190 @@ +# -*- coding: utf-8 -*- + +# pidlockfile.py +# +# Copyright © 2008–2009 Ben Finney <ben+python@benfinney.id.au> +# +# This is free software: you may copy, modify, and/or distribute this work +# under the terms of the Python Software Foundation License, version 2 or +# later as published by the Python Software Foundation. +# No warranty expressed or implied. See the file LICENSE.PSF-2 for details. + +""" Lockfile behaviour implemented via Unix PID files. + """ + +from __future__ import absolute_import + +import errno +import os +import time + +from . import (LockBase, AlreadyLocked, LockFailed, NotLocked, NotMyLock, + LockTimeout) + + +class PIDLockFile(LockBase): + """ Lockfile implemented as a Unix PID file. + + The lock file is a normal file named by the attribute `path`. + A lock's PID file contains a single line of text, containing + the process ID (PID) of the process that acquired the lock. + + >>> lock = PIDLockFile('somefile') + >>> lock = PIDLockFile('somefile') + """ + + def __init__(self, path, threaded=False, timeout=None): + # pid lockfiles don't support threaded operation, so always force + # False as the threaded arg. + LockBase.__init__(self, path, False, timeout) + self.unique_name = self.path + + def read_pid(self): + """ Get the PID from the lock file. + """ + return read_pid_from_pidfile(self.path) + + def is_locked(self): + """ Test if the lock is currently held. + + The lock is held if the PID file for this lock exists. + + """ + return os.path.exists(self.path) + + def i_am_locking(self): + """ Test if the lock is held by the current process. + + Returns ``True`` if the current process ID matches the + number stored in the PID file. + """ + return self.is_locked() and os.getpid() == self.read_pid() + + def acquire(self, timeout=None): + """ Acquire the lock. + + Creates the PID file for this lock, or raises an error if + the lock could not be acquired. + """ + + timeout = timeout if timeout is not None else self.timeout + end_time = time.time() + if timeout is not None and timeout > 0: + end_time += timeout + + while True: + try: + write_pid_to_pidfile(self.path) + except OSError as exc: + if exc.errno == errno.EEXIST: + # The lock creation failed. Maybe sleep a bit. + if time.time() > end_time: + if timeout is not None and timeout > 0: + raise LockTimeout("Timeout waiting to acquire" + " lock for %s" % + self.path) + else: + raise AlreadyLocked("%s is already locked" % + self.path) + time.sleep(timeout is not None and timeout / 10 or 0.1) + else: + raise LockFailed("failed to create %s" % self.path) + else: + return + + def release(self): + """ Release the lock. + + Removes the PID file to release the lock, or raises an + error if the current process does not hold the lock. + + """ + if not self.is_locked(): + raise NotLocked("%s is not locked" % self.path) + if not self.i_am_locking(): + raise NotMyLock("%s is locked, but not by me" % self.path) + remove_existing_pidfile(self.path) + + def break_lock(self): + """ Break an existing lock. + + Removes the PID file if it already exists, otherwise does + nothing. + + """ + remove_existing_pidfile(self.path) + + +def read_pid_from_pidfile(pidfile_path): + """ Read the PID recorded in the named PID file. + + Read and return the numeric PID recorded as text in the named + PID file. If the PID file cannot be read, or if the content is + not a valid PID, return ``None``. + + """ + pid = None + try: + pidfile = open(pidfile_path, 'r') + except IOError: + pass + else: + # According to the FHS 2.3 section on PID files in /var/run: + # + # The file must consist of the process identifier in + # ASCII-encoded decimal, followed by a newline character. + # + # Programs that read PID files should be somewhat flexible + # in what they accept; i.e., they should ignore extra + # whitespace, leading zeroes, absence of the trailing + # newline, or additional lines in the PID file. + + line = pidfile.readline().strip() + try: + pid = int(line) + except ValueError: + pass + pidfile.close() + + return pid + + +def write_pid_to_pidfile(pidfile_path): + """ Write the PID in the named PID file. + + Get the numeric process ID (“PID”) of the current process + and write it to the named file as a line of text. + + """ + open_flags = (os.O_CREAT | os.O_EXCL | os.O_WRONLY) + open_mode = 0o644 + pidfile_fd = os.open(pidfile_path, open_flags, open_mode) + pidfile = os.fdopen(pidfile_fd, 'w') + + # According to the FHS 2.3 section on PID files in /var/run: + # + # The file must consist of the process identifier in + # ASCII-encoded decimal, followed by a newline character. For + # example, if crond was process number 25, /var/run/crond.pid + # would contain three characters: two, five, and newline. + + pid = os.getpid() + pidfile.write("%s\n" % pid) + pidfile.close() + + +def remove_existing_pidfile(pidfile_path): + """ Remove the named PID file if it exists. + + Removing a PID file that doesn't already exist puts us in the + desired state, so we ignore the condition if the file does not + exist. + + """ + try: + os.remove(pidfile_path) + except OSError as exc: + if exc.errno == errno.ENOENT: + pass + else: + raise diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/sqlitelockfile.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/sqlitelockfile.py new file mode 100644 index 00000000..f997e244 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/sqlitelockfile.py @@ -0,0 +1,156 @@ +from __future__ import absolute_import, division + +import time +import os + +try: + unicode +except NameError: + unicode = str + +from . import LockBase, NotLocked, NotMyLock, LockTimeout, AlreadyLocked + + +class SQLiteLockFile(LockBase): + "Demonstrate SQL-based locking." + + testdb = None + + def __init__(self, path, threaded=True, timeout=None): + """ + >>> lock = SQLiteLockFile('somefile') + >>> lock = SQLiteLockFile('somefile', threaded=False) + """ + LockBase.__init__(self, path, threaded, timeout) + self.lock_file = unicode(self.lock_file) + self.unique_name = unicode(self.unique_name) + + if SQLiteLockFile.testdb is None: + import tempfile + _fd, testdb = tempfile.mkstemp() + os.close(_fd) + os.unlink(testdb) + del _fd, tempfile + SQLiteLockFile.testdb = testdb + + import sqlite3 + self.connection = sqlite3.connect(SQLiteLockFile.testdb) + + c = self.connection.cursor() + try: + c.execute("create table locks" + "(" + " lock_file varchar(32)," + " unique_name varchar(32)" + ")") + except sqlite3.OperationalError: + pass + else: + self.connection.commit() + import atexit + atexit.register(os.unlink, SQLiteLockFile.testdb) + + def acquire(self, timeout=None): + timeout = timeout if timeout is not None else self.timeout + end_time = time.time() + if timeout is not None and timeout > 0: + end_time += timeout + + if timeout is None: + wait = 0.1 + elif timeout <= 0: + wait = 0 + else: + wait = timeout / 10 + + cursor = self.connection.cursor() + + while True: + if not self.is_locked(): + # Not locked. Try to lock it. + cursor.execute("insert into locks" + " (lock_file, unique_name)" + " values" + " (?, ?)", + (self.lock_file, self.unique_name)) + self.connection.commit() + + # Check to see if we are the only lock holder. + cursor.execute("select * from locks" + " where unique_name = ?", + (self.unique_name,)) + rows = cursor.fetchall() + if len(rows) > 1: + # Nope. Someone else got there. Remove our lock. + cursor.execute("delete from locks" + " where unique_name = ?", + (self.unique_name,)) + self.connection.commit() + else: + # Yup. We're done, so go home. + return + else: + # Check to see if we are the only lock holder. + cursor.execute("select * from locks" + " where unique_name = ?", + (self.unique_name,)) + rows = cursor.fetchall() + if len(rows) == 1: + # We're the locker, so go home. + return + + # Maybe we should wait a bit longer. + if timeout is not None and time.time() > end_time: + if timeout > 0: + # No more waiting. + raise LockTimeout("Timeout waiting to acquire" + " lock for %s" % + self.path) + else: + # Someone else has the lock and we are impatient.. + raise AlreadyLocked("%s is already locked" % self.path) + + # Well, okay. We'll give it a bit longer. + time.sleep(wait) + + def release(self): + if not self.is_locked(): + raise NotLocked("%s is not locked" % self.path) + if not self.i_am_locking(): + raise NotMyLock("%s is locked, but not by me (by %s)" % + (self.unique_name, self._who_is_locking())) + cursor = self.connection.cursor() + cursor.execute("delete from locks" + " where unique_name = ?", + (self.unique_name,)) + self.connection.commit() + + def _who_is_locking(self): + cursor = self.connection.cursor() + cursor.execute("select unique_name from locks" + " where lock_file = ?", + (self.lock_file,)) + return cursor.fetchone()[0] + + def is_locked(self): + cursor = self.connection.cursor() + cursor.execute("select * from locks" + " where lock_file = ?", + (self.lock_file,)) + rows = cursor.fetchall() + return not not rows + + def i_am_locking(self): + cursor = self.connection.cursor() + cursor.execute("select * from locks" + " where lock_file = ?" + " and unique_name = ?", + (self.lock_file, self.unique_name)) + return not not cursor.fetchall() + + def break_lock(self): + cursor = self.connection.cursor() + cursor.execute("delete from locks" + " where lock_file = ?", + (self.lock_file,)) + self.connection.commit() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/symlinklockfile.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/symlinklockfile.py new file mode 100644 index 00000000..23b41f58 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/lockfile/symlinklockfile.py @@ -0,0 +1,70 @@ +from __future__ import absolute_import + +import os +import time + +from . import (LockBase, NotLocked, NotMyLock, LockTimeout, + AlreadyLocked) + + +class SymlinkLockFile(LockBase): + """Lock access to a file using symlink(2).""" + + def __init__(self, path, threaded=True, timeout=None): + # super(SymlinkLockFile).__init(...) + LockBase.__init__(self, path, threaded, timeout) + # split it back! + self.unique_name = os.path.split(self.unique_name)[1] + + def acquire(self, timeout=None): + # Hopefully unnecessary for symlink. + # try: + # open(self.unique_name, "wb").close() + # except IOError: + # raise LockFailed("failed to create %s" % self.unique_name) + timeout = timeout if timeout is not None else self.timeout + end_time = time.time() + if timeout is not None and timeout > 0: + end_time += timeout + + while True: + # Try and create a symbolic link to it. + try: + os.symlink(self.unique_name, self.lock_file) + except OSError: + # Link creation failed. Maybe we've double-locked? + if self.i_am_locking(): + # Linked to out unique name. Proceed. + return + else: + # Otherwise the lock creation failed. + if timeout is not None and time.time() > end_time: + if timeout > 0: + raise LockTimeout("Timeout waiting to acquire" + " lock for %s" % + self.path) + else: + raise AlreadyLocked("%s is already locked" % + self.path) + time.sleep(timeout / 10 if timeout is not None else 0.1) + else: + # Link creation succeeded. We're good to go. + return + + def release(self): + if not self.is_locked(): + raise NotLocked("%s is not locked" % self.path) + elif not self.i_am_locking(): + raise NotMyLock("%s is locked, but not by me" % self.path) + os.unlink(self.lock_file) + + def is_locked(self): + return os.path.islink(self.lock_file) + + def i_am_locking(self): + return (os.path.islink(self.lock_file) + and os.readlink(self.lock_file) == self.unique_name) + + def break_lock(self): + if os.path.islink(self.lock_file): # exists && link + os.unlink(self.lock_file) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/msgpack/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/msgpack/__init__.py new file mode 100644 index 00000000..2afca5ad --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/msgpack/__init__.py @@ -0,0 +1,66 @@ +# coding: utf-8 +from pip._vendor.msgpack._version import version +from pip._vendor.msgpack.exceptions import * + +from collections import namedtuple + + +class ExtType(namedtuple('ExtType', 'code data')): + """ExtType represents ext type in msgpack.""" + def __new__(cls, code, data): + if not isinstance(code, int): + raise TypeError("code must be int") + if not isinstance(data, bytes): + raise TypeError("data must be bytes") + if not 0 <= code <= 127: + raise ValueError("code must be 0~127") + return super(ExtType, cls).__new__(cls, code, data) + + +import os +if os.environ.get('MSGPACK_PUREPYTHON'): + from pip._vendor.msgpack.fallback import Packer, unpackb, Unpacker +else: + try: + from pip._vendor.msgpack._packer import Packer + from pip._vendor.msgpack._unpacker import unpackb, Unpacker + except ImportError: + from pip._vendor.msgpack.fallback import Packer, unpackb, Unpacker + + +def pack(o, stream, **kwargs): + """ + Pack object `o` and write it to `stream` + + See :class:`Packer` for options. + """ + packer = Packer(**kwargs) + stream.write(packer.pack(o)) + + +def packb(o, **kwargs): + """ + Pack object `o` and return packed bytes + + See :class:`Packer` for options. + """ + return Packer(**kwargs).pack(o) + + +def unpack(stream, **kwargs): + """ + Unpack an object from `stream`. + + Raises `ExtraData` when `stream` contains extra bytes. + See :class:`Unpacker` for options. + """ + data = stream.read() + return unpackb(data, **kwargs) + + +# alias for compatibility to simplejson/marshal/pickle. +load = unpack +loads = unpackb + +dump = pack +dumps = packb diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/msgpack/_version.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/msgpack/_version.py new file mode 100644 index 00000000..d28f0deb --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/msgpack/_version.py @@ -0,0 +1 @@ +version = (0, 5, 6) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/msgpack/exceptions.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/msgpack/exceptions.py new file mode 100644 index 00000000..97668814 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/msgpack/exceptions.py @@ -0,0 +1,41 @@ +class UnpackException(Exception): + """Deprecated. Use Exception instead to catch all exception during unpacking.""" + + +class BufferFull(UnpackException): + pass + + +class OutOfData(UnpackException): + pass + + +class UnpackValueError(UnpackException, ValueError): + """Deprecated. Use ValueError instead.""" + + +class ExtraData(UnpackValueError): + def __init__(self, unpacked, extra): + self.unpacked = unpacked + self.extra = extra + + def __str__(self): + return "unpack(b) received extra data." + + +class PackException(Exception): + """Deprecated. Use Exception instead to catch all exception during packing.""" + + +class PackValueError(PackException, ValueError): + """PackValueError is raised when type of input data is supported but it's value is unsupported. + + Deprecated. Use ValueError instead. + """ + + +class PackOverflowError(PackValueError, OverflowError): + """PackOverflowError is raised when integer value is out of range of msgpack support [-2**31, 2**32). + + Deprecated. Use ValueError instead. + """ diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/msgpack/fallback.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/msgpack/fallback.py new file mode 100644 index 00000000..94184218 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/msgpack/fallback.py @@ -0,0 +1,977 @@ +"""Fallback pure Python implementation of msgpack""" + +import sys +import struct +import warnings + +if sys.version_info[0] == 3: + PY3 = True + int_types = int + Unicode = str + xrange = range + def dict_iteritems(d): + return d.items() +else: + PY3 = False + int_types = (int, long) + Unicode = unicode + def dict_iteritems(d): + return d.iteritems() + + +if hasattr(sys, 'pypy_version_info'): + # cStringIO is slow on PyPy, StringIO is faster. However: PyPy's own + # StringBuilder is fastest. + from __pypy__ import newlist_hint + try: + from __pypy__.builders import BytesBuilder as StringBuilder + except ImportError: + from __pypy__.builders import StringBuilder + USING_STRINGBUILDER = True + class StringIO(object): + def __init__(self, s=b''): + if s: + self.builder = StringBuilder(len(s)) + self.builder.append(s) + else: + self.builder = StringBuilder() + def write(self, s): + if isinstance(s, memoryview): + s = s.tobytes() + elif isinstance(s, bytearray): + s = bytes(s) + self.builder.append(s) + def getvalue(self): + return self.builder.build() +else: + USING_STRINGBUILDER = False + from io import BytesIO as StringIO + newlist_hint = lambda size: [] + + +from pip._vendor.msgpack.exceptions import ( + BufferFull, + OutOfData, + UnpackValueError, + PackValueError, + PackOverflowError, + ExtraData) + +from pip._vendor.msgpack import ExtType + + +EX_SKIP = 0 +EX_CONSTRUCT = 1 +EX_READ_ARRAY_HEADER = 2 +EX_READ_MAP_HEADER = 3 + +TYPE_IMMEDIATE = 0 +TYPE_ARRAY = 1 +TYPE_MAP = 2 +TYPE_RAW = 3 +TYPE_BIN = 4 +TYPE_EXT = 5 + +DEFAULT_RECURSE_LIMIT = 511 + + +def _check_type_strict(obj, t, type=type, tuple=tuple): + if type(t) is tuple: + return type(obj) in t + else: + return type(obj) is t + + +def _get_data_from_buffer(obj): + try: + view = memoryview(obj) + except TypeError: + # try to use legacy buffer protocol if 2.7, otherwise re-raise + if not PY3: + view = memoryview(buffer(obj)) + warnings.warn("using old buffer interface to unpack %s; " + "this leads to unpacking errors if slicing is used and " + "will be removed in a future version" % type(obj), + RuntimeWarning) + else: + raise + if view.itemsize != 1: + raise ValueError("cannot unpack from multi-byte object") + return view + + +def unpack(stream, **kwargs): + warnings.warn( + "Direct calling implementation's unpack() is deprecated, Use msgpack.unpack() or unpackb() instead.", + PendingDeprecationWarning) + data = stream.read() + return unpackb(data, **kwargs) + + +def unpackb(packed, **kwargs): + """ + Unpack an object from `packed`. + + Raises `ExtraData` when `packed` contains extra bytes. + See :class:`Unpacker` for options. + """ + unpacker = Unpacker(None, **kwargs) + unpacker.feed(packed) + try: + ret = unpacker._unpack() + except OutOfData: + raise UnpackValueError("Data is not enough.") + if unpacker._got_extradata(): + raise ExtraData(ret, unpacker._get_extradata()) + return ret + + +class Unpacker(object): + """Streaming unpacker. + + arguments: + + :param file_like: + File-like object having `.read(n)` method. + If specified, unpacker reads serialized data from it and :meth:`feed()` is not usable. + + :param int read_size: + Used as `file_like.read(read_size)`. (default: `min(16*1024, max_buffer_size)`) + + :param bool use_list: + If true, unpack msgpack array to Python list. + Otherwise, unpack to Python tuple. (default: True) + + :param bool raw: + If true, unpack msgpack raw to Python bytes (default). + Otherwise, unpack to Python str (or unicode on Python 2) by decoding + with UTF-8 encoding (recommended). + Currently, the default is true, but it will be changed to false in + near future. So you must specify it explicitly for keeping backward + compatibility. + + *encoding* option which is deprecated overrides this option. + + :param callable object_hook: + When specified, it should be callable. + Unpacker calls it with a dict argument after unpacking msgpack map. + (See also simplejson) + + :param callable object_pairs_hook: + When specified, it should be callable. + Unpacker calls it with a list of key-value pairs after unpacking msgpack map. + (See also simplejson) + + :param str encoding: + Encoding used for decoding msgpack raw. + If it is None (default), msgpack raw is deserialized to Python bytes. + + :param str unicode_errors: + (deprecated) Used for decoding msgpack raw with *encoding*. + (default: `'strict'`) + + :param int max_buffer_size: + Limits size of data waiting unpacked. 0 means system's INT_MAX (default). + Raises `BufferFull` exception when it is insufficient. + You should set this parameter when unpacking data from untrusted source. + + :param int max_str_len: + Limits max length of str. (default: 2**31-1) + + :param int max_bin_len: + Limits max length of bin. (default: 2**31-1) + + :param int max_array_len: + Limits max length of array. (default: 2**31-1) + + :param int max_map_len: + Limits max length of map. (default: 2**31-1) + + + example of streaming deserialize from file-like object:: + + unpacker = Unpacker(file_like, raw=False) + for o in unpacker: + process(o) + + example of streaming deserialize from socket:: + + unpacker = Unpacker(raw=False) + while True: + buf = sock.recv(1024**2) + if not buf: + break + unpacker.feed(buf) + for o in unpacker: + process(o) + """ + + def __init__(self, file_like=None, read_size=0, use_list=True, raw=True, + object_hook=None, object_pairs_hook=None, list_hook=None, + encoding=None, unicode_errors=None, max_buffer_size=0, + ext_hook=ExtType, + max_str_len=2147483647, # 2**32-1 + max_bin_len=2147483647, + max_array_len=2147483647, + max_map_len=2147483647, + max_ext_len=2147483647): + + if encoding is not None: + warnings.warn( + "encoding is deprecated, Use raw=False instead.", + PendingDeprecationWarning) + + if unicode_errors is None: + unicode_errors = 'strict' + + if file_like is None: + self._feeding = True + else: + if not callable(file_like.read): + raise TypeError("`file_like.read` must be callable") + self.file_like = file_like + self._feeding = False + + #: array of bytes fed. + self._buffer = bytearray() + # Some very old pythons don't support `struct.unpack_from()` with a + # `bytearray`. So we wrap it in a `buffer()` there. + if sys.version_info < (2, 7, 6): + self._buffer_view = buffer(self._buffer) + else: + self._buffer_view = self._buffer + #: Which position we currently reads + self._buff_i = 0 + + # When Unpacker is used as an iterable, between the calls to next(), + # the buffer is not "consumed" completely, for efficiency sake. + # Instead, it is done sloppily. To make sure we raise BufferFull at + # the correct moments, we have to keep track of how sloppy we were. + # Furthermore, when the buffer is incomplete (that is: in the case + # we raise an OutOfData) we need to rollback the buffer to the correct + # state, which _buf_checkpoint records. + self._buf_checkpoint = 0 + + self._max_buffer_size = max_buffer_size or 2**31-1 + if read_size > self._max_buffer_size: + raise ValueError("read_size must be smaller than max_buffer_size") + self._read_size = read_size or min(self._max_buffer_size, 16*1024) + self._raw = bool(raw) + self._encoding = encoding + self._unicode_errors = unicode_errors + self._use_list = use_list + self._list_hook = list_hook + self._object_hook = object_hook + self._object_pairs_hook = object_pairs_hook + self._ext_hook = ext_hook + self._max_str_len = max_str_len + self._max_bin_len = max_bin_len + self._max_array_len = max_array_len + self._max_map_len = max_map_len + self._max_ext_len = max_ext_len + self._stream_offset = 0 + + if list_hook is not None and not callable(list_hook): + raise TypeError('`list_hook` is not callable') + if object_hook is not None and not callable(object_hook): + raise TypeError('`object_hook` is not callable') + if object_pairs_hook is not None and not callable(object_pairs_hook): + raise TypeError('`object_pairs_hook` is not callable') + if object_hook is not None and object_pairs_hook is not None: + raise TypeError("object_pairs_hook and object_hook are mutually " + "exclusive") + if not callable(ext_hook): + raise TypeError("`ext_hook` is not callable") + + def feed(self, next_bytes): + assert self._feeding + view = _get_data_from_buffer(next_bytes) + if (len(self._buffer) - self._buff_i + len(view) > self._max_buffer_size): + raise BufferFull + + # Strip buffer before checkpoint before reading file. + if self._buf_checkpoint > 0: + del self._buffer[:self._buf_checkpoint] + self._buff_i -= self._buf_checkpoint + self._buf_checkpoint = 0 + + self._buffer += view + + def _consume(self): + """ Gets rid of the used parts of the buffer. """ + self._stream_offset += self._buff_i - self._buf_checkpoint + self._buf_checkpoint = self._buff_i + + def _got_extradata(self): + return self._buff_i < len(self._buffer) + + def _get_extradata(self): + return self._buffer[self._buff_i:] + + def read_bytes(self, n): + return self._read(n) + + def _read(self, n): + # (int) -> bytearray + self._reserve(n) + i = self._buff_i + self._buff_i = i+n + return self._buffer[i:i+n] + + def _reserve(self, n): + remain_bytes = len(self._buffer) - self._buff_i - n + + # Fast path: buffer has n bytes already + if remain_bytes >= 0: + return + + if self._feeding: + self._buff_i = self._buf_checkpoint + raise OutOfData + + # Strip buffer before checkpoint before reading file. + if self._buf_checkpoint > 0: + del self._buffer[:self._buf_checkpoint] + self._buff_i -= self._buf_checkpoint + self._buf_checkpoint = 0 + + # Read from file + remain_bytes = -remain_bytes + while remain_bytes > 0: + to_read_bytes = max(self._read_size, remain_bytes) + read_data = self.file_like.read(to_read_bytes) + if not read_data: + break + assert isinstance(read_data, bytes) + self._buffer += read_data + remain_bytes -= len(read_data) + + if len(self._buffer) < n + self._buff_i: + self._buff_i = 0 # rollback + raise OutOfData + + def _read_header(self, execute=EX_CONSTRUCT): + typ = TYPE_IMMEDIATE + n = 0 + obj = None + self._reserve(1) + b = self._buffer[self._buff_i] + self._buff_i += 1 + if b & 0b10000000 == 0: + obj = b + elif b & 0b11100000 == 0b11100000: + obj = -1 - (b ^ 0xff) + elif b & 0b11100000 == 0b10100000: + n = b & 0b00011111 + typ = TYPE_RAW + if n > self._max_str_len: + raise UnpackValueError("%s exceeds max_str_len(%s)", n, self._max_str_len) + obj = self._read(n) + elif b & 0b11110000 == 0b10010000: + n = b & 0b00001111 + typ = TYPE_ARRAY + if n > self._max_array_len: + raise UnpackValueError("%s exceeds max_array_len(%s)", n, self._max_array_len) + elif b & 0b11110000 == 0b10000000: + n = b & 0b00001111 + typ = TYPE_MAP + if n > self._max_map_len: + raise UnpackValueError("%s exceeds max_map_len(%s)", n, self._max_map_len) + elif b == 0xc0: + obj = None + elif b == 0xc2: + obj = False + elif b == 0xc3: + obj = True + elif b == 0xc4: + typ = TYPE_BIN + self._reserve(1) + n = self._buffer[self._buff_i] + self._buff_i += 1 + if n > self._max_bin_len: + raise UnpackValueError("%s exceeds max_bin_len(%s)" % (n, self._max_bin_len)) + obj = self._read(n) + elif b == 0xc5: + typ = TYPE_BIN + self._reserve(2) + n = struct.unpack_from(">H", self._buffer_view, self._buff_i)[0] + self._buff_i += 2 + if n > self._max_bin_len: + raise UnpackValueError("%s exceeds max_bin_len(%s)" % (n, self._max_bin_len)) + obj = self._read(n) + elif b == 0xc6: + typ = TYPE_BIN + self._reserve(4) + n = struct.unpack_from(">I", self._buffer_view, self._buff_i)[0] + self._buff_i += 4 + if n > self._max_bin_len: + raise UnpackValueError("%s exceeds max_bin_len(%s)" % (n, self._max_bin_len)) + obj = self._read(n) + elif b == 0xc7: # ext 8 + typ = TYPE_EXT + self._reserve(2) + L, n = struct.unpack_from('Bb', self._buffer_view, self._buff_i) + self._buff_i += 2 + if L > self._max_ext_len: + raise UnpackValueError("%s exceeds max_ext_len(%s)" % (L, self._max_ext_len)) + obj = self._read(L) + elif b == 0xc8: # ext 16 + typ = TYPE_EXT + self._reserve(3) + L, n = struct.unpack_from('>Hb', self._buffer_view, self._buff_i) + self._buff_i += 3 + if L > self._max_ext_len: + raise UnpackValueError("%s exceeds max_ext_len(%s)" % (L, self._max_ext_len)) + obj = self._read(L) + elif b == 0xc9: # ext 32 + typ = TYPE_EXT + self._reserve(5) + L, n = struct.unpack_from('>Ib', self._buffer_view, self._buff_i) + self._buff_i += 5 + if L > self._max_ext_len: + raise UnpackValueError("%s exceeds max_ext_len(%s)" % (L, self._max_ext_len)) + obj = self._read(L) + elif b == 0xca: + self._reserve(4) + obj = struct.unpack_from(">f", self._buffer_view, self._buff_i)[0] + self._buff_i += 4 + elif b == 0xcb: + self._reserve(8) + obj = struct.unpack_from(">d", self._buffer_view, self._buff_i)[0] + self._buff_i += 8 + elif b == 0xcc: + self._reserve(1) + obj = self._buffer[self._buff_i] + self._buff_i += 1 + elif b == 0xcd: + self._reserve(2) + obj = struct.unpack_from(">H", self._buffer_view, self._buff_i)[0] + self._buff_i += 2 + elif b == 0xce: + self._reserve(4) + obj = struct.unpack_from(">I", self._buffer_view, self._buff_i)[0] + self._buff_i += 4 + elif b == 0xcf: + self._reserve(8) + obj = struct.unpack_from(">Q", self._buffer_view, self._buff_i)[0] + self._buff_i += 8 + elif b == 0xd0: + self._reserve(1) + obj = struct.unpack_from("b", self._buffer_view, self._buff_i)[0] + self._buff_i += 1 + elif b == 0xd1: + self._reserve(2) + obj = struct.unpack_from(">h", self._buffer_view, self._buff_i)[0] + self._buff_i += 2 + elif b == 0xd2: + self._reserve(4) + obj = struct.unpack_from(">i", self._buffer_view, self._buff_i)[0] + self._buff_i += 4 + elif b == 0xd3: + self._reserve(8) + obj = struct.unpack_from(">q", self._buffer_view, self._buff_i)[0] + self._buff_i += 8 + elif b == 0xd4: # fixext 1 + typ = TYPE_EXT + if self._max_ext_len < 1: + raise UnpackValueError("%s exceeds max_ext_len(%s)" % (1, self._max_ext_len)) + self._reserve(2) + n, obj = struct.unpack_from("b1s", self._buffer_view, self._buff_i) + self._buff_i += 2 + elif b == 0xd5: # fixext 2 + typ = TYPE_EXT + if self._max_ext_len < 2: + raise UnpackValueError("%s exceeds max_ext_len(%s)" % (2, self._max_ext_len)) + self._reserve(3) + n, obj = struct.unpack_from("b2s", self._buffer_view, self._buff_i) + self._buff_i += 3 + elif b == 0xd6: # fixext 4 + typ = TYPE_EXT + if self._max_ext_len < 4: + raise UnpackValueError("%s exceeds max_ext_len(%s)" % (4, self._max_ext_len)) + self._reserve(5) + n, obj = struct.unpack_from("b4s", self._buffer_view, self._buff_i) + self._buff_i += 5 + elif b == 0xd7: # fixext 8 + typ = TYPE_EXT + if self._max_ext_len < 8: + raise UnpackValueError("%s exceeds max_ext_len(%s)" % (8, self._max_ext_len)) + self._reserve(9) + n, obj = struct.unpack_from("b8s", self._buffer_view, self._buff_i) + self._buff_i += 9 + elif b == 0xd8: # fixext 16 + typ = TYPE_EXT + if self._max_ext_len < 16: + raise UnpackValueError("%s exceeds max_ext_len(%s)" % (16, self._max_ext_len)) + self._reserve(17) + n, obj = struct.unpack_from("b16s", self._buffer_view, self._buff_i) + self._buff_i += 17 + elif b == 0xd9: + typ = TYPE_RAW + self._reserve(1) + n = self._buffer[self._buff_i] + self._buff_i += 1 + if n > self._max_str_len: + raise UnpackValueError("%s exceeds max_str_len(%s)", n, self._max_str_len) + obj = self._read(n) + elif b == 0xda: + typ = TYPE_RAW + self._reserve(2) + n, = struct.unpack_from(">H", self._buffer_view, self._buff_i) + self._buff_i += 2 + if n > self._max_str_len: + raise UnpackValueError("%s exceeds max_str_len(%s)", n, self._max_str_len) + obj = self._read(n) + elif b == 0xdb: + typ = TYPE_RAW + self._reserve(4) + n, = struct.unpack_from(">I", self._buffer_view, self._buff_i) + self._buff_i += 4 + if n > self._max_str_len: + raise UnpackValueError("%s exceeds max_str_len(%s)", n, self._max_str_len) + obj = self._read(n) + elif b == 0xdc: + typ = TYPE_ARRAY + self._reserve(2) + n, = struct.unpack_from(">H", self._buffer_view, self._buff_i) + self._buff_i += 2 + if n > self._max_array_len: + raise UnpackValueError("%s exceeds max_array_len(%s)", n, self._max_array_len) + elif b == 0xdd: + typ = TYPE_ARRAY + self._reserve(4) + n, = struct.unpack_from(">I", self._buffer_view, self._buff_i) + self._buff_i += 4 + if n > self._max_array_len: + raise UnpackValueError("%s exceeds max_array_len(%s)", n, self._max_array_len) + elif b == 0xde: + self._reserve(2) + n, = struct.unpack_from(">H", self._buffer_view, self._buff_i) + self._buff_i += 2 + if n > self._max_map_len: + raise UnpackValueError("%s exceeds max_map_len(%s)", n, self._max_map_len) + typ = TYPE_MAP + elif b == 0xdf: + self._reserve(4) + n, = struct.unpack_from(">I", self._buffer_view, self._buff_i) + self._buff_i += 4 + if n > self._max_map_len: + raise UnpackValueError("%s exceeds max_map_len(%s)", n, self._max_map_len) + typ = TYPE_MAP + else: + raise UnpackValueError("Unknown header: 0x%x" % b) + return typ, n, obj + + def _unpack(self, execute=EX_CONSTRUCT): + typ, n, obj = self._read_header(execute) + + if execute == EX_READ_ARRAY_HEADER: + if typ != TYPE_ARRAY: + raise UnpackValueError("Expected array") + return n + if execute == EX_READ_MAP_HEADER: + if typ != TYPE_MAP: + raise UnpackValueError("Expected map") + return n + # TODO should we eliminate the recursion? + if typ == TYPE_ARRAY: + if execute == EX_SKIP: + for i in xrange(n): + # TODO check whether we need to call `list_hook` + self._unpack(EX_SKIP) + return + ret = newlist_hint(n) + for i in xrange(n): + ret.append(self._unpack(EX_CONSTRUCT)) + if self._list_hook is not None: + ret = self._list_hook(ret) + # TODO is the interaction between `list_hook` and `use_list` ok? + return ret if self._use_list else tuple(ret) + if typ == TYPE_MAP: + if execute == EX_SKIP: + for i in xrange(n): + # TODO check whether we need to call hooks + self._unpack(EX_SKIP) + self._unpack(EX_SKIP) + return + if self._object_pairs_hook is not None: + ret = self._object_pairs_hook( + (self._unpack(EX_CONSTRUCT), + self._unpack(EX_CONSTRUCT)) + for _ in xrange(n)) + else: + ret = {} + for _ in xrange(n): + key = self._unpack(EX_CONSTRUCT) + ret[key] = self._unpack(EX_CONSTRUCT) + if self._object_hook is not None: + ret = self._object_hook(ret) + return ret + if execute == EX_SKIP: + return + if typ == TYPE_RAW: + if self._encoding is not None: + obj = obj.decode(self._encoding, self._unicode_errors) + elif self._raw: + obj = bytes(obj) + else: + obj = obj.decode('utf_8') + return obj + if typ == TYPE_EXT: + return self._ext_hook(n, bytes(obj)) + if typ == TYPE_BIN: + return bytes(obj) + assert typ == TYPE_IMMEDIATE + return obj + + def __iter__(self): + return self + + def __next__(self): + try: + ret = self._unpack(EX_CONSTRUCT) + self._consume() + return ret + except OutOfData: + self._consume() + raise StopIteration + + next = __next__ + + def skip(self, write_bytes=None): + self._unpack(EX_SKIP) + if write_bytes is not None: + warnings.warn("`write_bytes` option is deprecated. Use `.tell()` instead.", DeprecationWarning) + write_bytes(self._buffer[self._buf_checkpoint:self._buff_i]) + self._consume() + + def unpack(self, write_bytes=None): + ret = self._unpack(EX_CONSTRUCT) + if write_bytes is not None: + warnings.warn("`write_bytes` option is deprecated. Use `.tell()` instead.", DeprecationWarning) + write_bytes(self._buffer[self._buf_checkpoint:self._buff_i]) + self._consume() + return ret + + def read_array_header(self, write_bytes=None): + ret = self._unpack(EX_READ_ARRAY_HEADER) + if write_bytes is not None: + warnings.warn("`write_bytes` option is deprecated. Use `.tell()` instead.", DeprecationWarning) + write_bytes(self._buffer[self._buf_checkpoint:self._buff_i]) + self._consume() + return ret + + def read_map_header(self, write_bytes=None): + ret = self._unpack(EX_READ_MAP_HEADER) + if write_bytes is not None: + warnings.warn("`write_bytes` option is deprecated. Use `.tell()` instead.", DeprecationWarning) + write_bytes(self._buffer[self._buf_checkpoint:self._buff_i]) + self._consume() + return ret + + def tell(self): + return self._stream_offset + + +class Packer(object): + """ + MessagePack Packer + + usage: + + packer = Packer() + astream.write(packer.pack(a)) + astream.write(packer.pack(b)) + + Packer's constructor has some keyword arguments: + + :param callable default: + Convert user type to builtin type that Packer supports. + See also simplejson's document. + + :param bool use_single_float: + Use single precision float type for float. (default: False) + + :param bool autoreset: + Reset buffer after each pack and return its content as `bytes`. (default: True). + If set this to false, use `bytes()` to get content and `.reset()` to clear buffer. + + :param bool use_bin_type: + Use bin type introduced in msgpack spec 2.0 for bytes. + It also enables str8 type for unicode. + + :param bool strict_types: + If set to true, types will be checked to be exact. Derived classes + from serializeable types will not be serialized and will be + treated as unsupported type and forwarded to default. + Additionally tuples will not be serialized as lists. + This is useful when trying to implement accurate serialization + for python types. + + :param str encoding: + (deprecated) Convert unicode to bytes with this encoding. (default: 'utf-8') + + :param str unicode_errors: + Error handler for encoding unicode. (default: 'strict') + """ + def __init__(self, default=None, encoding=None, unicode_errors=None, + use_single_float=False, autoreset=True, use_bin_type=False, + strict_types=False): + if encoding is None: + encoding = 'utf_8' + else: + warnings.warn( + "encoding is deprecated, Use raw=False instead.", + PendingDeprecationWarning) + + if unicode_errors is None: + unicode_errors = 'strict' + + self._strict_types = strict_types + self._use_float = use_single_float + self._autoreset = autoreset + self._use_bin_type = use_bin_type + self._encoding = encoding + self._unicode_errors = unicode_errors + self._buffer = StringIO() + if default is not None: + if not callable(default): + raise TypeError("default must be callable") + self._default = default + + def _pack(self, obj, nest_limit=DEFAULT_RECURSE_LIMIT, + check=isinstance, check_type_strict=_check_type_strict): + default_used = False + if self._strict_types: + check = check_type_strict + list_types = list + else: + list_types = (list, tuple) + while True: + if nest_limit < 0: + raise PackValueError("recursion limit exceeded") + if obj is None: + return self._buffer.write(b"\xc0") + if check(obj, bool): + if obj: + return self._buffer.write(b"\xc3") + return self._buffer.write(b"\xc2") + if check(obj, int_types): + if 0 <= obj < 0x80: + return self._buffer.write(struct.pack("B", obj)) + if -0x20 <= obj < 0: + return self._buffer.write(struct.pack("b", obj)) + if 0x80 <= obj <= 0xff: + return self._buffer.write(struct.pack("BB", 0xcc, obj)) + if -0x80 <= obj < 0: + return self._buffer.write(struct.pack(">Bb", 0xd0, obj)) + if 0xff < obj <= 0xffff: + return self._buffer.write(struct.pack(">BH", 0xcd, obj)) + if -0x8000 <= obj < -0x80: + return self._buffer.write(struct.pack(">Bh", 0xd1, obj)) + if 0xffff < obj <= 0xffffffff: + return self._buffer.write(struct.pack(">BI", 0xce, obj)) + if -0x80000000 <= obj < -0x8000: + return self._buffer.write(struct.pack(">Bi", 0xd2, obj)) + if 0xffffffff < obj <= 0xffffffffffffffff: + return self._buffer.write(struct.pack(">BQ", 0xcf, obj)) + if -0x8000000000000000 <= obj < -0x80000000: + return self._buffer.write(struct.pack(">Bq", 0xd3, obj)) + if not default_used and self._default is not None: + obj = self._default(obj) + default_used = True + continue + raise PackOverflowError("Integer value out of range") + if check(obj, (bytes, bytearray)): + n = len(obj) + if n >= 2**32: + raise PackValueError("%s is too large" % type(obj).__name__) + self._pack_bin_header(n) + return self._buffer.write(obj) + if check(obj, Unicode): + if self._encoding is None: + raise TypeError( + "Can't encode unicode string: " + "no encoding is specified") + obj = obj.encode(self._encoding, self._unicode_errors) + n = len(obj) + if n >= 2**32: + raise PackValueError("String is too large") + self._pack_raw_header(n) + return self._buffer.write(obj) + if check(obj, memoryview): + n = len(obj) * obj.itemsize + if n >= 2**32: + raise PackValueError("Memoryview is too large") + self._pack_bin_header(n) + return self._buffer.write(obj) + if check(obj, float): + if self._use_float: + return self._buffer.write(struct.pack(">Bf", 0xca, obj)) + return self._buffer.write(struct.pack(">Bd", 0xcb, obj)) + if check(obj, ExtType): + code = obj.code + data = obj.data + assert isinstance(code, int) + assert isinstance(data, bytes) + L = len(data) + if L == 1: + self._buffer.write(b'\xd4') + elif L == 2: + self._buffer.write(b'\xd5') + elif L == 4: + self._buffer.write(b'\xd6') + elif L == 8: + self._buffer.write(b'\xd7') + elif L == 16: + self._buffer.write(b'\xd8') + elif L <= 0xff: + self._buffer.write(struct.pack(">BB", 0xc7, L)) + elif L <= 0xffff: + self._buffer.write(struct.pack(">BH", 0xc8, L)) + else: + self._buffer.write(struct.pack(">BI", 0xc9, L)) + self._buffer.write(struct.pack("b", code)) + self._buffer.write(data) + return + if check(obj, list_types): + n = len(obj) + self._pack_array_header(n) + for i in xrange(n): + self._pack(obj[i], nest_limit - 1) + return + if check(obj, dict): + return self._pack_map_pairs(len(obj), dict_iteritems(obj), + nest_limit - 1) + if not default_used and self._default is not None: + obj = self._default(obj) + default_used = 1 + continue + raise TypeError("Cannot serialize %r" % (obj, )) + + def pack(self, obj): + try: + self._pack(obj) + except: + self._buffer = StringIO() # force reset + raise + ret = self._buffer.getvalue() + if self._autoreset: + self._buffer = StringIO() + elif USING_STRINGBUILDER: + self._buffer = StringIO(ret) + return ret + + def pack_map_pairs(self, pairs): + self._pack_map_pairs(len(pairs), pairs) + ret = self._buffer.getvalue() + if self._autoreset: + self._buffer = StringIO() + elif USING_STRINGBUILDER: + self._buffer = StringIO(ret) + return ret + + def pack_array_header(self, n): + if n >= 2**32: + raise PackValueError + self._pack_array_header(n) + ret = self._buffer.getvalue() + if self._autoreset: + self._buffer = StringIO() + elif USING_STRINGBUILDER: + self._buffer = StringIO(ret) + return ret + + def pack_map_header(self, n): + if n >= 2**32: + raise PackValueError + self._pack_map_header(n) + ret = self._buffer.getvalue() + if self._autoreset: + self._buffer = StringIO() + elif USING_STRINGBUILDER: + self._buffer = StringIO(ret) + return ret + + def pack_ext_type(self, typecode, data): + if not isinstance(typecode, int): + raise TypeError("typecode must have int type.") + if not 0 <= typecode <= 127: + raise ValueError("typecode should be 0-127") + if not isinstance(data, bytes): + raise TypeError("data must have bytes type") + L = len(data) + if L > 0xffffffff: + raise PackValueError("Too large data") + if L == 1: + self._buffer.write(b'\xd4') + elif L == 2: + self._buffer.write(b'\xd5') + elif L == 4: + self._buffer.write(b'\xd6') + elif L == 8: + self._buffer.write(b'\xd7') + elif L == 16: + self._buffer.write(b'\xd8') + elif L <= 0xff: + self._buffer.write(b'\xc7' + struct.pack('B', L)) + elif L <= 0xffff: + self._buffer.write(b'\xc8' + struct.pack('>H', L)) + else: + self._buffer.write(b'\xc9' + struct.pack('>I', L)) + self._buffer.write(struct.pack('B', typecode)) + self._buffer.write(data) + + def _pack_array_header(self, n): + if n <= 0x0f: + return self._buffer.write(struct.pack('B', 0x90 + n)) + if n <= 0xffff: + return self._buffer.write(struct.pack(">BH", 0xdc, n)) + if n <= 0xffffffff: + return self._buffer.write(struct.pack(">BI", 0xdd, n)) + raise PackValueError("Array is too large") + + def _pack_map_header(self, n): + if n <= 0x0f: + return self._buffer.write(struct.pack('B', 0x80 + n)) + if n <= 0xffff: + return self._buffer.write(struct.pack(">BH", 0xde, n)) + if n <= 0xffffffff: + return self._buffer.write(struct.pack(">BI", 0xdf, n)) + raise PackValueError("Dict is too large") + + def _pack_map_pairs(self, n, pairs, nest_limit=DEFAULT_RECURSE_LIMIT): + self._pack_map_header(n) + for (k, v) in pairs: + self._pack(k, nest_limit - 1) + self._pack(v, nest_limit - 1) + + def _pack_raw_header(self, n): + if n <= 0x1f: + self._buffer.write(struct.pack('B', 0xa0 + n)) + elif self._use_bin_type and n <= 0xff: + self._buffer.write(struct.pack('>BB', 0xd9, n)) + elif n <= 0xffff: + self._buffer.write(struct.pack(">BH", 0xda, n)) + elif n <= 0xffffffff: + self._buffer.write(struct.pack(">BI", 0xdb, n)) + else: + raise PackValueError('Raw is too large') + + def _pack_bin_header(self, n): + if not self._use_bin_type: + return self._pack_raw_header(n) + elif n <= 0xff: + return self._buffer.write(struct.pack('>BB', 0xc4, n)) + elif n <= 0xffff: + return self._buffer.write(struct.pack(">BH", 0xc5, n)) + elif n <= 0xffffffff: + return self._buffer.write(struct.pack(">BI", 0xc6, n)) + else: + raise PackValueError('Bin is too large') + + def bytes(self): + return self._buffer.getvalue() + + def reset(self): + self._buffer = StringIO() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/__about__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/__about__.py new file mode 100644 index 00000000..4255c5b5 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/__about__.py @@ -0,0 +1,21 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. +from __future__ import absolute_import, division, print_function + +__all__ = [ + "__title__", "__summary__", "__uri__", "__version__", "__author__", + "__email__", "__license__", "__copyright__", +] + +__title__ = "packaging" +__summary__ = "Core utilities for Python packages" +__uri__ = "https://github.com/pypa/packaging" + +__version__ = "17.1" + +__author__ = "Donald Stufft and individual contributors" +__email__ = "donald@stufft.io" + +__license__ = "BSD or Apache License, Version 2.0" +__copyright__ = "Copyright 2014-2016 %s" % __author__ diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/__init__.py new file mode 100644 index 00000000..5ee62202 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/__init__.py @@ -0,0 +1,14 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. +from __future__ import absolute_import, division, print_function + +from .__about__ import ( + __author__, __copyright__, __email__, __license__, __summary__, __title__, + __uri__, __version__ +) + +__all__ = [ + "__title__", "__summary__", "__uri__", "__version__", "__author__", + "__email__", "__license__", "__copyright__", +] diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/_compat.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/_compat.py new file mode 100644 index 00000000..210bb80b --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/_compat.py @@ -0,0 +1,30 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. +from __future__ import absolute_import, division, print_function + +import sys + + +PY2 = sys.version_info[0] == 2 +PY3 = sys.version_info[0] == 3 + +# flake8: noqa + +if PY3: + string_types = str, +else: + string_types = basestring, + + +def with_metaclass(meta, *bases): + """ + Create a base class with a metaclass. + """ + # This requires a bit of explanation: the basic idea is to make a dummy + # metaclass for one level of class instantiation that replaces itself with + # the actual metaclass. + class metaclass(meta): + def __new__(cls, name, this_bases, d): + return meta(name, bases, d) + return type.__new__(metaclass, 'temporary_class', (), {}) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/_structures.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/_structures.py new file mode 100644 index 00000000..e9fc4a04 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/_structures.py @@ -0,0 +1,70 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. +from __future__ import absolute_import, division, print_function + + +class Infinity(object): + + def __repr__(self): + return "Infinity" + + def __hash__(self): + return hash(repr(self)) + + def __lt__(self, other): + return False + + def __le__(self, other): + return False + + def __eq__(self, other): + return isinstance(other, self.__class__) + + def __ne__(self, other): + return not isinstance(other, self.__class__) + + def __gt__(self, other): + return True + + def __ge__(self, other): + return True + + def __neg__(self): + return NegativeInfinity + + +Infinity = Infinity() + + +class NegativeInfinity(object): + + def __repr__(self): + return "-Infinity" + + def __hash__(self): + return hash(repr(self)) + + def __lt__(self, other): + return True + + def __le__(self, other): + return True + + def __eq__(self, other): + return isinstance(other, self.__class__) + + def __ne__(self, other): + return not isinstance(other, self.__class__) + + def __gt__(self, other): + return False + + def __ge__(self, other): + return False + + def __neg__(self): + return Infinity + + +NegativeInfinity = NegativeInfinity() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/markers.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/markers.py new file mode 100644 index 00000000..e5834ce6 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/markers.py @@ -0,0 +1,301 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. +from __future__ import absolute_import, division, print_function + +import operator +import os +import platform +import sys + +from pip._vendor.pyparsing import ParseException, ParseResults, stringStart, stringEnd +from pip._vendor.pyparsing import ZeroOrMore, Group, Forward, QuotedString +from pip._vendor.pyparsing import Literal as L # noqa + +from ._compat import string_types +from .specifiers import Specifier, InvalidSpecifier + + +__all__ = [ + "InvalidMarker", "UndefinedComparison", "UndefinedEnvironmentName", + "Marker", "default_environment", +] + + +class InvalidMarker(ValueError): + """ + An invalid marker was found, users should refer to PEP 508. + """ + + +class UndefinedComparison(ValueError): + """ + An invalid operation was attempted on a value that doesn't support it. + """ + + +class UndefinedEnvironmentName(ValueError): + """ + A name was attempted to be used that does not exist inside of the + environment. + """ + + +class Node(object): + + def __init__(self, value): + self.value = value + + def __str__(self): + return str(self.value) + + def __repr__(self): + return "<{0}({1!r})>".format(self.__class__.__name__, str(self)) + + def serialize(self): + raise NotImplementedError + + +class Variable(Node): + + def serialize(self): + return str(self) + + +class Value(Node): + + def serialize(self): + return '"{0}"'.format(self) + + +class Op(Node): + + def serialize(self): + return str(self) + + +VARIABLE = ( + L("implementation_version") | + L("platform_python_implementation") | + L("implementation_name") | + L("python_full_version") | + L("platform_release") | + L("platform_version") | + L("platform_machine") | + L("platform_system") | + L("python_version") | + L("sys_platform") | + L("os_name") | + L("os.name") | # PEP-345 + L("sys.platform") | # PEP-345 + L("platform.version") | # PEP-345 + L("platform.machine") | # PEP-345 + L("platform.python_implementation") | # PEP-345 + L("python_implementation") | # undocumented setuptools legacy + L("extra") +) +ALIASES = { + 'os.name': 'os_name', + 'sys.platform': 'sys_platform', + 'platform.version': 'platform_version', + 'platform.machine': 'platform_machine', + 'platform.python_implementation': 'platform_python_implementation', + 'python_implementation': 'platform_python_implementation' +} +VARIABLE.setParseAction(lambda s, l, t: Variable(ALIASES.get(t[0], t[0]))) + +VERSION_CMP = ( + L("===") | + L("==") | + L(">=") | + L("<=") | + L("!=") | + L("~=") | + L(">") | + L("<") +) + +MARKER_OP = VERSION_CMP | L("not in") | L("in") +MARKER_OP.setParseAction(lambda s, l, t: Op(t[0])) + +MARKER_VALUE = QuotedString("'") | QuotedString('"') +MARKER_VALUE.setParseAction(lambda s, l, t: Value(t[0])) + +BOOLOP = L("and") | L("or") + +MARKER_VAR = VARIABLE | MARKER_VALUE + +MARKER_ITEM = Group(MARKER_VAR + MARKER_OP + MARKER_VAR) +MARKER_ITEM.setParseAction(lambda s, l, t: tuple(t[0])) + +LPAREN = L("(").suppress() +RPAREN = L(")").suppress() + +MARKER_EXPR = Forward() +MARKER_ATOM = MARKER_ITEM | Group(LPAREN + MARKER_EXPR + RPAREN) +MARKER_EXPR << MARKER_ATOM + ZeroOrMore(BOOLOP + MARKER_EXPR) + +MARKER = stringStart + MARKER_EXPR + stringEnd + + +def _coerce_parse_result(results): + if isinstance(results, ParseResults): + return [_coerce_parse_result(i) for i in results] + else: + return results + + +def _format_marker(marker, first=True): + assert isinstance(marker, (list, tuple, string_types)) + + # Sometimes we have a structure like [[...]] which is a single item list + # where the single item is itself it's own list. In that case we want skip + # the rest of this function so that we don't get extraneous () on the + # outside. + if (isinstance(marker, list) and len(marker) == 1 and + isinstance(marker[0], (list, tuple))): + return _format_marker(marker[0]) + + if isinstance(marker, list): + inner = (_format_marker(m, first=False) for m in marker) + if first: + return " ".join(inner) + else: + return "(" + " ".join(inner) + ")" + elif isinstance(marker, tuple): + return " ".join([m.serialize() for m in marker]) + else: + return marker + + +_operators = { + "in": lambda lhs, rhs: lhs in rhs, + "not in": lambda lhs, rhs: lhs not in rhs, + "<": operator.lt, + "<=": operator.le, + "==": operator.eq, + "!=": operator.ne, + ">=": operator.ge, + ">": operator.gt, +} + + +def _eval_op(lhs, op, rhs): + try: + spec = Specifier("".join([op.serialize(), rhs])) + except InvalidSpecifier: + pass + else: + return spec.contains(lhs) + + oper = _operators.get(op.serialize()) + if oper is None: + raise UndefinedComparison( + "Undefined {0!r} on {1!r} and {2!r}.".format(op, lhs, rhs) + ) + + return oper(lhs, rhs) + + +_undefined = object() + + +def _get_env(environment, name): + value = environment.get(name, _undefined) + + if value is _undefined: + raise UndefinedEnvironmentName( + "{0!r} does not exist in evaluation environment.".format(name) + ) + + return value + + +def _evaluate_markers(markers, environment): + groups = [[]] + + for marker in markers: + assert isinstance(marker, (list, tuple, string_types)) + + if isinstance(marker, list): + groups[-1].append(_evaluate_markers(marker, environment)) + elif isinstance(marker, tuple): + lhs, op, rhs = marker + + if isinstance(lhs, Variable): + lhs_value = _get_env(environment, lhs.value) + rhs_value = rhs.value + else: + lhs_value = lhs.value + rhs_value = _get_env(environment, rhs.value) + + groups[-1].append(_eval_op(lhs_value, op, rhs_value)) + else: + assert marker in ["and", "or"] + if marker == "or": + groups.append([]) + + return any(all(item) for item in groups) + + +def format_full_version(info): + version = '{0.major}.{0.minor}.{0.micro}'.format(info) + kind = info.releaselevel + if kind != 'final': + version += kind[0] + str(info.serial) + return version + + +def default_environment(): + if hasattr(sys, 'implementation'): + iver = format_full_version(sys.implementation.version) + implementation_name = sys.implementation.name + else: + iver = '0' + implementation_name = '' + + return { + "implementation_name": implementation_name, + "implementation_version": iver, + "os_name": os.name, + "platform_machine": platform.machine(), + "platform_release": platform.release(), + "platform_system": platform.system(), + "platform_version": platform.version(), + "python_full_version": platform.python_version(), + "platform_python_implementation": platform.python_implementation(), + "python_version": platform.python_version()[:3], + "sys_platform": sys.platform, + } + + +class Marker(object): + + def __init__(self, marker): + try: + self._markers = _coerce_parse_result(MARKER.parseString(marker)) + except ParseException as e: + err_str = "Invalid marker: {0!r}, parse error at {1!r}".format( + marker, marker[e.loc:e.loc + 8]) + raise InvalidMarker(err_str) + + def __str__(self): + return _format_marker(self._markers) + + def __repr__(self): + return "<Marker({0!r})>".format(str(self)) + + def evaluate(self, environment=None): + """Evaluate a marker. + + Return the boolean from evaluating the given marker against the + environment. environment is an optional argument to override all or + part of the determined environment. + + The environment is determined from the current Python process. + """ + current_environment = default_environment() + if environment is not None: + current_environment.update(environment) + + return _evaluate_markers(self._markers, current_environment) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/requirements.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/requirements.py new file mode 100644 index 00000000..2760483a --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/requirements.py @@ -0,0 +1,130 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. +from __future__ import absolute_import, division, print_function + +import string +import re + +from pip._vendor.pyparsing import stringStart, stringEnd, originalTextFor, ParseException +from pip._vendor.pyparsing import ZeroOrMore, Word, Optional, Regex, Combine +from pip._vendor.pyparsing import Literal as L # noqa +from pip._vendor.six.moves.urllib import parse as urlparse + +from .markers import MARKER_EXPR, Marker +from .specifiers import LegacySpecifier, Specifier, SpecifierSet + + +class InvalidRequirement(ValueError): + """ + An invalid requirement was found, users should refer to PEP 508. + """ + + +ALPHANUM = Word(string.ascii_letters + string.digits) + +LBRACKET = L("[").suppress() +RBRACKET = L("]").suppress() +LPAREN = L("(").suppress() +RPAREN = L(")").suppress() +COMMA = L(",").suppress() +SEMICOLON = L(";").suppress() +AT = L("@").suppress() + +PUNCTUATION = Word("-_.") +IDENTIFIER_END = ALPHANUM | (ZeroOrMore(PUNCTUATION) + ALPHANUM) +IDENTIFIER = Combine(ALPHANUM + ZeroOrMore(IDENTIFIER_END)) + +NAME = IDENTIFIER("name") +EXTRA = IDENTIFIER + +URI = Regex(r'[^ ]+')("url") +URL = (AT + URI) + +EXTRAS_LIST = EXTRA + ZeroOrMore(COMMA + EXTRA) +EXTRAS = (LBRACKET + Optional(EXTRAS_LIST) + RBRACKET)("extras") + +VERSION_PEP440 = Regex(Specifier._regex_str, re.VERBOSE | re.IGNORECASE) +VERSION_LEGACY = Regex(LegacySpecifier._regex_str, re.VERBOSE | re.IGNORECASE) + +VERSION_ONE = VERSION_PEP440 ^ VERSION_LEGACY +VERSION_MANY = Combine(VERSION_ONE + ZeroOrMore(COMMA + VERSION_ONE), + joinString=",", adjacent=False)("_raw_spec") +_VERSION_SPEC = Optional(((LPAREN + VERSION_MANY + RPAREN) | VERSION_MANY)) +_VERSION_SPEC.setParseAction(lambda s, l, t: t._raw_spec or '') + +VERSION_SPEC = originalTextFor(_VERSION_SPEC)("specifier") +VERSION_SPEC.setParseAction(lambda s, l, t: t[1]) + +MARKER_EXPR = originalTextFor(MARKER_EXPR())("marker") +MARKER_EXPR.setParseAction( + lambda s, l, t: Marker(s[t._original_start:t._original_end]) +) +MARKER_SEPARATOR = SEMICOLON +MARKER = MARKER_SEPARATOR + MARKER_EXPR + +VERSION_AND_MARKER = VERSION_SPEC + Optional(MARKER) +URL_AND_MARKER = URL + Optional(MARKER) + +NAMED_REQUIREMENT = \ + NAME + Optional(EXTRAS) + (URL_AND_MARKER | VERSION_AND_MARKER) + +REQUIREMENT = stringStart + NAMED_REQUIREMENT + stringEnd +# pyparsing isn't thread safe during initialization, so we do it eagerly, see +# issue #104 +REQUIREMENT.parseString("x[]") + + +class Requirement(object): + """Parse a requirement. + + Parse a given requirement string into its parts, such as name, specifier, + URL, and extras. Raises InvalidRequirement on a badly-formed requirement + string. + """ + + # TODO: Can we test whether something is contained within a requirement? + # If so how do we do that? Do we need to test against the _name_ of + # the thing as well as the version? What about the markers? + # TODO: Can we normalize the name and extra name? + + def __init__(self, requirement_string): + try: + req = REQUIREMENT.parseString(requirement_string) + except ParseException as e: + raise InvalidRequirement( + "Invalid requirement, parse error at \"{0!r}\"".format( + requirement_string[e.loc:e.loc + 8])) + + self.name = req.name + if req.url: + parsed_url = urlparse.urlparse(req.url) + if not (parsed_url.scheme and parsed_url.netloc) or ( + not parsed_url.scheme and not parsed_url.netloc): + raise InvalidRequirement("Invalid URL given") + self.url = req.url + else: + self.url = None + self.extras = set(req.extras.asList() if req.extras else []) + self.specifier = SpecifierSet(req.specifier) + self.marker = req.marker if req.marker else None + + def __str__(self): + parts = [self.name] + + if self.extras: + parts.append("[{0}]".format(",".join(sorted(self.extras)))) + + if self.specifier: + parts.append(str(self.specifier)) + + if self.url: + parts.append("@ {0}".format(self.url)) + + if self.marker: + parts.append("; {0}".format(self.marker)) + + return "".join(parts) + + def __repr__(self): + return "<Requirement({0!r})>".format(str(self)) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/specifiers.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/specifiers.py new file mode 100644 index 00000000..9b6353f0 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/specifiers.py @@ -0,0 +1,774 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. +from __future__ import absolute_import, division, print_function + +import abc +import functools +import itertools +import re + +from ._compat import string_types, with_metaclass +from .version import Version, LegacyVersion, parse + + +class InvalidSpecifier(ValueError): + """ + An invalid specifier was found, users should refer to PEP 440. + """ + + +class BaseSpecifier(with_metaclass(abc.ABCMeta, object)): + + @abc.abstractmethod + def __str__(self): + """ + Returns the str representation of this Specifier like object. This + should be representative of the Specifier itself. + """ + + @abc.abstractmethod + def __hash__(self): + """ + Returns a hash value for this Specifier like object. + """ + + @abc.abstractmethod + def __eq__(self, other): + """ + Returns a boolean representing whether or not the two Specifier like + objects are equal. + """ + + @abc.abstractmethod + def __ne__(self, other): + """ + Returns a boolean representing whether or not the two Specifier like + objects are not equal. + """ + + @abc.abstractproperty + def prereleases(self): + """ + Returns whether or not pre-releases as a whole are allowed by this + specifier. + """ + + @prereleases.setter + def prereleases(self, value): + """ + Sets whether or not pre-releases as a whole are allowed by this + specifier. + """ + + @abc.abstractmethod + def contains(self, item, prereleases=None): + """ + Determines if the given item is contained within this specifier. + """ + + @abc.abstractmethod + def filter(self, iterable, prereleases=None): + """ + Takes an iterable of items and filters them so that only items which + are contained within this specifier are allowed in it. + """ + + +class _IndividualSpecifier(BaseSpecifier): + + _operators = {} + + def __init__(self, spec="", prereleases=None): + match = self._regex.search(spec) + if not match: + raise InvalidSpecifier("Invalid specifier: '{0}'".format(spec)) + + self._spec = ( + match.group("operator").strip(), + match.group("version").strip(), + ) + + # Store whether or not this Specifier should accept prereleases + self._prereleases = prereleases + + def __repr__(self): + pre = ( + ", prereleases={0!r}".format(self.prereleases) + if self._prereleases is not None + else "" + ) + + return "<{0}({1!r}{2})>".format( + self.__class__.__name__, + str(self), + pre, + ) + + def __str__(self): + return "{0}{1}".format(*self._spec) + + def __hash__(self): + return hash(self._spec) + + def __eq__(self, other): + if isinstance(other, string_types): + try: + other = self.__class__(other) + except InvalidSpecifier: + return NotImplemented + elif not isinstance(other, self.__class__): + return NotImplemented + + return self._spec == other._spec + + def __ne__(self, other): + if isinstance(other, string_types): + try: + other = self.__class__(other) + except InvalidSpecifier: + return NotImplemented + elif not isinstance(other, self.__class__): + return NotImplemented + + return self._spec != other._spec + + def _get_operator(self, op): + return getattr(self, "_compare_{0}".format(self._operators[op])) + + def _coerce_version(self, version): + if not isinstance(version, (LegacyVersion, Version)): + version = parse(version) + return version + + @property + def operator(self): + return self._spec[0] + + @property + def version(self): + return self._spec[1] + + @property + def prereleases(self): + return self._prereleases + + @prereleases.setter + def prereleases(self, value): + self._prereleases = value + + def __contains__(self, item): + return self.contains(item) + + def contains(self, item, prereleases=None): + # Determine if prereleases are to be allowed or not. + if prereleases is None: + prereleases = self.prereleases + + # Normalize item to a Version or LegacyVersion, this allows us to have + # a shortcut for ``"2.0" in Specifier(">=2") + item = self._coerce_version(item) + + # Determine if we should be supporting prereleases in this specifier + # or not, if we do not support prereleases than we can short circuit + # logic if this version is a prereleases. + if item.is_prerelease and not prereleases: + return False + + # Actually do the comparison to determine if this item is contained + # within this Specifier or not. + return self._get_operator(self.operator)(item, self.version) + + def filter(self, iterable, prereleases=None): + yielded = False + found_prereleases = [] + + kw = {"prereleases": prereleases if prereleases is not None else True} + + # Attempt to iterate over all the values in the iterable and if any of + # them match, yield them. + for version in iterable: + parsed_version = self._coerce_version(version) + + if self.contains(parsed_version, **kw): + # If our version is a prerelease, and we were not set to allow + # prereleases, then we'll store it for later incase nothing + # else matches this specifier. + if (parsed_version.is_prerelease and not + (prereleases or self.prereleases)): + found_prereleases.append(version) + # Either this is not a prerelease, or we should have been + # accepting prereleases from the beginning. + else: + yielded = True + yield version + + # Now that we've iterated over everything, determine if we've yielded + # any values, and if we have not and we have any prereleases stored up + # then we will go ahead and yield the prereleases. + if not yielded and found_prereleases: + for version in found_prereleases: + yield version + + +class LegacySpecifier(_IndividualSpecifier): + + _regex_str = ( + r""" + (?P<operator>(==|!=|<=|>=|<|>)) + \s* + (?P<version> + [^,;\s)]* # Since this is a "legacy" specifier, and the version + # string can be just about anything, we match everything + # except for whitespace, a semi-colon for marker support, + # a closing paren since versions can be enclosed in + # them, and a comma since it's a version separator. + ) + """ + ) + + _regex = re.compile( + r"^\s*" + _regex_str + r"\s*$", re.VERBOSE | re.IGNORECASE) + + _operators = { + "==": "equal", + "!=": "not_equal", + "<=": "less_than_equal", + ">=": "greater_than_equal", + "<": "less_than", + ">": "greater_than", + } + + def _coerce_version(self, version): + if not isinstance(version, LegacyVersion): + version = LegacyVersion(str(version)) + return version + + def _compare_equal(self, prospective, spec): + return prospective == self._coerce_version(spec) + + def _compare_not_equal(self, prospective, spec): + return prospective != self._coerce_version(spec) + + def _compare_less_than_equal(self, prospective, spec): + return prospective <= self._coerce_version(spec) + + def _compare_greater_than_equal(self, prospective, spec): + return prospective >= self._coerce_version(spec) + + def _compare_less_than(self, prospective, spec): + return prospective < self._coerce_version(spec) + + def _compare_greater_than(self, prospective, spec): + return prospective > self._coerce_version(spec) + + +def _require_version_compare(fn): + @functools.wraps(fn) + def wrapped(self, prospective, spec): + if not isinstance(prospective, Version): + return False + return fn(self, prospective, spec) + return wrapped + + +class Specifier(_IndividualSpecifier): + + _regex_str = ( + r""" + (?P<operator>(~=|==|!=|<=|>=|<|>|===)) + (?P<version> + (?: + # The identity operators allow for an escape hatch that will + # do an exact string match of the version you wish to install. + # This will not be parsed by PEP 440 and we cannot determine + # any semantic meaning from it. This operator is discouraged + # but included entirely as an escape hatch. + (?<====) # Only match for the identity operator + \s* + [^\s]* # We just match everything, except for whitespace + # since we are only testing for strict identity. + ) + | + (?: + # The (non)equality operators allow for wild card and local + # versions to be specified so we have to define these two + # operators separately to enable that. + (?<===|!=) # Only match for equals and not equals + + \s* + v? + (?:[0-9]+!)? # epoch + [0-9]+(?:\.[0-9]+)* # release + (?: # pre release + [-_\.]? + (a|b|c|rc|alpha|beta|pre|preview) + [-_\.]? + [0-9]* + )? + (?: # post release + (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*) + )? + + # You cannot use a wild card and a dev or local version + # together so group them with a | and make them optional. + (?: + (?:[-_\.]?dev[-_\.]?[0-9]*)? # dev release + (?:\+[a-z0-9]+(?:[-_\.][a-z0-9]+)*)? # local + | + \.\* # Wild card syntax of .* + )? + ) + | + (?: + # The compatible operator requires at least two digits in the + # release segment. + (?<=~=) # Only match for the compatible operator + + \s* + v? + (?:[0-9]+!)? # epoch + [0-9]+(?:\.[0-9]+)+ # release (We have a + instead of a *) + (?: # pre release + [-_\.]? + (a|b|c|rc|alpha|beta|pre|preview) + [-_\.]? + [0-9]* + )? + (?: # post release + (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*) + )? + (?:[-_\.]?dev[-_\.]?[0-9]*)? # dev release + ) + | + (?: + # All other operators only allow a sub set of what the + # (non)equality operators do. Specifically they do not allow + # local versions to be specified nor do they allow the prefix + # matching wild cards. + (?<!==|!=|~=) # We have special cases for these + # operators so we want to make sure they + # don't match here. + + \s* + v? + (?:[0-9]+!)? # epoch + [0-9]+(?:\.[0-9]+)* # release + (?: # pre release + [-_\.]? + (a|b|c|rc|alpha|beta|pre|preview) + [-_\.]? + [0-9]* + )? + (?: # post release + (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*) + )? + (?:[-_\.]?dev[-_\.]?[0-9]*)? # dev release + ) + ) + """ + ) + + _regex = re.compile( + r"^\s*" + _regex_str + r"\s*$", re.VERBOSE | re.IGNORECASE) + + _operators = { + "~=": "compatible", + "==": "equal", + "!=": "not_equal", + "<=": "less_than_equal", + ">=": "greater_than_equal", + "<": "less_than", + ">": "greater_than", + "===": "arbitrary", + } + + @_require_version_compare + def _compare_compatible(self, prospective, spec): + # Compatible releases have an equivalent combination of >= and ==. That + # is that ~=2.2 is equivalent to >=2.2,==2.*. This allows us to + # implement this in terms of the other specifiers instead of + # implementing it ourselves. The only thing we need to do is construct + # the other specifiers. + + # We want everything but the last item in the version, but we want to + # ignore post and dev releases and we want to treat the pre-release as + # it's own separate segment. + prefix = ".".join( + list( + itertools.takewhile( + lambda x: (not x.startswith("post") and not + x.startswith("dev")), + _version_split(spec), + ) + )[:-1] + ) + + # Add the prefix notation to the end of our string + prefix += ".*" + + return (self._get_operator(">=")(prospective, spec) and + self._get_operator("==")(prospective, prefix)) + + @_require_version_compare + def _compare_equal(self, prospective, spec): + # We need special logic to handle prefix matching + if spec.endswith(".*"): + # In the case of prefix matching we want to ignore local segment. + prospective = Version(prospective.public) + # Split the spec out by dots, and pretend that there is an implicit + # dot in between a release segment and a pre-release segment. + spec = _version_split(spec[:-2]) # Remove the trailing .* + + # Split the prospective version out by dots, and pretend that there + # is an implicit dot in between a release segment and a pre-release + # segment. + prospective = _version_split(str(prospective)) + + # Shorten the prospective version to be the same length as the spec + # so that we can determine if the specifier is a prefix of the + # prospective version or not. + prospective = prospective[:len(spec)] + + # Pad out our two sides with zeros so that they both equal the same + # length. + spec, prospective = _pad_version(spec, prospective) + else: + # Convert our spec string into a Version + spec = Version(spec) + + # If the specifier does not have a local segment, then we want to + # act as if the prospective version also does not have a local + # segment. + if not spec.local: + prospective = Version(prospective.public) + + return prospective == spec + + @_require_version_compare + def _compare_not_equal(self, prospective, spec): + return not self._compare_equal(prospective, spec) + + @_require_version_compare + def _compare_less_than_equal(self, prospective, spec): + return prospective <= Version(spec) + + @_require_version_compare + def _compare_greater_than_equal(self, prospective, spec): + return prospective >= Version(spec) + + @_require_version_compare + def _compare_less_than(self, prospective, spec): + # Convert our spec to a Version instance, since we'll want to work with + # it as a version. + spec = Version(spec) + + # Check to see if the prospective version is less than the spec + # version. If it's not we can short circuit and just return False now + # instead of doing extra unneeded work. + if not prospective < spec: + return False + + # This special case is here so that, unless the specifier itself + # includes is a pre-release version, that we do not accept pre-release + # versions for the version mentioned in the specifier (e.g. <3.1 should + # not match 3.1.dev0, but should match 3.0.dev0). + if not spec.is_prerelease and prospective.is_prerelease: + if Version(prospective.base_version) == Version(spec.base_version): + return False + + # If we've gotten to here, it means that prospective version is both + # less than the spec version *and* it's not a pre-release of the same + # version in the spec. + return True + + @_require_version_compare + def _compare_greater_than(self, prospective, spec): + # Convert our spec to a Version instance, since we'll want to work with + # it as a version. + spec = Version(spec) + + # Check to see if the prospective version is greater than the spec + # version. If it's not we can short circuit and just return False now + # instead of doing extra unneeded work. + if not prospective > spec: + return False + + # This special case is here so that, unless the specifier itself + # includes is a post-release version, that we do not accept + # post-release versions for the version mentioned in the specifier + # (e.g. >3.1 should not match 3.0.post0, but should match 3.2.post0). + if not spec.is_postrelease and prospective.is_postrelease: + if Version(prospective.base_version) == Version(spec.base_version): + return False + + # Ensure that we do not allow a local version of the version mentioned + # in the specifier, which is techincally greater than, to match. + if prospective.local is not None: + if Version(prospective.base_version) == Version(spec.base_version): + return False + + # If we've gotten to here, it means that prospective version is both + # greater than the spec version *and* it's not a pre-release of the + # same version in the spec. + return True + + def _compare_arbitrary(self, prospective, spec): + return str(prospective).lower() == str(spec).lower() + + @property + def prereleases(self): + # If there is an explicit prereleases set for this, then we'll just + # blindly use that. + if self._prereleases is not None: + return self._prereleases + + # Look at all of our specifiers and determine if they are inclusive + # operators, and if they are if they are including an explicit + # prerelease. + operator, version = self._spec + if operator in ["==", ">=", "<=", "~=", "==="]: + # The == specifier can include a trailing .*, if it does we + # want to remove before parsing. + if operator == "==" and version.endswith(".*"): + version = version[:-2] + + # Parse the version, and if it is a pre-release than this + # specifier allows pre-releases. + if parse(version).is_prerelease: + return True + + return False + + @prereleases.setter + def prereleases(self, value): + self._prereleases = value + + +_prefix_regex = re.compile(r"^([0-9]+)((?:a|b|c|rc)[0-9]+)$") + + +def _version_split(version): + result = [] + for item in version.split("."): + match = _prefix_regex.search(item) + if match: + result.extend(match.groups()) + else: + result.append(item) + return result + + +def _pad_version(left, right): + left_split, right_split = [], [] + + # Get the release segment of our versions + left_split.append(list(itertools.takewhile(lambda x: x.isdigit(), left))) + right_split.append(list(itertools.takewhile(lambda x: x.isdigit(), right))) + + # Get the rest of our versions + left_split.append(left[len(left_split[0]):]) + right_split.append(right[len(right_split[0]):]) + + # Insert our padding + left_split.insert( + 1, + ["0"] * max(0, len(right_split[0]) - len(left_split[0])), + ) + right_split.insert( + 1, + ["0"] * max(0, len(left_split[0]) - len(right_split[0])), + ) + + return ( + list(itertools.chain(*left_split)), + list(itertools.chain(*right_split)), + ) + + +class SpecifierSet(BaseSpecifier): + + def __init__(self, specifiers="", prereleases=None): + # Split on , to break each indidivual specifier into it's own item, and + # strip each item to remove leading/trailing whitespace. + specifiers = [s.strip() for s in specifiers.split(",") if s.strip()] + + # Parsed each individual specifier, attempting first to make it a + # Specifier and falling back to a LegacySpecifier. + parsed = set() + for specifier in specifiers: + try: + parsed.add(Specifier(specifier)) + except InvalidSpecifier: + parsed.add(LegacySpecifier(specifier)) + + # Turn our parsed specifiers into a frozen set and save them for later. + self._specs = frozenset(parsed) + + # Store our prereleases value so we can use it later to determine if + # we accept prereleases or not. + self._prereleases = prereleases + + def __repr__(self): + pre = ( + ", prereleases={0!r}".format(self.prereleases) + if self._prereleases is not None + else "" + ) + + return "<SpecifierSet({0!r}{1})>".format(str(self), pre) + + def __str__(self): + return ",".join(sorted(str(s) for s in self._specs)) + + def __hash__(self): + return hash(self._specs) + + def __and__(self, other): + if isinstance(other, string_types): + other = SpecifierSet(other) + elif not isinstance(other, SpecifierSet): + return NotImplemented + + specifier = SpecifierSet() + specifier._specs = frozenset(self._specs | other._specs) + + if self._prereleases is None and other._prereleases is not None: + specifier._prereleases = other._prereleases + elif self._prereleases is not None and other._prereleases is None: + specifier._prereleases = self._prereleases + elif self._prereleases == other._prereleases: + specifier._prereleases = self._prereleases + else: + raise ValueError( + "Cannot combine SpecifierSets with True and False prerelease " + "overrides." + ) + + return specifier + + def __eq__(self, other): + if isinstance(other, string_types): + other = SpecifierSet(other) + elif isinstance(other, _IndividualSpecifier): + other = SpecifierSet(str(other)) + elif not isinstance(other, SpecifierSet): + return NotImplemented + + return self._specs == other._specs + + def __ne__(self, other): + if isinstance(other, string_types): + other = SpecifierSet(other) + elif isinstance(other, _IndividualSpecifier): + other = SpecifierSet(str(other)) + elif not isinstance(other, SpecifierSet): + return NotImplemented + + return self._specs != other._specs + + def __len__(self): + return len(self._specs) + + def __iter__(self): + return iter(self._specs) + + @property + def prereleases(self): + # If we have been given an explicit prerelease modifier, then we'll + # pass that through here. + if self._prereleases is not None: + return self._prereleases + + # If we don't have any specifiers, and we don't have a forced value, + # then we'll just return None since we don't know if this should have + # pre-releases or not. + if not self._specs: + return None + + # Otherwise we'll see if any of the given specifiers accept + # prereleases, if any of them do we'll return True, otherwise False. + return any(s.prereleases for s in self._specs) + + @prereleases.setter + def prereleases(self, value): + self._prereleases = value + + def __contains__(self, item): + return self.contains(item) + + def contains(self, item, prereleases=None): + # Ensure that our item is a Version or LegacyVersion instance. + if not isinstance(item, (LegacyVersion, Version)): + item = parse(item) + + # Determine if we're forcing a prerelease or not, if we're not forcing + # one for this particular filter call, then we'll use whatever the + # SpecifierSet thinks for whether or not we should support prereleases. + if prereleases is None: + prereleases = self.prereleases + + # We can determine if we're going to allow pre-releases by looking to + # see if any of the underlying items supports them. If none of them do + # and this item is a pre-release then we do not allow it and we can + # short circuit that here. + # Note: This means that 1.0.dev1 would not be contained in something + # like >=1.0.devabc however it would be in >=1.0.debabc,>0.0.dev0 + if not prereleases and item.is_prerelease: + return False + + # We simply dispatch to the underlying specs here to make sure that the + # given version is contained within all of them. + # Note: This use of all() here means that an empty set of specifiers + # will always return True, this is an explicit design decision. + return all( + s.contains(item, prereleases=prereleases) + for s in self._specs + ) + + def filter(self, iterable, prereleases=None): + # Determine if we're forcing a prerelease or not, if we're not forcing + # one for this particular filter call, then we'll use whatever the + # SpecifierSet thinks for whether or not we should support prereleases. + if prereleases is None: + prereleases = self.prereleases + + # If we have any specifiers, then we want to wrap our iterable in the + # filter method for each one, this will act as a logical AND amongst + # each specifier. + if self._specs: + for spec in self._specs: + iterable = spec.filter(iterable, prereleases=bool(prereleases)) + return iterable + # If we do not have any specifiers, then we need to have a rough filter + # which will filter out any pre-releases, unless there are no final + # releases, and which will filter out LegacyVersion in general. + else: + filtered = [] + found_prereleases = [] + + for item in iterable: + # Ensure that we some kind of Version class for this item. + if not isinstance(item, (LegacyVersion, Version)): + parsed_version = parse(item) + else: + parsed_version = item + + # Filter out any item which is parsed as a LegacyVersion + if isinstance(parsed_version, LegacyVersion): + continue + + # Store any item which is a pre-release for later unless we've + # already found a final version or we are accepting prereleases + if parsed_version.is_prerelease and not prereleases: + if not filtered: + found_prereleases.append(item) + else: + filtered.append(item) + + # If we've found no items except for pre-releases, then we'll go + # ahead and use the pre-releases + if not filtered and found_prereleases and prereleases is None: + return found_prereleases + + return filtered diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/utils.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/utils.py new file mode 100644 index 00000000..4b94a82f --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/utils.py @@ -0,0 +1,63 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. +from __future__ import absolute_import, division, print_function + +import re + +from .version import InvalidVersion, Version + + +_canonicalize_regex = re.compile(r"[-_.]+") + + +def canonicalize_name(name): + # This is taken from PEP 503. + return _canonicalize_regex.sub("-", name).lower() + + +def canonicalize_version(version): + """ + This is very similar to Version.__str__, but has one subtle differences + with the way it handles the release segment. + """ + + try: + version = Version(version) + except InvalidVersion: + # Legacy versions cannot be normalized + return version + + parts = [] + + # Epoch + if version.epoch != 0: + parts.append("{0}!".format(version.epoch)) + + # Release segment + # NB: This strips trailing '.0's to normalize + parts.append( + re.sub( + r'(\.0)+$', + '', + ".".join(str(x) for x in version.release) + ) + ) + + # Pre-release + if version.pre is not None: + parts.append("".join(str(x) for x in version.pre)) + + # Post-release + if version.post is not None: + parts.append(".post{0}".format(version.post)) + + # Development release + if version.dev is not None: + parts.append(".dev{0}".format(version.dev)) + + # Local version segment + if version.local is not None: + parts.append("+{0}".format(version.local)) + + return "".join(parts) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/version.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/version.py new file mode 100644 index 00000000..6ed5cbbd --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/packaging/version.py @@ -0,0 +1,441 @@ +# This file is dual licensed under the terms of the Apache License, Version +# 2.0, and the BSD License. See the LICENSE file in the root of this repository +# for complete details. +from __future__ import absolute_import, division, print_function + +import collections +import itertools +import re + +from ._structures import Infinity + + +__all__ = [ + "parse", "Version", "LegacyVersion", "InvalidVersion", "VERSION_PATTERN" +] + + +_Version = collections.namedtuple( + "_Version", + ["epoch", "release", "dev", "pre", "post", "local"], +) + + +def parse(version): + """ + Parse the given version string and return either a :class:`Version` object + or a :class:`LegacyVersion` object depending on if the given version is + a valid PEP 440 version or a legacy version. + """ + try: + return Version(version) + except InvalidVersion: + return LegacyVersion(version) + + +class InvalidVersion(ValueError): + """ + An invalid version was found, users should refer to PEP 440. + """ + + +class _BaseVersion(object): + + def __hash__(self): + return hash(self._key) + + def __lt__(self, other): + return self._compare(other, lambda s, o: s < o) + + def __le__(self, other): + return self._compare(other, lambda s, o: s <= o) + + def __eq__(self, other): + return self._compare(other, lambda s, o: s == o) + + def __ge__(self, other): + return self._compare(other, lambda s, o: s >= o) + + def __gt__(self, other): + return self._compare(other, lambda s, o: s > o) + + def __ne__(self, other): + return self._compare(other, lambda s, o: s != o) + + def _compare(self, other, method): + if not isinstance(other, _BaseVersion): + return NotImplemented + + return method(self._key, other._key) + + +class LegacyVersion(_BaseVersion): + + def __init__(self, version): + self._version = str(version) + self._key = _legacy_cmpkey(self._version) + + def __str__(self): + return self._version + + def __repr__(self): + return "<LegacyVersion({0})>".format(repr(str(self))) + + @property + def public(self): + return self._version + + @property + def base_version(self): + return self._version + + @property + def epoch(self): + return -1 + + @property + def release(self): + return None + + @property + def pre(self): + return None + + @property + def post(self): + return None + + @property + def dev(self): + return None + + @property + def local(self): + return None + + @property + def is_prerelease(self): + return False + + @property + def is_postrelease(self): + return False + + @property + def is_devrelease(self): + return False + + +_legacy_version_component_re = re.compile( + r"(\d+ | [a-z]+ | \.| -)", re.VERBOSE, +) + +_legacy_version_replacement_map = { + "pre": "c", "preview": "c", "-": "final-", "rc": "c", "dev": "@", +} + + +def _parse_version_parts(s): + for part in _legacy_version_component_re.split(s): + part = _legacy_version_replacement_map.get(part, part) + + if not part or part == ".": + continue + + if part[:1] in "0123456789": + # pad for numeric comparison + yield part.zfill(8) + else: + yield "*" + part + + # ensure that alpha/beta/candidate are before final + yield "*final" + + +def _legacy_cmpkey(version): + # We hardcode an epoch of -1 here. A PEP 440 version can only have a epoch + # greater than or equal to 0. This will effectively put the LegacyVersion, + # which uses the defacto standard originally implemented by setuptools, + # as before all PEP 440 versions. + epoch = -1 + + # This scheme is taken from pkg_resources.parse_version setuptools prior to + # it's adoption of the packaging library. + parts = [] + for part in _parse_version_parts(version.lower()): + if part.startswith("*"): + # remove "-" before a prerelease tag + if part < "*final": + while parts and parts[-1] == "*final-": + parts.pop() + + # remove trailing zeros from each series of numeric parts + while parts and parts[-1] == "00000000": + parts.pop() + + parts.append(part) + parts = tuple(parts) + + return epoch, parts + + +# Deliberately not anchored to the start and end of the string, to make it +# easier for 3rd party code to reuse +VERSION_PATTERN = r""" + v? + (?: + (?:(?P<epoch>[0-9]+)!)? # epoch + (?P<release>[0-9]+(?:\.[0-9]+)*) # release segment + (?P<pre> # pre-release + [-_\.]? + (?P<pre_l>(a|b|c|rc|alpha|beta|pre|preview)) + [-_\.]? + (?P<pre_n>[0-9]+)? + )? + (?P<post> # post release + (?:-(?P<post_n1>[0-9]+)) + | + (?: + [-_\.]? + (?P<post_l>post|rev|r) + [-_\.]? + (?P<post_n2>[0-9]+)? + ) + )? + (?P<dev> # dev release + [-_\.]? + (?P<dev_l>dev) + [-_\.]? + (?P<dev_n>[0-9]+)? + )? + ) + (?:\+(?P<local>[a-z0-9]+(?:[-_\.][a-z0-9]+)*))? # local version +""" + + +class Version(_BaseVersion): + + _regex = re.compile( + r"^\s*" + VERSION_PATTERN + r"\s*$", + re.VERBOSE | re.IGNORECASE, + ) + + def __init__(self, version): + # Validate the version and parse it into pieces + match = self._regex.search(version) + if not match: + raise InvalidVersion("Invalid version: '{0}'".format(version)) + + # Store the parsed out pieces of the version + self._version = _Version( + epoch=int(match.group("epoch")) if match.group("epoch") else 0, + release=tuple(int(i) for i in match.group("release").split(".")), + pre=_parse_letter_version( + match.group("pre_l"), + match.group("pre_n"), + ), + post=_parse_letter_version( + match.group("post_l"), + match.group("post_n1") or match.group("post_n2"), + ), + dev=_parse_letter_version( + match.group("dev_l"), + match.group("dev_n"), + ), + local=_parse_local_version(match.group("local")), + ) + + # Generate a key which will be used for sorting + self._key = _cmpkey( + self._version.epoch, + self._version.release, + self._version.pre, + self._version.post, + self._version.dev, + self._version.local, + ) + + def __repr__(self): + return "<Version({0})>".format(repr(str(self))) + + def __str__(self): + parts = [] + + # Epoch + if self.epoch != 0: + parts.append("{0}!".format(self.epoch)) + + # Release segment + parts.append(".".join(str(x) for x in self.release)) + + # Pre-release + if self.pre is not None: + parts.append("".join(str(x) for x in self.pre)) + + # Post-release + if self.post is not None: + parts.append(".post{0}".format(self.post)) + + # Development release + if self.dev is not None: + parts.append(".dev{0}".format(self.dev)) + + # Local version segment + if self.local is not None: + parts.append("+{0}".format(self.local)) + + return "".join(parts) + + @property + def epoch(self): + return self._version.epoch + + @property + def release(self): + return self._version.release + + @property + def pre(self): + return self._version.pre + + @property + def post(self): + return self._version.post[1] if self._version.post else None + + @property + def dev(self): + return self._version.dev[1] if self._version.dev else None + + @property + def local(self): + if self._version.local: + return ".".join(str(x) for x in self._version.local) + else: + return None + + @property + def public(self): + return str(self).split("+", 1)[0] + + @property + def base_version(self): + parts = [] + + # Epoch + if self.epoch != 0: + parts.append("{0}!".format(self.epoch)) + + # Release segment + parts.append(".".join(str(x) for x in self.release)) + + return "".join(parts) + + @property + def is_prerelease(self): + return self.dev is not None or self.pre is not None + + @property + def is_postrelease(self): + return self.post is not None + + @property + def is_devrelease(self): + return self.dev is not None + + +def _parse_letter_version(letter, number): + if letter: + # We consider there to be an implicit 0 in a pre-release if there is + # not a numeral associated with it. + if number is None: + number = 0 + + # We normalize any letters to their lower case form + letter = letter.lower() + + # We consider some words to be alternate spellings of other words and + # in those cases we want to normalize the spellings to our preferred + # spelling. + if letter == "alpha": + letter = "a" + elif letter == "beta": + letter = "b" + elif letter in ["c", "pre", "preview"]: + letter = "rc" + elif letter in ["rev", "r"]: + letter = "post" + + return letter, int(number) + if not letter and number: + # We assume if we are given a number, but we are not given a letter + # then this is using the implicit post release syntax (e.g. 1.0-1) + letter = "post" + + return letter, int(number) + + +_local_version_separators = re.compile(r"[\._-]") + + +def _parse_local_version(local): + """ + Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve"). + """ + if local is not None: + return tuple( + part.lower() if not part.isdigit() else int(part) + for part in _local_version_separators.split(local) + ) + + +def _cmpkey(epoch, release, pre, post, dev, local): + # When we compare a release version, we want to compare it with all of the + # trailing zeros removed. So we'll use a reverse the list, drop all the now + # leading zeros until we come to something non zero, then take the rest + # re-reverse it back into the correct order and make it a tuple and use + # that for our sorting key. + release = tuple( + reversed(list( + itertools.dropwhile( + lambda x: x == 0, + reversed(release), + ) + )) + ) + + # We need to "trick" the sorting algorithm to put 1.0.dev0 before 1.0a0. + # We'll do this by abusing the pre segment, but we _only_ want to do this + # if there is not a pre or a post segment. If we have one of those then + # the normal sorting rules will handle this case correctly. + if pre is None and post is None and dev is not None: + pre = -Infinity + # Versions without a pre-release (except as noted above) should sort after + # those with one. + elif pre is None: + pre = Infinity + + # Versions without a post segment should sort before those with one. + if post is None: + post = -Infinity + + # Versions without a development segment should sort after those with one. + if dev is None: + dev = Infinity + + if local is None: + # Versions without a local segment should sort before those with one. + local = -Infinity + else: + # Versions with a local segment need that segment parsed to implement + # the sorting rules in PEP440. + # - Alpha numeric segments sort before numeric segments + # - Alpha numeric segments sort lexicographically + # - Numeric segments sort numerically + # - Shorter versions sort before longer versions when the prefixes + # match exactly + local = tuple( + (i, "") if isinstance(i, int) else (-Infinity, i) + for i in local + ) + + return epoch, release, pre, post, dev, local diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pkg_resources/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pkg_resources/__init__.py new file mode 100644 index 00000000..19d3d056 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pkg_resources/__init__.py @@ -0,0 +1,3125 @@ +# coding: utf-8 +""" +Package resource API +-------------------- + +A resource is a logical file contained within a package, or a logical +subdirectory thereof. The package resource API expects resource names +to have their path parts separated with ``/``, *not* whatever the local +path separator is. Do not use os.path operations to manipulate resource +names being passed into the API. + +The package resource API is designed to work with normal filesystem packages, +.egg files, and unpacked .egg files. It can also work in a limited way with +.zip files and with custom PEP 302 loaders that support the ``get_data()`` +method. +""" + +from __future__ import absolute_import + +import sys +import os +import io +import time +import re +import types +import zipfile +import zipimport +import warnings +import stat +import functools +import pkgutil +import operator +import platform +import collections +import plistlib +import email.parser +import errno +import tempfile +import textwrap +import itertools +import inspect +from pkgutil import get_importer + +try: + import _imp +except ImportError: + # Python 3.2 compatibility + import imp as _imp + +from pip._vendor import six +from pip._vendor.six.moves import urllib, map, filter + +# capture these to bypass sandboxing +from os import utime +try: + from os import mkdir, rename, unlink + WRITE_SUPPORT = True +except ImportError: + # no write support, probably under GAE + WRITE_SUPPORT = False + +from os import open as os_open +from os.path import isdir, split + +try: + import importlib.machinery as importlib_machinery + # access attribute to force import under delayed import mechanisms. + importlib_machinery.__name__ +except ImportError: + importlib_machinery = None + +from . import py31compat +from pip._vendor import appdirs +from pip._vendor import packaging +__import__('pip._vendor.packaging.version') +__import__('pip._vendor.packaging.specifiers') +__import__('pip._vendor.packaging.requirements') +__import__('pip._vendor.packaging.markers') + + +if (3, 0) < sys.version_info < (3, 3): + raise RuntimeError("Python 3.3 or later is required") + +if six.PY2: + # Those builtin exceptions are only defined in Python 3 + PermissionError = None + NotADirectoryError = None + +# declare some globals that will be defined later to +# satisfy the linters. +require = None +working_set = None +add_activation_listener = None +resources_stream = None +cleanup_resources = None +resource_dir = None +resource_stream = None +set_extraction_path = None +resource_isdir = None +resource_string = None +iter_entry_points = None +resource_listdir = None +resource_filename = None +resource_exists = None +_distribution_finders = None +_namespace_handlers = None +_namespace_packages = None + + +class PEP440Warning(RuntimeWarning): + """ + Used when there is an issue with a version or specifier not complying with + PEP 440. + """ + + +def parse_version(v): + try: + return packaging.version.Version(v) + except packaging.version.InvalidVersion: + return packaging.version.LegacyVersion(v) + + +_state_vars = {} + + +def _declare_state(vartype, **kw): + globals().update(kw) + _state_vars.update(dict.fromkeys(kw, vartype)) + + +def __getstate__(): + state = {} + g = globals() + for k, v in _state_vars.items(): + state[k] = g['_sget_' + v](g[k]) + return state + + +def __setstate__(state): + g = globals() + for k, v in state.items(): + g['_sset_' + _state_vars[k]](k, g[k], v) + return state + + +def _sget_dict(val): + return val.copy() + + +def _sset_dict(key, ob, state): + ob.clear() + ob.update(state) + + +def _sget_object(val): + return val.__getstate__() + + +def _sset_object(key, ob, state): + ob.__setstate__(state) + + +_sget_none = _sset_none = lambda *args: None + + +def get_supported_platform(): + """Return this platform's maximum compatible version. + + distutils.util.get_platform() normally reports the minimum version + of Mac OS X that would be required to *use* extensions produced by + distutils. But what we want when checking compatibility is to know the + version of Mac OS X that we are *running*. To allow usage of packages that + explicitly require a newer version of Mac OS X, we must also know the + current version of the OS. + + If this condition occurs for any other platform with a version in its + platform strings, this function should be extended accordingly. + """ + plat = get_build_platform() + m = macosVersionString.match(plat) + if m is not None and sys.platform == "darwin": + try: + plat = 'macosx-%s-%s' % ('.'.join(_macosx_vers()[:2]), m.group(3)) + except ValueError: + # not Mac OS X + pass + return plat + + +__all__ = [ + # Basic resource access and distribution/entry point discovery + 'require', 'run_script', 'get_provider', 'get_distribution', + 'load_entry_point', 'get_entry_map', 'get_entry_info', + 'iter_entry_points', + 'resource_string', 'resource_stream', 'resource_filename', + 'resource_listdir', 'resource_exists', 'resource_isdir', + + # Environmental control + 'declare_namespace', 'working_set', 'add_activation_listener', + 'find_distributions', 'set_extraction_path', 'cleanup_resources', + 'get_default_cache', + + # Primary implementation classes + 'Environment', 'WorkingSet', 'ResourceManager', + 'Distribution', 'Requirement', 'EntryPoint', + + # Exceptions + 'ResolutionError', 'VersionConflict', 'DistributionNotFound', + 'UnknownExtra', 'ExtractionError', + + # Warnings + 'PEP440Warning', + + # Parsing functions and string utilities + 'parse_requirements', 'parse_version', 'safe_name', 'safe_version', + 'get_platform', 'compatible_platforms', 'yield_lines', 'split_sections', + 'safe_extra', 'to_filename', 'invalid_marker', 'evaluate_marker', + + # filesystem utilities + 'ensure_directory', 'normalize_path', + + # Distribution "precedence" constants + 'EGG_DIST', 'BINARY_DIST', 'SOURCE_DIST', 'CHECKOUT_DIST', 'DEVELOP_DIST', + + # "Provider" interfaces, implementations, and registration/lookup APIs + 'IMetadataProvider', 'IResourceProvider', 'FileMetadata', + 'PathMetadata', 'EggMetadata', 'EmptyProvider', 'empty_provider', + 'NullProvider', 'EggProvider', 'DefaultProvider', 'ZipProvider', + 'register_finder', 'register_namespace_handler', 'register_loader_type', + 'fixup_namespace_packages', 'get_importer', + + # Deprecated/backward compatibility only + 'run_main', 'AvailableDistributions', +] + + +class ResolutionError(Exception): + """Abstract base for dependency resolution errors""" + + def __repr__(self): + return self.__class__.__name__ + repr(self.args) + + +class VersionConflict(ResolutionError): + """ + An already-installed version conflicts with the requested version. + + Should be initialized with the installed Distribution and the requested + Requirement. + """ + + _template = "{self.dist} is installed but {self.req} is required" + + @property + def dist(self): + return self.args[0] + + @property + def req(self): + return self.args[1] + + def report(self): + return self._template.format(**locals()) + + def with_context(self, required_by): + """ + If required_by is non-empty, return a version of self that is a + ContextualVersionConflict. + """ + if not required_by: + return self + args = self.args + (required_by,) + return ContextualVersionConflict(*args) + + +class ContextualVersionConflict(VersionConflict): + """ + A VersionConflict that accepts a third parameter, the set of the + requirements that required the installed Distribution. + """ + + _template = VersionConflict._template + ' by {self.required_by}' + + @property + def required_by(self): + return self.args[2] + + +class DistributionNotFound(ResolutionError): + """A requested distribution was not found""" + + _template = ("The '{self.req}' distribution was not found " + "and is required by {self.requirers_str}") + + @property + def req(self): + return self.args[0] + + @property + def requirers(self): + return self.args[1] + + @property + def requirers_str(self): + if not self.requirers: + return 'the application' + return ', '.join(self.requirers) + + def report(self): + return self._template.format(**locals()) + + def __str__(self): + return self.report() + + +class UnknownExtra(ResolutionError): + """Distribution doesn't have an "extra feature" of the given name""" + + +_provider_factories = {} + +PY_MAJOR = sys.version[:3] +EGG_DIST = 3 +BINARY_DIST = 2 +SOURCE_DIST = 1 +CHECKOUT_DIST = 0 +DEVELOP_DIST = -1 + + +def register_loader_type(loader_type, provider_factory): + """Register `provider_factory` to make providers for `loader_type` + + `loader_type` is the type or class of a PEP 302 ``module.__loader__``, + and `provider_factory` is a function that, passed a *module* object, + returns an ``IResourceProvider`` for that module. + """ + _provider_factories[loader_type] = provider_factory + + +def get_provider(moduleOrReq): + """Return an IResourceProvider for the named module or requirement""" + if isinstance(moduleOrReq, Requirement): + return working_set.find(moduleOrReq) or require(str(moduleOrReq))[0] + try: + module = sys.modules[moduleOrReq] + except KeyError: + __import__(moduleOrReq) + module = sys.modules[moduleOrReq] + loader = getattr(module, '__loader__', None) + return _find_adapter(_provider_factories, loader)(module) + + +def _macosx_vers(_cache=[]): + if not _cache: + version = platform.mac_ver()[0] + # fallback for MacPorts + if version == '': + plist = '/System/Library/CoreServices/SystemVersion.plist' + if os.path.exists(plist): + if hasattr(plistlib, 'readPlist'): + plist_content = plistlib.readPlist(plist) + if 'ProductVersion' in plist_content: + version = plist_content['ProductVersion'] + + _cache.append(version.split('.')) + return _cache[0] + + +def _macosx_arch(machine): + return {'PowerPC': 'ppc', 'Power_Macintosh': 'ppc'}.get(machine, machine) + + +def get_build_platform(): + """Return this platform's string for platform-specific distributions + + XXX Currently this is the same as ``distutils.util.get_platform()``, but it + needs some hacks for Linux and Mac OS X. + """ + try: + # Python 2.7 or >=3.2 + from sysconfig import get_platform + except ImportError: + from distutils.util import get_platform + + plat = get_platform() + if sys.platform == "darwin" and not plat.startswith('macosx-'): + try: + version = _macosx_vers() + machine = os.uname()[4].replace(" ", "_") + return "macosx-%d.%d-%s" % ( + int(version[0]), int(version[1]), + _macosx_arch(machine), + ) + except ValueError: + # if someone is running a non-Mac darwin system, this will fall + # through to the default implementation + pass + return plat + + +macosVersionString = re.compile(r"macosx-(\d+)\.(\d+)-(.*)") +darwinVersionString = re.compile(r"darwin-(\d+)\.(\d+)\.(\d+)-(.*)") +# XXX backward compat +get_platform = get_build_platform + + +def compatible_platforms(provided, required): + """Can code for the `provided` platform run on the `required` platform? + + Returns true if either platform is ``None``, or the platforms are equal. + + XXX Needs compatibility checks for Linux and other unixy OSes. + """ + if provided is None or required is None or provided == required: + # easy case + return True + + # Mac OS X special cases + reqMac = macosVersionString.match(required) + if reqMac: + provMac = macosVersionString.match(provided) + + # is this a Mac package? + if not provMac: + # this is backwards compatibility for packages built before + # setuptools 0.6. All packages built after this point will + # use the new macosx designation. + provDarwin = darwinVersionString.match(provided) + if provDarwin: + dversion = int(provDarwin.group(1)) + macosversion = "%s.%s" % (reqMac.group(1), reqMac.group(2)) + if dversion == 7 and macosversion >= "10.3" or \ + dversion == 8 and macosversion >= "10.4": + return True + # egg isn't macosx or legacy darwin + return False + + # are they the same major version and machine type? + if provMac.group(1) != reqMac.group(1) or \ + provMac.group(3) != reqMac.group(3): + return False + + # is the required OS major update >= the provided one? + if int(provMac.group(2)) > int(reqMac.group(2)): + return False + + return True + + # XXX Linux and other platforms' special cases should go here + return False + + +def run_script(dist_spec, script_name): + """Locate distribution `dist_spec` and run its `script_name` script""" + ns = sys._getframe(1).f_globals + name = ns['__name__'] + ns.clear() + ns['__name__'] = name + require(dist_spec)[0].run_script(script_name, ns) + + +# backward compatibility +run_main = run_script + + +def get_distribution(dist): + """Return a current distribution object for a Requirement or string""" + if isinstance(dist, six.string_types): + dist = Requirement.parse(dist) + if isinstance(dist, Requirement): + dist = get_provider(dist) + if not isinstance(dist, Distribution): + raise TypeError("Expected string, Requirement, or Distribution", dist) + return dist + + +def load_entry_point(dist, group, name): + """Return `name` entry point of `group` for `dist` or raise ImportError""" + return get_distribution(dist).load_entry_point(group, name) + + +def get_entry_map(dist, group=None): + """Return the entry point map for `group`, or the full entry map""" + return get_distribution(dist).get_entry_map(group) + + +def get_entry_info(dist, group, name): + """Return the EntryPoint object for `group`+`name`, or ``None``""" + return get_distribution(dist).get_entry_info(group, name) + + +class IMetadataProvider: + def has_metadata(name): + """Does the package's distribution contain the named metadata?""" + + def get_metadata(name): + """The named metadata resource as a string""" + + def get_metadata_lines(name): + """Yield named metadata resource as list of non-blank non-comment lines + + Leading and trailing whitespace is stripped from each line, and lines + with ``#`` as the first non-blank character are omitted.""" + + def metadata_isdir(name): + """Is the named metadata a directory? (like ``os.path.isdir()``)""" + + def metadata_listdir(name): + """List of metadata names in the directory (like ``os.listdir()``)""" + + def run_script(script_name, namespace): + """Execute the named script in the supplied namespace dictionary""" + + +class IResourceProvider(IMetadataProvider): + """An object that provides access to package resources""" + + def get_resource_filename(manager, resource_name): + """Return a true filesystem path for `resource_name` + + `manager` must be an ``IResourceManager``""" + + def get_resource_stream(manager, resource_name): + """Return a readable file-like object for `resource_name` + + `manager` must be an ``IResourceManager``""" + + def get_resource_string(manager, resource_name): + """Return a string containing the contents of `resource_name` + + `manager` must be an ``IResourceManager``""" + + def has_resource(resource_name): + """Does the package contain the named resource?""" + + def resource_isdir(resource_name): + """Is the named resource a directory? (like ``os.path.isdir()``)""" + + def resource_listdir(resource_name): + """List of resource names in the directory (like ``os.listdir()``)""" + + +class WorkingSet(object): + """A collection of active distributions on sys.path (or a similar list)""" + + def __init__(self, entries=None): + """Create working set from list of path entries (default=sys.path)""" + self.entries = [] + self.entry_keys = {} + self.by_key = {} + self.callbacks = [] + + if entries is None: + entries = sys.path + + for entry in entries: + self.add_entry(entry) + + @classmethod + def _build_master(cls): + """ + Prepare the master working set. + """ + ws = cls() + try: + from __main__ import __requires__ + except ImportError: + # The main program does not list any requirements + return ws + + # ensure the requirements are met + try: + ws.require(__requires__) + except VersionConflict: + return cls._build_from_requirements(__requires__) + + return ws + + @classmethod + def _build_from_requirements(cls, req_spec): + """ + Build a working set from a requirement spec. Rewrites sys.path. + """ + # try it without defaults already on sys.path + # by starting with an empty path + ws = cls([]) + reqs = parse_requirements(req_spec) + dists = ws.resolve(reqs, Environment()) + for dist in dists: + ws.add(dist) + + # add any missing entries from sys.path + for entry in sys.path: + if entry not in ws.entries: + ws.add_entry(entry) + + # then copy back to sys.path + sys.path[:] = ws.entries + return ws + + def add_entry(self, entry): + """Add a path item to ``.entries``, finding any distributions on it + + ``find_distributions(entry, True)`` is used to find distributions + corresponding to the path entry, and they are added. `entry` is + always appended to ``.entries``, even if it is already present. + (This is because ``sys.path`` can contain the same value more than + once, and the ``.entries`` of the ``sys.path`` WorkingSet should always + equal ``sys.path``.) + """ + self.entry_keys.setdefault(entry, []) + self.entries.append(entry) + for dist in find_distributions(entry, True): + self.add(dist, entry, False) + + def __contains__(self, dist): + """True if `dist` is the active distribution for its project""" + return self.by_key.get(dist.key) == dist + + def find(self, req): + """Find a distribution matching requirement `req` + + If there is an active distribution for the requested project, this + returns it as long as it meets the version requirement specified by + `req`. But, if there is an active distribution for the project and it + does *not* meet the `req` requirement, ``VersionConflict`` is raised. + If there is no active distribution for the requested project, ``None`` + is returned. + """ + dist = self.by_key.get(req.key) + if dist is not None and dist not in req: + # XXX add more info + raise VersionConflict(dist, req) + return dist + + def iter_entry_points(self, group, name=None): + """Yield entry point objects from `group` matching `name` + + If `name` is None, yields all entry points in `group` from all + distributions in the working set, otherwise only ones matching + both `group` and `name` are yielded (in distribution order). + """ + for dist in self: + entries = dist.get_entry_map(group) + if name is None: + for ep in entries.values(): + yield ep + elif name in entries: + yield entries[name] + + def run_script(self, requires, script_name): + """Locate distribution for `requires` and run `script_name` script""" + ns = sys._getframe(1).f_globals + name = ns['__name__'] + ns.clear() + ns['__name__'] = name + self.require(requires)[0].run_script(script_name, ns) + + def __iter__(self): + """Yield distributions for non-duplicate projects in the working set + + The yield order is the order in which the items' path entries were + added to the working set. + """ + seen = {} + for item in self.entries: + if item not in self.entry_keys: + # workaround a cache issue + continue + + for key in self.entry_keys[item]: + if key not in seen: + seen[key] = 1 + yield self.by_key[key] + + def add(self, dist, entry=None, insert=True, replace=False): + """Add `dist` to working set, associated with `entry` + + If `entry` is unspecified, it defaults to the ``.location`` of `dist`. + On exit from this routine, `entry` is added to the end of the working + set's ``.entries`` (if it wasn't already present). + + `dist` is only added to the working set if it's for a project that + doesn't already have a distribution in the set, unless `replace=True`. + If it's added, any callbacks registered with the ``subscribe()`` method + will be called. + """ + if insert: + dist.insert_on(self.entries, entry, replace=replace) + + if entry is None: + entry = dist.location + keys = self.entry_keys.setdefault(entry, []) + keys2 = self.entry_keys.setdefault(dist.location, []) + if not replace and dist.key in self.by_key: + # ignore hidden distros + return + + self.by_key[dist.key] = dist + if dist.key not in keys: + keys.append(dist.key) + if dist.key not in keys2: + keys2.append(dist.key) + self._added_new(dist) + + def resolve(self, requirements, env=None, installer=None, + replace_conflicting=False, extras=None): + """List all distributions needed to (recursively) meet `requirements` + + `requirements` must be a sequence of ``Requirement`` objects. `env`, + if supplied, should be an ``Environment`` instance. If + not supplied, it defaults to all distributions available within any + entry or distribution in the working set. `installer`, if supplied, + will be invoked with each requirement that cannot be met by an + already-installed distribution; it should return a ``Distribution`` or + ``None``. + + Unless `replace_conflicting=True`, raises a VersionConflict exception + if + any requirements are found on the path that have the correct name but + the wrong version. Otherwise, if an `installer` is supplied it will be + invoked to obtain the correct version of the requirement and activate + it. + + `extras` is a list of the extras to be used with these requirements. + This is important because extra requirements may look like `my_req; + extra = "my_extra"`, which would otherwise be interpreted as a purely + optional requirement. Instead, we want to be able to assert that these + requirements are truly required. + """ + + # set up the stack + requirements = list(requirements)[::-1] + # set of processed requirements + processed = {} + # key -> dist + best = {} + to_activate = [] + + req_extras = _ReqExtras() + + # Mapping of requirement to set of distributions that required it; + # useful for reporting info about conflicts. + required_by = collections.defaultdict(set) + + while requirements: + # process dependencies breadth-first + req = requirements.pop(0) + if req in processed: + # Ignore cyclic or redundant dependencies + continue + + if not req_extras.markers_pass(req, extras): + continue + + dist = best.get(req.key) + if dist is None: + # Find the best distribution and add it to the map + dist = self.by_key.get(req.key) + if dist is None or (dist not in req and replace_conflicting): + ws = self + if env is None: + if dist is None: + env = Environment(self.entries) + else: + # Use an empty environment and workingset to avoid + # any further conflicts with the conflicting + # distribution + env = Environment([]) + ws = WorkingSet([]) + dist = best[req.key] = env.best_match( + req, ws, installer, + replace_conflicting=replace_conflicting + ) + if dist is None: + requirers = required_by.get(req, None) + raise DistributionNotFound(req, requirers) + to_activate.append(dist) + if dist not in req: + # Oops, the "best" so far conflicts with a dependency + dependent_req = required_by[req] + raise VersionConflict(dist, req).with_context(dependent_req) + + # push the new requirements onto the stack + new_requirements = dist.requires(req.extras)[::-1] + requirements.extend(new_requirements) + + # Register the new requirements needed by req + for new_requirement in new_requirements: + required_by[new_requirement].add(req.project_name) + req_extras[new_requirement] = req.extras + + processed[req] = True + + # return list of distros to activate + return to_activate + + def find_plugins( + self, plugin_env, full_env=None, installer=None, fallback=True): + """Find all activatable distributions in `plugin_env` + + Example usage:: + + distributions, errors = working_set.find_plugins( + Environment(plugin_dirlist) + ) + # add plugins+libs to sys.path + map(working_set.add, distributions) + # display errors + print('Could not load', errors) + + The `plugin_env` should be an ``Environment`` instance that contains + only distributions that are in the project's "plugin directory" or + directories. The `full_env`, if supplied, should be an ``Environment`` + contains all currently-available distributions. If `full_env` is not + supplied, one is created automatically from the ``WorkingSet`` this + method is called on, which will typically mean that every directory on + ``sys.path`` will be scanned for distributions. + + `installer` is a standard installer callback as used by the + ``resolve()`` method. The `fallback` flag indicates whether we should + attempt to resolve older versions of a plugin if the newest version + cannot be resolved. + + This method returns a 2-tuple: (`distributions`, `error_info`), where + `distributions` is a list of the distributions found in `plugin_env` + that were loadable, along with any other distributions that are needed + to resolve their dependencies. `error_info` is a dictionary mapping + unloadable plugin distributions to an exception instance describing the + error that occurred. Usually this will be a ``DistributionNotFound`` or + ``VersionConflict`` instance. + """ + + plugin_projects = list(plugin_env) + # scan project names in alphabetic order + plugin_projects.sort() + + error_info = {} + distributions = {} + + if full_env is None: + env = Environment(self.entries) + env += plugin_env + else: + env = full_env + plugin_env + + shadow_set = self.__class__([]) + # put all our entries in shadow_set + list(map(shadow_set.add, self)) + + for project_name in plugin_projects: + + for dist in plugin_env[project_name]: + + req = [dist.as_requirement()] + + try: + resolvees = shadow_set.resolve(req, env, installer) + + except ResolutionError as v: + # save error info + error_info[dist] = v + if fallback: + # try the next older version of project + continue + else: + # give up on this project, keep going + break + + else: + list(map(shadow_set.add, resolvees)) + distributions.update(dict.fromkeys(resolvees)) + + # success, no need to try any more versions of this project + break + + distributions = list(distributions) + distributions.sort() + + return distributions, error_info + + def require(self, *requirements): + """Ensure that distributions matching `requirements` are activated + + `requirements` must be a string or a (possibly-nested) sequence + thereof, specifying the distributions and versions required. The + return value is a sequence of the distributions that needed to be + activated to fulfill the requirements; all relevant distributions are + included, even if they were already activated in this working set. + """ + needed = self.resolve(parse_requirements(requirements)) + + for dist in needed: + self.add(dist) + + return needed + + def subscribe(self, callback, existing=True): + """Invoke `callback` for all distributions + + If `existing=True` (default), + call on all existing ones, as well. + """ + if callback in self.callbacks: + return + self.callbacks.append(callback) + if not existing: + return + for dist in self: + callback(dist) + + def _added_new(self, dist): + for callback in self.callbacks: + callback(dist) + + def __getstate__(self): + return ( + self.entries[:], self.entry_keys.copy(), self.by_key.copy(), + self.callbacks[:] + ) + + def __setstate__(self, e_k_b_c): + entries, keys, by_key, callbacks = e_k_b_c + self.entries = entries[:] + self.entry_keys = keys.copy() + self.by_key = by_key.copy() + self.callbacks = callbacks[:] + + +class _ReqExtras(dict): + """ + Map each requirement to the extras that demanded it. + """ + + def markers_pass(self, req, extras=None): + """ + Evaluate markers for req against each extra that + demanded it. + + Return False if the req has a marker and fails + evaluation. Otherwise, return True. + """ + extra_evals = ( + req.marker.evaluate({'extra': extra}) + for extra in self.get(req, ()) + (extras or (None,)) + ) + return not req.marker or any(extra_evals) + + +class Environment(object): + """Searchable snapshot of distributions on a search path""" + + def __init__( + self, search_path=None, platform=get_supported_platform(), + python=PY_MAJOR): + """Snapshot distributions available on a search path + + Any distributions found on `search_path` are added to the environment. + `search_path` should be a sequence of ``sys.path`` items. If not + supplied, ``sys.path`` is used. + + `platform` is an optional string specifying the name of the platform + that platform-specific distributions must be compatible with. If + unspecified, it defaults to the current platform. `python` is an + optional string naming the desired version of Python (e.g. ``'3.3'``); + it defaults to the current version. + + You may explicitly set `platform` (and/or `python`) to ``None`` if you + wish to map *all* distributions, not just those compatible with the + running platform or Python version. + """ + self._distmap = {} + self.platform = platform + self.python = python + self.scan(search_path) + + def can_add(self, dist): + """Is distribution `dist` acceptable for this environment? + + The distribution must match the platform and python version + requirements specified when this environment was created, or False + is returned. + """ + py_compat = ( + self.python is None + or dist.py_version is None + or dist.py_version == self.python + ) + return py_compat and compatible_platforms(dist.platform, self.platform) + + def remove(self, dist): + """Remove `dist` from the environment""" + self._distmap[dist.key].remove(dist) + + def scan(self, search_path=None): + """Scan `search_path` for distributions usable in this environment + + Any distributions found are added to the environment. + `search_path` should be a sequence of ``sys.path`` items. If not + supplied, ``sys.path`` is used. Only distributions conforming to + the platform/python version defined at initialization are added. + """ + if search_path is None: + search_path = sys.path + + for item in search_path: + for dist in find_distributions(item): + self.add(dist) + + def __getitem__(self, project_name): + """Return a newest-to-oldest list of distributions for `project_name` + + Uses case-insensitive `project_name` comparison, assuming all the + project's distributions use their project's name converted to all + lowercase as their key. + + """ + distribution_key = project_name.lower() + return self._distmap.get(distribution_key, []) + + def add(self, dist): + """Add `dist` if we ``can_add()`` it and it has not already been added + """ + if self.can_add(dist) and dist.has_version(): + dists = self._distmap.setdefault(dist.key, []) + if dist not in dists: + dists.append(dist) + dists.sort(key=operator.attrgetter('hashcmp'), reverse=True) + + def best_match( + self, req, working_set, installer=None, replace_conflicting=False): + """Find distribution best matching `req` and usable on `working_set` + + This calls the ``find(req)`` method of the `working_set` to see if a + suitable distribution is already active. (This may raise + ``VersionConflict`` if an unsuitable version of the project is already + active in the specified `working_set`.) If a suitable distribution + isn't active, this method returns the newest distribution in the + environment that meets the ``Requirement`` in `req`. If no suitable + distribution is found, and `installer` is supplied, then the result of + calling the environment's ``obtain(req, installer)`` method will be + returned. + """ + try: + dist = working_set.find(req) + except VersionConflict: + if not replace_conflicting: + raise + dist = None + if dist is not None: + return dist + for dist in self[req.key]: + if dist in req: + return dist + # try to download/install + return self.obtain(req, installer) + + def obtain(self, requirement, installer=None): + """Obtain a distribution matching `requirement` (e.g. via download) + + Obtain a distro that matches requirement (e.g. via download). In the + base ``Environment`` class, this routine just returns + ``installer(requirement)``, unless `installer` is None, in which case + None is returned instead. This method is a hook that allows subclasses + to attempt other ways of obtaining a distribution before falling back + to the `installer` argument.""" + if installer is not None: + return installer(requirement) + + def __iter__(self): + """Yield the unique project names of the available distributions""" + for key in self._distmap.keys(): + if self[key]: + yield key + + def __iadd__(self, other): + """In-place addition of a distribution or environment""" + if isinstance(other, Distribution): + self.add(other) + elif isinstance(other, Environment): + for project in other: + for dist in other[project]: + self.add(dist) + else: + raise TypeError("Can't add %r to environment" % (other,)) + return self + + def __add__(self, other): + """Add an environment or distribution to an environment""" + new = self.__class__([], platform=None, python=None) + for env in self, other: + new += env + return new + + +# XXX backward compatibility +AvailableDistributions = Environment + + +class ExtractionError(RuntimeError): + """An error occurred extracting a resource + + The following attributes are available from instances of this exception: + + manager + The resource manager that raised this exception + + cache_path + The base directory for resource extraction + + original_error + The exception instance that caused extraction to fail + """ + + +class ResourceManager: + """Manage resource extraction and packages""" + extraction_path = None + + def __init__(self): + self.cached_files = {} + + def resource_exists(self, package_or_requirement, resource_name): + """Does the named resource exist?""" + return get_provider(package_or_requirement).has_resource(resource_name) + + def resource_isdir(self, package_or_requirement, resource_name): + """Is the named resource an existing directory?""" + return get_provider(package_or_requirement).resource_isdir( + resource_name + ) + + def resource_filename(self, package_or_requirement, resource_name): + """Return a true filesystem path for specified resource""" + return get_provider(package_or_requirement).get_resource_filename( + self, resource_name + ) + + def resource_stream(self, package_or_requirement, resource_name): + """Return a readable file-like object for specified resource""" + return get_provider(package_or_requirement).get_resource_stream( + self, resource_name + ) + + def resource_string(self, package_or_requirement, resource_name): + """Return specified resource as a string""" + return get_provider(package_or_requirement).get_resource_string( + self, resource_name + ) + + def resource_listdir(self, package_or_requirement, resource_name): + """List the contents of the named resource directory""" + return get_provider(package_or_requirement).resource_listdir( + resource_name + ) + + def extraction_error(self): + """Give an error message for problems extracting file(s)""" + + old_exc = sys.exc_info()[1] + cache_path = self.extraction_path or get_default_cache() + + tmpl = textwrap.dedent(""" + Can't extract file(s) to egg cache + + The following error occurred while trying to extract file(s) + to the Python egg cache: + + {old_exc} + + The Python egg cache directory is currently set to: + + {cache_path} + + Perhaps your account does not have write access to this directory? + You can change the cache directory by setting the PYTHON_EGG_CACHE + environment variable to point to an accessible directory. + """).lstrip() + err = ExtractionError(tmpl.format(**locals())) + err.manager = self + err.cache_path = cache_path + err.original_error = old_exc + raise err + + def get_cache_path(self, archive_name, names=()): + """Return absolute location in cache for `archive_name` and `names` + + The parent directory of the resulting path will be created if it does + not already exist. `archive_name` should be the base filename of the + enclosing egg (which may not be the name of the enclosing zipfile!), + including its ".egg" extension. `names`, if provided, should be a + sequence of path name parts "under" the egg's extraction location. + + This method should only be called by resource providers that need to + obtain an extraction location, and only for names they intend to + extract, as it tracks the generated names for possible cleanup later. + """ + extract_path = self.extraction_path or get_default_cache() + target_path = os.path.join(extract_path, archive_name + '-tmp', *names) + try: + _bypass_ensure_directory(target_path) + except Exception: + self.extraction_error() + + self._warn_unsafe_extraction_path(extract_path) + + self.cached_files[target_path] = 1 + return target_path + + @staticmethod + def _warn_unsafe_extraction_path(path): + """ + If the default extraction path is overridden and set to an insecure + location, such as /tmp, it opens up an opportunity for an attacker to + replace an extracted file with an unauthorized payload. Warn the user + if a known insecure location is used. + + See Distribute #375 for more details. + """ + if os.name == 'nt' and not path.startswith(os.environ['windir']): + # On Windows, permissions are generally restrictive by default + # and temp directories are not writable by other users, so + # bypass the warning. + return + mode = os.stat(path).st_mode + if mode & stat.S_IWOTH or mode & stat.S_IWGRP: + msg = ( + "%s is writable by group/others and vulnerable to attack " + "when " + "used with get_resource_filename. Consider a more secure " + "location (set with .set_extraction_path or the " + "PYTHON_EGG_CACHE environment variable)." % path + ) + warnings.warn(msg, UserWarning) + + def postprocess(self, tempname, filename): + """Perform any platform-specific postprocessing of `tempname` + + This is where Mac header rewrites should be done; other platforms don't + have anything special they should do. + + Resource providers should call this method ONLY after successfully + extracting a compressed resource. They must NOT call it on resources + that are already in the filesystem. + + `tempname` is the current (temporary) name of the file, and `filename` + is the name it will be renamed to by the caller after this routine + returns. + """ + + if os.name == 'posix': + # Make the resource executable + mode = ((os.stat(tempname).st_mode) | 0o555) & 0o7777 + os.chmod(tempname, mode) + + def set_extraction_path(self, path): + """Set the base path where resources will be extracted to, if needed. + + If you do not call this routine before any extractions take place, the + path defaults to the return value of ``get_default_cache()``. (Which + is based on the ``PYTHON_EGG_CACHE`` environment variable, with various + platform-specific fallbacks. See that routine's documentation for more + details.) + + Resources are extracted to subdirectories of this path based upon + information given by the ``IResourceProvider``. You may set this to a + temporary directory, but then you must call ``cleanup_resources()`` to + delete the extracted files when done. There is no guarantee that + ``cleanup_resources()`` will be able to remove all extracted files. + + (Note: you may not change the extraction path for a given resource + manager once resources have been extracted, unless you first call + ``cleanup_resources()``.) + """ + if self.cached_files: + raise ValueError( + "Can't change extraction path, files already extracted" + ) + + self.extraction_path = path + + def cleanup_resources(self, force=False): + """ + Delete all extracted resource files and directories, returning a list + of the file and directory names that could not be successfully removed. + This function does not have any concurrency protection, so it should + generally only be called when the extraction path is a temporary + directory exclusive to a single process. This method is not + automatically called; you must call it explicitly or register it as an + ``atexit`` function if you wish to ensure cleanup of a temporary + directory used for extractions. + """ + # XXX + + +def get_default_cache(): + """ + Return the ``PYTHON_EGG_CACHE`` environment variable + or a platform-relevant user cache dir for an app + named "Python-Eggs". + """ + return ( + os.environ.get('PYTHON_EGG_CACHE') + or appdirs.user_cache_dir(appname='Python-Eggs') + ) + + +def safe_name(name): + """Convert an arbitrary string to a standard distribution name + + Any runs of non-alphanumeric/. characters are replaced with a single '-'. + """ + return re.sub('[^A-Za-z0-9.]+', '-', name) + + +def safe_version(version): + """ + Convert an arbitrary string to a standard version string + """ + try: + # normalize the version + return str(packaging.version.Version(version)) + except packaging.version.InvalidVersion: + version = version.replace(' ', '.') + return re.sub('[^A-Za-z0-9.]+', '-', version) + + +def safe_extra(extra): + """Convert an arbitrary string to a standard 'extra' name + + Any runs of non-alphanumeric characters are replaced with a single '_', + and the result is always lowercased. + """ + return re.sub('[^A-Za-z0-9.-]+', '_', extra).lower() + + +def to_filename(name): + """Convert a project or version name to its filename-escaped form + + Any '-' characters are currently replaced with '_'. + """ + return name.replace('-', '_') + + +def invalid_marker(text): + """ + Validate text as a PEP 508 environment marker; return an exception + if invalid or False otherwise. + """ + try: + evaluate_marker(text) + except SyntaxError as e: + e.filename = None + e.lineno = None + return e + return False + + +def evaluate_marker(text, extra=None): + """ + Evaluate a PEP 508 environment marker. + Return a boolean indicating the marker result in this environment. + Raise SyntaxError if marker is invalid. + + This implementation uses the 'pyparsing' module. + """ + try: + marker = packaging.markers.Marker(text) + return marker.evaluate() + except packaging.markers.InvalidMarker as e: + raise SyntaxError(e) + + +class NullProvider: + """Try to implement resources and metadata for arbitrary PEP 302 loaders""" + + egg_name = None + egg_info = None + loader = None + + def __init__(self, module): + self.loader = getattr(module, '__loader__', None) + self.module_path = os.path.dirname(getattr(module, '__file__', '')) + + def get_resource_filename(self, manager, resource_name): + return self._fn(self.module_path, resource_name) + + def get_resource_stream(self, manager, resource_name): + return io.BytesIO(self.get_resource_string(manager, resource_name)) + + def get_resource_string(self, manager, resource_name): + return self._get(self._fn(self.module_path, resource_name)) + + def has_resource(self, resource_name): + return self._has(self._fn(self.module_path, resource_name)) + + def has_metadata(self, name): + return self.egg_info and self._has(self._fn(self.egg_info, name)) + + def get_metadata(self, name): + if not self.egg_info: + return "" + value = self._get(self._fn(self.egg_info, name)) + return value.decode('utf-8') if six.PY3 else value + + def get_metadata_lines(self, name): + return yield_lines(self.get_metadata(name)) + + def resource_isdir(self, resource_name): + return self._isdir(self._fn(self.module_path, resource_name)) + + def metadata_isdir(self, name): + return self.egg_info and self._isdir(self._fn(self.egg_info, name)) + + def resource_listdir(self, resource_name): + return self._listdir(self._fn(self.module_path, resource_name)) + + def metadata_listdir(self, name): + if self.egg_info: + return self._listdir(self._fn(self.egg_info, name)) + return [] + + def run_script(self, script_name, namespace): + script = 'scripts/' + script_name + if not self.has_metadata(script): + raise ResolutionError( + "Script {script!r} not found in metadata at {self.egg_info!r}" + .format(**locals()), + ) + script_text = self.get_metadata(script).replace('\r\n', '\n') + script_text = script_text.replace('\r', '\n') + script_filename = self._fn(self.egg_info, script) + namespace['__file__'] = script_filename + if os.path.exists(script_filename): + source = open(script_filename).read() + code = compile(source, script_filename, 'exec') + exec(code, namespace, namespace) + else: + from linecache import cache + cache[script_filename] = ( + len(script_text), 0, script_text.split('\n'), script_filename + ) + script_code = compile(script_text, script_filename, 'exec') + exec(script_code, namespace, namespace) + + def _has(self, path): + raise NotImplementedError( + "Can't perform this operation for unregistered loader type" + ) + + def _isdir(self, path): + raise NotImplementedError( + "Can't perform this operation for unregistered loader type" + ) + + def _listdir(self, path): + raise NotImplementedError( + "Can't perform this operation for unregistered loader type" + ) + + def _fn(self, base, resource_name): + if resource_name: + return os.path.join(base, *resource_name.split('/')) + return base + + def _get(self, path): + if hasattr(self.loader, 'get_data'): + return self.loader.get_data(path) + raise NotImplementedError( + "Can't perform this operation for loaders without 'get_data()'" + ) + + +register_loader_type(object, NullProvider) + + +class EggProvider(NullProvider): + """Provider based on a virtual filesystem""" + + def __init__(self, module): + NullProvider.__init__(self, module) + self._setup_prefix() + + def _setup_prefix(self): + # we assume here that our metadata may be nested inside a "basket" + # of multiple eggs; that's why we use module_path instead of .archive + path = self.module_path + old = None + while path != old: + if _is_egg_path(path): + self.egg_name = os.path.basename(path) + self.egg_info = os.path.join(path, 'EGG-INFO') + self.egg_root = path + break + old = path + path, base = os.path.split(path) + + +class DefaultProvider(EggProvider): + """Provides access to package resources in the filesystem""" + + def _has(self, path): + return os.path.exists(path) + + def _isdir(self, path): + return os.path.isdir(path) + + def _listdir(self, path): + return os.listdir(path) + + def get_resource_stream(self, manager, resource_name): + return open(self._fn(self.module_path, resource_name), 'rb') + + def _get(self, path): + with open(path, 'rb') as stream: + return stream.read() + + @classmethod + def _register(cls): + loader_cls = getattr( + importlib_machinery, + 'SourceFileLoader', + type(None), + ) + register_loader_type(loader_cls, cls) + + +DefaultProvider._register() + + +class EmptyProvider(NullProvider): + """Provider that returns nothing for all requests""" + + module_path = None + + _isdir = _has = lambda self, path: False + + def _get(self, path): + return '' + + def _listdir(self, path): + return [] + + def __init__(self): + pass + + +empty_provider = EmptyProvider() + + +class ZipManifests(dict): + """ + zip manifest builder + """ + + @classmethod + def build(cls, path): + """ + Build a dictionary similar to the zipimport directory + caches, except instead of tuples, store ZipInfo objects. + + Use a platform-specific path separator (os.sep) for the path keys + for compatibility with pypy on Windows. + """ + with zipfile.ZipFile(path) as zfile: + items = ( + ( + name.replace('/', os.sep), + zfile.getinfo(name), + ) + for name in zfile.namelist() + ) + return dict(items) + + load = build + + +class MemoizedZipManifests(ZipManifests): + """ + Memoized zipfile manifests. + """ + manifest_mod = collections.namedtuple('manifest_mod', 'manifest mtime') + + def load(self, path): + """ + Load a manifest at path or return a suitable manifest already loaded. + """ + path = os.path.normpath(path) + mtime = os.stat(path).st_mtime + + if path not in self or self[path].mtime != mtime: + manifest = self.build(path) + self[path] = self.manifest_mod(manifest, mtime) + + return self[path].manifest + + +class ZipProvider(EggProvider): + """Resource support for zips and eggs""" + + eagers = None + _zip_manifests = MemoizedZipManifests() + + def __init__(self, module): + EggProvider.__init__(self, module) + self.zip_pre = self.loader.archive + os.sep + + def _zipinfo_name(self, fspath): + # Convert a virtual filename (full path to file) into a zipfile subpath + # usable with the zipimport directory cache for our target archive + fspath = fspath.rstrip(os.sep) + if fspath == self.loader.archive: + return '' + if fspath.startswith(self.zip_pre): + return fspath[len(self.zip_pre):] + raise AssertionError( + "%s is not a subpath of %s" % (fspath, self.zip_pre) + ) + + def _parts(self, zip_path): + # Convert a zipfile subpath into an egg-relative path part list. + # pseudo-fs path + fspath = self.zip_pre + zip_path + if fspath.startswith(self.egg_root + os.sep): + return fspath[len(self.egg_root) + 1:].split(os.sep) + raise AssertionError( + "%s is not a subpath of %s" % (fspath, self.egg_root) + ) + + @property + def zipinfo(self): + return self._zip_manifests.load(self.loader.archive) + + def get_resource_filename(self, manager, resource_name): + if not self.egg_name: + raise NotImplementedError( + "resource_filename() only supported for .egg, not .zip" + ) + # no need to lock for extraction, since we use temp names + zip_path = self._resource_to_zip(resource_name) + eagers = self._get_eager_resources() + if '/'.join(self._parts(zip_path)) in eagers: + for name in eagers: + self._extract_resource(manager, self._eager_to_zip(name)) + return self._extract_resource(manager, zip_path) + + @staticmethod + def _get_date_and_size(zip_stat): + size = zip_stat.file_size + # ymdhms+wday, yday, dst + date_time = zip_stat.date_time + (0, 0, -1) + # 1980 offset already done + timestamp = time.mktime(date_time) + return timestamp, size + + def _extract_resource(self, manager, zip_path): + + if zip_path in self._index(): + for name in self._index()[zip_path]: + last = self._extract_resource( + manager, os.path.join(zip_path, name) + ) + # return the extracted directory name + return os.path.dirname(last) + + timestamp, size = self._get_date_and_size(self.zipinfo[zip_path]) + + if not WRITE_SUPPORT: + raise IOError('"os.rename" and "os.unlink" are not supported ' + 'on this platform') + try: + + real_path = manager.get_cache_path( + self.egg_name, self._parts(zip_path) + ) + + if self._is_current(real_path, zip_path): + return real_path + + outf, tmpnam = _mkstemp( + ".$extract", + dir=os.path.dirname(real_path), + ) + os.write(outf, self.loader.get_data(zip_path)) + os.close(outf) + utime(tmpnam, (timestamp, timestamp)) + manager.postprocess(tmpnam, real_path) + + try: + rename(tmpnam, real_path) + + except os.error: + if os.path.isfile(real_path): + if self._is_current(real_path, zip_path): + # the file became current since it was checked above, + # so proceed. + return real_path + # Windows, del old file and retry + elif os.name == 'nt': + unlink(real_path) + rename(tmpnam, real_path) + return real_path + raise + + except os.error: + # report a user-friendly error + manager.extraction_error() + + return real_path + + def _is_current(self, file_path, zip_path): + """ + Return True if the file_path is current for this zip_path + """ + timestamp, size = self._get_date_and_size(self.zipinfo[zip_path]) + if not os.path.isfile(file_path): + return False + stat = os.stat(file_path) + if stat.st_size != size or stat.st_mtime != timestamp: + return False + # check that the contents match + zip_contents = self.loader.get_data(zip_path) + with open(file_path, 'rb') as f: + file_contents = f.read() + return zip_contents == file_contents + + def _get_eager_resources(self): + if self.eagers is None: + eagers = [] + for name in ('native_libs.txt', 'eager_resources.txt'): + if self.has_metadata(name): + eagers.extend(self.get_metadata_lines(name)) + self.eagers = eagers + return self.eagers + + def _index(self): + try: + return self._dirindex + except AttributeError: + ind = {} + for path in self.zipinfo: + parts = path.split(os.sep) + while parts: + parent = os.sep.join(parts[:-1]) + if parent in ind: + ind[parent].append(parts[-1]) + break + else: + ind[parent] = [parts.pop()] + self._dirindex = ind + return ind + + def _has(self, fspath): + zip_path = self._zipinfo_name(fspath) + return zip_path in self.zipinfo or zip_path in self._index() + + def _isdir(self, fspath): + return self._zipinfo_name(fspath) in self._index() + + def _listdir(self, fspath): + return list(self._index().get(self._zipinfo_name(fspath), ())) + + def _eager_to_zip(self, resource_name): + return self._zipinfo_name(self._fn(self.egg_root, resource_name)) + + def _resource_to_zip(self, resource_name): + return self._zipinfo_name(self._fn(self.module_path, resource_name)) + + +register_loader_type(zipimport.zipimporter, ZipProvider) + + +class FileMetadata(EmptyProvider): + """Metadata handler for standalone PKG-INFO files + + Usage:: + + metadata = FileMetadata("/path/to/PKG-INFO") + + This provider rejects all data and metadata requests except for PKG-INFO, + which is treated as existing, and will be the contents of the file at + the provided location. + """ + + def __init__(self, path): + self.path = path + + def has_metadata(self, name): + return name == 'PKG-INFO' and os.path.isfile(self.path) + + def get_metadata(self, name): + if name != 'PKG-INFO': + raise KeyError("No metadata except PKG-INFO is available") + + with io.open(self.path, encoding='utf-8', errors="replace") as f: + metadata = f.read() + self._warn_on_replacement(metadata) + return metadata + + def _warn_on_replacement(self, metadata): + # Python 2.7 compat for: replacement_char = '�' + replacement_char = b'\xef\xbf\xbd'.decode('utf-8') + if replacement_char in metadata: + tmpl = "{self.path} could not be properly decoded in UTF-8" + msg = tmpl.format(**locals()) + warnings.warn(msg) + + def get_metadata_lines(self, name): + return yield_lines(self.get_metadata(name)) + + +class PathMetadata(DefaultProvider): + """Metadata provider for egg directories + + Usage:: + + # Development eggs: + + egg_info = "/path/to/PackageName.egg-info" + base_dir = os.path.dirname(egg_info) + metadata = PathMetadata(base_dir, egg_info) + dist_name = os.path.splitext(os.path.basename(egg_info))[0] + dist = Distribution(basedir, project_name=dist_name, metadata=metadata) + + # Unpacked egg directories: + + egg_path = "/path/to/PackageName-ver-pyver-etc.egg" + metadata = PathMetadata(egg_path, os.path.join(egg_path,'EGG-INFO')) + dist = Distribution.from_filename(egg_path, metadata=metadata) + """ + + def __init__(self, path, egg_info): + self.module_path = path + self.egg_info = egg_info + + +class EggMetadata(ZipProvider): + """Metadata provider for .egg files""" + + def __init__(self, importer): + """Create a metadata provider from a zipimporter""" + + self.zip_pre = importer.archive + os.sep + self.loader = importer + if importer.prefix: + self.module_path = os.path.join(importer.archive, importer.prefix) + else: + self.module_path = importer.archive + self._setup_prefix() + + +_declare_state('dict', _distribution_finders={}) + + +def register_finder(importer_type, distribution_finder): + """Register `distribution_finder` to find distributions in sys.path items + + `importer_type` is the type or class of a PEP 302 "Importer" (sys.path item + handler), and `distribution_finder` is a callable that, passed a path + item and the importer instance, yields ``Distribution`` instances found on + that path item. See ``pkg_resources.find_on_path`` for an example.""" + _distribution_finders[importer_type] = distribution_finder + + +def find_distributions(path_item, only=False): + """Yield distributions accessible via `path_item`""" + importer = get_importer(path_item) + finder = _find_adapter(_distribution_finders, importer) + return finder(importer, path_item, only) + + +def find_eggs_in_zip(importer, path_item, only=False): + """ + Find eggs in zip files; possibly multiple nested eggs. + """ + if importer.archive.endswith('.whl'): + # wheels are not supported with this finder + # they don't have PKG-INFO metadata, and won't ever contain eggs + return + metadata = EggMetadata(importer) + if metadata.has_metadata('PKG-INFO'): + yield Distribution.from_filename(path_item, metadata=metadata) + if only: + # don't yield nested distros + return + for subitem in metadata.resource_listdir('/'): + if _is_egg_path(subitem): + subpath = os.path.join(path_item, subitem) + dists = find_eggs_in_zip(zipimport.zipimporter(subpath), subpath) + for dist in dists: + yield dist + elif subitem.lower().endswith('.dist-info'): + subpath = os.path.join(path_item, subitem) + submeta = EggMetadata(zipimport.zipimporter(subpath)) + submeta.egg_info = subpath + yield Distribution.from_location(path_item, subitem, submeta) + + +register_finder(zipimport.zipimporter, find_eggs_in_zip) + + +def find_nothing(importer, path_item, only=False): + return () + + +register_finder(object, find_nothing) + + +def _by_version_descending(names): + """ + Given a list of filenames, return them in descending order + by version number. + + >>> names = 'bar', 'foo', 'Python-2.7.10.egg', 'Python-2.7.2.egg' + >>> _by_version_descending(names) + ['Python-2.7.10.egg', 'Python-2.7.2.egg', 'foo', 'bar'] + >>> names = 'Setuptools-1.2.3b1.egg', 'Setuptools-1.2.3.egg' + >>> _by_version_descending(names) + ['Setuptools-1.2.3.egg', 'Setuptools-1.2.3b1.egg'] + >>> names = 'Setuptools-1.2.3b1.egg', 'Setuptools-1.2.3.post1.egg' + >>> _by_version_descending(names) + ['Setuptools-1.2.3.post1.egg', 'Setuptools-1.2.3b1.egg'] + """ + def _by_version(name): + """ + Parse each component of the filename + """ + name, ext = os.path.splitext(name) + parts = itertools.chain(name.split('-'), [ext]) + return [packaging.version.parse(part) for part in parts] + + return sorted(names, key=_by_version, reverse=True) + + +def find_on_path(importer, path_item, only=False): + """Yield distributions accessible on a sys.path directory""" + path_item = _normalize_cached(path_item) + + if _is_unpacked_egg(path_item): + yield Distribution.from_filename( + path_item, metadata=PathMetadata( + path_item, os.path.join(path_item, 'EGG-INFO') + ) + ) + return + + entries = safe_listdir(path_item) + + # for performance, before sorting by version, + # screen entries for only those that will yield + # distributions + filtered = ( + entry + for entry in entries + if dist_factory(path_item, entry, only) + ) + + # scan for .egg and .egg-info in directory + path_item_entries = _by_version_descending(filtered) + for entry in path_item_entries: + fullpath = os.path.join(path_item, entry) + factory = dist_factory(path_item, entry, only) + for dist in factory(fullpath): + yield dist + + +def dist_factory(path_item, entry, only): + """ + Return a dist_factory for a path_item and entry + """ + lower = entry.lower() + is_meta = any(map(lower.endswith, ('.egg-info', '.dist-info'))) + return ( + distributions_from_metadata + if is_meta else + find_distributions + if not only and _is_egg_path(entry) else + resolve_egg_link + if not only and lower.endswith('.egg-link') else + NoDists() + ) + + +class NoDists: + """ + >>> bool(NoDists()) + False + + >>> list(NoDists()('anything')) + [] + """ + def __bool__(self): + return False + if six.PY2: + __nonzero__ = __bool__ + + def __call__(self, fullpath): + return iter(()) + + +def safe_listdir(path): + """ + Attempt to list contents of path, but suppress some exceptions. + """ + try: + return os.listdir(path) + except (PermissionError, NotADirectoryError): + pass + except OSError as e: + # Ignore the directory if does not exist, not a directory or + # permission denied + ignorable = ( + e.errno in (errno.ENOTDIR, errno.EACCES, errno.ENOENT) + # Python 2 on Windows needs to be handled this way :( + or getattr(e, "winerror", None) == 267 + ) + if not ignorable: + raise + return () + + +def distributions_from_metadata(path): + root = os.path.dirname(path) + if os.path.isdir(path): + if len(os.listdir(path)) == 0: + # empty metadata dir; skip + return + metadata = PathMetadata(root, path) + else: + metadata = FileMetadata(path) + entry = os.path.basename(path) + yield Distribution.from_location( + root, entry, metadata, precedence=DEVELOP_DIST, + ) + + +def non_empty_lines(path): + """ + Yield non-empty lines from file at path + """ + with open(path) as f: + for line in f: + line = line.strip() + if line: + yield line + + +def resolve_egg_link(path): + """ + Given a path to an .egg-link, resolve distributions + present in the referenced path. + """ + referenced_paths = non_empty_lines(path) + resolved_paths = ( + os.path.join(os.path.dirname(path), ref) + for ref in referenced_paths + ) + dist_groups = map(find_distributions, resolved_paths) + return next(dist_groups, ()) + + +register_finder(pkgutil.ImpImporter, find_on_path) + +if hasattr(importlib_machinery, 'FileFinder'): + register_finder(importlib_machinery.FileFinder, find_on_path) + +_declare_state('dict', _namespace_handlers={}) +_declare_state('dict', _namespace_packages={}) + + +def register_namespace_handler(importer_type, namespace_handler): + """Register `namespace_handler` to declare namespace packages + + `importer_type` is the type or class of a PEP 302 "Importer" (sys.path item + handler), and `namespace_handler` is a callable like this:: + + def namespace_handler(importer, path_entry, moduleName, module): + # return a path_entry to use for child packages + + Namespace handlers are only called if the importer object has already + agreed that it can handle the relevant path item, and they should only + return a subpath if the module __path__ does not already contain an + equivalent subpath. For an example namespace handler, see + ``pkg_resources.file_ns_handler``. + """ + _namespace_handlers[importer_type] = namespace_handler + + +def _handle_ns(packageName, path_item): + """Ensure that named package includes a subpath of path_item (if needed)""" + + importer = get_importer(path_item) + if importer is None: + return None + loader = importer.find_module(packageName) + if loader is None: + return None + module = sys.modules.get(packageName) + if module is None: + module = sys.modules[packageName] = types.ModuleType(packageName) + module.__path__ = [] + _set_parent_ns(packageName) + elif not hasattr(module, '__path__'): + raise TypeError("Not a package:", packageName) + handler = _find_adapter(_namespace_handlers, importer) + subpath = handler(importer, path_item, packageName, module) + if subpath is not None: + path = module.__path__ + path.append(subpath) + loader.load_module(packageName) + _rebuild_mod_path(path, packageName, module) + return subpath + + +def _rebuild_mod_path(orig_path, package_name, module): + """ + Rebuild module.__path__ ensuring that all entries are ordered + corresponding to their sys.path order + """ + sys_path = [_normalize_cached(p) for p in sys.path] + + def safe_sys_path_index(entry): + """ + Workaround for #520 and #513. + """ + try: + return sys_path.index(entry) + except ValueError: + return float('inf') + + def position_in_sys_path(path): + """ + Return the ordinal of the path based on its position in sys.path + """ + path_parts = path.split(os.sep) + module_parts = package_name.count('.') + 1 + parts = path_parts[:-module_parts] + return safe_sys_path_index(_normalize_cached(os.sep.join(parts))) + + if not isinstance(orig_path, list): + # Is this behavior useful when module.__path__ is not a list? + return + + orig_path.sort(key=position_in_sys_path) + module.__path__[:] = [_normalize_cached(p) for p in orig_path] + + +def declare_namespace(packageName): + """Declare that package 'packageName' is a namespace package""" + + _imp.acquire_lock() + try: + if packageName in _namespace_packages: + return + + path, parent = sys.path, None + if '.' in packageName: + parent = '.'.join(packageName.split('.')[:-1]) + declare_namespace(parent) + if parent not in _namespace_packages: + __import__(parent) + try: + path = sys.modules[parent].__path__ + except AttributeError: + raise TypeError("Not a package:", parent) + + # Track what packages are namespaces, so when new path items are added, + # they can be updated + _namespace_packages.setdefault(parent, []).append(packageName) + _namespace_packages.setdefault(packageName, []) + + for path_item in path: + # Ensure all the parent's path items are reflected in the child, + # if they apply + _handle_ns(packageName, path_item) + + finally: + _imp.release_lock() + + +def fixup_namespace_packages(path_item, parent=None): + """Ensure that previously-declared namespace packages include path_item""" + _imp.acquire_lock() + try: + for package in _namespace_packages.get(parent, ()): + subpath = _handle_ns(package, path_item) + if subpath: + fixup_namespace_packages(subpath, package) + finally: + _imp.release_lock() + + +def file_ns_handler(importer, path_item, packageName, module): + """Compute an ns-package subpath for a filesystem or zipfile importer""" + + subpath = os.path.join(path_item, packageName.split('.')[-1]) + normalized = _normalize_cached(subpath) + for item in module.__path__: + if _normalize_cached(item) == normalized: + break + else: + # Only return the path if it's not already there + return subpath + + +register_namespace_handler(pkgutil.ImpImporter, file_ns_handler) +register_namespace_handler(zipimport.zipimporter, file_ns_handler) + +if hasattr(importlib_machinery, 'FileFinder'): + register_namespace_handler(importlib_machinery.FileFinder, file_ns_handler) + + +def null_ns_handler(importer, path_item, packageName, module): + return None + + +register_namespace_handler(object, null_ns_handler) + + +def normalize_path(filename): + """Normalize a file/dir name for comparison purposes""" + return os.path.normcase(os.path.realpath(filename)) + + +def _normalize_cached(filename, _cache={}): + try: + return _cache[filename] + except KeyError: + _cache[filename] = result = normalize_path(filename) + return result + + +def _is_egg_path(path): + """ + Determine if given path appears to be an egg. + """ + return path.lower().endswith('.egg') + + +def _is_unpacked_egg(path): + """ + Determine if given path appears to be an unpacked egg. + """ + return ( + _is_egg_path(path) and + os.path.isfile(os.path.join(path, 'EGG-INFO', 'PKG-INFO')) + ) + + +def _set_parent_ns(packageName): + parts = packageName.split('.') + name = parts.pop() + if parts: + parent = '.'.join(parts) + setattr(sys.modules[parent], name, sys.modules[packageName]) + + +def yield_lines(strs): + """Yield non-empty/non-comment lines of a string or sequence""" + if isinstance(strs, six.string_types): + for s in strs.splitlines(): + s = s.strip() + # skip blank lines/comments + if s and not s.startswith('#'): + yield s + else: + for ss in strs: + for s in yield_lines(ss): + yield s + + +MODULE = re.compile(r"\w+(\.\w+)*$").match +EGG_NAME = re.compile( + r""" + (?P<name>[^-]+) ( + -(?P<ver>[^-]+) ( + -py(?P<pyver>[^-]+) ( + -(?P<plat>.+) + )? + )? + )? + """, + re.VERBOSE | re.IGNORECASE, +).match + + +class EntryPoint(object): + """Object representing an advertised importable object""" + + def __init__(self, name, module_name, attrs=(), extras=(), dist=None): + if not MODULE(module_name): + raise ValueError("Invalid module name", module_name) + self.name = name + self.module_name = module_name + self.attrs = tuple(attrs) + self.extras = tuple(extras) + self.dist = dist + + def __str__(self): + s = "%s = %s" % (self.name, self.module_name) + if self.attrs: + s += ':' + '.'.join(self.attrs) + if self.extras: + s += ' [%s]' % ','.join(self.extras) + return s + + def __repr__(self): + return "EntryPoint.parse(%r)" % str(self) + + def load(self, require=True, *args, **kwargs): + """ + Require packages for this EntryPoint, then resolve it. + """ + if not require or args or kwargs: + warnings.warn( + "Parameters to load are deprecated. Call .resolve and " + ".require separately.", + DeprecationWarning, + stacklevel=2, + ) + if require: + self.require(*args, **kwargs) + return self.resolve() + + def resolve(self): + """ + Resolve the entry point from its module and attrs. + """ + module = __import__(self.module_name, fromlist=['__name__'], level=0) + try: + return functools.reduce(getattr, self.attrs, module) + except AttributeError as exc: + raise ImportError(str(exc)) + + def require(self, env=None, installer=None): + if self.extras and not self.dist: + raise UnknownExtra("Can't require() without a distribution", self) + + # Get the requirements for this entry point with all its extras and + # then resolve them. We have to pass `extras` along when resolving so + # that the working set knows what extras we want. Otherwise, for + # dist-info distributions, the working set will assume that the + # requirements for that extra are purely optional and skip over them. + reqs = self.dist.requires(self.extras) + items = working_set.resolve(reqs, env, installer, extras=self.extras) + list(map(working_set.add, items)) + + pattern = re.compile( + r'\s*' + r'(?P<name>.+?)\s*' + r'=\s*' + r'(?P<module>[\w.]+)\s*' + r'(:\s*(?P<attr>[\w.]+))?\s*' + r'(?P<extras>\[.*\])?\s*$' + ) + + @classmethod + def parse(cls, src, dist=None): + """Parse a single entry point from string `src` + + Entry point syntax follows the form:: + + name = some.module:some.attr [extra1, extra2] + + The entry name and module name are required, but the ``:attrs`` and + ``[extras]`` parts are optional + """ + m = cls.pattern.match(src) + if not m: + msg = "EntryPoint must be in 'name=module:attrs [extras]' format" + raise ValueError(msg, src) + res = m.groupdict() + extras = cls._parse_extras(res['extras']) + attrs = res['attr'].split('.') if res['attr'] else () + return cls(res['name'], res['module'], attrs, extras, dist) + + @classmethod + def _parse_extras(cls, extras_spec): + if not extras_spec: + return () + req = Requirement.parse('x' + extras_spec) + if req.specs: + raise ValueError() + return req.extras + + @classmethod + def parse_group(cls, group, lines, dist=None): + """Parse an entry point group""" + if not MODULE(group): + raise ValueError("Invalid group name", group) + this = {} + for line in yield_lines(lines): + ep = cls.parse(line, dist) + if ep.name in this: + raise ValueError("Duplicate entry point", group, ep.name) + this[ep.name] = ep + return this + + @classmethod + def parse_map(cls, data, dist=None): + """Parse a map of entry point groups""" + if isinstance(data, dict): + data = data.items() + else: + data = split_sections(data) + maps = {} + for group, lines in data: + if group is None: + if not lines: + continue + raise ValueError("Entry points must be listed in groups") + group = group.strip() + if group in maps: + raise ValueError("Duplicate group name", group) + maps[group] = cls.parse_group(group, lines, dist) + return maps + + +def _remove_md5_fragment(location): + if not location: + return '' + parsed = urllib.parse.urlparse(location) + if parsed[-1].startswith('md5='): + return urllib.parse.urlunparse(parsed[:-1] + ('',)) + return location + + +def _version_from_file(lines): + """ + Given an iterable of lines from a Metadata file, return + the value of the Version field, if present, or None otherwise. + """ + def is_version_line(line): + return line.lower().startswith('version:') + version_lines = filter(is_version_line, lines) + line = next(iter(version_lines), '') + _, _, value = line.partition(':') + return safe_version(value.strip()) or None + + +class Distribution(object): + """Wrap an actual or potential sys.path entry w/metadata""" + PKG_INFO = 'PKG-INFO' + + def __init__( + self, location=None, metadata=None, project_name=None, + version=None, py_version=PY_MAJOR, platform=None, + precedence=EGG_DIST): + self.project_name = safe_name(project_name or 'Unknown') + if version is not None: + self._version = safe_version(version) + self.py_version = py_version + self.platform = platform + self.location = location + self.precedence = precedence + self._provider = metadata or empty_provider + + @classmethod + def from_location(cls, location, basename, metadata=None, **kw): + project_name, version, py_version, platform = [None] * 4 + basename, ext = os.path.splitext(basename) + if ext.lower() in _distributionImpl: + cls = _distributionImpl[ext.lower()] + + match = EGG_NAME(basename) + if match: + project_name, version, py_version, platform = match.group( + 'name', 'ver', 'pyver', 'plat' + ) + return cls( + location, metadata, project_name=project_name, version=version, + py_version=py_version, platform=platform, **kw + )._reload_version() + + def _reload_version(self): + return self + + @property + def hashcmp(self): + return ( + self.parsed_version, + self.precedence, + self.key, + _remove_md5_fragment(self.location), + self.py_version or '', + self.platform or '', + ) + + def __hash__(self): + return hash(self.hashcmp) + + def __lt__(self, other): + return self.hashcmp < other.hashcmp + + def __le__(self, other): + return self.hashcmp <= other.hashcmp + + def __gt__(self, other): + return self.hashcmp > other.hashcmp + + def __ge__(self, other): + return self.hashcmp >= other.hashcmp + + def __eq__(self, other): + if not isinstance(other, self.__class__): + # It's not a Distribution, so they are not equal + return False + return self.hashcmp == other.hashcmp + + def __ne__(self, other): + return not self == other + + # These properties have to be lazy so that we don't have to load any + # metadata until/unless it's actually needed. (i.e., some distributions + # may not know their name or version without loading PKG-INFO) + + @property + def key(self): + try: + return self._key + except AttributeError: + self._key = key = self.project_name.lower() + return key + + @property + def parsed_version(self): + if not hasattr(self, "_parsed_version"): + self._parsed_version = parse_version(self.version) + + return self._parsed_version + + def _warn_legacy_version(self): + LV = packaging.version.LegacyVersion + is_legacy = isinstance(self._parsed_version, LV) + if not is_legacy: + return + + # While an empty version is technically a legacy version and + # is not a valid PEP 440 version, it's also unlikely to + # actually come from someone and instead it is more likely that + # it comes from setuptools attempting to parse a filename and + # including it in the list. So for that we'll gate this warning + # on if the version is anything at all or not. + if not self.version: + return + + tmpl = textwrap.dedent(""" + '{project_name} ({version})' is being parsed as a legacy, + non PEP 440, + version. You may find odd behavior and sort order. + In particular it will be sorted as less than 0.0. It + is recommended to migrate to PEP 440 compatible + versions. + """).strip().replace('\n', ' ') + + warnings.warn(tmpl.format(**vars(self)), PEP440Warning) + + @property + def version(self): + try: + return self._version + except AttributeError: + version = _version_from_file(self._get_metadata(self.PKG_INFO)) + if version is None: + tmpl = "Missing 'Version:' header and/or %s file" + raise ValueError(tmpl % self.PKG_INFO, self) + return version + + @property + def _dep_map(self): + """ + A map of extra to its list of (direct) requirements + for this distribution, including the null extra. + """ + try: + return self.__dep_map + except AttributeError: + self.__dep_map = self._filter_extras(self._build_dep_map()) + return self.__dep_map + + @staticmethod + def _filter_extras(dm): + """ + Given a mapping of extras to dependencies, strip off + environment markers and filter out any dependencies + not matching the markers. + """ + for extra in list(filter(None, dm)): + new_extra = extra + reqs = dm.pop(extra) + new_extra, _, marker = extra.partition(':') + fails_marker = marker and ( + invalid_marker(marker) + or not evaluate_marker(marker) + ) + if fails_marker: + reqs = [] + new_extra = safe_extra(new_extra) or None + + dm.setdefault(new_extra, []).extend(reqs) + return dm + + def _build_dep_map(self): + dm = {} + for name in 'requires.txt', 'depends.txt': + for extra, reqs in split_sections(self._get_metadata(name)): + dm.setdefault(extra, []).extend(parse_requirements(reqs)) + return dm + + def requires(self, extras=()): + """List of Requirements needed for this distro if `extras` are used""" + dm = self._dep_map + deps = [] + deps.extend(dm.get(None, ())) + for ext in extras: + try: + deps.extend(dm[safe_extra(ext)]) + except KeyError: + raise UnknownExtra( + "%s has no such extra feature %r" % (self, ext) + ) + return deps + + def _get_metadata(self, name): + if self.has_metadata(name): + for line in self.get_metadata_lines(name): + yield line + + def activate(self, path=None, replace=False): + """Ensure distribution is importable on `path` (default=sys.path)""" + if path is None: + path = sys.path + self.insert_on(path, replace=replace) + if path is sys.path: + fixup_namespace_packages(self.location) + for pkg in self._get_metadata('namespace_packages.txt'): + if pkg in sys.modules: + declare_namespace(pkg) + + def egg_name(self): + """Return what this distribution's standard .egg filename should be""" + filename = "%s-%s-py%s" % ( + to_filename(self.project_name), to_filename(self.version), + self.py_version or PY_MAJOR + ) + + if self.platform: + filename += '-' + self.platform + return filename + + def __repr__(self): + if self.location: + return "%s (%s)" % (self, self.location) + else: + return str(self) + + def __str__(self): + try: + version = getattr(self, 'version', None) + except ValueError: + version = None + version = version or "[unknown version]" + return "%s %s" % (self.project_name, version) + + def __getattr__(self, attr): + """Delegate all unrecognized public attributes to .metadata provider""" + if attr.startswith('_'): + raise AttributeError(attr) + return getattr(self._provider, attr) + + @classmethod + def from_filename(cls, filename, metadata=None, **kw): + return cls.from_location( + _normalize_cached(filename), os.path.basename(filename), metadata, + **kw + ) + + def as_requirement(self): + """Return a ``Requirement`` that matches this distribution exactly""" + if isinstance(self.parsed_version, packaging.version.Version): + spec = "%s==%s" % (self.project_name, self.parsed_version) + else: + spec = "%s===%s" % (self.project_name, self.parsed_version) + + return Requirement.parse(spec) + + def load_entry_point(self, group, name): + """Return the `name` entry point of `group` or raise ImportError""" + ep = self.get_entry_info(group, name) + if ep is None: + raise ImportError("Entry point %r not found" % ((group, name),)) + return ep.load() + + def get_entry_map(self, group=None): + """Return the entry point map for `group`, or the full entry map""" + try: + ep_map = self._ep_map + except AttributeError: + ep_map = self._ep_map = EntryPoint.parse_map( + self._get_metadata('entry_points.txt'), self + ) + if group is not None: + return ep_map.get(group, {}) + return ep_map + + def get_entry_info(self, group, name): + """Return the EntryPoint object for `group`+`name`, or ``None``""" + return self.get_entry_map(group).get(name) + + def insert_on(self, path, loc=None, replace=False): + """Ensure self.location is on path + + If replace=False (default): + - If location is already in path anywhere, do nothing. + - Else: + - If it's an egg and its parent directory is on path, + insert just ahead of the parent. + - Else: add to the end of path. + If replace=True: + - If location is already on path anywhere (not eggs) + or higher priority than its parent (eggs) + do nothing. + - Else: + - If it's an egg and its parent directory is on path, + insert just ahead of the parent, + removing any lower-priority entries. + - Else: add it to the front of path. + """ + + loc = loc or self.location + if not loc: + return + + nloc = _normalize_cached(loc) + bdir = os.path.dirname(nloc) + npath = [(p and _normalize_cached(p) or p) for p in path] + + for p, item in enumerate(npath): + if item == nloc: + if replace: + break + else: + # don't modify path (even removing duplicates) if + # found and not replace + return + elif item == bdir and self.precedence == EGG_DIST: + # if it's an .egg, give it precedence over its directory + # UNLESS it's already been added to sys.path and replace=False + if (not replace) and nloc in npath[p:]: + return + if path is sys.path: + self.check_version_conflict() + path.insert(p, loc) + npath.insert(p, nloc) + break + else: + if path is sys.path: + self.check_version_conflict() + if replace: + path.insert(0, loc) + else: + path.append(loc) + return + + # p is the spot where we found or inserted loc; now remove duplicates + while True: + try: + np = npath.index(nloc, p + 1) + except ValueError: + break + else: + del npath[np], path[np] + # ha! + p = np + + return + + def check_version_conflict(self): + if self.key == 'setuptools': + # ignore the inevitable setuptools self-conflicts :( + return + + nsp = dict.fromkeys(self._get_metadata('namespace_packages.txt')) + loc = normalize_path(self.location) + for modname in self._get_metadata('top_level.txt'): + if (modname not in sys.modules or modname in nsp + or modname in _namespace_packages): + continue + if modname in ('pkg_resources', 'setuptools', 'site'): + continue + fn = getattr(sys.modules[modname], '__file__', None) + if fn and (normalize_path(fn).startswith(loc) or + fn.startswith(self.location)): + continue + issue_warning( + "Module %s was already imported from %s, but %s is being added" + " to sys.path" % (modname, fn, self.location), + ) + + def has_version(self): + try: + self.version + except ValueError: + issue_warning("Unbuilt egg for " + repr(self)) + return False + return True + + def clone(self, **kw): + """Copy this distribution, substituting in any changed keyword args""" + names = 'project_name version py_version platform location precedence' + for attr in names.split(): + kw.setdefault(attr, getattr(self, attr, None)) + kw.setdefault('metadata', self._provider) + return self.__class__(**kw) + + @property + def extras(self): + return [dep for dep in self._dep_map if dep] + + +class EggInfoDistribution(Distribution): + def _reload_version(self): + """ + Packages installed by distutils (e.g. numpy or scipy), + which uses an old safe_version, and so + their version numbers can get mangled when + converted to filenames (e.g., 1.11.0.dev0+2329eae to + 1.11.0.dev0_2329eae). These distributions will not be + parsed properly + downstream by Distribution and safe_version, so + take an extra step and try to get the version number from + the metadata file itself instead of the filename. + """ + md_version = _version_from_file(self._get_metadata(self.PKG_INFO)) + if md_version: + self._version = md_version + return self + + +class DistInfoDistribution(Distribution): + """ + Wrap an actual or potential sys.path entry + w/metadata, .dist-info style. + """ + PKG_INFO = 'METADATA' + EQEQ = re.compile(r"([\(,])\s*(\d.*?)\s*([,\)])") + + @property + def _parsed_pkg_info(self): + """Parse and cache metadata""" + try: + return self._pkg_info + except AttributeError: + metadata = self.get_metadata(self.PKG_INFO) + self._pkg_info = email.parser.Parser().parsestr(metadata) + return self._pkg_info + + @property + def _dep_map(self): + try: + return self.__dep_map + except AttributeError: + self.__dep_map = self._compute_dependencies() + return self.__dep_map + + def _compute_dependencies(self): + """Recompute this distribution's dependencies.""" + dm = self.__dep_map = {None: []} + + reqs = [] + # Including any condition expressions + for req in self._parsed_pkg_info.get_all('Requires-Dist') or []: + reqs.extend(parse_requirements(req)) + + def reqs_for_extra(extra): + for req in reqs: + if not req.marker or req.marker.evaluate({'extra': extra}): + yield req + + common = frozenset(reqs_for_extra(None)) + dm[None].extend(common) + + for extra in self._parsed_pkg_info.get_all('Provides-Extra') or []: + s_extra = safe_extra(extra.strip()) + dm[s_extra] = list(frozenset(reqs_for_extra(extra)) - common) + + return dm + + +_distributionImpl = { + '.egg': Distribution, + '.egg-info': EggInfoDistribution, + '.dist-info': DistInfoDistribution, +} + + +def issue_warning(*args, **kw): + level = 1 + g = globals() + try: + # find the first stack frame that is *not* code in + # the pkg_resources module, to use for the warning + while sys._getframe(level).f_globals is g: + level += 1 + except ValueError: + pass + warnings.warn(stacklevel=level + 1, *args, **kw) + + +class RequirementParseError(ValueError): + def __str__(self): + return ' '.join(self.args) + + +def parse_requirements(strs): + """Yield ``Requirement`` objects for each specification in `strs` + + `strs` must be a string, or a (possibly-nested) iterable thereof. + """ + # create a steppable iterator, so we can handle \-continuations + lines = iter(yield_lines(strs)) + + for line in lines: + # Drop comments -- a hash without a space may be in a URL. + if ' #' in line: + line = line[:line.find(' #')] + # If there is a line continuation, drop it, and append the next line. + if line.endswith('\\'): + line = line[:-2].strip() + try: + line += next(lines) + except StopIteration: + return + yield Requirement(line) + + +class Requirement(packaging.requirements.Requirement): + def __init__(self, requirement_string): + """DO NOT CALL THIS UNDOCUMENTED METHOD; use Requirement.parse()!""" + try: + super(Requirement, self).__init__(requirement_string) + except packaging.requirements.InvalidRequirement as e: + raise RequirementParseError(str(e)) + self.unsafe_name = self.name + project_name = safe_name(self.name) + self.project_name, self.key = project_name, project_name.lower() + self.specs = [ + (spec.operator, spec.version) for spec in self.specifier] + self.extras = tuple(map(safe_extra, self.extras)) + self.hashCmp = ( + self.key, + self.specifier, + frozenset(self.extras), + str(self.marker) if self.marker else None, + ) + self.__hash = hash(self.hashCmp) + + def __eq__(self, other): + return ( + isinstance(other, Requirement) and + self.hashCmp == other.hashCmp + ) + + def __ne__(self, other): + return not self == other + + def __contains__(self, item): + if isinstance(item, Distribution): + if item.key != self.key: + return False + + item = item.version + + # Allow prereleases always in order to match the previous behavior of + # this method. In the future this should be smarter and follow PEP 440 + # more accurately. + return self.specifier.contains(item, prereleases=True) + + def __hash__(self): + return self.__hash + + def __repr__(self): + return "Requirement.parse(%r)" % str(self) + + @staticmethod + def parse(s): + req, = parse_requirements(s) + return req + + +def _always_object(classes): + """ + Ensure object appears in the mro even + for old-style classes. + """ + if object not in classes: + return classes + (object,) + return classes + + +def _find_adapter(registry, ob): + """Return an adapter factory for `ob` from `registry`""" + types = _always_object(inspect.getmro(getattr(ob, '__class__', type(ob)))) + for t in types: + if t in registry: + return registry[t] + + +def ensure_directory(path): + """Ensure that the parent directory of `path` exists""" + dirname = os.path.dirname(path) + py31compat.makedirs(dirname, exist_ok=True) + + +def _bypass_ensure_directory(path): + """Sandbox-bypassing version of ensure_directory()""" + if not WRITE_SUPPORT: + raise IOError('"os.mkdir" not supported on this platform.') + dirname, filename = split(path) + if dirname and filename and not isdir(dirname): + _bypass_ensure_directory(dirname) + mkdir(dirname, 0o755) + + +def split_sections(s): + """Split a string or iterable thereof into (section, content) pairs + + Each ``section`` is a stripped version of the section header ("[section]") + and each ``content`` is a list of stripped lines excluding blank lines and + comment-only lines. If there are any such lines before the first section + header, they're returned in a first ``section`` of ``None``. + """ + section = None + content = [] + for line in yield_lines(s): + if line.startswith("["): + if line.endswith("]"): + if section or content: + yield section, content + section = line[1:-1].strip() + content = [] + else: + raise ValueError("Invalid section heading", line) + else: + content.append(line) + + # wrap up last segment + yield section, content + + +def _mkstemp(*args, **kw): + old_open = os.open + try: + # temporarily bypass sandboxing + os.open = os_open + return tempfile.mkstemp(*args, **kw) + finally: + # and then put it back + os.open = old_open + + +# Silence the PEP440Warning by default, so that end users don't get hit by it +# randomly just because they use pkg_resources. We want to append the rule +# because we want earlier uses of filterwarnings to take precedence over this +# one. +warnings.filterwarnings("ignore", category=PEP440Warning, append=True) + + +# from jaraco.functools 1.3 +def _call_aside(f, *args, **kwargs): + f(*args, **kwargs) + return f + + +@_call_aside +def _initialize(g=globals()): + "Set up global resource manager (deliberately not state-saved)" + manager = ResourceManager() + g['_manager'] = manager + g.update( + (name, getattr(manager, name)) + for name in dir(manager) + if not name.startswith('_') + ) + + +@_call_aside +def _initialize_master_working_set(): + """ + Prepare the master working set and make the ``require()`` + API available. + + This function has explicit effects on the global state + of pkg_resources. It is intended to be invoked once at + the initialization of this module. + + Invocation by other packages is unsupported and done + at their own risk. + """ + working_set = WorkingSet._build_master() + _declare_state('object', working_set=working_set) + + require = working_set.require + iter_entry_points = working_set.iter_entry_points + add_activation_listener = working_set.subscribe + run_script = working_set.run_script + # backward compatibility + run_main = run_script + # Activate all distributions already on sys.path with replace=False and + # ensure that all distributions added to the working set in the future + # (e.g. by calling ``require()``) will get activated as well, + # with higher priority (replace=True). + tuple( + dist.activate(replace=False) + for dist in working_set + ) + add_activation_listener( + lambda dist: dist.activate(replace=True), + existing=False, + ) + working_set.entries = [] + # match order + list(map(working_set.add_entry, sys.path)) + globals().update(locals()) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pkg_resources/py31compat.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pkg_resources/py31compat.py new file mode 100644 index 00000000..331a51bb --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pkg_resources/py31compat.py @@ -0,0 +1,22 @@ +import os +import errno +import sys + + +def _makedirs_31(path, exist_ok=False): + try: + os.makedirs(path) + except OSError as exc: + if not exist_ok or exc.errno != errno.EEXIST: + raise + + +# rely on compatibility behavior until mode considerations +# and exists_ok considerations are disentangled. +# See https://github.com/pypa/setuptools/pull/1083#issuecomment-315168663 +needs_makedirs = ( + sys.version_info < (3, 2, 5) or + (3, 3) <= sys.version_info < (3, 3, 6) or + (3, 4) <= sys.version_info < (3, 4, 1) +) +makedirs = _makedirs_31 if needs_makedirs else os.makedirs diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/__init__.py new file mode 100644 index 00000000..09dfc1eb --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/__init__.py @@ -0,0 +1,127 @@ +# Copyright (c) 2012 Giorgos Verigakis <verigak@gmail.com> +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +from __future__ import division + +from collections import deque +from datetime import timedelta +from math import ceil +from sys import stderr +from time import time + + +__version__ = '1.3' + + +class Infinite(object): + file = stderr + sma_window = 10 # Simple Moving Average window + + def __init__(self, *args, **kwargs): + self.index = 0 + self.start_ts = time() + self.avg = 0 + self._ts = self.start_ts + self._xput = deque(maxlen=self.sma_window) + for key, val in kwargs.items(): + setattr(self, key, val) + + def __getitem__(self, key): + if key.startswith('_'): + return None + return getattr(self, key, None) + + @property + def elapsed(self): + return int(time() - self.start_ts) + + @property + def elapsed_td(self): + return timedelta(seconds=self.elapsed) + + def update_avg(self, n, dt): + if n > 0: + self._xput.append(dt / n) + self.avg = sum(self._xput) / len(self._xput) + + def update(self): + pass + + def start(self): + pass + + def finish(self): + pass + + def next(self, n=1): + now = time() + dt = now - self._ts + self.update_avg(n, dt) + self._ts = now + self.index = self.index + n + self.update() + + def iter(self, it): + try: + for x in it: + yield x + self.next() + finally: + self.finish() + + +class Progress(Infinite): + def __init__(self, *args, **kwargs): + super(Progress, self).__init__(*args, **kwargs) + self.max = kwargs.get('max', 100) + + @property + def eta(self): + return int(ceil(self.avg * self.remaining)) + + @property + def eta_td(self): + return timedelta(seconds=self.eta) + + @property + def percent(self): + return self.progress * 100 + + @property + def progress(self): + return min(1, self.index / self.max) + + @property + def remaining(self): + return max(self.max - self.index, 0) + + def start(self): + self.update() + + def goto(self, index): + incr = index - self.index + self.next(incr) + + def iter(self, it): + try: + self.max = len(it) + except TypeError: + pass + + try: + for x in it: + yield x + self.next() + finally: + self.finish() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/bar.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/bar.py new file mode 100644 index 00000000..5ee968f0 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/bar.py @@ -0,0 +1,88 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2012 Giorgos Verigakis <verigak@gmail.com> +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +from __future__ import unicode_literals +from . import Progress +from .helpers import WritelnMixin + + +class Bar(WritelnMixin, Progress): + width = 32 + message = '' + suffix = '%(index)d/%(max)d' + bar_prefix = ' |' + bar_suffix = '| ' + empty_fill = ' ' + fill = '#' + hide_cursor = True + + def update(self): + filled_length = int(self.width * self.progress) + empty_length = self.width - filled_length + + message = self.message % self + bar = self.fill * filled_length + empty = self.empty_fill * empty_length + suffix = self.suffix % self + line = ''.join([message, self.bar_prefix, bar, empty, self.bar_suffix, + suffix]) + self.writeln(line) + + +class ChargingBar(Bar): + suffix = '%(percent)d%%' + bar_prefix = ' ' + bar_suffix = ' ' + empty_fill = '∙' + fill = '█' + + +class FillingSquaresBar(ChargingBar): + empty_fill = '▢' + fill = '▣' + + +class FillingCirclesBar(ChargingBar): + empty_fill = '◯' + fill = '◉' + + +class IncrementalBar(Bar): + phases = (' ', '▏', '▎', '▍', '▌', '▋', '▊', '▉', '█') + + def update(self): + nphases = len(self.phases) + filled_len = self.width * self.progress + nfull = int(filled_len) # Number of full chars + phase = int((filled_len - nfull) * nphases) # Phase of last char + nempty = self.width - nfull # Number of empty chars + + message = self.message % self + bar = self.phases[-1] * nfull + current = self.phases[phase] if phase > 0 else '' + empty = self.empty_fill * max(0, nempty - len(current)) + suffix = self.suffix % self + line = ''.join([message, self.bar_prefix, bar, current, empty, + self.bar_suffix, suffix]) + self.writeln(line) + + +class PixelBar(IncrementalBar): + phases = ('⡀', '⡄', '⡆', '⡇', '⣇', '⣧', '⣷', '⣿') + + +class ShadyBar(IncrementalBar): + phases = (' ', '░', '▒', '▓', '█') diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/counter.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/counter.py new file mode 100644 index 00000000..6b45a1ec --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/counter.py @@ -0,0 +1,48 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2012 Giorgos Verigakis <verigak@gmail.com> +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +from __future__ import unicode_literals +from . import Infinite, Progress +from .helpers import WriteMixin + + +class Counter(WriteMixin, Infinite): + message = '' + hide_cursor = True + + def update(self): + self.write(str(self.index)) + + +class Countdown(WriteMixin, Progress): + hide_cursor = True + + def update(self): + self.write(str(self.remaining)) + + +class Stack(WriteMixin, Progress): + phases = (' ', '▁', '▂', '▃', '▄', '▅', '▆', '▇', '█') + hide_cursor = True + + def update(self): + nphases = len(self.phases) + i = min(nphases - 1, int(self.progress * nphases)) + self.write(self.phases[i]) + + +class Pie(Stack): + phases = ('○', '◔', '◑', '◕', '●') diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/helpers.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/helpers.py new file mode 100644 index 00000000..9ed90b2b --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/helpers.py @@ -0,0 +1,91 @@ +# Copyright (c) 2012 Giorgos Verigakis <verigak@gmail.com> +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +from __future__ import print_function + + +HIDE_CURSOR = '\x1b[?25l' +SHOW_CURSOR = '\x1b[?25h' + + +class WriteMixin(object): + hide_cursor = False + + def __init__(self, message=None, **kwargs): + super(WriteMixin, self).__init__(**kwargs) + self._width = 0 + if message: + self.message = message + + if self.file.isatty(): + if self.hide_cursor: + print(HIDE_CURSOR, end='', file=self.file) + print(self.message, end='', file=self.file) + self.file.flush() + + def write(self, s): + if self.file.isatty(): + b = '\b' * self._width + c = s.ljust(self._width) + print(b + c, end='', file=self.file) + self._width = max(self._width, len(s)) + self.file.flush() + + def finish(self): + if self.file.isatty() and self.hide_cursor: + print(SHOW_CURSOR, end='', file=self.file) + + +class WritelnMixin(object): + hide_cursor = False + + def __init__(self, message=None, **kwargs): + super(WritelnMixin, self).__init__(**kwargs) + if message: + self.message = message + + if self.file.isatty() and self.hide_cursor: + print(HIDE_CURSOR, end='', file=self.file) + + def clearln(self): + if self.file.isatty(): + print('\r\x1b[K', end='', file=self.file) + + def writeln(self, line): + if self.file.isatty(): + self.clearln() + print(line, end='', file=self.file) + self.file.flush() + + def finish(self): + if self.file.isatty(): + print(file=self.file) + if self.hide_cursor: + print(SHOW_CURSOR, end='', file=self.file) + + +from signal import signal, SIGINT +from sys import exit + + +class SigIntMixin(object): + """Registers a signal handler that calls finish on SIGINT""" + + def __init__(self, *args, **kwargs): + super(SigIntMixin, self).__init__(*args, **kwargs) + signal(SIGINT, self._sigint_handler) + + def _sigint_handler(self, signum, frame): + self.finish() + exit(0) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/spinner.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/spinner.py new file mode 100644 index 00000000..464c7b27 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/progress/spinner.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- + +# Copyright (c) 2012 Giorgos Verigakis <verigak@gmail.com> +# +# Permission to use, copy, modify, and distribute this software for any +# purpose with or without fee is hereby granted, provided that the above +# copyright notice and this permission notice appear in all copies. +# +# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES +# WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF +# MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR +# ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES +# WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN +# ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF +# OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. + +from __future__ import unicode_literals +from . import Infinite +from .helpers import WriteMixin + + +class Spinner(WriteMixin, Infinite): + message = '' + phases = ('-', '\\', '|', '/') + hide_cursor = True + + def update(self): + i = self.index % len(self.phases) + self.write(self.phases[i]) + + +class PieSpinner(Spinner): + phases = ['◷', '◶', '◵', '◴'] + + +class MoonSpinner(Spinner): + phases = ['◑', '◒', '◐', '◓'] + + +class LineSpinner(Spinner): + phases = ['⎺', '⎻', '⎼', '⎽', '⎼', '⎻'] + +class PixelSpinner(Spinner): + phases = ['⣾','⣷', '⣯', '⣟', '⡿', '⢿', '⣻', '⣽'] diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pyparsing.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pyparsing.py new file mode 100644 index 00000000..ba2619c2 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pyparsing.py @@ -0,0 +1,5720 @@ +# module pyparsing.py +# +# Copyright (c) 2003-2016 Paul T. McGuire +# +# Permission is hereby granted, free of charge, to any person obtaining +# a copy of this software and associated documentation files (the +# "Software"), to deal in the Software without restriction, including +# without limitation the rights to use, copy, modify, merge, publish, +# distribute, sublicense, and/or sell copies of the Software, and to +# permit persons to whom the Software is furnished to do so, subject to +# the following conditions: +# +# The above copyright notice and this permission notice shall be +# included in all copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, +# EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF +# MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY +# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, +# TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE +# SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. +# + +__doc__ = \ +""" +pyparsing module - Classes and methods to define and execute parsing grammars + +The pyparsing module is an alternative approach to creating and executing simple grammars, +vs. the traditional lex/yacc approach, or the use of regular expressions. With pyparsing, you +don't need to learn a new syntax for defining grammars or matching expressions - the parsing module +provides a library of classes that you use to construct the grammar directly in Python. + +Here is a program to parse "Hello, World!" (or any greeting of the form +C{"<salutation>, <addressee>!"}), built up using L{Word}, L{Literal}, and L{And} elements +(L{'+'<ParserElement.__add__>} operator gives L{And} expressions, strings are auto-converted to +L{Literal} expressions):: + + from pip._vendor.pyparsing import Word, alphas + + # define grammar of a greeting + greet = Word(alphas) + "," + Word(alphas) + "!" + + hello = "Hello, World!" + print (hello, "->", greet.parseString(hello)) + +The program outputs the following:: + + Hello, World! -> ['Hello', ',', 'World', '!'] + +The Python representation of the grammar is quite readable, owing to the self-explanatory +class names, and the use of '+', '|' and '^' operators. + +The L{ParseResults} object returned from L{ParserElement.parseString<ParserElement.parseString>} can be accessed as a nested list, a dictionary, or an +object with named attributes. + +The pyparsing module handles some of the problems that are typically vexing when writing text parsers: + - extra or missing whitespace (the above program will also handle "Hello,World!", "Hello , World !", etc.) + - quoted strings + - embedded comments +""" + +__version__ = "2.2.0" +__versionTime__ = "06 Mar 2017 02:06 UTC" +__author__ = "Paul McGuire <ptmcg@users.sourceforge.net>" + +import string +from weakref import ref as wkref +import copy +import sys +import warnings +import re +import sre_constants +import collections +import pprint +import traceback +import types +from datetime import datetime + +try: + from _thread import RLock +except ImportError: + from threading import RLock + +try: + from collections import OrderedDict as _OrderedDict +except ImportError: + try: + from ordereddict import OrderedDict as _OrderedDict + except ImportError: + _OrderedDict = None + +#~ sys.stderr.write( "testing pyparsing module, version %s, %s\n" % (__version__,__versionTime__ ) ) + +__all__ = [ +'And', 'CaselessKeyword', 'CaselessLiteral', 'CharsNotIn', 'Combine', 'Dict', 'Each', 'Empty', +'FollowedBy', 'Forward', 'GoToColumn', 'Group', 'Keyword', 'LineEnd', 'LineStart', 'Literal', +'MatchFirst', 'NoMatch', 'NotAny', 'OneOrMore', 'OnlyOnce', 'Optional', 'Or', +'ParseBaseException', 'ParseElementEnhance', 'ParseException', 'ParseExpression', 'ParseFatalException', +'ParseResults', 'ParseSyntaxException', 'ParserElement', 'QuotedString', 'RecursiveGrammarException', +'Regex', 'SkipTo', 'StringEnd', 'StringStart', 'Suppress', 'Token', 'TokenConverter', +'White', 'Word', 'WordEnd', 'WordStart', 'ZeroOrMore', +'alphanums', 'alphas', 'alphas8bit', 'anyCloseTag', 'anyOpenTag', 'cStyleComment', 'col', +'commaSeparatedList', 'commonHTMLEntity', 'countedArray', 'cppStyleComment', 'dblQuotedString', +'dblSlashComment', 'delimitedList', 'dictOf', 'downcaseTokens', 'empty', 'hexnums', +'htmlComment', 'javaStyleComment', 'line', 'lineEnd', 'lineStart', 'lineno', +'makeHTMLTags', 'makeXMLTags', 'matchOnlyAtCol', 'matchPreviousExpr', 'matchPreviousLiteral', +'nestedExpr', 'nullDebugAction', 'nums', 'oneOf', 'opAssoc', 'operatorPrecedence', 'printables', +'punc8bit', 'pythonStyleComment', 'quotedString', 'removeQuotes', 'replaceHTMLEntity', +'replaceWith', 'restOfLine', 'sglQuotedString', 'srange', 'stringEnd', +'stringStart', 'traceParseAction', 'unicodeString', 'upcaseTokens', 'withAttribute', +'indentedBlock', 'originalTextFor', 'ungroup', 'infixNotation','locatedExpr', 'withClass', +'CloseMatch', 'tokenMap', 'pyparsing_common', +] + +system_version = tuple(sys.version_info)[:3] +PY_3 = system_version[0] == 3 +if PY_3: + _MAX_INT = sys.maxsize + basestring = str + unichr = chr + _ustr = str + + # build list of single arg builtins, that can be used as parse actions + singleArgBuiltins = [sum, len, sorted, reversed, list, tuple, set, any, all, min, max] + +else: + _MAX_INT = sys.maxint + range = xrange + + def _ustr(obj): + """Drop-in replacement for str(obj) that tries to be Unicode friendly. It first tries + str(obj). If that fails with a UnicodeEncodeError, then it tries unicode(obj). It + then < returns the unicode object | encodes it with the default encoding | ... >. + """ + if isinstance(obj,unicode): + return obj + + try: + # If this works, then _ustr(obj) has the same behaviour as str(obj), so + # it won't break any existing code. + return str(obj) + + except UnicodeEncodeError: + # Else encode it + ret = unicode(obj).encode(sys.getdefaultencoding(), 'xmlcharrefreplace') + xmlcharref = Regex(r'&#\d+;') + xmlcharref.setParseAction(lambda t: '\\u' + hex(int(t[0][2:-1]))[2:]) + return xmlcharref.transformString(ret) + + # build list of single arg builtins, tolerant of Python version, that can be used as parse actions + singleArgBuiltins = [] + import __builtin__ + for fname in "sum len sorted reversed list tuple set any all min max".split(): + try: + singleArgBuiltins.append(getattr(__builtin__,fname)) + except AttributeError: + continue + +_generatorType = type((y for y in range(1))) + +def _xml_escape(data): + """Escape &, <, >, ", ', etc. in a string of data.""" + + # ampersand must be replaced first + from_symbols = '&><"\'' + to_symbols = ('&'+s+';' for s in "amp gt lt quot apos".split()) + for from_,to_ in zip(from_symbols, to_symbols): + data = data.replace(from_, to_) + return data + +class _Constants(object): + pass + +alphas = string.ascii_uppercase + string.ascii_lowercase +nums = "0123456789" +hexnums = nums + "ABCDEFabcdef" +alphanums = alphas + nums +_bslash = chr(92) +printables = "".join(c for c in string.printable if c not in string.whitespace) + +class ParseBaseException(Exception): + """base exception class for all parsing runtime exceptions""" + # Performance tuning: we construct a *lot* of these, so keep this + # constructor as small and fast as possible + def __init__( self, pstr, loc=0, msg=None, elem=None ): + self.loc = loc + if msg is None: + self.msg = pstr + self.pstr = "" + else: + self.msg = msg + self.pstr = pstr + self.parserElement = elem + self.args = (pstr, loc, msg) + + @classmethod + def _from_exception(cls, pe): + """ + internal factory method to simplify creating one type of ParseException + from another - avoids having __init__ signature conflicts among subclasses + """ + return cls(pe.pstr, pe.loc, pe.msg, pe.parserElement) + + def __getattr__( self, aname ): + """supported attributes by name are: + - lineno - returns the line number of the exception text + - col - returns the column number of the exception text + - line - returns the line containing the exception text + """ + if( aname == "lineno" ): + return lineno( self.loc, self.pstr ) + elif( aname in ("col", "column") ): + return col( self.loc, self.pstr ) + elif( aname == "line" ): + return line( self.loc, self.pstr ) + else: + raise AttributeError(aname) + + def __str__( self ): + return "%s (at char %d), (line:%d, col:%d)" % \ + ( self.msg, self.loc, self.lineno, self.column ) + def __repr__( self ): + return _ustr(self) + def markInputline( self, markerString = ">!<" ): + """Extracts the exception line from the input string, and marks + the location of the exception with a special symbol. + """ + line_str = self.line + line_column = self.column - 1 + if markerString: + line_str = "".join((line_str[:line_column], + markerString, line_str[line_column:])) + return line_str.strip() + def __dir__(self): + return "lineno col line".split() + dir(type(self)) + +class ParseException(ParseBaseException): + """ + Exception thrown when parse expressions don't match class; + supported attributes by name are: + - lineno - returns the line number of the exception text + - col - returns the column number of the exception text + - line - returns the line containing the exception text + + Example:: + try: + Word(nums).setName("integer").parseString("ABC") + except ParseException as pe: + print(pe) + print("column: {}".format(pe.col)) + + prints:: + Expected integer (at char 0), (line:1, col:1) + column: 1 + """ + pass + +class ParseFatalException(ParseBaseException): + """user-throwable exception thrown when inconsistent parse content + is found; stops all parsing immediately""" + pass + +class ParseSyntaxException(ParseFatalException): + """just like L{ParseFatalException}, but thrown internally when an + L{ErrorStop<And._ErrorStop>} ('-' operator) indicates that parsing is to stop + immediately because an unbacktrackable syntax error has been found""" + pass + +#~ class ReparseException(ParseBaseException): + #~ """Experimental class - parse actions can raise this exception to cause + #~ pyparsing to reparse the input string: + #~ - with a modified input string, and/or + #~ - with a modified start location + #~ Set the values of the ReparseException in the constructor, and raise the + #~ exception in a parse action to cause pyparsing to use the new string/location. + #~ Setting the values as None causes no change to be made. + #~ """ + #~ def __init_( self, newstring, restartLoc ): + #~ self.newParseText = newstring + #~ self.reparseLoc = restartLoc + +class RecursiveGrammarException(Exception): + """exception thrown by L{ParserElement.validate} if the grammar could be improperly recursive""" + def __init__( self, parseElementList ): + self.parseElementTrace = parseElementList + + def __str__( self ): + return "RecursiveGrammarException: %s" % self.parseElementTrace + +class _ParseResultsWithOffset(object): + def __init__(self,p1,p2): + self.tup = (p1,p2) + def __getitem__(self,i): + return self.tup[i] + def __repr__(self): + return repr(self.tup[0]) + def setOffset(self,i): + self.tup = (self.tup[0],i) + +class ParseResults(object): + """ + Structured parse results, to provide multiple means of access to the parsed data: + - as a list (C{len(results)}) + - by list index (C{results[0], results[1]}, etc.) + - by attribute (C{results.<resultsName>} - see L{ParserElement.setResultsName}) + + Example:: + integer = Word(nums) + date_str = (integer.setResultsName("year") + '/' + + integer.setResultsName("month") + '/' + + integer.setResultsName("day")) + # equivalent form: + # date_str = integer("year") + '/' + integer("month") + '/' + integer("day") + + # parseString returns a ParseResults object + result = date_str.parseString("1999/12/31") + + def test(s, fn=repr): + print("%s -> %s" % (s, fn(eval(s)))) + test("list(result)") + test("result[0]") + test("result['month']") + test("result.day") + test("'month' in result") + test("'minutes' in result") + test("result.dump()", str) + prints:: + list(result) -> ['1999', '/', '12', '/', '31'] + result[0] -> '1999' + result['month'] -> '12' + result.day -> '31' + 'month' in result -> True + 'minutes' in result -> False + result.dump() -> ['1999', '/', '12', '/', '31'] + - day: 31 + - month: 12 + - year: 1999 + """ + def __new__(cls, toklist=None, name=None, asList=True, modal=True ): + if isinstance(toklist, cls): + return toklist + retobj = object.__new__(cls) + retobj.__doinit = True + return retobj + + # Performance tuning: we construct a *lot* of these, so keep this + # constructor as small and fast as possible + def __init__( self, toklist=None, name=None, asList=True, modal=True, isinstance=isinstance ): + if self.__doinit: + self.__doinit = False + self.__name = None + self.__parent = None + self.__accumNames = {} + self.__asList = asList + self.__modal = modal + if toklist is None: + toklist = [] + if isinstance(toklist, list): + self.__toklist = toklist[:] + elif isinstance(toklist, _generatorType): + self.__toklist = list(toklist) + else: + self.__toklist = [toklist] + self.__tokdict = dict() + + if name is not None and name: + if not modal: + self.__accumNames[name] = 0 + if isinstance(name,int): + name = _ustr(name) # will always return a str, but use _ustr for consistency + self.__name = name + if not (isinstance(toklist, (type(None), basestring, list)) and toklist in (None,'',[])): + if isinstance(toklist,basestring): + toklist = [ toklist ] + if asList: + if isinstance(toklist,ParseResults): + self[name] = _ParseResultsWithOffset(toklist.copy(),0) + else: + self[name] = _ParseResultsWithOffset(ParseResults(toklist[0]),0) + self[name].__name = name + else: + try: + self[name] = toklist[0] + except (KeyError,TypeError,IndexError): + self[name] = toklist + + def __getitem__( self, i ): + if isinstance( i, (int,slice) ): + return self.__toklist[i] + else: + if i not in self.__accumNames: + return self.__tokdict[i][-1][0] + else: + return ParseResults([ v[0] for v in self.__tokdict[i] ]) + + def __setitem__( self, k, v, isinstance=isinstance ): + if isinstance(v,_ParseResultsWithOffset): + self.__tokdict[k] = self.__tokdict.get(k,list()) + [v] + sub = v[0] + elif isinstance(k,(int,slice)): + self.__toklist[k] = v + sub = v + else: + self.__tokdict[k] = self.__tokdict.get(k,list()) + [_ParseResultsWithOffset(v,0)] + sub = v + if isinstance(sub,ParseResults): + sub.__parent = wkref(self) + + def __delitem__( self, i ): + if isinstance(i,(int,slice)): + mylen = len( self.__toklist ) + del self.__toklist[i] + + # convert int to slice + if isinstance(i, int): + if i < 0: + i += mylen + i = slice(i, i+1) + # get removed indices + removed = list(range(*i.indices(mylen))) + removed.reverse() + # fixup indices in token dictionary + for name,occurrences in self.__tokdict.items(): + for j in removed: + for k, (value, position) in enumerate(occurrences): + occurrences[k] = _ParseResultsWithOffset(value, position - (position > j)) + else: + del self.__tokdict[i] + + def __contains__( self, k ): + return k in self.__tokdict + + def __len__( self ): return len( self.__toklist ) + def __bool__(self): return ( not not self.__toklist ) + __nonzero__ = __bool__ + def __iter__( self ): return iter( self.__toklist ) + def __reversed__( self ): return iter( self.__toklist[::-1] ) + def _iterkeys( self ): + if hasattr(self.__tokdict, "iterkeys"): + return self.__tokdict.iterkeys() + else: + return iter(self.__tokdict) + + def _itervalues( self ): + return (self[k] for k in self._iterkeys()) + + def _iteritems( self ): + return ((k, self[k]) for k in self._iterkeys()) + + if PY_3: + keys = _iterkeys + """Returns an iterator of all named result keys (Python 3.x only).""" + + values = _itervalues + """Returns an iterator of all named result values (Python 3.x only).""" + + items = _iteritems + """Returns an iterator of all named result key-value tuples (Python 3.x only).""" + + else: + iterkeys = _iterkeys + """Returns an iterator of all named result keys (Python 2.x only).""" + + itervalues = _itervalues + """Returns an iterator of all named result values (Python 2.x only).""" + + iteritems = _iteritems + """Returns an iterator of all named result key-value tuples (Python 2.x only).""" + + def keys( self ): + """Returns all named result keys (as a list in Python 2.x, as an iterator in Python 3.x).""" + return list(self.iterkeys()) + + def values( self ): + """Returns all named result values (as a list in Python 2.x, as an iterator in Python 3.x).""" + return list(self.itervalues()) + + def items( self ): + """Returns all named result key-values (as a list of tuples in Python 2.x, as an iterator in Python 3.x).""" + return list(self.iteritems()) + + def haskeys( self ): + """Since keys() returns an iterator, this method is helpful in bypassing + code that looks for the existence of any defined results names.""" + return bool(self.__tokdict) + + def pop( self, *args, **kwargs): + """ + Removes and returns item at specified index (default=C{last}). + Supports both C{list} and C{dict} semantics for C{pop()}. If passed no + argument or an integer argument, it will use C{list} semantics + and pop tokens from the list of parsed tokens. If passed a + non-integer argument (most likely a string), it will use C{dict} + semantics and pop the corresponding value from any defined + results names. A second default return value argument is + supported, just as in C{dict.pop()}. + + Example:: + def remove_first(tokens): + tokens.pop(0) + print(OneOrMore(Word(nums)).parseString("0 123 321")) # -> ['0', '123', '321'] + print(OneOrMore(Word(nums)).addParseAction(remove_first).parseString("0 123 321")) # -> ['123', '321'] + + label = Word(alphas) + patt = label("LABEL") + OneOrMore(Word(nums)) + print(patt.parseString("AAB 123 321").dump()) + + # Use pop() in a parse action to remove named result (note that corresponding value is not + # removed from list form of results) + def remove_LABEL(tokens): + tokens.pop("LABEL") + return tokens + patt.addParseAction(remove_LABEL) + print(patt.parseString("AAB 123 321").dump()) + prints:: + ['AAB', '123', '321'] + - LABEL: AAB + + ['AAB', '123', '321'] + """ + if not args: + args = [-1] + for k,v in kwargs.items(): + if k == 'default': + args = (args[0], v) + else: + raise TypeError("pop() got an unexpected keyword argument '%s'" % k) + if (isinstance(args[0], int) or + len(args) == 1 or + args[0] in self): + index = args[0] + ret = self[index] + del self[index] + return ret + else: + defaultvalue = args[1] + return defaultvalue + + def get(self, key, defaultValue=None): + """ + Returns named result matching the given key, or if there is no + such name, then returns the given C{defaultValue} or C{None} if no + C{defaultValue} is specified. + + Similar to C{dict.get()}. + + Example:: + integer = Word(nums) + date_str = integer("year") + '/' + integer("month") + '/' + integer("day") + + result = date_str.parseString("1999/12/31") + print(result.get("year")) # -> '1999' + print(result.get("hour", "not specified")) # -> 'not specified' + print(result.get("hour")) # -> None + """ + if key in self: + return self[key] + else: + return defaultValue + + def insert( self, index, insStr ): + """ + Inserts new element at location index in the list of parsed tokens. + + Similar to C{list.insert()}. + + Example:: + print(OneOrMore(Word(nums)).parseString("0 123 321")) # -> ['0', '123', '321'] + + # use a parse action to insert the parse location in the front of the parsed results + def insert_locn(locn, tokens): + tokens.insert(0, locn) + print(OneOrMore(Word(nums)).addParseAction(insert_locn).parseString("0 123 321")) # -> [0, '0', '123', '321'] + """ + self.__toklist.insert(index, insStr) + # fixup indices in token dictionary + for name,occurrences in self.__tokdict.items(): + for k, (value, position) in enumerate(occurrences): + occurrences[k] = _ParseResultsWithOffset(value, position + (position > index)) + + def append( self, item ): + """ + Add single element to end of ParseResults list of elements. + + Example:: + print(OneOrMore(Word(nums)).parseString("0 123 321")) # -> ['0', '123', '321'] + + # use a parse action to compute the sum of the parsed integers, and add it to the end + def append_sum(tokens): + tokens.append(sum(map(int, tokens))) + print(OneOrMore(Word(nums)).addParseAction(append_sum).parseString("0 123 321")) # -> ['0', '123', '321', 444] + """ + self.__toklist.append(item) + + def extend( self, itemseq ): + """ + Add sequence of elements to end of ParseResults list of elements. + + Example:: + patt = OneOrMore(Word(alphas)) + + # use a parse action to append the reverse of the matched strings, to make a palindrome + def make_palindrome(tokens): + tokens.extend(reversed([t[::-1] for t in tokens])) + return ''.join(tokens) + print(patt.addParseAction(make_palindrome).parseString("lskdj sdlkjf lksd")) # -> 'lskdjsdlkjflksddsklfjkldsjdksl' + """ + if isinstance(itemseq, ParseResults): + self += itemseq + else: + self.__toklist.extend(itemseq) + + def clear( self ): + """ + Clear all elements and results names. + """ + del self.__toklist[:] + self.__tokdict.clear() + + def __getattr__( self, name ): + try: + return self[name] + except KeyError: + return "" + + if name in self.__tokdict: + if name not in self.__accumNames: + return self.__tokdict[name][-1][0] + else: + return ParseResults([ v[0] for v in self.__tokdict[name] ]) + else: + return "" + + def __add__( self, other ): + ret = self.copy() + ret += other + return ret + + def __iadd__( self, other ): + if other.__tokdict: + offset = len(self.__toklist) + addoffset = lambda a: offset if a<0 else a+offset + otheritems = other.__tokdict.items() + otherdictitems = [(k, _ParseResultsWithOffset(v[0],addoffset(v[1])) ) + for (k,vlist) in otheritems for v in vlist] + for k,v in otherdictitems: + self[k] = v + if isinstance(v[0],ParseResults): + v[0].__parent = wkref(self) + + self.__toklist += other.__toklist + self.__accumNames.update( other.__accumNames ) + return self + + def __radd__(self, other): + if isinstance(other,int) and other == 0: + # useful for merging many ParseResults using sum() builtin + return self.copy() + else: + # this may raise a TypeError - so be it + return other + self + + def __repr__( self ): + return "(%s, %s)" % ( repr( self.__toklist ), repr( self.__tokdict ) ) + + def __str__( self ): + return '[' + ', '.join(_ustr(i) if isinstance(i, ParseResults) else repr(i) for i in self.__toklist) + ']' + + def _asStringList( self, sep='' ): + out = [] + for item in self.__toklist: + if out and sep: + out.append(sep) + if isinstance( item, ParseResults ): + out += item._asStringList() + else: + out.append( _ustr(item) ) + return out + + def asList( self ): + """ + Returns the parse results as a nested list of matching tokens, all converted to strings. + + Example:: + patt = OneOrMore(Word(alphas)) + result = patt.parseString("sldkj lsdkj sldkj") + # even though the result prints in string-like form, it is actually a pyparsing ParseResults + print(type(result), result) # -> <class 'pyparsing.ParseResults'> ['sldkj', 'lsdkj', 'sldkj'] + + # Use asList() to create an actual list + result_list = result.asList() + print(type(result_list), result_list) # -> <class 'list'> ['sldkj', 'lsdkj', 'sldkj'] + """ + return [res.asList() if isinstance(res,ParseResults) else res for res in self.__toklist] + + def asDict( self ): + """ + Returns the named parse results as a nested dictionary. + + Example:: + integer = Word(nums) + date_str = integer("year") + '/' + integer("month") + '/' + integer("day") + + result = date_str.parseString('12/31/1999') + print(type(result), repr(result)) # -> <class 'pyparsing.ParseResults'> (['12', '/', '31', '/', '1999'], {'day': [('1999', 4)], 'year': [('12', 0)], 'month': [('31', 2)]}) + + result_dict = result.asDict() + print(type(result_dict), repr(result_dict)) # -> <class 'dict'> {'day': '1999', 'year': '12', 'month': '31'} + + # even though a ParseResults supports dict-like access, sometime you just need to have a dict + import json + print(json.dumps(result)) # -> Exception: TypeError: ... is not JSON serializable + print(json.dumps(result.asDict())) # -> {"month": "31", "day": "1999", "year": "12"} + """ + if PY_3: + item_fn = self.items + else: + item_fn = self.iteritems + + def toItem(obj): + if isinstance(obj, ParseResults): + if obj.haskeys(): + return obj.asDict() + else: + return [toItem(v) for v in obj] + else: + return obj + + return dict((k,toItem(v)) for k,v in item_fn()) + + def copy( self ): + """ + Returns a new copy of a C{ParseResults} object. + """ + ret = ParseResults( self.__toklist ) + ret.__tokdict = self.__tokdict.copy() + ret.__parent = self.__parent + ret.__accumNames.update( self.__accumNames ) + ret.__name = self.__name + return ret + + def asXML( self, doctag=None, namedItemsOnly=False, indent="", formatted=True ): + """ + (Deprecated) Returns the parse results as XML. Tags are created for tokens and lists that have defined results names. + """ + nl = "\n" + out = [] + namedItems = dict((v[1],k) for (k,vlist) in self.__tokdict.items() + for v in vlist) + nextLevelIndent = indent + " " + + # collapse out indents if formatting is not desired + if not formatted: + indent = "" + nextLevelIndent = "" + nl = "" + + selfTag = None + if doctag is not None: + selfTag = doctag + else: + if self.__name: + selfTag = self.__name + + if not selfTag: + if namedItemsOnly: + return "" + else: + selfTag = "ITEM" + + out += [ nl, indent, "<", selfTag, ">" ] + + for i,res in enumerate(self.__toklist): + if isinstance(res,ParseResults): + if i in namedItems: + out += [ res.asXML(namedItems[i], + namedItemsOnly and doctag is None, + nextLevelIndent, + formatted)] + else: + out += [ res.asXML(None, + namedItemsOnly and doctag is None, + nextLevelIndent, + formatted)] + else: + # individual token, see if there is a name for it + resTag = None + if i in namedItems: + resTag = namedItems[i] + if not resTag: + if namedItemsOnly: + continue + else: + resTag = "ITEM" + xmlBodyText = _xml_escape(_ustr(res)) + out += [ nl, nextLevelIndent, "<", resTag, ">", + xmlBodyText, + "</", resTag, ">" ] + + out += [ nl, indent, "</", selfTag, ">" ] + return "".join(out) + + def __lookup(self,sub): + for k,vlist in self.__tokdict.items(): + for v,loc in vlist: + if sub is v: + return k + return None + + def getName(self): + r""" + Returns the results name for this token expression. Useful when several + different expressions might match at a particular location. + + Example:: + integer = Word(nums) + ssn_expr = Regex(r"\d\d\d-\d\d-\d\d\d\d") + house_number_expr = Suppress('#') + Word(nums, alphanums) + user_data = (Group(house_number_expr)("house_number") + | Group(ssn_expr)("ssn") + | Group(integer)("age")) + user_info = OneOrMore(user_data) + + result = user_info.parseString("22 111-22-3333 #221B") + for item in result: + print(item.getName(), ':', item[0]) + prints:: + age : 22 + ssn : 111-22-3333 + house_number : 221B + """ + if self.__name: + return self.__name + elif self.__parent: + par = self.__parent() + if par: + return par.__lookup(self) + else: + return None + elif (len(self) == 1 and + len(self.__tokdict) == 1 and + next(iter(self.__tokdict.values()))[0][1] in (0,-1)): + return next(iter(self.__tokdict.keys())) + else: + return None + + def dump(self, indent='', depth=0, full=True): + """ + Diagnostic method for listing out the contents of a C{ParseResults}. + Accepts an optional C{indent} argument so that this string can be embedded + in a nested display of other data. + + Example:: + integer = Word(nums) + date_str = integer("year") + '/' + integer("month") + '/' + integer("day") + + result = date_str.parseString('12/31/1999') + print(result.dump()) + prints:: + ['12', '/', '31', '/', '1999'] + - day: 1999 + - month: 31 + - year: 12 + """ + out = [] + NL = '\n' + out.append( indent+_ustr(self.asList()) ) + if full: + if self.haskeys(): + items = sorted((str(k), v) for k,v in self.items()) + for k,v in items: + if out: + out.append(NL) + out.append( "%s%s- %s: " % (indent,(' '*depth), k) ) + if isinstance(v,ParseResults): + if v: + out.append( v.dump(indent,depth+1) ) + else: + out.append(_ustr(v)) + else: + out.append(repr(v)) + elif any(isinstance(vv,ParseResults) for vv in self): + v = self + for i,vv in enumerate(v): + if isinstance(vv,ParseResults): + out.append("\n%s%s[%d]:\n%s%s%s" % (indent,(' '*(depth)),i,indent,(' '*(depth+1)),vv.dump(indent,depth+1) )) + else: + out.append("\n%s%s[%d]:\n%s%s%s" % (indent,(' '*(depth)),i,indent,(' '*(depth+1)),_ustr(vv))) + + return "".join(out) + + def pprint(self, *args, **kwargs): + """ + Pretty-printer for parsed results as a list, using the C{pprint} module. + Accepts additional positional or keyword args as defined for the + C{pprint.pprint} method. (U{http://docs.python.org/3/library/pprint.html#pprint.pprint}) + + Example:: + ident = Word(alphas, alphanums) + num = Word(nums) + func = Forward() + term = ident | num | Group('(' + func + ')') + func <<= ident + Group(Optional(delimitedList(term))) + result = func.parseString("fna a,b,(fnb c,d,200),100") + result.pprint(width=40) + prints:: + ['fna', + ['a', + 'b', + ['(', 'fnb', ['c', 'd', '200'], ')'], + '100']] + """ + pprint.pprint(self.asList(), *args, **kwargs) + + # add support for pickle protocol + def __getstate__(self): + return ( self.__toklist, + ( self.__tokdict.copy(), + self.__parent is not None and self.__parent() or None, + self.__accumNames, + self.__name ) ) + + def __setstate__(self,state): + self.__toklist = state[0] + (self.__tokdict, + par, + inAccumNames, + self.__name) = state[1] + self.__accumNames = {} + self.__accumNames.update(inAccumNames) + if par is not None: + self.__parent = wkref(par) + else: + self.__parent = None + + def __getnewargs__(self): + return self.__toklist, self.__name, self.__asList, self.__modal + + def __dir__(self): + return (dir(type(self)) + list(self.keys())) + +collections.MutableMapping.register(ParseResults) + +def col (loc,strg): + """Returns current column within a string, counting newlines as line separators. + The first column is number 1. + + Note: the default parsing behavior is to expand tabs in the input string + before starting the parsing process. See L{I{ParserElement.parseString}<ParserElement.parseString>} for more information + on parsing strings containing C{<TAB>}s, and suggested methods to maintain a + consistent view of the parsed string, the parse location, and line and column + positions within the parsed string. + """ + s = strg + return 1 if 0<loc<len(s) and s[loc-1] == '\n' else loc - s.rfind("\n", 0, loc) + +def lineno(loc,strg): + """Returns current line number within a string, counting newlines as line separators. + The first line is number 1. + + Note: the default parsing behavior is to expand tabs in the input string + before starting the parsing process. See L{I{ParserElement.parseString}<ParserElement.parseString>} for more information + on parsing strings containing C{<TAB>}s, and suggested methods to maintain a + consistent view of the parsed string, the parse location, and line and column + positions within the parsed string. + """ + return strg.count("\n",0,loc) + 1 + +def line( loc, strg ): + """Returns the line of text containing loc within a string, counting newlines as line separators. + """ + lastCR = strg.rfind("\n", 0, loc) + nextCR = strg.find("\n", loc) + if nextCR >= 0: + return strg[lastCR+1:nextCR] + else: + return strg[lastCR+1:] + +def _defaultStartDebugAction( instring, loc, expr ): + print (("Match " + _ustr(expr) + " at loc " + _ustr(loc) + "(%d,%d)" % ( lineno(loc,instring), col(loc,instring) ))) + +def _defaultSuccessDebugAction( instring, startloc, endloc, expr, toks ): + print ("Matched " + _ustr(expr) + " -> " + str(toks.asList())) + +def _defaultExceptionDebugAction( instring, loc, expr, exc ): + print ("Exception raised:" + _ustr(exc)) + +def nullDebugAction(*args): + """'Do-nothing' debug action, to suppress debugging output during parsing.""" + pass + +# Only works on Python 3.x - nonlocal is toxic to Python 2 installs +#~ 'decorator to trim function calls to match the arity of the target' +#~ def _trim_arity(func, maxargs=3): + #~ if func in singleArgBuiltins: + #~ return lambda s,l,t: func(t) + #~ limit = 0 + #~ foundArity = False + #~ def wrapper(*args): + #~ nonlocal limit,foundArity + #~ while 1: + #~ try: + #~ ret = func(*args[limit:]) + #~ foundArity = True + #~ return ret + #~ except TypeError: + #~ if limit == maxargs or foundArity: + #~ raise + #~ limit += 1 + #~ continue + #~ return wrapper + +# this version is Python 2.x-3.x cross-compatible +'decorator to trim function calls to match the arity of the target' +def _trim_arity(func, maxargs=2): + if func in singleArgBuiltins: + return lambda s,l,t: func(t) + limit = [0] + foundArity = [False] + + # traceback return data structure changed in Py3.5 - normalize back to plain tuples + if system_version[:2] >= (3,5): + def extract_stack(limit=0): + # special handling for Python 3.5.0 - extra deep call stack by 1 + offset = -3 if system_version == (3,5,0) else -2 + frame_summary = traceback.extract_stack(limit=-offset+limit-1)[offset] + return [(frame_summary.filename, frame_summary.lineno)] + def extract_tb(tb, limit=0): + frames = traceback.extract_tb(tb, limit=limit) + frame_summary = frames[-1] + return [(frame_summary.filename, frame_summary.lineno)] + else: + extract_stack = traceback.extract_stack + extract_tb = traceback.extract_tb + + # synthesize what would be returned by traceback.extract_stack at the call to + # user's parse action 'func', so that we don't incur call penalty at parse time + + LINE_DIFF = 6 + # IF ANY CODE CHANGES, EVEN JUST COMMENTS OR BLANK LINES, BETWEEN THE NEXT LINE AND + # THE CALL TO FUNC INSIDE WRAPPER, LINE_DIFF MUST BE MODIFIED!!!! + this_line = extract_stack(limit=2)[-1] + pa_call_line_synth = (this_line[0], this_line[1]+LINE_DIFF) + + def wrapper(*args): + while 1: + try: + ret = func(*args[limit[0]:]) + foundArity[0] = True + return ret + except TypeError: + # re-raise TypeErrors if they did not come from our arity testing + if foundArity[0]: + raise + else: + try: + tb = sys.exc_info()[-1] + if not extract_tb(tb, limit=2)[-1][:2] == pa_call_line_synth: + raise + finally: + del tb + + if limit[0] <= maxargs: + limit[0] += 1 + continue + raise + + # copy func name to wrapper for sensible debug output + func_name = "<parse action>" + try: + func_name = getattr(func, '__name__', + getattr(func, '__class__').__name__) + except Exception: + func_name = str(func) + wrapper.__name__ = func_name + + return wrapper + +class ParserElement(object): + """Abstract base level parser element class.""" + DEFAULT_WHITE_CHARS = " \n\t\r" + verbose_stacktrace = False + + @staticmethod + def setDefaultWhitespaceChars( chars ): + r""" + Overrides the default whitespace chars + + Example:: + # default whitespace chars are space, <TAB> and newline + OneOrMore(Word(alphas)).parseString("abc def\nghi jkl") # -> ['abc', 'def', 'ghi', 'jkl'] + + # change to just treat newline as significant + ParserElement.setDefaultWhitespaceChars(" \t") + OneOrMore(Word(alphas)).parseString("abc def\nghi jkl") # -> ['abc', 'def'] + """ + ParserElement.DEFAULT_WHITE_CHARS = chars + + @staticmethod + def inlineLiteralsUsing(cls): + """ + Set class to be used for inclusion of string literals into a parser. + + Example:: + # default literal class used is Literal + integer = Word(nums) + date_str = integer("year") + '/' + integer("month") + '/' + integer("day") + + date_str.parseString("1999/12/31") # -> ['1999', '/', '12', '/', '31'] + + + # change to Suppress + ParserElement.inlineLiteralsUsing(Suppress) + date_str = integer("year") + '/' + integer("month") + '/' + integer("day") + + date_str.parseString("1999/12/31") # -> ['1999', '12', '31'] + """ + ParserElement._literalStringClass = cls + + def __init__( self, savelist=False ): + self.parseAction = list() + self.failAction = None + #~ self.name = "<unknown>" # don't define self.name, let subclasses try/except upcall + self.strRepr = None + self.resultsName = None + self.saveAsList = savelist + self.skipWhitespace = True + self.whiteChars = ParserElement.DEFAULT_WHITE_CHARS + self.copyDefaultWhiteChars = True + self.mayReturnEmpty = False # used when checking for left-recursion + self.keepTabs = False + self.ignoreExprs = list() + self.debug = False + self.streamlined = False + self.mayIndexError = True # used to optimize exception handling for subclasses that don't advance parse index + self.errmsg = "" + self.modalResults = True # used to mark results names as modal (report only last) or cumulative (list all) + self.debugActions = ( None, None, None ) #custom debug actions + self.re = None + self.callPreparse = True # used to avoid redundant calls to preParse + self.callDuringTry = False + + def copy( self ): + """ + Make a copy of this C{ParserElement}. Useful for defining different parse actions + for the same parsing pattern, using copies of the original parse element. + + Example:: + integer = Word(nums).setParseAction(lambda toks: int(toks[0])) + integerK = integer.copy().addParseAction(lambda toks: toks[0]*1024) + Suppress("K") + integerM = integer.copy().addParseAction(lambda toks: toks[0]*1024*1024) + Suppress("M") + + print(OneOrMore(integerK | integerM | integer).parseString("5K 100 640K 256M")) + prints:: + [5120, 100, 655360, 268435456] + Equivalent form of C{expr.copy()} is just C{expr()}:: + integerM = integer().addParseAction(lambda toks: toks[0]*1024*1024) + Suppress("M") + """ + cpy = copy.copy( self ) + cpy.parseAction = self.parseAction[:] + cpy.ignoreExprs = self.ignoreExprs[:] + if self.copyDefaultWhiteChars: + cpy.whiteChars = ParserElement.DEFAULT_WHITE_CHARS + return cpy + + def setName( self, name ): + """ + Define name for this expression, makes debugging and exception messages clearer. + + Example:: + Word(nums).parseString("ABC") # -> Exception: Expected W:(0123...) (at char 0), (line:1, col:1) + Word(nums).setName("integer").parseString("ABC") # -> Exception: Expected integer (at char 0), (line:1, col:1) + """ + self.name = name + self.errmsg = "Expected " + self.name + if hasattr(self,"exception"): + self.exception.msg = self.errmsg + return self + + def setResultsName( self, name, listAllMatches=False ): + """ + Define name for referencing matching tokens as a nested attribute + of the returned parse results. + NOTE: this returns a *copy* of the original C{ParserElement} object; + this is so that the client can define a basic element, such as an + integer, and reference it in multiple places with different names. + + You can also set results names using the abbreviated syntax, + C{expr("name")} in place of C{expr.setResultsName("name")} - + see L{I{__call__}<__call__>}. + + Example:: + date_str = (integer.setResultsName("year") + '/' + + integer.setResultsName("month") + '/' + + integer.setResultsName("day")) + + # equivalent form: + date_str = integer("year") + '/' + integer("month") + '/' + integer("day") + """ + newself = self.copy() + if name.endswith("*"): + name = name[:-1] + listAllMatches=True + newself.resultsName = name + newself.modalResults = not listAllMatches + return newself + + def setBreak(self,breakFlag = True): + """Method to invoke the Python pdb debugger when this element is + about to be parsed. Set C{breakFlag} to True to enable, False to + disable. + """ + if breakFlag: + _parseMethod = self._parse + def breaker(instring, loc, doActions=True, callPreParse=True): + import pdb + pdb.set_trace() + return _parseMethod( instring, loc, doActions, callPreParse ) + breaker._originalParseMethod = _parseMethod + self._parse = breaker + else: + if hasattr(self._parse,"_originalParseMethod"): + self._parse = self._parse._originalParseMethod + return self + + def setParseAction( self, *fns, **kwargs ): + """ + Define one or more actions to perform when successfully matching parse element definition. + Parse action fn is a callable method with 0-3 arguments, called as C{fn(s,loc,toks)}, + C{fn(loc,toks)}, C{fn(toks)}, or just C{fn()}, where: + - s = the original string being parsed (see note below) + - loc = the location of the matching substring + - toks = a list of the matched tokens, packaged as a C{L{ParseResults}} object + If the functions in fns modify the tokens, they can return them as the return + value from fn, and the modified list of tokens will replace the original. + Otherwise, fn does not need to return any value. + + Optional keyword arguments: + - callDuringTry = (default=C{False}) indicate if parse action should be run during lookaheads and alternate testing + + Note: the default parsing behavior is to expand tabs in the input string + before starting the parsing process. See L{I{parseString}<parseString>} for more information + on parsing strings containing C{<TAB>}s, and suggested methods to maintain a + consistent view of the parsed string, the parse location, and line and column + positions within the parsed string. + + Example:: + integer = Word(nums) + date_str = integer + '/' + integer + '/' + integer + + date_str.parseString("1999/12/31") # -> ['1999', '/', '12', '/', '31'] + + # use parse action to convert to ints at parse time + integer = Word(nums).setParseAction(lambda toks: int(toks[0])) + date_str = integer + '/' + integer + '/' + integer + + # note that integer fields are now ints, not strings + date_str.parseString("1999/12/31") # -> [1999, '/', 12, '/', 31] + """ + self.parseAction = list(map(_trim_arity, list(fns))) + self.callDuringTry = kwargs.get("callDuringTry", False) + return self + + def addParseAction( self, *fns, **kwargs ): + """ + Add one or more parse actions to expression's list of parse actions. See L{I{setParseAction}<setParseAction>}. + + See examples in L{I{copy}<copy>}. + """ + self.parseAction += list(map(_trim_arity, list(fns))) + self.callDuringTry = self.callDuringTry or kwargs.get("callDuringTry", False) + return self + + def addCondition(self, *fns, **kwargs): + """Add a boolean predicate function to expression's list of parse actions. See + L{I{setParseAction}<setParseAction>} for function call signatures. Unlike C{setParseAction}, + functions passed to C{addCondition} need to return boolean success/fail of the condition. + + Optional keyword arguments: + - message = define a custom message to be used in the raised exception + - fatal = if True, will raise ParseFatalException to stop parsing immediately; otherwise will raise ParseException + + Example:: + integer = Word(nums).setParseAction(lambda toks: int(toks[0])) + year_int = integer.copy() + year_int.addCondition(lambda toks: toks[0] >= 2000, message="Only support years 2000 and later") + date_str = year_int + '/' + integer + '/' + integer + + result = date_str.parseString("1999/12/31") # -> Exception: Only support years 2000 and later (at char 0), (line:1, col:1) + """ + msg = kwargs.get("message", "failed user-defined condition") + exc_type = ParseFatalException if kwargs.get("fatal", False) else ParseException + for fn in fns: + def pa(s,l,t): + if not bool(_trim_arity(fn)(s,l,t)): + raise exc_type(s,l,msg) + self.parseAction.append(pa) + self.callDuringTry = self.callDuringTry or kwargs.get("callDuringTry", False) + return self + + def setFailAction( self, fn ): + """Define action to perform if parsing fails at this expression. + Fail acton fn is a callable function that takes the arguments + C{fn(s,loc,expr,err)} where: + - s = string being parsed + - loc = location where expression match was attempted and failed + - expr = the parse expression that failed + - err = the exception thrown + The function returns no value. It may throw C{L{ParseFatalException}} + if it is desired to stop parsing immediately.""" + self.failAction = fn + return self + + def _skipIgnorables( self, instring, loc ): + exprsFound = True + while exprsFound: + exprsFound = False + for e in self.ignoreExprs: + try: + while 1: + loc,dummy = e._parse( instring, loc ) + exprsFound = True + except ParseException: + pass + return loc + + def preParse( self, instring, loc ): + if self.ignoreExprs: + loc = self._skipIgnorables( instring, loc ) + + if self.skipWhitespace: + wt = self.whiteChars + instrlen = len(instring) + while loc < instrlen and instring[loc] in wt: + loc += 1 + + return loc + + def parseImpl( self, instring, loc, doActions=True ): + return loc, [] + + def postParse( self, instring, loc, tokenlist ): + return tokenlist + + #~ @profile + def _parseNoCache( self, instring, loc, doActions=True, callPreParse=True ): + debugging = ( self.debug ) #and doActions ) + + if debugging or self.failAction: + #~ print ("Match",self,"at loc",loc,"(%d,%d)" % ( lineno(loc,instring), col(loc,instring) )) + if (self.debugActions[0] ): + self.debugActions[0]( instring, loc, self ) + if callPreParse and self.callPreparse: + preloc = self.preParse( instring, loc ) + else: + preloc = loc + tokensStart = preloc + try: + try: + loc,tokens = self.parseImpl( instring, preloc, doActions ) + except IndexError: + raise ParseException( instring, len(instring), self.errmsg, self ) + except ParseBaseException as err: + #~ print ("Exception raised:", err) + if self.debugActions[2]: + self.debugActions[2]( instring, tokensStart, self, err ) + if self.failAction: + self.failAction( instring, tokensStart, self, err ) + raise + else: + if callPreParse and self.callPreparse: + preloc = self.preParse( instring, loc ) + else: + preloc = loc + tokensStart = preloc + if self.mayIndexError or loc >= len(instring): + try: + loc,tokens = self.parseImpl( instring, preloc, doActions ) + except IndexError: + raise ParseException( instring, len(instring), self.errmsg, self ) + else: + loc,tokens = self.parseImpl( instring, preloc, doActions ) + + tokens = self.postParse( instring, loc, tokens ) + + retTokens = ParseResults( tokens, self.resultsName, asList=self.saveAsList, modal=self.modalResults ) + if self.parseAction and (doActions or self.callDuringTry): + if debugging: + try: + for fn in self.parseAction: + tokens = fn( instring, tokensStart, retTokens ) + if tokens is not None: + retTokens = ParseResults( tokens, + self.resultsName, + asList=self.saveAsList and isinstance(tokens,(ParseResults,list)), + modal=self.modalResults ) + except ParseBaseException as err: + #~ print "Exception raised in user parse action:", err + if (self.debugActions[2] ): + self.debugActions[2]( instring, tokensStart, self, err ) + raise + else: + for fn in self.parseAction: + tokens = fn( instring, tokensStart, retTokens ) + if tokens is not None: + retTokens = ParseResults( tokens, + self.resultsName, + asList=self.saveAsList and isinstance(tokens,(ParseResults,list)), + modal=self.modalResults ) + + if debugging: + #~ print ("Matched",self,"->",retTokens.asList()) + if (self.debugActions[1] ): + self.debugActions[1]( instring, tokensStart, loc, self, retTokens ) + + return loc, retTokens + + def tryParse( self, instring, loc ): + try: + return self._parse( instring, loc, doActions=False )[0] + except ParseFatalException: + raise ParseException( instring, loc, self.errmsg, self) + + def canParseNext(self, instring, loc): + try: + self.tryParse(instring, loc) + except (ParseException, IndexError): + return False + else: + return True + + class _UnboundedCache(object): + def __init__(self): + cache = {} + self.not_in_cache = not_in_cache = object() + + def get(self, key): + return cache.get(key, not_in_cache) + + def set(self, key, value): + cache[key] = value + + def clear(self): + cache.clear() + + def cache_len(self): + return len(cache) + + self.get = types.MethodType(get, self) + self.set = types.MethodType(set, self) + self.clear = types.MethodType(clear, self) + self.__len__ = types.MethodType(cache_len, self) + + if _OrderedDict is not None: + class _FifoCache(object): + def __init__(self, size): + self.not_in_cache = not_in_cache = object() + + cache = _OrderedDict() + + def get(self, key): + return cache.get(key, not_in_cache) + + def set(self, key, value): + cache[key] = value + while len(cache) > size: + try: + cache.popitem(False) + except KeyError: + pass + + def clear(self): + cache.clear() + + def cache_len(self): + return len(cache) + + self.get = types.MethodType(get, self) + self.set = types.MethodType(set, self) + self.clear = types.MethodType(clear, self) + self.__len__ = types.MethodType(cache_len, self) + + else: + class _FifoCache(object): + def __init__(self, size): + self.not_in_cache = not_in_cache = object() + + cache = {} + key_fifo = collections.deque([], size) + + def get(self, key): + return cache.get(key, not_in_cache) + + def set(self, key, value): + cache[key] = value + while len(key_fifo) > size: + cache.pop(key_fifo.popleft(), None) + key_fifo.append(key) + + def clear(self): + cache.clear() + key_fifo.clear() + + def cache_len(self): + return len(cache) + + self.get = types.MethodType(get, self) + self.set = types.MethodType(set, self) + self.clear = types.MethodType(clear, self) + self.__len__ = types.MethodType(cache_len, self) + + # argument cache for optimizing repeated calls when backtracking through recursive expressions + packrat_cache = {} # this is set later by enabledPackrat(); this is here so that resetCache() doesn't fail + packrat_cache_lock = RLock() + packrat_cache_stats = [0, 0] + + # this method gets repeatedly called during backtracking with the same arguments - + # we can cache these arguments and save ourselves the trouble of re-parsing the contained expression + def _parseCache( self, instring, loc, doActions=True, callPreParse=True ): + HIT, MISS = 0, 1 + lookup = (self, instring, loc, callPreParse, doActions) + with ParserElement.packrat_cache_lock: + cache = ParserElement.packrat_cache + value = cache.get(lookup) + if value is cache.not_in_cache: + ParserElement.packrat_cache_stats[MISS] += 1 + try: + value = self._parseNoCache(instring, loc, doActions, callPreParse) + except ParseBaseException as pe: + # cache a copy of the exception, without the traceback + cache.set(lookup, pe.__class__(*pe.args)) + raise + else: + cache.set(lookup, (value[0], value[1].copy())) + return value + else: + ParserElement.packrat_cache_stats[HIT] += 1 + if isinstance(value, Exception): + raise value + return (value[0], value[1].copy()) + + _parse = _parseNoCache + + @staticmethod + def resetCache(): + ParserElement.packrat_cache.clear() + ParserElement.packrat_cache_stats[:] = [0] * len(ParserElement.packrat_cache_stats) + + _packratEnabled = False + @staticmethod + def enablePackrat(cache_size_limit=128): + """Enables "packrat" parsing, which adds memoizing to the parsing logic. + Repeated parse attempts at the same string location (which happens + often in many complex grammars) can immediately return a cached value, + instead of re-executing parsing/validating code. Memoizing is done of + both valid results and parsing exceptions. + + Parameters: + - cache_size_limit - (default=C{128}) - if an integer value is provided + will limit the size of the packrat cache; if None is passed, then + the cache size will be unbounded; if 0 is passed, the cache will + be effectively disabled. + + This speedup may break existing programs that use parse actions that + have side-effects. For this reason, packrat parsing is disabled when + you first import pyparsing. To activate the packrat feature, your + program must call the class method C{ParserElement.enablePackrat()}. If + your program uses C{psyco} to "compile as you go", you must call + C{enablePackrat} before calling C{psyco.full()}. If you do not do this, + Python will crash. For best results, call C{enablePackrat()} immediately + after importing pyparsing. + + Example:: + from pip._vendor import pyparsing + pyparsing.ParserElement.enablePackrat() + """ + if not ParserElement._packratEnabled: + ParserElement._packratEnabled = True + if cache_size_limit is None: + ParserElement.packrat_cache = ParserElement._UnboundedCache() + else: + ParserElement.packrat_cache = ParserElement._FifoCache(cache_size_limit) + ParserElement._parse = ParserElement._parseCache + + def parseString( self, instring, parseAll=False ): + """ + Execute the parse expression with the given string. + This is the main interface to the client code, once the complete + expression has been built. + + If you want the grammar to require that the entire input string be + successfully parsed, then set C{parseAll} to True (equivalent to ending + the grammar with C{L{StringEnd()}}). + + Note: C{parseString} implicitly calls C{expandtabs()} on the input string, + in order to report proper column numbers in parse actions. + If the input string contains tabs and + the grammar uses parse actions that use the C{loc} argument to index into the + string being parsed, you can ensure you have a consistent view of the input + string by: + - calling C{parseWithTabs} on your grammar before calling C{parseString} + (see L{I{parseWithTabs}<parseWithTabs>}) + - define your parse action using the full C{(s,loc,toks)} signature, and + reference the input string using the parse action's C{s} argument + - explictly expand the tabs in your input string before calling + C{parseString} + + Example:: + Word('a').parseString('aaaaabaaa') # -> ['aaaaa'] + Word('a').parseString('aaaaabaaa', parseAll=True) # -> Exception: Expected end of text + """ + ParserElement.resetCache() + if not self.streamlined: + self.streamline() + #~ self.saveAsList = True + for e in self.ignoreExprs: + e.streamline() + if not self.keepTabs: + instring = instring.expandtabs() + try: + loc, tokens = self._parse( instring, 0 ) + if parseAll: + loc = self.preParse( instring, loc ) + se = Empty() + StringEnd() + se._parse( instring, loc ) + except ParseBaseException as exc: + if ParserElement.verbose_stacktrace: + raise + else: + # catch and re-raise exception from here, clears out pyparsing internal stack trace + raise exc + else: + return tokens + + def scanString( self, instring, maxMatches=_MAX_INT, overlap=False ): + """ + Scan the input string for expression matches. Each match will return the + matching tokens, start location, and end location. May be called with optional + C{maxMatches} argument, to clip scanning after 'n' matches are found. If + C{overlap} is specified, then overlapping matches will be reported. + + Note that the start and end locations are reported relative to the string + being parsed. See L{I{parseString}<parseString>} for more information on parsing + strings with embedded tabs. + + Example:: + source = "sldjf123lsdjjkf345sldkjf879lkjsfd987" + print(source) + for tokens,start,end in Word(alphas).scanString(source): + print(' '*start + '^'*(end-start)) + print(' '*start + tokens[0]) + + prints:: + + sldjf123lsdjjkf345sldkjf879lkjsfd987 + ^^^^^ + sldjf + ^^^^^^^ + lsdjjkf + ^^^^^^ + sldkjf + ^^^^^^ + lkjsfd + """ + if not self.streamlined: + self.streamline() + for e in self.ignoreExprs: + e.streamline() + + if not self.keepTabs: + instring = _ustr(instring).expandtabs() + instrlen = len(instring) + loc = 0 + preparseFn = self.preParse + parseFn = self._parse + ParserElement.resetCache() + matches = 0 + try: + while loc <= instrlen and matches < maxMatches: + try: + preloc = preparseFn( instring, loc ) + nextLoc,tokens = parseFn( instring, preloc, callPreParse=False ) + except ParseException: + loc = preloc+1 + else: + if nextLoc > loc: + matches += 1 + yield tokens, preloc, nextLoc + if overlap: + nextloc = preparseFn( instring, loc ) + if nextloc > loc: + loc = nextLoc + else: + loc += 1 + else: + loc = nextLoc + else: + loc = preloc+1 + except ParseBaseException as exc: + if ParserElement.verbose_stacktrace: + raise + else: + # catch and re-raise exception from here, clears out pyparsing internal stack trace + raise exc + + def transformString( self, instring ): + """ + Extension to C{L{scanString}}, to modify matching text with modified tokens that may + be returned from a parse action. To use C{transformString}, define a grammar and + attach a parse action to it that modifies the returned token list. + Invoking C{transformString()} on a target string will then scan for matches, + and replace the matched text patterns according to the logic in the parse + action. C{transformString()} returns the resulting transformed string. + + Example:: + wd = Word(alphas) + wd.setParseAction(lambda toks: toks[0].title()) + + print(wd.transformString("now is the winter of our discontent made glorious summer by this sun of york.")) + Prints:: + Now Is The Winter Of Our Discontent Made Glorious Summer By This Sun Of York. + """ + out = [] + lastE = 0 + # force preservation of <TAB>s, to minimize unwanted transformation of string, and to + # keep string locs straight between transformString and scanString + self.keepTabs = True + try: + for t,s,e in self.scanString( instring ): + out.append( instring[lastE:s] ) + if t: + if isinstance(t,ParseResults): + out += t.asList() + elif isinstance(t,list): + out += t + else: + out.append(t) + lastE = e + out.append(instring[lastE:]) + out = [o for o in out if o] + return "".join(map(_ustr,_flatten(out))) + except ParseBaseException as exc: + if ParserElement.verbose_stacktrace: + raise + else: + # catch and re-raise exception from here, clears out pyparsing internal stack trace + raise exc + + def searchString( self, instring, maxMatches=_MAX_INT ): + """ + Another extension to C{L{scanString}}, simplifying the access to the tokens found + to match the given parse expression. May be called with optional + C{maxMatches} argument, to clip searching after 'n' matches are found. + + Example:: + # a capitalized word starts with an uppercase letter, followed by zero or more lowercase letters + cap_word = Word(alphas.upper(), alphas.lower()) + + print(cap_word.searchString("More than Iron, more than Lead, more than Gold I need Electricity")) + + # the sum() builtin can be used to merge results into a single ParseResults object + print(sum(cap_word.searchString("More than Iron, more than Lead, more than Gold I need Electricity"))) + prints:: + [['More'], ['Iron'], ['Lead'], ['Gold'], ['I'], ['Electricity']] + ['More', 'Iron', 'Lead', 'Gold', 'I', 'Electricity'] + """ + try: + return ParseResults([ t for t,s,e in self.scanString( instring, maxMatches ) ]) + except ParseBaseException as exc: + if ParserElement.verbose_stacktrace: + raise + else: + # catch and re-raise exception from here, clears out pyparsing internal stack trace + raise exc + + def split(self, instring, maxsplit=_MAX_INT, includeSeparators=False): + """ + Generator method to split a string using the given expression as a separator. + May be called with optional C{maxsplit} argument, to limit the number of splits; + and the optional C{includeSeparators} argument (default=C{False}), if the separating + matching text should be included in the split results. + + Example:: + punc = oneOf(list(".,;:/-!?")) + print(list(punc.split("This, this?, this sentence, is badly punctuated!"))) + prints:: + ['This', ' this', '', ' this sentence', ' is badly punctuated', ''] + """ + splits = 0 + last = 0 + for t,s,e in self.scanString(instring, maxMatches=maxsplit): + yield instring[last:s] + if includeSeparators: + yield t[0] + last = e + yield instring[last:] + + def __add__(self, other ): + """ + Implementation of + operator - returns C{L{And}}. Adding strings to a ParserElement + converts them to L{Literal}s by default. + + Example:: + greet = Word(alphas) + "," + Word(alphas) + "!" + hello = "Hello, World!" + print (hello, "->", greet.parseString(hello)) + Prints:: + Hello, World! -> ['Hello', ',', 'World', '!'] + """ + if isinstance( other, basestring ): + other = ParserElement._literalStringClass( other ) + if not isinstance( other, ParserElement ): + warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), + SyntaxWarning, stacklevel=2) + return None + return And( [ self, other ] ) + + def __radd__(self, other ): + """ + Implementation of + operator when left operand is not a C{L{ParserElement}} + """ + if isinstance( other, basestring ): + other = ParserElement._literalStringClass( other ) + if not isinstance( other, ParserElement ): + warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), + SyntaxWarning, stacklevel=2) + return None + return other + self + + def __sub__(self, other): + """ + Implementation of - operator, returns C{L{And}} with error stop + """ + if isinstance( other, basestring ): + other = ParserElement._literalStringClass( other ) + if not isinstance( other, ParserElement ): + warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), + SyntaxWarning, stacklevel=2) + return None + return self + And._ErrorStop() + other + + def __rsub__(self, other ): + """ + Implementation of - operator when left operand is not a C{L{ParserElement}} + """ + if isinstance( other, basestring ): + other = ParserElement._literalStringClass( other ) + if not isinstance( other, ParserElement ): + warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), + SyntaxWarning, stacklevel=2) + return None + return other - self + + def __mul__(self,other): + """ + Implementation of * operator, allows use of C{expr * 3} in place of + C{expr + expr + expr}. Expressions may also me multiplied by a 2-integer + tuple, similar to C{{min,max}} multipliers in regular expressions. Tuples + may also include C{None} as in: + - C{expr*(n,None)} or C{expr*(n,)} is equivalent + to C{expr*n + L{ZeroOrMore}(expr)} + (read as "at least n instances of C{expr}") + - C{expr*(None,n)} is equivalent to C{expr*(0,n)} + (read as "0 to n instances of C{expr}") + - C{expr*(None,None)} is equivalent to C{L{ZeroOrMore}(expr)} + - C{expr*(1,None)} is equivalent to C{L{OneOrMore}(expr)} + + Note that C{expr*(None,n)} does not raise an exception if + more than n exprs exist in the input stream; that is, + C{expr*(None,n)} does not enforce a maximum number of expr + occurrences. If this behavior is desired, then write + C{expr*(None,n) + ~expr} + """ + if isinstance(other,int): + minElements, optElements = other,0 + elif isinstance(other,tuple): + other = (other + (None, None))[:2] + if other[0] is None: + other = (0, other[1]) + if isinstance(other[0],int) and other[1] is None: + if other[0] == 0: + return ZeroOrMore(self) + if other[0] == 1: + return OneOrMore(self) + else: + return self*other[0] + ZeroOrMore(self) + elif isinstance(other[0],int) and isinstance(other[1],int): + minElements, optElements = other + optElements -= minElements + else: + raise TypeError("cannot multiply 'ParserElement' and ('%s','%s') objects", type(other[0]),type(other[1])) + else: + raise TypeError("cannot multiply 'ParserElement' and '%s' objects", type(other)) + + if minElements < 0: + raise ValueError("cannot multiply ParserElement by negative value") + if optElements < 0: + raise ValueError("second tuple value must be greater or equal to first tuple value") + if minElements == optElements == 0: + raise ValueError("cannot multiply ParserElement by 0 or (0,0)") + + if (optElements): + def makeOptionalList(n): + if n>1: + return Optional(self + makeOptionalList(n-1)) + else: + return Optional(self) + if minElements: + if minElements == 1: + ret = self + makeOptionalList(optElements) + else: + ret = And([self]*minElements) + makeOptionalList(optElements) + else: + ret = makeOptionalList(optElements) + else: + if minElements == 1: + ret = self + else: + ret = And([self]*minElements) + return ret + + def __rmul__(self, other): + return self.__mul__(other) + + def __or__(self, other ): + """ + Implementation of | operator - returns C{L{MatchFirst}} + """ + if isinstance( other, basestring ): + other = ParserElement._literalStringClass( other ) + if not isinstance( other, ParserElement ): + warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), + SyntaxWarning, stacklevel=2) + return None + return MatchFirst( [ self, other ] ) + + def __ror__(self, other ): + """ + Implementation of | operator when left operand is not a C{L{ParserElement}} + """ + if isinstance( other, basestring ): + other = ParserElement._literalStringClass( other ) + if not isinstance( other, ParserElement ): + warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), + SyntaxWarning, stacklevel=2) + return None + return other | self + + def __xor__(self, other ): + """ + Implementation of ^ operator - returns C{L{Or}} + """ + if isinstance( other, basestring ): + other = ParserElement._literalStringClass( other ) + if not isinstance( other, ParserElement ): + warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), + SyntaxWarning, stacklevel=2) + return None + return Or( [ self, other ] ) + + def __rxor__(self, other ): + """ + Implementation of ^ operator when left operand is not a C{L{ParserElement}} + """ + if isinstance( other, basestring ): + other = ParserElement._literalStringClass( other ) + if not isinstance( other, ParserElement ): + warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), + SyntaxWarning, stacklevel=2) + return None + return other ^ self + + def __and__(self, other ): + """ + Implementation of & operator - returns C{L{Each}} + """ + if isinstance( other, basestring ): + other = ParserElement._literalStringClass( other ) + if not isinstance( other, ParserElement ): + warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), + SyntaxWarning, stacklevel=2) + return None + return Each( [ self, other ] ) + + def __rand__(self, other ): + """ + Implementation of & operator when left operand is not a C{L{ParserElement}} + """ + if isinstance( other, basestring ): + other = ParserElement._literalStringClass( other ) + if not isinstance( other, ParserElement ): + warnings.warn("Cannot combine element of type %s with ParserElement" % type(other), + SyntaxWarning, stacklevel=2) + return None + return other & self + + def __invert__( self ): + """ + Implementation of ~ operator - returns C{L{NotAny}} + """ + return NotAny( self ) + + def __call__(self, name=None): + """ + Shortcut for C{L{setResultsName}}, with C{listAllMatches=False}. + + If C{name} is given with a trailing C{'*'} character, then C{listAllMatches} will be + passed as C{True}. + + If C{name} is omitted, same as calling C{L{copy}}. + + Example:: + # these are equivalent + userdata = Word(alphas).setResultsName("name") + Word(nums+"-").setResultsName("socsecno") + userdata = Word(alphas)("name") + Word(nums+"-")("socsecno") + """ + if name is not None: + return self.setResultsName(name) + else: + return self.copy() + + def suppress( self ): + """ + Suppresses the output of this C{ParserElement}; useful to keep punctuation from + cluttering up returned output. + """ + return Suppress( self ) + + def leaveWhitespace( self ): + """ + Disables the skipping of whitespace before matching the characters in the + C{ParserElement}'s defined pattern. This is normally only used internally by + the pyparsing module, but may be needed in some whitespace-sensitive grammars. + """ + self.skipWhitespace = False + return self + + def setWhitespaceChars( self, chars ): + """ + Overrides the default whitespace chars + """ + self.skipWhitespace = True + self.whiteChars = chars + self.copyDefaultWhiteChars = False + return self + + def parseWithTabs( self ): + """ + Overrides default behavior to expand C{<TAB>}s to spaces before parsing the input string. + Must be called before C{parseString} when the input grammar contains elements that + match C{<TAB>} characters. + """ + self.keepTabs = True + return self + + def ignore( self, other ): + """ + Define expression to be ignored (e.g., comments) while doing pattern + matching; may be called repeatedly, to define multiple comment or other + ignorable patterns. + + Example:: + patt = OneOrMore(Word(alphas)) + patt.parseString('ablaj /* comment */ lskjd') # -> ['ablaj'] + + patt.ignore(cStyleComment) + patt.parseString('ablaj /* comment */ lskjd') # -> ['ablaj', 'lskjd'] + """ + if isinstance(other, basestring): + other = Suppress(other) + + if isinstance( other, Suppress ): + if other not in self.ignoreExprs: + self.ignoreExprs.append(other) + else: + self.ignoreExprs.append( Suppress( other.copy() ) ) + return self + + def setDebugActions( self, startAction, successAction, exceptionAction ): + """ + Enable display of debugging messages while doing pattern matching. + """ + self.debugActions = (startAction or _defaultStartDebugAction, + successAction or _defaultSuccessDebugAction, + exceptionAction or _defaultExceptionDebugAction) + self.debug = True + return self + + def setDebug( self, flag=True ): + """ + Enable display of debugging messages while doing pattern matching. + Set C{flag} to True to enable, False to disable. + + Example:: + wd = Word(alphas).setName("alphaword") + integer = Word(nums).setName("numword") + term = wd | integer + + # turn on debugging for wd + wd.setDebug() + + OneOrMore(term).parseString("abc 123 xyz 890") + + prints:: + Match alphaword at loc 0(1,1) + Matched alphaword -> ['abc'] + Match alphaword at loc 3(1,4) + Exception raised:Expected alphaword (at char 4), (line:1, col:5) + Match alphaword at loc 7(1,8) + Matched alphaword -> ['xyz'] + Match alphaword at loc 11(1,12) + Exception raised:Expected alphaword (at char 12), (line:1, col:13) + Match alphaword at loc 15(1,16) + Exception raised:Expected alphaword (at char 15), (line:1, col:16) + + The output shown is that produced by the default debug actions - custom debug actions can be + specified using L{setDebugActions}. Prior to attempting + to match the C{wd} expression, the debugging message C{"Match <exprname> at loc <n>(<line>,<col>)"} + is shown. Then if the parse succeeds, a C{"Matched"} message is shown, or an C{"Exception raised"} + message is shown. Also note the use of L{setName} to assign a human-readable name to the expression, + which makes debugging and exception messages easier to understand - for instance, the default + name created for the C{Word} expression without calling C{setName} is C{"W:(ABCD...)"}. + """ + if flag: + self.setDebugActions( _defaultStartDebugAction, _defaultSuccessDebugAction, _defaultExceptionDebugAction ) + else: + self.debug = False + return self + + def __str__( self ): + return self.name + + def __repr__( self ): + return _ustr(self) + + def streamline( self ): + self.streamlined = True + self.strRepr = None + return self + + def checkRecursion( self, parseElementList ): + pass + + def validate( self, validateTrace=[] ): + """ + Check defined expressions for valid structure, check for infinite recursive definitions. + """ + self.checkRecursion( [] ) + + def parseFile( self, file_or_filename, parseAll=False ): + """ + Execute the parse expression on the given file or filename. + If a filename is specified (instead of a file object), + the entire file is opened, read, and closed before parsing. + """ + try: + file_contents = file_or_filename.read() + except AttributeError: + with open(file_or_filename, "r") as f: + file_contents = f.read() + try: + return self.parseString(file_contents, parseAll) + except ParseBaseException as exc: + if ParserElement.verbose_stacktrace: + raise + else: + # catch and re-raise exception from here, clears out pyparsing internal stack trace + raise exc + + def __eq__(self,other): + if isinstance(other, ParserElement): + return self is other or vars(self) == vars(other) + elif isinstance(other, basestring): + return self.matches(other) + else: + return super(ParserElement,self)==other + + def __ne__(self,other): + return not (self == other) + + def __hash__(self): + return hash(id(self)) + + def __req__(self,other): + return self == other + + def __rne__(self,other): + return not (self == other) + + def matches(self, testString, parseAll=True): + """ + Method for quick testing of a parser against a test string. Good for simple + inline microtests of sub expressions while building up larger parser. + + Parameters: + - testString - to test against this expression for a match + - parseAll - (default=C{True}) - flag to pass to C{L{parseString}} when running tests + + Example:: + expr = Word(nums) + assert expr.matches("100") + """ + try: + self.parseString(_ustr(testString), parseAll=parseAll) + return True + except ParseBaseException: + return False + + def runTests(self, tests, parseAll=True, comment='#', fullDump=True, printResults=True, failureTests=False): + """ + Execute the parse expression on a series of test strings, showing each + test, the parsed results or where the parse failed. Quick and easy way to + run a parse expression against a list of sample strings. + + Parameters: + - tests - a list of separate test strings, or a multiline string of test strings + - parseAll - (default=C{True}) - flag to pass to C{L{parseString}} when running tests + - comment - (default=C{'#'}) - expression for indicating embedded comments in the test + string; pass None to disable comment filtering + - fullDump - (default=C{True}) - dump results as list followed by results names in nested outline; + if False, only dump nested list + - printResults - (default=C{True}) prints test output to stdout + - failureTests - (default=C{False}) indicates if these tests are expected to fail parsing + + Returns: a (success, results) tuple, where success indicates that all tests succeeded + (or failed if C{failureTests} is True), and the results contain a list of lines of each + test's output + + Example:: + number_expr = pyparsing_common.number.copy() + + result = number_expr.runTests(''' + # unsigned integer + 100 + # negative integer + -100 + # float with scientific notation + 6.02e23 + # integer with scientific notation + 1e-12 + ''') + print("Success" if result[0] else "Failed!") + + result = number_expr.runTests(''' + # stray character + 100Z + # missing leading digit before '.' + -.100 + # too many '.' + 3.14.159 + ''', failureTests=True) + print("Success" if result[0] else "Failed!") + prints:: + # unsigned integer + 100 + [100] + + # negative integer + -100 + [-100] + + # float with scientific notation + 6.02e23 + [6.02e+23] + + # integer with scientific notation + 1e-12 + [1e-12] + + Success + + # stray character + 100Z + ^ + FAIL: Expected end of text (at char 3), (line:1, col:4) + + # missing leading digit before '.' + -.100 + ^ + FAIL: Expected {real number with scientific notation | real number | signed integer} (at char 0), (line:1, col:1) + + # too many '.' + 3.14.159 + ^ + FAIL: Expected end of text (at char 4), (line:1, col:5) + + Success + + Each test string must be on a single line. If you want to test a string that spans multiple + lines, create a test like this:: + + expr.runTest(r"this is a test\\n of strings that spans \\n 3 lines") + + (Note that this is a raw string literal, you must include the leading 'r'.) + """ + if isinstance(tests, basestring): + tests = list(map(str.strip, tests.rstrip().splitlines())) + if isinstance(comment, basestring): + comment = Literal(comment) + allResults = [] + comments = [] + success = True + for t in tests: + if comment is not None and comment.matches(t, False) or comments and not t: + comments.append(t) + continue + if not t: + continue + out = ['\n'.join(comments), t] + comments = [] + try: + t = t.replace(r'\n','\n') + result = self.parseString(t, parseAll=parseAll) + out.append(result.dump(full=fullDump)) + success = success and not failureTests + except ParseBaseException as pe: + fatal = "(FATAL)" if isinstance(pe, ParseFatalException) else "" + if '\n' in t: + out.append(line(pe.loc, t)) + out.append(' '*(col(pe.loc,t)-1) + '^' + fatal) + else: + out.append(' '*pe.loc + '^' + fatal) + out.append("FAIL: " + str(pe)) + success = success and failureTests + result = pe + except Exception as exc: + out.append("FAIL-EXCEPTION: " + str(exc)) + success = success and failureTests + result = exc + + if printResults: + if fullDump: + out.append('') + print('\n'.join(out)) + + allResults.append((t, result)) + + return success, allResults + + +class Token(ParserElement): + """ + Abstract C{ParserElement} subclass, for defining atomic matching patterns. + """ + def __init__( self ): + super(Token,self).__init__( savelist=False ) + + +class Empty(Token): + """ + An empty token, will always match. + """ + def __init__( self ): + super(Empty,self).__init__() + self.name = "Empty" + self.mayReturnEmpty = True + self.mayIndexError = False + + +class NoMatch(Token): + """ + A token that will never match. + """ + def __init__( self ): + super(NoMatch,self).__init__() + self.name = "NoMatch" + self.mayReturnEmpty = True + self.mayIndexError = False + self.errmsg = "Unmatchable token" + + def parseImpl( self, instring, loc, doActions=True ): + raise ParseException(instring, loc, self.errmsg, self) + + +class Literal(Token): + """ + Token to exactly match a specified string. + + Example:: + Literal('blah').parseString('blah') # -> ['blah'] + Literal('blah').parseString('blahfooblah') # -> ['blah'] + Literal('blah').parseString('bla') # -> Exception: Expected "blah" + + For case-insensitive matching, use L{CaselessLiteral}. + + For keyword matching (force word break before and after the matched string), + use L{Keyword} or L{CaselessKeyword}. + """ + def __init__( self, matchString ): + super(Literal,self).__init__() + self.match = matchString + self.matchLen = len(matchString) + try: + self.firstMatchChar = matchString[0] + except IndexError: + warnings.warn("null string passed to Literal; use Empty() instead", + SyntaxWarning, stacklevel=2) + self.__class__ = Empty + self.name = '"%s"' % _ustr(self.match) + self.errmsg = "Expected " + self.name + self.mayReturnEmpty = False + self.mayIndexError = False + + # Performance tuning: this routine gets called a *lot* + # if this is a single character match string and the first character matches, + # short-circuit as quickly as possible, and avoid calling startswith + #~ @profile + def parseImpl( self, instring, loc, doActions=True ): + if (instring[loc] == self.firstMatchChar and + (self.matchLen==1 or instring.startswith(self.match,loc)) ): + return loc+self.matchLen, self.match + raise ParseException(instring, loc, self.errmsg, self) +_L = Literal +ParserElement._literalStringClass = Literal + +class Keyword(Token): + """ + Token to exactly match a specified string as a keyword, that is, it must be + immediately followed by a non-keyword character. Compare with C{L{Literal}}: + - C{Literal("if")} will match the leading C{'if'} in C{'ifAndOnlyIf'}. + - C{Keyword("if")} will not; it will only match the leading C{'if'} in C{'if x=1'}, or C{'if(y==2)'} + Accepts two optional constructor arguments in addition to the keyword string: + - C{identChars} is a string of characters that would be valid identifier characters, + defaulting to all alphanumerics + "_" and "$" + - C{caseless} allows case-insensitive matching, default is C{False}. + + Example:: + Keyword("start").parseString("start") # -> ['start'] + Keyword("start").parseString("starting") # -> Exception + + For case-insensitive matching, use L{CaselessKeyword}. + """ + DEFAULT_KEYWORD_CHARS = alphanums+"_$" + + def __init__( self, matchString, identChars=None, caseless=False ): + super(Keyword,self).__init__() + if identChars is None: + identChars = Keyword.DEFAULT_KEYWORD_CHARS + self.match = matchString + self.matchLen = len(matchString) + try: + self.firstMatchChar = matchString[0] + except IndexError: + warnings.warn("null string passed to Keyword; use Empty() instead", + SyntaxWarning, stacklevel=2) + self.name = '"%s"' % self.match + self.errmsg = "Expected " + self.name + self.mayReturnEmpty = False + self.mayIndexError = False + self.caseless = caseless + if caseless: + self.caselessmatch = matchString.upper() + identChars = identChars.upper() + self.identChars = set(identChars) + + def parseImpl( self, instring, loc, doActions=True ): + if self.caseless: + if ( (instring[ loc:loc+self.matchLen ].upper() == self.caselessmatch) and + (loc >= len(instring)-self.matchLen or instring[loc+self.matchLen].upper() not in self.identChars) and + (loc == 0 or instring[loc-1].upper() not in self.identChars) ): + return loc+self.matchLen, self.match + else: + if (instring[loc] == self.firstMatchChar and + (self.matchLen==1 or instring.startswith(self.match,loc)) and + (loc >= len(instring)-self.matchLen or instring[loc+self.matchLen] not in self.identChars) and + (loc == 0 or instring[loc-1] not in self.identChars) ): + return loc+self.matchLen, self.match + raise ParseException(instring, loc, self.errmsg, self) + + def copy(self): + c = super(Keyword,self).copy() + c.identChars = Keyword.DEFAULT_KEYWORD_CHARS + return c + + @staticmethod + def setDefaultKeywordChars( chars ): + """Overrides the default Keyword chars + """ + Keyword.DEFAULT_KEYWORD_CHARS = chars + +class CaselessLiteral(Literal): + """ + Token to match a specified string, ignoring case of letters. + Note: the matched results will always be in the case of the given + match string, NOT the case of the input text. + + Example:: + OneOrMore(CaselessLiteral("CMD")).parseString("cmd CMD Cmd10") # -> ['CMD', 'CMD', 'CMD'] + + (Contrast with example for L{CaselessKeyword}.) + """ + def __init__( self, matchString ): + super(CaselessLiteral,self).__init__( matchString.upper() ) + # Preserve the defining literal. + self.returnString = matchString + self.name = "'%s'" % self.returnString + self.errmsg = "Expected " + self.name + + def parseImpl( self, instring, loc, doActions=True ): + if instring[ loc:loc+self.matchLen ].upper() == self.match: + return loc+self.matchLen, self.returnString + raise ParseException(instring, loc, self.errmsg, self) + +class CaselessKeyword(Keyword): + """ + Caseless version of L{Keyword}. + + Example:: + OneOrMore(CaselessKeyword("CMD")).parseString("cmd CMD Cmd10") # -> ['CMD', 'CMD'] + + (Contrast with example for L{CaselessLiteral}.) + """ + def __init__( self, matchString, identChars=None ): + super(CaselessKeyword,self).__init__( matchString, identChars, caseless=True ) + + def parseImpl( self, instring, loc, doActions=True ): + if ( (instring[ loc:loc+self.matchLen ].upper() == self.caselessmatch) and + (loc >= len(instring)-self.matchLen or instring[loc+self.matchLen].upper() not in self.identChars) ): + return loc+self.matchLen, self.match + raise ParseException(instring, loc, self.errmsg, self) + +class CloseMatch(Token): + """ + A variation on L{Literal} which matches "close" matches, that is, + strings with at most 'n' mismatching characters. C{CloseMatch} takes parameters: + - C{match_string} - string to be matched + - C{maxMismatches} - (C{default=1}) maximum number of mismatches allowed to count as a match + + The results from a successful parse will contain the matched text from the input string and the following named results: + - C{mismatches} - a list of the positions within the match_string where mismatches were found + - C{original} - the original match_string used to compare against the input string + + If C{mismatches} is an empty list, then the match was an exact match. + + Example:: + patt = CloseMatch("ATCATCGAATGGA") + patt.parseString("ATCATCGAAXGGA") # -> (['ATCATCGAAXGGA'], {'mismatches': [[9]], 'original': ['ATCATCGAATGGA']}) + patt.parseString("ATCAXCGAAXGGA") # -> Exception: Expected 'ATCATCGAATGGA' (with up to 1 mismatches) (at char 0), (line:1, col:1) + + # exact match + patt.parseString("ATCATCGAATGGA") # -> (['ATCATCGAATGGA'], {'mismatches': [[]], 'original': ['ATCATCGAATGGA']}) + + # close match allowing up to 2 mismatches + patt = CloseMatch("ATCATCGAATGGA", maxMismatches=2) + patt.parseString("ATCAXCGAAXGGA") # -> (['ATCAXCGAAXGGA'], {'mismatches': [[4, 9]], 'original': ['ATCATCGAATGGA']}) + """ + def __init__(self, match_string, maxMismatches=1): + super(CloseMatch,self).__init__() + self.name = match_string + self.match_string = match_string + self.maxMismatches = maxMismatches + self.errmsg = "Expected %r (with up to %d mismatches)" % (self.match_string, self.maxMismatches) + self.mayIndexError = False + self.mayReturnEmpty = False + + def parseImpl( self, instring, loc, doActions=True ): + start = loc + instrlen = len(instring) + maxloc = start + len(self.match_string) + + if maxloc <= instrlen: + match_string = self.match_string + match_stringloc = 0 + mismatches = [] + maxMismatches = self.maxMismatches + + for match_stringloc,s_m in enumerate(zip(instring[loc:maxloc], self.match_string)): + src,mat = s_m + if src != mat: + mismatches.append(match_stringloc) + if len(mismatches) > maxMismatches: + break + else: + loc = match_stringloc + 1 + results = ParseResults([instring[start:loc]]) + results['original'] = self.match_string + results['mismatches'] = mismatches + return loc, results + + raise ParseException(instring, loc, self.errmsg, self) + + +class Word(Token): + """ + Token for matching words composed of allowed character sets. + Defined with string containing all allowed initial characters, + an optional string containing allowed body characters (if omitted, + defaults to the initial character set), and an optional minimum, + maximum, and/or exact length. The default value for C{min} is 1 (a + minimum value < 1 is not valid); the default values for C{max} and C{exact} + are 0, meaning no maximum or exact length restriction. An optional + C{excludeChars} parameter can list characters that might be found in + the input C{bodyChars} string; useful to define a word of all printables + except for one or two characters, for instance. + + L{srange} is useful for defining custom character set strings for defining + C{Word} expressions, using range notation from regular expression character sets. + + A common mistake is to use C{Word} to match a specific literal string, as in + C{Word("Address")}. Remember that C{Word} uses the string argument to define + I{sets} of matchable characters. This expression would match "Add", "AAA", + "dAred", or any other word made up of the characters 'A', 'd', 'r', 'e', and 's'. + To match an exact literal string, use L{Literal} or L{Keyword}. + + pyparsing includes helper strings for building Words: + - L{alphas} + - L{nums} + - L{alphanums} + - L{hexnums} + - L{alphas8bit} (alphabetic characters in ASCII range 128-255 - accented, tilded, umlauted, etc.) + - L{punc8bit} (non-alphabetic characters in ASCII range 128-255 - currency, symbols, superscripts, diacriticals, etc.) + - L{printables} (any non-whitespace character) + + Example:: + # a word composed of digits + integer = Word(nums) # equivalent to Word("0123456789") or Word(srange("0-9")) + + # a word with a leading capital, and zero or more lowercase + capital_word = Word(alphas.upper(), alphas.lower()) + + # hostnames are alphanumeric, with leading alpha, and '-' + hostname = Word(alphas, alphanums+'-') + + # roman numeral (not a strict parser, accepts invalid mix of characters) + roman = Word("IVXLCDM") + + # any string of non-whitespace characters, except for ',' + csv_value = Word(printables, excludeChars=",") + """ + def __init__( self, initChars, bodyChars=None, min=1, max=0, exact=0, asKeyword=False, excludeChars=None ): + super(Word,self).__init__() + if excludeChars: + initChars = ''.join(c for c in initChars if c not in excludeChars) + if bodyChars: + bodyChars = ''.join(c for c in bodyChars if c not in excludeChars) + self.initCharsOrig = initChars + self.initChars = set(initChars) + if bodyChars : + self.bodyCharsOrig = bodyChars + self.bodyChars = set(bodyChars) + else: + self.bodyCharsOrig = initChars + self.bodyChars = set(initChars) + + self.maxSpecified = max > 0 + + if min < 1: + raise ValueError("cannot specify a minimum length < 1; use Optional(Word()) if zero-length word is permitted") + + self.minLen = min + + if max > 0: + self.maxLen = max + else: + self.maxLen = _MAX_INT + + if exact > 0: + self.maxLen = exact + self.minLen = exact + + self.name = _ustr(self) + self.errmsg = "Expected " + self.name + self.mayIndexError = False + self.asKeyword = asKeyword + + if ' ' not in self.initCharsOrig+self.bodyCharsOrig and (min==1 and max==0 and exact==0): + if self.bodyCharsOrig == self.initCharsOrig: + self.reString = "[%s]+" % _escapeRegexRangeChars(self.initCharsOrig) + elif len(self.initCharsOrig) == 1: + self.reString = "%s[%s]*" % \ + (re.escape(self.initCharsOrig), + _escapeRegexRangeChars(self.bodyCharsOrig),) + else: + self.reString = "[%s][%s]*" % \ + (_escapeRegexRangeChars(self.initCharsOrig), + _escapeRegexRangeChars(self.bodyCharsOrig),) + if self.asKeyword: + self.reString = r"\b"+self.reString+r"\b" + try: + self.re = re.compile( self.reString ) + except Exception: + self.re = None + + def parseImpl( self, instring, loc, doActions=True ): + if self.re: + result = self.re.match(instring,loc) + if not result: + raise ParseException(instring, loc, self.errmsg, self) + + loc = result.end() + return loc, result.group() + + if not(instring[ loc ] in self.initChars): + raise ParseException(instring, loc, self.errmsg, self) + + start = loc + loc += 1 + instrlen = len(instring) + bodychars = self.bodyChars + maxloc = start + self.maxLen + maxloc = min( maxloc, instrlen ) + while loc < maxloc and instring[loc] in bodychars: + loc += 1 + + throwException = False + if loc - start < self.minLen: + throwException = True + if self.maxSpecified and loc < instrlen and instring[loc] in bodychars: + throwException = True + if self.asKeyword: + if (start>0 and instring[start-1] in bodychars) or (loc<instrlen and instring[loc] in bodychars): + throwException = True + + if throwException: + raise ParseException(instring, loc, self.errmsg, self) + + return loc, instring[start:loc] + + def __str__( self ): + try: + return super(Word,self).__str__() + except Exception: + pass + + + if self.strRepr is None: + + def charsAsStr(s): + if len(s)>4: + return s[:4]+"..." + else: + return s + + if ( self.initCharsOrig != self.bodyCharsOrig ): + self.strRepr = "W:(%s,%s)" % ( charsAsStr(self.initCharsOrig), charsAsStr(self.bodyCharsOrig) ) + else: + self.strRepr = "W:(%s)" % charsAsStr(self.initCharsOrig) + + return self.strRepr + + +class Regex(Token): + r""" + Token for matching strings that match a given regular expression. + Defined with string specifying the regular expression in a form recognized by the inbuilt Python re module. + If the given regex contains named groups (defined using C{(?P<name>...)}), these will be preserved as + named parse results. + + Example:: + realnum = Regex(r"[+-]?\d+\.\d*") + date = Regex(r'(?P<year>\d{4})-(?P<month>\d\d?)-(?P<day>\d\d?)') + # ref: http://stackoverflow.com/questions/267399/how-do-you-match-only-valid-roman-numerals-with-a-regular-expression + roman = Regex(r"M{0,4}(CM|CD|D?C{0,3})(XC|XL|L?X{0,3})(IX|IV|V?I{0,3})") + """ + compiledREtype = type(re.compile("[A-Z]")) + def __init__( self, pattern, flags=0): + """The parameters C{pattern} and C{flags} are passed to the C{re.compile()} function as-is. See the Python C{re} module for an explanation of the acceptable patterns and flags.""" + super(Regex,self).__init__() + + if isinstance(pattern, basestring): + if not pattern: + warnings.warn("null string passed to Regex; use Empty() instead", + SyntaxWarning, stacklevel=2) + + self.pattern = pattern + self.flags = flags + + try: + self.re = re.compile(self.pattern, self.flags) + self.reString = self.pattern + except sre_constants.error: + warnings.warn("invalid pattern (%s) passed to Regex" % pattern, + SyntaxWarning, stacklevel=2) + raise + + elif isinstance(pattern, Regex.compiledREtype): + self.re = pattern + self.pattern = \ + self.reString = str(pattern) + self.flags = flags + + else: + raise ValueError("Regex may only be constructed with a string or a compiled RE object") + + self.name = _ustr(self) + self.errmsg = "Expected " + self.name + self.mayIndexError = False + self.mayReturnEmpty = True + + def parseImpl( self, instring, loc, doActions=True ): + result = self.re.match(instring,loc) + if not result: + raise ParseException(instring, loc, self.errmsg, self) + + loc = result.end() + d = result.groupdict() + ret = ParseResults(result.group()) + if d: + for k in d: + ret[k] = d[k] + return loc,ret + + def __str__( self ): + try: + return super(Regex,self).__str__() + except Exception: + pass + + if self.strRepr is None: + self.strRepr = "Re:(%s)" % repr(self.pattern) + + return self.strRepr + + +class QuotedString(Token): + r""" + Token for matching strings that are delimited by quoting characters. + + Defined with the following parameters: + - quoteChar - string of one or more characters defining the quote delimiting string + - escChar - character to escape quotes, typically backslash (default=C{None}) + - escQuote - special quote sequence to escape an embedded quote string (such as SQL's "" to escape an embedded ") (default=C{None}) + - multiline - boolean indicating whether quotes can span multiple lines (default=C{False}) + - unquoteResults - boolean indicating whether the matched text should be unquoted (default=C{True}) + - endQuoteChar - string of one or more characters defining the end of the quote delimited string (default=C{None} => same as quoteChar) + - convertWhitespaceEscapes - convert escaped whitespace (C{'\t'}, C{'\n'}, etc.) to actual whitespace (default=C{True}) + + Example:: + qs = QuotedString('"') + print(qs.searchString('lsjdf "This is the quote" sldjf')) + complex_qs = QuotedString('{{', endQuoteChar='}}') + print(complex_qs.searchString('lsjdf {{This is the "quote"}} sldjf')) + sql_qs = QuotedString('"', escQuote='""') + print(sql_qs.searchString('lsjdf "This is the quote with ""embedded"" quotes" sldjf')) + prints:: + [['This is the quote']] + [['This is the "quote"']] + [['This is the quote with "embedded" quotes']] + """ + def __init__( self, quoteChar, escChar=None, escQuote=None, multiline=False, unquoteResults=True, endQuoteChar=None, convertWhitespaceEscapes=True): + super(QuotedString,self).__init__() + + # remove white space from quote chars - wont work anyway + quoteChar = quoteChar.strip() + if not quoteChar: + warnings.warn("quoteChar cannot be the empty string",SyntaxWarning,stacklevel=2) + raise SyntaxError() + + if endQuoteChar is None: + endQuoteChar = quoteChar + else: + endQuoteChar = endQuoteChar.strip() + if not endQuoteChar: + warnings.warn("endQuoteChar cannot be the empty string",SyntaxWarning,stacklevel=2) + raise SyntaxError() + + self.quoteChar = quoteChar + self.quoteCharLen = len(quoteChar) + self.firstQuoteChar = quoteChar[0] + self.endQuoteChar = endQuoteChar + self.endQuoteCharLen = len(endQuoteChar) + self.escChar = escChar + self.escQuote = escQuote + self.unquoteResults = unquoteResults + self.convertWhitespaceEscapes = convertWhitespaceEscapes + + if multiline: + self.flags = re.MULTILINE | re.DOTALL + self.pattern = r'%s(?:[^%s%s]' % \ + ( re.escape(self.quoteChar), + _escapeRegexRangeChars(self.endQuoteChar[0]), + (escChar is not None and _escapeRegexRangeChars(escChar) or '') ) + else: + self.flags = 0 + self.pattern = r'%s(?:[^%s\n\r%s]' % \ + ( re.escape(self.quoteChar), + _escapeRegexRangeChars(self.endQuoteChar[0]), + (escChar is not None and _escapeRegexRangeChars(escChar) or '') ) + if len(self.endQuoteChar) > 1: + self.pattern += ( + '|(?:' + ')|(?:'.join("%s[^%s]" % (re.escape(self.endQuoteChar[:i]), + _escapeRegexRangeChars(self.endQuoteChar[i])) + for i in range(len(self.endQuoteChar)-1,0,-1)) + ')' + ) + if escQuote: + self.pattern += (r'|(?:%s)' % re.escape(escQuote)) + if escChar: + self.pattern += (r'|(?:%s.)' % re.escape(escChar)) + self.escCharReplacePattern = re.escape(self.escChar)+"(.)" + self.pattern += (r')*%s' % re.escape(self.endQuoteChar)) + + try: + self.re = re.compile(self.pattern, self.flags) + self.reString = self.pattern + except sre_constants.error: + warnings.warn("invalid pattern (%s) passed to Regex" % self.pattern, + SyntaxWarning, stacklevel=2) + raise + + self.name = _ustr(self) + self.errmsg = "Expected " + self.name + self.mayIndexError = False + self.mayReturnEmpty = True + + def parseImpl( self, instring, loc, doActions=True ): + result = instring[loc] == self.firstQuoteChar and self.re.match(instring,loc) or None + if not result: + raise ParseException(instring, loc, self.errmsg, self) + + loc = result.end() + ret = result.group() + + if self.unquoteResults: + + # strip off quotes + ret = ret[self.quoteCharLen:-self.endQuoteCharLen] + + if isinstance(ret,basestring): + # replace escaped whitespace + if '\\' in ret and self.convertWhitespaceEscapes: + ws_map = { + r'\t' : '\t', + r'\n' : '\n', + r'\f' : '\f', + r'\r' : '\r', + } + for wslit,wschar in ws_map.items(): + ret = ret.replace(wslit, wschar) + + # replace escaped characters + if self.escChar: + ret = re.sub(self.escCharReplacePattern, r"\g<1>", ret) + + # replace escaped quotes + if self.escQuote: + ret = ret.replace(self.escQuote, self.endQuoteChar) + + return loc, ret + + def __str__( self ): + try: + return super(QuotedString,self).__str__() + except Exception: + pass + + if self.strRepr is None: + self.strRepr = "quoted string, starting with %s ending with %s" % (self.quoteChar, self.endQuoteChar) + + return self.strRepr + + +class CharsNotIn(Token): + """ + Token for matching words composed of characters I{not} in a given set (will + include whitespace in matched characters if not listed in the provided exclusion set - see example). + Defined with string containing all disallowed characters, and an optional + minimum, maximum, and/or exact length. The default value for C{min} is 1 (a + minimum value < 1 is not valid); the default values for C{max} and C{exact} + are 0, meaning no maximum or exact length restriction. + + Example:: + # define a comma-separated-value as anything that is not a ',' + csv_value = CharsNotIn(',') + print(delimitedList(csv_value).parseString("dkls,lsdkjf,s12 34,@!#,213")) + prints:: + ['dkls', 'lsdkjf', 's12 34', '@!#', '213'] + """ + def __init__( self, notChars, min=1, max=0, exact=0 ): + super(CharsNotIn,self).__init__() + self.skipWhitespace = False + self.notChars = notChars + + if min < 1: + raise ValueError("cannot specify a minimum length < 1; use Optional(CharsNotIn()) if zero-length char group is permitted") + + self.minLen = min + + if max > 0: + self.maxLen = max + else: + self.maxLen = _MAX_INT + + if exact > 0: + self.maxLen = exact + self.minLen = exact + + self.name = _ustr(self) + self.errmsg = "Expected " + self.name + self.mayReturnEmpty = ( self.minLen == 0 ) + self.mayIndexError = False + + def parseImpl( self, instring, loc, doActions=True ): + if instring[loc] in self.notChars: + raise ParseException(instring, loc, self.errmsg, self) + + start = loc + loc += 1 + notchars = self.notChars + maxlen = min( start+self.maxLen, len(instring) ) + while loc < maxlen and \ + (instring[loc] not in notchars): + loc += 1 + + if loc - start < self.minLen: + raise ParseException(instring, loc, self.errmsg, self) + + return loc, instring[start:loc] + + def __str__( self ): + try: + return super(CharsNotIn, self).__str__() + except Exception: + pass + + if self.strRepr is None: + if len(self.notChars) > 4: + self.strRepr = "!W:(%s...)" % self.notChars[:4] + else: + self.strRepr = "!W:(%s)" % self.notChars + + return self.strRepr + +class White(Token): + """ + Special matching class for matching whitespace. Normally, whitespace is ignored + by pyparsing grammars. This class is included when some whitespace structures + are significant. Define with a string containing the whitespace characters to be + matched; default is C{" \\t\\r\\n"}. Also takes optional C{min}, C{max}, and C{exact} arguments, + as defined for the C{L{Word}} class. + """ + whiteStrs = { + " " : "<SPC>", + "\t": "<TAB>", + "\n": "<LF>", + "\r": "<CR>", + "\f": "<FF>", + } + def __init__(self, ws=" \t\r\n", min=1, max=0, exact=0): + super(White,self).__init__() + self.matchWhite = ws + self.setWhitespaceChars( "".join(c for c in self.whiteChars if c not in self.matchWhite) ) + #~ self.leaveWhitespace() + self.name = ("".join(White.whiteStrs[c] for c in self.matchWhite)) + self.mayReturnEmpty = True + self.errmsg = "Expected " + self.name + + self.minLen = min + + if max > 0: + self.maxLen = max + else: + self.maxLen = _MAX_INT + + if exact > 0: + self.maxLen = exact + self.minLen = exact + + def parseImpl( self, instring, loc, doActions=True ): + if not(instring[ loc ] in self.matchWhite): + raise ParseException(instring, loc, self.errmsg, self) + start = loc + loc += 1 + maxloc = start + self.maxLen + maxloc = min( maxloc, len(instring) ) + while loc < maxloc and instring[loc] in self.matchWhite: + loc += 1 + + if loc - start < self.minLen: + raise ParseException(instring, loc, self.errmsg, self) + + return loc, instring[start:loc] + + +class _PositionToken(Token): + def __init__( self ): + super(_PositionToken,self).__init__() + self.name=self.__class__.__name__ + self.mayReturnEmpty = True + self.mayIndexError = False + +class GoToColumn(_PositionToken): + """ + Token to advance to a specific column of input text; useful for tabular report scraping. + """ + def __init__( self, colno ): + super(GoToColumn,self).__init__() + self.col = colno + + def preParse( self, instring, loc ): + if col(loc,instring) != self.col: + instrlen = len(instring) + if self.ignoreExprs: + loc = self._skipIgnorables( instring, loc ) + while loc < instrlen and instring[loc].isspace() and col( loc, instring ) != self.col : + loc += 1 + return loc + + def parseImpl( self, instring, loc, doActions=True ): + thiscol = col( loc, instring ) + if thiscol > self.col: + raise ParseException( instring, loc, "Text not in expected column", self ) + newloc = loc + self.col - thiscol + ret = instring[ loc: newloc ] + return newloc, ret + + +class LineStart(_PositionToken): + """ + Matches if current position is at the beginning of a line within the parse string + + Example:: + + test = '''\ + AAA this line + AAA and this line + AAA but not this one + B AAA and definitely not this one + ''' + + for t in (LineStart() + 'AAA' + restOfLine).searchString(test): + print(t) + + Prints:: + ['AAA', ' this line'] + ['AAA', ' and this line'] + + """ + def __init__( self ): + super(LineStart,self).__init__() + self.errmsg = "Expected start of line" + + def parseImpl( self, instring, loc, doActions=True ): + if col(loc, instring) == 1: + return loc, [] + raise ParseException(instring, loc, self.errmsg, self) + +class LineEnd(_PositionToken): + """ + Matches if current position is at the end of a line within the parse string + """ + def __init__( self ): + super(LineEnd,self).__init__() + self.setWhitespaceChars( ParserElement.DEFAULT_WHITE_CHARS.replace("\n","") ) + self.errmsg = "Expected end of line" + + def parseImpl( self, instring, loc, doActions=True ): + if loc<len(instring): + if instring[loc] == "\n": + return loc+1, "\n" + else: + raise ParseException(instring, loc, self.errmsg, self) + elif loc == len(instring): + return loc+1, [] + else: + raise ParseException(instring, loc, self.errmsg, self) + +class StringStart(_PositionToken): + """ + Matches if current position is at the beginning of the parse string + """ + def __init__( self ): + super(StringStart,self).__init__() + self.errmsg = "Expected start of text" + + def parseImpl( self, instring, loc, doActions=True ): + if loc != 0: + # see if entire string up to here is just whitespace and ignoreables + if loc != self.preParse( instring, 0 ): + raise ParseException(instring, loc, self.errmsg, self) + return loc, [] + +class StringEnd(_PositionToken): + """ + Matches if current position is at the end of the parse string + """ + def __init__( self ): + super(StringEnd,self).__init__() + self.errmsg = "Expected end of text" + + def parseImpl( self, instring, loc, doActions=True ): + if loc < len(instring): + raise ParseException(instring, loc, self.errmsg, self) + elif loc == len(instring): + return loc+1, [] + elif loc > len(instring): + return loc, [] + else: + raise ParseException(instring, loc, self.errmsg, self) + +class WordStart(_PositionToken): + """ + Matches if the current position is at the beginning of a Word, and + is not preceded by any character in a given set of C{wordChars} + (default=C{printables}). To emulate the C{\b} behavior of regular expressions, + use C{WordStart(alphanums)}. C{WordStart} will also match at the beginning of + the string being parsed, or at the beginning of a line. + """ + def __init__(self, wordChars = printables): + super(WordStart,self).__init__() + self.wordChars = set(wordChars) + self.errmsg = "Not at the start of a word" + + def parseImpl(self, instring, loc, doActions=True ): + if loc != 0: + if (instring[loc-1] in self.wordChars or + instring[loc] not in self.wordChars): + raise ParseException(instring, loc, self.errmsg, self) + return loc, [] + +class WordEnd(_PositionToken): + """ + Matches if the current position is at the end of a Word, and + is not followed by any character in a given set of C{wordChars} + (default=C{printables}). To emulate the C{\b} behavior of regular expressions, + use C{WordEnd(alphanums)}. C{WordEnd} will also match at the end of + the string being parsed, or at the end of a line. + """ + def __init__(self, wordChars = printables): + super(WordEnd,self).__init__() + self.wordChars = set(wordChars) + self.skipWhitespace = False + self.errmsg = "Not at the end of a word" + + def parseImpl(self, instring, loc, doActions=True ): + instrlen = len(instring) + if instrlen>0 and loc<instrlen: + if (instring[loc] in self.wordChars or + instring[loc-1] not in self.wordChars): + raise ParseException(instring, loc, self.errmsg, self) + return loc, [] + + +class ParseExpression(ParserElement): + """ + Abstract subclass of ParserElement, for combining and post-processing parsed tokens. + """ + def __init__( self, exprs, savelist = False ): + super(ParseExpression,self).__init__(savelist) + if isinstance( exprs, _generatorType ): + exprs = list(exprs) + + if isinstance( exprs, basestring ): + self.exprs = [ ParserElement._literalStringClass( exprs ) ] + elif isinstance( exprs, collections.Iterable ): + exprs = list(exprs) + # if sequence of strings provided, wrap with Literal + if all(isinstance(expr, basestring) for expr in exprs): + exprs = map(ParserElement._literalStringClass, exprs) + self.exprs = list(exprs) + else: + try: + self.exprs = list( exprs ) + except TypeError: + self.exprs = [ exprs ] + self.callPreparse = False + + def __getitem__( self, i ): + return self.exprs[i] + + def append( self, other ): + self.exprs.append( other ) + self.strRepr = None + return self + + def leaveWhitespace( self ): + """Extends C{leaveWhitespace} defined in base class, and also invokes C{leaveWhitespace} on + all contained expressions.""" + self.skipWhitespace = False + self.exprs = [ e.copy() for e in self.exprs ] + for e in self.exprs: + e.leaveWhitespace() + return self + + def ignore( self, other ): + if isinstance( other, Suppress ): + if other not in self.ignoreExprs: + super( ParseExpression, self).ignore( other ) + for e in self.exprs: + e.ignore( self.ignoreExprs[-1] ) + else: + super( ParseExpression, self).ignore( other ) + for e in self.exprs: + e.ignore( self.ignoreExprs[-1] ) + return self + + def __str__( self ): + try: + return super(ParseExpression,self).__str__() + except Exception: + pass + + if self.strRepr is None: + self.strRepr = "%s:(%s)" % ( self.__class__.__name__, _ustr(self.exprs) ) + return self.strRepr + + def streamline( self ): + super(ParseExpression,self).streamline() + + for e in self.exprs: + e.streamline() + + # collapse nested And's of the form And( And( And( a,b), c), d) to And( a,b,c,d ) + # but only if there are no parse actions or resultsNames on the nested And's + # (likewise for Or's and MatchFirst's) + if ( len(self.exprs) == 2 ): + other = self.exprs[0] + if ( isinstance( other, self.__class__ ) and + not(other.parseAction) and + other.resultsName is None and + not other.debug ): + self.exprs = other.exprs[:] + [ self.exprs[1] ] + self.strRepr = None + self.mayReturnEmpty |= other.mayReturnEmpty + self.mayIndexError |= other.mayIndexError + + other = self.exprs[-1] + if ( isinstance( other, self.__class__ ) and + not(other.parseAction) and + other.resultsName is None and + not other.debug ): + self.exprs = self.exprs[:-1] + other.exprs[:] + self.strRepr = None + self.mayReturnEmpty |= other.mayReturnEmpty + self.mayIndexError |= other.mayIndexError + + self.errmsg = "Expected " + _ustr(self) + + return self + + def setResultsName( self, name, listAllMatches=False ): + ret = super(ParseExpression,self).setResultsName(name,listAllMatches) + return ret + + def validate( self, validateTrace=[] ): + tmp = validateTrace[:]+[self] + for e in self.exprs: + e.validate(tmp) + self.checkRecursion( [] ) + + def copy(self): + ret = super(ParseExpression,self).copy() + ret.exprs = [e.copy() for e in self.exprs] + return ret + +class And(ParseExpression): + """ + Requires all given C{ParseExpression}s to be found in the given order. + Expressions may be separated by whitespace. + May be constructed using the C{'+'} operator. + May also be constructed using the C{'-'} operator, which will suppress backtracking. + + Example:: + integer = Word(nums) + name_expr = OneOrMore(Word(alphas)) + + expr = And([integer("id"),name_expr("name"),integer("age")]) + # more easily written as: + expr = integer("id") + name_expr("name") + integer("age") + """ + + class _ErrorStop(Empty): + def __init__(self, *args, **kwargs): + super(And._ErrorStop,self).__init__(*args, **kwargs) + self.name = '-' + self.leaveWhitespace() + + def __init__( self, exprs, savelist = True ): + super(And,self).__init__(exprs, savelist) + self.mayReturnEmpty = all(e.mayReturnEmpty for e in self.exprs) + self.setWhitespaceChars( self.exprs[0].whiteChars ) + self.skipWhitespace = self.exprs[0].skipWhitespace + self.callPreparse = True + + def parseImpl( self, instring, loc, doActions=True ): + # pass False as last arg to _parse for first element, since we already + # pre-parsed the string as part of our And pre-parsing + loc, resultlist = self.exprs[0]._parse( instring, loc, doActions, callPreParse=False ) + errorStop = False + for e in self.exprs[1:]: + if isinstance(e, And._ErrorStop): + errorStop = True + continue + if errorStop: + try: + loc, exprtokens = e._parse( instring, loc, doActions ) + except ParseSyntaxException: + raise + except ParseBaseException as pe: + pe.__traceback__ = None + raise ParseSyntaxException._from_exception(pe) + except IndexError: + raise ParseSyntaxException(instring, len(instring), self.errmsg, self) + else: + loc, exprtokens = e._parse( instring, loc, doActions ) + if exprtokens or exprtokens.haskeys(): + resultlist += exprtokens + return loc, resultlist + + def __iadd__(self, other ): + if isinstance( other, basestring ): + other = ParserElement._literalStringClass( other ) + return self.append( other ) #And( [ self, other ] ) + + def checkRecursion( self, parseElementList ): + subRecCheckList = parseElementList[:] + [ self ] + for e in self.exprs: + e.checkRecursion( subRecCheckList ) + if not e.mayReturnEmpty: + break + + def __str__( self ): + if hasattr(self,"name"): + return self.name + + if self.strRepr is None: + self.strRepr = "{" + " ".join(_ustr(e) for e in self.exprs) + "}" + + return self.strRepr + + +class Or(ParseExpression): + """ + Requires that at least one C{ParseExpression} is found. + If two expressions match, the expression that matches the longest string will be used. + May be constructed using the C{'^'} operator. + + Example:: + # construct Or using '^' operator + + number = Word(nums) ^ Combine(Word(nums) + '.' + Word(nums)) + print(number.searchString("123 3.1416 789")) + prints:: + [['123'], ['3.1416'], ['789']] + """ + def __init__( self, exprs, savelist = False ): + super(Or,self).__init__(exprs, savelist) + if self.exprs: + self.mayReturnEmpty = any(e.mayReturnEmpty for e in self.exprs) + else: + self.mayReturnEmpty = True + + def parseImpl( self, instring, loc, doActions=True ): + maxExcLoc = -1 + maxException = None + matches = [] + for e in self.exprs: + try: + loc2 = e.tryParse( instring, loc ) + except ParseException as err: + err.__traceback__ = None + if err.loc > maxExcLoc: + maxException = err + maxExcLoc = err.loc + except IndexError: + if len(instring) > maxExcLoc: + maxException = ParseException(instring,len(instring),e.errmsg,self) + maxExcLoc = len(instring) + else: + # save match among all matches, to retry longest to shortest + matches.append((loc2, e)) + + if matches: + matches.sort(key=lambda x: -x[0]) + for _,e in matches: + try: + return e._parse( instring, loc, doActions ) + except ParseException as err: + err.__traceback__ = None + if err.loc > maxExcLoc: + maxException = err + maxExcLoc = err.loc + + if maxException is not None: + maxException.msg = self.errmsg + raise maxException + else: + raise ParseException(instring, loc, "no defined alternatives to match", self) + + + def __ixor__(self, other ): + if isinstance( other, basestring ): + other = ParserElement._literalStringClass( other ) + return self.append( other ) #Or( [ self, other ] ) + + def __str__( self ): + if hasattr(self,"name"): + return self.name + + if self.strRepr is None: + self.strRepr = "{" + " ^ ".join(_ustr(e) for e in self.exprs) + "}" + + return self.strRepr + + def checkRecursion( self, parseElementList ): + subRecCheckList = parseElementList[:] + [ self ] + for e in self.exprs: + e.checkRecursion( subRecCheckList ) + + +class MatchFirst(ParseExpression): + """ + Requires that at least one C{ParseExpression} is found. + If two expressions match, the first one listed is the one that will match. + May be constructed using the C{'|'} operator. + + Example:: + # construct MatchFirst using '|' operator + + # watch the order of expressions to match + number = Word(nums) | Combine(Word(nums) + '.' + Word(nums)) + print(number.searchString("123 3.1416 789")) # Fail! -> [['123'], ['3'], ['1416'], ['789']] + + # put more selective expression first + number = Combine(Word(nums) + '.' + Word(nums)) | Word(nums) + print(number.searchString("123 3.1416 789")) # Better -> [['123'], ['3.1416'], ['789']] + """ + def __init__( self, exprs, savelist = False ): + super(MatchFirst,self).__init__(exprs, savelist) + if self.exprs: + self.mayReturnEmpty = any(e.mayReturnEmpty for e in self.exprs) + else: + self.mayReturnEmpty = True + + def parseImpl( self, instring, loc, doActions=True ): + maxExcLoc = -1 + maxException = None + for e in self.exprs: + try: + ret = e._parse( instring, loc, doActions ) + return ret + except ParseException as err: + if err.loc > maxExcLoc: + maxException = err + maxExcLoc = err.loc + except IndexError: + if len(instring) > maxExcLoc: + maxException = ParseException(instring,len(instring),e.errmsg,self) + maxExcLoc = len(instring) + + # only got here if no expression matched, raise exception for match that made it the furthest + else: + if maxException is not None: + maxException.msg = self.errmsg + raise maxException + else: + raise ParseException(instring, loc, "no defined alternatives to match", self) + + def __ior__(self, other ): + if isinstance( other, basestring ): + other = ParserElement._literalStringClass( other ) + return self.append( other ) #MatchFirst( [ self, other ] ) + + def __str__( self ): + if hasattr(self,"name"): + return self.name + + if self.strRepr is None: + self.strRepr = "{" + " | ".join(_ustr(e) for e in self.exprs) + "}" + + return self.strRepr + + def checkRecursion( self, parseElementList ): + subRecCheckList = parseElementList[:] + [ self ] + for e in self.exprs: + e.checkRecursion( subRecCheckList ) + + +class Each(ParseExpression): + """ + Requires all given C{ParseExpression}s to be found, but in any order. + Expressions may be separated by whitespace. + May be constructed using the C{'&'} operator. + + Example:: + color = oneOf("RED ORANGE YELLOW GREEN BLUE PURPLE BLACK WHITE BROWN") + shape_type = oneOf("SQUARE CIRCLE TRIANGLE STAR HEXAGON OCTAGON") + integer = Word(nums) + shape_attr = "shape:" + shape_type("shape") + posn_attr = "posn:" + Group(integer("x") + ',' + integer("y"))("posn") + color_attr = "color:" + color("color") + size_attr = "size:" + integer("size") + + # use Each (using operator '&') to accept attributes in any order + # (shape and posn are required, color and size are optional) + shape_spec = shape_attr & posn_attr & Optional(color_attr) & Optional(size_attr) + + shape_spec.runTests(''' + shape: SQUARE color: BLACK posn: 100, 120 + shape: CIRCLE size: 50 color: BLUE posn: 50,80 + color:GREEN size:20 shape:TRIANGLE posn:20,40 + ''' + ) + prints:: + shape: SQUARE color: BLACK posn: 100, 120 + ['shape:', 'SQUARE', 'color:', 'BLACK', 'posn:', ['100', ',', '120']] + - color: BLACK + - posn: ['100', ',', '120'] + - x: 100 + - y: 120 + - shape: SQUARE + + + shape: CIRCLE size: 50 color: BLUE posn: 50,80 + ['shape:', 'CIRCLE', 'size:', '50', 'color:', 'BLUE', 'posn:', ['50', ',', '80']] + - color: BLUE + - posn: ['50', ',', '80'] + - x: 50 + - y: 80 + - shape: CIRCLE + - size: 50 + + + color: GREEN size: 20 shape: TRIANGLE posn: 20,40 + ['color:', 'GREEN', 'size:', '20', 'shape:', 'TRIANGLE', 'posn:', ['20', ',', '40']] + - color: GREEN + - posn: ['20', ',', '40'] + - x: 20 + - y: 40 + - shape: TRIANGLE + - size: 20 + """ + def __init__( self, exprs, savelist = True ): + super(Each,self).__init__(exprs, savelist) + self.mayReturnEmpty = all(e.mayReturnEmpty for e in self.exprs) + self.skipWhitespace = True + self.initExprGroups = True + + def parseImpl( self, instring, loc, doActions=True ): + if self.initExprGroups: + self.opt1map = dict((id(e.expr),e) for e in self.exprs if isinstance(e,Optional)) + opt1 = [ e.expr for e in self.exprs if isinstance(e,Optional) ] + opt2 = [ e for e in self.exprs if e.mayReturnEmpty and not isinstance(e,Optional)] + self.optionals = opt1 + opt2 + self.multioptionals = [ e.expr for e in self.exprs if isinstance(e,ZeroOrMore) ] + self.multirequired = [ e.expr for e in self.exprs if isinstance(e,OneOrMore) ] + self.required = [ e for e in self.exprs if not isinstance(e,(Optional,ZeroOrMore,OneOrMore)) ] + self.required += self.multirequired + self.initExprGroups = False + tmpLoc = loc + tmpReqd = self.required[:] + tmpOpt = self.optionals[:] + matchOrder = [] + + keepMatching = True + while keepMatching: + tmpExprs = tmpReqd + tmpOpt + self.multioptionals + self.multirequired + failed = [] + for e in tmpExprs: + try: + tmpLoc = e.tryParse( instring, tmpLoc ) + except ParseException: + failed.append(e) + else: + matchOrder.append(self.opt1map.get(id(e),e)) + if e in tmpReqd: + tmpReqd.remove(e) + elif e in tmpOpt: + tmpOpt.remove(e) + if len(failed) == len(tmpExprs): + keepMatching = False + + if tmpReqd: + missing = ", ".join(_ustr(e) for e in tmpReqd) + raise ParseException(instring,loc,"Missing one or more required elements (%s)" % missing ) + + # add any unmatched Optionals, in case they have default values defined + matchOrder += [e for e in self.exprs if isinstance(e,Optional) and e.expr in tmpOpt] + + resultlist = [] + for e in matchOrder: + loc,results = e._parse(instring,loc,doActions) + resultlist.append(results) + + finalResults = sum(resultlist, ParseResults([])) + return loc, finalResults + + def __str__( self ): + if hasattr(self,"name"): + return self.name + + if self.strRepr is None: + self.strRepr = "{" + " & ".join(_ustr(e) for e in self.exprs) + "}" + + return self.strRepr + + def checkRecursion( self, parseElementList ): + subRecCheckList = parseElementList[:] + [ self ] + for e in self.exprs: + e.checkRecursion( subRecCheckList ) + + +class ParseElementEnhance(ParserElement): + """ + Abstract subclass of C{ParserElement}, for combining and post-processing parsed tokens. + """ + def __init__( self, expr, savelist=False ): + super(ParseElementEnhance,self).__init__(savelist) + if isinstance( expr, basestring ): + if issubclass(ParserElement._literalStringClass, Token): + expr = ParserElement._literalStringClass(expr) + else: + expr = ParserElement._literalStringClass(Literal(expr)) + self.expr = expr + self.strRepr = None + if expr is not None: + self.mayIndexError = expr.mayIndexError + self.mayReturnEmpty = expr.mayReturnEmpty + self.setWhitespaceChars( expr.whiteChars ) + self.skipWhitespace = expr.skipWhitespace + self.saveAsList = expr.saveAsList + self.callPreparse = expr.callPreparse + self.ignoreExprs.extend(expr.ignoreExprs) + + def parseImpl( self, instring, loc, doActions=True ): + if self.expr is not None: + return self.expr._parse( instring, loc, doActions, callPreParse=False ) + else: + raise ParseException("",loc,self.errmsg,self) + + def leaveWhitespace( self ): + self.skipWhitespace = False + self.expr = self.expr.copy() + if self.expr is not None: + self.expr.leaveWhitespace() + return self + + def ignore( self, other ): + if isinstance( other, Suppress ): + if other not in self.ignoreExprs: + super( ParseElementEnhance, self).ignore( other ) + if self.expr is not None: + self.expr.ignore( self.ignoreExprs[-1] ) + else: + super( ParseElementEnhance, self).ignore( other ) + if self.expr is not None: + self.expr.ignore( self.ignoreExprs[-1] ) + return self + + def streamline( self ): + super(ParseElementEnhance,self).streamline() + if self.expr is not None: + self.expr.streamline() + return self + + def checkRecursion( self, parseElementList ): + if self in parseElementList: + raise RecursiveGrammarException( parseElementList+[self] ) + subRecCheckList = parseElementList[:] + [ self ] + if self.expr is not None: + self.expr.checkRecursion( subRecCheckList ) + + def validate( self, validateTrace=[] ): + tmp = validateTrace[:]+[self] + if self.expr is not None: + self.expr.validate(tmp) + self.checkRecursion( [] ) + + def __str__( self ): + try: + return super(ParseElementEnhance,self).__str__() + except Exception: + pass + + if self.strRepr is None and self.expr is not None: + self.strRepr = "%s:(%s)" % ( self.__class__.__name__, _ustr(self.expr) ) + return self.strRepr + + +class FollowedBy(ParseElementEnhance): + """ + Lookahead matching of the given parse expression. C{FollowedBy} + does I{not} advance the parsing position within the input string, it only + verifies that the specified parse expression matches at the current + position. C{FollowedBy} always returns a null token list. + + Example:: + # use FollowedBy to match a label only if it is followed by a ':' + data_word = Word(alphas) + label = data_word + FollowedBy(':') + attr_expr = Group(label + Suppress(':') + OneOrMore(data_word, stopOn=label).setParseAction(' '.join)) + + OneOrMore(attr_expr).parseString("shape: SQUARE color: BLACK posn: upper left").pprint() + prints:: + [['shape', 'SQUARE'], ['color', 'BLACK'], ['posn', 'upper left']] + """ + def __init__( self, expr ): + super(FollowedBy,self).__init__(expr) + self.mayReturnEmpty = True + + def parseImpl( self, instring, loc, doActions=True ): + self.expr.tryParse( instring, loc ) + return loc, [] + + +class NotAny(ParseElementEnhance): + """ + Lookahead to disallow matching with the given parse expression. C{NotAny} + does I{not} advance the parsing position within the input string, it only + verifies that the specified parse expression does I{not} match at the current + position. Also, C{NotAny} does I{not} skip over leading whitespace. C{NotAny} + always returns a null token list. May be constructed using the '~' operator. + + Example:: + + """ + def __init__( self, expr ): + super(NotAny,self).__init__(expr) + #~ self.leaveWhitespace() + self.skipWhitespace = False # do NOT use self.leaveWhitespace(), don't want to propagate to exprs + self.mayReturnEmpty = True + self.errmsg = "Found unwanted token, "+_ustr(self.expr) + + def parseImpl( self, instring, loc, doActions=True ): + if self.expr.canParseNext(instring, loc): + raise ParseException(instring, loc, self.errmsg, self) + return loc, [] + + def __str__( self ): + if hasattr(self,"name"): + return self.name + + if self.strRepr is None: + self.strRepr = "~{" + _ustr(self.expr) + "}" + + return self.strRepr + +class _MultipleMatch(ParseElementEnhance): + def __init__( self, expr, stopOn=None): + super(_MultipleMatch, self).__init__(expr) + self.saveAsList = True + ender = stopOn + if isinstance(ender, basestring): + ender = ParserElement._literalStringClass(ender) + self.not_ender = ~ender if ender is not None else None + + def parseImpl( self, instring, loc, doActions=True ): + self_expr_parse = self.expr._parse + self_skip_ignorables = self._skipIgnorables + check_ender = self.not_ender is not None + if check_ender: + try_not_ender = self.not_ender.tryParse + + # must be at least one (but first see if we are the stopOn sentinel; + # if so, fail) + if check_ender: + try_not_ender(instring, loc) + loc, tokens = self_expr_parse( instring, loc, doActions, callPreParse=False ) + try: + hasIgnoreExprs = (not not self.ignoreExprs) + while 1: + if check_ender: + try_not_ender(instring, loc) + if hasIgnoreExprs: + preloc = self_skip_ignorables( instring, loc ) + else: + preloc = loc + loc, tmptokens = self_expr_parse( instring, preloc, doActions ) + if tmptokens or tmptokens.haskeys(): + tokens += tmptokens + except (ParseException,IndexError): + pass + + return loc, tokens + +class OneOrMore(_MultipleMatch): + """ + Repetition of one or more of the given expression. + + Parameters: + - expr - expression that must match one or more times + - stopOn - (default=C{None}) - expression for a terminating sentinel + (only required if the sentinel would ordinarily match the repetition + expression) + + Example:: + data_word = Word(alphas) + label = data_word + FollowedBy(':') + attr_expr = Group(label + Suppress(':') + OneOrMore(data_word).setParseAction(' '.join)) + + text = "shape: SQUARE posn: upper left color: BLACK" + OneOrMore(attr_expr).parseString(text).pprint() # Fail! read 'color' as data instead of next label -> [['shape', 'SQUARE color']] + + # use stopOn attribute for OneOrMore to avoid reading label string as part of the data + attr_expr = Group(label + Suppress(':') + OneOrMore(data_word, stopOn=label).setParseAction(' '.join)) + OneOrMore(attr_expr).parseString(text).pprint() # Better -> [['shape', 'SQUARE'], ['posn', 'upper left'], ['color', 'BLACK']] + + # could also be written as + (attr_expr * (1,)).parseString(text).pprint() + """ + + def __str__( self ): + if hasattr(self,"name"): + return self.name + + if self.strRepr is None: + self.strRepr = "{" + _ustr(self.expr) + "}..." + + return self.strRepr + +class ZeroOrMore(_MultipleMatch): + """ + Optional repetition of zero or more of the given expression. + + Parameters: + - expr - expression that must match zero or more times + - stopOn - (default=C{None}) - expression for a terminating sentinel + (only required if the sentinel would ordinarily match the repetition + expression) + + Example: similar to L{OneOrMore} + """ + def __init__( self, expr, stopOn=None): + super(ZeroOrMore,self).__init__(expr, stopOn=stopOn) + self.mayReturnEmpty = True + + def parseImpl( self, instring, loc, doActions=True ): + try: + return super(ZeroOrMore, self).parseImpl(instring, loc, doActions) + except (ParseException,IndexError): + return loc, [] + + def __str__( self ): + if hasattr(self,"name"): + return self.name + + if self.strRepr is None: + self.strRepr = "[" + _ustr(self.expr) + "]..." + + return self.strRepr + +class _NullToken(object): + def __bool__(self): + return False + __nonzero__ = __bool__ + def __str__(self): + return "" + +_optionalNotMatched = _NullToken() +class Optional(ParseElementEnhance): + """ + Optional matching of the given expression. + + Parameters: + - expr - expression that must match zero or more times + - default (optional) - value to be returned if the optional expression is not found. + + Example:: + # US postal code can be a 5-digit zip, plus optional 4-digit qualifier + zip = Combine(Word(nums, exact=5) + Optional('-' + Word(nums, exact=4))) + zip.runTests(''' + # traditional ZIP code + 12345 + + # ZIP+4 form + 12101-0001 + + # invalid ZIP + 98765- + ''') + prints:: + # traditional ZIP code + 12345 + ['12345'] + + # ZIP+4 form + 12101-0001 + ['12101-0001'] + + # invalid ZIP + 98765- + ^ + FAIL: Expected end of text (at char 5), (line:1, col:6) + """ + def __init__( self, expr, default=_optionalNotMatched ): + super(Optional,self).__init__( expr, savelist=False ) + self.saveAsList = self.expr.saveAsList + self.defaultValue = default + self.mayReturnEmpty = True + + def parseImpl( self, instring, loc, doActions=True ): + try: + loc, tokens = self.expr._parse( instring, loc, doActions, callPreParse=False ) + except (ParseException,IndexError): + if self.defaultValue is not _optionalNotMatched: + if self.expr.resultsName: + tokens = ParseResults([ self.defaultValue ]) + tokens[self.expr.resultsName] = self.defaultValue + else: + tokens = [ self.defaultValue ] + else: + tokens = [] + return loc, tokens + + def __str__( self ): + if hasattr(self,"name"): + return self.name + + if self.strRepr is None: + self.strRepr = "[" + _ustr(self.expr) + "]" + + return self.strRepr + +class SkipTo(ParseElementEnhance): + """ + Token for skipping over all undefined text until the matched expression is found. + + Parameters: + - expr - target expression marking the end of the data to be skipped + - include - (default=C{False}) if True, the target expression is also parsed + (the skipped text and target expression are returned as a 2-element list). + - ignore - (default=C{None}) used to define grammars (typically quoted strings and + comments) that might contain false matches to the target expression + - failOn - (default=C{None}) define expressions that are not allowed to be + included in the skipped test; if found before the target expression is found, + the SkipTo is not a match + + Example:: + report = ''' + Outstanding Issues Report - 1 Jan 2000 + + # | Severity | Description | Days Open + -----+----------+-------------------------------------------+----------- + 101 | Critical | Intermittent system crash | 6 + 94 | Cosmetic | Spelling error on Login ('log|n') | 14 + 79 | Minor | System slow when running too many reports | 47 + ''' + integer = Word(nums) + SEP = Suppress('|') + # use SkipTo to simply match everything up until the next SEP + # - ignore quoted strings, so that a '|' character inside a quoted string does not match + # - parse action will call token.strip() for each matched token, i.e., the description body + string_data = SkipTo(SEP, ignore=quotedString) + string_data.setParseAction(tokenMap(str.strip)) + ticket_expr = (integer("issue_num") + SEP + + string_data("sev") + SEP + + string_data("desc") + SEP + + integer("days_open")) + + for tkt in ticket_expr.searchString(report): + print tkt.dump() + prints:: + ['101', 'Critical', 'Intermittent system crash', '6'] + - days_open: 6 + - desc: Intermittent system crash + - issue_num: 101 + - sev: Critical + ['94', 'Cosmetic', "Spelling error on Login ('log|n')", '14'] + - days_open: 14 + - desc: Spelling error on Login ('log|n') + - issue_num: 94 + - sev: Cosmetic + ['79', 'Minor', 'System slow when running too many reports', '47'] + - days_open: 47 + - desc: System slow when running too many reports + - issue_num: 79 + - sev: Minor + """ + def __init__( self, other, include=False, ignore=None, failOn=None ): + super( SkipTo, self ).__init__( other ) + self.ignoreExpr = ignore + self.mayReturnEmpty = True + self.mayIndexError = False + self.includeMatch = include + self.asList = False + if isinstance(failOn, basestring): + self.failOn = ParserElement._literalStringClass(failOn) + else: + self.failOn = failOn + self.errmsg = "No match found for "+_ustr(self.expr) + + def parseImpl( self, instring, loc, doActions=True ): + startloc = loc + instrlen = len(instring) + expr = self.expr + expr_parse = self.expr._parse + self_failOn_canParseNext = self.failOn.canParseNext if self.failOn is not None else None + self_ignoreExpr_tryParse = self.ignoreExpr.tryParse if self.ignoreExpr is not None else None + + tmploc = loc + while tmploc <= instrlen: + if self_failOn_canParseNext is not None: + # break if failOn expression matches + if self_failOn_canParseNext(instring, tmploc): + break + + if self_ignoreExpr_tryParse is not None: + # advance past ignore expressions + while 1: + try: + tmploc = self_ignoreExpr_tryParse(instring, tmploc) + except ParseBaseException: + break + + try: + expr_parse(instring, tmploc, doActions=False, callPreParse=False) + except (ParseException, IndexError): + # no match, advance loc in string + tmploc += 1 + else: + # matched skipto expr, done + break + + else: + # ran off the end of the input string without matching skipto expr, fail + raise ParseException(instring, loc, self.errmsg, self) + + # build up return values + loc = tmploc + skiptext = instring[startloc:loc] + skipresult = ParseResults(skiptext) + + if self.includeMatch: + loc, mat = expr_parse(instring,loc,doActions,callPreParse=False) + skipresult += mat + + return loc, skipresult + +class Forward(ParseElementEnhance): + """ + Forward declaration of an expression to be defined later - + used for recursive grammars, such as algebraic infix notation. + When the expression is known, it is assigned to the C{Forward} variable using the '<<' operator. + + Note: take care when assigning to C{Forward} not to overlook precedence of operators. + Specifically, '|' has a lower precedence than '<<', so that:: + fwdExpr << a | b | c + will actually be evaluated as:: + (fwdExpr << a) | b | c + thereby leaving b and c out as parseable alternatives. It is recommended that you + explicitly group the values inserted into the C{Forward}:: + fwdExpr << (a | b | c) + Converting to use the '<<=' operator instead will avoid this problem. + + See L{ParseResults.pprint} for an example of a recursive parser created using + C{Forward}. + """ + def __init__( self, other=None ): + super(Forward,self).__init__( other, savelist=False ) + + def __lshift__( self, other ): + if isinstance( other, basestring ): + other = ParserElement._literalStringClass(other) + self.expr = other + self.strRepr = None + self.mayIndexError = self.expr.mayIndexError + self.mayReturnEmpty = self.expr.mayReturnEmpty + self.setWhitespaceChars( self.expr.whiteChars ) + self.skipWhitespace = self.expr.skipWhitespace + self.saveAsList = self.expr.saveAsList + self.ignoreExprs.extend(self.expr.ignoreExprs) + return self + + def __ilshift__(self, other): + return self << other + + def leaveWhitespace( self ): + self.skipWhitespace = False + return self + + def streamline( self ): + if not self.streamlined: + self.streamlined = True + if self.expr is not None: + self.expr.streamline() + return self + + def validate( self, validateTrace=[] ): + if self not in validateTrace: + tmp = validateTrace[:]+[self] + if self.expr is not None: + self.expr.validate(tmp) + self.checkRecursion([]) + + def __str__( self ): + if hasattr(self,"name"): + return self.name + return self.__class__.__name__ + ": ..." + + # stubbed out for now - creates awful memory and perf issues + self._revertClass = self.__class__ + self.__class__ = _ForwardNoRecurse + try: + if self.expr is not None: + retString = _ustr(self.expr) + else: + retString = "None" + finally: + self.__class__ = self._revertClass + return self.__class__.__name__ + ": " + retString + + def copy(self): + if self.expr is not None: + return super(Forward,self).copy() + else: + ret = Forward() + ret <<= self + return ret + +class _ForwardNoRecurse(Forward): + def __str__( self ): + return "..." + +class TokenConverter(ParseElementEnhance): + """ + Abstract subclass of C{ParseExpression}, for converting parsed results. + """ + def __init__( self, expr, savelist=False ): + super(TokenConverter,self).__init__( expr )#, savelist ) + self.saveAsList = False + +class Combine(TokenConverter): + """ + Converter to concatenate all matching tokens to a single string. + By default, the matching patterns must also be contiguous in the input string; + this can be disabled by specifying C{'adjacent=False'} in the constructor. + + Example:: + real = Word(nums) + '.' + Word(nums) + print(real.parseString('3.1416')) # -> ['3', '.', '1416'] + # will also erroneously match the following + print(real.parseString('3. 1416')) # -> ['3', '.', '1416'] + + real = Combine(Word(nums) + '.' + Word(nums)) + print(real.parseString('3.1416')) # -> ['3.1416'] + # no match when there are internal spaces + print(real.parseString('3. 1416')) # -> Exception: Expected W:(0123...) + """ + def __init__( self, expr, joinString="", adjacent=True ): + super(Combine,self).__init__( expr ) + # suppress whitespace-stripping in contained parse expressions, but re-enable it on the Combine itself + if adjacent: + self.leaveWhitespace() + self.adjacent = adjacent + self.skipWhitespace = True + self.joinString = joinString + self.callPreparse = True + + def ignore( self, other ): + if self.adjacent: + ParserElement.ignore(self, other) + else: + super( Combine, self).ignore( other ) + return self + + def postParse( self, instring, loc, tokenlist ): + retToks = tokenlist.copy() + del retToks[:] + retToks += ParseResults([ "".join(tokenlist._asStringList(self.joinString)) ], modal=self.modalResults) + + if self.resultsName and retToks.haskeys(): + return [ retToks ] + else: + return retToks + +class Group(TokenConverter): + """ + Converter to return the matched tokens as a list - useful for returning tokens of C{L{ZeroOrMore}} and C{L{OneOrMore}} expressions. + + Example:: + ident = Word(alphas) + num = Word(nums) + term = ident | num + func = ident + Optional(delimitedList(term)) + print(func.parseString("fn a,b,100")) # -> ['fn', 'a', 'b', '100'] + + func = ident + Group(Optional(delimitedList(term))) + print(func.parseString("fn a,b,100")) # -> ['fn', ['a', 'b', '100']] + """ + def __init__( self, expr ): + super(Group,self).__init__( expr ) + self.saveAsList = True + + def postParse( self, instring, loc, tokenlist ): + return [ tokenlist ] + +class Dict(TokenConverter): + """ + Converter to return a repetitive expression as a list, but also as a dictionary. + Each element can also be referenced using the first token in the expression as its key. + Useful for tabular report scraping when the first column can be used as a item key. + + Example:: + data_word = Word(alphas) + label = data_word + FollowedBy(':') + attr_expr = Group(label + Suppress(':') + OneOrMore(data_word).setParseAction(' '.join)) + + text = "shape: SQUARE posn: upper left color: light blue texture: burlap" + attr_expr = (label + Suppress(':') + OneOrMore(data_word, stopOn=label).setParseAction(' '.join)) + + # print attributes as plain groups + print(OneOrMore(attr_expr).parseString(text).dump()) + + # instead of OneOrMore(expr), parse using Dict(OneOrMore(Group(expr))) - Dict will auto-assign names + result = Dict(OneOrMore(Group(attr_expr))).parseString(text) + print(result.dump()) + + # access named fields as dict entries, or output as dict + print(result['shape']) + print(result.asDict()) + prints:: + ['shape', 'SQUARE', 'posn', 'upper left', 'color', 'light blue', 'texture', 'burlap'] + + [['shape', 'SQUARE'], ['posn', 'upper left'], ['color', 'light blue'], ['texture', 'burlap']] + - color: light blue + - posn: upper left + - shape: SQUARE + - texture: burlap + SQUARE + {'color': 'light blue', 'posn': 'upper left', 'texture': 'burlap', 'shape': 'SQUARE'} + See more examples at L{ParseResults} of accessing fields by results name. + """ + def __init__( self, expr ): + super(Dict,self).__init__( expr ) + self.saveAsList = True + + def postParse( self, instring, loc, tokenlist ): + for i,tok in enumerate(tokenlist): + if len(tok) == 0: + continue + ikey = tok[0] + if isinstance(ikey,int): + ikey = _ustr(tok[0]).strip() + if len(tok)==1: + tokenlist[ikey] = _ParseResultsWithOffset("",i) + elif len(tok)==2 and not isinstance(tok[1],ParseResults): + tokenlist[ikey] = _ParseResultsWithOffset(tok[1],i) + else: + dictvalue = tok.copy() #ParseResults(i) + del dictvalue[0] + if len(dictvalue)!= 1 or (isinstance(dictvalue,ParseResults) and dictvalue.haskeys()): + tokenlist[ikey] = _ParseResultsWithOffset(dictvalue,i) + else: + tokenlist[ikey] = _ParseResultsWithOffset(dictvalue[0],i) + + if self.resultsName: + return [ tokenlist ] + else: + return tokenlist + + +class Suppress(TokenConverter): + """ + Converter for ignoring the results of a parsed expression. + + Example:: + source = "a, b, c,d" + wd = Word(alphas) + wd_list1 = wd + ZeroOrMore(',' + wd) + print(wd_list1.parseString(source)) + + # often, delimiters that are useful during parsing are just in the + # way afterward - use Suppress to keep them out of the parsed output + wd_list2 = wd + ZeroOrMore(Suppress(',') + wd) + print(wd_list2.parseString(source)) + prints:: + ['a', ',', 'b', ',', 'c', ',', 'd'] + ['a', 'b', 'c', 'd'] + (See also L{delimitedList}.) + """ + def postParse( self, instring, loc, tokenlist ): + return [] + + def suppress( self ): + return self + + +class OnlyOnce(object): + """ + Wrapper for parse actions, to ensure they are only called once. + """ + def __init__(self, methodCall): + self.callable = _trim_arity(methodCall) + self.called = False + def __call__(self,s,l,t): + if not self.called: + results = self.callable(s,l,t) + self.called = True + return results + raise ParseException(s,l,"") + def reset(self): + self.called = False + +def traceParseAction(f): + """ + Decorator for debugging parse actions. + + When the parse action is called, this decorator will print C{">> entering I{method-name}(line:I{current_source_line}, I{parse_location}, I{matched_tokens})".} + When the parse action completes, the decorator will print C{"<<"} followed by the returned value, or any exception that the parse action raised. + + Example:: + wd = Word(alphas) + + @traceParseAction + def remove_duplicate_chars(tokens): + return ''.join(sorted(set(''.join(tokens))) + + wds = OneOrMore(wd).setParseAction(remove_duplicate_chars) + print(wds.parseString("slkdjs sld sldd sdlf sdljf")) + prints:: + >>entering remove_duplicate_chars(line: 'slkdjs sld sldd sdlf sdljf', 0, (['slkdjs', 'sld', 'sldd', 'sdlf', 'sdljf'], {})) + <<leaving remove_duplicate_chars (ret: 'dfjkls') + ['dfjkls'] + """ + f = _trim_arity(f) + def z(*paArgs): + thisFunc = f.__name__ + s,l,t = paArgs[-3:] + if len(paArgs)>3: + thisFunc = paArgs[0].__class__.__name__ + '.' + thisFunc + sys.stderr.write( ">>entering %s(line: '%s', %d, %r)\n" % (thisFunc,line(l,s),l,t) ) + try: + ret = f(*paArgs) + except Exception as exc: + sys.stderr.write( "<<leaving %s (exception: %s)\n" % (thisFunc,exc) ) + raise + sys.stderr.write( "<<leaving %s (ret: %r)\n" % (thisFunc,ret) ) + return ret + try: + z.__name__ = f.__name__ + except AttributeError: + pass + return z + +# +# global helpers +# +def delimitedList( expr, delim=",", combine=False ): + """ + Helper to define a delimited list of expressions - the delimiter defaults to ','. + By default, the list elements and delimiters can have intervening whitespace, and + comments, but this can be overridden by passing C{combine=True} in the constructor. + If C{combine} is set to C{True}, the matching tokens are returned as a single token + string, with the delimiters included; otherwise, the matching tokens are returned + as a list of tokens, with the delimiters suppressed. + + Example:: + delimitedList(Word(alphas)).parseString("aa,bb,cc") # -> ['aa', 'bb', 'cc'] + delimitedList(Word(hexnums), delim=':', combine=True).parseString("AA:BB:CC:DD:EE") # -> ['AA:BB:CC:DD:EE'] + """ + dlName = _ustr(expr)+" ["+_ustr(delim)+" "+_ustr(expr)+"]..." + if combine: + return Combine( expr + ZeroOrMore( delim + expr ) ).setName(dlName) + else: + return ( expr + ZeroOrMore( Suppress( delim ) + expr ) ).setName(dlName) + +def countedArray( expr, intExpr=None ): + """ + Helper to define a counted list of expressions. + This helper defines a pattern of the form:: + integer expr expr expr... + where the leading integer tells how many expr expressions follow. + The matched tokens returns the array of expr tokens as a list - the leading count token is suppressed. + + If C{intExpr} is specified, it should be a pyparsing expression that produces an integer value. + + Example:: + countedArray(Word(alphas)).parseString('2 ab cd ef') # -> ['ab', 'cd'] + + # in this parser, the leading integer value is given in binary, + # '10' indicating that 2 values are in the array + binaryConstant = Word('01').setParseAction(lambda t: int(t[0], 2)) + countedArray(Word(alphas), intExpr=binaryConstant).parseString('10 ab cd ef') # -> ['ab', 'cd'] + """ + arrayExpr = Forward() + def countFieldParseAction(s,l,t): + n = t[0] + arrayExpr << (n and Group(And([expr]*n)) or Group(empty)) + return [] + if intExpr is None: + intExpr = Word(nums).setParseAction(lambda t:int(t[0])) + else: + intExpr = intExpr.copy() + intExpr.setName("arrayLen") + intExpr.addParseAction(countFieldParseAction, callDuringTry=True) + return ( intExpr + arrayExpr ).setName('(len) ' + _ustr(expr) + '...') + +def _flatten(L): + ret = [] + for i in L: + if isinstance(i,list): + ret.extend(_flatten(i)) + else: + ret.append(i) + return ret + +def matchPreviousLiteral(expr): + """ + Helper to define an expression that is indirectly defined from + the tokens matched in a previous expression, that is, it looks + for a 'repeat' of a previous expression. For example:: + first = Word(nums) + second = matchPreviousLiteral(first) + matchExpr = first + ":" + second + will match C{"1:1"}, but not C{"1:2"}. Because this matches a + previous literal, will also match the leading C{"1:1"} in C{"1:10"}. + If this is not desired, use C{matchPreviousExpr}. + Do I{not} use with packrat parsing enabled. + """ + rep = Forward() + def copyTokenToRepeater(s,l,t): + if t: + if len(t) == 1: + rep << t[0] + else: + # flatten t tokens + tflat = _flatten(t.asList()) + rep << And(Literal(tt) for tt in tflat) + else: + rep << Empty() + expr.addParseAction(copyTokenToRepeater, callDuringTry=True) + rep.setName('(prev) ' + _ustr(expr)) + return rep + +def matchPreviousExpr(expr): + """ + Helper to define an expression that is indirectly defined from + the tokens matched in a previous expression, that is, it looks + for a 'repeat' of a previous expression. For example:: + first = Word(nums) + second = matchPreviousExpr(first) + matchExpr = first + ":" + second + will match C{"1:1"}, but not C{"1:2"}. Because this matches by + expressions, will I{not} match the leading C{"1:1"} in C{"1:10"}; + the expressions are evaluated first, and then compared, so + C{"1"} is compared with C{"10"}. + Do I{not} use with packrat parsing enabled. + """ + rep = Forward() + e2 = expr.copy() + rep <<= e2 + def copyTokenToRepeater(s,l,t): + matchTokens = _flatten(t.asList()) + def mustMatchTheseTokens(s,l,t): + theseTokens = _flatten(t.asList()) + if theseTokens != matchTokens: + raise ParseException("",0,"") + rep.setParseAction( mustMatchTheseTokens, callDuringTry=True ) + expr.addParseAction(copyTokenToRepeater, callDuringTry=True) + rep.setName('(prev) ' + _ustr(expr)) + return rep + +def _escapeRegexRangeChars(s): + #~ escape these chars: ^-] + for c in r"\^-]": + s = s.replace(c,_bslash+c) + s = s.replace("\n",r"\n") + s = s.replace("\t",r"\t") + return _ustr(s) + +def oneOf( strs, caseless=False, useRegex=True ): + """ + Helper to quickly define a set of alternative Literals, and makes sure to do + longest-first testing when there is a conflict, regardless of the input order, + but returns a C{L{MatchFirst}} for best performance. + + Parameters: + - strs - a string of space-delimited literals, or a collection of string literals + - caseless - (default=C{False}) - treat all literals as caseless + - useRegex - (default=C{True}) - as an optimization, will generate a Regex + object; otherwise, will generate a C{MatchFirst} object (if C{caseless=True}, or + if creating a C{Regex} raises an exception) + + Example:: + comp_oper = oneOf("< = > <= >= !=") + var = Word(alphas) + number = Word(nums) + term = var | number + comparison_expr = term + comp_oper + term + print(comparison_expr.searchString("B = 12 AA=23 B<=AA AA>12")) + prints:: + [['B', '=', '12'], ['AA', '=', '23'], ['B', '<=', 'AA'], ['AA', '>', '12']] + """ + if caseless: + isequal = ( lambda a,b: a.upper() == b.upper() ) + masks = ( lambda a,b: b.upper().startswith(a.upper()) ) + parseElementClass = CaselessLiteral + else: + isequal = ( lambda a,b: a == b ) + masks = ( lambda a,b: b.startswith(a) ) + parseElementClass = Literal + + symbols = [] + if isinstance(strs,basestring): + symbols = strs.split() + elif isinstance(strs, collections.Iterable): + symbols = list(strs) + else: + warnings.warn("Invalid argument to oneOf, expected string or iterable", + SyntaxWarning, stacklevel=2) + if not symbols: + return NoMatch() + + i = 0 + while i < len(symbols)-1: + cur = symbols[i] + for j,other in enumerate(symbols[i+1:]): + if ( isequal(other, cur) ): + del symbols[i+j+1] + break + elif ( masks(cur, other) ): + del symbols[i+j+1] + symbols.insert(i,other) + cur = other + break + else: + i += 1 + + if not caseless and useRegex: + #~ print (strs,"->", "|".join( [ _escapeRegexChars(sym) for sym in symbols] )) + try: + if len(symbols)==len("".join(symbols)): + return Regex( "[%s]" % "".join(_escapeRegexRangeChars(sym) for sym in symbols) ).setName(' | '.join(symbols)) + else: + return Regex( "|".join(re.escape(sym) for sym in symbols) ).setName(' | '.join(symbols)) + except Exception: + warnings.warn("Exception creating Regex for oneOf, building MatchFirst", + SyntaxWarning, stacklevel=2) + + + # last resort, just use MatchFirst + return MatchFirst(parseElementClass(sym) for sym in symbols).setName(' | '.join(symbols)) + +def dictOf( key, value ): + """ + Helper to easily and clearly define a dictionary by specifying the respective patterns + for the key and value. Takes care of defining the C{L{Dict}}, C{L{ZeroOrMore}}, and C{L{Group}} tokens + in the proper order. The key pattern can include delimiting markers or punctuation, + as long as they are suppressed, thereby leaving the significant key text. The value + pattern can include named results, so that the C{Dict} results can include named token + fields. + + Example:: + text = "shape: SQUARE posn: upper left color: light blue texture: burlap" + attr_expr = (label + Suppress(':') + OneOrMore(data_word, stopOn=label).setParseAction(' '.join)) + print(OneOrMore(attr_expr).parseString(text).dump()) + + attr_label = label + attr_value = Suppress(':') + OneOrMore(data_word, stopOn=label).setParseAction(' '.join) + + # similar to Dict, but simpler call format + result = dictOf(attr_label, attr_value).parseString(text) + print(result.dump()) + print(result['shape']) + print(result.shape) # object attribute access works too + print(result.asDict()) + prints:: + [['shape', 'SQUARE'], ['posn', 'upper left'], ['color', 'light blue'], ['texture', 'burlap']] + - color: light blue + - posn: upper left + - shape: SQUARE + - texture: burlap + SQUARE + SQUARE + {'color': 'light blue', 'shape': 'SQUARE', 'posn': 'upper left', 'texture': 'burlap'} + """ + return Dict( ZeroOrMore( Group ( key + value ) ) ) + +def originalTextFor(expr, asString=True): + """ + Helper to return the original, untokenized text for a given expression. Useful to + restore the parsed fields of an HTML start tag into the raw tag text itself, or to + revert separate tokens with intervening whitespace back to the original matching + input text. By default, returns astring containing the original parsed text. + + If the optional C{asString} argument is passed as C{False}, then the return value is a + C{L{ParseResults}} containing any results names that were originally matched, and a + single token containing the original matched text from the input string. So if + the expression passed to C{L{originalTextFor}} contains expressions with defined + results names, you must set C{asString} to C{False} if you want to preserve those + results name values. + + Example:: + src = "this is test <b> bold <i>text</i> </b> normal text " + for tag in ("b","i"): + opener,closer = makeHTMLTags(tag) + patt = originalTextFor(opener + SkipTo(closer) + closer) + print(patt.searchString(src)[0]) + prints:: + ['<b> bold <i>text</i> </b>'] + ['<i>text</i>'] + """ + locMarker = Empty().setParseAction(lambda s,loc,t: loc) + endlocMarker = locMarker.copy() + endlocMarker.callPreparse = False + matchExpr = locMarker("_original_start") + expr + endlocMarker("_original_end") + if asString: + extractText = lambda s,l,t: s[t._original_start:t._original_end] + else: + def extractText(s,l,t): + t[:] = [s[t.pop('_original_start'):t.pop('_original_end')]] + matchExpr.setParseAction(extractText) + matchExpr.ignoreExprs = expr.ignoreExprs + return matchExpr + +def ungroup(expr): + """ + Helper to undo pyparsing's default grouping of And expressions, even + if all but one are non-empty. + """ + return TokenConverter(expr).setParseAction(lambda t:t[0]) + +def locatedExpr(expr): + """ + Helper to decorate a returned token with its starting and ending locations in the input string. + This helper adds the following results names: + - locn_start = location where matched expression begins + - locn_end = location where matched expression ends + - value = the actual parsed results + + Be careful if the input text contains C{<TAB>} characters, you may want to call + C{L{ParserElement.parseWithTabs}} + + Example:: + wd = Word(alphas) + for match in locatedExpr(wd).searchString("ljsdf123lksdjjf123lkkjj1222"): + print(match) + prints:: + [[0, 'ljsdf', 5]] + [[8, 'lksdjjf', 15]] + [[18, 'lkkjj', 23]] + """ + locator = Empty().setParseAction(lambda s,l,t: l) + return Group(locator("locn_start") + expr("value") + locator.copy().leaveWhitespace()("locn_end")) + + +# convenience constants for positional expressions +empty = Empty().setName("empty") +lineStart = LineStart().setName("lineStart") +lineEnd = LineEnd().setName("lineEnd") +stringStart = StringStart().setName("stringStart") +stringEnd = StringEnd().setName("stringEnd") + +_escapedPunc = Word( _bslash, r"\[]-*.$+^?()~ ", exact=2 ).setParseAction(lambda s,l,t:t[0][1]) +_escapedHexChar = Regex(r"\\0?[xX][0-9a-fA-F]+").setParseAction(lambda s,l,t:unichr(int(t[0].lstrip(r'\0x'),16))) +_escapedOctChar = Regex(r"\\0[0-7]+").setParseAction(lambda s,l,t:unichr(int(t[0][1:],8))) +_singleChar = _escapedPunc | _escapedHexChar | _escapedOctChar | Word(printables, excludeChars=r'\]', exact=1) | Regex(r"\w", re.UNICODE) +_charRange = Group(_singleChar + Suppress("-") + _singleChar) +_reBracketExpr = Literal("[") + Optional("^").setResultsName("negate") + Group( OneOrMore( _charRange | _singleChar ) ).setResultsName("body") + "]" + +def srange(s): + r""" + Helper to easily define string ranges for use in Word construction. Borrows + syntax from regexp '[]' string range definitions:: + srange("[0-9]") -> "0123456789" + srange("[a-z]") -> "abcdefghijklmnopqrstuvwxyz" + srange("[a-z$_]") -> "abcdefghijklmnopqrstuvwxyz$_" + The input string must be enclosed in []'s, and the returned string is the expanded + character set joined into a single string. + The values enclosed in the []'s may be: + - a single character + - an escaped character with a leading backslash (such as C{\-} or C{\]}) + - an escaped hex character with a leading C{'\x'} (C{\x21}, which is a C{'!'} character) + (C{\0x##} is also supported for backwards compatibility) + - an escaped octal character with a leading C{'\0'} (C{\041}, which is a C{'!'} character) + - a range of any of the above, separated by a dash (C{'a-z'}, etc.) + - any combination of the above (C{'aeiouy'}, C{'a-zA-Z0-9_$'}, etc.) + """ + _expanded = lambda p: p if not isinstance(p,ParseResults) else ''.join(unichr(c) for c in range(ord(p[0]),ord(p[1])+1)) + try: + return "".join(_expanded(part) for part in _reBracketExpr.parseString(s).body) + except Exception: + return "" + +def matchOnlyAtCol(n): + """ + Helper method for defining parse actions that require matching at a specific + column in the input text. + """ + def verifyCol(strg,locn,toks): + if col(locn,strg) != n: + raise ParseException(strg,locn,"matched token not at column %d" % n) + return verifyCol + +def replaceWith(replStr): + """ + Helper method for common parse actions that simply return a literal value. Especially + useful when used with C{L{transformString<ParserElement.transformString>}()}. + + Example:: + num = Word(nums).setParseAction(lambda toks: int(toks[0])) + na = oneOf("N/A NA").setParseAction(replaceWith(math.nan)) + term = na | num + + OneOrMore(term).parseString("324 234 N/A 234") # -> [324, 234, nan, 234] + """ + return lambda s,l,t: [replStr] + +def removeQuotes(s,l,t): + """ + Helper parse action for removing quotation marks from parsed quoted strings. + + Example:: + # by default, quotation marks are included in parsed results + quotedString.parseString("'Now is the Winter of our Discontent'") # -> ["'Now is the Winter of our Discontent'"] + + # use removeQuotes to strip quotation marks from parsed results + quotedString.setParseAction(removeQuotes) + quotedString.parseString("'Now is the Winter of our Discontent'") # -> ["Now is the Winter of our Discontent"] + """ + return t[0][1:-1] + +def tokenMap(func, *args): + """ + Helper to define a parse action by mapping a function to all elements of a ParseResults list.If any additional + args are passed, they are forwarded to the given function as additional arguments after + the token, as in C{hex_integer = Word(hexnums).setParseAction(tokenMap(int, 16))}, which will convert the + parsed data to an integer using base 16. + + Example (compare the last to example in L{ParserElement.transformString}:: + hex_ints = OneOrMore(Word(hexnums)).setParseAction(tokenMap(int, 16)) + hex_ints.runTests(''' + 00 11 22 aa FF 0a 0d 1a + ''') + + upperword = Word(alphas).setParseAction(tokenMap(str.upper)) + OneOrMore(upperword).runTests(''' + my kingdom for a horse + ''') + + wd = Word(alphas).setParseAction(tokenMap(str.title)) + OneOrMore(wd).setParseAction(' '.join).runTests(''' + now is the winter of our discontent made glorious summer by this sun of york + ''') + prints:: + 00 11 22 aa FF 0a 0d 1a + [0, 17, 34, 170, 255, 10, 13, 26] + + my kingdom for a horse + ['MY', 'KINGDOM', 'FOR', 'A', 'HORSE'] + + now is the winter of our discontent made glorious summer by this sun of york + ['Now Is The Winter Of Our Discontent Made Glorious Summer By This Sun Of York'] + """ + def pa(s,l,t): + return [func(tokn, *args) for tokn in t] + + try: + func_name = getattr(func, '__name__', + getattr(func, '__class__').__name__) + except Exception: + func_name = str(func) + pa.__name__ = func_name + + return pa + +upcaseTokens = tokenMap(lambda t: _ustr(t).upper()) +"""(Deprecated) Helper parse action to convert tokens to upper case. Deprecated in favor of L{pyparsing_common.upcaseTokens}""" + +downcaseTokens = tokenMap(lambda t: _ustr(t).lower()) +"""(Deprecated) Helper parse action to convert tokens to lower case. Deprecated in favor of L{pyparsing_common.downcaseTokens}""" + +def _makeTags(tagStr, xml): + """Internal helper to construct opening and closing tag expressions, given a tag name""" + if isinstance(tagStr,basestring): + resname = tagStr + tagStr = Keyword(tagStr, caseless=not xml) + else: + resname = tagStr.name + + tagAttrName = Word(alphas,alphanums+"_-:") + if (xml): + tagAttrValue = dblQuotedString.copy().setParseAction( removeQuotes ) + openTag = Suppress("<") + tagStr("tag") + \ + Dict(ZeroOrMore(Group( tagAttrName + Suppress("=") + tagAttrValue ))) + \ + Optional("/",default=[False]).setResultsName("empty").setParseAction(lambda s,l,t:t[0]=='/') + Suppress(">") + else: + printablesLessRAbrack = "".join(c for c in printables if c not in ">") + tagAttrValue = quotedString.copy().setParseAction( removeQuotes ) | Word(printablesLessRAbrack) + openTag = Suppress("<") + tagStr("tag") + \ + Dict(ZeroOrMore(Group( tagAttrName.setParseAction(downcaseTokens) + \ + Optional( Suppress("=") + tagAttrValue ) ))) + \ + Optional("/",default=[False]).setResultsName("empty").setParseAction(lambda s,l,t:t[0]=='/') + Suppress(">") + closeTag = Combine(_L("</") + tagStr + ">") + + openTag = openTag.setResultsName("start"+"".join(resname.replace(":"," ").title().split())).setName("<%s>" % resname) + closeTag = closeTag.setResultsName("end"+"".join(resname.replace(":"," ").title().split())).setName("</%s>" % resname) + openTag.tag = resname + closeTag.tag = resname + return openTag, closeTag + +def makeHTMLTags(tagStr): + """ + Helper to construct opening and closing tag expressions for HTML, given a tag name. Matches + tags in either upper or lower case, attributes with namespaces and with quoted or unquoted values. + + Example:: + text = '<td>More info at the <a href="http://pyparsing.wikispaces.com">pyparsing</a> wiki page</td>' + # makeHTMLTags returns pyparsing expressions for the opening and closing tags as a 2-tuple + a,a_end = makeHTMLTags("A") + link_expr = a + SkipTo(a_end)("link_text") + a_end + + for link in link_expr.searchString(text): + # attributes in the <A> tag (like "href" shown here) are also accessible as named results + print(link.link_text, '->', link.href) + prints:: + pyparsing -> http://pyparsing.wikispaces.com + """ + return _makeTags( tagStr, False ) + +def makeXMLTags(tagStr): + """ + Helper to construct opening and closing tag expressions for XML, given a tag name. Matches + tags only in the given upper/lower case. + + Example: similar to L{makeHTMLTags} + """ + return _makeTags( tagStr, True ) + +def withAttribute(*args,**attrDict): + """ + Helper to create a validating parse action to be used with start tags created + with C{L{makeXMLTags}} or C{L{makeHTMLTags}}. Use C{withAttribute} to qualify a starting tag + with a required attribute value, to avoid false matches on common tags such as + C{<TD>} or C{<DIV>}. + + Call C{withAttribute} with a series of attribute names and values. Specify the list + of filter attributes names and values as: + - keyword arguments, as in C{(align="right")}, or + - as an explicit dict with C{**} operator, when an attribute name is also a Python + reserved word, as in C{**{"class":"Customer", "align":"right"}} + - a list of name-value tuples, as in ( ("ns1:class", "Customer"), ("ns2:align","right") ) + For attribute names with a namespace prefix, you must use the second form. Attribute + names are matched insensitive to upper/lower case. + + If just testing for C{class} (with or without a namespace), use C{L{withClass}}. + + To verify that the attribute exists, but without specifying a value, pass + C{withAttribute.ANY_VALUE} as the value. + + Example:: + html = ''' + <div> + Some text + <div type="grid">1 4 0 1 0</div> + <div type="graph">1,3 2,3 1,1</div> + <div>this has no type</div> + </div> + + ''' + div,div_end = makeHTMLTags("div") + + # only match div tag having a type attribute with value "grid" + div_grid = div().setParseAction(withAttribute(type="grid")) + grid_expr = div_grid + SkipTo(div | div_end)("body") + for grid_header in grid_expr.searchString(html): + print(grid_header.body) + + # construct a match with any div tag having a type attribute, regardless of the value + div_any_type = div().setParseAction(withAttribute(type=withAttribute.ANY_VALUE)) + div_expr = div_any_type + SkipTo(div | div_end)("body") + for div_header in div_expr.searchString(html): + print(div_header.body) + prints:: + 1 4 0 1 0 + + 1 4 0 1 0 + 1,3 2,3 1,1 + """ + if args: + attrs = args[:] + else: + attrs = attrDict.items() + attrs = [(k,v) for k,v in attrs] + def pa(s,l,tokens): + for attrName,attrValue in attrs: + if attrName not in tokens: + raise ParseException(s,l,"no matching attribute " + attrName) + if attrValue != withAttribute.ANY_VALUE and tokens[attrName] != attrValue: + raise ParseException(s,l,"attribute '%s' has value '%s', must be '%s'" % + (attrName, tokens[attrName], attrValue)) + return pa +withAttribute.ANY_VALUE = object() + +def withClass(classname, namespace=''): + """ + Simplified version of C{L{withAttribute}} when matching on a div class - made + difficult because C{class} is a reserved word in Python. + + Example:: + html = ''' + <div> + Some text + <div class="grid">1 4 0 1 0</div> + <div class="graph">1,3 2,3 1,1</div> + <div>this <div> has no class</div> + </div> + + ''' + div,div_end = makeHTMLTags("div") + div_grid = div().setParseAction(withClass("grid")) + + grid_expr = div_grid + SkipTo(div | div_end)("body") + for grid_header in grid_expr.searchString(html): + print(grid_header.body) + + div_any_type = div().setParseAction(withClass(withAttribute.ANY_VALUE)) + div_expr = div_any_type + SkipTo(div | div_end)("body") + for div_header in div_expr.searchString(html): + print(div_header.body) + prints:: + 1 4 0 1 0 + + 1 4 0 1 0 + 1,3 2,3 1,1 + """ + classattr = "%s:class" % namespace if namespace else "class" + return withAttribute(**{classattr : classname}) + +opAssoc = _Constants() +opAssoc.LEFT = object() +opAssoc.RIGHT = object() + +def infixNotation( baseExpr, opList, lpar=Suppress('('), rpar=Suppress(')') ): + """ + Helper method for constructing grammars of expressions made up of + operators working in a precedence hierarchy. Operators may be unary or + binary, left- or right-associative. Parse actions can also be attached + to operator expressions. The generated parser will also recognize the use + of parentheses to override operator precedences (see example below). + + Note: if you define a deep operator list, you may see performance issues + when using infixNotation. See L{ParserElement.enablePackrat} for a + mechanism to potentially improve your parser performance. + + Parameters: + - baseExpr - expression representing the most basic element for the nested + - opList - list of tuples, one for each operator precedence level in the + expression grammar; each tuple is of the form + (opExpr, numTerms, rightLeftAssoc, parseAction), where: + - opExpr is the pyparsing expression for the operator; + may also be a string, which will be converted to a Literal; + if numTerms is 3, opExpr is a tuple of two expressions, for the + two operators separating the 3 terms + - numTerms is the number of terms for this operator (must + be 1, 2, or 3) + - rightLeftAssoc is the indicator whether the operator is + right or left associative, using the pyparsing-defined + constants C{opAssoc.RIGHT} and C{opAssoc.LEFT}. + - parseAction is the parse action to be associated with + expressions matching this operator expression (the + parse action tuple member may be omitted); if the parse action + is passed a tuple or list of functions, this is equivalent to + calling C{setParseAction(*fn)} (L{ParserElement.setParseAction}) + - lpar - expression for matching left-parentheses (default=C{Suppress('(')}) + - rpar - expression for matching right-parentheses (default=C{Suppress(')')}) + + Example:: + # simple example of four-function arithmetic with ints and variable names + integer = pyparsing_common.signed_integer + varname = pyparsing_common.identifier + + arith_expr = infixNotation(integer | varname, + [ + ('-', 1, opAssoc.RIGHT), + (oneOf('* /'), 2, opAssoc.LEFT), + (oneOf('+ -'), 2, opAssoc.LEFT), + ]) + + arith_expr.runTests(''' + 5+3*6 + (5+3)*6 + -2--11 + ''', fullDump=False) + prints:: + 5+3*6 + [[5, '+', [3, '*', 6]]] + + (5+3)*6 + [[[5, '+', 3], '*', 6]] + + -2--11 + [[['-', 2], '-', ['-', 11]]] + """ + ret = Forward() + lastExpr = baseExpr | ( lpar + ret + rpar ) + for i,operDef in enumerate(opList): + opExpr,arity,rightLeftAssoc,pa = (operDef + (None,))[:4] + termName = "%s term" % opExpr if arity < 3 else "%s%s term" % opExpr + if arity == 3: + if opExpr is None or len(opExpr) != 2: + raise ValueError("if numterms=3, opExpr must be a tuple or list of two expressions") + opExpr1, opExpr2 = opExpr + thisExpr = Forward().setName(termName) + if rightLeftAssoc == opAssoc.LEFT: + if arity == 1: + matchExpr = FollowedBy(lastExpr + opExpr) + Group( lastExpr + OneOrMore( opExpr ) ) + elif arity == 2: + if opExpr is not None: + matchExpr = FollowedBy(lastExpr + opExpr + lastExpr) + Group( lastExpr + OneOrMore( opExpr + lastExpr ) ) + else: + matchExpr = FollowedBy(lastExpr+lastExpr) + Group( lastExpr + OneOrMore(lastExpr) ) + elif arity == 3: + matchExpr = FollowedBy(lastExpr + opExpr1 + lastExpr + opExpr2 + lastExpr) + \ + Group( lastExpr + opExpr1 + lastExpr + opExpr2 + lastExpr ) + else: + raise ValueError("operator must be unary (1), binary (2), or ternary (3)") + elif rightLeftAssoc == opAssoc.RIGHT: + if arity == 1: + # try to avoid LR with this extra test + if not isinstance(opExpr, Optional): + opExpr = Optional(opExpr) + matchExpr = FollowedBy(opExpr.expr + thisExpr) + Group( opExpr + thisExpr ) + elif arity == 2: + if opExpr is not None: + matchExpr = FollowedBy(lastExpr + opExpr + thisExpr) + Group( lastExpr + OneOrMore( opExpr + thisExpr ) ) + else: + matchExpr = FollowedBy(lastExpr + thisExpr) + Group( lastExpr + OneOrMore( thisExpr ) ) + elif arity == 3: + matchExpr = FollowedBy(lastExpr + opExpr1 + thisExpr + opExpr2 + thisExpr) + \ + Group( lastExpr + opExpr1 + thisExpr + opExpr2 + thisExpr ) + else: + raise ValueError("operator must be unary (1), binary (2), or ternary (3)") + else: + raise ValueError("operator must indicate right or left associativity") + if pa: + if isinstance(pa, (tuple, list)): + matchExpr.setParseAction(*pa) + else: + matchExpr.setParseAction(pa) + thisExpr <<= ( matchExpr.setName(termName) | lastExpr ) + lastExpr = thisExpr + ret <<= lastExpr + return ret + +operatorPrecedence = infixNotation +"""(Deprecated) Former name of C{L{infixNotation}}, will be dropped in a future release.""" + +dblQuotedString = Combine(Regex(r'"(?:[^"\n\r\\]|(?:"")|(?:\\(?:[^x]|x[0-9a-fA-F]+)))*')+'"').setName("string enclosed in double quotes") +sglQuotedString = Combine(Regex(r"'(?:[^'\n\r\\]|(?:'')|(?:\\(?:[^x]|x[0-9a-fA-F]+)))*")+"'").setName("string enclosed in single quotes") +quotedString = Combine(Regex(r'"(?:[^"\n\r\\]|(?:"")|(?:\\(?:[^x]|x[0-9a-fA-F]+)))*')+'"'| + Regex(r"'(?:[^'\n\r\\]|(?:'')|(?:\\(?:[^x]|x[0-9a-fA-F]+)))*")+"'").setName("quotedString using single or double quotes") +unicodeString = Combine(_L('u') + quotedString.copy()).setName("unicode string literal") + +def nestedExpr(opener="(", closer=")", content=None, ignoreExpr=quotedString.copy()): + """ + Helper method for defining nested lists enclosed in opening and closing + delimiters ("(" and ")" are the default). + + Parameters: + - opener - opening character for a nested list (default=C{"("}); can also be a pyparsing expression + - closer - closing character for a nested list (default=C{")"}); can also be a pyparsing expression + - content - expression for items within the nested lists (default=C{None}) + - ignoreExpr - expression for ignoring opening and closing delimiters (default=C{quotedString}) + + If an expression is not provided for the content argument, the nested + expression will capture all whitespace-delimited content between delimiters + as a list of separate values. + + Use the C{ignoreExpr} argument to define expressions that may contain + opening or closing characters that should not be treated as opening + or closing characters for nesting, such as quotedString or a comment + expression. Specify multiple expressions using an C{L{Or}} or C{L{MatchFirst}}. + The default is L{quotedString}, but if no expressions are to be ignored, + then pass C{None} for this argument. + + Example:: + data_type = oneOf("void int short long char float double") + decl_data_type = Combine(data_type + Optional(Word('*'))) + ident = Word(alphas+'_', alphanums+'_') + number = pyparsing_common.number + arg = Group(decl_data_type + ident) + LPAR,RPAR = map(Suppress, "()") + + code_body = nestedExpr('{', '}', ignoreExpr=(quotedString | cStyleComment)) + + c_function = (decl_data_type("type") + + ident("name") + + LPAR + Optional(delimitedList(arg), [])("args") + RPAR + + code_body("body")) + c_function.ignore(cStyleComment) + + source_code = ''' + int is_odd(int x) { + return (x%2); + } + + int dec_to_hex(char hchar) { + if (hchar >= '0' && hchar <= '9') { + return (ord(hchar)-ord('0')); + } else { + return (10+ord(hchar)-ord('A')); + } + } + ''' + for func in c_function.searchString(source_code): + print("%(name)s (%(type)s) args: %(args)s" % func) + + prints:: + is_odd (int) args: [['int', 'x']] + dec_to_hex (int) args: [['char', 'hchar']] + """ + if opener == closer: + raise ValueError("opening and closing strings cannot be the same") + if content is None: + if isinstance(opener,basestring) and isinstance(closer,basestring): + if len(opener) == 1 and len(closer)==1: + if ignoreExpr is not None: + content = (Combine(OneOrMore(~ignoreExpr + + CharsNotIn(opener+closer+ParserElement.DEFAULT_WHITE_CHARS,exact=1)) + ).setParseAction(lambda t:t[0].strip())) + else: + content = (empty.copy()+CharsNotIn(opener+closer+ParserElement.DEFAULT_WHITE_CHARS + ).setParseAction(lambda t:t[0].strip())) + else: + if ignoreExpr is not None: + content = (Combine(OneOrMore(~ignoreExpr + + ~Literal(opener) + ~Literal(closer) + + CharsNotIn(ParserElement.DEFAULT_WHITE_CHARS,exact=1)) + ).setParseAction(lambda t:t[0].strip())) + else: + content = (Combine(OneOrMore(~Literal(opener) + ~Literal(closer) + + CharsNotIn(ParserElement.DEFAULT_WHITE_CHARS,exact=1)) + ).setParseAction(lambda t:t[0].strip())) + else: + raise ValueError("opening and closing arguments must be strings if no content expression is given") + ret = Forward() + if ignoreExpr is not None: + ret <<= Group( Suppress(opener) + ZeroOrMore( ignoreExpr | ret | content ) + Suppress(closer) ) + else: + ret <<= Group( Suppress(opener) + ZeroOrMore( ret | content ) + Suppress(closer) ) + ret.setName('nested %s%s expression' % (opener,closer)) + return ret + +def indentedBlock(blockStatementExpr, indentStack, indent=True): + """ + Helper method for defining space-delimited indentation blocks, such as + those used to define block statements in Python source code. + + Parameters: + - blockStatementExpr - expression defining syntax of statement that + is repeated within the indented block + - indentStack - list created by caller to manage indentation stack + (multiple statementWithIndentedBlock expressions within a single grammar + should share a common indentStack) + - indent - boolean indicating whether block must be indented beyond the + the current level; set to False for block of left-most statements + (default=C{True}) + + A valid block must contain at least one C{blockStatement}. + + Example:: + data = ''' + def A(z): + A1 + B = 100 + G = A2 + A2 + A3 + B + def BB(a,b,c): + BB1 + def BBA(): + bba1 + bba2 + bba3 + C + D + def spam(x,y): + def eggs(z): + pass + ''' + + + indentStack = [1] + stmt = Forward() + + identifier = Word(alphas, alphanums) + funcDecl = ("def" + identifier + Group( "(" + Optional( delimitedList(identifier) ) + ")" ) + ":") + func_body = indentedBlock(stmt, indentStack) + funcDef = Group( funcDecl + func_body ) + + rvalue = Forward() + funcCall = Group(identifier + "(" + Optional(delimitedList(rvalue)) + ")") + rvalue << (funcCall | identifier | Word(nums)) + assignment = Group(identifier + "=" + rvalue) + stmt << ( funcDef | assignment | identifier ) + + module_body = OneOrMore(stmt) + + parseTree = module_body.parseString(data) + parseTree.pprint() + prints:: + [['def', + 'A', + ['(', 'z', ')'], + ':', + [['A1'], [['B', '=', '100']], [['G', '=', 'A2']], ['A2'], ['A3']]], + 'B', + ['def', + 'BB', + ['(', 'a', 'b', 'c', ')'], + ':', + [['BB1'], [['def', 'BBA', ['(', ')'], ':', [['bba1'], ['bba2'], ['bba3']]]]]], + 'C', + 'D', + ['def', + 'spam', + ['(', 'x', 'y', ')'], + ':', + [[['def', 'eggs', ['(', 'z', ')'], ':', [['pass']]]]]]] + """ + def checkPeerIndent(s,l,t): + if l >= len(s): return + curCol = col(l,s) + if curCol != indentStack[-1]: + if curCol > indentStack[-1]: + raise ParseFatalException(s,l,"illegal nesting") + raise ParseException(s,l,"not a peer entry") + + def checkSubIndent(s,l,t): + curCol = col(l,s) + if curCol > indentStack[-1]: + indentStack.append( curCol ) + else: + raise ParseException(s,l,"not a subentry") + + def checkUnindent(s,l,t): + if l >= len(s): return + curCol = col(l,s) + if not(indentStack and curCol < indentStack[-1] and curCol <= indentStack[-2]): + raise ParseException(s,l,"not an unindent") + indentStack.pop() + + NL = OneOrMore(LineEnd().setWhitespaceChars("\t ").suppress()) + INDENT = (Empty() + Empty().setParseAction(checkSubIndent)).setName('INDENT') + PEER = Empty().setParseAction(checkPeerIndent).setName('') + UNDENT = Empty().setParseAction(checkUnindent).setName('UNINDENT') + if indent: + smExpr = Group( Optional(NL) + + #~ FollowedBy(blockStatementExpr) + + INDENT + (OneOrMore( PEER + Group(blockStatementExpr) + Optional(NL) )) + UNDENT) + else: + smExpr = Group( Optional(NL) + + (OneOrMore( PEER + Group(blockStatementExpr) + Optional(NL) )) ) + blockStatementExpr.ignore(_bslash + LineEnd()) + return smExpr.setName('indented block') + +alphas8bit = srange(r"[\0xc0-\0xd6\0xd8-\0xf6\0xf8-\0xff]") +punc8bit = srange(r"[\0xa1-\0xbf\0xd7\0xf7]") + +anyOpenTag,anyCloseTag = makeHTMLTags(Word(alphas,alphanums+"_:").setName('any tag')) +_htmlEntityMap = dict(zip("gt lt amp nbsp quot apos".split(),'><& "\'')) +commonHTMLEntity = Regex('&(?P<entity>' + '|'.join(_htmlEntityMap.keys()) +");").setName("common HTML entity") +def replaceHTMLEntity(t): + """Helper parser action to replace common HTML entities with their special characters""" + return _htmlEntityMap.get(t.entity) + +# it's easy to get these comment structures wrong - they're very common, so may as well make them available +cStyleComment = Combine(Regex(r"/\*(?:[^*]|\*(?!/))*") + '*/').setName("C style comment") +"Comment of the form C{/* ... */}" + +htmlComment = Regex(r"<!--[\s\S]*?-->").setName("HTML comment") +"Comment of the form C{<!-- ... -->}" + +restOfLine = Regex(r".*").leaveWhitespace().setName("rest of line") +dblSlashComment = Regex(r"//(?:\\\n|[^\n])*").setName("// comment") +"Comment of the form C{// ... (to end of line)}" + +cppStyleComment = Combine(Regex(r"/\*(?:[^*]|\*(?!/))*") + '*/'| dblSlashComment).setName("C++ style comment") +"Comment of either form C{L{cStyleComment}} or C{L{dblSlashComment}}" + +javaStyleComment = cppStyleComment +"Same as C{L{cppStyleComment}}" + +pythonStyleComment = Regex(r"#.*").setName("Python style comment") +"Comment of the form C{# ... (to end of line)}" + +_commasepitem = Combine(OneOrMore(Word(printables, excludeChars=',') + + Optional( Word(" \t") + + ~Literal(",") + ~LineEnd() ) ) ).streamline().setName("commaItem") +commaSeparatedList = delimitedList( Optional( quotedString.copy() | _commasepitem, default="") ).setName("commaSeparatedList") +"""(Deprecated) Predefined expression of 1 or more printable words or quoted strings, separated by commas. + This expression is deprecated in favor of L{pyparsing_common.comma_separated_list}.""" + +# some other useful expressions - using lower-case class name since we are really using this as a namespace +class pyparsing_common: + """ + Here are some common low-level expressions that may be useful in jump-starting parser development: + - numeric forms (L{integers<integer>}, L{reals<real>}, L{scientific notation<sci_real>}) + - common L{programming identifiers<identifier>} + - network addresses (L{MAC<mac_address>}, L{IPv4<ipv4_address>}, L{IPv6<ipv6_address>}) + - ISO8601 L{dates<iso8601_date>} and L{datetime<iso8601_datetime>} + - L{UUID<uuid>} + - L{comma-separated list<comma_separated_list>} + Parse actions: + - C{L{convertToInteger}} + - C{L{convertToFloat}} + - C{L{convertToDate}} + - C{L{convertToDatetime}} + - C{L{stripHTMLTags}} + - C{L{upcaseTokens}} + - C{L{downcaseTokens}} + + Example:: + pyparsing_common.number.runTests(''' + # any int or real number, returned as the appropriate type + 100 + -100 + +100 + 3.14159 + 6.02e23 + 1e-12 + ''') + + pyparsing_common.fnumber.runTests(''' + # any int or real number, returned as float + 100 + -100 + +100 + 3.14159 + 6.02e23 + 1e-12 + ''') + + pyparsing_common.hex_integer.runTests(''' + # hex numbers + 100 + FF + ''') + + pyparsing_common.fraction.runTests(''' + # fractions + 1/2 + -3/4 + ''') + + pyparsing_common.mixed_integer.runTests(''' + # mixed fractions + 1 + 1/2 + -3/4 + 1-3/4 + ''') + + import uuid + pyparsing_common.uuid.setParseAction(tokenMap(uuid.UUID)) + pyparsing_common.uuid.runTests(''' + # uuid + 12345678-1234-5678-1234-567812345678 + ''') + prints:: + # any int or real number, returned as the appropriate type + 100 + [100] + + -100 + [-100] + + +100 + [100] + + 3.14159 + [3.14159] + + 6.02e23 + [6.02e+23] + + 1e-12 + [1e-12] + + # any int or real number, returned as float + 100 + [100.0] + + -100 + [-100.0] + + +100 + [100.0] + + 3.14159 + [3.14159] + + 6.02e23 + [6.02e+23] + + 1e-12 + [1e-12] + + # hex numbers + 100 + [256] + + FF + [255] + + # fractions + 1/2 + [0.5] + + -3/4 + [-0.75] + + # mixed fractions + 1 + [1] + + 1/2 + [0.5] + + -3/4 + [-0.75] + + 1-3/4 + [1.75] + + # uuid + 12345678-1234-5678-1234-567812345678 + [UUID('12345678-1234-5678-1234-567812345678')] + """ + + convertToInteger = tokenMap(int) + """ + Parse action for converting parsed integers to Python int + """ + + convertToFloat = tokenMap(float) + """ + Parse action for converting parsed numbers to Python float + """ + + integer = Word(nums).setName("integer").setParseAction(convertToInteger) + """expression that parses an unsigned integer, returns an int""" + + hex_integer = Word(hexnums).setName("hex integer").setParseAction(tokenMap(int,16)) + """expression that parses a hexadecimal integer, returns an int""" + + signed_integer = Regex(r'[+-]?\d+').setName("signed integer").setParseAction(convertToInteger) + """expression that parses an integer with optional leading sign, returns an int""" + + fraction = (signed_integer().setParseAction(convertToFloat) + '/' + signed_integer().setParseAction(convertToFloat)).setName("fraction") + """fractional expression of an integer divided by an integer, returns a float""" + fraction.addParseAction(lambda t: t[0]/t[-1]) + + mixed_integer = (fraction | signed_integer + Optional(Optional('-').suppress() + fraction)).setName("fraction or mixed integer-fraction") + """mixed integer of the form 'integer - fraction', with optional leading integer, returns float""" + mixed_integer.addParseAction(sum) + + real = Regex(r'[+-]?\d+\.\d*').setName("real number").setParseAction(convertToFloat) + """expression that parses a floating point number and returns a float""" + + sci_real = Regex(r'[+-]?\d+([eE][+-]?\d+|\.\d*([eE][+-]?\d+)?)').setName("real number with scientific notation").setParseAction(convertToFloat) + """expression that parses a floating point number with optional scientific notation and returns a float""" + + # streamlining this expression makes the docs nicer-looking + number = (sci_real | real | signed_integer).streamline() + """any numeric expression, returns the corresponding Python type""" + + fnumber = Regex(r'[+-]?\d+\.?\d*([eE][+-]?\d+)?').setName("fnumber").setParseAction(convertToFloat) + """any int or real number, returned as float""" + + identifier = Word(alphas+'_', alphanums+'_').setName("identifier") + """typical code identifier (leading alpha or '_', followed by 0 or more alphas, nums, or '_')""" + + ipv4_address = Regex(r'(25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})(\.(25[0-5]|2[0-4][0-9]|1?[0-9]{1,2})){3}').setName("IPv4 address") + "IPv4 address (C{0.0.0.0 - 255.255.255.255})" + + _ipv6_part = Regex(r'[0-9a-fA-F]{1,4}').setName("hex_integer") + _full_ipv6_address = (_ipv6_part + (':' + _ipv6_part)*7).setName("full IPv6 address") + _short_ipv6_address = (Optional(_ipv6_part + (':' + _ipv6_part)*(0,6)) + "::" + Optional(_ipv6_part + (':' + _ipv6_part)*(0,6))).setName("short IPv6 address") + _short_ipv6_address.addCondition(lambda t: sum(1 for tt in t if pyparsing_common._ipv6_part.matches(tt)) < 8) + _mixed_ipv6_address = ("::ffff:" + ipv4_address).setName("mixed IPv6 address") + ipv6_address = Combine((_full_ipv6_address | _mixed_ipv6_address | _short_ipv6_address).setName("IPv6 address")).setName("IPv6 address") + "IPv6 address (long, short, or mixed form)" + + mac_address = Regex(r'[0-9a-fA-F]{2}([:.-])[0-9a-fA-F]{2}(?:\1[0-9a-fA-F]{2}){4}').setName("MAC address") + "MAC address xx:xx:xx:xx:xx (may also have '-' or '.' delimiters)" + + @staticmethod + def convertToDate(fmt="%Y-%m-%d"): + """ + Helper to create a parse action for converting parsed date string to Python datetime.date + + Params - + - fmt - format to be passed to datetime.strptime (default=C{"%Y-%m-%d"}) + + Example:: + date_expr = pyparsing_common.iso8601_date.copy() + date_expr.setParseAction(pyparsing_common.convertToDate()) + print(date_expr.parseString("1999-12-31")) + prints:: + [datetime.date(1999, 12, 31)] + """ + def cvt_fn(s,l,t): + try: + return datetime.strptime(t[0], fmt).date() + except ValueError as ve: + raise ParseException(s, l, str(ve)) + return cvt_fn + + @staticmethod + def convertToDatetime(fmt="%Y-%m-%dT%H:%M:%S.%f"): + """ + Helper to create a parse action for converting parsed datetime string to Python datetime.datetime + + Params - + - fmt - format to be passed to datetime.strptime (default=C{"%Y-%m-%dT%H:%M:%S.%f"}) + + Example:: + dt_expr = pyparsing_common.iso8601_datetime.copy() + dt_expr.setParseAction(pyparsing_common.convertToDatetime()) + print(dt_expr.parseString("1999-12-31T23:59:59.999")) + prints:: + [datetime.datetime(1999, 12, 31, 23, 59, 59, 999000)] + """ + def cvt_fn(s,l,t): + try: + return datetime.strptime(t[0], fmt) + except ValueError as ve: + raise ParseException(s, l, str(ve)) + return cvt_fn + + iso8601_date = Regex(r'(?P<year>\d{4})(?:-(?P<month>\d\d)(?:-(?P<day>\d\d))?)?').setName("ISO8601 date") + "ISO8601 date (C{yyyy-mm-dd})" + + iso8601_datetime = Regex(r'(?P<year>\d{4})-(?P<month>\d\d)-(?P<day>\d\d)[T ](?P<hour>\d\d):(?P<minute>\d\d)(:(?P<second>\d\d(\.\d*)?)?)?(?P<tz>Z|[+-]\d\d:?\d\d)?').setName("ISO8601 datetime") + "ISO8601 datetime (C{yyyy-mm-ddThh:mm:ss.s(Z|+-00:00)}) - trailing seconds, milliseconds, and timezone optional; accepts separating C{'T'} or C{' '}" + + uuid = Regex(r'[0-9a-fA-F]{8}(-[0-9a-fA-F]{4}){3}-[0-9a-fA-F]{12}').setName("UUID") + "UUID (C{xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx})" + + _html_stripper = anyOpenTag.suppress() | anyCloseTag.suppress() + @staticmethod + def stripHTMLTags(s, l, tokens): + """ + Parse action to remove HTML tags from web page HTML source + + Example:: + # strip HTML links from normal text + text = '<td>More info at the <a href="http://pyparsing.wikispaces.com">pyparsing</a> wiki page</td>' + td,td_end = makeHTMLTags("TD") + table_text = td + SkipTo(td_end).setParseAction(pyparsing_common.stripHTMLTags)("body") + td_end + + print(table_text.parseString(text).body) # -> 'More info at the pyparsing wiki page' + """ + return pyparsing_common._html_stripper.transformString(tokens[0]) + + _commasepitem = Combine(OneOrMore(~Literal(",") + ~LineEnd() + Word(printables, excludeChars=',') + + Optional( White(" \t") ) ) ).streamline().setName("commaItem") + comma_separated_list = delimitedList( Optional( quotedString.copy() | _commasepitem, default="") ).setName("comma separated list") + """Predefined expression of 1 or more printable words or quoted strings, separated by commas.""" + + upcaseTokens = staticmethod(tokenMap(lambda t: _ustr(t).upper())) + """Parse action to convert tokens to upper case.""" + + downcaseTokens = staticmethod(tokenMap(lambda t: _ustr(t).lower())) + """Parse action to convert tokens to lower case.""" + + +if __name__ == "__main__": + + selectToken = CaselessLiteral("select") + fromToken = CaselessLiteral("from") + + ident = Word(alphas, alphanums + "_$") + + columnName = delimitedList(ident, ".", combine=True).setParseAction(upcaseTokens) + columnNameList = Group(delimitedList(columnName)).setName("columns") + columnSpec = ('*' | columnNameList) + + tableName = delimitedList(ident, ".", combine=True).setParseAction(upcaseTokens) + tableNameList = Group(delimitedList(tableName)).setName("tables") + + simpleSQL = selectToken("command") + columnSpec("columns") + fromToken + tableNameList("tables") + + # demo runTests method, including embedded comments in test string + simpleSQL.runTests(""" + # '*' as column list and dotted table name + select * from SYS.XYZZY + + # caseless match on "SELECT", and casts back to "select" + SELECT * from XYZZY, ABC + + # list of column names, and mixed case SELECT keyword + Select AA,BB,CC from Sys.dual + + # multiple tables + Select A, B, C from Sys.dual, Table2 + + # invalid SELECT keyword - should fail + Xelect A, B, C from Sys.dual + + # incomplete command - should fail + Select + + # invalid column name - should fail + Select ^^^ frox Sys.dual + + """) + + pyparsing_common.number.runTests(""" + 100 + -100 + +100 + 3.14159 + 6.02e23 + 1e-12 + """) + + # any int or real number, returned as float + pyparsing_common.fnumber.runTests(""" + 100 + -100 + +100 + 3.14159 + 6.02e23 + 1e-12 + """) + + pyparsing_common.hex_integer.runTests(""" + 100 + FF + """) + + import uuid + pyparsing_common.uuid.setParseAction(tokenMap(uuid.UUID)) + pyparsing_common.uuid.runTests(""" + 12345678-1234-5678-1234-567812345678 + """) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pytoml/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pytoml/__init__.py new file mode 100644 index 00000000..8dc73155 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pytoml/__init__.py @@ -0,0 +1,3 @@ +from .core import TomlError +from .parser import load, loads +from .writer import dump, dumps diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pytoml/core.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pytoml/core.py new file mode 100644 index 00000000..c182734e --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pytoml/core.py @@ -0,0 +1,13 @@ +class TomlError(RuntimeError): + def __init__(self, message, line, col, filename): + RuntimeError.__init__(self, message, line, col, filename) + self.message = message + self.line = line + self.col = col + self.filename = filename + + def __str__(self): + return '{}({}, {}): {}'.format(self.filename, self.line, self.col, self.message) + + def __repr__(self): + return 'TomlError({!r}, {!r}, {!r}, {!r})'.format(self.message, self.line, self.col, self.filename) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pytoml/parser.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pytoml/parser.py new file mode 100644 index 00000000..7fc3d34d --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pytoml/parser.py @@ -0,0 +1,374 @@ +import string, re, sys, datetime +from .core import TomlError + +if sys.version_info[0] == 2: + _chr = unichr +else: + _chr = chr + +def load(fin, translate=lambda t, x, v: v): + return loads(fin.read(), translate=translate, filename=getattr(fin, 'name', repr(fin))) + +def loads(s, filename='<string>', translate=lambda t, x, v: v): + if isinstance(s, bytes): + s = s.decode('utf-8') + + s = s.replace('\r\n', '\n') + + root = {} + tables = {} + scope = root + + src = _Source(s, filename=filename) + ast = _p_toml(src) + + def error(msg): + raise TomlError(msg, pos[0], pos[1], filename) + + def process_value(v): + kind, text, value, pos = v + if kind == 'str' and value.startswith('\n'): + value = value[1:] + if kind == 'array': + if value and any(k != value[0][0] for k, t, v, p in value[1:]): + error('array-type-mismatch') + value = [process_value(item) for item in value] + elif kind == 'table': + value = dict([(k, process_value(value[k])) for k in value]) + return translate(kind, text, value) + + for kind, value, pos in ast: + if kind == 'kv': + k, v = value + if k in scope: + error('duplicate_keys. Key "{0}" was used more than once.'.format(k)) + scope[k] = process_value(v) + else: + is_table_array = (kind == 'table_array') + cur = tables + for name in value[:-1]: + if isinstance(cur.get(name), list): + d, cur = cur[name][-1] + else: + d, cur = cur.setdefault(name, (None, {})) + + scope = {} + name = value[-1] + if name not in cur: + if is_table_array: + cur[name] = [(scope, {})] + else: + cur[name] = (scope, {}) + elif isinstance(cur[name], list): + if not is_table_array: + error('table_type_mismatch') + cur[name].append((scope, {})) + else: + if is_table_array: + error('table_type_mismatch') + old_scope, next_table = cur[name] + if old_scope is not None: + error('duplicate_tables') + cur[name] = (scope, next_table) + + def merge_tables(scope, tables): + if scope is None: + scope = {} + for k in tables: + if k in scope: + error('key_table_conflict') + v = tables[k] + if isinstance(v, list): + scope[k] = [merge_tables(sc, tbl) for sc, tbl in v] + else: + scope[k] = merge_tables(v[0], v[1]) + return scope + + return merge_tables(root, tables) + +class _Source: + def __init__(self, s, filename=None): + self.s = s + self._pos = (1, 1) + self._last = None + self._filename = filename + self.backtrack_stack = [] + + def last(self): + return self._last + + def pos(self): + return self._pos + + def fail(self): + return self._expect(None) + + def consume_dot(self): + if self.s: + self._last = self.s[0] + self.s = self[1:] + self._advance(self._last) + return self._last + return None + + def expect_dot(self): + return self._expect(self.consume_dot()) + + def consume_eof(self): + if not self.s: + self._last = '' + return True + return False + + def expect_eof(self): + return self._expect(self.consume_eof()) + + def consume(self, s): + if self.s.startswith(s): + self.s = self.s[len(s):] + self._last = s + self._advance(s) + return True + return False + + def expect(self, s): + return self._expect(self.consume(s)) + + def consume_re(self, re): + m = re.match(self.s) + if m: + self.s = self.s[len(m.group(0)):] + self._last = m + self._advance(m.group(0)) + return m + return None + + def expect_re(self, re): + return self._expect(self.consume_re(re)) + + def __enter__(self): + self.backtrack_stack.append((self.s, self._pos)) + + def __exit__(self, type, value, traceback): + if type is None: + self.backtrack_stack.pop() + else: + self.s, self._pos = self.backtrack_stack.pop() + return type == TomlError + + def commit(self): + self.backtrack_stack[-1] = (self.s, self._pos) + + def _expect(self, r): + if not r: + raise TomlError('msg', self._pos[0], self._pos[1], self._filename) + return r + + def _advance(self, s): + suffix_pos = s.rfind('\n') + if suffix_pos == -1: + self._pos = (self._pos[0], self._pos[1] + len(s)) + else: + self._pos = (self._pos[0] + s.count('\n'), len(s) - suffix_pos) + +_ews_re = re.compile(r'(?:[ \t]|#[^\n]*\n|#[^\n]*\Z|\n)*') +def _p_ews(s): + s.expect_re(_ews_re) + +_ws_re = re.compile(r'[ \t]*') +def _p_ws(s): + s.expect_re(_ws_re) + +_escapes = { 'b': '\b', 'n': '\n', 'r': '\r', 't': '\t', '"': '"', '\'': '\'', + '\\': '\\', '/': '/', 'f': '\f' } + +_basicstr_re = re.compile(r'[^"\\\000-\037]*') +_short_uni_re = re.compile(r'u([0-9a-fA-F]{4})') +_long_uni_re = re.compile(r'U([0-9a-fA-F]{8})') +_escapes_re = re.compile('[bnrt"\'\\\\/f]') +_newline_esc_re = re.compile('\n[ \t\n]*') +def _p_basicstr_content(s, content=_basicstr_re): + res = [] + while True: + res.append(s.expect_re(content).group(0)) + if not s.consume('\\'): + break + if s.consume_re(_newline_esc_re): + pass + elif s.consume_re(_short_uni_re) or s.consume_re(_long_uni_re): + res.append(_chr(int(s.last().group(1), 16))) + else: + s.expect_re(_escapes_re) + res.append(_escapes[s.last().group(0)]) + return ''.join(res) + +_key_re = re.compile(r'[0-9a-zA-Z-_]+') +def _p_key(s): + with s: + s.expect('"') + r = _p_basicstr_content(s, _basicstr_re) + s.expect('"') + return r + if s.consume('\''): + if s.consume('\'\''): + r = s.expect_re(_litstr_ml_re).group(0) + s.expect('\'\'\'') + else: + r = s.expect_re(_litstr_re).group(0) + s.expect('\'') + return r + return s.expect_re(_key_re).group(0) + +_float_re = re.compile(r'[+-]?(?:0|[1-9](?:_?\d)*)(?:\.\d(?:_?\d)*)?(?:[eE][+-]?(?:\d(?:_?\d)*))?') +_datetime_re = re.compile(r'(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(\.\d+)?(?:Z|([+-]\d{2}):(\d{2}))') + +_basicstr_ml_re = re.compile(r'(?:(?:|"|"")[^"\\\000-\011\013-\037])*') +_litstr_re = re.compile(r"[^'\000-\037]*") +_litstr_ml_re = re.compile(r"(?:(?:|'|'')(?:[^'\000-\011\013-\037]))*") +def _p_value(s): + pos = s.pos() + + if s.consume('true'): + return 'bool', s.last(), True, pos + if s.consume('false'): + return 'bool', s.last(), False, pos + + if s.consume('"'): + if s.consume('""'): + r = _p_basicstr_content(s, _basicstr_ml_re) + s.expect('"""') + else: + r = _p_basicstr_content(s, _basicstr_re) + s.expect('"') + return 'str', r, r, pos + + if s.consume('\''): + if s.consume('\'\''): + r = s.expect_re(_litstr_ml_re).group(0) + s.expect('\'\'\'') + else: + r = s.expect_re(_litstr_re).group(0) + s.expect('\'') + return 'str', r, r, pos + + if s.consume_re(_datetime_re): + m = s.last() + s0 = m.group(0) + r = map(int, m.groups()[:6]) + if m.group(7): + micro = float(m.group(7)) + else: + micro = 0 + + if m.group(8): + g = int(m.group(8), 10) * 60 + int(m.group(9), 10) + tz = _TimeZone(datetime.timedelta(0, g * 60)) + else: + tz = _TimeZone(datetime.timedelta(0, 0)) + + y, m, d, H, M, S = r + dt = datetime.datetime(y, m, d, H, M, S, int(micro * 1000000), tz) + return 'datetime', s0, dt, pos + + if s.consume_re(_float_re): + m = s.last().group(0) + r = m.replace('_','') + if '.' in m or 'e' in m or 'E' in m: + return 'float', m, float(r), pos + else: + return 'int', m, int(r, 10), pos + + if s.consume('['): + items = [] + with s: + while True: + _p_ews(s) + items.append(_p_value(s)) + s.commit() + _p_ews(s) + s.expect(',') + s.commit() + _p_ews(s) + s.expect(']') + return 'array', None, items, pos + + if s.consume('{'): + _p_ws(s) + items = {} + if not s.consume('}'): + k = _p_key(s) + _p_ws(s) + s.expect('=') + _p_ws(s) + items[k] = _p_value(s) + _p_ws(s) + while s.consume(','): + _p_ws(s) + k = _p_key(s) + _p_ws(s) + s.expect('=') + _p_ws(s) + items[k] = _p_value(s) + _p_ws(s) + s.expect('}') + return 'table', None, items, pos + + s.fail() + +def _p_stmt(s): + pos = s.pos() + if s.consume( '['): + is_array = s.consume('[') + _p_ws(s) + keys = [_p_key(s)] + _p_ws(s) + while s.consume('.'): + _p_ws(s) + keys.append(_p_key(s)) + _p_ws(s) + s.expect(']') + if is_array: + s.expect(']') + return 'table_array' if is_array else 'table', keys, pos + + key = _p_key(s) + _p_ws(s) + s.expect('=') + _p_ws(s) + value = _p_value(s) + return 'kv', (key, value), pos + +_stmtsep_re = re.compile(r'(?:[ \t]*(?:#[^\n]*)?\n)+[ \t]*') +def _p_toml(s): + stmts = [] + _p_ews(s) + with s: + stmts.append(_p_stmt(s)) + while True: + s.commit() + s.expect_re(_stmtsep_re) + stmts.append(_p_stmt(s)) + _p_ews(s) + s.expect_eof() + return stmts + +class _TimeZone(datetime.tzinfo): + def __init__(self, offset): + self._offset = offset + + def utcoffset(self, dt): + return self._offset + + def dst(self, dt): + return None + + def tzname(self, dt): + m = self._offset.total_seconds() // 60 + if m < 0: + res = '-' + m = -m + else: + res = '+' + h = m // 60 + m = m - h * 60 + return '{}{:.02}{:.02}'.format(res, h, m) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pytoml/writer.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pytoml/writer.py new file mode 100644 index 00000000..6eaf5d76 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/pytoml/writer.py @@ -0,0 +1,127 @@ +from __future__ import unicode_literals +import io, datetime, math, sys + +if sys.version_info[0] == 3: + long = int + unicode = str + + +def dumps(obj, sort_keys=False): + fout = io.StringIO() + dump(obj, fout, sort_keys=sort_keys) + return fout.getvalue() + + +_escapes = {'\n': 'n', '\r': 'r', '\\': '\\', '\t': 't', '\b': 'b', '\f': 'f', '"': '"'} + + +def _escape_string(s): + res = [] + start = 0 + + def flush(): + if start != i: + res.append(s[start:i]) + return i + 1 + + i = 0 + while i < len(s): + c = s[i] + if c in '"\\\n\r\t\b\f': + start = flush() + res.append('\\' + _escapes[c]) + elif ord(c) < 0x20: + start = flush() + res.append('\\u%04x' % ord(c)) + i += 1 + + flush() + return '"' + ''.join(res) + '"' + + +def _escape_id(s): + if any(not c.isalnum() and c not in '-_' for c in s): + return _escape_string(s) + return s + + +def _format_list(v): + return '[{0}]'.format(', '.join(_format_value(obj) for obj in v)) + +# Formula from: +# https://docs.python.org/2/library/datetime.html#datetime.timedelta.total_seconds +# Once support for py26 is dropped, this can be replaced by td.total_seconds() +def _total_seconds(td): + return ((td.microseconds + + (td.seconds + td.days * 24 * 3600) * 10**6) / 10.0**6) + +def _format_value(v): + if isinstance(v, bool): + return 'true' if v else 'false' + if isinstance(v, int) or isinstance(v, long): + return unicode(v) + if isinstance(v, float): + if math.isnan(v) or math.isinf(v): + raise ValueError("{0} is not a valid TOML value".format(v)) + else: + return repr(v) + elif isinstance(v, unicode) or isinstance(v, bytes): + return _escape_string(v) + elif isinstance(v, datetime.datetime): + offs = v.utcoffset() + offs = _total_seconds(offs) // 60 if offs is not None else 0 + + if offs == 0: + suffix = 'Z' + else: + if offs > 0: + suffix = '+' + else: + suffix = '-' + offs = -offs + suffix = '{0}{1:.02}{2:.02}'.format(suffix, offs // 60, offs % 60) + + if v.microsecond: + return v.strftime('%Y-%m-%dT%H:%M:%S.%f') + suffix + else: + return v.strftime('%Y-%m-%dT%H:%M:%S') + suffix + elif isinstance(v, list): + return _format_list(v) + else: + raise RuntimeError(v) + + +def dump(obj, fout, sort_keys=False): + tables = [((), obj, False)] + + while tables: + name, table, is_array = tables.pop() + if name: + section_name = '.'.join(_escape_id(c) for c in name) + if is_array: + fout.write('[[{0}]]\n'.format(section_name)) + else: + fout.write('[{0}]\n'.format(section_name)) + + table_keys = sorted(table.keys()) if sort_keys else table.keys() + new_tables = [] + has_kv = False + for k in table_keys: + v = table[k] + if isinstance(v, dict): + new_tables.append((name + (k,), v, False)) + elif isinstance(v, list) and v and all(isinstance(o, dict) for o in v): + new_tables.extend((name + (k,), d, True) for d in v) + elif v is None: + # based on mojombo's comment: https://github.com/toml-lang/toml/issues/146#issuecomment-25019344 + fout.write( + '#{} = null # To use: uncomment and replace null with value\n'.format(_escape_id(k))) + has_kv = True + else: + fout.write('{0} = {1}\n'.format(_escape_id(k), _format_value(v))) + has_kv = True + + tables.extend(reversed(new_tables)) + + if (name or has_kv) and tables: + fout.write('\n') diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/__init__.py new file mode 100644 index 00000000..ccd361ad --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/__init__.py @@ -0,0 +1,123 @@ +# -*- coding: utf-8 -*- + +# __ +# /__) _ _ _ _ _/ _ +# / ( (- (/ (/ (- _) / _) +# / + +""" +Requests HTTP Library +~~~~~~~~~~~~~~~~~~~~~ + +Requests is an HTTP library, written in Python, for human beings. Basic GET +usage: + + >>> import requests + >>> r = requests.get('https://www.python.org') + >>> r.status_code + 200 + >>> 'Python is a programming language' in r.content + True + +... or POST: + + >>> payload = dict(key1='value1', key2='value2') + >>> r = requests.post('http://httpbin.org/post', data=payload) + >>> print(r.text) + { + ... + "form": { + "key2": "value2", + "key1": "value1" + }, + ... + } + +The other HTTP methods are supported - see `requests.api`. Full documentation +is at <http://python-requests.org>. + +:copyright: (c) 2017 by Kenneth Reitz. +:license: Apache 2.0, see LICENSE for more details. +""" + +from pip._vendor import urllib3 +from pip._vendor import chardet +import warnings +from .exceptions import RequestsDependencyWarning + + +def check_compatibility(urllib3_version, chardet_version): + urllib3_version = urllib3_version.split('.') + assert urllib3_version != ['dev'] # Verify urllib3 isn't installed from git. + + # Sometimes, urllib3 only reports its version as 16.1. + if len(urllib3_version) == 2: + urllib3_version.append('0') + + # Check urllib3 for compatibility. + major, minor, patch = urllib3_version # noqa: F811 + major, minor, patch = int(major), int(minor), int(patch) + # urllib3 >= 1.21.1, <= 1.22 + assert major == 1 + assert minor >= 21 + assert minor <= 22 + + # Check chardet for compatibility. + major, minor, patch = chardet_version.split('.')[:3] + major, minor, patch = int(major), int(minor), int(patch) + # chardet >= 3.0.2, < 3.1.0 + assert major == 3 + assert minor < 1 + assert patch >= 2 + + +# Check imported dependencies for compatibility. +try: + check_compatibility(urllib3.__version__, chardet.__version__) +except (AssertionError, ValueError): + warnings.warn("urllib3 ({0}) or chardet ({1}) doesn't match a supported " + "version!".format(urllib3.__version__, chardet.__version__), + RequestsDependencyWarning) + +# Attempt to enable urllib3's SNI support, if possible +from pip._internal.compat import WINDOWS +if not WINDOWS: + try: + from pip._vendor.urllib3.contrib import pyopenssl + pyopenssl.inject_into_urllib3() + except ImportError: + pass + +# urllib3's DependencyWarnings should be silenced. +from pip._vendor.urllib3.exceptions import DependencyWarning +warnings.simplefilter('ignore', DependencyWarning) + +from .__version__ import __title__, __description__, __url__, __version__ +from .__version__ import __build__, __author__, __author_email__, __license__ +from .__version__ import __copyright__, __cake__ + +from . import utils +from . import packages +from .models import Request, Response, PreparedRequest +from .api import request, get, head, post, patch, put, delete, options +from .sessions import session, Session +from .status_codes import codes +from .exceptions import ( + RequestException, Timeout, URLRequired, + TooManyRedirects, HTTPError, ConnectionError, + FileModeWarning, ConnectTimeout, ReadTimeout +) + +# Set default logging handler to avoid "No handler found" warnings. +import logging +try: # Python 2.7+ + from logging import NullHandler +except ImportError: + class NullHandler(logging.Handler): + def emit(self, record): + pass + +logging.getLogger(__name__).addHandler(NullHandler()) + +# FileModeWarnings go off per the default. +warnings.simplefilter('default', FileModeWarning, append=True) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/__version__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/__version__.py new file mode 100644 index 00000000..dc33eef6 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/__version__.py @@ -0,0 +1,14 @@ +# .-. .-. .-. . . .-. .-. .-. .-. +# |( |- |.| | | |- `-. | `-. +# ' ' `-' `-`.`-' `-' `-' ' `-' + +__title__ = 'requests' +__description__ = 'Python HTTP for Humans.' +__url__ = 'http://python-requests.org' +__version__ = '2.18.4' +__build__ = 0x021804 +__author__ = 'Kenneth Reitz' +__author_email__ = 'me@kennethreitz.org' +__license__ = 'Apache 2.0' +__copyright__ = 'Copyright 2017 Kenneth Reitz' +__cake__ = u'\u2728 \U0001f370 \u2728' diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/_internal_utils.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/_internal_utils.py new file mode 100644 index 00000000..759d9a56 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/_internal_utils.py @@ -0,0 +1,42 @@ +# -*- coding: utf-8 -*- + +""" +requests._internal_utils +~~~~~~~~~~~~~~ + +Provides utility functions that are consumed internally by Requests +which depend on extremely few external helpers (such as compat) +""" + +from .compat import is_py2, builtin_str, str + + +def to_native_string(string, encoding='ascii'): + """Given a string object, regardless of type, returns a representation of + that string in the native string type, encoding and decoding where + necessary. This assumes ASCII unless told otherwise. + """ + if isinstance(string, builtin_str): + out = string + else: + if is_py2: + out = string.encode(encoding) + else: + out = string.decode(encoding) + + return out + + +def unicode_is_ascii(u_string): + """Determine if unicode string only contains ASCII characters. + + :param str u_string: unicode string to check. Must be unicode + and not Python 2 `str`. + :rtype: bool + """ + assert isinstance(u_string, str) + try: + u_string.encode('ascii') + return True + except UnicodeEncodeError: + return False diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/adapters.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/adapters.py new file mode 100644 index 00000000..57876383 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/adapters.py @@ -0,0 +1,525 @@ +# -*- coding: utf-8 -*- + +""" +requests.adapters +~~~~~~~~~~~~~~~~~ + +This module contains the transport adapters that Requests uses to define +and maintain connections. +""" + +import os.path +import socket + +from pip._vendor.urllib3.poolmanager import PoolManager, proxy_from_url +from pip._vendor.urllib3.response import HTTPResponse +from pip._vendor.urllib3.util import Timeout as TimeoutSauce +from pip._vendor.urllib3.util.retry import Retry +from pip._vendor.urllib3.exceptions import ClosedPoolError +from pip._vendor.urllib3.exceptions import ConnectTimeoutError +from pip._vendor.urllib3.exceptions import HTTPError as _HTTPError +from pip._vendor.urllib3.exceptions import MaxRetryError +from pip._vendor.urllib3.exceptions import NewConnectionError +from pip._vendor.urllib3.exceptions import ProxyError as _ProxyError +from pip._vendor.urllib3.exceptions import ProtocolError +from pip._vendor.urllib3.exceptions import ReadTimeoutError +from pip._vendor.urllib3.exceptions import SSLError as _SSLError +from pip._vendor.urllib3.exceptions import ResponseError + +from .models import Response +from .compat import urlparse, basestring +from .utils import (DEFAULT_CA_BUNDLE_PATH, get_encoding_from_headers, + prepend_scheme_if_needed, get_auth_from_url, urldefragauth, + select_proxy) +from .structures import CaseInsensitiveDict +from .cookies import extract_cookies_to_jar +from .exceptions import (ConnectionError, ConnectTimeout, ReadTimeout, SSLError, + ProxyError, RetryError, InvalidSchema) +from .auth import _basic_auth_str + +try: + from pip._vendor.urllib3.contrib.socks import SOCKSProxyManager +except ImportError: + def SOCKSProxyManager(*args, **kwargs): + raise InvalidSchema("Missing dependencies for SOCKS support.") + +DEFAULT_POOLBLOCK = False +DEFAULT_POOLSIZE = 10 +DEFAULT_RETRIES = 0 +DEFAULT_POOL_TIMEOUT = None + + +class BaseAdapter(object): + """The Base Transport Adapter""" + + def __init__(self): + super(BaseAdapter, self).__init__() + + def send(self, request, stream=False, timeout=None, verify=True, + cert=None, proxies=None): + """Sends PreparedRequest object. Returns Response object. + + :param request: The :class:`PreparedRequest <PreparedRequest>` being sent. + :param stream: (optional) Whether to stream the request content. + :param timeout: (optional) How long to wait for the server to send + data before giving up, as a float, or a :ref:`(connect timeout, + read timeout) <timeouts>` tuple. + :type timeout: float or tuple + :param verify: (optional) Either a boolean, in which case it controls whether we verify + the server's TLS certificate, or a string, in which case it must be a path + to a CA bundle to use + :param cert: (optional) Any user-provided SSL certificate to be trusted. + :param proxies: (optional) The proxies dictionary to apply to the request. + """ + raise NotImplementedError + + def close(self): + """Cleans up adapter specific items.""" + raise NotImplementedError + + +class HTTPAdapter(BaseAdapter): + """The built-in HTTP Adapter for urllib3. + + Provides a general-case interface for Requests sessions to contact HTTP and + HTTPS urls by implementing the Transport Adapter interface. This class will + usually be created by the :class:`Session <Session>` class under the + covers. + + :param pool_connections: The number of urllib3 connection pools to cache. + :param pool_maxsize: The maximum number of connections to save in the pool. + :param max_retries: The maximum number of retries each connection + should attempt. Note, this applies only to failed DNS lookups, socket + connections and connection timeouts, never to requests where data has + made it to the server. By default, Requests does not retry failed + connections. If you need granular control over the conditions under + which we retry a request, import urllib3's ``Retry`` class and pass + that instead. + :param pool_block: Whether the connection pool should block for connections. + + Usage:: + + >>> import requests + >>> s = requests.Session() + >>> a = requests.adapters.HTTPAdapter(max_retries=3) + >>> s.mount('http://', a) + """ + __attrs__ = ['max_retries', 'config', '_pool_connections', '_pool_maxsize', + '_pool_block'] + + def __init__(self, pool_connections=DEFAULT_POOLSIZE, + pool_maxsize=DEFAULT_POOLSIZE, max_retries=DEFAULT_RETRIES, + pool_block=DEFAULT_POOLBLOCK): + if max_retries == DEFAULT_RETRIES: + self.max_retries = Retry(0, read=False) + else: + self.max_retries = Retry.from_int(max_retries) + self.config = {} + self.proxy_manager = {} + + super(HTTPAdapter, self).__init__() + + self._pool_connections = pool_connections + self._pool_maxsize = pool_maxsize + self._pool_block = pool_block + + self.init_poolmanager(pool_connections, pool_maxsize, block=pool_block) + + def __getstate__(self): + return dict((attr, getattr(self, attr, None)) for attr in + self.__attrs__) + + def __setstate__(self, state): + # Can't handle by adding 'proxy_manager' to self.__attrs__ because + # self.poolmanager uses a lambda function, which isn't pickleable. + self.proxy_manager = {} + self.config = {} + + for attr, value in state.items(): + setattr(self, attr, value) + + self.init_poolmanager(self._pool_connections, self._pool_maxsize, + block=self._pool_block) + + def init_poolmanager(self, connections, maxsize, block=DEFAULT_POOLBLOCK, **pool_kwargs): + """Initializes a urllib3 PoolManager. + + This method should not be called from user code, and is only + exposed for use when subclassing the + :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`. + + :param connections: The number of urllib3 connection pools to cache. + :param maxsize: The maximum number of connections to save in the pool. + :param block: Block when no free connections are available. + :param pool_kwargs: Extra keyword arguments used to initialize the Pool Manager. + """ + # save these values for pickling + self._pool_connections = connections + self._pool_maxsize = maxsize + self._pool_block = block + + self.poolmanager = PoolManager(num_pools=connections, maxsize=maxsize, + block=block, strict=True, **pool_kwargs) + + def proxy_manager_for(self, proxy, **proxy_kwargs): + """Return urllib3 ProxyManager for the given proxy. + + This method should not be called from user code, and is only + exposed for use when subclassing the + :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`. + + :param proxy: The proxy to return a urllib3 ProxyManager for. + :param proxy_kwargs: Extra keyword arguments used to configure the Proxy Manager. + :returns: ProxyManager + :rtype: urllib3.ProxyManager + """ + if proxy in self.proxy_manager: + manager = self.proxy_manager[proxy] + elif proxy.lower().startswith('socks'): + username, password = get_auth_from_url(proxy) + manager = self.proxy_manager[proxy] = SOCKSProxyManager( + proxy, + username=username, + password=password, + num_pools=self._pool_connections, + maxsize=self._pool_maxsize, + block=self._pool_block, + **proxy_kwargs + ) + else: + proxy_headers = self.proxy_headers(proxy) + manager = self.proxy_manager[proxy] = proxy_from_url( + proxy, + proxy_headers=proxy_headers, + num_pools=self._pool_connections, + maxsize=self._pool_maxsize, + block=self._pool_block, + **proxy_kwargs) + + return manager + + def cert_verify(self, conn, url, verify, cert): + """Verify a SSL certificate. This method should not be called from user + code, and is only exposed for use when subclassing the + :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`. + + :param conn: The urllib3 connection object associated with the cert. + :param url: The requested URL. + :param verify: Either a boolean, in which case it controls whether we verify + the server's TLS certificate, or a string, in which case it must be a path + to a CA bundle to use + :param cert: The SSL certificate to verify. + """ + if url.lower().startswith('https') and verify: + + cert_loc = None + + # Allow self-specified cert location. + if verify is not True: + cert_loc = verify + + if not cert_loc: + cert_loc = DEFAULT_CA_BUNDLE_PATH + + if not cert_loc or not os.path.exists(cert_loc): + raise IOError("Could not find a suitable TLS CA certificate bundle, " + "invalid path: {0}".format(cert_loc)) + + conn.cert_reqs = 'CERT_REQUIRED' + + if not os.path.isdir(cert_loc): + conn.ca_certs = cert_loc + else: + conn.ca_cert_dir = cert_loc + else: + conn.cert_reqs = 'CERT_NONE' + conn.ca_certs = None + conn.ca_cert_dir = None + + if cert: + if not isinstance(cert, basestring): + conn.cert_file = cert[0] + conn.key_file = cert[1] + else: + conn.cert_file = cert + conn.key_file = None + if conn.cert_file and not os.path.exists(conn.cert_file): + raise IOError("Could not find the TLS certificate file, " + "invalid path: {0}".format(conn.cert_file)) + if conn.key_file and not os.path.exists(conn.key_file): + raise IOError("Could not find the TLS key file, " + "invalid path: {0}".format(conn.key_file)) + + def build_response(self, req, resp): + """Builds a :class:`Response <requests.Response>` object from a urllib3 + response. This should not be called from user code, and is only exposed + for use when subclassing the + :class:`HTTPAdapter <requests.adapters.HTTPAdapter>` + + :param req: The :class:`PreparedRequest <PreparedRequest>` used to generate the response. + :param resp: The urllib3 response object. + :rtype: requests.Response + """ + response = Response() + + # Fallback to None if there's no status_code, for whatever reason. + response.status_code = getattr(resp, 'status', None) + + # Make headers case-insensitive. + response.headers = CaseInsensitiveDict(getattr(resp, 'headers', {})) + + # Set encoding. + response.encoding = get_encoding_from_headers(response.headers) + response.raw = resp + response.reason = response.raw.reason + + if isinstance(req.url, bytes): + response.url = req.url.decode('utf-8') + else: + response.url = req.url + + # Add new cookies from the server. + extract_cookies_to_jar(response.cookies, req, resp) + + # Give the Response some context. + response.request = req + response.connection = self + + return response + + def get_connection(self, url, proxies=None): + """Returns a urllib3 connection for the given URL. This should not be + called from user code, and is only exposed for use when subclassing the + :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`. + + :param url: The URL to connect to. + :param proxies: (optional) A Requests-style dictionary of proxies used on this request. + :rtype: urllib3.ConnectionPool + """ + proxy = select_proxy(url, proxies) + + if proxy: + proxy = prepend_scheme_if_needed(proxy, 'http') + proxy_manager = self.proxy_manager_for(proxy) + conn = proxy_manager.connection_from_url(url) + else: + # Only scheme should be lower case + parsed = urlparse(url) + url = parsed.geturl() + conn = self.poolmanager.connection_from_url(url) + + return conn + + def close(self): + """Disposes of any internal state. + + Currently, this closes the PoolManager and any active ProxyManager, + which closes any pooled connections. + """ + self.poolmanager.clear() + for proxy in self.proxy_manager.values(): + proxy.clear() + + def request_url(self, request, proxies): + """Obtain the url to use when making the final request. + + If the message is being sent through a HTTP proxy, the full URL has to + be used. Otherwise, we should only use the path portion of the URL. + + This should not be called from user code, and is only exposed for use + when subclassing the + :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`. + + :param request: The :class:`PreparedRequest <PreparedRequest>` being sent. + :param proxies: A dictionary of schemes or schemes and hosts to proxy URLs. + :rtype: str + """ + proxy = select_proxy(request.url, proxies) + scheme = urlparse(request.url).scheme + + is_proxied_http_request = (proxy and scheme != 'https') + using_socks_proxy = False + if proxy: + proxy_scheme = urlparse(proxy).scheme.lower() + using_socks_proxy = proxy_scheme.startswith('socks') + + url = request.path_url + if is_proxied_http_request and not using_socks_proxy: + url = urldefragauth(request.url) + + return url + + def add_headers(self, request, **kwargs): + """Add any headers needed by the connection. As of v2.0 this does + nothing by default, but is left for overriding by users that subclass + the :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`. + + This should not be called from user code, and is only exposed for use + when subclassing the + :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`. + + :param request: The :class:`PreparedRequest <PreparedRequest>` to add headers to. + :param kwargs: The keyword arguments from the call to send(). + """ + pass + + def proxy_headers(self, proxy): + """Returns a dictionary of the headers to add to any request sent + through a proxy. This works with urllib3 magic to ensure that they are + correctly sent to the proxy, rather than in a tunnelled request if + CONNECT is being used. + + This should not be called from user code, and is only exposed for use + when subclassing the + :class:`HTTPAdapter <requests.adapters.HTTPAdapter>`. + + :param proxies: The url of the proxy being used for this request. + :rtype: dict + """ + headers = {} + username, password = get_auth_from_url(proxy) + + if username: + headers['Proxy-Authorization'] = _basic_auth_str(username, + password) + + return headers + + def send(self, request, stream=False, timeout=None, verify=True, cert=None, proxies=None): + """Sends PreparedRequest object. Returns Response object. + + :param request: The :class:`PreparedRequest <PreparedRequest>` being sent. + :param stream: (optional) Whether to stream the request content. + :param timeout: (optional) How long to wait for the server to send + data before giving up, as a float, or a :ref:`(connect timeout, + read timeout) <timeouts>` tuple. + :type timeout: float or tuple or urllib3 Timeout object + :param verify: (optional) Either a boolean, in which case it controls whether + we verify the server's TLS certificate, or a string, in which case it + must be a path to a CA bundle to use + :param cert: (optional) Any user-provided SSL certificate to be trusted. + :param proxies: (optional) The proxies dictionary to apply to the request. + :rtype: requests.Response + """ + + conn = self.get_connection(request.url, proxies) + + self.cert_verify(conn, request.url, verify, cert) + url = self.request_url(request, proxies) + self.add_headers(request) + + chunked = not (request.body is None or 'Content-Length' in request.headers) + + if isinstance(timeout, tuple): + try: + connect, read = timeout + timeout = TimeoutSauce(connect=connect, read=read) + except ValueError as e: + # this may raise a string formatting error. + err = ("Invalid timeout {0}. Pass a (connect, read) " + "timeout tuple, or a single float to set " + "both timeouts to the same value".format(timeout)) + raise ValueError(err) + elif isinstance(timeout, TimeoutSauce): + pass + else: + timeout = TimeoutSauce(connect=timeout, read=timeout) + + try: + if not chunked: + resp = conn.urlopen( + method=request.method, + url=url, + body=request.body, + headers=request.headers, + redirect=False, + assert_same_host=False, + preload_content=False, + decode_content=False, + retries=self.max_retries, + timeout=timeout + ) + + # Send the request. + else: + if hasattr(conn, 'proxy_pool'): + conn = conn.proxy_pool + + low_conn = conn._get_conn(timeout=DEFAULT_POOL_TIMEOUT) + + try: + low_conn.putrequest(request.method, + url, + skip_accept_encoding=True) + + for header, value in request.headers.items(): + low_conn.putheader(header, value) + + low_conn.endheaders() + + for i in request.body: + low_conn.send(hex(len(i))[2:].encode('utf-8')) + low_conn.send(b'\r\n') + low_conn.send(i) + low_conn.send(b'\r\n') + low_conn.send(b'0\r\n\r\n') + + # Receive the response from the server + try: + # For Python 2.7+ versions, use buffering of HTTP + # responses + r = low_conn.getresponse(buffering=True) + except TypeError: + # For compatibility with Python 2.6 versions and back + r = low_conn.getresponse() + + resp = HTTPResponse.from_httplib( + r, + pool=conn, + connection=low_conn, + preload_content=False, + decode_content=False + ) + except: + # If we hit any problems here, clean up the connection. + # Then, reraise so that we can handle the actual exception. + low_conn.close() + raise + + except (ProtocolError, socket.error) as err: + raise ConnectionError(err, request=request) + + except MaxRetryError as e: + if isinstance(e.reason, ConnectTimeoutError): + # TODO: Remove this in 3.0.0: see #2811 + if not isinstance(e.reason, NewConnectionError): + raise ConnectTimeout(e, request=request) + + if isinstance(e.reason, ResponseError): + raise RetryError(e, request=request) + + if isinstance(e.reason, _ProxyError): + raise ProxyError(e, request=request) + + if isinstance(e.reason, _SSLError): + # This branch is for urllib3 v1.22 and later. + raise SSLError(e, request=request) + + raise ConnectionError(e, request=request) + + except ClosedPoolError as e: + raise ConnectionError(e, request=request) + + except _ProxyError as e: + raise ProxyError(e) + + except (_SSLError, _HTTPError) as e: + if isinstance(e, _SSLError): + # This branch is for urllib3 versions earlier than v1.22 + raise SSLError(e, request=request) + elif isinstance(e, ReadTimeoutError): + raise ReadTimeout(e, request=request) + else: + raise + + return self.build_response(request, resp) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/api.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/api.py new file mode 100644 index 00000000..bc2115c1 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/api.py @@ -0,0 +1,152 @@ +# -*- coding: utf-8 -*- + +""" +requests.api +~~~~~~~~~~~~ + +This module implements the Requests API. + +:copyright: (c) 2012 by Kenneth Reitz. +:license: Apache2, see LICENSE for more details. +""" + +from . import sessions + + +def request(method, url, **kwargs): + """Constructs and sends a :class:`Request <Request>`. + + :param method: method for the new :class:`Request` object. + :param url: URL for the new :class:`Request` object. + :param params: (optional) Dictionary or bytes to be sent in the query string for the :class:`Request`. + :param data: (optional) Dictionary or list of tuples ``[(key, value)]`` (will be form-encoded), bytes, or file-like object to send in the body of the :class:`Request`. + :param json: (optional) json data to send in the body of the :class:`Request`. + :param headers: (optional) Dictionary of HTTP Headers to send with the :class:`Request`. + :param cookies: (optional) Dict or CookieJar object to send with the :class:`Request`. + :param files: (optional) Dictionary of ``'name': file-like-objects`` (or ``{'name': file-tuple}``) for multipart encoding upload. + ``file-tuple`` can be a 2-tuple ``('filename', fileobj)``, 3-tuple ``('filename', fileobj, 'content_type')`` + or a 4-tuple ``('filename', fileobj, 'content_type', custom_headers)``, where ``'content-type'`` is a string + defining the content type of the given file and ``custom_headers`` a dict-like object containing additional headers + to add for the file. + :param auth: (optional) Auth tuple to enable Basic/Digest/Custom HTTP Auth. + :param timeout: (optional) How many seconds to wait for the server to send data + before giving up, as a float, or a :ref:`(connect timeout, read + timeout) <timeouts>` tuple. + :type timeout: float or tuple + :param allow_redirects: (optional) Boolean. Enable/disable GET/OPTIONS/POST/PUT/PATCH/DELETE/HEAD redirection. Defaults to ``True``. + :type allow_redirects: bool + :param proxies: (optional) Dictionary mapping protocol to the URL of the proxy. + :param verify: (optional) Either a boolean, in which case it controls whether we verify + the server's TLS certificate, or a string, in which case it must be a path + to a CA bundle to use. Defaults to ``True``. + :param stream: (optional) if ``False``, the response content will be immediately downloaded. + :param cert: (optional) if String, path to ssl client cert file (.pem). If Tuple, ('cert', 'key') pair. + :return: :class:`Response <Response>` object + :rtype: requests.Response + + Usage:: + + >>> import requests + >>> req = requests.request('GET', 'http://httpbin.org/get') + <Response [200]> + """ + + # By using the 'with' statement we are sure the session is closed, thus we + # avoid leaving sockets open which can trigger a ResourceWarning in some + # cases, and look like a memory leak in others. + with sessions.Session() as session: + return session.request(method=method, url=url, **kwargs) + + +def get(url, params=None, **kwargs): + r"""Sends a GET request. + + :param url: URL for the new :class:`Request` object. + :param params: (optional) Dictionary or bytes to be sent in the query string for the :class:`Request`. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :return: :class:`Response <Response>` object + :rtype: requests.Response + """ + + kwargs.setdefault('allow_redirects', True) + return request('get', url, params=params, **kwargs) + + +def options(url, **kwargs): + r"""Sends an OPTIONS request. + + :param url: URL for the new :class:`Request` object. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :return: :class:`Response <Response>` object + :rtype: requests.Response + """ + + kwargs.setdefault('allow_redirects', True) + return request('options', url, **kwargs) + + +def head(url, **kwargs): + r"""Sends a HEAD request. + + :param url: URL for the new :class:`Request` object. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :return: :class:`Response <Response>` object + :rtype: requests.Response + """ + + kwargs.setdefault('allow_redirects', False) + return request('head', url, **kwargs) + + +def post(url, data=None, json=None, **kwargs): + r"""Sends a POST request. + + :param url: URL for the new :class:`Request` object. + :param data: (optional) Dictionary (will be form-encoded), bytes, or file-like object to send in the body of the :class:`Request`. + :param json: (optional) json data to send in the body of the :class:`Request`. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :return: :class:`Response <Response>` object + :rtype: requests.Response + """ + + return request('post', url, data=data, json=json, **kwargs) + + +def put(url, data=None, **kwargs): + r"""Sends a PUT request. + + :param url: URL for the new :class:`Request` object. + :param data: (optional) Dictionary (will be form-encoded), bytes, or file-like object to send in the body of the :class:`Request`. + :param json: (optional) json data to send in the body of the :class:`Request`. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :return: :class:`Response <Response>` object + :rtype: requests.Response + """ + + return request('put', url, data=data, **kwargs) + + +def patch(url, data=None, **kwargs): + r"""Sends a PATCH request. + + :param url: URL for the new :class:`Request` object. + :param data: (optional) Dictionary (will be form-encoded), bytes, or file-like object to send in the body of the :class:`Request`. + :param json: (optional) json data to send in the body of the :class:`Request`. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :return: :class:`Response <Response>` object + :rtype: requests.Response + """ + + return request('patch', url, data=data, **kwargs) + + +def delete(url, **kwargs): + r"""Sends a DELETE request. + + :param url: URL for the new :class:`Request` object. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :return: :class:`Response <Response>` object + :rtype: requests.Response + """ + + return request('delete', url, **kwargs) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/auth.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/auth.py new file mode 100644 index 00000000..1a182dff --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/auth.py @@ -0,0 +1,293 @@ +# -*- coding: utf-8 -*- + +""" +requests.auth +~~~~~~~~~~~~~ + +This module contains the authentication handlers for Requests. +""" + +import os +import re +import time +import hashlib +import threading +import warnings + +from base64 import b64encode + +from .compat import urlparse, str, basestring +from .cookies import extract_cookies_to_jar +from ._internal_utils import to_native_string +from .utils import parse_dict_header + +CONTENT_TYPE_FORM_URLENCODED = 'application/x-www-form-urlencoded' +CONTENT_TYPE_MULTI_PART = 'multipart/form-data' + + +def _basic_auth_str(username, password): + """Returns a Basic Auth string.""" + + # "I want us to put a big-ol' comment on top of it that + # says that this behaviour is dumb but we need to preserve + # it because people are relying on it." + # - Lukasa + # + # These are here solely to maintain backwards compatibility + # for things like ints. This will be removed in 3.0.0. + if not isinstance(username, basestring): + warnings.warn( + "Non-string usernames will no longer be supported in Requests " + "3.0.0. Please convert the object you've passed in ({0!r}) to " + "a string or bytes object in the near future to avoid " + "problems.".format(username), + category=DeprecationWarning, + ) + username = str(username) + + if not isinstance(password, basestring): + warnings.warn( + "Non-string passwords will no longer be supported in Requests " + "3.0.0. Please convert the object you've passed in ({0!r}) to " + "a string or bytes object in the near future to avoid " + "problems.".format(password), + category=DeprecationWarning, + ) + password = str(password) + # -- End Removal -- + + if isinstance(username, str): + username = username.encode('latin1') + + if isinstance(password, str): + password = password.encode('latin1') + + authstr = 'Basic ' + to_native_string( + b64encode(b':'.join((username, password))).strip() + ) + + return authstr + + +class AuthBase(object): + """Base class that all auth implementations derive from""" + + def __call__(self, r): + raise NotImplementedError('Auth hooks must be callable.') + + +class HTTPBasicAuth(AuthBase): + """Attaches HTTP Basic Authentication to the given Request object.""" + + def __init__(self, username, password): + self.username = username + self.password = password + + def __eq__(self, other): + return all([ + self.username == getattr(other, 'username', None), + self.password == getattr(other, 'password', None) + ]) + + def __ne__(self, other): + return not self == other + + def __call__(self, r): + r.headers['Authorization'] = _basic_auth_str(self.username, self.password) + return r + + +class HTTPProxyAuth(HTTPBasicAuth): + """Attaches HTTP Proxy Authentication to a given Request object.""" + + def __call__(self, r): + r.headers['Proxy-Authorization'] = _basic_auth_str(self.username, self.password) + return r + + +class HTTPDigestAuth(AuthBase): + """Attaches HTTP Digest Authentication to the given Request object.""" + + def __init__(self, username, password): + self.username = username + self.password = password + # Keep state in per-thread local storage + self._thread_local = threading.local() + + def init_per_thread_state(self): + # Ensure state is initialized just once per-thread + if not hasattr(self._thread_local, 'init'): + self._thread_local.init = True + self._thread_local.last_nonce = '' + self._thread_local.nonce_count = 0 + self._thread_local.chal = {} + self._thread_local.pos = None + self._thread_local.num_401_calls = None + + def build_digest_header(self, method, url): + """ + :rtype: str + """ + + realm = self._thread_local.chal['realm'] + nonce = self._thread_local.chal['nonce'] + qop = self._thread_local.chal.get('qop') + algorithm = self._thread_local.chal.get('algorithm') + opaque = self._thread_local.chal.get('opaque') + hash_utf8 = None + + if algorithm is None: + _algorithm = 'MD5' + else: + _algorithm = algorithm.upper() + # lambdas assume digest modules are imported at the top level + if _algorithm == 'MD5' or _algorithm == 'MD5-SESS': + def md5_utf8(x): + if isinstance(x, str): + x = x.encode('utf-8') + return hashlib.md5(x).hexdigest() + hash_utf8 = md5_utf8 + elif _algorithm == 'SHA': + def sha_utf8(x): + if isinstance(x, str): + x = x.encode('utf-8') + return hashlib.sha1(x).hexdigest() + hash_utf8 = sha_utf8 + + KD = lambda s, d: hash_utf8("%s:%s" % (s, d)) + + if hash_utf8 is None: + return None + + # XXX not implemented yet + entdig = None + p_parsed = urlparse(url) + #: path is request-uri defined in RFC 2616 which should not be empty + path = p_parsed.path or "/" + if p_parsed.query: + path += '?' + p_parsed.query + + A1 = '%s:%s:%s' % (self.username, realm, self.password) + A2 = '%s:%s' % (method, path) + + HA1 = hash_utf8(A1) + HA2 = hash_utf8(A2) + + if nonce == self._thread_local.last_nonce: + self._thread_local.nonce_count += 1 + else: + self._thread_local.nonce_count = 1 + ncvalue = '%08x' % self._thread_local.nonce_count + s = str(self._thread_local.nonce_count).encode('utf-8') + s += nonce.encode('utf-8') + s += time.ctime().encode('utf-8') + s += os.urandom(8) + + cnonce = (hashlib.sha1(s).hexdigest()[:16]) + if _algorithm == 'MD5-SESS': + HA1 = hash_utf8('%s:%s:%s' % (HA1, nonce, cnonce)) + + if not qop: + respdig = KD(HA1, "%s:%s" % (nonce, HA2)) + elif qop == 'auth' or 'auth' in qop.split(','): + noncebit = "%s:%s:%s:%s:%s" % ( + nonce, ncvalue, cnonce, 'auth', HA2 + ) + respdig = KD(HA1, noncebit) + else: + # XXX handle auth-int. + return None + + self._thread_local.last_nonce = nonce + + # XXX should the partial digests be encoded too? + base = 'username="%s", realm="%s", nonce="%s", uri="%s", ' \ + 'response="%s"' % (self.username, realm, nonce, path, respdig) + if opaque: + base += ', opaque="%s"' % opaque + if algorithm: + base += ', algorithm="%s"' % algorithm + if entdig: + base += ', digest="%s"' % entdig + if qop: + base += ', qop="auth", nc=%s, cnonce="%s"' % (ncvalue, cnonce) + + return 'Digest %s' % (base) + + def handle_redirect(self, r, **kwargs): + """Reset num_401_calls counter on redirects.""" + if r.is_redirect: + self._thread_local.num_401_calls = 1 + + def handle_401(self, r, **kwargs): + """ + Takes the given response and tries digest-auth, if needed. + + :rtype: requests.Response + """ + + # If response is not 4xx, do not auth + # See https://github.com/requests/requests/issues/3772 + if not 400 <= r.status_code < 500: + self._thread_local.num_401_calls = 1 + return r + + if self._thread_local.pos is not None: + # Rewind the file position indicator of the body to where + # it was to resend the request. + r.request.body.seek(self._thread_local.pos) + s_auth = r.headers.get('www-authenticate', '') + + if 'digest' in s_auth.lower() and self._thread_local.num_401_calls < 2: + + self._thread_local.num_401_calls += 1 + pat = re.compile(r'digest ', flags=re.IGNORECASE) + self._thread_local.chal = parse_dict_header(pat.sub('', s_auth, count=1)) + + # Consume content and release the original connection + # to allow our new request to reuse the same one. + r.content + r.close() + prep = r.request.copy() + extract_cookies_to_jar(prep._cookies, r.request, r.raw) + prep.prepare_cookies(prep._cookies) + + prep.headers['Authorization'] = self.build_digest_header( + prep.method, prep.url) + _r = r.connection.send(prep, **kwargs) + _r.history.append(r) + _r.request = prep + + return _r + + self._thread_local.num_401_calls = 1 + return r + + def __call__(self, r): + # Initialize per-thread state, if needed + self.init_per_thread_state() + # If we have a saved nonce, skip the 401 + if self._thread_local.last_nonce: + r.headers['Authorization'] = self.build_digest_header(r.method, r.url) + try: + self._thread_local.pos = r.body.tell() + except AttributeError: + # In the case of HTTPDigestAuth being reused and the body of + # the previous request was a file-like object, pos has the + # file position of the previous body. Ensure it's set to + # None. + self._thread_local.pos = None + r.register_hook('response', self.handle_401) + r.register_hook('response', self.handle_redirect) + self._thread_local.num_401_calls = 1 + + return r + + def __eq__(self, other): + return all([ + self.username == getattr(other, 'username', None), + self.password == getattr(other, 'password', None) + ]) + + def __ne__(self, other): + return not self == other diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/certs.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/certs.py new file mode 100644 index 00000000..06a594e5 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/certs.py @@ -0,0 +1,18 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +""" +requests.certs +~~~~~~~~~~~~~~ + +This module returns the preferred default CA certificate bundle. There is +only one — the one from the certifi package. + +If you are packaging Requests, e.g., for a Linux distribution or a managed +environment, you can change the definition of where() to return a separately +packaged CA bundle. +""" +from pip._vendor.certifi import where + +if __name__ == '__main__': + print(where()) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/compat.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/compat.py new file mode 100644 index 00000000..20da3e0e --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/compat.py @@ -0,0 +1,73 @@ +# -*- coding: utf-8 -*- + +""" +requests.compat +~~~~~~~~~~~~~~~ + +This module handles import compatibility issues between Python 2 and +Python 3. +""" + +from pip._vendor import chardet + +import sys + +# ------- +# Pythons +# ------- + +# Syntax sugar. +_ver = sys.version_info + +#: Python 2.x? +is_py2 = (_ver[0] == 2) + +#: Python 3.x? +is_py3 = (_ver[0] == 3) + +# Note: We've patched out simplejson support in pip because it prevents +# upgrading simplejson on Windows. +# try: +# import simplejson as json +# except (ImportError, SyntaxError): +# # simplejson does not support Python 3.2, it throws a SyntaxError +# # because of u'...' Unicode literals. +import json + +# --------- +# Specifics +# --------- + +if is_py2: + from urllib import ( + quote, unquote, quote_plus, unquote_plus, urlencode, getproxies, + proxy_bypass, proxy_bypass_environment, getproxies_environment) + from urlparse import urlparse, urlunparse, urljoin, urlsplit, urldefrag + from urllib2 import parse_http_list + import cookielib + from Cookie import Morsel + from StringIO import StringIO + + from pip._vendor.urllib3.packages.ordered_dict import OrderedDict + + builtin_str = str + bytes = str + str = unicode + basestring = basestring + numeric_types = (int, long, float) + integer_types = (int, long) + +elif is_py3: + from urllib.parse import urlparse, urlunparse, urljoin, urlsplit, urlencode, quote, unquote, quote_plus, unquote_plus, urldefrag + from urllib.request import parse_http_list, getproxies, proxy_bypass, proxy_bypass_environment, getproxies_environment + from http import cookiejar as cookielib + from http.cookies import Morsel + from io import StringIO + from collections import OrderedDict + + builtin_str = str + str = str + bytes = bytes + basestring = (str, bytes) + numeric_types = (int, float) + integer_types = (int,) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/cookies.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/cookies.py new file mode 100644 index 00000000..ab3c88b9 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/cookies.py @@ -0,0 +1,542 @@ +# -*- coding: utf-8 -*- + +""" +requests.cookies +~~~~~~~~~~~~~~~~ + +Compatibility code to be able to use `cookielib.CookieJar` with requests. + +requests.utils imports from here, so be careful with imports. +""" + +import copy +import time +import calendar +import collections + +from ._internal_utils import to_native_string +from .compat import cookielib, urlparse, urlunparse, Morsel + +try: + import threading +except ImportError: + import dummy_threading as threading + + +class MockRequest(object): + """Wraps a `requests.Request` to mimic a `urllib2.Request`. + + The code in `cookielib.CookieJar` expects this interface in order to correctly + manage cookie policies, i.e., determine whether a cookie can be set, given the + domains of the request and the cookie. + + The original request object is read-only. The client is responsible for collecting + the new headers via `get_new_headers()` and interpreting them appropriately. You + probably want `get_cookie_header`, defined below. + """ + + def __init__(self, request): + self._r = request + self._new_headers = {} + self.type = urlparse(self._r.url).scheme + + def get_type(self): + return self.type + + def get_host(self): + return urlparse(self._r.url).netloc + + def get_origin_req_host(self): + return self.get_host() + + def get_full_url(self): + # Only return the response's URL if the user hadn't set the Host + # header + if not self._r.headers.get('Host'): + return self._r.url + # If they did set it, retrieve it and reconstruct the expected domain + host = to_native_string(self._r.headers['Host'], encoding='utf-8') + parsed = urlparse(self._r.url) + # Reconstruct the URL as we expect it + return urlunparse([ + parsed.scheme, host, parsed.path, parsed.params, parsed.query, + parsed.fragment + ]) + + def is_unverifiable(self): + return True + + def has_header(self, name): + return name in self._r.headers or name in self._new_headers + + def get_header(self, name, default=None): + return self._r.headers.get(name, self._new_headers.get(name, default)) + + def add_header(self, key, val): + """cookielib has no legitimate use for this method; add it back if you find one.""" + raise NotImplementedError("Cookie headers should be added with add_unredirected_header()") + + def add_unredirected_header(self, name, value): + self._new_headers[name] = value + + def get_new_headers(self): + return self._new_headers + + @property + def unverifiable(self): + return self.is_unverifiable() + + @property + def origin_req_host(self): + return self.get_origin_req_host() + + @property + def host(self): + return self.get_host() + + +class MockResponse(object): + """Wraps a `httplib.HTTPMessage` to mimic a `urllib.addinfourl`. + + ...what? Basically, expose the parsed HTTP headers from the server response + the way `cookielib` expects to see them. + """ + + def __init__(self, headers): + """Make a MockResponse for `cookielib` to read. + + :param headers: a httplib.HTTPMessage or analogous carrying the headers + """ + self._headers = headers + + def info(self): + return self._headers + + def getheaders(self, name): + self._headers.getheaders(name) + + +def extract_cookies_to_jar(jar, request, response): + """Extract the cookies from the response into a CookieJar. + + :param jar: cookielib.CookieJar (not necessarily a RequestsCookieJar) + :param request: our own requests.Request object + :param response: urllib3.HTTPResponse object + """ + if not (hasattr(response, '_original_response') and + response._original_response): + return + # the _original_response field is the wrapped httplib.HTTPResponse object, + req = MockRequest(request) + # pull out the HTTPMessage with the headers and put it in the mock: + res = MockResponse(response._original_response.msg) + jar.extract_cookies(res, req) + + +def get_cookie_header(jar, request): + """ + Produce an appropriate Cookie header string to be sent with `request`, or None. + + :rtype: str + """ + r = MockRequest(request) + jar.add_cookie_header(r) + return r.get_new_headers().get('Cookie') + + +def remove_cookie_by_name(cookiejar, name, domain=None, path=None): + """Unsets a cookie by name, by default over all domains and paths. + + Wraps CookieJar.clear(), is O(n). + """ + clearables = [] + for cookie in cookiejar: + if cookie.name != name: + continue + if domain is not None and domain != cookie.domain: + continue + if path is not None and path != cookie.path: + continue + clearables.append((cookie.domain, cookie.path, cookie.name)) + + for domain, path, name in clearables: + cookiejar.clear(domain, path, name) + + +class CookieConflictError(RuntimeError): + """There are two cookies that meet the criteria specified in the cookie jar. + Use .get and .set and include domain and path args in order to be more specific. + """ + + +class RequestsCookieJar(cookielib.CookieJar, collections.MutableMapping): + """Compatibility class; is a cookielib.CookieJar, but exposes a dict + interface. + + This is the CookieJar we create by default for requests and sessions that + don't specify one, since some clients may expect response.cookies and + session.cookies to support dict operations. + + Requests does not use the dict interface internally; it's just for + compatibility with external client code. All requests code should work + out of the box with externally provided instances of ``CookieJar``, e.g. + ``LWPCookieJar`` and ``FileCookieJar``. + + Unlike a regular CookieJar, this class is pickleable. + + .. warning:: dictionary operations that are normally O(1) may be O(n). + """ + + def get(self, name, default=None, domain=None, path=None): + """Dict-like get() that also supports optional domain and path args in + order to resolve naming collisions from using one cookie jar over + multiple domains. + + .. warning:: operation is O(n), not O(1). + """ + try: + return self._find_no_duplicates(name, domain, path) + except KeyError: + return default + + def set(self, name, value, **kwargs): + """Dict-like set() that also supports optional domain and path args in + order to resolve naming collisions from using one cookie jar over + multiple domains. + """ + # support client code that unsets cookies by assignment of a None value: + if value is None: + remove_cookie_by_name(self, name, domain=kwargs.get('domain'), path=kwargs.get('path')) + return + + if isinstance(value, Morsel): + c = morsel_to_cookie(value) + else: + c = create_cookie(name, value, **kwargs) + self.set_cookie(c) + return c + + def iterkeys(self): + """Dict-like iterkeys() that returns an iterator of names of cookies + from the jar. + + .. seealso:: itervalues() and iteritems(). + """ + for cookie in iter(self): + yield cookie.name + + def keys(self): + """Dict-like keys() that returns a list of names of cookies from the + jar. + + .. seealso:: values() and items(). + """ + return list(self.iterkeys()) + + def itervalues(self): + """Dict-like itervalues() that returns an iterator of values of cookies + from the jar. + + .. seealso:: iterkeys() and iteritems(). + """ + for cookie in iter(self): + yield cookie.value + + def values(self): + """Dict-like values() that returns a list of values of cookies from the + jar. + + .. seealso:: keys() and items(). + """ + return list(self.itervalues()) + + def iteritems(self): + """Dict-like iteritems() that returns an iterator of name-value tuples + from the jar. + + .. seealso:: iterkeys() and itervalues(). + """ + for cookie in iter(self): + yield cookie.name, cookie.value + + def items(self): + """Dict-like items() that returns a list of name-value tuples from the + jar. Allows client-code to call ``dict(RequestsCookieJar)`` and get a + vanilla python dict of key value pairs. + + .. seealso:: keys() and values(). + """ + return list(self.iteritems()) + + def list_domains(self): + """Utility method to list all the domains in the jar.""" + domains = [] + for cookie in iter(self): + if cookie.domain not in domains: + domains.append(cookie.domain) + return domains + + def list_paths(self): + """Utility method to list all the paths in the jar.""" + paths = [] + for cookie in iter(self): + if cookie.path not in paths: + paths.append(cookie.path) + return paths + + def multiple_domains(self): + """Returns True if there are multiple domains in the jar. + Returns False otherwise. + + :rtype: bool + """ + domains = [] + for cookie in iter(self): + if cookie.domain is not None and cookie.domain in domains: + return True + domains.append(cookie.domain) + return False # there is only one domain in jar + + def get_dict(self, domain=None, path=None): + """Takes as an argument an optional domain and path and returns a plain + old Python dict of name-value pairs of cookies that meet the + requirements. + + :rtype: dict + """ + dictionary = {} + for cookie in iter(self): + if ( + (domain is None or cookie.domain == domain) and + (path is None or cookie.path == path) + ): + dictionary[cookie.name] = cookie.value + return dictionary + + def __contains__(self, name): + try: + return super(RequestsCookieJar, self).__contains__(name) + except CookieConflictError: + return True + + def __getitem__(self, name): + """Dict-like __getitem__() for compatibility with client code. Throws + exception if there are more than one cookie with name. In that case, + use the more explicit get() method instead. + + .. warning:: operation is O(n), not O(1). + """ + return self._find_no_duplicates(name) + + def __setitem__(self, name, value): + """Dict-like __setitem__ for compatibility with client code. Throws + exception if there is already a cookie of that name in the jar. In that + case, use the more explicit set() method instead. + """ + self.set(name, value) + + def __delitem__(self, name): + """Deletes a cookie given a name. Wraps ``cookielib.CookieJar``'s + ``remove_cookie_by_name()``. + """ + remove_cookie_by_name(self, name) + + def set_cookie(self, cookie, *args, **kwargs): + if hasattr(cookie.value, 'startswith') and cookie.value.startswith('"') and cookie.value.endswith('"'): + cookie.value = cookie.value.replace('\\"', '') + return super(RequestsCookieJar, self).set_cookie(cookie, *args, **kwargs) + + def update(self, other): + """Updates this jar with cookies from another CookieJar or dict-like""" + if isinstance(other, cookielib.CookieJar): + for cookie in other: + self.set_cookie(copy.copy(cookie)) + else: + super(RequestsCookieJar, self).update(other) + + def _find(self, name, domain=None, path=None): + """Requests uses this method internally to get cookie values. + + If there are conflicting cookies, _find arbitrarily chooses one. + See _find_no_duplicates if you want an exception thrown if there are + conflicting cookies. + + :param name: a string containing name of cookie + :param domain: (optional) string containing domain of cookie + :param path: (optional) string containing path of cookie + :return: cookie.value + """ + for cookie in iter(self): + if cookie.name == name: + if domain is None or cookie.domain == domain: + if path is None or cookie.path == path: + return cookie.value + + raise KeyError('name=%r, domain=%r, path=%r' % (name, domain, path)) + + def _find_no_duplicates(self, name, domain=None, path=None): + """Both ``__get_item__`` and ``get`` call this function: it's never + used elsewhere in Requests. + + :param name: a string containing name of cookie + :param domain: (optional) string containing domain of cookie + :param path: (optional) string containing path of cookie + :raises KeyError: if cookie is not found + :raises CookieConflictError: if there are multiple cookies + that match name and optionally domain and path + :return: cookie.value + """ + toReturn = None + for cookie in iter(self): + if cookie.name == name: + if domain is None or cookie.domain == domain: + if path is None or cookie.path == path: + if toReturn is not None: # if there are multiple cookies that meet passed in criteria + raise CookieConflictError('There are multiple cookies with name, %r' % (name)) + toReturn = cookie.value # we will eventually return this as long as no cookie conflict + + if toReturn: + return toReturn + raise KeyError('name=%r, domain=%r, path=%r' % (name, domain, path)) + + def __getstate__(self): + """Unlike a normal CookieJar, this class is pickleable.""" + state = self.__dict__.copy() + # remove the unpickleable RLock object + state.pop('_cookies_lock') + return state + + def __setstate__(self, state): + """Unlike a normal CookieJar, this class is pickleable.""" + self.__dict__.update(state) + if '_cookies_lock' not in self.__dict__: + self._cookies_lock = threading.RLock() + + def copy(self): + """Return a copy of this RequestsCookieJar.""" + new_cj = RequestsCookieJar() + new_cj.update(self) + return new_cj + + +def _copy_cookie_jar(jar): + if jar is None: + return None + + if hasattr(jar, 'copy'): + # We're dealing with an instance of RequestsCookieJar + return jar.copy() + # We're dealing with a generic CookieJar instance + new_jar = copy.copy(jar) + new_jar.clear() + for cookie in jar: + new_jar.set_cookie(copy.copy(cookie)) + return new_jar + + +def create_cookie(name, value, **kwargs): + """Make a cookie from underspecified parameters. + + By default, the pair of `name` and `value` will be set for the domain '' + and sent on every request (this is sometimes called a "supercookie"). + """ + result = dict( + version=0, + name=name, + value=value, + port=None, + domain='', + path='/', + secure=False, + expires=None, + discard=True, + comment=None, + comment_url=None, + rest={'HttpOnly': None}, + rfc2109=False,) + + badargs = set(kwargs) - set(result) + if badargs: + err = 'create_cookie() got unexpected keyword arguments: %s' + raise TypeError(err % list(badargs)) + + result.update(kwargs) + result['port_specified'] = bool(result['port']) + result['domain_specified'] = bool(result['domain']) + result['domain_initial_dot'] = result['domain'].startswith('.') + result['path_specified'] = bool(result['path']) + + return cookielib.Cookie(**result) + + +def morsel_to_cookie(morsel): + """Convert a Morsel object into a Cookie containing the one k/v pair.""" + + expires = None + if morsel['max-age']: + try: + expires = int(time.time() + int(morsel['max-age'])) + except ValueError: + raise TypeError('max-age: %s must be integer' % morsel['max-age']) + elif morsel['expires']: + time_template = '%a, %d-%b-%Y %H:%M:%S GMT' + expires = calendar.timegm( + time.strptime(morsel['expires'], time_template) + ) + return create_cookie( + comment=morsel['comment'], + comment_url=bool(morsel['comment']), + discard=False, + domain=morsel['domain'], + expires=expires, + name=morsel.key, + path=morsel['path'], + port=None, + rest={'HttpOnly': morsel['httponly']}, + rfc2109=False, + secure=bool(morsel['secure']), + value=morsel.value, + version=morsel['version'] or 0, + ) + + +def cookiejar_from_dict(cookie_dict, cookiejar=None, overwrite=True): + """Returns a CookieJar from a key/value dictionary. + + :param cookie_dict: Dict of key/values to insert into CookieJar. + :param cookiejar: (optional) A cookiejar to add the cookies to. + :param overwrite: (optional) If False, will not replace cookies + already in the jar with new ones. + """ + if cookiejar is None: + cookiejar = RequestsCookieJar() + + if cookie_dict is not None: + names_from_jar = [cookie.name for cookie in cookiejar] + for name in cookie_dict: + if overwrite or (name not in names_from_jar): + cookiejar.set_cookie(create_cookie(name, cookie_dict[name])) + + return cookiejar + + +def merge_cookies(cookiejar, cookies): + """Add cookies to cookiejar and returns a merged CookieJar. + + :param cookiejar: CookieJar object to add the cookies to. + :param cookies: Dictionary or CookieJar object to be added. + """ + if not isinstance(cookiejar, cookielib.CookieJar): + raise ValueError('You can only merge into CookieJar') + + if isinstance(cookies, dict): + cookiejar = cookiejar_from_dict( + cookies, cookiejar=cookiejar, overwrite=False) + elif isinstance(cookies, cookielib.CookieJar): + try: + cookiejar.update(cookies) + except AttributeError: + for cookie_in_jar in cookies: + cookiejar.set_cookie(cookie_in_jar) + + return cookiejar diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/exceptions.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/exceptions.py new file mode 100644 index 00000000..3e5d0b2d --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/exceptions.py @@ -0,0 +1,122 @@ +# -*- coding: utf-8 -*- + +""" +requests.exceptions +~~~~~~~~~~~~~~~~~~~ + +This module contains the set of Requests' exceptions. +""" +from pip._vendor.urllib3.exceptions import HTTPError as BaseHTTPError + + +class RequestException(IOError): + """There was an ambiguous exception that occurred while handling your + request. + """ + + def __init__(self, *args, **kwargs): + """Initialize RequestException with `request` and `response` objects.""" + response = kwargs.pop('response', None) + self.response = response + self.request = kwargs.pop('request', None) + if (response is not None and not self.request and + hasattr(response, 'request')): + self.request = self.response.request + super(RequestException, self).__init__(*args, **kwargs) + + +class HTTPError(RequestException): + """An HTTP error occurred.""" + + +class ConnectionError(RequestException): + """A Connection error occurred.""" + + +class ProxyError(ConnectionError): + """A proxy error occurred.""" + + +class SSLError(ConnectionError): + """An SSL error occurred.""" + + +class Timeout(RequestException): + """The request timed out. + + Catching this error will catch both + :exc:`~requests.exceptions.ConnectTimeout` and + :exc:`~requests.exceptions.ReadTimeout` errors. + """ + + +class ConnectTimeout(ConnectionError, Timeout): + """The request timed out while trying to connect to the remote server. + + Requests that produced this error are safe to retry. + """ + + +class ReadTimeout(Timeout): + """The server did not send any data in the allotted amount of time.""" + + +class URLRequired(RequestException): + """A valid URL is required to make a request.""" + + +class TooManyRedirects(RequestException): + """Too many redirects.""" + + +class MissingSchema(RequestException, ValueError): + """The URL schema (e.g. http or https) is missing.""" + + +class InvalidSchema(RequestException, ValueError): + """See defaults.py for valid schemas.""" + + +class InvalidURL(RequestException, ValueError): + """The URL provided was somehow invalid.""" + + +class InvalidHeader(RequestException, ValueError): + """The header value provided was somehow invalid.""" + + +class ChunkedEncodingError(RequestException): + """The server declared chunked encoding but sent an invalid chunk.""" + + +class ContentDecodingError(RequestException, BaseHTTPError): + """Failed to decode response content""" + + +class StreamConsumedError(RequestException, TypeError): + """The content for this response was already consumed""" + + +class RetryError(RequestException): + """Custom retries logic failed""" + + +class UnrewindableBodyError(RequestException): + """Requests encountered an error when trying to rewind a body""" + +# Warnings + + +class RequestsWarning(Warning): + """Base warning for Requests.""" + pass + + +class FileModeWarning(RequestsWarning, DeprecationWarning): + """A file was opened in text mode, but Requests determined its binary length.""" + pass + + +class RequestsDependencyWarning(RequestsWarning): + """An imported dependency doesn't match the expected version range.""" + pass diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/help.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/help.py new file mode 100644 index 00000000..7c4b193c --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/help.py @@ -0,0 +1,120 @@ +"""Module containing bug report helper(s).""" +from __future__ import print_function + +import json +import platform +import sys +import ssl + +from pip._vendor import idna +from pip._vendor import urllib3 +from pip._vendor import chardet + +from . import __version__ as requests_version + +try: + from .packages.urllib3.contrib import pyopenssl +except ImportError: + pyopenssl = None + OpenSSL = None + cryptography = None +else: + import OpenSSL + import cryptography + + +def _implementation(): + """Return a dict with the Python implementation and version. + + Provide both the name and the version of the Python implementation + currently running. For example, on CPython 2.7.5 it will return + {'name': 'CPython', 'version': '2.7.5'}. + + This function works best on CPython and PyPy: in particular, it probably + doesn't work for Jython or IronPython. Future investigation should be done + to work out the correct shape of the code for those platforms. + """ + implementation = platform.python_implementation() + + if implementation == 'CPython': + implementation_version = platform.python_version() + elif implementation == 'PyPy': + implementation_version = '%s.%s.%s' % (sys.pypy_version_info.major, + sys.pypy_version_info.minor, + sys.pypy_version_info.micro) + if sys.pypy_version_info.releaselevel != 'final': + implementation_version = ''.join([ + implementation_version, sys.pypy_version_info.releaselevel + ]) + elif implementation == 'Jython': + implementation_version = platform.python_version() # Complete Guess + elif implementation == 'IronPython': + implementation_version = platform.python_version() # Complete Guess + else: + implementation_version = 'Unknown' + + return {'name': implementation, 'version': implementation_version} + + +def info(): + """Generate information for a bug report.""" + try: + platform_info = { + 'system': platform.system(), + 'release': platform.release(), + } + except IOError: + platform_info = { + 'system': 'Unknown', + 'release': 'Unknown', + } + + implementation_info = _implementation() + urllib3_info = {'version': urllib3.__version__} + chardet_info = {'version': chardet.__version__} + + pyopenssl_info = { + 'version': None, + 'openssl_version': '', + } + if OpenSSL: + pyopenssl_info = { + 'version': OpenSSL.__version__, + 'openssl_version': '%x' % OpenSSL.SSL.OPENSSL_VERSION_NUMBER, + } + cryptography_info = { + 'version': getattr(cryptography, '__version__', ''), + } + idna_info = { + 'version': getattr(idna, '__version__', ''), + } + + # OPENSSL_VERSION_NUMBER doesn't exist in the Python 2.6 ssl module. + system_ssl = getattr(ssl, 'OPENSSL_VERSION_NUMBER', None) + system_ssl_info = { + 'version': '%x' % system_ssl if system_ssl is not None else '' + } + + return { + 'platform': platform_info, + 'implementation': implementation_info, + 'system_ssl': system_ssl_info, + 'using_pyopenssl': pyopenssl is not None, + 'pyOpenSSL': pyopenssl_info, + 'urllib3': urllib3_info, + 'chardet': chardet_info, + 'cryptography': cryptography_info, + 'idna': idna_info, + 'requests': { + 'version': requests_version, + }, + } + + +def main(): + """Pretty-print the bug information as JSON.""" + print(json.dumps(info(), sort_keys=True, indent=2)) + + +if __name__ == '__main__': + main() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/hooks.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/hooks.py new file mode 100644 index 00000000..32b32de7 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/hooks.py @@ -0,0 +1,34 @@ +# -*- coding: utf-8 -*- + +""" +requests.hooks +~~~~~~~~~~~~~~ + +This module provides the capabilities for the Requests hooks system. + +Available hooks: + +``response``: + The response generated from a Request. +""" +HOOKS = ['response'] + + +def default_hooks(): + return dict((event, []) for event in HOOKS) + +# TODO: response is the only one + + +def dispatch_hook(key, hooks, hook_data, **kwargs): + """Dispatches a hook dictionary on a given piece of data.""" + hooks = hooks or dict() + hooks = hooks.get(key) + if hooks: + if hasattr(hooks, '__call__'): + hooks = [hooks] + for hook in hooks: + _hook_data = hook(hook_data, **kwargs) + if _hook_data is not None: + hook_data = _hook_data + return hook_data diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/models.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/models.py new file mode 100644 index 00000000..4ab4feca --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/models.py @@ -0,0 +1,948 @@ +# -*- coding: utf-8 -*- + +""" +requests.models +~~~~~~~~~~~~~~~ + +This module contains the primary objects that power Requests. +""" + +import collections +import datetime +import sys + +# Import encoding now, to avoid implicit import later. +# Implicit import within threads may cause LookupError when standard library is in a ZIP, +# such as in Embedded Python. See https://github.com/requests/requests/issues/3578. +import encodings.idna + +from pip._vendor.urllib3.fields import RequestField +from pip._vendor.urllib3.filepost import encode_multipart_formdata +from pip._vendor.urllib3.util import parse_url +from pip._vendor.urllib3.exceptions import ( + DecodeError, ReadTimeoutError, ProtocolError, LocationParseError) + +from io import UnsupportedOperation +from .hooks import default_hooks +from .structures import CaseInsensitiveDict + +from .auth import HTTPBasicAuth +from .cookies import cookiejar_from_dict, get_cookie_header, _copy_cookie_jar +from .exceptions import ( + HTTPError, MissingSchema, InvalidURL, ChunkedEncodingError, + ContentDecodingError, ConnectionError, StreamConsumedError) +from ._internal_utils import to_native_string, unicode_is_ascii +from .utils import ( + guess_filename, get_auth_from_url, requote_uri, + stream_decode_response_unicode, to_key_val_list, parse_header_links, + iter_slices, guess_json_utf, super_len, check_header_validity) +from .compat import ( + cookielib, urlunparse, urlsplit, urlencode, str, bytes, + is_py2, chardet, builtin_str, basestring) +from .compat import json as complexjson +from .status_codes import codes + +#: The set of HTTP status codes that indicate an automatically +#: processable redirect. +REDIRECT_STATI = ( + codes.moved, # 301 + codes.found, # 302 + codes.other, # 303 + codes.temporary_redirect, # 307 + codes.permanent_redirect, # 308 +) + +DEFAULT_REDIRECT_LIMIT = 30 +CONTENT_CHUNK_SIZE = 10 * 1024 +ITER_CHUNK_SIZE = 512 + + +class RequestEncodingMixin(object): + @property + def path_url(self): + """Build the path URL to use.""" + + url = [] + + p = urlsplit(self.url) + + path = p.path + if not path: + path = '/' + + url.append(path) + + query = p.query + if query: + url.append('?') + url.append(query) + + return ''.join(url) + + @staticmethod + def _encode_params(data): + """Encode parameters in a piece of data. + + Will successfully encode parameters when passed as a dict or a list of + 2-tuples. Order is retained if data is a list of 2-tuples but arbitrary + if parameters are supplied as a dict. + """ + + if isinstance(data, (str, bytes)): + return data + elif hasattr(data, 'read'): + return data + elif hasattr(data, '__iter__'): + result = [] + for k, vs in to_key_val_list(data): + if isinstance(vs, basestring) or not hasattr(vs, '__iter__'): + vs = [vs] + for v in vs: + if v is not None: + result.append( + (k.encode('utf-8') if isinstance(k, str) else k, + v.encode('utf-8') if isinstance(v, str) else v)) + return urlencode(result, doseq=True) + else: + return data + + @staticmethod + def _encode_files(files, data): + """Build the body for a multipart/form-data request. + + Will successfully encode files when passed as a dict or a list of + tuples. Order is retained if data is a list of tuples but arbitrary + if parameters are supplied as a dict. + The tuples may be 2-tuples (filename, fileobj), 3-tuples (filename, fileobj, contentype) + or 4-tuples (filename, fileobj, contentype, custom_headers). + """ + if (not files): + raise ValueError("Files must be provided.") + elif isinstance(data, basestring): + raise ValueError("Data must not be a string.") + + new_fields = [] + fields = to_key_val_list(data or {}) + files = to_key_val_list(files or {}) + + for field, val in fields: + if isinstance(val, basestring) or not hasattr(val, '__iter__'): + val = [val] + for v in val: + if v is not None: + # Don't call str() on bytestrings: in Py3 it all goes wrong. + if not isinstance(v, bytes): + v = str(v) + + new_fields.append( + (field.decode('utf-8') if isinstance(field, bytes) else field, + v.encode('utf-8') if isinstance(v, str) else v)) + + for (k, v) in files: + # support for explicit filename + ft = None + fh = None + if isinstance(v, (tuple, list)): + if len(v) == 2: + fn, fp = v + elif len(v) == 3: + fn, fp, ft = v + else: + fn, fp, ft, fh = v + else: + fn = guess_filename(v) or k + fp = v + + if isinstance(fp, (str, bytes, bytearray)): + fdata = fp + else: + fdata = fp.read() + + rf = RequestField(name=k, data=fdata, filename=fn, headers=fh) + rf.make_multipart(content_type=ft) + new_fields.append(rf) + + body, content_type = encode_multipart_formdata(new_fields) + + return body, content_type + + +class RequestHooksMixin(object): + def register_hook(self, event, hook): + """Properly register a hook.""" + + if event not in self.hooks: + raise ValueError('Unsupported event specified, with event name "%s"' % (event)) + + if isinstance(hook, collections.Callable): + self.hooks[event].append(hook) + elif hasattr(hook, '__iter__'): + self.hooks[event].extend(h for h in hook if isinstance(h, collections.Callable)) + + def deregister_hook(self, event, hook): + """Deregister a previously registered hook. + Returns True if the hook existed, False if not. + """ + + try: + self.hooks[event].remove(hook) + return True + except ValueError: + return False + + +class Request(RequestHooksMixin): + """A user-created :class:`Request <Request>` object. + + Used to prepare a :class:`PreparedRequest <PreparedRequest>`, which is sent to the server. + + :param method: HTTP method to use. + :param url: URL to send. + :param headers: dictionary of headers to send. + :param files: dictionary of {filename: fileobject} files to multipart upload. + :param data: the body to attach to the request. If a dictionary is provided, form-encoding will take place. + :param json: json for the body to attach to the request (if files or data is not specified). + :param params: dictionary of URL parameters to append to the URL. + :param auth: Auth handler or (user, pass) tuple. + :param cookies: dictionary or CookieJar of cookies to attach to this request. + :param hooks: dictionary of callback hooks, for internal usage. + + Usage:: + + >>> import requests + >>> req = requests.Request('GET', 'http://httpbin.org/get') + >>> req.prepare() + <PreparedRequest [GET]> + """ + + def __init__(self, + method=None, url=None, headers=None, files=None, data=None, + params=None, auth=None, cookies=None, hooks=None, json=None): + + # Default empty dicts for dict params. + data = [] if data is None else data + files = [] if files is None else files + headers = {} if headers is None else headers + params = {} if params is None else params + hooks = {} if hooks is None else hooks + + self.hooks = default_hooks() + for (k, v) in list(hooks.items()): + self.register_hook(event=k, hook=v) + + self.method = method + self.url = url + self.headers = headers + self.files = files + self.data = data + self.json = json + self.params = params + self.auth = auth + self.cookies = cookies + + def __repr__(self): + return '<Request [%s]>' % (self.method) + + def prepare(self): + """Constructs a :class:`PreparedRequest <PreparedRequest>` for transmission and returns it.""" + p = PreparedRequest() + p.prepare( + method=self.method, + url=self.url, + headers=self.headers, + files=self.files, + data=self.data, + json=self.json, + params=self.params, + auth=self.auth, + cookies=self.cookies, + hooks=self.hooks, + ) + return p + + +class PreparedRequest(RequestEncodingMixin, RequestHooksMixin): + """The fully mutable :class:`PreparedRequest <PreparedRequest>` object, + containing the exact bytes that will be sent to the server. + + Generated from either a :class:`Request <Request>` object or manually. + + Usage:: + + >>> import requests + >>> req = requests.Request('GET', 'http://httpbin.org/get') + >>> r = req.prepare() + <PreparedRequest [GET]> + + >>> s = requests.Session() + >>> s.send(r) + <Response [200]> + """ + + def __init__(self): + #: HTTP verb to send to the server. + self.method = None + #: HTTP URL to send the request to. + self.url = None + #: dictionary of HTTP headers. + self.headers = None + # The `CookieJar` used to create the Cookie header will be stored here + # after prepare_cookies is called + self._cookies = None + #: request body to send to the server. + self.body = None + #: dictionary of callback hooks, for internal usage. + self.hooks = default_hooks() + #: integer denoting starting position of a readable file-like body. + self._body_position = None + + def prepare(self, + method=None, url=None, headers=None, files=None, data=None, + params=None, auth=None, cookies=None, hooks=None, json=None): + """Prepares the entire request with the given parameters.""" + + self.prepare_method(method) + self.prepare_url(url, params) + self.prepare_headers(headers) + self.prepare_cookies(cookies) + self.prepare_body(data, files, json) + self.prepare_auth(auth, url) + + # Note that prepare_auth must be last to enable authentication schemes + # such as OAuth to work on a fully prepared request. + + # This MUST go after prepare_auth. Authenticators could add a hook + self.prepare_hooks(hooks) + + def __repr__(self): + return '<PreparedRequest [%s]>' % (self.method) + + def copy(self): + p = PreparedRequest() + p.method = self.method + p.url = self.url + p.headers = self.headers.copy() if self.headers is not None else None + p._cookies = _copy_cookie_jar(self._cookies) + p.body = self.body + p.hooks = self.hooks + p._body_position = self._body_position + return p + + def prepare_method(self, method): + """Prepares the given HTTP method.""" + self.method = method + if self.method is not None: + self.method = to_native_string(self.method.upper()) + + @staticmethod + def _get_idna_encoded_host(host): + from pip._vendor import idna + + try: + host = idna.encode(host, uts46=True).decode('utf-8') + except idna.IDNAError: + raise UnicodeError + return host + + def prepare_url(self, url, params): + """Prepares the given HTTP URL.""" + #: Accept objects that have string representations. + #: We're unable to blindly call unicode/str functions + #: as this will include the bytestring indicator (b'') + #: on python 3.x. + #: https://github.com/requests/requests/pull/2238 + if isinstance(url, bytes): + url = url.decode('utf8') + else: + url = unicode(url) if is_py2 else str(url) + + # Remove leading whitespaces from url + url = url.lstrip() + + # Don't do any URL preparation for non-HTTP schemes like `mailto`, + # `data` etc to work around exceptions from `url_parse`, which + # handles RFC 3986 only. + if ':' in url and not url.lower().startswith('http'): + self.url = url + return + + # Support for unicode domain names and paths. + try: + scheme, auth, host, port, path, query, fragment = parse_url(url) + except LocationParseError as e: + raise InvalidURL(*e.args) + + if not scheme: + error = ("Invalid URL {0!r}: No schema supplied. Perhaps you meant http://{0}?") + error = error.format(to_native_string(url, 'utf8')) + + raise MissingSchema(error) + + if not host: + raise InvalidURL("Invalid URL %r: No host supplied" % url) + + # In general, we want to try IDNA encoding the hostname if the string contains + # non-ASCII characters. This allows users to automatically get the correct IDNA + # behaviour. For strings containing only ASCII characters, we need to also verify + # it doesn't start with a wildcard (*), before allowing the unencoded hostname. + if not unicode_is_ascii(host): + try: + host = self._get_idna_encoded_host(host) + except UnicodeError: + raise InvalidURL('URL has an invalid label.') + elif host.startswith(u'*'): + raise InvalidURL('URL has an invalid label.') + + # Carefully reconstruct the network location + netloc = auth or '' + if netloc: + netloc += '@' + netloc += host + if port: + netloc += ':' + str(port) + + # Bare domains aren't valid URLs. + if not path: + path = '/' + + if is_py2: + if isinstance(scheme, str): + scheme = scheme.encode('utf-8') + if isinstance(netloc, str): + netloc = netloc.encode('utf-8') + if isinstance(path, str): + path = path.encode('utf-8') + if isinstance(query, str): + query = query.encode('utf-8') + if isinstance(fragment, str): + fragment = fragment.encode('utf-8') + + if isinstance(params, (str, bytes)): + params = to_native_string(params) + + enc_params = self._encode_params(params) + if enc_params: + if query: + query = '%s&%s' % (query, enc_params) + else: + query = enc_params + + url = requote_uri(urlunparse([scheme, netloc, path, None, query, fragment])) + self.url = url + + def prepare_headers(self, headers): + """Prepares the given HTTP headers.""" + + self.headers = CaseInsensitiveDict() + if headers: + for header in headers.items(): + # Raise exception on invalid header value. + check_header_validity(header) + name, value = header + self.headers[to_native_string(name)] = value + + def prepare_body(self, data, files, json=None): + """Prepares the given HTTP body data.""" + + # Check if file, fo, generator, iterator. + # If not, run through normal process. + + # Nottin' on you. + body = None + content_type = None + + if not data and json is not None: + # urllib3 requires a bytes-like body. Python 2's json.dumps + # provides this natively, but Python 3 gives a Unicode string. + content_type = 'application/json' + body = complexjson.dumps(json) + if not isinstance(body, bytes): + body = body.encode('utf-8') + + is_stream = all([ + hasattr(data, '__iter__'), + not isinstance(data, (basestring, list, tuple, collections.Mapping)) + ]) + + try: + length = super_len(data) + except (TypeError, AttributeError, UnsupportedOperation): + length = None + + if is_stream: + body = data + + if getattr(body, 'tell', None) is not None: + # Record the current file position before reading. + # This will allow us to rewind a file in the event + # of a redirect. + try: + self._body_position = body.tell() + except (IOError, OSError): + # This differentiates from None, allowing us to catch + # a failed `tell()` later when trying to rewind the body + self._body_position = object() + + if files: + raise NotImplementedError('Streamed bodies and files are mutually exclusive.') + + if length: + self.headers['Content-Length'] = builtin_str(length) + else: + self.headers['Transfer-Encoding'] = 'chunked' + else: + # Multi-part file uploads. + if files: + (body, content_type) = self._encode_files(files, data) + else: + if data: + body = self._encode_params(data) + if isinstance(data, basestring) or hasattr(data, 'read'): + content_type = None + else: + content_type = 'application/x-www-form-urlencoded' + + self.prepare_content_length(body) + + # Add content-type if it wasn't explicitly provided. + if content_type and ('content-type' not in self.headers): + self.headers['Content-Type'] = content_type + + self.body = body + + def prepare_content_length(self, body): + """Prepare Content-Length header based on request method and body""" + if body is not None: + length = super_len(body) + if length: + # If length exists, set it. Otherwise, we fallback + # to Transfer-Encoding: chunked. + self.headers['Content-Length'] = builtin_str(length) + elif self.method not in ('GET', 'HEAD') and self.headers.get('Content-Length') is None: + # Set Content-Length to 0 for methods that can have a body + # but don't provide one. (i.e. not GET or HEAD) + self.headers['Content-Length'] = '0' + + def prepare_auth(self, auth, url=''): + """Prepares the given HTTP auth data.""" + + # If no Auth is explicitly provided, extract it from the URL first. + if auth is None: + url_auth = get_auth_from_url(self.url) + auth = url_auth if any(url_auth) else None + + if auth: + if isinstance(auth, tuple) and len(auth) == 2: + # special-case basic HTTP auth + auth = HTTPBasicAuth(*auth) + + # Allow auth to make its changes. + r = auth(self) + + # Update self to reflect the auth changes. + self.__dict__.update(r.__dict__) + + # Recompute Content-Length + self.prepare_content_length(self.body) + + def prepare_cookies(self, cookies): + """Prepares the given HTTP cookie data. + + This function eventually generates a ``Cookie`` header from the + given cookies using cookielib. Due to cookielib's design, the header + will not be regenerated if it already exists, meaning this function + can only be called once for the life of the + :class:`PreparedRequest <PreparedRequest>` object. Any subsequent calls + to ``prepare_cookies`` will have no actual effect, unless the "Cookie" + header is removed beforehand. + """ + if isinstance(cookies, cookielib.CookieJar): + self._cookies = cookies + else: + self._cookies = cookiejar_from_dict(cookies) + + cookie_header = get_cookie_header(self._cookies, self) + if cookie_header is not None: + self.headers['Cookie'] = cookie_header + + def prepare_hooks(self, hooks): + """Prepares the given hooks.""" + # hooks can be passed as None to the prepare method and to this + # method. To prevent iterating over None, simply use an empty list + # if hooks is False-y + hooks = hooks or [] + for event in hooks: + self.register_hook(event, hooks[event]) + + +class Response(object): + """The :class:`Response <Response>` object, which contains a + server's response to an HTTP request. + """ + + __attrs__ = [ + '_content', 'status_code', 'headers', 'url', 'history', + 'encoding', 'reason', 'cookies', 'elapsed', 'request' + ] + + def __init__(self): + self._content = False + self._content_consumed = False + self._next = None + + #: Integer Code of responded HTTP Status, e.g. 404 or 200. + self.status_code = None + + #: Case-insensitive Dictionary of Response Headers. + #: For example, ``headers['content-encoding']`` will return the + #: value of a ``'Content-Encoding'`` response header. + self.headers = CaseInsensitiveDict() + + #: File-like object representation of response (for advanced usage). + #: Use of ``raw`` requires that ``stream=True`` be set on the request. + # This requirement does not apply for use internally to Requests. + self.raw = None + + #: Final URL location of Response. + self.url = None + + #: Encoding to decode with when accessing r.text. + self.encoding = None + + #: A list of :class:`Response <Response>` objects from + #: the history of the Request. Any redirect responses will end + #: up here. The list is sorted from the oldest to the most recent request. + self.history = [] + + #: Textual reason of responded HTTP Status, e.g. "Not Found" or "OK". + self.reason = None + + #: A CookieJar of Cookies the server sent back. + self.cookies = cookiejar_from_dict({}) + + #: The amount of time elapsed between sending the request + #: and the arrival of the response (as a timedelta). + #: This property specifically measures the time taken between sending + #: the first byte of the request and finishing parsing the headers. It + #: is therefore unaffected by consuming the response content or the + #: value of the ``stream`` keyword argument. + self.elapsed = datetime.timedelta(0) + + #: The :class:`PreparedRequest <PreparedRequest>` object to which this + #: is a response. + self.request = None + + def __enter__(self): + return self + + def __exit__(self, *args): + self.close() + + def __getstate__(self): + # Consume everything; accessing the content attribute makes + # sure the content has been fully read. + if not self._content_consumed: + self.content + + return dict( + (attr, getattr(self, attr, None)) + for attr in self.__attrs__ + ) + + def __setstate__(self, state): + for name, value in state.items(): + setattr(self, name, value) + + # pickled objects do not have .raw + setattr(self, '_content_consumed', True) + setattr(self, 'raw', None) + + def __repr__(self): + return '<Response [%s]>' % (self.status_code) + + def __bool__(self): + """Returns True if :attr:`status_code` is less than 400. + + This attribute checks if the status code of the response is between + 400 and 600 to see if there was a client error or a server error. If + the status code, is between 200 and 400, this will return True. This + is **not** a check to see if the response code is ``200 OK``. + """ + return self.ok + + def __nonzero__(self): + """Returns True if :attr:`status_code` is less than 400. + + This attribute checks if the status code of the response is between + 400 and 600 to see if there was a client error or a server error. If + the status code, is between 200 and 400, this will return True. This + is **not** a check to see if the response code is ``200 OK``. + """ + return self.ok + + def __iter__(self): + """Allows you to use a response as an iterator.""" + return self.iter_content(128) + + @property + def ok(self): + """Returns True if :attr:`status_code` is less than 400. + + This attribute checks if the status code of the response is between + 400 and 600 to see if there was a client error or a server error. If + the status code, is between 200 and 400, this will return True. This + is **not** a check to see if the response code is ``200 OK``. + """ + try: + self.raise_for_status() + except HTTPError: + return False + return True + + @property + def is_redirect(self): + """True if this Response is a well-formed HTTP redirect that could have + been processed automatically (by :meth:`Session.resolve_redirects`). + """ + return ('location' in self.headers and self.status_code in REDIRECT_STATI) + + @property + def is_permanent_redirect(self): + """True if this Response one of the permanent versions of redirect.""" + return ('location' in self.headers and self.status_code in (codes.moved_permanently, codes.permanent_redirect)) + + @property + def next(self): + """Returns a PreparedRequest for the next request in a redirect chain, if there is one.""" + return self._next + + @property + def apparent_encoding(self): + """The apparent encoding, provided by the chardet library.""" + return chardet.detect(self.content)['encoding'] + + def iter_content(self, chunk_size=1, decode_unicode=False): + """Iterates over the response data. When stream=True is set on the + request, this avoids reading the content at once into memory for + large responses. The chunk size is the number of bytes it should + read into memory. This is not necessarily the length of each item + returned as decoding can take place. + + chunk_size must be of type int or None. A value of None will + function differently depending on the value of `stream`. + stream=True will read data as it arrives in whatever size the + chunks are received. If stream=False, data is returned as + a single chunk. + + If decode_unicode is True, content will be decoded using the best + available encoding based on the response. + """ + + def generate(): + # Special case for urllib3. + if hasattr(self.raw, 'stream'): + try: + for chunk in self.raw.stream(chunk_size, decode_content=True): + yield chunk + except ProtocolError as e: + raise ChunkedEncodingError(e) + except DecodeError as e: + raise ContentDecodingError(e) + except ReadTimeoutError as e: + raise ConnectionError(e) + else: + # Standard file-like object. + while True: + chunk = self.raw.read(chunk_size) + if not chunk: + break + yield chunk + + self._content_consumed = True + + if self._content_consumed and isinstance(self._content, bool): + raise StreamConsumedError() + elif chunk_size is not None and not isinstance(chunk_size, int): + raise TypeError("chunk_size must be an int, it is instead a %s." % type(chunk_size)) + # simulate reading small chunks of the content + reused_chunks = iter_slices(self._content, chunk_size) + + stream_chunks = generate() + + chunks = reused_chunks if self._content_consumed else stream_chunks + + if decode_unicode: + chunks = stream_decode_response_unicode(chunks, self) + + return chunks + + def iter_lines(self, chunk_size=ITER_CHUNK_SIZE, decode_unicode=None, delimiter=None): + """Iterates over the response data, one line at a time. When + stream=True is set on the request, this avoids reading the + content at once into memory for large responses. + + .. note:: This method is not reentrant safe. + """ + + pending = None + + for chunk in self.iter_content(chunk_size=chunk_size, decode_unicode=decode_unicode): + + if pending is not None: + chunk = pending + chunk + + if delimiter: + lines = chunk.split(delimiter) + else: + lines = chunk.splitlines() + + if lines and lines[-1] and chunk and lines[-1][-1] == chunk[-1]: + pending = lines.pop() + else: + pending = None + + for line in lines: + yield line + + if pending is not None: + yield pending + + @property + def content(self): + """Content of the response, in bytes.""" + + if self._content is False: + # Read the contents. + if self._content_consumed: + raise RuntimeError( + 'The content for this response was already consumed') + + if self.status_code == 0 or self.raw is None: + self._content = None + else: + self._content = bytes().join(self.iter_content(CONTENT_CHUNK_SIZE)) or bytes() + + self._content_consumed = True + # don't need to release the connection; that's been handled by urllib3 + # since we exhausted the data. + return self._content + + @property + def text(self): + """Content of the response, in unicode. + + If Response.encoding is None, encoding will be guessed using + ``chardet``. + + The encoding of the response content is determined based solely on HTTP + headers, following RFC 2616 to the letter. If you can take advantage of + non-HTTP knowledge to make a better guess at the encoding, you should + set ``r.encoding`` appropriately before accessing this property. + """ + + # Try charset from content-type + content = None + encoding = self.encoding + + if not self.content: + return str('') + + # Fallback to auto-detected encoding. + if self.encoding is None: + encoding = self.apparent_encoding + + # Decode unicode from given encoding. + try: + content = str(self.content, encoding, errors='replace') + except (LookupError, TypeError): + # A LookupError is raised if the encoding was not found which could + # indicate a misspelling or similar mistake. + # + # A TypeError can be raised if encoding is None + # + # So we try blindly encoding. + content = str(self.content, errors='replace') + + return content + + def json(self, **kwargs): + r"""Returns the json-encoded content of a response, if any. + + :param \*\*kwargs: Optional arguments that ``json.loads`` takes. + :raises ValueError: If the response body does not contain valid json. + """ + + if not self.encoding and self.content and len(self.content) > 3: + # No encoding set. JSON RFC 4627 section 3 states we should expect + # UTF-8, -16 or -32. Detect which one to use; If the detection or + # decoding fails, fall back to `self.text` (using chardet to make + # a best guess). + encoding = guess_json_utf(self.content) + if encoding is not None: + try: + return complexjson.loads( + self.content.decode(encoding), **kwargs + ) + except UnicodeDecodeError: + # Wrong UTF codec detected; usually because it's not UTF-8 + # but some other 8-bit codec. This is an RFC violation, + # and the server didn't bother to tell us what codec *was* + # used. + pass + return complexjson.loads(self.text, **kwargs) + + @property + def links(self): + """Returns the parsed header links of the response, if any.""" + + header = self.headers.get('link') + + # l = MultiDict() + l = {} + + if header: + links = parse_header_links(header) + + for link in links: + key = link.get('rel') or link.get('url') + l[key] = link + + return l + + def raise_for_status(self): + """Raises stored :class:`HTTPError`, if one occurred.""" + + http_error_msg = '' + if isinstance(self.reason, bytes): + # We attempt to decode utf-8 first because some servers + # choose to localize their reason strings. If the string + # isn't utf-8, we fall back to iso-8859-1 for all other + # encodings. (See PR #3538) + try: + reason = self.reason.decode('utf-8') + except UnicodeDecodeError: + reason = self.reason.decode('iso-8859-1') + else: + reason = self.reason + + if 400 <= self.status_code < 500: + http_error_msg = u'%s Client Error: %s for url: %s' % (self.status_code, reason, self.url) + + elif 500 <= self.status_code < 600: + http_error_msg = u'%s Server Error: %s for url: %s' % (self.status_code, reason, self.url) + + if http_error_msg: + raise HTTPError(http_error_msg, response=self) + + def close(self): + """Releases the connection back to the pool. Once this method has been + called the underlying ``raw`` object must not be accessed again. + + *Note: Should not normally need to be called explicitly.* + """ + if not self._content_consumed: + self.raw.close() + + release_conn = getattr(self.raw, 'release_conn', None) + if release_conn is not None: + release_conn() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/packages.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/packages.py new file mode 100644 index 00000000..9582fa73 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/packages.py @@ -0,0 +1,16 @@ +import sys + +# This code exists for backwards compatibility reasons. +# I don't like it either. Just look the other way. :) + +for package in ('urllib3', 'idna', 'chardet'): + vendored_package = "pip._vendor." + package + locals()[package] = __import__(vendored_package) + # This traversal is apparently necessary such that the identities are + # preserved (requests.packages.urllib3.* is urllib3.*) + for mod in list(sys.modules): + if mod == vendored_package or mod.startswith(vendored_package + '.'): + unprefixed_mod = mod[len("pip._vendor."):] + sys.modules['pip._vendor.requests.packages.' + unprefixed_mod] = sys.modules[mod] + +# Kinda cool, though, right? diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/sessions.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/sessions.py new file mode 100644 index 00000000..6570e733 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/sessions.py @@ -0,0 +1,737 @@ +# -*- coding: utf-8 -*- + +""" +requests.session +~~~~~~~~~~~~~~~~ + +This module provides a Session object to manage and persist settings across +requests (cookies, auth, proxies). +""" +import os +import platform +import time +from collections import Mapping +from datetime import timedelta + +from .auth import _basic_auth_str +from .compat import cookielib, is_py3, OrderedDict, urljoin, urlparse +from .cookies import ( + cookiejar_from_dict, extract_cookies_to_jar, RequestsCookieJar, merge_cookies) +from .models import Request, PreparedRequest, DEFAULT_REDIRECT_LIMIT +from .hooks import default_hooks, dispatch_hook +from ._internal_utils import to_native_string +from .utils import to_key_val_list, default_headers +from .exceptions import ( + TooManyRedirects, InvalidSchema, ChunkedEncodingError, ContentDecodingError) + +from .structures import CaseInsensitiveDict +from .adapters import HTTPAdapter + +from .utils import ( + requote_uri, get_environ_proxies, get_netrc_auth, should_bypass_proxies, + get_auth_from_url, rewind_body +) + +from .status_codes import codes + +# formerly defined here, reexposed here for backward compatibility +from .models import REDIRECT_STATI + +# Preferred clock, based on which one is more accurate on a given system. +if platform.system() == 'Windows': + try: # Python 3.3+ + preferred_clock = time.perf_counter + except AttributeError: # Earlier than Python 3. + preferred_clock = time.clock +else: + preferred_clock = time.time + + +def merge_setting(request_setting, session_setting, dict_class=OrderedDict): + """Determines appropriate setting for a given request, taking into account + the explicit setting on that request, and the setting in the session. If a + setting is a dictionary, they will be merged together using `dict_class` + """ + + if session_setting is None: + return request_setting + + if request_setting is None: + return session_setting + + # Bypass if not a dictionary (e.g. verify) + if not ( + isinstance(session_setting, Mapping) and + isinstance(request_setting, Mapping) + ): + return request_setting + + merged_setting = dict_class(to_key_val_list(session_setting)) + merged_setting.update(to_key_val_list(request_setting)) + + # Remove keys that are set to None. Extract keys first to avoid altering + # the dictionary during iteration. + none_keys = [k for (k, v) in merged_setting.items() if v is None] + for key in none_keys: + del merged_setting[key] + + return merged_setting + + +def merge_hooks(request_hooks, session_hooks, dict_class=OrderedDict): + """Properly merges both requests and session hooks. + + This is necessary because when request_hooks == {'response': []}, the + merge breaks Session hooks entirely. + """ + if session_hooks is None or session_hooks.get('response') == []: + return request_hooks + + if request_hooks is None or request_hooks.get('response') == []: + return session_hooks + + return merge_setting(request_hooks, session_hooks, dict_class) + + +class SessionRedirectMixin(object): + + def get_redirect_target(self, resp): + """Receives a Response. Returns a redirect URI or ``None``""" + # Due to the nature of how requests processes redirects this method will + # be called at least once upon the original response and at least twice + # on each subsequent redirect response (if any). + # If a custom mixin is used to handle this logic, it may be advantageous + # to cache the redirect location onto the response object as a private + # attribute. + if resp.is_redirect: + location = resp.headers['location'] + # Currently the underlying http module on py3 decode headers + # in latin1, but empirical evidence suggests that latin1 is very + # rarely used with non-ASCII characters in HTTP headers. + # It is more likely to get UTF8 header rather than latin1. + # This causes incorrect handling of UTF8 encoded location headers. + # To solve this, we re-encode the location in latin1. + if is_py3: + location = location.encode('latin1') + return to_native_string(location, 'utf8') + return None + + def resolve_redirects(self, resp, req, stream=False, timeout=None, + verify=True, cert=None, proxies=None, yield_requests=False, **adapter_kwargs): + """Receives a Response. Returns a generator of Responses or Requests.""" + + hist = [] # keep track of history + + url = self.get_redirect_target(resp) + while url: + prepared_request = req.copy() + + # Update history and keep track of redirects. + # resp.history must ignore the original request in this loop + hist.append(resp) + resp.history = hist[1:] + + try: + resp.content # Consume socket so it can be released + except (ChunkedEncodingError, ContentDecodingError, RuntimeError): + resp.raw.read(decode_content=False) + + if len(resp.history) >= self.max_redirects: + raise TooManyRedirects('Exceeded %s redirects.' % self.max_redirects, response=resp) + + # Release the connection back into the pool. + resp.close() + + # Handle redirection without scheme (see: RFC 1808 Section 4) + if url.startswith('//'): + parsed_rurl = urlparse(resp.url) + url = '%s:%s' % (to_native_string(parsed_rurl.scheme), url) + + # The scheme should be lower case... + parsed = urlparse(url) + url = parsed.geturl() + + # Facilitate relative 'location' headers, as allowed by RFC 7231. + # (e.g. '/path/to/resource' instead of 'http://domain.tld/path/to/resource') + # Compliant with RFC3986, we percent encode the url. + if not parsed.netloc: + url = urljoin(resp.url, requote_uri(url)) + else: + url = requote_uri(url) + + prepared_request.url = to_native_string(url) + + self.rebuild_method(prepared_request, resp) + + # https://github.com/requests/requests/issues/1084 + if resp.status_code not in (codes.temporary_redirect, codes.permanent_redirect): + # https://github.com/requests/requests/issues/3490 + purged_headers = ('Content-Length', 'Content-Type', 'Transfer-Encoding') + for header in purged_headers: + prepared_request.headers.pop(header, None) + prepared_request.body = None + + headers = prepared_request.headers + try: + del headers['Cookie'] + except KeyError: + pass + + # Extract any cookies sent on the response to the cookiejar + # in the new request. Because we've mutated our copied prepared + # request, use the old one that we haven't yet touched. + extract_cookies_to_jar(prepared_request._cookies, req, resp.raw) + merge_cookies(prepared_request._cookies, self.cookies) + prepared_request.prepare_cookies(prepared_request._cookies) + + # Rebuild auth and proxy information. + proxies = self.rebuild_proxies(prepared_request, proxies) + self.rebuild_auth(prepared_request, resp) + + # A failed tell() sets `_body_position` to `object()`. This non-None + # value ensures `rewindable` will be True, allowing us to raise an + # UnrewindableBodyError, instead of hanging the connection. + rewindable = ( + prepared_request._body_position is not None and + ('Content-Length' in headers or 'Transfer-Encoding' in headers) + ) + + # Attempt to rewind consumed file-like object. + if rewindable: + rewind_body(prepared_request) + + # Override the original request. + req = prepared_request + + if yield_requests: + yield req + else: + + resp = self.send( + req, + stream=stream, + timeout=timeout, + verify=verify, + cert=cert, + proxies=proxies, + allow_redirects=False, + **adapter_kwargs + ) + + extract_cookies_to_jar(self.cookies, prepared_request, resp.raw) + + # extract redirect url, if any, for the next loop + url = self.get_redirect_target(resp) + yield resp + + def rebuild_auth(self, prepared_request, response): + """When being redirected we may want to strip authentication from the + request to avoid leaking credentials. This method intelligently removes + and reapplies authentication where possible to avoid credential loss. + """ + headers = prepared_request.headers + url = prepared_request.url + + if 'Authorization' in headers: + # If we get redirected to a new host, we should strip out any + # authentication headers. + original_parsed = urlparse(response.request.url) + redirect_parsed = urlparse(url) + + if (original_parsed.hostname != redirect_parsed.hostname): + del headers['Authorization'] + + # .netrc might have more auth for us on our new host. + new_auth = get_netrc_auth(url) if self.trust_env else None + if new_auth is not None: + prepared_request.prepare_auth(new_auth) + + return + + def rebuild_proxies(self, prepared_request, proxies): + """This method re-evaluates the proxy configuration by considering the + environment variables. If we are redirected to a URL covered by + NO_PROXY, we strip the proxy configuration. Otherwise, we set missing + proxy keys for this URL (in case they were stripped by a previous + redirect). + + This method also replaces the Proxy-Authorization header where + necessary. + + :rtype: dict + """ + proxies = proxies if proxies is not None else {} + headers = prepared_request.headers + url = prepared_request.url + scheme = urlparse(url).scheme + new_proxies = proxies.copy() + no_proxy = proxies.get('no_proxy') + + bypass_proxy = should_bypass_proxies(url, no_proxy=no_proxy) + if self.trust_env and not bypass_proxy: + environ_proxies = get_environ_proxies(url, no_proxy=no_proxy) + + proxy = environ_proxies.get(scheme, environ_proxies.get('all')) + + if proxy: + new_proxies.setdefault(scheme, proxy) + + if 'Proxy-Authorization' in headers: + del headers['Proxy-Authorization'] + + try: + username, password = get_auth_from_url(new_proxies[scheme]) + except KeyError: + username, password = None, None + + if username and password: + headers['Proxy-Authorization'] = _basic_auth_str(username, password) + + return new_proxies + + def rebuild_method(self, prepared_request, response): + """When being redirected we may want to change the method of the request + based on certain specs or browser behavior. + """ + method = prepared_request.method + + # http://tools.ietf.org/html/rfc7231#section-6.4.4 + if response.status_code == codes.see_other and method != 'HEAD': + method = 'GET' + + # Do what the browsers do, despite standards... + # First, turn 302s into GETs. + if response.status_code == codes.found and method != 'HEAD': + method = 'GET' + + # Second, if a POST is responded to with a 301, turn it into a GET. + # This bizarre behaviour is explained in Issue 1704. + if response.status_code == codes.moved and method == 'POST': + method = 'GET' + + prepared_request.method = method + + +class Session(SessionRedirectMixin): + """A Requests session. + + Provides cookie persistence, connection-pooling, and configuration. + + Basic Usage:: + + >>> import requests + >>> s = requests.Session() + >>> s.get('http://httpbin.org/get') + <Response [200]> + + Or as a context manager:: + + >>> with requests.Session() as s: + >>> s.get('http://httpbin.org/get') + <Response [200]> + """ + + __attrs__ = [ + 'headers', 'cookies', 'auth', 'proxies', 'hooks', 'params', 'verify', + 'cert', 'prefetch', 'adapters', 'stream', 'trust_env', + 'max_redirects', + ] + + def __init__(self): + + #: A case-insensitive dictionary of headers to be sent on each + #: :class:`Request <Request>` sent from this + #: :class:`Session <Session>`. + self.headers = default_headers() + + #: Default Authentication tuple or object to attach to + #: :class:`Request <Request>`. + self.auth = None + + #: Dictionary mapping protocol or protocol and host to the URL of the proxy + #: (e.g. {'http': 'foo.bar:3128', 'http://host.name': 'foo.bar:4012'}) to + #: be used on each :class:`Request <Request>`. + self.proxies = {} + + #: Event-handling hooks. + self.hooks = default_hooks() + + #: Dictionary of querystring data to attach to each + #: :class:`Request <Request>`. The dictionary values may be lists for + #: representing multivalued query parameters. + self.params = {} + + #: Stream response content default. + self.stream = False + + #: SSL Verification default. + self.verify = True + + #: SSL client certificate default, if String, path to ssl client + #: cert file (.pem). If Tuple, ('cert', 'key') pair. + self.cert = None + + #: Maximum number of redirects allowed. If the request exceeds this + #: limit, a :class:`TooManyRedirects` exception is raised. + #: This defaults to requests.models.DEFAULT_REDIRECT_LIMIT, which is + #: 30. + self.max_redirects = DEFAULT_REDIRECT_LIMIT + + #: Trust environment settings for proxy configuration, default + #: authentication and similar. + self.trust_env = True + + #: A CookieJar containing all currently outstanding cookies set on this + #: session. By default it is a + #: :class:`RequestsCookieJar <requests.cookies.RequestsCookieJar>`, but + #: may be any other ``cookielib.CookieJar`` compatible object. + self.cookies = cookiejar_from_dict({}) + + # Default connection adapters. + self.adapters = OrderedDict() + self.mount('https://', HTTPAdapter()) + self.mount('http://', HTTPAdapter()) + + def __enter__(self): + return self + + def __exit__(self, *args): + self.close() + + def prepare_request(self, request): + """Constructs a :class:`PreparedRequest <PreparedRequest>` for + transmission and returns it. The :class:`PreparedRequest` has settings + merged from the :class:`Request <Request>` instance and those of the + :class:`Session`. + + :param request: :class:`Request` instance to prepare with this + session's settings. + :rtype: requests.PreparedRequest + """ + cookies = request.cookies or {} + + # Bootstrap CookieJar. + if not isinstance(cookies, cookielib.CookieJar): + cookies = cookiejar_from_dict(cookies) + + # Merge with session cookies + merged_cookies = merge_cookies( + merge_cookies(RequestsCookieJar(), self.cookies), cookies) + + # Set environment's basic authentication if not explicitly set. + auth = request.auth + if self.trust_env and not auth and not self.auth: + auth = get_netrc_auth(request.url) + + p = PreparedRequest() + p.prepare( + method=request.method.upper(), + url=request.url, + files=request.files, + data=request.data, + json=request.json, + headers=merge_setting(request.headers, self.headers, dict_class=CaseInsensitiveDict), + params=merge_setting(request.params, self.params), + auth=merge_setting(auth, self.auth), + cookies=merged_cookies, + hooks=merge_hooks(request.hooks, self.hooks), + ) + return p + + def request(self, method, url, + params=None, data=None, headers=None, cookies=None, files=None, + auth=None, timeout=None, allow_redirects=True, proxies=None, + hooks=None, stream=None, verify=None, cert=None, json=None): + """Constructs a :class:`Request <Request>`, prepares it and sends it. + Returns :class:`Response <Response>` object. + + :param method: method for the new :class:`Request` object. + :param url: URL for the new :class:`Request` object. + :param params: (optional) Dictionary or bytes to be sent in the query + string for the :class:`Request`. + :param data: (optional) Dictionary, bytes, or file-like object to send + in the body of the :class:`Request`. + :param json: (optional) json to send in the body of the + :class:`Request`. + :param headers: (optional) Dictionary of HTTP Headers to send with the + :class:`Request`. + :param cookies: (optional) Dict or CookieJar object to send with the + :class:`Request`. + :param files: (optional) Dictionary of ``'filename': file-like-objects`` + for multipart encoding upload. + :param auth: (optional) Auth tuple or callable to enable + Basic/Digest/Custom HTTP Auth. + :param timeout: (optional) How long to wait for the server to send + data before giving up, as a float, or a :ref:`(connect timeout, + read timeout) <timeouts>` tuple. + :type timeout: float or tuple + :param allow_redirects: (optional) Set to True by default. + :type allow_redirects: bool + :param proxies: (optional) Dictionary mapping protocol or protocol and + hostname to the URL of the proxy. + :param stream: (optional) whether to immediately download the response + content. Defaults to ``False``. + :param verify: (optional) Either a boolean, in which case it controls whether we verify + the server's TLS certificate, or a string, in which case it must be a path + to a CA bundle to use. Defaults to ``True``. + :param cert: (optional) if String, path to ssl client cert file (.pem). + If Tuple, ('cert', 'key') pair. + :rtype: requests.Response + """ + # Create the Request. + req = Request( + method=method.upper(), + url=url, + headers=headers, + files=files, + data=data or {}, + json=json, + params=params or {}, + auth=auth, + cookies=cookies, + hooks=hooks, + ) + prep = self.prepare_request(req) + + proxies = proxies or {} + + settings = self.merge_environment_settings( + prep.url, proxies, stream, verify, cert + ) + + # Send the request. + send_kwargs = { + 'timeout': timeout, + 'allow_redirects': allow_redirects, + } + send_kwargs.update(settings) + resp = self.send(prep, **send_kwargs) + + return resp + + def get(self, url, **kwargs): + r"""Sends a GET request. Returns :class:`Response` object. + + :param url: URL for the new :class:`Request` object. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :rtype: requests.Response + """ + + kwargs.setdefault('allow_redirects', True) + return self.request('GET', url, **kwargs) + + def options(self, url, **kwargs): + r"""Sends a OPTIONS request. Returns :class:`Response` object. + + :param url: URL for the new :class:`Request` object. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :rtype: requests.Response + """ + + kwargs.setdefault('allow_redirects', True) + return self.request('OPTIONS', url, **kwargs) + + def head(self, url, **kwargs): + r"""Sends a HEAD request. Returns :class:`Response` object. + + :param url: URL for the new :class:`Request` object. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :rtype: requests.Response + """ + + kwargs.setdefault('allow_redirects', False) + return self.request('HEAD', url, **kwargs) + + def post(self, url, data=None, json=None, **kwargs): + r"""Sends a POST request. Returns :class:`Response` object. + + :param url: URL for the new :class:`Request` object. + :param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`. + :param json: (optional) json to send in the body of the :class:`Request`. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :rtype: requests.Response + """ + + return self.request('POST', url, data=data, json=json, **kwargs) + + def put(self, url, data=None, **kwargs): + r"""Sends a PUT request. Returns :class:`Response` object. + + :param url: URL for the new :class:`Request` object. + :param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :rtype: requests.Response + """ + + return self.request('PUT', url, data=data, **kwargs) + + def patch(self, url, data=None, **kwargs): + r"""Sends a PATCH request. Returns :class:`Response` object. + + :param url: URL for the new :class:`Request` object. + :param data: (optional) Dictionary, bytes, or file-like object to send in the body of the :class:`Request`. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :rtype: requests.Response + """ + + return self.request('PATCH', url, data=data, **kwargs) + + def delete(self, url, **kwargs): + r"""Sends a DELETE request. Returns :class:`Response` object. + + :param url: URL for the new :class:`Request` object. + :param \*\*kwargs: Optional arguments that ``request`` takes. + :rtype: requests.Response + """ + + return self.request('DELETE', url, **kwargs) + + def send(self, request, **kwargs): + """Send a given PreparedRequest. + + :rtype: requests.Response + """ + # Set defaults that the hooks can utilize to ensure they always have + # the correct parameters to reproduce the previous request. + kwargs.setdefault('stream', self.stream) + kwargs.setdefault('verify', self.verify) + kwargs.setdefault('cert', self.cert) + kwargs.setdefault('proxies', self.proxies) + + # It's possible that users might accidentally send a Request object. + # Guard against that specific failure case. + if isinstance(request, Request): + raise ValueError('You can only send PreparedRequests.') + + # Set up variables needed for resolve_redirects and dispatching of hooks + allow_redirects = kwargs.pop('allow_redirects', True) + stream = kwargs.get('stream') + hooks = request.hooks + + # Get the appropriate adapter to use + adapter = self.get_adapter(url=request.url) + + # Start time (approximately) of the request + start = preferred_clock() + + # Send the request + r = adapter.send(request, **kwargs) + + # Total elapsed time of the request (approximately) + elapsed = preferred_clock() - start + r.elapsed = timedelta(seconds=elapsed) + + # Response manipulation hooks + r = dispatch_hook('response', hooks, r, **kwargs) + + # Persist cookies + if r.history: + + # If the hooks create history then we want those cookies too + for resp in r.history: + extract_cookies_to_jar(self.cookies, resp.request, resp.raw) + + extract_cookies_to_jar(self.cookies, request, r.raw) + + # Redirect resolving generator. + gen = self.resolve_redirects(r, request, **kwargs) + + # Resolve redirects if allowed. + history = [resp for resp in gen] if allow_redirects else [] + + # Shuffle things around if there's history. + if history: + # Insert the first (original) request at the start + history.insert(0, r) + # Get the last request made + r = history.pop() + r.history = history + + # If redirects aren't being followed, store the response on the Request for Response.next(). + if not allow_redirects: + try: + r._next = next(self.resolve_redirects(r, request, yield_requests=True, **kwargs)) + except StopIteration: + pass + + if not stream: + r.content + + return r + + def merge_environment_settings(self, url, proxies, stream, verify, cert): + """ + Check the environment and merge it with some settings. + + :rtype: dict + """ + # Gather clues from the surrounding environment. + if self.trust_env: + # Set environment's proxies. + no_proxy = proxies.get('no_proxy') if proxies is not None else None + env_proxies = get_environ_proxies(url, no_proxy=no_proxy) + for (k, v) in env_proxies.items(): + proxies.setdefault(k, v) + + # Look for requests environment configuration and be compatible + # with cURL. + if verify is True or verify is None: + verify = (os.environ.get('REQUESTS_CA_BUNDLE') or + os.environ.get('CURL_CA_BUNDLE')) + + # Merge all the kwargs. + proxies = merge_setting(proxies, self.proxies) + stream = merge_setting(stream, self.stream) + verify = merge_setting(verify, self.verify) + cert = merge_setting(cert, self.cert) + + return {'verify': verify, 'proxies': proxies, 'stream': stream, + 'cert': cert} + + def get_adapter(self, url): + """ + Returns the appropriate connection adapter for the given URL. + + :rtype: requests.adapters.BaseAdapter + """ + for (prefix, adapter) in self.adapters.items(): + + if url.lower().startswith(prefix): + return adapter + + # Nothing matches :-/ + raise InvalidSchema("No connection adapters were found for '%s'" % url) + + def close(self): + """Closes all adapters and as such the session""" + for v in self.adapters.values(): + v.close() + + def mount(self, prefix, adapter): + """Registers a connection adapter to a prefix. + + Adapters are sorted in descending order by prefix length. + """ + self.adapters[prefix] = adapter + keys_to_move = [k for k in self.adapters if len(k) < len(prefix)] + + for key in keys_to_move: + self.adapters[key] = self.adapters.pop(key) + + def __getstate__(self): + state = dict((attr, getattr(self, attr, None)) for attr in self.__attrs__) + return state + + def __setstate__(self, state): + for attr, value in state.items(): + setattr(self, attr, value) + + +def session(): + """ + Returns a :class:`Session` for context-management. + + :rtype: Session + """ + + return Session() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/status_codes.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/status_codes.py new file mode 100644 index 00000000..dee89190 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/status_codes.py @@ -0,0 +1,91 @@ +# -*- coding: utf-8 -*- + +from .structures import LookupDict + +_codes = { + + # Informational. + 100: ('continue',), + 101: ('switching_protocols',), + 102: ('processing',), + 103: ('checkpoint',), + 122: ('uri_too_long', 'request_uri_too_long'), + 200: ('ok', 'okay', 'all_ok', 'all_okay', 'all_good', '\\o/', '✓'), + 201: ('created',), + 202: ('accepted',), + 203: ('non_authoritative_info', 'non_authoritative_information'), + 204: ('no_content',), + 205: ('reset_content', 'reset'), + 206: ('partial_content', 'partial'), + 207: ('multi_status', 'multiple_status', 'multi_stati', 'multiple_stati'), + 208: ('already_reported',), + 226: ('im_used',), + + # Redirection. + 300: ('multiple_choices',), + 301: ('moved_permanently', 'moved', '\\o-'), + 302: ('found',), + 303: ('see_other', 'other'), + 304: ('not_modified',), + 305: ('use_proxy',), + 306: ('switch_proxy',), + 307: ('temporary_redirect', 'temporary_moved', 'temporary'), + 308: ('permanent_redirect', + 'resume_incomplete', 'resume',), # These 2 to be removed in 3.0 + + # Client Error. + 400: ('bad_request', 'bad'), + 401: ('unauthorized',), + 402: ('payment_required', 'payment'), + 403: ('forbidden',), + 404: ('not_found', '-o-'), + 405: ('method_not_allowed', 'not_allowed'), + 406: ('not_acceptable',), + 407: ('proxy_authentication_required', 'proxy_auth', 'proxy_authentication'), + 408: ('request_timeout', 'timeout'), + 409: ('conflict',), + 410: ('gone',), + 411: ('length_required',), + 412: ('precondition_failed', 'precondition'), + 413: ('request_entity_too_large',), + 414: ('request_uri_too_large',), + 415: ('unsupported_media_type', 'unsupported_media', 'media_type'), + 416: ('requested_range_not_satisfiable', 'requested_range', 'range_not_satisfiable'), + 417: ('expectation_failed',), + 418: ('im_a_teapot', 'teapot', 'i_am_a_teapot'), + 421: ('misdirected_request',), + 422: ('unprocessable_entity', 'unprocessable'), + 423: ('locked',), + 424: ('failed_dependency', 'dependency'), + 425: ('unordered_collection', 'unordered'), + 426: ('upgrade_required', 'upgrade'), + 428: ('precondition_required', 'precondition'), + 429: ('too_many_requests', 'too_many'), + 431: ('header_fields_too_large', 'fields_too_large'), + 444: ('no_response', 'none'), + 449: ('retry_with', 'retry'), + 450: ('blocked_by_windows_parental_controls', 'parental_controls'), + 451: ('unavailable_for_legal_reasons', 'legal_reasons'), + 499: ('client_closed_request',), + + # Server Error. + 500: ('internal_server_error', 'server_error', '/o\\', '✗'), + 501: ('not_implemented',), + 502: ('bad_gateway',), + 503: ('service_unavailable', 'unavailable'), + 504: ('gateway_timeout',), + 505: ('http_version_not_supported', 'http_version'), + 506: ('variant_also_negotiates',), + 507: ('insufficient_storage',), + 509: ('bandwidth_limit_exceeded', 'bandwidth'), + 510: ('not_extended',), + 511: ('network_authentication_required', 'network_auth', 'network_authentication'), +} + +codes = LookupDict(name='status_codes') + +for code, titles in _codes.items(): + for title in titles: + setattr(codes, title, code) + if not title.startswith(('\\', '/')): + setattr(codes, title.upper(), code) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/structures.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/structures.py new file mode 100644 index 00000000..05d2b3f5 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/structures.py @@ -0,0 +1,105 @@ +# -*- coding: utf-8 -*- + +""" +requests.structures +~~~~~~~~~~~~~~~~~~~ + +Data structures that power Requests. +""" + +import collections + +from .compat import OrderedDict + + +class CaseInsensitiveDict(collections.MutableMapping): + """A case-insensitive ``dict``-like object. + + Implements all methods and operations of + ``collections.MutableMapping`` as well as dict's ``copy``. Also + provides ``lower_items``. + + All keys are expected to be strings. The structure remembers the + case of the last key to be set, and ``iter(instance)``, + ``keys()``, ``items()``, ``iterkeys()``, and ``iteritems()`` + will contain case-sensitive keys. However, querying and contains + testing is case insensitive:: + + cid = CaseInsensitiveDict() + cid['Accept'] = 'application/json' + cid['aCCEPT'] == 'application/json' # True + list(cid) == ['Accept'] # True + + For example, ``headers['content-encoding']`` will return the + value of a ``'Content-Encoding'`` response header, regardless + of how the header name was originally stored. + + If the constructor, ``.update``, or equality comparison + operations are given keys that have equal ``.lower()``s, the + behavior is undefined. + """ + + def __init__(self, data=None, **kwargs): + self._store = OrderedDict() + if data is None: + data = {} + self.update(data, **kwargs) + + def __setitem__(self, key, value): + # Use the lowercased key for lookups, but store the actual + # key alongside the value. + self._store[key.lower()] = (key, value) + + def __getitem__(self, key): + return self._store[key.lower()][1] + + def __delitem__(self, key): + del self._store[key.lower()] + + def __iter__(self): + return (casedkey for casedkey, mappedvalue in self._store.values()) + + def __len__(self): + return len(self._store) + + def lower_items(self): + """Like iteritems(), but with all lowercase keys.""" + return ( + (lowerkey, keyval[1]) + for (lowerkey, keyval) + in self._store.items() + ) + + def __eq__(self, other): + if isinstance(other, collections.Mapping): + other = CaseInsensitiveDict(other) + else: + return NotImplemented + # Compare insensitively + return dict(self.lower_items()) == dict(other.lower_items()) + + # Copy is required + def copy(self): + return CaseInsensitiveDict(self._store.values()) + + def __repr__(self): + return str(dict(self.items())) + + +class LookupDict(dict): + """Dictionary lookup object.""" + + def __init__(self, name=None): + self.name = name + super(LookupDict, self).__init__() + + def __repr__(self): + return '<lookup \'%s\'>' % (self.name) + + def __getitem__(self, key): + # We allow fall-through here, so values default to None + + return self.__dict__.get(key, None) + + def get(self, key, default=None): + return self.__dict__.get(key, default) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/utils.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/utils.py new file mode 100644 index 00000000..5c47de98 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/requests/utils.py @@ -0,0 +1,904 @@ +# -*- coding: utf-8 -*- + +""" +requests.utils +~~~~~~~~~~~~~~ + +This module provides utility functions that are used within Requests +that are also useful for external consumption. +""" + +import cgi +import codecs +import collections +import contextlib +import io +import os +import platform +import re +import socket +import struct +import warnings + +from .__version__ import __version__ +from . import certs +# to_native_string is unused here, but imported here for backwards compatibility +from ._internal_utils import to_native_string +from .compat import parse_http_list as _parse_list_header +from .compat import ( + quote, urlparse, bytes, str, OrderedDict, unquote, getproxies, + proxy_bypass, urlunparse, basestring, integer_types, is_py3, + proxy_bypass_environment, getproxies_environment) +from .cookies import cookiejar_from_dict +from .structures import CaseInsensitiveDict +from .exceptions import ( + InvalidURL, InvalidHeader, FileModeWarning, UnrewindableBodyError) + +NETRC_FILES = ('.netrc', '_netrc') + +DEFAULT_CA_BUNDLE_PATH = certs.where() + + +if platform.system() == 'Windows': + # provide a proxy_bypass version on Windows without DNS lookups + + def proxy_bypass_registry(host): + if is_py3: + import winreg + else: + import _winreg as winreg + try: + internetSettings = winreg.OpenKey(winreg.HKEY_CURRENT_USER, + r'Software\Microsoft\Windows\CurrentVersion\Internet Settings') + proxyEnable = winreg.QueryValueEx(internetSettings, + 'ProxyEnable')[0] + proxyOverride = winreg.QueryValueEx(internetSettings, + 'ProxyOverride')[0] + except OSError: + return False + if not proxyEnable or not proxyOverride: + return False + + # make a check value list from the registry entry: replace the + # '<local>' string by the localhost entry and the corresponding + # canonical entry. + proxyOverride = proxyOverride.split(';') + # now check if we match one of the registry values. + for test in proxyOverride: + if test == '<local>': + if '.' not in host: + return True + test = test.replace(".", r"\.") # mask dots + test = test.replace("*", r".*") # change glob sequence + test = test.replace("?", r".") # change glob char + if re.match(test, host, re.I): + return True + return False + + def proxy_bypass(host): # noqa + """Return True, if the host should be bypassed. + + Checks proxy settings gathered from the environment, if specified, + or the registry. + """ + if getproxies_environment(): + return proxy_bypass_environment(host) + else: + return proxy_bypass_registry(host) + + +def dict_to_sequence(d): + """Returns an internal sequence dictionary update.""" + + if hasattr(d, 'items'): + d = d.items() + + return d + + +def super_len(o): + total_length = None + current_position = 0 + + if hasattr(o, '__len__'): + total_length = len(o) + + elif hasattr(o, 'len'): + total_length = o.len + + elif hasattr(o, 'fileno'): + try: + fileno = o.fileno() + except io.UnsupportedOperation: + pass + else: + total_length = os.fstat(fileno).st_size + + # Having used fstat to determine the file length, we need to + # confirm that this file was opened up in binary mode. + if 'b' not in o.mode: + warnings.warn(( + "Requests has determined the content-length for this " + "request using the binary size of the file: however, the " + "file has been opened in text mode (i.e. without the 'b' " + "flag in the mode). This may lead to an incorrect " + "content-length. In Requests 3.0, support will be removed " + "for files in text mode."), + FileModeWarning + ) + + if hasattr(o, 'tell'): + try: + current_position = o.tell() + except (OSError, IOError): + # This can happen in some weird situations, such as when the file + # is actually a special file descriptor like stdin. In this + # instance, we don't know what the length is, so set it to zero and + # let requests chunk it instead. + if total_length is not None: + current_position = total_length + else: + if hasattr(o, 'seek') and total_length is None: + # StringIO and BytesIO have seek but no useable fileno + try: + # seek to end of file + o.seek(0, 2) + total_length = o.tell() + + # seek back to current position to support + # partially read file-like objects + o.seek(current_position or 0) + except (OSError, IOError): + total_length = 0 + + if total_length is None: + total_length = 0 + + return max(0, total_length - current_position) + + +def get_netrc_auth(url, raise_errors=False): + """Returns the Requests tuple auth for a given url from netrc.""" + + try: + from netrc import netrc, NetrcParseError + + netrc_path = None + + for f in NETRC_FILES: + try: + loc = os.path.expanduser('~/{0}'.format(f)) + except KeyError: + # os.path.expanduser can fail when $HOME is undefined and + # getpwuid fails. See http://bugs.python.org/issue20164 & + # https://github.com/requests/requests/issues/1846 + return + + if os.path.exists(loc): + netrc_path = loc + break + + # Abort early if there isn't one. + if netrc_path is None: + return + + ri = urlparse(url) + + # Strip port numbers from netloc. This weird `if...encode`` dance is + # used for Python 3.2, which doesn't support unicode literals. + splitstr = b':' + if isinstance(url, str): + splitstr = splitstr.decode('ascii') + host = ri.netloc.split(splitstr)[0] + + try: + _netrc = netrc(netrc_path).authenticators(host) + if _netrc: + # Return with login / password + login_i = (0 if _netrc[0] else 1) + return (_netrc[login_i], _netrc[2]) + except (NetrcParseError, IOError): + # If there was a parsing error or a permissions issue reading the file, + # we'll just skip netrc auth unless explicitly asked to raise errors. + if raise_errors: + raise + + # AppEngine hackiness. + except (ImportError, AttributeError): + pass + + +def guess_filename(obj): + """Tries to guess the filename of the given object.""" + name = getattr(obj, 'name', None) + if (name and isinstance(name, basestring) and name[0] != '<' and + name[-1] != '>'): + return os.path.basename(name) + + +def from_key_val_list(value): + """Take an object and test to see if it can be represented as a + dictionary. Unless it can not be represented as such, return an + OrderedDict, e.g., + + :: + + >>> from_key_val_list([('key', 'val')]) + OrderedDict([('key', 'val')]) + >>> from_key_val_list('string') + ValueError: need more than 1 value to unpack + >>> from_key_val_list({'key': 'val'}) + OrderedDict([('key', 'val')]) + + :rtype: OrderedDict + """ + if value is None: + return None + + if isinstance(value, (str, bytes, bool, int)): + raise ValueError('cannot encode objects that are not 2-tuples') + + return OrderedDict(value) + + +def to_key_val_list(value): + """Take an object and test to see if it can be represented as a + dictionary. If it can be, return a list of tuples, e.g., + + :: + + >>> to_key_val_list([('key', 'val')]) + [('key', 'val')] + >>> to_key_val_list({'key': 'val'}) + [('key', 'val')] + >>> to_key_val_list('string') + ValueError: cannot encode objects that are not 2-tuples. + + :rtype: list + """ + if value is None: + return None + + if isinstance(value, (str, bytes, bool, int)): + raise ValueError('cannot encode objects that are not 2-tuples') + + if isinstance(value, collections.Mapping): + value = value.items() + + return list(value) + + +# From mitsuhiko/werkzeug (used with permission). +def parse_list_header(value): + """Parse lists as described by RFC 2068 Section 2. + + In particular, parse comma-separated lists where the elements of + the list may include quoted-strings. A quoted-string could + contain a comma. A non-quoted string could have quotes in the + middle. Quotes are removed automatically after parsing. + + It basically works like :func:`parse_set_header` just that items + may appear multiple times and case sensitivity is preserved. + + The return value is a standard :class:`list`: + + >>> parse_list_header('token, "quoted value"') + ['token', 'quoted value'] + + To create a header from the :class:`list` again, use the + :func:`dump_header` function. + + :param value: a string with a list header. + :return: :class:`list` + :rtype: list + """ + result = [] + for item in _parse_list_header(value): + if item[:1] == item[-1:] == '"': + item = unquote_header_value(item[1:-1]) + result.append(item) + return result + + +# From mitsuhiko/werkzeug (used with permission). +def parse_dict_header(value): + """Parse lists of key, value pairs as described by RFC 2068 Section 2 and + convert them into a python dict: + + >>> d = parse_dict_header('foo="is a fish", bar="as well"') + >>> type(d) is dict + True + >>> sorted(d.items()) + [('bar', 'as well'), ('foo', 'is a fish')] + + If there is no value for a key it will be `None`: + + >>> parse_dict_header('key_without_value') + {'key_without_value': None} + + To create a header from the :class:`dict` again, use the + :func:`dump_header` function. + + :param value: a string with a dict header. + :return: :class:`dict` + :rtype: dict + """ + result = {} + for item in _parse_list_header(value): + if '=' not in item: + result[item] = None + continue + name, value = item.split('=', 1) + if value[:1] == value[-1:] == '"': + value = unquote_header_value(value[1:-1]) + result[name] = value + return result + + +# From mitsuhiko/werkzeug (used with permission). +def unquote_header_value(value, is_filename=False): + r"""Unquotes a header value. (Reversal of :func:`quote_header_value`). + This does not use the real unquoting but what browsers are actually + using for quoting. + + :param value: the header value to unquote. + :rtype: str + """ + if value and value[0] == value[-1] == '"': + # this is not the real unquoting, but fixing this so that the + # RFC is met will result in bugs with internet explorer and + # probably some other browsers as well. IE for example is + # uploading files with "C:\foo\bar.txt" as filename + value = value[1:-1] + + # if this is a filename and the starting characters look like + # a UNC path, then just return the value without quotes. Using the + # replace sequence below on a UNC path has the effect of turning + # the leading double slash into a single slash and then + # _fix_ie_filename() doesn't work correctly. See #458. + if not is_filename or value[:2] != '\\\\': + return value.replace('\\\\', '\\').replace('\\"', '"') + return value + + +def dict_from_cookiejar(cj): + """Returns a key/value dictionary from a CookieJar. + + :param cj: CookieJar object to extract cookies from. + :rtype: dict + """ + + cookie_dict = {} + + for cookie in cj: + cookie_dict[cookie.name] = cookie.value + + return cookie_dict + + +def add_dict_to_cookiejar(cj, cookie_dict): + """Returns a CookieJar from a key/value dictionary. + + :param cj: CookieJar to insert cookies into. + :param cookie_dict: Dict of key/values to insert into CookieJar. + :rtype: CookieJar + """ + + return cookiejar_from_dict(cookie_dict, cj) + + +def get_encodings_from_content(content): + """Returns encodings from given content string. + + :param content: bytestring to extract encodings from. + """ + warnings.warn(( + 'In requests 3.0, get_encodings_from_content will be removed. For ' + 'more information, please see the discussion on issue #2266. (This' + ' warning should only appear once.)'), + DeprecationWarning) + + charset_re = re.compile(r'<meta.*?charset=["\']*(.+?)["\'>]', flags=re.I) + pragma_re = re.compile(r'<meta.*?content=["\']*;?charset=(.+?)["\'>]', flags=re.I) + xml_re = re.compile(r'^<\?xml.*?encoding=["\']*(.+?)["\'>]') + + return (charset_re.findall(content) + + pragma_re.findall(content) + + xml_re.findall(content)) + + +def get_encoding_from_headers(headers): + """Returns encodings from given HTTP Header Dict. + + :param headers: dictionary to extract encoding from. + :rtype: str + """ + + content_type = headers.get('content-type') + + if not content_type: + return None + + content_type, params = cgi.parse_header(content_type) + + if 'charset' in params: + return params['charset'].strip("'\"") + + if 'text' in content_type: + return 'ISO-8859-1' + + +def stream_decode_response_unicode(iterator, r): + """Stream decodes a iterator.""" + + if r.encoding is None: + for item in iterator: + yield item + return + + decoder = codecs.getincrementaldecoder(r.encoding)(errors='replace') + for chunk in iterator: + rv = decoder.decode(chunk) + if rv: + yield rv + rv = decoder.decode(b'', final=True) + if rv: + yield rv + + +def iter_slices(string, slice_length): + """Iterate over slices of a string.""" + pos = 0 + if slice_length is None or slice_length <= 0: + slice_length = len(string) + while pos < len(string): + yield string[pos:pos + slice_length] + pos += slice_length + + +def get_unicode_from_response(r): + """Returns the requested content back in unicode. + + :param r: Response object to get unicode content from. + + Tried: + + 1. charset from content-type + 2. fall back and replace all unicode characters + + :rtype: str + """ + warnings.warn(( + 'In requests 3.0, get_unicode_from_response will be removed. For ' + 'more information, please see the discussion on issue #2266. (This' + ' warning should only appear once.)'), + DeprecationWarning) + + tried_encodings = [] + + # Try charset from content-type + encoding = get_encoding_from_headers(r.headers) + + if encoding: + try: + return str(r.content, encoding) + except UnicodeError: + tried_encodings.append(encoding) + + # Fall back: + try: + return str(r.content, encoding, errors='replace') + except TypeError: + return r.content + + +# The unreserved URI characters (RFC 3986) +UNRESERVED_SET = frozenset( + "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz" + "0123456789-._~") + + +def unquote_unreserved(uri): + """Un-escape any percent-escape sequences in a URI that are unreserved + characters. This leaves all reserved, illegal and non-ASCII bytes encoded. + + :rtype: str + """ + parts = uri.split('%') + for i in range(1, len(parts)): + h = parts[i][0:2] + if len(h) == 2 and h.isalnum(): + try: + c = chr(int(h, 16)) + except ValueError: + raise InvalidURL("Invalid percent-escape sequence: '%s'" % h) + + if c in UNRESERVED_SET: + parts[i] = c + parts[i][2:] + else: + parts[i] = '%' + parts[i] + else: + parts[i] = '%' + parts[i] + return ''.join(parts) + + +def requote_uri(uri): + """Re-quote the given URI. + + This function passes the given URI through an unquote/quote cycle to + ensure that it is fully and consistently quoted. + + :rtype: str + """ + safe_with_percent = "!#$%&'()*+,/:;=?@[]~" + safe_without_percent = "!#$&'()*+,/:;=?@[]~" + try: + # Unquote only the unreserved characters + # Then quote only illegal characters (do not quote reserved, + # unreserved, or '%') + return quote(unquote_unreserved(uri), safe=safe_with_percent) + except InvalidURL: + # We couldn't unquote the given URI, so let's try quoting it, but + # there may be unquoted '%'s in the URI. We need to make sure they're + # properly quoted so they do not cause issues elsewhere. + return quote(uri, safe=safe_without_percent) + + +def address_in_network(ip, net): + """This function allows you to check if an IP belongs to a network subnet + + Example: returns True if ip = 192.168.1.1 and net = 192.168.1.0/24 + returns False if ip = 192.168.1.1 and net = 192.168.100.0/24 + + :rtype: bool + """ + ipaddr = struct.unpack('=L', socket.inet_aton(ip))[0] + netaddr, bits = net.split('/') + netmask = struct.unpack('=L', socket.inet_aton(dotted_netmask(int(bits))))[0] + network = struct.unpack('=L', socket.inet_aton(netaddr))[0] & netmask + return (ipaddr & netmask) == (network & netmask) + + +def dotted_netmask(mask): + """Converts mask from /xx format to xxx.xxx.xxx.xxx + + Example: if mask is 24 function returns 255.255.255.0 + + :rtype: str + """ + bits = 0xffffffff ^ (1 << 32 - mask) - 1 + return socket.inet_ntoa(struct.pack('>I', bits)) + + +def is_ipv4_address(string_ip): + """ + :rtype: bool + """ + try: + socket.inet_aton(string_ip) + except socket.error: + return False + return True + + +def is_valid_cidr(string_network): + """ + Very simple check of the cidr format in no_proxy variable. + + :rtype: bool + """ + if string_network.count('/') == 1: + try: + mask = int(string_network.split('/')[1]) + except ValueError: + return False + + if mask < 1 or mask > 32: + return False + + try: + socket.inet_aton(string_network.split('/')[0]) + except socket.error: + return False + else: + return False + return True + + +@contextlib.contextmanager +def set_environ(env_name, value): + """Set the environment variable 'env_name' to 'value' + + Save previous value, yield, and then restore the previous value stored in + the environment variable 'env_name'. + + If 'value' is None, do nothing""" + value_changed = value is not None + if value_changed: + old_value = os.environ.get(env_name) + os.environ[env_name] = value + try: + yield + finally: + if value_changed: + if old_value is None: + del os.environ[env_name] + else: + os.environ[env_name] = old_value + + +def should_bypass_proxies(url, no_proxy): + """ + Returns whether we should bypass proxies or not. + + :rtype: bool + """ + get_proxy = lambda k: os.environ.get(k) or os.environ.get(k.upper()) + + # First check whether no_proxy is defined. If it is, check that the URL + # we're getting isn't in the no_proxy list. + no_proxy_arg = no_proxy + if no_proxy is None: + no_proxy = get_proxy('no_proxy') + netloc = urlparse(url).netloc + + if no_proxy: + # We need to check whether we match here. We need to see if we match + # the end of the netloc, both with and without the port. + no_proxy = ( + host for host in no_proxy.replace(' ', '').split(',') if host + ) + + ip = netloc.split(':')[0] + if is_ipv4_address(ip): + for proxy_ip in no_proxy: + if is_valid_cidr(proxy_ip): + if address_in_network(ip, proxy_ip): + return True + elif ip == proxy_ip: + # If no_proxy ip was defined in plain IP notation instead of cidr notation & + # matches the IP of the index + return True + else: + for host in no_proxy: + if netloc.endswith(host) or netloc.split(':')[0].endswith(host): + # The URL does match something in no_proxy, so we don't want + # to apply the proxies on this URL. + return True + + # If the system proxy settings indicate that this URL should be bypassed, + # don't proxy. + # The proxy_bypass function is incredibly buggy on OS X in early versions + # of Python 2.6, so allow this call to fail. Only catch the specific + # exceptions we've seen, though: this call failing in other ways can reveal + # legitimate problems. + with set_environ('no_proxy', no_proxy_arg): + try: + bypass = proxy_bypass(netloc) + except (TypeError, socket.gaierror): + bypass = False + + if bypass: + return True + + return False + + +def get_environ_proxies(url, no_proxy=None): + """ + Return a dict of environment proxies. + + :rtype: dict + """ + if should_bypass_proxies(url, no_proxy=no_proxy): + return {} + else: + return getproxies() + + +def select_proxy(url, proxies): + """Select a proxy for the url, if applicable. + + :param url: The url being for the request + :param proxies: A dictionary of schemes or schemes and hosts to proxy URLs + """ + proxies = proxies or {} + urlparts = urlparse(url) + if urlparts.hostname is None: + return proxies.get(urlparts.scheme, proxies.get('all')) + + proxy_keys = [ + urlparts.scheme + '://' + urlparts.hostname, + urlparts.scheme, + 'all://' + urlparts.hostname, + 'all', + ] + proxy = None + for proxy_key in proxy_keys: + if proxy_key in proxies: + proxy = proxies[proxy_key] + break + + return proxy + + +def default_user_agent(name="python-requests"): + """ + Return a string representing the default user agent. + + :rtype: str + """ + return '%s/%s' % (name, __version__) + + +def default_headers(): + """ + :rtype: requests.structures.CaseInsensitiveDict + """ + return CaseInsensitiveDict({ + 'User-Agent': default_user_agent(), + 'Accept-Encoding': ', '.join(('gzip', 'deflate')), + 'Accept': '*/*', + 'Connection': 'keep-alive', + }) + + +def parse_header_links(value): + """Return a dict of parsed link headers proxies. + + i.e. Link: <http:/.../front.jpeg>; rel=front; type="image/jpeg",<http://.../back.jpeg>; rel=back;type="image/jpeg" + + :rtype: list + """ + + links = [] + + replace_chars = ' \'"' + + for val in re.split(', *<', value): + try: + url, params = val.split(';', 1) + except ValueError: + url, params = val, '' + + link = {'url': url.strip('<> \'"')} + + for param in params.split(';'): + try: + key, value = param.split('=') + except ValueError: + break + + link[key.strip(replace_chars)] = value.strip(replace_chars) + + links.append(link) + + return links + + +# Null bytes; no need to recreate these on each call to guess_json_utf +_null = '\x00'.encode('ascii') # encoding to ASCII for Python 3 +_null2 = _null * 2 +_null3 = _null * 3 + + +def guess_json_utf(data): + """ + :rtype: str + """ + # JSON always starts with two ASCII characters, so detection is as + # easy as counting the nulls and from their location and count + # determine the encoding. Also detect a BOM, if present. + sample = data[:4] + if sample in (codecs.BOM_UTF32_LE, codecs.BOM_UTF32_BE): + return 'utf-32' # BOM included + if sample[:3] == codecs.BOM_UTF8: + return 'utf-8-sig' # BOM included, MS style (discouraged) + if sample[:2] in (codecs.BOM_UTF16_LE, codecs.BOM_UTF16_BE): + return 'utf-16' # BOM included + nullcount = sample.count(_null) + if nullcount == 0: + return 'utf-8' + if nullcount == 2: + if sample[::2] == _null2: # 1st and 3rd are null + return 'utf-16-be' + if sample[1::2] == _null2: # 2nd and 4th are null + return 'utf-16-le' + # Did not detect 2 valid UTF-16 ascii-range characters + if nullcount == 3: + if sample[:3] == _null3: + return 'utf-32-be' + if sample[1:] == _null3: + return 'utf-32-le' + # Did not detect a valid UTF-32 ascii-range character + return None + + +def prepend_scheme_if_needed(url, new_scheme): + """Given a URL that may or may not have a scheme, prepend the given scheme. + Does not replace a present scheme with the one provided as an argument. + + :rtype: str + """ + scheme, netloc, path, params, query, fragment = urlparse(url, new_scheme) + + # urlparse is a finicky beast, and sometimes decides that there isn't a + # netloc present. Assume that it's being over-cautious, and switch netloc + # and path if urlparse decided there was no netloc. + if not netloc: + netloc, path = path, netloc + + return urlunparse((scheme, netloc, path, params, query, fragment)) + + +def get_auth_from_url(url): + """Given a url with authentication components, extract them into a tuple of + username,password. + + :rtype: (str,str) + """ + parsed = urlparse(url) + + try: + auth = (unquote(parsed.username), unquote(parsed.password)) + except (AttributeError, TypeError): + auth = ('', '') + + return auth + + +# Moved outside of function to avoid recompile every call +_CLEAN_HEADER_REGEX_BYTE = re.compile(b'^\\S[^\\r\\n]*$|^$') +_CLEAN_HEADER_REGEX_STR = re.compile(r'^\S[^\r\n]*$|^$') + + +def check_header_validity(header): + """Verifies that header value is a string which doesn't contain + leading whitespace or return characters. This prevents unintended + header injection. + + :param header: tuple, in the format (name, value). + """ + name, value = header + + if isinstance(value, bytes): + pat = _CLEAN_HEADER_REGEX_BYTE + else: + pat = _CLEAN_HEADER_REGEX_STR + try: + if not pat.match(value): + raise InvalidHeader("Invalid return character or leading space in header: %s" % name) + except TypeError: + raise InvalidHeader("Value for header {%s: %s} must be of type str or " + "bytes, not %s" % (name, value, type(value))) + + +def urldefragauth(url): + """ + Given a url remove the fragment and the authentication part. + + :rtype: str + """ + scheme, netloc, path, params, query, fragment = urlparse(url) + + # see func:`prepend_scheme_if_needed` + if not netloc: + netloc, path = path, netloc + + netloc = netloc.rsplit('@', 1)[-1] + + return urlunparse((scheme, netloc, path, params, query, '')) + + +def rewind_body(prepared_request): + """Move file pointer back to its recorded starting position + so it can be read again on redirect. + """ + body_seek = getattr(prepared_request.body, 'seek', None) + if body_seek is not None and isinstance(prepared_request._body_position, integer_types): + try: + body_seek(prepared_request._body_position) + except (IOError, OSError): + raise UnrewindableBodyError("An error occurred when rewinding request " + "body for redirect.") + else: + raise UnrewindableBodyError("Unable to rewind request body for redirect.") diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/retrying.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/retrying.py new file mode 100644 index 00000000..6d1e627a --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/retrying.py @@ -0,0 +1,267 @@ +## Copyright 2013-2014 Ray Holder +## +## Licensed under the Apache License, Version 2.0 (the "License"); +## you may not use this file except in compliance with the License. +## You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. + +import random +from pip._vendor import six +import sys +import time +import traceback + + +# sys.maxint / 2, since Python 3.2 doesn't have a sys.maxint... +MAX_WAIT = 1073741823 + + +def retry(*dargs, **dkw): + """ + Decorator function that instantiates the Retrying object + @param *dargs: positional arguments passed to Retrying object + @param **dkw: keyword arguments passed to the Retrying object + """ + # support both @retry and @retry() as valid syntax + if len(dargs) == 1 and callable(dargs[0]): + def wrap_simple(f): + + @six.wraps(f) + def wrapped_f(*args, **kw): + return Retrying().call(f, *args, **kw) + + return wrapped_f + + return wrap_simple(dargs[0]) + + else: + def wrap(f): + + @six.wraps(f) + def wrapped_f(*args, **kw): + return Retrying(*dargs, **dkw).call(f, *args, **kw) + + return wrapped_f + + return wrap + + +class Retrying(object): + + def __init__(self, + stop=None, wait=None, + stop_max_attempt_number=None, + stop_max_delay=None, + wait_fixed=None, + wait_random_min=None, wait_random_max=None, + wait_incrementing_start=None, wait_incrementing_increment=None, + wait_exponential_multiplier=None, wait_exponential_max=None, + retry_on_exception=None, + retry_on_result=None, + wrap_exception=False, + stop_func=None, + wait_func=None, + wait_jitter_max=None): + + self._stop_max_attempt_number = 5 if stop_max_attempt_number is None else stop_max_attempt_number + self._stop_max_delay = 100 if stop_max_delay is None else stop_max_delay + self._wait_fixed = 1000 if wait_fixed is None else wait_fixed + self._wait_random_min = 0 if wait_random_min is None else wait_random_min + self._wait_random_max = 1000 if wait_random_max is None else wait_random_max + self._wait_incrementing_start = 0 if wait_incrementing_start is None else wait_incrementing_start + self._wait_incrementing_increment = 100 if wait_incrementing_increment is None else wait_incrementing_increment + self._wait_exponential_multiplier = 1 if wait_exponential_multiplier is None else wait_exponential_multiplier + self._wait_exponential_max = MAX_WAIT if wait_exponential_max is None else wait_exponential_max + self._wait_jitter_max = 0 if wait_jitter_max is None else wait_jitter_max + + # TODO add chaining of stop behaviors + # stop behavior + stop_funcs = [] + if stop_max_attempt_number is not None: + stop_funcs.append(self.stop_after_attempt) + + if stop_max_delay is not None: + stop_funcs.append(self.stop_after_delay) + + if stop_func is not None: + self.stop = stop_func + + elif stop is None: + self.stop = lambda attempts, delay: any(f(attempts, delay) for f in stop_funcs) + + else: + self.stop = getattr(self, stop) + + # TODO add chaining of wait behaviors + # wait behavior + wait_funcs = [lambda *args, **kwargs: 0] + if wait_fixed is not None: + wait_funcs.append(self.fixed_sleep) + + if wait_random_min is not None or wait_random_max is not None: + wait_funcs.append(self.random_sleep) + + if wait_incrementing_start is not None or wait_incrementing_increment is not None: + wait_funcs.append(self.incrementing_sleep) + + if wait_exponential_multiplier is not None or wait_exponential_max is not None: + wait_funcs.append(self.exponential_sleep) + + if wait_func is not None: + self.wait = wait_func + + elif wait is None: + self.wait = lambda attempts, delay: max(f(attempts, delay) for f in wait_funcs) + + else: + self.wait = getattr(self, wait) + + # retry on exception filter + if retry_on_exception is None: + self._retry_on_exception = self.always_reject + else: + self._retry_on_exception = retry_on_exception + + # TODO simplify retrying by Exception types + # retry on result filter + if retry_on_result is None: + self._retry_on_result = self.never_reject + else: + self._retry_on_result = retry_on_result + + self._wrap_exception = wrap_exception + + def stop_after_attempt(self, previous_attempt_number, delay_since_first_attempt_ms): + """Stop after the previous attempt >= stop_max_attempt_number.""" + return previous_attempt_number >= self._stop_max_attempt_number + + def stop_after_delay(self, previous_attempt_number, delay_since_first_attempt_ms): + """Stop after the time from the first attempt >= stop_max_delay.""" + return delay_since_first_attempt_ms >= self._stop_max_delay + + def no_sleep(self, previous_attempt_number, delay_since_first_attempt_ms): + """Don't sleep at all before retrying.""" + return 0 + + def fixed_sleep(self, previous_attempt_number, delay_since_first_attempt_ms): + """Sleep a fixed amount of time between each retry.""" + return self._wait_fixed + + def random_sleep(self, previous_attempt_number, delay_since_first_attempt_ms): + """Sleep a random amount of time between wait_random_min and wait_random_max""" + return random.randint(self._wait_random_min, self._wait_random_max) + + def incrementing_sleep(self, previous_attempt_number, delay_since_first_attempt_ms): + """ + Sleep an incremental amount of time after each attempt, starting at + wait_incrementing_start and incrementing by wait_incrementing_increment + """ + result = self._wait_incrementing_start + (self._wait_incrementing_increment * (previous_attempt_number - 1)) + if result < 0: + result = 0 + return result + + def exponential_sleep(self, previous_attempt_number, delay_since_first_attempt_ms): + exp = 2 ** previous_attempt_number + result = self._wait_exponential_multiplier * exp + if result > self._wait_exponential_max: + result = self._wait_exponential_max + if result < 0: + result = 0 + return result + + def never_reject(self, result): + return False + + def always_reject(self, result): + return True + + def should_reject(self, attempt): + reject = False + if attempt.has_exception: + reject |= self._retry_on_exception(attempt.value[1]) + else: + reject |= self._retry_on_result(attempt.value) + + return reject + + def call(self, fn, *args, **kwargs): + start_time = int(round(time.time() * 1000)) + attempt_number = 1 + while True: + try: + attempt = Attempt(fn(*args, **kwargs), attempt_number, False) + except: + tb = sys.exc_info() + attempt = Attempt(tb, attempt_number, True) + + if not self.should_reject(attempt): + return attempt.get(self._wrap_exception) + + delay_since_first_attempt_ms = int(round(time.time() * 1000)) - start_time + if self.stop(attempt_number, delay_since_first_attempt_ms): + if not self._wrap_exception and attempt.has_exception: + # get() on an attempt with an exception should cause it to be raised, but raise just in case + raise attempt.get() + else: + raise RetryError(attempt) + else: + sleep = self.wait(attempt_number, delay_since_first_attempt_ms) + if self._wait_jitter_max: + jitter = random.random() * self._wait_jitter_max + sleep = sleep + max(0, jitter) + time.sleep(sleep / 1000.0) + + attempt_number += 1 + + +class Attempt(object): + """ + An Attempt encapsulates a call to a target function that may end as a + normal return value from the function or an Exception depending on what + occurred during the execution. + """ + + def __init__(self, value, attempt_number, has_exception): + self.value = value + self.attempt_number = attempt_number + self.has_exception = has_exception + + def get(self, wrap_exception=False): + """ + Return the return value of this Attempt instance or raise an Exception. + If wrap_exception is true, this Attempt is wrapped inside of a + RetryError before being raised. + """ + if self.has_exception: + if wrap_exception: + raise RetryError(self) + else: + six.reraise(self.value[0], self.value[1], self.value[2]) + else: + return self.value + + def __repr__(self): + if self.has_exception: + return "Attempts: {0}, Error:\n{1}".format(self.attempt_number, "".join(traceback.format_tb(self.value[2]))) + else: + return "Attempts: {0}, Value: {1}".format(self.attempt_number, self.value) + + +class RetryError(Exception): + """ + A RetryError encapsulates the last Attempt instance right before giving up. + """ + + def __init__(self, last_attempt): + self.last_attempt = last_attempt + + def __str__(self): + return "RetryError[{0}]".format(self.last_attempt) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/six.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/six.py new file mode 100644 index 00000000..6bf4fd38 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/six.py @@ -0,0 +1,891 @@ +# Copyright (c) 2010-2017 Benjamin Peterson +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +"""Utilities for writing code that runs on Python 2 and 3""" + +from __future__ import absolute_import + +import functools +import itertools +import operator +import sys +import types + +__author__ = "Benjamin Peterson <benjamin@python.org>" +__version__ = "1.11.0" + + +# Useful for very coarse version differentiation. +PY2 = sys.version_info[0] == 2 +PY3 = sys.version_info[0] == 3 +PY34 = sys.version_info[0:2] >= (3, 4) + +if PY3: + string_types = str, + integer_types = int, + class_types = type, + text_type = str + binary_type = bytes + + MAXSIZE = sys.maxsize +else: + string_types = basestring, + integer_types = (int, long) + class_types = (type, types.ClassType) + text_type = unicode + binary_type = str + + if sys.platform.startswith("java"): + # Jython always uses 32 bits. + MAXSIZE = int((1 << 31) - 1) + else: + # It's possible to have sizeof(long) != sizeof(Py_ssize_t). + class X(object): + + def __len__(self): + return 1 << 31 + try: + len(X()) + except OverflowError: + # 32-bit + MAXSIZE = int((1 << 31) - 1) + else: + # 64-bit + MAXSIZE = int((1 << 63) - 1) + del X + + +def _add_doc(func, doc): + """Add documentation to a function.""" + func.__doc__ = doc + + +def _import_module(name): + """Import module, returning the module after the last dot.""" + __import__(name) + return sys.modules[name] + + +class _LazyDescr(object): + + def __init__(self, name): + self.name = name + + def __get__(self, obj, tp): + result = self._resolve() + setattr(obj, self.name, result) # Invokes __set__. + try: + # This is a bit ugly, but it avoids running this again by + # removing this descriptor. + delattr(obj.__class__, self.name) + except AttributeError: + pass + return result + + +class MovedModule(_LazyDescr): + + def __init__(self, name, old, new=None): + super(MovedModule, self).__init__(name) + if PY3: + if new is None: + new = name + self.mod = new + else: + self.mod = old + + def _resolve(self): + return _import_module(self.mod) + + def __getattr__(self, attr): + _module = self._resolve() + value = getattr(_module, attr) + setattr(self, attr, value) + return value + + +class _LazyModule(types.ModuleType): + + def __init__(self, name): + super(_LazyModule, self).__init__(name) + self.__doc__ = self.__class__.__doc__ + + def __dir__(self): + attrs = ["__doc__", "__name__"] + attrs += [attr.name for attr in self._moved_attributes] + return attrs + + # Subclasses should override this + _moved_attributes = [] + + +class MovedAttribute(_LazyDescr): + + def __init__(self, name, old_mod, new_mod, old_attr=None, new_attr=None): + super(MovedAttribute, self).__init__(name) + if PY3: + if new_mod is None: + new_mod = name + self.mod = new_mod + if new_attr is None: + if old_attr is None: + new_attr = name + else: + new_attr = old_attr + self.attr = new_attr + else: + self.mod = old_mod + if old_attr is None: + old_attr = name + self.attr = old_attr + + def _resolve(self): + module = _import_module(self.mod) + return getattr(module, self.attr) + + +class _SixMetaPathImporter(object): + + """ + A meta path importer to import six.moves and its submodules. + + This class implements a PEP302 finder and loader. It should be compatible + with Python 2.5 and all existing versions of Python3 + """ + + def __init__(self, six_module_name): + self.name = six_module_name + self.known_modules = {} + + def _add_module(self, mod, *fullnames): + for fullname in fullnames: + self.known_modules[self.name + "." + fullname] = mod + + def _get_module(self, fullname): + return self.known_modules[self.name + "." + fullname] + + def find_module(self, fullname, path=None): + if fullname in self.known_modules: + return self + return None + + def __get_module(self, fullname): + try: + return self.known_modules[fullname] + except KeyError: + raise ImportError("This loader does not know module " + fullname) + + def load_module(self, fullname): + try: + # in case of a reload + return sys.modules[fullname] + except KeyError: + pass + mod = self.__get_module(fullname) + if isinstance(mod, MovedModule): + mod = mod._resolve() + else: + mod.__loader__ = self + sys.modules[fullname] = mod + return mod + + def is_package(self, fullname): + """ + Return true, if the named module is a package. + + We need this method to get correct spec objects with + Python 3.4 (see PEP451) + """ + return hasattr(self.__get_module(fullname), "__path__") + + def get_code(self, fullname): + """Return None + + Required, if is_package is implemented""" + self.__get_module(fullname) # eventually raises ImportError + return None + get_source = get_code # same as get_code + +_importer = _SixMetaPathImporter(__name__) + + +class _MovedItems(_LazyModule): + + """Lazy loading of moved objects""" + __path__ = [] # mark as package + + +_moved_attributes = [ + MovedAttribute("cStringIO", "cStringIO", "io", "StringIO"), + MovedAttribute("filter", "itertools", "builtins", "ifilter", "filter"), + MovedAttribute("filterfalse", "itertools", "itertools", "ifilterfalse", "filterfalse"), + MovedAttribute("input", "__builtin__", "builtins", "raw_input", "input"), + MovedAttribute("intern", "__builtin__", "sys"), + MovedAttribute("map", "itertools", "builtins", "imap", "map"), + MovedAttribute("getcwd", "os", "os", "getcwdu", "getcwd"), + MovedAttribute("getcwdb", "os", "os", "getcwd", "getcwdb"), + MovedAttribute("getoutput", "commands", "subprocess"), + MovedAttribute("range", "__builtin__", "builtins", "xrange", "range"), + MovedAttribute("reload_module", "__builtin__", "importlib" if PY34 else "imp", "reload"), + MovedAttribute("reduce", "__builtin__", "functools"), + MovedAttribute("shlex_quote", "pipes", "shlex", "quote"), + MovedAttribute("StringIO", "StringIO", "io"), + MovedAttribute("UserDict", "UserDict", "collections"), + MovedAttribute("UserList", "UserList", "collections"), + MovedAttribute("UserString", "UserString", "collections"), + MovedAttribute("xrange", "__builtin__", "builtins", "xrange", "range"), + MovedAttribute("zip", "itertools", "builtins", "izip", "zip"), + MovedAttribute("zip_longest", "itertools", "itertools", "izip_longest", "zip_longest"), + MovedModule("builtins", "__builtin__"), + MovedModule("configparser", "ConfigParser"), + MovedModule("copyreg", "copy_reg"), + MovedModule("dbm_gnu", "gdbm", "dbm.gnu"), + MovedModule("_dummy_thread", "dummy_thread", "_dummy_thread"), + MovedModule("http_cookiejar", "cookielib", "http.cookiejar"), + MovedModule("http_cookies", "Cookie", "http.cookies"), + MovedModule("html_entities", "htmlentitydefs", "html.entities"), + MovedModule("html_parser", "HTMLParser", "html.parser"), + MovedModule("http_client", "httplib", "http.client"), + MovedModule("email_mime_base", "email.MIMEBase", "email.mime.base"), + MovedModule("email_mime_image", "email.MIMEImage", "email.mime.image"), + MovedModule("email_mime_multipart", "email.MIMEMultipart", "email.mime.multipart"), + MovedModule("email_mime_nonmultipart", "email.MIMENonMultipart", "email.mime.nonmultipart"), + MovedModule("email_mime_text", "email.MIMEText", "email.mime.text"), + MovedModule("BaseHTTPServer", "BaseHTTPServer", "http.server"), + MovedModule("CGIHTTPServer", "CGIHTTPServer", "http.server"), + MovedModule("SimpleHTTPServer", "SimpleHTTPServer", "http.server"), + MovedModule("cPickle", "cPickle", "pickle"), + MovedModule("queue", "Queue"), + MovedModule("reprlib", "repr"), + MovedModule("socketserver", "SocketServer"), + MovedModule("_thread", "thread", "_thread"), + MovedModule("tkinter", "Tkinter"), + MovedModule("tkinter_dialog", "Dialog", "tkinter.dialog"), + MovedModule("tkinter_filedialog", "FileDialog", "tkinter.filedialog"), + MovedModule("tkinter_scrolledtext", "ScrolledText", "tkinter.scrolledtext"), + MovedModule("tkinter_simpledialog", "SimpleDialog", "tkinter.simpledialog"), + MovedModule("tkinter_tix", "Tix", "tkinter.tix"), + MovedModule("tkinter_ttk", "ttk", "tkinter.ttk"), + MovedModule("tkinter_constants", "Tkconstants", "tkinter.constants"), + MovedModule("tkinter_dnd", "Tkdnd", "tkinter.dnd"), + MovedModule("tkinter_colorchooser", "tkColorChooser", + "tkinter.colorchooser"), + MovedModule("tkinter_commondialog", "tkCommonDialog", + "tkinter.commondialog"), + MovedModule("tkinter_tkfiledialog", "tkFileDialog", "tkinter.filedialog"), + MovedModule("tkinter_font", "tkFont", "tkinter.font"), + MovedModule("tkinter_messagebox", "tkMessageBox", "tkinter.messagebox"), + MovedModule("tkinter_tksimpledialog", "tkSimpleDialog", + "tkinter.simpledialog"), + MovedModule("urllib_parse", __name__ + ".moves.urllib_parse", "urllib.parse"), + MovedModule("urllib_error", __name__ + ".moves.urllib_error", "urllib.error"), + MovedModule("urllib", __name__ + ".moves.urllib", __name__ + ".moves.urllib"), + MovedModule("urllib_robotparser", "robotparser", "urllib.robotparser"), + MovedModule("xmlrpc_client", "xmlrpclib", "xmlrpc.client"), + MovedModule("xmlrpc_server", "SimpleXMLRPCServer", "xmlrpc.server"), +] +# Add windows specific modules. +if sys.platform == "win32": + _moved_attributes += [ + MovedModule("winreg", "_winreg"), + ] + +for attr in _moved_attributes: + setattr(_MovedItems, attr.name, attr) + if isinstance(attr, MovedModule): + _importer._add_module(attr, "moves." + attr.name) +del attr + +_MovedItems._moved_attributes = _moved_attributes + +moves = _MovedItems(__name__ + ".moves") +_importer._add_module(moves, "moves") + + +class Module_six_moves_urllib_parse(_LazyModule): + + """Lazy loading of moved objects in six.moves.urllib_parse""" + + +_urllib_parse_moved_attributes = [ + MovedAttribute("ParseResult", "urlparse", "urllib.parse"), + MovedAttribute("SplitResult", "urlparse", "urllib.parse"), + MovedAttribute("parse_qs", "urlparse", "urllib.parse"), + MovedAttribute("parse_qsl", "urlparse", "urllib.parse"), + MovedAttribute("urldefrag", "urlparse", "urllib.parse"), + MovedAttribute("urljoin", "urlparse", "urllib.parse"), + MovedAttribute("urlparse", "urlparse", "urllib.parse"), + MovedAttribute("urlsplit", "urlparse", "urllib.parse"), + MovedAttribute("urlunparse", "urlparse", "urllib.parse"), + MovedAttribute("urlunsplit", "urlparse", "urllib.parse"), + MovedAttribute("quote", "urllib", "urllib.parse"), + MovedAttribute("quote_plus", "urllib", "urllib.parse"), + MovedAttribute("unquote", "urllib", "urllib.parse"), + MovedAttribute("unquote_plus", "urllib", "urllib.parse"), + MovedAttribute("unquote_to_bytes", "urllib", "urllib.parse", "unquote", "unquote_to_bytes"), + MovedAttribute("urlencode", "urllib", "urllib.parse"), + MovedAttribute("splitquery", "urllib", "urllib.parse"), + MovedAttribute("splittag", "urllib", "urllib.parse"), + MovedAttribute("splituser", "urllib", "urllib.parse"), + MovedAttribute("splitvalue", "urllib", "urllib.parse"), + MovedAttribute("uses_fragment", "urlparse", "urllib.parse"), + MovedAttribute("uses_netloc", "urlparse", "urllib.parse"), + MovedAttribute("uses_params", "urlparse", "urllib.parse"), + MovedAttribute("uses_query", "urlparse", "urllib.parse"), + MovedAttribute("uses_relative", "urlparse", "urllib.parse"), +] +for attr in _urllib_parse_moved_attributes: + setattr(Module_six_moves_urllib_parse, attr.name, attr) +del attr + +Module_six_moves_urllib_parse._moved_attributes = _urllib_parse_moved_attributes + +_importer._add_module(Module_six_moves_urllib_parse(__name__ + ".moves.urllib_parse"), + "moves.urllib_parse", "moves.urllib.parse") + + +class Module_six_moves_urllib_error(_LazyModule): + + """Lazy loading of moved objects in six.moves.urllib_error""" + + +_urllib_error_moved_attributes = [ + MovedAttribute("URLError", "urllib2", "urllib.error"), + MovedAttribute("HTTPError", "urllib2", "urllib.error"), + MovedAttribute("ContentTooShortError", "urllib", "urllib.error"), +] +for attr in _urllib_error_moved_attributes: + setattr(Module_six_moves_urllib_error, attr.name, attr) +del attr + +Module_six_moves_urllib_error._moved_attributes = _urllib_error_moved_attributes + +_importer._add_module(Module_six_moves_urllib_error(__name__ + ".moves.urllib.error"), + "moves.urllib_error", "moves.urllib.error") + + +class Module_six_moves_urllib_request(_LazyModule): + + """Lazy loading of moved objects in six.moves.urllib_request""" + + +_urllib_request_moved_attributes = [ + MovedAttribute("urlopen", "urllib2", "urllib.request"), + MovedAttribute("install_opener", "urllib2", "urllib.request"), + MovedAttribute("build_opener", "urllib2", "urllib.request"), + MovedAttribute("pathname2url", "urllib", "urllib.request"), + MovedAttribute("url2pathname", "urllib", "urllib.request"), + MovedAttribute("getproxies", "urllib", "urllib.request"), + MovedAttribute("Request", "urllib2", "urllib.request"), + MovedAttribute("OpenerDirector", "urllib2", "urllib.request"), + MovedAttribute("HTTPDefaultErrorHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPRedirectHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPCookieProcessor", "urllib2", "urllib.request"), + MovedAttribute("ProxyHandler", "urllib2", "urllib.request"), + MovedAttribute("BaseHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPPasswordMgr", "urllib2", "urllib.request"), + MovedAttribute("HTTPPasswordMgrWithDefaultRealm", "urllib2", "urllib.request"), + MovedAttribute("AbstractBasicAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPBasicAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("ProxyBasicAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("AbstractDigestAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPDigestAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("ProxyDigestAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPSHandler", "urllib2", "urllib.request"), + MovedAttribute("FileHandler", "urllib2", "urllib.request"), + MovedAttribute("FTPHandler", "urllib2", "urllib.request"), + MovedAttribute("CacheFTPHandler", "urllib2", "urllib.request"), + MovedAttribute("UnknownHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPErrorProcessor", "urllib2", "urllib.request"), + MovedAttribute("urlretrieve", "urllib", "urllib.request"), + MovedAttribute("urlcleanup", "urllib", "urllib.request"), + MovedAttribute("URLopener", "urllib", "urllib.request"), + MovedAttribute("FancyURLopener", "urllib", "urllib.request"), + MovedAttribute("proxy_bypass", "urllib", "urllib.request"), + MovedAttribute("parse_http_list", "urllib2", "urllib.request"), + MovedAttribute("parse_keqv_list", "urllib2", "urllib.request"), +] +for attr in _urllib_request_moved_attributes: + setattr(Module_six_moves_urllib_request, attr.name, attr) +del attr + +Module_six_moves_urllib_request._moved_attributes = _urllib_request_moved_attributes + +_importer._add_module(Module_six_moves_urllib_request(__name__ + ".moves.urllib.request"), + "moves.urllib_request", "moves.urllib.request") + + +class Module_six_moves_urllib_response(_LazyModule): + + """Lazy loading of moved objects in six.moves.urllib_response""" + + +_urllib_response_moved_attributes = [ + MovedAttribute("addbase", "urllib", "urllib.response"), + MovedAttribute("addclosehook", "urllib", "urllib.response"), + MovedAttribute("addinfo", "urllib", "urllib.response"), + MovedAttribute("addinfourl", "urllib", "urllib.response"), +] +for attr in _urllib_response_moved_attributes: + setattr(Module_six_moves_urllib_response, attr.name, attr) +del attr + +Module_six_moves_urllib_response._moved_attributes = _urllib_response_moved_attributes + +_importer._add_module(Module_six_moves_urllib_response(__name__ + ".moves.urllib.response"), + "moves.urllib_response", "moves.urllib.response") + + +class Module_six_moves_urllib_robotparser(_LazyModule): + + """Lazy loading of moved objects in six.moves.urllib_robotparser""" + + +_urllib_robotparser_moved_attributes = [ + MovedAttribute("RobotFileParser", "robotparser", "urllib.robotparser"), +] +for attr in _urllib_robotparser_moved_attributes: + setattr(Module_six_moves_urllib_robotparser, attr.name, attr) +del attr + +Module_six_moves_urllib_robotparser._moved_attributes = _urllib_robotparser_moved_attributes + +_importer._add_module(Module_six_moves_urllib_robotparser(__name__ + ".moves.urllib.robotparser"), + "moves.urllib_robotparser", "moves.urllib.robotparser") + + +class Module_six_moves_urllib(types.ModuleType): + + """Create a six.moves.urllib namespace that resembles the Python 3 namespace""" + __path__ = [] # mark as package + parse = _importer._get_module("moves.urllib_parse") + error = _importer._get_module("moves.urllib_error") + request = _importer._get_module("moves.urllib_request") + response = _importer._get_module("moves.urllib_response") + robotparser = _importer._get_module("moves.urllib_robotparser") + + def __dir__(self): + return ['parse', 'error', 'request', 'response', 'robotparser'] + +_importer._add_module(Module_six_moves_urllib(__name__ + ".moves.urllib"), + "moves.urllib") + + +def add_move(move): + """Add an item to six.moves.""" + setattr(_MovedItems, move.name, move) + + +def remove_move(name): + """Remove item from six.moves.""" + try: + delattr(_MovedItems, name) + except AttributeError: + try: + del moves.__dict__[name] + except KeyError: + raise AttributeError("no such move, %r" % (name,)) + + +if PY3: + _meth_func = "__func__" + _meth_self = "__self__" + + _func_closure = "__closure__" + _func_code = "__code__" + _func_defaults = "__defaults__" + _func_globals = "__globals__" +else: + _meth_func = "im_func" + _meth_self = "im_self" + + _func_closure = "func_closure" + _func_code = "func_code" + _func_defaults = "func_defaults" + _func_globals = "func_globals" + + +try: + advance_iterator = next +except NameError: + def advance_iterator(it): + return it.next() +next = advance_iterator + + +try: + callable = callable +except NameError: + def callable(obj): + return any("__call__" in klass.__dict__ for klass in type(obj).__mro__) + + +if PY3: + def get_unbound_function(unbound): + return unbound + + create_bound_method = types.MethodType + + def create_unbound_method(func, cls): + return func + + Iterator = object +else: + def get_unbound_function(unbound): + return unbound.im_func + + def create_bound_method(func, obj): + return types.MethodType(func, obj, obj.__class__) + + def create_unbound_method(func, cls): + return types.MethodType(func, None, cls) + + class Iterator(object): + + def next(self): + return type(self).__next__(self) + + callable = callable +_add_doc(get_unbound_function, + """Get the function out of a possibly unbound function""") + + +get_method_function = operator.attrgetter(_meth_func) +get_method_self = operator.attrgetter(_meth_self) +get_function_closure = operator.attrgetter(_func_closure) +get_function_code = operator.attrgetter(_func_code) +get_function_defaults = operator.attrgetter(_func_defaults) +get_function_globals = operator.attrgetter(_func_globals) + + +if PY3: + def iterkeys(d, **kw): + return iter(d.keys(**kw)) + + def itervalues(d, **kw): + return iter(d.values(**kw)) + + def iteritems(d, **kw): + return iter(d.items(**kw)) + + def iterlists(d, **kw): + return iter(d.lists(**kw)) + + viewkeys = operator.methodcaller("keys") + + viewvalues = operator.methodcaller("values") + + viewitems = operator.methodcaller("items") +else: + def iterkeys(d, **kw): + return d.iterkeys(**kw) + + def itervalues(d, **kw): + return d.itervalues(**kw) + + def iteritems(d, **kw): + return d.iteritems(**kw) + + def iterlists(d, **kw): + return d.iterlists(**kw) + + viewkeys = operator.methodcaller("viewkeys") + + viewvalues = operator.methodcaller("viewvalues") + + viewitems = operator.methodcaller("viewitems") + +_add_doc(iterkeys, "Return an iterator over the keys of a dictionary.") +_add_doc(itervalues, "Return an iterator over the values of a dictionary.") +_add_doc(iteritems, + "Return an iterator over the (key, value) pairs of a dictionary.") +_add_doc(iterlists, + "Return an iterator over the (key, [values]) pairs of a dictionary.") + + +if PY3: + def b(s): + return s.encode("latin-1") + + def u(s): + return s + unichr = chr + import struct + int2byte = struct.Struct(">B").pack + del struct + byte2int = operator.itemgetter(0) + indexbytes = operator.getitem + iterbytes = iter + import io + StringIO = io.StringIO + BytesIO = io.BytesIO + _assertCountEqual = "assertCountEqual" + if sys.version_info[1] <= 1: + _assertRaisesRegex = "assertRaisesRegexp" + _assertRegex = "assertRegexpMatches" + else: + _assertRaisesRegex = "assertRaisesRegex" + _assertRegex = "assertRegex" +else: + def b(s): + return s + # Workaround for standalone backslash + + def u(s): + return unicode(s.replace(r'\\', r'\\\\'), "unicode_escape") + unichr = unichr + int2byte = chr + + def byte2int(bs): + return ord(bs[0]) + + def indexbytes(buf, i): + return ord(buf[i]) + iterbytes = functools.partial(itertools.imap, ord) + import StringIO + StringIO = BytesIO = StringIO.StringIO + _assertCountEqual = "assertItemsEqual" + _assertRaisesRegex = "assertRaisesRegexp" + _assertRegex = "assertRegexpMatches" +_add_doc(b, """Byte literal""") +_add_doc(u, """Text literal""") + + +def assertCountEqual(self, *args, **kwargs): + return getattr(self, _assertCountEqual)(*args, **kwargs) + + +def assertRaisesRegex(self, *args, **kwargs): + return getattr(self, _assertRaisesRegex)(*args, **kwargs) + + +def assertRegex(self, *args, **kwargs): + return getattr(self, _assertRegex)(*args, **kwargs) + + +if PY3: + exec_ = getattr(moves.builtins, "exec") + + def reraise(tp, value, tb=None): + try: + if value is None: + value = tp() + if value.__traceback__ is not tb: + raise value.with_traceback(tb) + raise value + finally: + value = None + tb = None + +else: + def exec_(_code_, _globs_=None, _locs_=None): + """Execute code in a namespace.""" + if _globs_ is None: + frame = sys._getframe(1) + _globs_ = frame.f_globals + if _locs_ is None: + _locs_ = frame.f_locals + del frame + elif _locs_ is None: + _locs_ = _globs_ + exec("""exec _code_ in _globs_, _locs_""") + + exec_("""def reraise(tp, value, tb=None): + try: + raise tp, value, tb + finally: + tb = None +""") + + +if sys.version_info[:2] == (3, 2): + exec_("""def raise_from(value, from_value): + try: + if from_value is None: + raise value + raise value from from_value + finally: + value = None +""") +elif sys.version_info[:2] > (3, 2): + exec_("""def raise_from(value, from_value): + try: + raise value from from_value + finally: + value = None +""") +else: + def raise_from(value, from_value): + raise value + + +print_ = getattr(moves.builtins, "print", None) +if print_ is None: + def print_(*args, **kwargs): + """The new-style print function for Python 2.4 and 2.5.""" + fp = kwargs.pop("file", sys.stdout) + if fp is None: + return + + def write(data): + if not isinstance(data, basestring): + data = str(data) + # If the file has an encoding, encode unicode with it. + if (isinstance(fp, file) and + isinstance(data, unicode) and + fp.encoding is not None): + errors = getattr(fp, "errors", None) + if errors is None: + errors = "strict" + data = data.encode(fp.encoding, errors) + fp.write(data) + want_unicode = False + sep = kwargs.pop("sep", None) + if sep is not None: + if isinstance(sep, unicode): + want_unicode = True + elif not isinstance(sep, str): + raise TypeError("sep must be None or a string") + end = kwargs.pop("end", None) + if end is not None: + if isinstance(end, unicode): + want_unicode = True + elif not isinstance(end, str): + raise TypeError("end must be None or a string") + if kwargs: + raise TypeError("invalid keyword arguments to print()") + if not want_unicode: + for arg in args: + if isinstance(arg, unicode): + want_unicode = True + break + if want_unicode: + newline = unicode("\n") + space = unicode(" ") + else: + newline = "\n" + space = " " + if sep is None: + sep = space + if end is None: + end = newline + for i, arg in enumerate(args): + if i: + write(sep) + write(arg) + write(end) +if sys.version_info[:2] < (3, 3): + _print = print_ + + def print_(*args, **kwargs): + fp = kwargs.get("file", sys.stdout) + flush = kwargs.pop("flush", False) + _print(*args, **kwargs) + if flush and fp is not None: + fp.flush() + +_add_doc(reraise, """Reraise an exception.""") + +if sys.version_info[0:2] < (3, 4): + def wraps(wrapped, assigned=functools.WRAPPER_ASSIGNMENTS, + updated=functools.WRAPPER_UPDATES): + def wrapper(f): + f = functools.wraps(wrapped, assigned, updated)(f) + f.__wrapped__ = wrapped + return f + return wrapper +else: + wraps = functools.wraps + + +def with_metaclass(meta, *bases): + """Create a base class with a metaclass.""" + # This requires a bit of explanation: the basic idea is to make a dummy + # metaclass for one level of class instantiation that replaces itself with + # the actual metaclass. + class metaclass(type): + + def __new__(cls, name, this_bases, d): + return meta(name, bases, d) + + @classmethod + def __prepare__(cls, name, this_bases): + return meta.__prepare__(name, bases) + return type.__new__(metaclass, 'temporary_class', (), {}) + + +def add_metaclass(metaclass): + """Class decorator for creating a class with a metaclass.""" + def wrapper(cls): + orig_vars = cls.__dict__.copy() + slots = orig_vars.get('__slots__') + if slots is not None: + if isinstance(slots, str): + slots = [slots] + for slots_var in slots: + orig_vars.pop(slots_var) + orig_vars.pop('__dict__', None) + orig_vars.pop('__weakref__', None) + return metaclass(cls.__name__, cls.__bases__, orig_vars) + return wrapper + + +def python_2_unicode_compatible(klass): + """ + A decorator that defines __unicode__ and __str__ methods under Python 2. + Under Python 3 it does nothing. + + To support Python 2 and 3 with a single code base, define a __str__ method + returning text and apply this decorator to the class. + """ + if PY2: + if '__str__' not in klass.__dict__: + raise ValueError("@python_2_unicode_compatible cannot be applied " + "to %s because it doesn't define __str__()." % + klass.__name__) + klass.__unicode__ = klass.__str__ + klass.__str__ = lambda self: self.__unicode__().encode('utf-8') + return klass + + +# Complete the moves implementation. +# This code is at the end of this module to speed up module loading. +# Turn this module into a package. +__path__ = [] # required for PEP 302 and PEP 451 +__package__ = __name__ # see PEP 366 @ReservedAssignment +if globals().get("__spec__") is not None: + __spec__.submodule_search_locations = [] # PEP 451 @UndefinedVariable +# Remove other six meta path importers, since they cause problems. This can +# happen if six is removed from sys.modules and then reloaded. (Setuptools does +# this for some reason.) +if sys.meta_path: + for i, importer in enumerate(sys.meta_path): + # Here's some real nastiness: Another "instance" of the six module might + # be floating around. Therefore, we can't use isinstance() to check for + # the six meta path importer, since the other six instance will have + # inserted an importer with different class. + if (type(importer).__name__ == "_SixMetaPathImporter" and + importer.name == __name__): + del sys.meta_path[i] + break + del i, importer +# Finally, add the importer to the meta path import hook. +sys.meta_path.append(_importer) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/__init__.py new file mode 100644 index 00000000..aaa6b1c6 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/__init__.py @@ -0,0 +1,97 @@ +""" +urllib3 - Thread-safe connection pooling and re-using. +""" + +from __future__ import absolute_import +import warnings + +from .connectionpool import ( + HTTPConnectionPool, + HTTPSConnectionPool, + connection_from_url +) + +from . import exceptions +from .filepost import encode_multipart_formdata +from .poolmanager import PoolManager, ProxyManager, proxy_from_url +from .response import HTTPResponse +from .util.request import make_headers +from .util.url import get_host +from .util.timeout import Timeout +from .util.retry import Retry + + +# Set default logging handler to avoid "No handler found" warnings. +import logging +try: # Python 2.7+ + from logging import NullHandler +except ImportError: + class NullHandler(logging.Handler): + def emit(self, record): + pass + +__author__ = 'Andrey Petrov (andrey.petrov@shazow.net)' +__license__ = 'MIT' +__version__ = '1.22' + +__all__ = ( + 'HTTPConnectionPool', + 'HTTPSConnectionPool', + 'PoolManager', + 'ProxyManager', + 'HTTPResponse', + 'Retry', + 'Timeout', + 'add_stderr_logger', + 'connection_from_url', + 'disable_warnings', + 'encode_multipart_formdata', + 'get_host', + 'make_headers', + 'proxy_from_url', +) + +logging.getLogger(__name__).addHandler(NullHandler()) + + +def add_stderr_logger(level=logging.DEBUG): + """ + Helper for quickly adding a StreamHandler to the logger. Useful for + debugging. + + Returns the handler after adding it. + """ + # This method needs to be in this __init__.py to get the __name__ correct + # even if urllib3 is vendored within another package. + logger = logging.getLogger(__name__) + handler = logging.StreamHandler() + handler.setFormatter(logging.Formatter('%(asctime)s %(levelname)s %(message)s')) + logger.addHandler(handler) + logger.setLevel(level) + logger.debug('Added a stderr logging handler to logger: %s', __name__) + return handler + + +# ... Clean up. +del NullHandler + + +# All warning filters *must* be appended unless you're really certain that they +# shouldn't be: otherwise, it's very hard for users to use most Python +# mechanisms to silence them. +# SecurityWarning's always go off by default. +warnings.simplefilter('always', exceptions.SecurityWarning, append=True) +# SubjectAltNameWarning's should go off once per host +warnings.simplefilter('default', exceptions.SubjectAltNameWarning, append=True) +# InsecurePlatformWarning's don't vary between requests, so we keep it default. +warnings.simplefilter('default', exceptions.InsecurePlatformWarning, + append=True) +# SNIMissingWarnings should go off only once. +warnings.simplefilter('default', exceptions.SNIMissingWarning, append=True) + + +def disable_warnings(category=exceptions.HTTPWarning): + """ + Helper for quickly disabling all urllib3 warnings. + """ + warnings.simplefilter('ignore', category) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/_collections.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/_collections.py new file mode 100644 index 00000000..5df2372c --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/_collections.py @@ -0,0 +1,319 @@ +from __future__ import absolute_import +from collections import Mapping, MutableMapping +try: + from threading import RLock +except ImportError: # Platform-specific: No threads available + class RLock: + def __enter__(self): + pass + + def __exit__(self, exc_type, exc_value, traceback): + pass + + +try: # Python 2.7+ + from collections import OrderedDict +except ImportError: + from .packages.ordered_dict import OrderedDict +from .packages.six import iterkeys, itervalues, PY3 + + +__all__ = ['RecentlyUsedContainer', 'HTTPHeaderDict'] + + +_Null = object() + + +class RecentlyUsedContainer(MutableMapping): + """ + Provides a thread-safe dict-like container which maintains up to + ``maxsize`` keys while throwing away the least-recently-used keys beyond + ``maxsize``. + + :param maxsize: + Maximum number of recent elements to retain. + + :param dispose_func: + Every time an item is evicted from the container, + ``dispose_func(value)`` is called. Callback which will get called + """ + + ContainerCls = OrderedDict + + def __init__(self, maxsize=10, dispose_func=None): + self._maxsize = maxsize + self.dispose_func = dispose_func + + self._container = self.ContainerCls() + self.lock = RLock() + + def __getitem__(self, key): + # Re-insert the item, moving it to the end of the eviction line. + with self.lock: + item = self._container.pop(key) + self._container[key] = item + return item + + def __setitem__(self, key, value): + evicted_value = _Null + with self.lock: + # Possibly evict the existing value of 'key' + evicted_value = self._container.get(key, _Null) + self._container[key] = value + + # If we didn't evict an existing value, we might have to evict the + # least recently used item from the beginning of the container. + if len(self._container) > self._maxsize: + _key, evicted_value = self._container.popitem(last=False) + + if self.dispose_func and evicted_value is not _Null: + self.dispose_func(evicted_value) + + def __delitem__(self, key): + with self.lock: + value = self._container.pop(key) + + if self.dispose_func: + self.dispose_func(value) + + def __len__(self): + with self.lock: + return len(self._container) + + def __iter__(self): + raise NotImplementedError('Iteration over this class is unlikely to be threadsafe.') + + def clear(self): + with self.lock: + # Copy pointers to all values, then wipe the mapping + values = list(itervalues(self._container)) + self._container.clear() + + if self.dispose_func: + for value in values: + self.dispose_func(value) + + def keys(self): + with self.lock: + return list(iterkeys(self._container)) + + +class HTTPHeaderDict(MutableMapping): + """ + :param headers: + An iterable of field-value pairs. Must not contain multiple field names + when compared case-insensitively. + + :param kwargs: + Additional field-value pairs to pass in to ``dict.update``. + + A ``dict`` like container for storing HTTP Headers. + + Field names are stored and compared case-insensitively in compliance with + RFC 7230. Iteration provides the first case-sensitive key seen for each + case-insensitive pair. + + Using ``__setitem__`` syntax overwrites fields that compare equal + case-insensitively in order to maintain ``dict``'s api. For fields that + compare equal, instead create a new ``HTTPHeaderDict`` and use ``.add`` + in a loop. + + If multiple fields that are equal case-insensitively are passed to the + constructor or ``.update``, the behavior is undefined and some will be + lost. + + >>> headers = HTTPHeaderDict() + >>> headers.add('Set-Cookie', 'foo=bar') + >>> headers.add('set-cookie', 'baz=quxx') + >>> headers['content-length'] = '7' + >>> headers['SET-cookie'] + 'foo=bar, baz=quxx' + >>> headers['Content-Length'] + '7' + """ + + def __init__(self, headers=None, **kwargs): + super(HTTPHeaderDict, self).__init__() + self._container = OrderedDict() + if headers is not None: + if isinstance(headers, HTTPHeaderDict): + self._copy_from(headers) + else: + self.extend(headers) + if kwargs: + self.extend(kwargs) + + def __setitem__(self, key, val): + self._container[key.lower()] = [key, val] + return self._container[key.lower()] + + def __getitem__(self, key): + val = self._container[key.lower()] + return ', '.join(val[1:]) + + def __delitem__(self, key): + del self._container[key.lower()] + + def __contains__(self, key): + return key.lower() in self._container + + def __eq__(self, other): + if not isinstance(other, Mapping) and not hasattr(other, 'keys'): + return False + if not isinstance(other, type(self)): + other = type(self)(other) + return (dict((k.lower(), v) for k, v in self.itermerged()) == + dict((k.lower(), v) for k, v in other.itermerged())) + + def __ne__(self, other): + return not self.__eq__(other) + + if not PY3: # Python 2 + iterkeys = MutableMapping.iterkeys + itervalues = MutableMapping.itervalues + + __marker = object() + + def __len__(self): + return len(self._container) + + def __iter__(self): + # Only provide the originally cased names + for vals in self._container.values(): + yield vals[0] + + def pop(self, key, default=__marker): + '''D.pop(k[,d]) -> v, remove specified key and return the corresponding value. + If key is not found, d is returned if given, otherwise KeyError is raised. + ''' + # Using the MutableMapping function directly fails due to the private marker. + # Using ordinary dict.pop would expose the internal structures. + # So let's reinvent the wheel. + try: + value = self[key] + except KeyError: + if default is self.__marker: + raise + return default + else: + del self[key] + return value + + def discard(self, key): + try: + del self[key] + except KeyError: + pass + + def add(self, key, val): + """Adds a (name, value) pair, doesn't overwrite the value if it already + exists. + + >>> headers = HTTPHeaderDict(foo='bar') + >>> headers.add('Foo', 'baz') + >>> headers['foo'] + 'bar, baz' + """ + key_lower = key.lower() + new_vals = [key, val] + # Keep the common case aka no item present as fast as possible + vals = self._container.setdefault(key_lower, new_vals) + if new_vals is not vals: + vals.append(val) + + def extend(self, *args, **kwargs): + """Generic import function for any type of header-like object. + Adapted version of MutableMapping.update in order to insert items + with self.add instead of self.__setitem__ + """ + if len(args) > 1: + raise TypeError("extend() takes at most 1 positional " + "arguments ({0} given)".format(len(args))) + other = args[0] if len(args) >= 1 else () + + if isinstance(other, HTTPHeaderDict): + for key, val in other.iteritems(): + self.add(key, val) + elif isinstance(other, Mapping): + for key in other: + self.add(key, other[key]) + elif hasattr(other, "keys"): + for key in other.keys(): + self.add(key, other[key]) + else: + for key, value in other: + self.add(key, value) + + for key, value in kwargs.items(): + self.add(key, value) + + def getlist(self, key, default=__marker): + """Returns a list of all the values for the named field. Returns an + empty list if the key doesn't exist.""" + try: + vals = self._container[key.lower()] + except KeyError: + if default is self.__marker: + return [] + return default + else: + return vals[1:] + + # Backwards compatibility for httplib + getheaders = getlist + getallmatchingheaders = getlist + iget = getlist + + # Backwards compatibility for http.cookiejar + get_all = getlist + + def __repr__(self): + return "%s(%s)" % (type(self).__name__, dict(self.itermerged())) + + def _copy_from(self, other): + for key in other: + val = other.getlist(key) + if isinstance(val, list): + # Don't need to convert tuples + val = list(val) + self._container[key.lower()] = [key] + val + + def copy(self): + clone = type(self)() + clone._copy_from(self) + return clone + + def iteritems(self): + """Iterate over all header lines, including duplicate ones.""" + for key in self: + vals = self._container[key.lower()] + for val in vals[1:]: + yield vals[0], val + + def itermerged(self): + """Iterate over all headers, merging duplicate ones together.""" + for key in self: + val = self._container[key.lower()] + yield val[0], ', '.join(val[1:]) + + def items(self): + return list(self.iteritems()) + + @classmethod + def from_httplib(cls, message): # Python 2 + """Read headers from a Python 2 httplib message object.""" + # python2.7 does not expose a proper API for exporting multiheaders + # efficiently. This function re-reads raw lines from the message + # object and extracts the multiheaders properly. + headers = [] + + for line in message.headers: + if line.startswith((' ', '\t')): + key, value = headers[-1] + headers[-1] = (key, value + '\r\n' + line.rstrip()) + continue + + key, value = line.split(':', 1) + headers.append((key, value.strip())) + + return cls(headers) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/connection.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/connection.py new file mode 100644 index 00000000..c0d83299 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/connection.py @@ -0,0 +1,373 @@ +from __future__ import absolute_import +import datetime +import logging +import os +import sys +import socket +from socket import error as SocketError, timeout as SocketTimeout +import warnings +from .packages import six +from .packages.six.moves.http_client import HTTPConnection as _HTTPConnection +from .packages.six.moves.http_client import HTTPException # noqa: F401 + +try: # Compiled with SSL? + import ssl + BaseSSLError = ssl.SSLError +except (ImportError, AttributeError): # Platform-specific: No SSL. + ssl = None + + class BaseSSLError(BaseException): + pass + + +try: # Python 3: + # Not a no-op, we're adding this to the namespace so it can be imported. + ConnectionError = ConnectionError +except NameError: # Python 2: + class ConnectionError(Exception): + pass + + +from .exceptions import ( + NewConnectionError, + ConnectTimeoutError, + SubjectAltNameWarning, + SystemTimeWarning, +) +from .packages.ssl_match_hostname import match_hostname, CertificateError + +from .util.ssl_ import ( + resolve_cert_reqs, + resolve_ssl_version, + assert_fingerprint, + create_urllib3_context, + ssl_wrap_socket +) + + +from .util import connection + +from ._collections import HTTPHeaderDict + +log = logging.getLogger(__name__) + +port_by_scheme = { + 'http': 80, + 'https': 443, +} + +# When updating RECENT_DATE, move it to +# within two years of the current date, and no +# earlier than 6 months ago. +RECENT_DATE = datetime.date(2016, 1, 1) + + +class DummyConnection(object): + """Used to detect a failed ConnectionCls import.""" + pass + + +class HTTPConnection(_HTTPConnection, object): + """ + Based on httplib.HTTPConnection but provides an extra constructor + backwards-compatibility layer between older and newer Pythons. + + Additional keyword parameters are used to configure attributes of the connection. + Accepted parameters include: + + - ``strict``: See the documentation on :class:`urllib3.connectionpool.HTTPConnectionPool` + - ``source_address``: Set the source address for the current connection. + + .. note:: This is ignored for Python 2.6. It is only applied for 2.7 and 3.x + + - ``socket_options``: Set specific options on the underlying socket. If not specified, then + defaults are loaded from ``HTTPConnection.default_socket_options`` which includes disabling + Nagle's algorithm (sets TCP_NODELAY to 1) unless the connection is behind a proxy. + + For example, if you wish to enable TCP Keep Alive in addition to the defaults, + you might pass:: + + HTTPConnection.default_socket_options + [ + (socket.SOL_SOCKET, socket.SO_KEEPALIVE, 1), + ] + + Or you may want to disable the defaults by passing an empty list (e.g., ``[]``). + """ + + default_port = port_by_scheme['http'] + + #: Disable Nagle's algorithm by default. + #: ``[(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)]`` + default_socket_options = [(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)] + + #: Whether this connection verifies the host's certificate. + is_verified = False + + def __init__(self, *args, **kw): + if six.PY3: # Python 3 + kw.pop('strict', None) + + # Pre-set source_address in case we have an older Python like 2.6. + self.source_address = kw.get('source_address') + + if sys.version_info < (2, 7): # Python 2.6 + # _HTTPConnection on Python 2.6 will balk at this keyword arg, but + # not newer versions. We can still use it when creating a + # connection though, so we pop it *after* we have saved it as + # self.source_address. + kw.pop('source_address', None) + + #: The socket options provided by the user. If no options are + #: provided, we use the default options. + self.socket_options = kw.pop('socket_options', self.default_socket_options) + + # Superclass also sets self.source_address in Python 2.7+. + _HTTPConnection.__init__(self, *args, **kw) + + def _new_conn(self): + """ Establish a socket connection and set nodelay settings on it. + + :return: New socket connection. + """ + extra_kw = {} + if self.source_address: + extra_kw['source_address'] = self.source_address + + if self.socket_options: + extra_kw['socket_options'] = self.socket_options + + try: + conn = connection.create_connection( + (self.host, self.port), self.timeout, **extra_kw) + + except SocketTimeout as e: + raise ConnectTimeoutError( + self, "Connection to %s timed out. (connect timeout=%s)" % + (self.host, self.timeout)) + + except SocketError as e: + raise NewConnectionError( + self, "Failed to establish a new connection: %s" % e) + + return conn + + def _prepare_conn(self, conn): + self.sock = conn + # the _tunnel_host attribute was added in python 2.6.3 (via + # http://hg.python.org/cpython/rev/0f57b30a152f) so pythons 2.6(0-2) do + # not have them. + if getattr(self, '_tunnel_host', None): + # TODO: Fix tunnel so it doesn't depend on self.sock state. + self._tunnel() + # Mark this connection as not reusable + self.auto_open = 0 + + def connect(self): + conn = self._new_conn() + self._prepare_conn(conn) + + def request_chunked(self, method, url, body=None, headers=None): + """ + Alternative to the common request method, which sends the + body with chunked encoding and not as one block + """ + headers = HTTPHeaderDict(headers if headers is not None else {}) + skip_accept_encoding = 'accept-encoding' in headers + skip_host = 'host' in headers + self.putrequest( + method, + url, + skip_accept_encoding=skip_accept_encoding, + skip_host=skip_host + ) + for header, value in headers.items(): + self.putheader(header, value) + if 'transfer-encoding' not in headers: + self.putheader('Transfer-Encoding', 'chunked') + self.endheaders() + + if body is not None: + stringish_types = six.string_types + (six.binary_type,) + if isinstance(body, stringish_types): + body = (body,) + for chunk in body: + if not chunk: + continue + if not isinstance(chunk, six.binary_type): + chunk = chunk.encode('utf8') + len_str = hex(len(chunk))[2:] + self.send(len_str.encode('utf-8')) + self.send(b'\r\n') + self.send(chunk) + self.send(b'\r\n') + + # After the if clause, to always have a closed body + self.send(b'0\r\n\r\n') + + +class HTTPSConnection(HTTPConnection): + default_port = port_by_scheme['https'] + + ssl_version = None + + def __init__(self, host, port=None, key_file=None, cert_file=None, + strict=None, timeout=socket._GLOBAL_DEFAULT_TIMEOUT, + ssl_context=None, **kw): + + HTTPConnection.__init__(self, host, port, strict=strict, + timeout=timeout, **kw) + + self.key_file = key_file + self.cert_file = cert_file + self.ssl_context = ssl_context + + # Required property for Google AppEngine 1.9.0 which otherwise causes + # HTTPS requests to go out as HTTP. (See Issue #356) + self._protocol = 'https' + + def connect(self): + conn = self._new_conn() + self._prepare_conn(conn) + + if self.ssl_context is None: + self.ssl_context = create_urllib3_context( + ssl_version=resolve_ssl_version(None), + cert_reqs=resolve_cert_reqs(None), + ) + + self.sock = ssl_wrap_socket( + sock=conn, + keyfile=self.key_file, + certfile=self.cert_file, + ssl_context=self.ssl_context, + ) + + +class VerifiedHTTPSConnection(HTTPSConnection): + """ + Based on httplib.HTTPSConnection but wraps the socket with + SSL certification. + """ + cert_reqs = None + ca_certs = None + ca_cert_dir = None + ssl_version = None + assert_fingerprint = None + + def set_cert(self, key_file=None, cert_file=None, + cert_reqs=None, ca_certs=None, + assert_hostname=None, assert_fingerprint=None, + ca_cert_dir=None): + """ + This method should only be called once, before the connection is used. + """ + # If cert_reqs is not provided, we can try to guess. If the user gave + # us a cert database, we assume they want to use it: otherwise, if + # they gave us an SSL Context object we should use whatever is set for + # it. + if cert_reqs is None: + if ca_certs or ca_cert_dir: + cert_reqs = 'CERT_REQUIRED' + elif self.ssl_context is not None: + cert_reqs = self.ssl_context.verify_mode + + self.key_file = key_file + self.cert_file = cert_file + self.cert_reqs = cert_reqs + self.assert_hostname = assert_hostname + self.assert_fingerprint = assert_fingerprint + self.ca_certs = ca_certs and os.path.expanduser(ca_certs) + self.ca_cert_dir = ca_cert_dir and os.path.expanduser(ca_cert_dir) + + def connect(self): + # Add certificate verification + conn = self._new_conn() + + hostname = self.host + if getattr(self, '_tunnel_host', None): + # _tunnel_host was added in Python 2.6.3 + # (See: http://hg.python.org/cpython/rev/0f57b30a152f) + + self.sock = conn + # Calls self._set_hostport(), so self.host is + # self._tunnel_host below. + self._tunnel() + # Mark this connection as not reusable + self.auto_open = 0 + + # Override the host with the one we're requesting data from. + hostname = self._tunnel_host + + is_time_off = datetime.date.today() < RECENT_DATE + if is_time_off: + warnings.warn(( + 'System time is way off (before {0}). This will probably ' + 'lead to SSL verification errors').format(RECENT_DATE), + SystemTimeWarning + ) + + # Wrap socket using verification with the root certs in + # trusted_root_certs + if self.ssl_context is None: + self.ssl_context = create_urllib3_context( + ssl_version=resolve_ssl_version(self.ssl_version), + cert_reqs=resolve_cert_reqs(self.cert_reqs), + ) + + context = self.ssl_context + context.verify_mode = resolve_cert_reqs(self.cert_reqs) + self.sock = ssl_wrap_socket( + sock=conn, + keyfile=self.key_file, + certfile=self.cert_file, + ca_certs=self.ca_certs, + ca_cert_dir=self.ca_cert_dir, + server_hostname=hostname, + ssl_context=context) + + if self.assert_fingerprint: + assert_fingerprint(self.sock.getpeercert(binary_form=True), + self.assert_fingerprint) + elif context.verify_mode != ssl.CERT_NONE \ + and not getattr(context, 'check_hostname', False) \ + and self.assert_hostname is not False: + # While urllib3 attempts to always turn off hostname matching from + # the TLS library, this cannot always be done. So we check whether + # the TLS Library still thinks it's matching hostnames. + cert = self.sock.getpeercert() + if not cert.get('subjectAltName', ()): + warnings.warn(( + 'Certificate for {0} has no `subjectAltName`, falling back to check for a ' + '`commonName` for now. This feature is being removed by major browsers and ' + 'deprecated by RFC 2818. (See https://github.com/shazow/urllib3/issues/497 ' + 'for details.)'.format(hostname)), + SubjectAltNameWarning + ) + _match_hostname(cert, self.assert_hostname or hostname) + + self.is_verified = ( + context.verify_mode == ssl.CERT_REQUIRED or + self.assert_fingerprint is not None + ) + + +def _match_hostname(cert, asserted_hostname): + try: + match_hostname(cert, asserted_hostname) + except CertificateError as e: + log.error( + 'Certificate did not match expected hostname: %s. ' + 'Certificate: %s', asserted_hostname, cert + ) + # Add cert to exception and reraise so client code can inspect + # the cert when catching the exception, if they want to + e._peer_cert = cert + raise + + +if ssl: + # Make a copy for testing. + UnverifiedHTTPSConnection = HTTPSConnection + HTTPSConnection = VerifiedHTTPSConnection +else: + HTTPSConnection = DummyConnection diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/connectionpool.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/connectionpool.py new file mode 100644 index 00000000..ec9600f8 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/connectionpool.py @@ -0,0 +1,905 @@ +from __future__ import absolute_import +import errno +import logging +import sys +import warnings + +from socket import error as SocketError, timeout as SocketTimeout +import socket + + +from .exceptions import ( + ClosedPoolError, + ProtocolError, + EmptyPoolError, + HeaderParsingError, + HostChangedError, + LocationValueError, + MaxRetryError, + ProxyError, + ReadTimeoutError, + SSLError, + TimeoutError, + InsecureRequestWarning, + NewConnectionError, +) +from .packages.ssl_match_hostname import CertificateError +from .packages import six +from .packages.six.moves import queue +from .connection import ( + port_by_scheme, + DummyConnection, + HTTPConnection, HTTPSConnection, VerifiedHTTPSConnection, + HTTPException, BaseSSLError, +) +from .request import RequestMethods +from .response import HTTPResponse + +from .util.connection import is_connection_dropped +from .util.request import set_file_position +from .util.response import assert_header_parsing +from .util.retry import Retry +from .util.timeout import Timeout +from .util.url import get_host, Url + + +if six.PY2: + # Queue is imported for side effects on MS Windows + import Queue as _unused_module_Queue # noqa: F401 + +xrange = six.moves.xrange + +log = logging.getLogger(__name__) + +_Default = object() + + +# Pool objects +class ConnectionPool(object): + """ + Base class for all connection pools, such as + :class:`.HTTPConnectionPool` and :class:`.HTTPSConnectionPool`. + """ + + scheme = None + QueueCls = queue.LifoQueue + + def __init__(self, host, port=None): + if not host: + raise LocationValueError("No host specified.") + + self.host = _ipv6_host(host).lower() + self._proxy_host = host.lower() + self.port = port + + def __str__(self): + return '%s(host=%r, port=%r)' % (type(self).__name__, + self.host, self.port) + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + self.close() + # Return False to re-raise any potential exceptions + return False + + def close(self): + """ + Close all pooled connections and disable the pool. + """ + pass + + +# This is taken from http://hg.python.org/cpython/file/7aaba721ebc0/Lib/socket.py#l252 +_blocking_errnos = set([errno.EAGAIN, errno.EWOULDBLOCK]) + + +class HTTPConnectionPool(ConnectionPool, RequestMethods): + """ + Thread-safe connection pool for one host. + + :param host: + Host used for this HTTP Connection (e.g. "localhost"), passed into + :class:`httplib.HTTPConnection`. + + :param port: + Port used for this HTTP Connection (None is equivalent to 80), passed + into :class:`httplib.HTTPConnection`. + + :param strict: + Causes BadStatusLine to be raised if the status line can't be parsed + as a valid HTTP/1.0 or 1.1 status line, passed into + :class:`httplib.HTTPConnection`. + + .. note:: + Only works in Python 2. This parameter is ignored in Python 3. + + :param timeout: + Socket timeout in seconds for each individual connection. This can + be a float or integer, which sets the timeout for the HTTP request, + or an instance of :class:`urllib3.util.Timeout` which gives you more + fine-grained control over request timeouts. After the constructor has + been parsed, this is always a `urllib3.util.Timeout` object. + + :param maxsize: + Number of connections to save that can be reused. More than 1 is useful + in multithreaded situations. If ``block`` is set to False, more + connections will be created but they will not be saved once they've + been used. + + :param block: + If set to True, no more than ``maxsize`` connections will be used at + a time. When no free connections are available, the call will block + until a connection has been released. This is a useful side effect for + particular multithreaded situations where one does not want to use more + than maxsize connections per host to prevent flooding. + + :param headers: + Headers to include with all requests, unless other headers are given + explicitly. + + :param retries: + Retry configuration to use by default with requests in this pool. + + :param _proxy: + Parsed proxy URL, should not be used directly, instead, see + :class:`urllib3.connectionpool.ProxyManager`" + + :param _proxy_headers: + A dictionary with proxy headers, should not be used directly, + instead, see :class:`urllib3.connectionpool.ProxyManager`" + + :param \\**conn_kw: + Additional parameters are used to create fresh :class:`urllib3.connection.HTTPConnection`, + :class:`urllib3.connection.HTTPSConnection` instances. + """ + + scheme = 'http' + ConnectionCls = HTTPConnection + ResponseCls = HTTPResponse + + def __init__(self, host, port=None, strict=False, + timeout=Timeout.DEFAULT_TIMEOUT, maxsize=1, block=False, + headers=None, retries=None, + _proxy=None, _proxy_headers=None, + **conn_kw): + ConnectionPool.__init__(self, host, port) + RequestMethods.__init__(self, headers) + + self.strict = strict + + if not isinstance(timeout, Timeout): + timeout = Timeout.from_float(timeout) + + if retries is None: + retries = Retry.DEFAULT + + self.timeout = timeout + self.retries = retries + + self.pool = self.QueueCls(maxsize) + self.block = block + + self.proxy = _proxy + self.proxy_headers = _proxy_headers or {} + + # Fill the queue up so that doing get() on it will block properly + for _ in xrange(maxsize): + self.pool.put(None) + + # These are mostly for testing and debugging purposes. + self.num_connections = 0 + self.num_requests = 0 + self.conn_kw = conn_kw + + if self.proxy: + # Enable Nagle's algorithm for proxies, to avoid packet fragmentation. + # We cannot know if the user has added default socket options, so we cannot replace the + # list. + self.conn_kw.setdefault('socket_options', []) + + def _new_conn(self): + """ + Return a fresh :class:`HTTPConnection`. + """ + self.num_connections += 1 + log.debug("Starting new HTTP connection (%d): %s", + self.num_connections, self.host) + + conn = self.ConnectionCls(host=self.host, port=self.port, + timeout=self.timeout.connect_timeout, + strict=self.strict, **self.conn_kw) + return conn + + def _get_conn(self, timeout=None): + """ + Get a connection. Will return a pooled connection if one is available. + + If no connections are available and :prop:`.block` is ``False``, then a + fresh connection is returned. + + :param timeout: + Seconds to wait before giving up and raising + :class:`urllib3.exceptions.EmptyPoolError` if the pool is empty and + :prop:`.block` is ``True``. + """ + conn = None + try: + conn = self.pool.get(block=self.block, timeout=timeout) + + except AttributeError: # self.pool is None + raise ClosedPoolError(self, "Pool is closed.") + + except queue.Empty: + if self.block: + raise EmptyPoolError(self, + "Pool reached maximum size and no more " + "connections are allowed.") + pass # Oh well, we'll create a new connection then + + # If this is a persistent connection, check if it got disconnected + if conn and is_connection_dropped(conn): + log.debug("Resetting dropped connection: %s", self.host) + conn.close() + if getattr(conn, 'auto_open', 1) == 0: + # This is a proxied connection that has been mutated by + # httplib._tunnel() and cannot be reused (since it would + # attempt to bypass the proxy) + conn = None + + return conn or self._new_conn() + + def _put_conn(self, conn): + """ + Put a connection back into the pool. + + :param conn: + Connection object for the current host and port as returned by + :meth:`._new_conn` or :meth:`._get_conn`. + + If the pool is already full, the connection is closed and discarded + because we exceeded maxsize. If connections are discarded frequently, + then maxsize should be increased. + + If the pool is closed, then the connection will be closed and discarded. + """ + try: + self.pool.put(conn, block=False) + return # Everything is dandy, done. + except AttributeError: + # self.pool is None. + pass + except queue.Full: + # This should never happen if self.block == True + log.warning( + "Connection pool is full, discarding connection: %s", + self.host) + + # Connection never got put back into the pool, close it. + if conn: + conn.close() + + def _validate_conn(self, conn): + """ + Called right before a request is made, after the socket is created. + """ + pass + + def _prepare_proxy(self, conn): + # Nothing to do for HTTP connections. + pass + + def _get_timeout(self, timeout): + """ Helper that always returns a :class:`urllib3.util.Timeout` """ + if timeout is _Default: + return self.timeout.clone() + + if isinstance(timeout, Timeout): + return timeout.clone() + else: + # User passed us an int/float. This is for backwards compatibility, + # can be removed later + return Timeout.from_float(timeout) + + def _raise_timeout(self, err, url, timeout_value): + """Is the error actually a timeout? Will raise a ReadTimeout or pass""" + + if isinstance(err, SocketTimeout): + raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value) + + # See the above comment about EAGAIN in Python 3. In Python 2 we have + # to specifically catch it and throw the timeout error + if hasattr(err, 'errno') and err.errno in _blocking_errnos: + raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value) + + # Catch possible read timeouts thrown as SSL errors. If not the + # case, rethrow the original. We need to do this because of: + # http://bugs.python.org/issue10272 + if 'timed out' in str(err) or 'did not complete (read)' in str(err): # Python 2.6 + raise ReadTimeoutError(self, url, "Read timed out. (read timeout=%s)" % timeout_value) + + def _make_request(self, conn, method, url, timeout=_Default, chunked=False, + **httplib_request_kw): + """ + Perform a request on a given urllib connection object taken from our + pool. + + :param conn: + a connection from one of our connection pools + + :param timeout: + Socket timeout in seconds for the request. This can be a + float or integer, which will set the same timeout value for + the socket connect and the socket read, or an instance of + :class:`urllib3.util.Timeout`, which gives you more fine-grained + control over your timeouts. + """ + self.num_requests += 1 + + timeout_obj = self._get_timeout(timeout) + timeout_obj.start_connect() + conn.timeout = timeout_obj.connect_timeout + + # Trigger any extra validation we need to do. + try: + self._validate_conn(conn) + except (SocketTimeout, BaseSSLError) as e: + # Py2 raises this as a BaseSSLError, Py3 raises it as socket timeout. + self._raise_timeout(err=e, url=url, timeout_value=conn.timeout) + raise + + # conn.request() calls httplib.*.request, not the method in + # urllib3.request. It also calls makefile (recv) on the socket. + if chunked: + conn.request_chunked(method, url, **httplib_request_kw) + else: + conn.request(method, url, **httplib_request_kw) + + # Reset the timeout for the recv() on the socket + read_timeout = timeout_obj.read_timeout + + # App Engine doesn't have a sock attr + if getattr(conn, 'sock', None): + # In Python 3 socket.py will catch EAGAIN and return None when you + # try and read into the file pointer created by http.client, which + # instead raises a BadStatusLine exception. Instead of catching + # the exception and assuming all BadStatusLine exceptions are read + # timeouts, check for a zero timeout before making the request. + if read_timeout == 0: + raise ReadTimeoutError( + self, url, "Read timed out. (read timeout=%s)" % read_timeout) + if read_timeout is Timeout.DEFAULT_TIMEOUT: + conn.sock.settimeout(socket.getdefaulttimeout()) + else: # None or a value + conn.sock.settimeout(read_timeout) + + # Receive the response from the server + try: + try: # Python 2.7, use buffering of HTTP responses + httplib_response = conn.getresponse(buffering=True) + except TypeError: # Python 2.6 and older, Python 3 + try: + httplib_response = conn.getresponse() + except Exception as e: + # Remove the TypeError from the exception chain in Python 3; + # otherwise it looks like a programming error was the cause. + six.raise_from(e, None) + except (SocketTimeout, BaseSSLError, SocketError) as e: + self._raise_timeout(err=e, url=url, timeout_value=read_timeout) + raise + + # AppEngine doesn't have a version attr. + http_version = getattr(conn, '_http_vsn_str', 'HTTP/?') + log.debug("%s://%s:%s \"%s %s %s\" %s %s", self.scheme, self.host, self.port, + method, url, http_version, httplib_response.status, + httplib_response.length) + + try: + assert_header_parsing(httplib_response.msg) + except (HeaderParsingError, TypeError) as hpe: # Platform-specific: Python 3 + log.warning( + 'Failed to parse headers (url=%s): %s', + self._absolute_url(url), hpe, exc_info=True) + + return httplib_response + + def _absolute_url(self, path): + return Url(scheme=self.scheme, host=self.host, port=self.port, path=path).url + + def close(self): + """ + Close all pooled connections and disable the pool. + """ + # Disable access to the pool + old_pool, self.pool = self.pool, None + + try: + while True: + conn = old_pool.get(block=False) + if conn: + conn.close() + + except queue.Empty: + pass # Done. + + def is_same_host(self, url): + """ + Check if the given ``url`` is a member of the same host as this + connection pool. + """ + if url.startswith('/'): + return True + + # TODO: Add optional support for socket.gethostbyname checking. + scheme, host, port = get_host(url) + + host = _ipv6_host(host).lower() + + # Use explicit default port for comparison when none is given + if self.port and not port: + port = port_by_scheme.get(scheme) + elif not self.port and port == port_by_scheme.get(scheme): + port = None + + return (scheme, host, port) == (self.scheme, self.host, self.port) + + def urlopen(self, method, url, body=None, headers=None, retries=None, + redirect=True, assert_same_host=True, timeout=_Default, + pool_timeout=None, release_conn=None, chunked=False, + body_pos=None, **response_kw): + """ + Get a connection from the pool and perform an HTTP request. This is the + lowest level call for making a request, so you'll need to specify all + the raw details. + + .. note:: + + More commonly, it's appropriate to use a convenience method provided + by :class:`.RequestMethods`, such as :meth:`request`. + + .. note:: + + `release_conn` will only behave as expected if + `preload_content=False` because we want to make + `preload_content=False` the default behaviour someday soon without + breaking backwards compatibility. + + :param method: + HTTP request method (such as GET, POST, PUT, etc.) + + :param body: + Data to send in the request body (useful for creating + POST requests, see HTTPConnectionPool.post_url for + more convenience). + + :param headers: + Dictionary of custom headers to send, such as User-Agent, + If-None-Match, etc. If None, pool headers are used. If provided, + these headers completely replace any pool-specific headers. + + :param retries: + Configure the number of retries to allow before raising a + :class:`~urllib3.exceptions.MaxRetryError` exception. + + Pass ``None`` to retry until you receive a response. Pass a + :class:`~urllib3.util.retry.Retry` object for fine-grained control + over different types of retries. + Pass an integer number to retry connection errors that many times, + but no other types of errors. Pass zero to never retry. + + If ``False``, then retries are disabled and any exception is raised + immediately. Also, instead of raising a MaxRetryError on redirects, + the redirect response will be returned. + + :type retries: :class:`~urllib3.util.retry.Retry`, False, or an int. + + :param redirect: + If True, automatically handle redirects (status codes 301, 302, + 303, 307, 308). Each redirect counts as a retry. Disabling retries + will disable redirect, too. + + :param assert_same_host: + If ``True``, will make sure that the host of the pool requests is + consistent else will raise HostChangedError. When False, you can + use the pool on an HTTP proxy and request foreign hosts. + + :param timeout: + If specified, overrides the default timeout for this one + request. It may be a float (in seconds) or an instance of + :class:`urllib3.util.Timeout`. + + :param pool_timeout: + If set and the pool is set to block=True, then this method will + block for ``pool_timeout`` seconds and raise EmptyPoolError if no + connection is available within the time period. + + :param release_conn: + If False, then the urlopen call will not release the connection + back into the pool once a response is received (but will release if + you read the entire contents of the response such as when + `preload_content=True`). This is useful if you're not preloading + the response's content immediately. You will need to call + ``r.release_conn()`` on the response ``r`` to return the connection + back into the pool. If None, it takes the value of + ``response_kw.get('preload_content', True)``. + + :param chunked: + If True, urllib3 will send the body using chunked transfer + encoding. Otherwise, urllib3 will send the body using the standard + content-length form. Defaults to False. + + :param int body_pos: + Position to seek to in file-like body in the event of a retry or + redirect. Typically this won't need to be set because urllib3 will + auto-populate the value when needed. + + :param \\**response_kw: + Additional parameters are passed to + :meth:`urllib3.response.HTTPResponse.from_httplib` + """ + if headers is None: + headers = self.headers + + if not isinstance(retries, Retry): + retries = Retry.from_int(retries, redirect=redirect, default=self.retries) + + if release_conn is None: + release_conn = response_kw.get('preload_content', True) + + # Check host + if assert_same_host and not self.is_same_host(url): + raise HostChangedError(self, url, retries) + + conn = None + + # Track whether `conn` needs to be released before + # returning/raising/recursing. Update this variable if necessary, and + # leave `release_conn` constant throughout the function. That way, if + # the function recurses, the original value of `release_conn` will be + # passed down into the recursive call, and its value will be respected. + # + # See issue #651 [1] for details. + # + # [1] <https://github.com/shazow/urllib3/issues/651> + release_this_conn = release_conn + + # Merge the proxy headers. Only do this in HTTP. We have to copy the + # headers dict so we can safely change it without those changes being + # reflected in anyone else's copy. + if self.scheme == 'http': + headers = headers.copy() + headers.update(self.proxy_headers) + + # Must keep the exception bound to a separate variable or else Python 3 + # complains about UnboundLocalError. + err = None + + # Keep track of whether we cleanly exited the except block. This + # ensures we do proper cleanup in finally. + clean_exit = False + + # Rewind body position, if needed. Record current position + # for future rewinds in the event of a redirect/retry. + body_pos = set_file_position(body, body_pos) + + try: + # Request a connection from the queue. + timeout_obj = self._get_timeout(timeout) + conn = self._get_conn(timeout=pool_timeout) + + conn.timeout = timeout_obj.connect_timeout + + is_new_proxy_conn = self.proxy is not None and not getattr(conn, 'sock', None) + if is_new_proxy_conn: + self._prepare_proxy(conn) + + # Make the request on the httplib connection object. + httplib_response = self._make_request(conn, method, url, + timeout=timeout_obj, + body=body, headers=headers, + chunked=chunked) + + # If we're going to release the connection in ``finally:``, then + # the response doesn't need to know about the connection. Otherwise + # it will also try to release it and we'll have a double-release + # mess. + response_conn = conn if not release_conn else None + + # Pass method to Response for length checking + response_kw['request_method'] = method + + # Import httplib's response into our own wrapper object + response = self.ResponseCls.from_httplib(httplib_response, + pool=self, + connection=response_conn, + retries=retries, + **response_kw) + + # Everything went great! + clean_exit = True + + except queue.Empty: + # Timed out by queue. + raise EmptyPoolError(self, "No pool connections are available.") + + except (TimeoutError, HTTPException, SocketError, ProtocolError, + BaseSSLError, SSLError, CertificateError) as e: + # Discard the connection for these exceptions. It will be + # replaced during the next _get_conn() call. + clean_exit = False + if isinstance(e, (BaseSSLError, CertificateError)): + e = SSLError(e) + elif isinstance(e, (SocketError, NewConnectionError)) and self.proxy: + e = ProxyError('Cannot connect to proxy.', e) + elif isinstance(e, (SocketError, HTTPException)): + e = ProtocolError('Connection aborted.', e) + + retries = retries.increment(method, url, error=e, _pool=self, + _stacktrace=sys.exc_info()[2]) + retries.sleep() + + # Keep track of the error for the retry warning. + err = e + + finally: + if not clean_exit: + # We hit some kind of exception, handled or otherwise. We need + # to throw the connection away unless explicitly told not to. + # Close the connection, set the variable to None, and make sure + # we put the None back in the pool to avoid leaking it. + conn = conn and conn.close() + release_this_conn = True + + if release_this_conn: + # Put the connection back to be reused. If the connection is + # expired then it will be None, which will get replaced with a + # fresh connection during _get_conn. + self._put_conn(conn) + + if not conn: + # Try again + log.warning("Retrying (%r) after connection " + "broken by '%r': %s", retries, err, url) + return self.urlopen(method, url, body, headers, retries, + redirect, assert_same_host, + timeout=timeout, pool_timeout=pool_timeout, + release_conn=release_conn, body_pos=body_pos, + **response_kw) + + def drain_and_release_conn(response): + try: + # discard any remaining response body, the connection will be + # released back to the pool once the entire response is read + response.read() + except (TimeoutError, HTTPException, SocketError, ProtocolError, + BaseSSLError, SSLError) as e: + pass + + # Handle redirect? + redirect_location = redirect and response.get_redirect_location() + if redirect_location: + if response.status == 303: + method = 'GET' + + try: + retries = retries.increment(method, url, response=response, _pool=self) + except MaxRetryError: + if retries.raise_on_redirect: + # Drain and release the connection for this response, since + # we're not returning it to be released manually. + drain_and_release_conn(response) + raise + return response + + # drain and return the connection to the pool before recursing + drain_and_release_conn(response) + + retries.sleep_for_retry(response) + log.debug("Redirecting %s -> %s", url, redirect_location) + return self.urlopen( + method, redirect_location, body, headers, + retries=retries, redirect=redirect, + assert_same_host=assert_same_host, + timeout=timeout, pool_timeout=pool_timeout, + release_conn=release_conn, body_pos=body_pos, + **response_kw) + + # Check if we should retry the HTTP response. + has_retry_after = bool(response.getheader('Retry-After')) + if retries.is_retry(method, response.status, has_retry_after): + try: + retries = retries.increment(method, url, response=response, _pool=self) + except MaxRetryError: + if retries.raise_on_status: + # Drain and release the connection for this response, since + # we're not returning it to be released manually. + drain_and_release_conn(response) + raise + return response + + # drain and return the connection to the pool before recursing + drain_and_release_conn(response) + + retries.sleep(response) + log.debug("Retry: %s", url) + return self.urlopen( + method, url, body, headers, + retries=retries, redirect=redirect, + assert_same_host=assert_same_host, + timeout=timeout, pool_timeout=pool_timeout, + release_conn=release_conn, + body_pos=body_pos, **response_kw) + + return response + + +class HTTPSConnectionPool(HTTPConnectionPool): + """ + Same as :class:`.HTTPConnectionPool`, but HTTPS. + + When Python is compiled with the :mod:`ssl` module, then + :class:`.VerifiedHTTPSConnection` is used, which *can* verify certificates, + instead of :class:`.HTTPSConnection`. + + :class:`.VerifiedHTTPSConnection` uses one of ``assert_fingerprint``, + ``assert_hostname`` and ``host`` in this order to verify connections. + If ``assert_hostname`` is False, no verification is done. + + The ``key_file``, ``cert_file``, ``cert_reqs``, ``ca_certs``, + ``ca_cert_dir``, and ``ssl_version`` are only used if :mod:`ssl` is + available and are fed into :meth:`urllib3.util.ssl_wrap_socket` to upgrade + the connection socket into an SSL socket. + """ + + scheme = 'https' + ConnectionCls = HTTPSConnection + + def __init__(self, host, port=None, + strict=False, timeout=Timeout.DEFAULT_TIMEOUT, maxsize=1, + block=False, headers=None, retries=None, + _proxy=None, _proxy_headers=None, + key_file=None, cert_file=None, cert_reqs=None, + ca_certs=None, ssl_version=None, + assert_hostname=None, assert_fingerprint=None, + ca_cert_dir=None, **conn_kw): + + HTTPConnectionPool.__init__(self, host, port, strict, timeout, maxsize, + block, headers, retries, _proxy, _proxy_headers, + **conn_kw) + + if ca_certs and cert_reqs is None: + cert_reqs = 'CERT_REQUIRED' + + self.key_file = key_file + self.cert_file = cert_file + self.cert_reqs = cert_reqs + self.ca_certs = ca_certs + self.ca_cert_dir = ca_cert_dir + self.ssl_version = ssl_version + self.assert_hostname = assert_hostname + self.assert_fingerprint = assert_fingerprint + + def _prepare_conn(self, conn): + """ + Prepare the ``connection`` for :meth:`urllib3.util.ssl_wrap_socket` + and establish the tunnel if proxy is used. + """ + + if isinstance(conn, VerifiedHTTPSConnection): + conn.set_cert(key_file=self.key_file, + cert_file=self.cert_file, + cert_reqs=self.cert_reqs, + ca_certs=self.ca_certs, + ca_cert_dir=self.ca_cert_dir, + assert_hostname=self.assert_hostname, + assert_fingerprint=self.assert_fingerprint) + conn.ssl_version = self.ssl_version + return conn + + def _prepare_proxy(self, conn): + """ + Establish tunnel connection early, because otherwise httplib + would improperly set Host: header to proxy's IP:port. + """ + # Python 2.7+ + try: + set_tunnel = conn.set_tunnel + except AttributeError: # Platform-specific: Python 2.6 + set_tunnel = conn._set_tunnel + + if sys.version_info <= (2, 6, 4) and not self.proxy_headers: # Python 2.6.4 and older + set_tunnel(self._proxy_host, self.port) + else: + set_tunnel(self._proxy_host, self.port, self.proxy_headers) + + conn.connect() + + def _new_conn(self): + """ + Return a fresh :class:`httplib.HTTPSConnection`. + """ + self.num_connections += 1 + log.debug("Starting new HTTPS connection (%d): %s", + self.num_connections, self.host) + + if not self.ConnectionCls or self.ConnectionCls is DummyConnection: + raise SSLError("Can't connect to HTTPS URL because the SSL " + "module is not available.") + + actual_host = self.host + actual_port = self.port + if self.proxy is not None: + actual_host = self.proxy.host + actual_port = self.proxy.port + + conn = self.ConnectionCls(host=actual_host, port=actual_port, + timeout=self.timeout.connect_timeout, + strict=self.strict, **self.conn_kw) + + return self._prepare_conn(conn) + + def _validate_conn(self, conn): + """ + Called right before a request is made, after the socket is created. + """ + super(HTTPSConnectionPool, self)._validate_conn(conn) + + # Force connect early to allow us to validate the connection. + if not getattr(conn, 'sock', None): # AppEngine might not have `.sock` + conn.connect() + + if not conn.is_verified: + warnings.warn(( + 'Unverified HTTPS request is being made. ' + 'Adding certificate verification is strongly advised. See: ' + 'https://urllib3.readthedocs.io/en/latest/advanced-usage.html' + '#ssl-warnings'), + InsecureRequestWarning) + + +def connection_from_url(url, **kw): + """ + Given a url, return an :class:`.ConnectionPool` instance of its host. + + This is a shortcut for not having to parse out the scheme, host, and port + of the url before creating an :class:`.ConnectionPool` instance. + + :param url: + Absolute URL string that must include the scheme. Port is optional. + + :param \\**kw: + Passes additional parameters to the constructor of the appropriate + :class:`.ConnectionPool`. Useful for specifying things like + timeout, maxsize, headers, etc. + + Example:: + + >>> conn = connection_from_url('http://google.com/') + >>> r = conn.request('GET', '/') + """ + scheme, host, port = get_host(url) + port = port or port_by_scheme.get(scheme, 80) + if scheme == 'https': + return HTTPSConnectionPool(host, port=port, **kw) + else: + return HTTPConnectionPool(host, port=port, **kw) + + +def _ipv6_host(host): + """ + Process IPv6 address literals + """ + + # httplib doesn't like it when we include brackets in IPv6 addresses + # Specifically, if we include brackets but also pass the port then + # httplib crazily doubles up the square brackets on the Host header. + # Instead, we need to make sure we never pass ``None`` as the port. + # However, for backward compatibility reasons we can't actually + # *assert* that. See http://bugs.python.org/issue28539 + # + # Also if an IPv6 address literal has a zone identifier, the + # percent sign might be URIencoded, convert it back into ASCII + if host.startswith('[') and host.endswith(']'): + host = host.replace('%25', '%').strip('[]') + return host diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/_securetransport/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/_securetransport/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/_securetransport/bindings.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/_securetransport/bindings.py new file mode 100644 index 00000000..bcf41c02 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/_securetransport/bindings.py @@ -0,0 +1,593 @@ +""" +This module uses ctypes to bind a whole bunch of functions and constants from +SecureTransport. The goal here is to provide the low-level API to +SecureTransport. These are essentially the C-level functions and constants, and +they're pretty gross to work with. + +This code is a bastardised version of the code found in Will Bond's oscrypto +library. An enormous debt is owed to him for blazing this trail for us. For +that reason, this code should be considered to be covered both by urllib3's +license and by oscrypto's: + + Copyright (c) 2015-2016 Will Bond <will@wbond.net> + + Permission is hereby granted, free of charge, to any person obtaining a + copy of this software and associated documentation files (the "Software"), + to deal in the Software without restriction, including without limitation + the rights to use, copy, modify, merge, publish, distribute, sublicense, + and/or sell copies of the Software, and to permit persons to whom the + Software is furnished to do so, subject to the following conditions: + + The above copyright notice and this permission notice shall be included in + all copies or substantial portions of the Software. + + THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING + FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER + DEALINGS IN THE SOFTWARE. +""" +from __future__ import absolute_import + +import platform +from ctypes.util import find_library +from ctypes import ( + c_void_p, c_int32, c_char_p, c_size_t, c_byte, c_uint32, c_ulong, c_long, + c_bool +) +from ctypes import CDLL, POINTER, CFUNCTYPE + + +security_path = find_library('Security') +if not security_path: + raise ImportError('The library Security could not be found') + + +core_foundation_path = find_library('CoreFoundation') +if not core_foundation_path: + raise ImportError('The library CoreFoundation could not be found') + + +version = platform.mac_ver()[0] +version_info = tuple(map(int, version.split('.'))) +if version_info < (10, 8): + raise OSError( + 'Only OS X 10.8 and newer are supported, not %s.%s' % ( + version_info[0], version_info[1] + ) + ) + +Security = CDLL(security_path, use_errno=True) +CoreFoundation = CDLL(core_foundation_path, use_errno=True) + +Boolean = c_bool +CFIndex = c_long +CFStringEncoding = c_uint32 +CFData = c_void_p +CFString = c_void_p +CFArray = c_void_p +CFMutableArray = c_void_p +CFDictionary = c_void_p +CFError = c_void_p +CFType = c_void_p +CFTypeID = c_ulong + +CFTypeRef = POINTER(CFType) +CFAllocatorRef = c_void_p + +OSStatus = c_int32 + +CFDataRef = POINTER(CFData) +CFStringRef = POINTER(CFString) +CFArrayRef = POINTER(CFArray) +CFMutableArrayRef = POINTER(CFMutableArray) +CFDictionaryRef = POINTER(CFDictionary) +CFArrayCallBacks = c_void_p +CFDictionaryKeyCallBacks = c_void_p +CFDictionaryValueCallBacks = c_void_p + +SecCertificateRef = POINTER(c_void_p) +SecExternalFormat = c_uint32 +SecExternalItemType = c_uint32 +SecIdentityRef = POINTER(c_void_p) +SecItemImportExportFlags = c_uint32 +SecItemImportExportKeyParameters = c_void_p +SecKeychainRef = POINTER(c_void_p) +SSLProtocol = c_uint32 +SSLCipherSuite = c_uint32 +SSLContextRef = POINTER(c_void_p) +SecTrustRef = POINTER(c_void_p) +SSLConnectionRef = c_uint32 +SecTrustResultType = c_uint32 +SecTrustOptionFlags = c_uint32 +SSLProtocolSide = c_uint32 +SSLConnectionType = c_uint32 +SSLSessionOption = c_uint32 + + +try: + Security.SecItemImport.argtypes = [ + CFDataRef, + CFStringRef, + POINTER(SecExternalFormat), + POINTER(SecExternalItemType), + SecItemImportExportFlags, + POINTER(SecItemImportExportKeyParameters), + SecKeychainRef, + POINTER(CFArrayRef), + ] + Security.SecItemImport.restype = OSStatus + + Security.SecCertificateGetTypeID.argtypes = [] + Security.SecCertificateGetTypeID.restype = CFTypeID + + Security.SecIdentityGetTypeID.argtypes = [] + Security.SecIdentityGetTypeID.restype = CFTypeID + + Security.SecKeyGetTypeID.argtypes = [] + Security.SecKeyGetTypeID.restype = CFTypeID + + Security.SecCertificateCreateWithData.argtypes = [ + CFAllocatorRef, + CFDataRef + ] + Security.SecCertificateCreateWithData.restype = SecCertificateRef + + Security.SecCertificateCopyData.argtypes = [ + SecCertificateRef + ] + Security.SecCertificateCopyData.restype = CFDataRef + + Security.SecCopyErrorMessageString.argtypes = [ + OSStatus, + c_void_p + ] + Security.SecCopyErrorMessageString.restype = CFStringRef + + Security.SecIdentityCreateWithCertificate.argtypes = [ + CFTypeRef, + SecCertificateRef, + POINTER(SecIdentityRef) + ] + Security.SecIdentityCreateWithCertificate.restype = OSStatus + + Security.SecKeychainCreate.argtypes = [ + c_char_p, + c_uint32, + c_void_p, + Boolean, + c_void_p, + POINTER(SecKeychainRef) + ] + Security.SecKeychainCreate.restype = OSStatus + + Security.SecKeychainDelete.argtypes = [ + SecKeychainRef + ] + Security.SecKeychainDelete.restype = OSStatus + + Security.SecPKCS12Import.argtypes = [ + CFDataRef, + CFDictionaryRef, + POINTER(CFArrayRef) + ] + Security.SecPKCS12Import.restype = OSStatus + + SSLReadFunc = CFUNCTYPE(OSStatus, SSLConnectionRef, c_void_p, POINTER(c_size_t)) + SSLWriteFunc = CFUNCTYPE(OSStatus, SSLConnectionRef, POINTER(c_byte), POINTER(c_size_t)) + + Security.SSLSetIOFuncs.argtypes = [ + SSLContextRef, + SSLReadFunc, + SSLWriteFunc + ] + Security.SSLSetIOFuncs.restype = OSStatus + + Security.SSLSetPeerID.argtypes = [ + SSLContextRef, + c_char_p, + c_size_t + ] + Security.SSLSetPeerID.restype = OSStatus + + Security.SSLSetCertificate.argtypes = [ + SSLContextRef, + CFArrayRef + ] + Security.SSLSetCertificate.restype = OSStatus + + Security.SSLSetCertificateAuthorities.argtypes = [ + SSLContextRef, + CFTypeRef, + Boolean + ] + Security.SSLSetCertificateAuthorities.restype = OSStatus + + Security.SSLSetConnection.argtypes = [ + SSLContextRef, + SSLConnectionRef + ] + Security.SSLSetConnection.restype = OSStatus + + Security.SSLSetPeerDomainName.argtypes = [ + SSLContextRef, + c_char_p, + c_size_t + ] + Security.SSLSetPeerDomainName.restype = OSStatus + + Security.SSLHandshake.argtypes = [ + SSLContextRef + ] + Security.SSLHandshake.restype = OSStatus + + Security.SSLRead.argtypes = [ + SSLContextRef, + c_char_p, + c_size_t, + POINTER(c_size_t) + ] + Security.SSLRead.restype = OSStatus + + Security.SSLWrite.argtypes = [ + SSLContextRef, + c_char_p, + c_size_t, + POINTER(c_size_t) + ] + Security.SSLWrite.restype = OSStatus + + Security.SSLClose.argtypes = [ + SSLContextRef + ] + Security.SSLClose.restype = OSStatus + + Security.SSLGetNumberSupportedCiphers.argtypes = [ + SSLContextRef, + POINTER(c_size_t) + ] + Security.SSLGetNumberSupportedCiphers.restype = OSStatus + + Security.SSLGetSupportedCiphers.argtypes = [ + SSLContextRef, + POINTER(SSLCipherSuite), + POINTER(c_size_t) + ] + Security.SSLGetSupportedCiphers.restype = OSStatus + + Security.SSLSetEnabledCiphers.argtypes = [ + SSLContextRef, + POINTER(SSLCipherSuite), + c_size_t + ] + Security.SSLSetEnabledCiphers.restype = OSStatus + + Security.SSLGetNumberEnabledCiphers.argtype = [ + SSLContextRef, + POINTER(c_size_t) + ] + Security.SSLGetNumberEnabledCiphers.restype = OSStatus + + Security.SSLGetEnabledCiphers.argtypes = [ + SSLContextRef, + POINTER(SSLCipherSuite), + POINTER(c_size_t) + ] + Security.SSLGetEnabledCiphers.restype = OSStatus + + Security.SSLGetNegotiatedCipher.argtypes = [ + SSLContextRef, + POINTER(SSLCipherSuite) + ] + Security.SSLGetNegotiatedCipher.restype = OSStatus + + Security.SSLGetNegotiatedProtocolVersion.argtypes = [ + SSLContextRef, + POINTER(SSLProtocol) + ] + Security.SSLGetNegotiatedProtocolVersion.restype = OSStatus + + Security.SSLCopyPeerTrust.argtypes = [ + SSLContextRef, + POINTER(SecTrustRef) + ] + Security.SSLCopyPeerTrust.restype = OSStatus + + Security.SecTrustSetAnchorCertificates.argtypes = [ + SecTrustRef, + CFArrayRef + ] + Security.SecTrustSetAnchorCertificates.restype = OSStatus + + Security.SecTrustSetAnchorCertificatesOnly.argstypes = [ + SecTrustRef, + Boolean + ] + Security.SecTrustSetAnchorCertificatesOnly.restype = OSStatus + + Security.SecTrustEvaluate.argtypes = [ + SecTrustRef, + POINTER(SecTrustResultType) + ] + Security.SecTrustEvaluate.restype = OSStatus + + Security.SecTrustGetCertificateCount.argtypes = [ + SecTrustRef + ] + Security.SecTrustGetCertificateCount.restype = CFIndex + + Security.SecTrustGetCertificateAtIndex.argtypes = [ + SecTrustRef, + CFIndex + ] + Security.SecTrustGetCertificateAtIndex.restype = SecCertificateRef + + Security.SSLCreateContext.argtypes = [ + CFAllocatorRef, + SSLProtocolSide, + SSLConnectionType + ] + Security.SSLCreateContext.restype = SSLContextRef + + Security.SSLSetSessionOption.argtypes = [ + SSLContextRef, + SSLSessionOption, + Boolean + ] + Security.SSLSetSessionOption.restype = OSStatus + + Security.SSLSetProtocolVersionMin.argtypes = [ + SSLContextRef, + SSLProtocol + ] + Security.SSLSetProtocolVersionMin.restype = OSStatus + + Security.SSLSetProtocolVersionMax.argtypes = [ + SSLContextRef, + SSLProtocol + ] + Security.SSLSetProtocolVersionMax.restype = OSStatus + + Security.SecCopyErrorMessageString.argtypes = [ + OSStatus, + c_void_p + ] + Security.SecCopyErrorMessageString.restype = CFStringRef + + Security.SSLReadFunc = SSLReadFunc + Security.SSLWriteFunc = SSLWriteFunc + Security.SSLContextRef = SSLContextRef + Security.SSLProtocol = SSLProtocol + Security.SSLCipherSuite = SSLCipherSuite + Security.SecIdentityRef = SecIdentityRef + Security.SecKeychainRef = SecKeychainRef + Security.SecTrustRef = SecTrustRef + Security.SecTrustResultType = SecTrustResultType + Security.SecExternalFormat = SecExternalFormat + Security.OSStatus = OSStatus + + Security.kSecImportExportPassphrase = CFStringRef.in_dll( + Security, 'kSecImportExportPassphrase' + ) + Security.kSecImportItemIdentity = CFStringRef.in_dll( + Security, 'kSecImportItemIdentity' + ) + + # CoreFoundation time! + CoreFoundation.CFRetain.argtypes = [ + CFTypeRef + ] + CoreFoundation.CFRetain.restype = CFTypeRef + + CoreFoundation.CFRelease.argtypes = [ + CFTypeRef + ] + CoreFoundation.CFRelease.restype = None + + CoreFoundation.CFGetTypeID.argtypes = [ + CFTypeRef + ] + CoreFoundation.CFGetTypeID.restype = CFTypeID + + CoreFoundation.CFStringCreateWithCString.argtypes = [ + CFAllocatorRef, + c_char_p, + CFStringEncoding + ] + CoreFoundation.CFStringCreateWithCString.restype = CFStringRef + + CoreFoundation.CFStringGetCStringPtr.argtypes = [ + CFStringRef, + CFStringEncoding + ] + CoreFoundation.CFStringGetCStringPtr.restype = c_char_p + + CoreFoundation.CFStringGetCString.argtypes = [ + CFStringRef, + c_char_p, + CFIndex, + CFStringEncoding + ] + CoreFoundation.CFStringGetCString.restype = c_bool + + CoreFoundation.CFDataCreate.argtypes = [ + CFAllocatorRef, + c_char_p, + CFIndex + ] + CoreFoundation.CFDataCreate.restype = CFDataRef + + CoreFoundation.CFDataGetLength.argtypes = [ + CFDataRef + ] + CoreFoundation.CFDataGetLength.restype = CFIndex + + CoreFoundation.CFDataGetBytePtr.argtypes = [ + CFDataRef + ] + CoreFoundation.CFDataGetBytePtr.restype = c_void_p + + CoreFoundation.CFDictionaryCreate.argtypes = [ + CFAllocatorRef, + POINTER(CFTypeRef), + POINTER(CFTypeRef), + CFIndex, + CFDictionaryKeyCallBacks, + CFDictionaryValueCallBacks + ] + CoreFoundation.CFDictionaryCreate.restype = CFDictionaryRef + + CoreFoundation.CFDictionaryGetValue.argtypes = [ + CFDictionaryRef, + CFTypeRef + ] + CoreFoundation.CFDictionaryGetValue.restype = CFTypeRef + + CoreFoundation.CFArrayCreate.argtypes = [ + CFAllocatorRef, + POINTER(CFTypeRef), + CFIndex, + CFArrayCallBacks, + ] + CoreFoundation.CFArrayCreate.restype = CFArrayRef + + CoreFoundation.CFArrayCreateMutable.argtypes = [ + CFAllocatorRef, + CFIndex, + CFArrayCallBacks + ] + CoreFoundation.CFArrayCreateMutable.restype = CFMutableArrayRef + + CoreFoundation.CFArrayAppendValue.argtypes = [ + CFMutableArrayRef, + c_void_p + ] + CoreFoundation.CFArrayAppendValue.restype = None + + CoreFoundation.CFArrayGetCount.argtypes = [ + CFArrayRef + ] + CoreFoundation.CFArrayGetCount.restype = CFIndex + + CoreFoundation.CFArrayGetValueAtIndex.argtypes = [ + CFArrayRef, + CFIndex + ] + CoreFoundation.CFArrayGetValueAtIndex.restype = c_void_p + + CoreFoundation.kCFAllocatorDefault = CFAllocatorRef.in_dll( + CoreFoundation, 'kCFAllocatorDefault' + ) + CoreFoundation.kCFTypeArrayCallBacks = c_void_p.in_dll(CoreFoundation, 'kCFTypeArrayCallBacks') + CoreFoundation.kCFTypeDictionaryKeyCallBacks = c_void_p.in_dll( + CoreFoundation, 'kCFTypeDictionaryKeyCallBacks' + ) + CoreFoundation.kCFTypeDictionaryValueCallBacks = c_void_p.in_dll( + CoreFoundation, 'kCFTypeDictionaryValueCallBacks' + ) + + CoreFoundation.CFTypeRef = CFTypeRef + CoreFoundation.CFArrayRef = CFArrayRef + CoreFoundation.CFStringRef = CFStringRef + CoreFoundation.CFDictionaryRef = CFDictionaryRef + +except (AttributeError): + raise ImportError('Error initializing ctypes') + + +class CFConst(object): + """ + A class object that acts as essentially a namespace for CoreFoundation + constants. + """ + kCFStringEncodingUTF8 = CFStringEncoding(0x08000100) + + +class SecurityConst(object): + """ + A class object that acts as essentially a namespace for Security constants. + """ + kSSLSessionOptionBreakOnServerAuth = 0 + + kSSLProtocol2 = 1 + kSSLProtocol3 = 2 + kTLSProtocol1 = 4 + kTLSProtocol11 = 7 + kTLSProtocol12 = 8 + + kSSLClientSide = 1 + kSSLStreamType = 0 + + kSecFormatPEMSequence = 10 + + kSecTrustResultInvalid = 0 + kSecTrustResultProceed = 1 + # This gap is present on purpose: this was kSecTrustResultConfirm, which + # is deprecated. + kSecTrustResultDeny = 3 + kSecTrustResultUnspecified = 4 + kSecTrustResultRecoverableTrustFailure = 5 + kSecTrustResultFatalTrustFailure = 6 + kSecTrustResultOtherError = 7 + + errSSLProtocol = -9800 + errSSLWouldBlock = -9803 + errSSLClosedGraceful = -9805 + errSSLClosedNoNotify = -9816 + errSSLClosedAbort = -9806 + + errSSLXCertChainInvalid = -9807 + errSSLCrypto = -9809 + errSSLInternal = -9810 + errSSLCertExpired = -9814 + errSSLCertNotYetValid = -9815 + errSSLUnknownRootCert = -9812 + errSSLNoRootCert = -9813 + errSSLHostNameMismatch = -9843 + errSSLPeerHandshakeFail = -9824 + errSSLPeerUserCancelled = -9839 + errSSLWeakPeerEphemeralDHKey = -9850 + errSSLServerAuthCompleted = -9841 + errSSLRecordOverflow = -9847 + + errSecVerifyFailed = -67808 + errSecNoTrustSettings = -25263 + errSecItemNotFound = -25300 + errSecInvalidTrustSettings = -25262 + + # Cipher suites. We only pick the ones our default cipher string allows. + TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 = 0xC02C + TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384 = 0xC030 + TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 = 0xC02B + TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256 = 0xC02F + TLS_DHE_DSS_WITH_AES_256_GCM_SHA384 = 0x00A3 + TLS_DHE_RSA_WITH_AES_256_GCM_SHA384 = 0x009F + TLS_DHE_DSS_WITH_AES_128_GCM_SHA256 = 0x00A2 + TLS_DHE_RSA_WITH_AES_128_GCM_SHA256 = 0x009E + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384 = 0xC024 + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384 = 0xC028 + TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA = 0xC00A + TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA = 0xC014 + TLS_DHE_RSA_WITH_AES_256_CBC_SHA256 = 0x006B + TLS_DHE_DSS_WITH_AES_256_CBC_SHA256 = 0x006A + TLS_DHE_RSA_WITH_AES_256_CBC_SHA = 0x0039 + TLS_DHE_DSS_WITH_AES_256_CBC_SHA = 0x0038 + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256 = 0xC023 + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256 = 0xC027 + TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA = 0xC009 + TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA = 0xC013 + TLS_DHE_RSA_WITH_AES_128_CBC_SHA256 = 0x0067 + TLS_DHE_DSS_WITH_AES_128_CBC_SHA256 = 0x0040 + TLS_DHE_RSA_WITH_AES_128_CBC_SHA = 0x0033 + TLS_DHE_DSS_WITH_AES_128_CBC_SHA = 0x0032 + TLS_RSA_WITH_AES_256_GCM_SHA384 = 0x009D + TLS_RSA_WITH_AES_128_GCM_SHA256 = 0x009C + TLS_RSA_WITH_AES_256_CBC_SHA256 = 0x003D + TLS_RSA_WITH_AES_128_CBC_SHA256 = 0x003C + TLS_RSA_WITH_AES_256_CBC_SHA = 0x0035 + TLS_RSA_WITH_AES_128_CBC_SHA = 0x002F + TLS_AES_128_GCM_SHA256 = 0x1301 + TLS_AES_256_GCM_SHA384 = 0x1302 + TLS_CHACHA20_POLY1305_SHA256 = 0x1303 diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/_securetransport/low_level.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/_securetransport/low_level.py new file mode 100644 index 00000000..5e3494bc --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/_securetransport/low_level.py @@ -0,0 +1,343 @@ +""" +Low-level helpers for the SecureTransport bindings. + +These are Python functions that are not directly related to the high-level APIs +but are necessary to get them to work. They include a whole bunch of low-level +CoreFoundation messing about and memory management. The concerns in this module +are almost entirely about trying to avoid memory leaks and providing +appropriate and useful assistance to the higher-level code. +""" +import base64 +import ctypes +import itertools +import re +import os +import ssl +import tempfile + +from .bindings import Security, CoreFoundation, CFConst + + +# This regular expression is used to grab PEM data out of a PEM bundle. +_PEM_CERTS_RE = re.compile( + b"-----BEGIN CERTIFICATE-----\n(.*?)\n-----END CERTIFICATE-----", re.DOTALL +) + + +def _cf_data_from_bytes(bytestring): + """ + Given a bytestring, create a CFData object from it. This CFData object must + be CFReleased by the caller. + """ + return CoreFoundation.CFDataCreate( + CoreFoundation.kCFAllocatorDefault, bytestring, len(bytestring) + ) + + +def _cf_dictionary_from_tuples(tuples): + """ + Given a list of Python tuples, create an associated CFDictionary. + """ + dictionary_size = len(tuples) + + # We need to get the dictionary keys and values out in the same order. + keys = (t[0] for t in tuples) + values = (t[1] for t in tuples) + cf_keys = (CoreFoundation.CFTypeRef * dictionary_size)(*keys) + cf_values = (CoreFoundation.CFTypeRef * dictionary_size)(*values) + + return CoreFoundation.CFDictionaryCreate( + CoreFoundation.kCFAllocatorDefault, + cf_keys, + cf_values, + dictionary_size, + CoreFoundation.kCFTypeDictionaryKeyCallBacks, + CoreFoundation.kCFTypeDictionaryValueCallBacks, + ) + + +def _cf_string_to_unicode(value): + """ + Creates a Unicode string from a CFString object. Used entirely for error + reporting. + + Yes, it annoys me quite a lot that this function is this complex. + """ + value_as_void_p = ctypes.cast(value, ctypes.POINTER(ctypes.c_void_p)) + + string = CoreFoundation.CFStringGetCStringPtr( + value_as_void_p, + CFConst.kCFStringEncodingUTF8 + ) + if string is None: + buffer = ctypes.create_string_buffer(1024) + result = CoreFoundation.CFStringGetCString( + value_as_void_p, + buffer, + 1024, + CFConst.kCFStringEncodingUTF8 + ) + if not result: + raise OSError('Error copying C string from CFStringRef') + string = buffer.value + if string is not None: + string = string.decode('utf-8') + return string + + +def _assert_no_error(error, exception_class=None): + """ + Checks the return code and throws an exception if there is an error to + report + """ + if error == 0: + return + + cf_error_string = Security.SecCopyErrorMessageString(error, None) + output = _cf_string_to_unicode(cf_error_string) + CoreFoundation.CFRelease(cf_error_string) + + if output is None or output == u'': + output = u'OSStatus %s' % error + + if exception_class is None: + exception_class = ssl.SSLError + + raise exception_class(output) + + +def _cert_array_from_pem(pem_bundle): + """ + Given a bundle of certs in PEM format, turns them into a CFArray of certs + that can be used to validate a cert chain. + """ + der_certs = [ + base64.b64decode(match.group(1)) + for match in _PEM_CERTS_RE.finditer(pem_bundle) + ] + if not der_certs: + raise ssl.SSLError("No root certificates specified") + + cert_array = CoreFoundation.CFArrayCreateMutable( + CoreFoundation.kCFAllocatorDefault, + 0, + ctypes.byref(CoreFoundation.kCFTypeArrayCallBacks) + ) + if not cert_array: + raise ssl.SSLError("Unable to allocate memory!") + + try: + for der_bytes in der_certs: + certdata = _cf_data_from_bytes(der_bytes) + if not certdata: + raise ssl.SSLError("Unable to allocate memory!") + cert = Security.SecCertificateCreateWithData( + CoreFoundation.kCFAllocatorDefault, certdata + ) + CoreFoundation.CFRelease(certdata) + if not cert: + raise ssl.SSLError("Unable to build cert object!") + + CoreFoundation.CFArrayAppendValue(cert_array, cert) + CoreFoundation.CFRelease(cert) + except Exception: + # We need to free the array before the exception bubbles further. + # We only want to do that if an error occurs: otherwise, the caller + # should free. + CoreFoundation.CFRelease(cert_array) + + return cert_array + + +def _is_cert(item): + """ + Returns True if a given CFTypeRef is a certificate. + """ + expected = Security.SecCertificateGetTypeID() + return CoreFoundation.CFGetTypeID(item) == expected + + +def _is_identity(item): + """ + Returns True if a given CFTypeRef is an identity. + """ + expected = Security.SecIdentityGetTypeID() + return CoreFoundation.CFGetTypeID(item) == expected + + +def _temporary_keychain(): + """ + This function creates a temporary Mac keychain that we can use to work with + credentials. This keychain uses a one-time password and a temporary file to + store the data. We expect to have one keychain per socket. The returned + SecKeychainRef must be freed by the caller, including calling + SecKeychainDelete. + + Returns a tuple of the SecKeychainRef and the path to the temporary + directory that contains it. + """ + # Unfortunately, SecKeychainCreate requires a path to a keychain. This + # means we cannot use mkstemp to use a generic temporary file. Instead, + # we're going to create a temporary directory and a filename to use there. + # This filename will be 8 random bytes expanded into base64. We also need + # some random bytes to password-protect the keychain we're creating, so we + # ask for 40 random bytes. + random_bytes = os.urandom(40) + filename = base64.b64encode(random_bytes[:8]).decode('utf-8') + password = base64.b64encode(random_bytes[8:]) # Must be valid UTF-8 + tempdirectory = tempfile.mkdtemp() + + keychain_path = os.path.join(tempdirectory, filename).encode('utf-8') + + # We now want to create the keychain itself. + keychain = Security.SecKeychainRef() + status = Security.SecKeychainCreate( + keychain_path, + len(password), + password, + False, + None, + ctypes.byref(keychain) + ) + _assert_no_error(status) + + # Having created the keychain, we want to pass it off to the caller. + return keychain, tempdirectory + + +def _load_items_from_file(keychain, path): + """ + Given a single file, loads all the trust objects from it into arrays and + the keychain. + Returns a tuple of lists: the first list is a list of identities, the + second a list of certs. + """ + certificates = [] + identities = [] + result_array = None + + with open(path, 'rb') as f: + raw_filedata = f.read() + + try: + filedata = CoreFoundation.CFDataCreate( + CoreFoundation.kCFAllocatorDefault, + raw_filedata, + len(raw_filedata) + ) + result_array = CoreFoundation.CFArrayRef() + result = Security.SecItemImport( + filedata, # cert data + None, # Filename, leaving it out for now + None, # What the type of the file is, we don't care + None, # what's in the file, we don't care + 0, # import flags + None, # key params, can include passphrase in the future + keychain, # The keychain to insert into + ctypes.byref(result_array) # Results + ) + _assert_no_error(result) + + # A CFArray is not very useful to us as an intermediary + # representation, so we are going to extract the objects we want + # and then free the array. We don't need to keep hold of keys: the + # keychain already has them! + result_count = CoreFoundation.CFArrayGetCount(result_array) + for index in range(result_count): + item = CoreFoundation.CFArrayGetValueAtIndex( + result_array, index + ) + item = ctypes.cast(item, CoreFoundation.CFTypeRef) + + if _is_cert(item): + CoreFoundation.CFRetain(item) + certificates.append(item) + elif _is_identity(item): + CoreFoundation.CFRetain(item) + identities.append(item) + finally: + if result_array: + CoreFoundation.CFRelease(result_array) + + CoreFoundation.CFRelease(filedata) + + return (identities, certificates) + + +def _load_client_cert_chain(keychain, *paths): + """ + Load certificates and maybe keys from a number of files. Has the end goal + of returning a CFArray containing one SecIdentityRef, and then zero or more + SecCertificateRef objects, suitable for use as a client certificate trust + chain. + """ + # Ok, the strategy. + # + # This relies on knowing that macOS will not give you a SecIdentityRef + # unless you have imported a key into a keychain. This is a somewhat + # artificial limitation of macOS (for example, it doesn't necessarily + # affect iOS), but there is nothing inside Security.framework that lets you + # get a SecIdentityRef without having a key in a keychain. + # + # So the policy here is we take all the files and iterate them in order. + # Each one will use SecItemImport to have one or more objects loaded from + # it. We will also point at a keychain that macOS can use to work with the + # private key. + # + # Once we have all the objects, we'll check what we actually have. If we + # already have a SecIdentityRef in hand, fab: we'll use that. Otherwise, + # we'll take the first certificate (which we assume to be our leaf) and + # ask the keychain to give us a SecIdentityRef with that cert's associated + # key. + # + # We'll then return a CFArray containing the trust chain: one + # SecIdentityRef and then zero-or-more SecCertificateRef objects. The + # responsibility for freeing this CFArray will be with the caller. This + # CFArray must remain alive for the entire connection, so in practice it + # will be stored with a single SSLSocket, along with the reference to the + # keychain. + certificates = [] + identities = [] + + # Filter out bad paths. + paths = (path for path in paths if path) + + try: + for file_path in paths: + new_identities, new_certs = _load_items_from_file( + keychain, file_path + ) + identities.extend(new_identities) + certificates.extend(new_certs) + + # Ok, we have everything. The question is: do we have an identity? If + # not, we want to grab one from the first cert we have. + if not identities: + new_identity = Security.SecIdentityRef() + status = Security.SecIdentityCreateWithCertificate( + keychain, + certificates[0], + ctypes.byref(new_identity) + ) + _assert_no_error(status) + identities.append(new_identity) + + # We now want to release the original certificate, as we no longer + # need it. + CoreFoundation.CFRelease(certificates.pop(0)) + + # We now need to build a new CFArray that holds the trust chain. + trust_chain = CoreFoundation.CFArrayCreateMutable( + CoreFoundation.kCFAllocatorDefault, + 0, + ctypes.byref(CoreFoundation.kCFTypeArrayCallBacks), + ) + for item in itertools.chain(identities, certificates): + # ArrayAppendValue does a CFRetain on the item. That's fine, + # because the finally block will release our other refs to them. + CoreFoundation.CFArrayAppendValue(trust_chain, item) + + return trust_chain + finally: + for obj in itertools.chain(identities, certificates): + CoreFoundation.CFRelease(obj) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/appengine.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/appengine.py new file mode 100644 index 00000000..ce17e83f --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/appengine.py @@ -0,0 +1,296 @@ +""" +This module provides a pool manager that uses Google App Engine's +`URLFetch Service <https://cloud.google.com/appengine/docs/python/urlfetch>`_. + +Example usage:: + + from pip._vendor.urllib3 import PoolManager + from pip._vendor.urllib3.contrib.appengine import AppEngineManager, is_appengine_sandbox + + if is_appengine_sandbox(): + # AppEngineManager uses AppEngine's URLFetch API behind the scenes + http = AppEngineManager() + else: + # PoolManager uses a socket-level API behind the scenes + http = PoolManager() + + r = http.request('GET', 'https://google.com/') + +There are `limitations <https://cloud.google.com/appengine/docs/python/\ +urlfetch/#Python_Quotas_and_limits>`_ to the URLFetch service and it may not be +the best choice for your application. There are three options for using +urllib3 on Google App Engine: + +1. You can use :class:`AppEngineManager` with URLFetch. URLFetch is + cost-effective in many circumstances as long as your usage is within the + limitations. +2. You can use a normal :class:`~urllib3.PoolManager` by enabling sockets. + Sockets also have `limitations and restrictions + <https://cloud.google.com/appengine/docs/python/sockets/\ + #limitations-and-restrictions>`_ and have a lower free quota than URLFetch. + To use sockets, be sure to specify the following in your ``app.yaml``:: + + env_variables: + GAE_USE_SOCKETS_HTTPLIB : 'true' + +3. If you are using `App Engine Flexible +<https://cloud.google.com/appengine/docs/flexible/>`_, you can use the standard +:class:`PoolManager` without any configuration or special environment variables. +""" + +from __future__ import absolute_import +import logging +import os +import warnings +from ..packages.six.moves.urllib.parse import urljoin + +from ..exceptions import ( + HTTPError, + HTTPWarning, + MaxRetryError, + ProtocolError, + TimeoutError, + SSLError +) + +from ..packages.six import BytesIO +from ..request import RequestMethods +from ..response import HTTPResponse +from ..util.timeout import Timeout +from ..util.retry import Retry + +try: + from google.appengine.api import urlfetch +except ImportError: + urlfetch = None + + +log = logging.getLogger(__name__) + + +class AppEnginePlatformWarning(HTTPWarning): + pass + + +class AppEnginePlatformError(HTTPError): + pass + + +class AppEngineManager(RequestMethods): + """ + Connection manager for Google App Engine sandbox applications. + + This manager uses the URLFetch service directly instead of using the + emulated httplib, and is subject to URLFetch limitations as described in + the App Engine documentation `here + <https://cloud.google.com/appengine/docs/python/urlfetch>`_. + + Notably it will raise an :class:`AppEnginePlatformError` if: + * URLFetch is not available. + * If you attempt to use this on App Engine Flexible, as full socket + support is available. + * If a request size is more than 10 megabytes. + * If a response size is more than 32 megabtyes. + * If you use an unsupported request method such as OPTIONS. + + Beyond those cases, it will raise normal urllib3 errors. + """ + + def __init__(self, headers=None, retries=None, validate_certificate=True, + urlfetch_retries=True): + if not urlfetch: + raise AppEnginePlatformError( + "URLFetch is not available in this environment.") + + if is_prod_appengine_mvms(): + raise AppEnginePlatformError( + "Use normal urllib3.PoolManager instead of AppEngineManager" + "on Managed VMs, as using URLFetch is not necessary in " + "this environment.") + + warnings.warn( + "urllib3 is using URLFetch on Google App Engine sandbox instead " + "of sockets. To use sockets directly instead of URLFetch see " + "https://urllib3.readthedocs.io/en/latest/reference/urllib3.contrib.html.", + AppEnginePlatformWarning) + + RequestMethods.__init__(self, headers) + self.validate_certificate = validate_certificate + self.urlfetch_retries = urlfetch_retries + + self.retries = retries or Retry.DEFAULT + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + # Return False to re-raise any potential exceptions + return False + + def urlopen(self, method, url, body=None, headers=None, + retries=None, redirect=True, timeout=Timeout.DEFAULT_TIMEOUT, + **response_kw): + + retries = self._get_retries(retries, redirect) + + try: + follow_redirects = ( + redirect and + retries.redirect != 0 and + retries.total) + response = urlfetch.fetch( + url, + payload=body, + method=method, + headers=headers or {}, + allow_truncated=False, + follow_redirects=self.urlfetch_retries and follow_redirects, + deadline=self._get_absolute_timeout(timeout), + validate_certificate=self.validate_certificate, + ) + except urlfetch.DeadlineExceededError as e: + raise TimeoutError(self, e) + + except urlfetch.InvalidURLError as e: + if 'too large' in str(e): + raise AppEnginePlatformError( + "URLFetch request too large, URLFetch only " + "supports requests up to 10mb in size.", e) + raise ProtocolError(e) + + except urlfetch.DownloadError as e: + if 'Too many redirects' in str(e): + raise MaxRetryError(self, url, reason=e) + raise ProtocolError(e) + + except urlfetch.ResponseTooLargeError as e: + raise AppEnginePlatformError( + "URLFetch response too large, URLFetch only supports" + "responses up to 32mb in size.", e) + + except urlfetch.SSLCertificateError as e: + raise SSLError(e) + + except urlfetch.InvalidMethodError as e: + raise AppEnginePlatformError( + "URLFetch does not support method: %s" % method, e) + + http_response = self._urlfetch_response_to_http_response( + response, retries=retries, **response_kw) + + # Handle redirect? + redirect_location = redirect and http_response.get_redirect_location() + if redirect_location: + # Check for redirect response + if (self.urlfetch_retries and retries.raise_on_redirect): + raise MaxRetryError(self, url, "too many redirects") + else: + if http_response.status == 303: + method = 'GET' + + try: + retries = retries.increment(method, url, response=http_response, _pool=self) + except MaxRetryError: + if retries.raise_on_redirect: + raise MaxRetryError(self, url, "too many redirects") + return http_response + + retries.sleep_for_retry(http_response) + log.debug("Redirecting %s -> %s", url, redirect_location) + redirect_url = urljoin(url, redirect_location) + return self.urlopen( + method, redirect_url, body, headers, + retries=retries, redirect=redirect, + timeout=timeout, **response_kw) + + # Check if we should retry the HTTP response. + has_retry_after = bool(http_response.getheader('Retry-After')) + if retries.is_retry(method, http_response.status, has_retry_after): + retries = retries.increment( + method, url, response=http_response, _pool=self) + log.debug("Retry: %s", url) + retries.sleep(http_response) + return self.urlopen( + method, url, + body=body, headers=headers, + retries=retries, redirect=redirect, + timeout=timeout, **response_kw) + + return http_response + + def _urlfetch_response_to_http_response(self, urlfetch_resp, **response_kw): + + if is_prod_appengine(): + # Production GAE handles deflate encoding automatically, but does + # not remove the encoding header. + content_encoding = urlfetch_resp.headers.get('content-encoding') + + if content_encoding == 'deflate': + del urlfetch_resp.headers['content-encoding'] + + transfer_encoding = urlfetch_resp.headers.get('transfer-encoding') + # We have a full response's content, + # so let's make sure we don't report ourselves as chunked data. + if transfer_encoding == 'chunked': + encodings = transfer_encoding.split(",") + encodings.remove('chunked') + urlfetch_resp.headers['transfer-encoding'] = ','.join(encodings) + + return HTTPResponse( + # In order for decoding to work, we must present the content as + # a file-like object. + body=BytesIO(urlfetch_resp.content), + headers=urlfetch_resp.headers, + status=urlfetch_resp.status_code, + **response_kw + ) + + def _get_absolute_timeout(self, timeout): + if timeout is Timeout.DEFAULT_TIMEOUT: + return None # Defer to URLFetch's default. + if isinstance(timeout, Timeout): + if timeout._read is not None or timeout._connect is not None: + warnings.warn( + "URLFetch does not support granular timeout settings, " + "reverting to total or default URLFetch timeout.", + AppEnginePlatformWarning) + return timeout.total + return timeout + + def _get_retries(self, retries, redirect): + if not isinstance(retries, Retry): + retries = Retry.from_int( + retries, redirect=redirect, default=self.retries) + + if retries.connect or retries.read or retries.redirect: + warnings.warn( + "URLFetch only supports total retries and does not " + "recognize connect, read, or redirect retry parameters.", + AppEnginePlatformWarning) + + return retries + + +def is_appengine(): + return (is_local_appengine() or + is_prod_appengine() or + is_prod_appengine_mvms()) + + +def is_appengine_sandbox(): + return is_appengine() and not is_prod_appengine_mvms() + + +def is_local_appengine(): + return ('APPENGINE_RUNTIME' in os.environ and + 'Development/' in os.environ['SERVER_SOFTWARE']) + + +def is_prod_appengine(): + return ('APPENGINE_RUNTIME' in os.environ and + 'Google App Engine/' in os.environ['SERVER_SOFTWARE'] and + not is_prod_appengine_mvms()) + + +def is_prod_appengine_mvms(): + return os.environ.get('GAE_VM', False) == 'true' diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/ntlmpool.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/ntlmpool.py new file mode 100644 index 00000000..642e99ed --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/ntlmpool.py @@ -0,0 +1,112 @@ +""" +NTLM authenticating pool, contributed by erikcederstran + +Issue #10, see: http://code.google.com/p/urllib3/issues/detail?id=10 +""" +from __future__ import absolute_import + +from logging import getLogger +from ntlm import ntlm + +from .. import HTTPSConnectionPool +from ..packages.six.moves.http_client import HTTPSConnection + + +log = getLogger(__name__) + + +class NTLMConnectionPool(HTTPSConnectionPool): + """ + Implements an NTLM authentication version of an urllib3 connection pool + """ + + scheme = 'https' + + def __init__(self, user, pw, authurl, *args, **kwargs): + """ + authurl is a random URL on the server that is protected by NTLM. + user is the Windows user, probably in the DOMAIN\\username format. + pw is the password for the user. + """ + super(NTLMConnectionPool, self).__init__(*args, **kwargs) + self.authurl = authurl + self.rawuser = user + user_parts = user.split('\\', 1) + self.domain = user_parts[0].upper() + self.user = user_parts[1] + self.pw = pw + + def _new_conn(self): + # Performs the NTLM handshake that secures the connection. The socket + # must be kept open while requests are performed. + self.num_connections += 1 + log.debug('Starting NTLM HTTPS connection no. %d: https://%s%s', + self.num_connections, self.host, self.authurl) + + headers = {} + headers['Connection'] = 'Keep-Alive' + req_header = 'Authorization' + resp_header = 'www-authenticate' + + conn = HTTPSConnection(host=self.host, port=self.port) + + # Send negotiation message + headers[req_header] = ( + 'NTLM %s' % ntlm.create_NTLM_NEGOTIATE_MESSAGE(self.rawuser)) + log.debug('Request headers: %s', headers) + conn.request('GET', self.authurl, None, headers) + res = conn.getresponse() + reshdr = dict(res.getheaders()) + log.debug('Response status: %s %s', res.status, res.reason) + log.debug('Response headers: %s', reshdr) + log.debug('Response data: %s [...]', res.read(100)) + + # Remove the reference to the socket, so that it can not be closed by + # the response object (we want to keep the socket open) + res.fp = None + + # Server should respond with a challenge message + auth_header_values = reshdr[resp_header].split(', ') + auth_header_value = None + for s in auth_header_values: + if s[:5] == 'NTLM ': + auth_header_value = s[5:] + if auth_header_value is None: + raise Exception('Unexpected %s response header: %s' % + (resp_header, reshdr[resp_header])) + + # Send authentication message + ServerChallenge, NegotiateFlags = \ + ntlm.parse_NTLM_CHALLENGE_MESSAGE(auth_header_value) + auth_msg = ntlm.create_NTLM_AUTHENTICATE_MESSAGE(ServerChallenge, + self.user, + self.domain, + self.pw, + NegotiateFlags) + headers[req_header] = 'NTLM %s' % auth_msg + log.debug('Request headers: %s', headers) + conn.request('GET', self.authurl, None, headers) + res = conn.getresponse() + log.debug('Response status: %s %s', res.status, res.reason) + log.debug('Response headers: %s', dict(res.getheaders())) + log.debug('Response data: %s [...]', res.read()[:100]) + if res.status != 200: + if res.status == 401: + raise Exception('Server rejected request: wrong ' + 'username or password') + raise Exception('Wrong server response: %s %s' % + (res.status, res.reason)) + + res.fp = None + log.debug('Connection established') + return conn + + def urlopen(self, method, url, body=None, headers=None, retries=3, + redirect=True, assert_same_host=True): + if headers is None: + headers = {} + headers['Connection'] = 'Keep-Alive' + return super(NTLMConnectionPool, self).urlopen(method, url, body, + headers, retries, + redirect, + assert_same_host) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/pyopenssl.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/pyopenssl.py new file mode 100644 index 00000000..1bb3787d --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/pyopenssl.py @@ -0,0 +1,455 @@ +""" +SSL with SNI_-support for Python 2. Follow these instructions if you would +like to verify SSL certificates in Python 2. Note, the default libraries do +*not* do certificate checking; you need to do additional work to validate +certificates yourself. + +This needs the following packages installed: + +* pyOpenSSL (tested with 16.0.0) +* cryptography (minimum 1.3.4, from pyopenssl) +* idna (minimum 2.0, from cryptography) + +However, pyopenssl depends on cryptography, which depends on idna, so while we +use all three directly here we end up having relatively few packages required. + +You can install them with the following command: + + pip install pyopenssl cryptography idna + +To activate certificate checking, call +:func:`~urllib3.contrib.pyopenssl.inject_into_urllib3` from your Python code +before you begin making HTTP requests. This can be done in a ``sitecustomize`` +module, or at any other time before your application begins using ``urllib3``, +like this:: + + try: + import urllib3.contrib.pyopenssl + urllib3.contrib.pyopenssl.inject_into_urllib3() + except ImportError: + pass + +Now you can use :mod:`urllib3` as you normally would, and it will support SNI +when the required modules are installed. + +Activating this module also has the positive side effect of disabling SSL/TLS +compression in Python 2 (see `CRIME attack`_). + +If you want to configure the default list of supported cipher suites, you can +set the ``urllib3.contrib.pyopenssl.DEFAULT_SSL_CIPHER_LIST`` variable. + +.. _sni: https://en.wikipedia.org/wiki/Server_Name_Indication +.. _crime attack: https://en.wikipedia.org/wiki/CRIME_(security_exploit) +""" +from __future__ import absolute_import + +import OpenSSL.SSL +from cryptography import x509 +from cryptography.hazmat.backends.openssl import backend as openssl_backend +from cryptography.hazmat.backends.openssl.x509 import _Certificate + +from socket import timeout, error as SocketError +from io import BytesIO + +try: # Platform-specific: Python 2 + from socket import _fileobject +except ImportError: # Platform-specific: Python 3 + _fileobject = None + from ..packages.backports.makefile import backport_makefile + +import logging +import ssl +from ..packages import six +import sys + +from .. import util + +__all__ = ['inject_into_urllib3', 'extract_from_urllib3'] + +# SNI always works. +HAS_SNI = True + +# Map from urllib3 to PyOpenSSL compatible parameter-values. +_openssl_versions = { + ssl.PROTOCOL_SSLv23: OpenSSL.SSL.SSLv23_METHOD, + ssl.PROTOCOL_TLSv1: OpenSSL.SSL.TLSv1_METHOD, +} + +if hasattr(ssl, 'PROTOCOL_TLSv1_1') and hasattr(OpenSSL.SSL, 'TLSv1_1_METHOD'): + _openssl_versions[ssl.PROTOCOL_TLSv1_1] = OpenSSL.SSL.TLSv1_1_METHOD + +if hasattr(ssl, 'PROTOCOL_TLSv1_2') and hasattr(OpenSSL.SSL, 'TLSv1_2_METHOD'): + _openssl_versions[ssl.PROTOCOL_TLSv1_2] = OpenSSL.SSL.TLSv1_2_METHOD + +try: + _openssl_versions.update({ssl.PROTOCOL_SSLv3: OpenSSL.SSL.SSLv3_METHOD}) +except AttributeError: + pass + +_stdlib_to_openssl_verify = { + ssl.CERT_NONE: OpenSSL.SSL.VERIFY_NONE, + ssl.CERT_OPTIONAL: OpenSSL.SSL.VERIFY_PEER, + ssl.CERT_REQUIRED: + OpenSSL.SSL.VERIFY_PEER + OpenSSL.SSL.VERIFY_FAIL_IF_NO_PEER_CERT, +} +_openssl_to_stdlib_verify = dict( + (v, k) for k, v in _stdlib_to_openssl_verify.items() +) + +# OpenSSL will only write 16K at a time +SSL_WRITE_BLOCKSIZE = 16384 + +orig_util_HAS_SNI = util.HAS_SNI +orig_util_SSLContext = util.ssl_.SSLContext + + +log = logging.getLogger(__name__) + + +def inject_into_urllib3(): + 'Monkey-patch urllib3 with PyOpenSSL-backed SSL-support.' + + _validate_dependencies_met() + + util.ssl_.SSLContext = PyOpenSSLContext + util.HAS_SNI = HAS_SNI + util.ssl_.HAS_SNI = HAS_SNI + util.IS_PYOPENSSL = True + util.ssl_.IS_PYOPENSSL = True + + +def extract_from_urllib3(): + 'Undo monkey-patching by :func:`inject_into_urllib3`.' + + util.ssl_.SSLContext = orig_util_SSLContext + util.HAS_SNI = orig_util_HAS_SNI + util.ssl_.HAS_SNI = orig_util_HAS_SNI + util.IS_PYOPENSSL = False + util.ssl_.IS_PYOPENSSL = False + + +def _validate_dependencies_met(): + """ + Verifies that PyOpenSSL's package-level dependencies have been met. + Throws `ImportError` if they are not met. + """ + # Method added in `cryptography==1.1`; not available in older versions + from cryptography.x509.extensions import Extensions + if getattr(Extensions, "get_extension_for_class", None) is None: + raise ImportError("'cryptography' module missing required functionality. " + "Try upgrading to v1.3.4 or newer.") + + # pyOpenSSL 0.14 and above use cryptography for OpenSSL bindings. The _x509 + # attribute is only present on those versions. + from OpenSSL.crypto import X509 + x509 = X509() + if getattr(x509, "_x509", None) is None: + raise ImportError("'pyOpenSSL' module missing required functionality. " + "Try upgrading to v0.14 or newer.") + + +def _dnsname_to_stdlib(name): + """ + Converts a dNSName SubjectAlternativeName field to the form used by the + standard library on the given Python version. + + Cryptography produces a dNSName as a unicode string that was idna-decoded + from ASCII bytes. We need to idna-encode that string to get it back, and + then on Python 3 we also need to convert to unicode via UTF-8 (the stdlib + uses PyUnicode_FromStringAndSize on it, which decodes via UTF-8). + """ + def idna_encode(name): + """ + Borrowed wholesale from the Python Cryptography Project. It turns out + that we can't just safely call `idna.encode`: it can explode for + wildcard names. This avoids that problem. + """ + from pip._vendor import idna + + for prefix in [u'*.', u'.']: + if name.startswith(prefix): + name = name[len(prefix):] + return prefix.encode('ascii') + idna.encode(name) + return idna.encode(name) + + name = idna_encode(name) + if sys.version_info >= (3, 0): + name = name.decode('utf-8') + return name + + +def get_subj_alt_name(peer_cert): + """ + Given an PyOpenSSL certificate, provides all the subject alternative names. + """ + # Pass the cert to cryptography, which has much better APIs for this. + if hasattr(peer_cert, "to_cryptography"): + cert = peer_cert.to_cryptography() + else: + # This is technically using private APIs, but should work across all + # relevant versions before PyOpenSSL got a proper API for this. + cert = _Certificate(openssl_backend, peer_cert._x509) + + # We want to find the SAN extension. Ask Cryptography to locate it (it's + # faster than looping in Python) + try: + ext = cert.extensions.get_extension_for_class( + x509.SubjectAlternativeName + ).value + except x509.ExtensionNotFound: + # No such extension, return the empty list. + return [] + except (x509.DuplicateExtension, x509.UnsupportedExtension, + x509.UnsupportedGeneralNameType, UnicodeError) as e: + # A problem has been found with the quality of the certificate. Assume + # no SAN field is present. + log.warning( + "A problem was encountered with the certificate that prevented " + "urllib3 from finding the SubjectAlternativeName field. This can " + "affect certificate validation. The error was %s", + e, + ) + return [] + + # We want to return dNSName and iPAddress fields. We need to cast the IPs + # back to strings because the match_hostname function wants them as + # strings. + # Sadly the DNS names need to be idna encoded and then, on Python 3, UTF-8 + # decoded. This is pretty frustrating, but that's what the standard library + # does with certificates, and so we need to attempt to do the same. + names = [ + ('DNS', _dnsname_to_stdlib(name)) + for name in ext.get_values_for_type(x509.DNSName) + ] + names.extend( + ('IP Address', str(name)) + for name in ext.get_values_for_type(x509.IPAddress) + ) + + return names + + +class WrappedSocket(object): + '''API-compatibility wrapper for Python OpenSSL's Connection-class. + + Note: _makefile_refs, _drop() and _reuse() are needed for the garbage + collector of pypy. + ''' + + def __init__(self, connection, socket, suppress_ragged_eofs=True): + self.connection = connection + self.socket = socket + self.suppress_ragged_eofs = suppress_ragged_eofs + self._makefile_refs = 0 + self._closed = False + + def fileno(self): + return self.socket.fileno() + + # Copy-pasted from Python 3.5 source code + def _decref_socketios(self): + if self._makefile_refs > 0: + self._makefile_refs -= 1 + if self._closed: + self.close() + + def recv(self, *args, **kwargs): + try: + data = self.connection.recv(*args, **kwargs) + except OpenSSL.SSL.SysCallError as e: + if self.suppress_ragged_eofs and e.args == (-1, 'Unexpected EOF'): + return b'' + else: + raise SocketError(str(e)) + except OpenSSL.SSL.ZeroReturnError as e: + if self.connection.get_shutdown() == OpenSSL.SSL.RECEIVED_SHUTDOWN: + return b'' + else: + raise + except OpenSSL.SSL.WantReadError: + rd = util.wait_for_read(self.socket, self.socket.gettimeout()) + if not rd: + raise timeout('The read operation timed out') + else: + return self.recv(*args, **kwargs) + else: + return data + + def recv_into(self, *args, **kwargs): + try: + return self.connection.recv_into(*args, **kwargs) + except OpenSSL.SSL.SysCallError as e: + if self.suppress_ragged_eofs and e.args == (-1, 'Unexpected EOF'): + return 0 + else: + raise SocketError(str(e)) + except OpenSSL.SSL.ZeroReturnError as e: + if self.connection.get_shutdown() == OpenSSL.SSL.RECEIVED_SHUTDOWN: + return 0 + else: + raise + except OpenSSL.SSL.WantReadError: + rd = util.wait_for_read(self.socket, self.socket.gettimeout()) + if not rd: + raise timeout('The read operation timed out') + else: + return self.recv_into(*args, **kwargs) + + def settimeout(self, timeout): + return self.socket.settimeout(timeout) + + def _send_until_done(self, data): + while True: + try: + return self.connection.send(data) + except OpenSSL.SSL.WantWriteError: + wr = util.wait_for_write(self.socket, self.socket.gettimeout()) + if not wr: + raise timeout() + continue + except OpenSSL.SSL.SysCallError as e: + raise SocketError(str(e)) + + def sendall(self, data): + total_sent = 0 + while total_sent < len(data): + sent = self._send_until_done(data[total_sent:total_sent + SSL_WRITE_BLOCKSIZE]) + total_sent += sent + + def shutdown(self): + # FIXME rethrow compatible exceptions should we ever use this + self.connection.shutdown() + + def close(self): + if self._makefile_refs < 1: + try: + self._closed = True + return self.connection.close() + except OpenSSL.SSL.Error: + return + else: + self._makefile_refs -= 1 + + def getpeercert(self, binary_form=False): + x509 = self.connection.get_peer_certificate() + + if not x509: + return x509 + + if binary_form: + return OpenSSL.crypto.dump_certificate( + OpenSSL.crypto.FILETYPE_ASN1, + x509) + + return { + 'subject': ( + (('commonName', x509.get_subject().CN),), + ), + 'subjectAltName': get_subj_alt_name(x509) + } + + def _reuse(self): + self._makefile_refs += 1 + + def _drop(self): + if self._makefile_refs < 1: + self.close() + else: + self._makefile_refs -= 1 + + +if _fileobject: # Platform-specific: Python 2 + def makefile(self, mode, bufsize=-1): + self._makefile_refs += 1 + return _fileobject(self, mode, bufsize, close=True) +else: # Platform-specific: Python 3 + makefile = backport_makefile + +WrappedSocket.makefile = makefile + + +class PyOpenSSLContext(object): + """ + I am a wrapper class for the PyOpenSSL ``Context`` object. I am responsible + for translating the interface of the standard library ``SSLContext`` object + to calls into PyOpenSSL. + """ + def __init__(self, protocol): + self.protocol = _openssl_versions[protocol] + self._ctx = OpenSSL.SSL.Context(self.protocol) + self._options = 0 + self.check_hostname = False + + @property + def options(self): + return self._options + + @options.setter + def options(self, value): + self._options = value + self._ctx.set_options(value) + + @property + def verify_mode(self): + return _openssl_to_stdlib_verify[self._ctx.get_verify_mode()] + + @verify_mode.setter + def verify_mode(self, value): + self._ctx.set_verify( + _stdlib_to_openssl_verify[value], + _verify_callback + ) + + def set_default_verify_paths(self): + self._ctx.set_default_verify_paths() + + def set_ciphers(self, ciphers): + if isinstance(ciphers, six.text_type): + ciphers = ciphers.encode('utf-8') + self._ctx.set_cipher_list(ciphers) + + def load_verify_locations(self, cafile=None, capath=None, cadata=None): + if cafile is not None: + cafile = cafile.encode('utf-8') + if capath is not None: + capath = capath.encode('utf-8') + self._ctx.load_verify_locations(cafile, capath) + if cadata is not None: + self._ctx.load_verify_locations(BytesIO(cadata)) + + def load_cert_chain(self, certfile, keyfile=None, password=None): + self._ctx.use_certificate_file(certfile) + if password is not None: + self._ctx.set_passwd_cb(lambda max_length, prompt_twice, userdata: password) + self._ctx.use_privatekey_file(keyfile or certfile) + + def wrap_socket(self, sock, server_side=False, + do_handshake_on_connect=True, suppress_ragged_eofs=True, + server_hostname=None): + cnx = OpenSSL.SSL.Connection(self._ctx, sock) + + if isinstance(server_hostname, six.text_type): # Platform-specific: Python 3 + server_hostname = server_hostname.encode('utf-8') + + if server_hostname is not None: + cnx.set_tlsext_host_name(server_hostname) + + cnx.set_connect_state() + + while True: + try: + cnx.do_handshake() + except OpenSSL.SSL.WantReadError: + rd = util.wait_for_read(sock, sock.gettimeout()) + if not rd: + raise timeout('select timed out') + continue + except OpenSSL.SSL.Error as e: + raise ssl.SSLError('bad handshake: %r' % e) + break + + return WrappedSocket(cnx, sock) + + +def _verify_callback(cnx, x509, err_no, err_depth, return_code): + return err_no == 0 diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/securetransport.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/securetransport.py new file mode 100644 index 00000000..2cac70f7 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/securetransport.py @@ -0,0 +1,810 @@ +""" +SecureTranport support for urllib3 via ctypes. + +This makes platform-native TLS available to urllib3 users on macOS without the +use of a compiler. This is an important feature because the Python Package +Index is moving to become a TLSv1.2-or-higher server, and the default OpenSSL +that ships with macOS is not capable of doing TLSv1.2. The only way to resolve +this is to give macOS users an alternative solution to the problem, and that +solution is to use SecureTransport. + +We use ctypes here because this solution must not require a compiler. That's +because pip is not allowed to require a compiler either. + +This is not intended to be a seriously long-term solution to this problem. +The hope is that PEP 543 will eventually solve this issue for us, at which +point we can retire this contrib module. But in the short term, we need to +solve the impending tire fire that is Python on Mac without this kind of +contrib module. So...here we are. + +To use this module, simply import and inject it:: + + import urllib3.contrib.securetransport + urllib3.contrib.securetransport.inject_into_urllib3() + +Happy TLSing! +""" +from __future__ import absolute_import + +import contextlib +import ctypes +import errno +import os.path +import shutil +import socket +import ssl +import threading +import weakref + +from .. import util +from ._securetransport.bindings import ( + Security, SecurityConst, CoreFoundation +) +from ._securetransport.low_level import ( + _assert_no_error, _cert_array_from_pem, _temporary_keychain, + _load_client_cert_chain +) + +try: # Platform-specific: Python 2 + from socket import _fileobject +except ImportError: # Platform-specific: Python 3 + _fileobject = None + from ..packages.backports.makefile import backport_makefile + +try: + memoryview(b'') +except NameError: + raise ImportError("SecureTransport only works on Pythons with memoryview") + +__all__ = ['inject_into_urllib3', 'extract_from_urllib3'] + +# SNI always works +HAS_SNI = True + +orig_util_HAS_SNI = util.HAS_SNI +orig_util_SSLContext = util.ssl_.SSLContext + +# This dictionary is used by the read callback to obtain a handle to the +# calling wrapped socket. This is a pretty silly approach, but for now it'll +# do. I feel like I should be able to smuggle a handle to the wrapped socket +# directly in the SSLConnectionRef, but for now this approach will work I +# guess. +# +# We need to lock around this structure for inserts, but we don't do it for +# reads/writes in the callbacks. The reasoning here goes as follows: +# +# 1. It is not possible to call into the callbacks before the dictionary is +# populated, so once in the callback the id must be in the dictionary. +# 2. The callbacks don't mutate the dictionary, they only read from it, and +# so cannot conflict with any of the insertions. +# +# This is good: if we had to lock in the callbacks we'd drastically slow down +# the performance of this code. +_connection_refs = weakref.WeakValueDictionary() +_connection_ref_lock = threading.Lock() + +# Limit writes to 16kB. This is OpenSSL's limit, but we'll cargo-cult it over +# for no better reason than we need *a* limit, and this one is right there. +SSL_WRITE_BLOCKSIZE = 16384 + +# This is our equivalent of util.ssl_.DEFAULT_CIPHERS, but expanded out to +# individual cipher suites. We need to do this becuase this is how +# SecureTransport wants them. +CIPHER_SUITES = [ + SecurityConst.TLS_AES_256_GCM_SHA384, + SecurityConst.TLS_CHACHA20_POLY1305_SHA256, + SecurityConst.TLS_AES_128_GCM_SHA256, + SecurityConst.TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384, + SecurityConst.TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384, + SecurityConst.TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256, + SecurityConst.TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256, + SecurityConst.TLS_DHE_DSS_WITH_AES_256_GCM_SHA384, + SecurityConst.TLS_DHE_RSA_WITH_AES_256_GCM_SHA384, + SecurityConst.TLS_DHE_DSS_WITH_AES_128_GCM_SHA256, + SecurityConst.TLS_DHE_RSA_WITH_AES_128_GCM_SHA256, + SecurityConst.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384, + SecurityConst.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384, + SecurityConst.TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA, + SecurityConst.TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, + SecurityConst.TLS_DHE_RSA_WITH_AES_256_CBC_SHA256, + SecurityConst.TLS_DHE_DSS_WITH_AES_256_CBC_SHA256, + SecurityConst.TLS_DHE_RSA_WITH_AES_256_CBC_SHA, + SecurityConst.TLS_DHE_DSS_WITH_AES_256_CBC_SHA, + SecurityConst.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256, + SecurityConst.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256, + SecurityConst.TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA, + SecurityConst.TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA, + SecurityConst.TLS_DHE_RSA_WITH_AES_128_CBC_SHA256, + SecurityConst.TLS_DHE_DSS_WITH_AES_128_CBC_SHA256, + SecurityConst.TLS_DHE_RSA_WITH_AES_128_CBC_SHA, + SecurityConst.TLS_DHE_DSS_WITH_AES_128_CBC_SHA, + SecurityConst.TLS_RSA_WITH_AES_256_GCM_SHA384, + SecurityConst.TLS_RSA_WITH_AES_128_GCM_SHA256, + SecurityConst.TLS_RSA_WITH_AES_256_CBC_SHA256, + SecurityConst.TLS_RSA_WITH_AES_128_CBC_SHA256, + SecurityConst.TLS_RSA_WITH_AES_256_CBC_SHA, + SecurityConst.TLS_RSA_WITH_AES_128_CBC_SHA, +] + +# Basically this is simple: for PROTOCOL_SSLv23 we turn it into a low of +# TLSv1 and a high of TLSv1.2. For everything else, we pin to that version. +_protocol_to_min_max = { + ssl.PROTOCOL_SSLv23: (SecurityConst.kTLSProtocol1, SecurityConst.kTLSProtocol12), +} + +if hasattr(ssl, "PROTOCOL_SSLv2"): + _protocol_to_min_max[ssl.PROTOCOL_SSLv2] = ( + SecurityConst.kSSLProtocol2, SecurityConst.kSSLProtocol2 + ) +if hasattr(ssl, "PROTOCOL_SSLv3"): + _protocol_to_min_max[ssl.PROTOCOL_SSLv3] = ( + SecurityConst.kSSLProtocol3, SecurityConst.kSSLProtocol3 + ) +if hasattr(ssl, "PROTOCOL_TLSv1"): + _protocol_to_min_max[ssl.PROTOCOL_TLSv1] = ( + SecurityConst.kTLSProtocol1, SecurityConst.kTLSProtocol1 + ) +if hasattr(ssl, "PROTOCOL_TLSv1_1"): + _protocol_to_min_max[ssl.PROTOCOL_TLSv1_1] = ( + SecurityConst.kTLSProtocol11, SecurityConst.kTLSProtocol11 + ) +if hasattr(ssl, "PROTOCOL_TLSv1_2"): + _protocol_to_min_max[ssl.PROTOCOL_TLSv1_2] = ( + SecurityConst.kTLSProtocol12, SecurityConst.kTLSProtocol12 + ) +if hasattr(ssl, "PROTOCOL_TLS"): + _protocol_to_min_max[ssl.PROTOCOL_TLS] = _protocol_to_min_max[ssl.PROTOCOL_SSLv23] + + +def inject_into_urllib3(): + """ + Monkey-patch urllib3 with SecureTransport-backed SSL-support. + """ + util.ssl_.SSLContext = SecureTransportContext + util.HAS_SNI = HAS_SNI + util.ssl_.HAS_SNI = HAS_SNI + util.IS_SECURETRANSPORT = True + util.ssl_.IS_SECURETRANSPORT = True + + +def extract_from_urllib3(): + """ + Undo monkey-patching by :func:`inject_into_urllib3`. + """ + util.ssl_.SSLContext = orig_util_SSLContext + util.HAS_SNI = orig_util_HAS_SNI + util.ssl_.HAS_SNI = orig_util_HAS_SNI + util.IS_SECURETRANSPORT = False + util.ssl_.IS_SECURETRANSPORT = False + + +def _read_callback(connection_id, data_buffer, data_length_pointer): + """ + SecureTransport read callback. This is called by ST to request that data + be returned from the socket. + """ + wrapped_socket = None + try: + wrapped_socket = _connection_refs.get(connection_id) + if wrapped_socket is None: + return SecurityConst.errSSLInternal + base_socket = wrapped_socket.socket + + requested_length = data_length_pointer[0] + + timeout = wrapped_socket.gettimeout() + error = None + read_count = 0 + buffer = (ctypes.c_char * requested_length).from_address(data_buffer) + buffer_view = memoryview(buffer) + + try: + while read_count < requested_length: + if timeout is None or timeout >= 0: + readables = util.wait_for_read([base_socket], timeout) + if not readables: + raise socket.error(errno.EAGAIN, 'timed out') + + # We need to tell ctypes that we have a buffer that can be + # written to. Upsettingly, we do that like this: + chunk_size = base_socket.recv_into( + buffer_view[read_count:requested_length] + ) + read_count += chunk_size + if not chunk_size: + if not read_count: + return SecurityConst.errSSLClosedGraceful + break + except (socket.error) as e: + error = e.errno + + if error is not None and error != errno.EAGAIN: + if error == errno.ECONNRESET: + return SecurityConst.errSSLClosedAbort + raise + + data_length_pointer[0] = read_count + + if read_count != requested_length: + return SecurityConst.errSSLWouldBlock + + return 0 + except Exception as e: + if wrapped_socket is not None: + wrapped_socket._exception = e + return SecurityConst.errSSLInternal + + +def _write_callback(connection_id, data_buffer, data_length_pointer): + """ + SecureTransport write callback. This is called by ST to request that data + actually be sent on the network. + """ + wrapped_socket = None + try: + wrapped_socket = _connection_refs.get(connection_id) + if wrapped_socket is None: + return SecurityConst.errSSLInternal + base_socket = wrapped_socket.socket + + bytes_to_write = data_length_pointer[0] + data = ctypes.string_at(data_buffer, bytes_to_write) + + timeout = wrapped_socket.gettimeout() + error = None + sent = 0 + + try: + while sent < bytes_to_write: + if timeout is None or timeout >= 0: + writables = util.wait_for_write([base_socket], timeout) + if not writables: + raise socket.error(errno.EAGAIN, 'timed out') + chunk_sent = base_socket.send(data) + sent += chunk_sent + + # This has some needless copying here, but I'm not sure there's + # much value in optimising this data path. + data = data[chunk_sent:] + except (socket.error) as e: + error = e.errno + + if error is not None and error != errno.EAGAIN: + if error == errno.ECONNRESET: + return SecurityConst.errSSLClosedAbort + raise + + data_length_pointer[0] = sent + if sent != bytes_to_write: + return SecurityConst.errSSLWouldBlock + + return 0 + except Exception as e: + if wrapped_socket is not None: + wrapped_socket._exception = e + return SecurityConst.errSSLInternal + + +# We need to keep these two objects references alive: if they get GC'd while +# in use then SecureTransport could attempt to call a function that is in freed +# memory. That would be...uh...bad. Yeah, that's the word. Bad. +_read_callback_pointer = Security.SSLReadFunc(_read_callback) +_write_callback_pointer = Security.SSLWriteFunc(_write_callback) + + +class WrappedSocket(object): + """ + API-compatibility wrapper for Python's OpenSSL wrapped socket object. + + Note: _makefile_refs, _drop(), and _reuse() are needed for the garbage + collector of PyPy. + """ + def __init__(self, socket): + self.socket = socket + self.context = None + self._makefile_refs = 0 + self._closed = False + self._exception = None + self._keychain = None + self._keychain_dir = None + self._client_cert_chain = None + + # We save off the previously-configured timeout and then set it to + # zero. This is done because we use select and friends to handle the + # timeouts, but if we leave the timeout set on the lower socket then + # Python will "kindly" call select on that socket again for us. Avoid + # that by forcing the timeout to zero. + self._timeout = self.socket.gettimeout() + self.socket.settimeout(0) + + @contextlib.contextmanager + def _raise_on_error(self): + """ + A context manager that can be used to wrap calls that do I/O from + SecureTransport. If any of the I/O callbacks hit an exception, this + context manager will correctly propagate the exception after the fact. + This avoids silently swallowing those exceptions. + + It also correctly forces the socket closed. + """ + self._exception = None + + # We explicitly don't catch around this yield because in the unlikely + # event that an exception was hit in the block we don't want to swallow + # it. + yield + if self._exception is not None: + exception, self._exception = self._exception, None + self.close() + raise exception + + def _set_ciphers(self): + """ + Sets up the allowed ciphers. By default this matches the set in + util.ssl_.DEFAULT_CIPHERS, at least as supported by macOS. This is done + custom and doesn't allow changing at this time, mostly because parsing + OpenSSL cipher strings is going to be a freaking nightmare. + """ + ciphers = (Security.SSLCipherSuite * len(CIPHER_SUITES))(*CIPHER_SUITES) + result = Security.SSLSetEnabledCiphers( + self.context, ciphers, len(CIPHER_SUITES) + ) + _assert_no_error(result) + + def _custom_validate(self, verify, trust_bundle): + """ + Called when we have set custom validation. We do this in two cases: + first, when cert validation is entirely disabled; and second, when + using a custom trust DB. + """ + # If we disabled cert validation, just say: cool. + if not verify: + return + + # We want data in memory, so load it up. + if os.path.isfile(trust_bundle): + with open(trust_bundle, 'rb') as f: + trust_bundle = f.read() + + cert_array = None + trust = Security.SecTrustRef() + + try: + # Get a CFArray that contains the certs we want. + cert_array = _cert_array_from_pem(trust_bundle) + + # Ok, now the hard part. We want to get the SecTrustRef that ST has + # created for this connection, shove our CAs into it, tell ST to + # ignore everything else it knows, and then ask if it can build a + # chain. This is a buuuunch of code. + result = Security.SSLCopyPeerTrust( + self.context, ctypes.byref(trust) + ) + _assert_no_error(result) + if not trust: + raise ssl.SSLError("Failed to copy trust reference") + + result = Security.SecTrustSetAnchorCertificates(trust, cert_array) + _assert_no_error(result) + + result = Security.SecTrustSetAnchorCertificatesOnly(trust, True) + _assert_no_error(result) + + trust_result = Security.SecTrustResultType() + result = Security.SecTrustEvaluate( + trust, ctypes.byref(trust_result) + ) + _assert_no_error(result) + finally: + if trust: + CoreFoundation.CFRelease(trust) + + if cert_array is None: + CoreFoundation.CFRelease(cert_array) + + # Ok, now we can look at what the result was. + successes = ( + SecurityConst.kSecTrustResultUnspecified, + SecurityConst.kSecTrustResultProceed + ) + if trust_result.value not in successes: + raise ssl.SSLError( + "certificate verify failed, error code: %d" % + trust_result.value + ) + + def handshake(self, + server_hostname, + verify, + trust_bundle, + min_version, + max_version, + client_cert, + client_key, + client_key_passphrase): + """ + Actually performs the TLS handshake. This is run automatically by + wrapped socket, and shouldn't be needed in user code. + """ + # First, we do the initial bits of connection setup. We need to create + # a context, set its I/O funcs, and set the connection reference. + self.context = Security.SSLCreateContext( + None, SecurityConst.kSSLClientSide, SecurityConst.kSSLStreamType + ) + result = Security.SSLSetIOFuncs( + self.context, _read_callback_pointer, _write_callback_pointer + ) + _assert_no_error(result) + + # Here we need to compute the handle to use. We do this by taking the + # id of self modulo 2**31 - 1. If this is already in the dictionary, we + # just keep incrementing by one until we find a free space. + with _connection_ref_lock: + handle = id(self) % 2147483647 + while handle in _connection_refs: + handle = (handle + 1) % 2147483647 + _connection_refs[handle] = self + + result = Security.SSLSetConnection(self.context, handle) + _assert_no_error(result) + + # If we have a server hostname, we should set that too. + if server_hostname: + if not isinstance(server_hostname, bytes): + server_hostname = server_hostname.encode('utf-8') + + result = Security.SSLSetPeerDomainName( + self.context, server_hostname, len(server_hostname) + ) + _assert_no_error(result) + + # Setup the ciphers. + self._set_ciphers() + + # Set the minimum and maximum TLS versions. + result = Security.SSLSetProtocolVersionMin(self.context, min_version) + _assert_no_error(result) + result = Security.SSLSetProtocolVersionMax(self.context, max_version) + _assert_no_error(result) + + # If there's a trust DB, we need to use it. We do that by telling + # SecureTransport to break on server auth. We also do that if we don't + # want to validate the certs at all: we just won't actually do any + # authing in that case. + if not verify or trust_bundle is not None: + result = Security.SSLSetSessionOption( + self.context, + SecurityConst.kSSLSessionOptionBreakOnServerAuth, + True + ) + _assert_no_error(result) + + # If there's a client cert, we need to use it. + if client_cert: + self._keychain, self._keychain_dir = _temporary_keychain() + self._client_cert_chain = _load_client_cert_chain( + self._keychain, client_cert, client_key + ) + result = Security.SSLSetCertificate( + self.context, self._client_cert_chain + ) + _assert_no_error(result) + + while True: + with self._raise_on_error(): + result = Security.SSLHandshake(self.context) + + if result == SecurityConst.errSSLWouldBlock: + raise socket.timeout("handshake timed out") + elif result == SecurityConst.errSSLServerAuthCompleted: + self._custom_validate(verify, trust_bundle) + continue + else: + _assert_no_error(result) + break + + def fileno(self): + return self.socket.fileno() + + # Copy-pasted from Python 3.5 source code + def _decref_socketios(self): + if self._makefile_refs > 0: + self._makefile_refs -= 1 + if self._closed: + self.close() + + def recv(self, bufsiz): + buffer = ctypes.create_string_buffer(bufsiz) + bytes_read = self.recv_into(buffer, bufsiz) + data = buffer[:bytes_read] + return data + + def recv_into(self, buffer, nbytes=None): + # Read short on EOF. + if self._closed: + return 0 + + if nbytes is None: + nbytes = len(buffer) + + buffer = (ctypes.c_char * nbytes).from_buffer(buffer) + processed_bytes = ctypes.c_size_t(0) + + with self._raise_on_error(): + result = Security.SSLRead( + self.context, buffer, nbytes, ctypes.byref(processed_bytes) + ) + + # There are some result codes that we want to treat as "not always + # errors". Specifically, those are errSSLWouldBlock, + # errSSLClosedGraceful, and errSSLClosedNoNotify. + if (result == SecurityConst.errSSLWouldBlock): + # If we didn't process any bytes, then this was just a time out. + # However, we can get errSSLWouldBlock in situations when we *did* + # read some data, and in those cases we should just read "short" + # and return. + if processed_bytes.value == 0: + # Timed out, no data read. + raise socket.timeout("recv timed out") + elif result in (SecurityConst.errSSLClosedGraceful, SecurityConst.errSSLClosedNoNotify): + # The remote peer has closed this connection. We should do so as + # well. Note that we don't actually return here because in + # principle this could actually be fired along with return data. + # It's unlikely though. + self.close() + else: + _assert_no_error(result) + + # Ok, we read and probably succeeded. We should return whatever data + # was actually read. + return processed_bytes.value + + def settimeout(self, timeout): + self._timeout = timeout + + def gettimeout(self): + return self._timeout + + def send(self, data): + processed_bytes = ctypes.c_size_t(0) + + with self._raise_on_error(): + result = Security.SSLWrite( + self.context, data, len(data), ctypes.byref(processed_bytes) + ) + + if result == SecurityConst.errSSLWouldBlock and processed_bytes.value == 0: + # Timed out + raise socket.timeout("send timed out") + else: + _assert_no_error(result) + + # We sent, and probably succeeded. Tell them how much we sent. + return processed_bytes.value + + def sendall(self, data): + total_sent = 0 + while total_sent < len(data): + sent = self.send(data[total_sent:total_sent + SSL_WRITE_BLOCKSIZE]) + total_sent += sent + + def shutdown(self): + with self._raise_on_error(): + Security.SSLClose(self.context) + + def close(self): + # TODO: should I do clean shutdown here? Do I have to? + if self._makefile_refs < 1: + self._closed = True + if self.context: + CoreFoundation.CFRelease(self.context) + self.context = None + if self._client_cert_chain: + CoreFoundation.CFRelease(self._client_cert_chain) + self._client_cert_chain = None + if self._keychain: + Security.SecKeychainDelete(self._keychain) + CoreFoundation.CFRelease(self._keychain) + shutil.rmtree(self._keychain_dir) + self._keychain = self._keychain_dir = None + return self.socket.close() + else: + self._makefile_refs -= 1 + + def getpeercert(self, binary_form=False): + # Urgh, annoying. + # + # Here's how we do this: + # + # 1. Call SSLCopyPeerTrust to get hold of the trust object for this + # connection. + # 2. Call SecTrustGetCertificateAtIndex for index 0 to get the leaf. + # 3. To get the CN, call SecCertificateCopyCommonName and process that + # string so that it's of the appropriate type. + # 4. To get the SAN, we need to do something a bit more complex: + # a. Call SecCertificateCopyValues to get the data, requesting + # kSecOIDSubjectAltName. + # b. Mess about with this dictionary to try to get the SANs out. + # + # This is gross. Really gross. It's going to be a few hundred LoC extra + # just to repeat something that SecureTransport can *already do*. So my + # operating assumption at this time is that what we want to do is + # instead to just flag to urllib3 that it shouldn't do its own hostname + # validation when using SecureTransport. + if not binary_form: + raise ValueError( + "SecureTransport only supports dumping binary certs" + ) + trust = Security.SecTrustRef() + certdata = None + der_bytes = None + + try: + # Grab the trust store. + result = Security.SSLCopyPeerTrust( + self.context, ctypes.byref(trust) + ) + _assert_no_error(result) + if not trust: + # Probably we haven't done the handshake yet. No biggie. + return None + + cert_count = Security.SecTrustGetCertificateCount(trust) + if not cert_count: + # Also a case that might happen if we haven't handshaked. + # Handshook? Handshaken? + return None + + leaf = Security.SecTrustGetCertificateAtIndex(trust, 0) + assert leaf + + # Ok, now we want the DER bytes. + certdata = Security.SecCertificateCopyData(leaf) + assert certdata + + data_length = CoreFoundation.CFDataGetLength(certdata) + data_buffer = CoreFoundation.CFDataGetBytePtr(certdata) + der_bytes = ctypes.string_at(data_buffer, data_length) + finally: + if certdata: + CoreFoundation.CFRelease(certdata) + if trust: + CoreFoundation.CFRelease(trust) + + return der_bytes + + def _reuse(self): + self._makefile_refs += 1 + + def _drop(self): + if self._makefile_refs < 1: + self.close() + else: + self._makefile_refs -= 1 + + +if _fileobject: # Platform-specific: Python 2 + def makefile(self, mode, bufsize=-1): + self._makefile_refs += 1 + return _fileobject(self, mode, bufsize, close=True) +else: # Platform-specific: Python 3 + def makefile(self, mode="r", buffering=None, *args, **kwargs): + # We disable buffering with SecureTransport because it conflicts with + # the buffering that ST does internally (see issue #1153 for more). + buffering = 0 + return backport_makefile(self, mode, buffering, *args, **kwargs) + +WrappedSocket.makefile = makefile + + +class SecureTransportContext(object): + """ + I am a wrapper class for the SecureTransport library, to translate the + interface of the standard library ``SSLContext`` object to calls into + SecureTransport. + """ + def __init__(self, protocol): + self._min_version, self._max_version = _protocol_to_min_max[protocol] + self._options = 0 + self._verify = False + self._trust_bundle = None + self._client_cert = None + self._client_key = None + self._client_key_passphrase = None + + @property + def check_hostname(self): + """ + SecureTransport cannot have its hostname checking disabled. For more, + see the comment on getpeercert() in this file. + """ + return True + + @check_hostname.setter + def check_hostname(self, value): + """ + SecureTransport cannot have its hostname checking disabled. For more, + see the comment on getpeercert() in this file. + """ + pass + + @property + def options(self): + # TODO: Well, crap. + # + # So this is the bit of the code that is the most likely to cause us + # trouble. Essentially we need to enumerate all of the SSL options that + # users might want to use and try to see if we can sensibly translate + # them, or whether we should just ignore them. + return self._options + + @options.setter + def options(self, value): + # TODO: Update in line with above. + self._options = value + + @property + def verify_mode(self): + return ssl.CERT_REQUIRED if self._verify else ssl.CERT_NONE + + @verify_mode.setter + def verify_mode(self, value): + self._verify = True if value == ssl.CERT_REQUIRED else False + + def set_default_verify_paths(self): + # So, this has to do something a bit weird. Specifically, what it does + # is nothing. + # + # This means that, if we had previously had load_verify_locations + # called, this does not undo that. We need to do that because it turns + # out that the rest of the urllib3 code will attempt to load the + # default verify paths if it hasn't been told about any paths, even if + # the context itself was sometime earlier. We resolve that by just + # ignoring it. + pass + + def load_default_certs(self): + return self.set_default_verify_paths() + + def set_ciphers(self, ciphers): + # For now, we just require the default cipher string. + if ciphers != util.ssl_.DEFAULT_CIPHERS: + raise ValueError( + "SecureTransport doesn't support custom cipher strings" + ) + + def load_verify_locations(self, cafile=None, capath=None, cadata=None): + # OK, we only really support cadata and cafile. + if capath is not None: + raise ValueError( + "SecureTransport does not support cert directories" + ) + + self._trust_bundle = cafile or cadata + + def load_cert_chain(self, certfile, keyfile=None, password=None): + self._client_cert = certfile + self._client_key = keyfile + self._client_cert_passphrase = password + + def wrap_socket(self, sock, server_side=False, + do_handshake_on_connect=True, suppress_ragged_eofs=True, + server_hostname=None): + # So, what do we do here? Firstly, we assert some properties. This is a + # stripped down shim, so there is some functionality we don't support. + # See PEP 543 for the real deal. + assert not server_side + assert do_handshake_on_connect + assert suppress_ragged_eofs + + # Ok, we're good to go. Now we want to create the wrapped socket object + # and store it in the appropriate place. + wrapped_socket = WrappedSocket(sock) + + # Now we can handshake + wrapped_socket.handshake( + server_hostname, self._verify, self._trust_bundle, + self._min_version, self._max_version, self._client_cert, + self._client_key, self._client_key_passphrase + ) + return wrapped_socket diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/socks.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/socks.py new file mode 100644 index 00000000..39e92fde --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/contrib/socks.py @@ -0,0 +1,188 @@ +# -*- coding: utf-8 -*- +""" +This module contains provisional support for SOCKS proxies from within +urllib3. This module supports SOCKS4 (specifically the SOCKS4A variant) and +SOCKS5. To enable its functionality, either install PySocks or install this +module with the ``socks`` extra. + +The SOCKS implementation supports the full range of urllib3 features. It also +supports the following SOCKS features: + +- SOCKS4 +- SOCKS4a +- SOCKS5 +- Usernames and passwords for the SOCKS proxy + +Known Limitations: + +- Currently PySocks does not support contacting remote websites via literal + IPv6 addresses. Any such connection attempt will fail. You must use a domain + name. +- Currently PySocks does not support IPv6 connections to the SOCKS proxy. Any + such connection attempt will fail. +""" +from __future__ import absolute_import + +try: + import socks +except ImportError: + import warnings + from ..exceptions import DependencyWarning + + warnings.warn(( + 'SOCKS support in urllib3 requires the installation of optional ' + 'dependencies: specifically, PySocks. For more information, see ' + 'https://urllib3.readthedocs.io/en/latest/contrib.html#socks-proxies' + ), + DependencyWarning + ) + raise + +from socket import error as SocketError, timeout as SocketTimeout + +from ..connection import ( + HTTPConnection, HTTPSConnection +) +from ..connectionpool import ( + HTTPConnectionPool, HTTPSConnectionPool +) +from ..exceptions import ConnectTimeoutError, NewConnectionError +from ..poolmanager import PoolManager +from ..util.url import parse_url + +try: + import ssl +except ImportError: + ssl = None + + +class SOCKSConnection(HTTPConnection): + """ + A plain-text HTTP connection that connects via a SOCKS proxy. + """ + def __init__(self, *args, **kwargs): + self._socks_options = kwargs.pop('_socks_options') + super(SOCKSConnection, self).__init__(*args, **kwargs) + + def _new_conn(self): + """ + Establish a new connection via the SOCKS proxy. + """ + extra_kw = {} + if self.source_address: + extra_kw['source_address'] = self.source_address + + if self.socket_options: + extra_kw['socket_options'] = self.socket_options + + try: + conn = socks.create_connection( + (self.host, self.port), + proxy_type=self._socks_options['socks_version'], + proxy_addr=self._socks_options['proxy_host'], + proxy_port=self._socks_options['proxy_port'], + proxy_username=self._socks_options['username'], + proxy_password=self._socks_options['password'], + proxy_rdns=self._socks_options['rdns'], + timeout=self.timeout, + **extra_kw + ) + + except SocketTimeout as e: + raise ConnectTimeoutError( + self, "Connection to %s timed out. (connect timeout=%s)" % + (self.host, self.timeout)) + + except socks.ProxyError as e: + # This is fragile as hell, but it seems to be the only way to raise + # useful errors here. + if e.socket_err: + error = e.socket_err + if isinstance(error, SocketTimeout): + raise ConnectTimeoutError( + self, + "Connection to %s timed out. (connect timeout=%s)" % + (self.host, self.timeout) + ) + else: + raise NewConnectionError( + self, + "Failed to establish a new connection: %s" % error + ) + else: + raise NewConnectionError( + self, + "Failed to establish a new connection: %s" % e + ) + + except SocketError as e: # Defensive: PySocks should catch all these. + raise NewConnectionError( + self, "Failed to establish a new connection: %s" % e) + + return conn + + +# We don't need to duplicate the Verified/Unverified distinction from +# urllib3/connection.py here because the HTTPSConnection will already have been +# correctly set to either the Verified or Unverified form by that module. This +# means the SOCKSHTTPSConnection will automatically be the correct type. +class SOCKSHTTPSConnection(SOCKSConnection, HTTPSConnection): + pass + + +class SOCKSHTTPConnectionPool(HTTPConnectionPool): + ConnectionCls = SOCKSConnection + + +class SOCKSHTTPSConnectionPool(HTTPSConnectionPool): + ConnectionCls = SOCKSHTTPSConnection + + +class SOCKSProxyManager(PoolManager): + """ + A version of the urllib3 ProxyManager that routes connections via the + defined SOCKS proxy. + """ + pool_classes_by_scheme = { + 'http': SOCKSHTTPConnectionPool, + 'https': SOCKSHTTPSConnectionPool, + } + + def __init__(self, proxy_url, username=None, password=None, + num_pools=10, headers=None, **connection_pool_kw): + parsed = parse_url(proxy_url) + + if parsed.scheme == 'socks5': + socks_version = socks.PROXY_TYPE_SOCKS5 + rdns = False + elif parsed.scheme == 'socks5h': + socks_version = socks.PROXY_TYPE_SOCKS5 + rdns = True + elif parsed.scheme == 'socks4': + socks_version = socks.PROXY_TYPE_SOCKS4 + rdns = False + elif parsed.scheme == 'socks4a': + socks_version = socks.PROXY_TYPE_SOCKS4 + rdns = True + else: + raise ValueError( + "Unable to determine SOCKS version from %s" % proxy_url + ) + + self.proxy_url = proxy_url + + socks_options = { + 'socks_version': socks_version, + 'proxy_host': parsed.host, + 'proxy_port': parsed.port, + 'username': username, + 'password': password, + 'rdns': rdns + } + connection_pool_kw['_socks_options'] = socks_options + + super(SOCKSProxyManager, self).__init__( + num_pools, headers, **connection_pool_kw + ) + + self.pool_classes_by_scheme = SOCKSProxyManager.pool_classes_by_scheme diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/exceptions.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/exceptions.py new file mode 100644 index 00000000..6c4be581 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/exceptions.py @@ -0,0 +1,246 @@ +from __future__ import absolute_import +from .packages.six.moves.http_client import ( + IncompleteRead as httplib_IncompleteRead +) +# Base Exceptions + + +class HTTPError(Exception): + "Base exception used by this module." + pass + + +class HTTPWarning(Warning): + "Base warning used by this module." + pass + + +class PoolError(HTTPError): + "Base exception for errors caused within a pool." + def __init__(self, pool, message): + self.pool = pool + HTTPError.__init__(self, "%s: %s" % (pool, message)) + + def __reduce__(self): + # For pickling purposes. + return self.__class__, (None, None) + + +class RequestError(PoolError): + "Base exception for PoolErrors that have associated URLs." + def __init__(self, pool, url, message): + self.url = url + PoolError.__init__(self, pool, message) + + def __reduce__(self): + # For pickling purposes. + return self.__class__, (None, self.url, None) + + +class SSLError(HTTPError): + "Raised when SSL certificate fails in an HTTPS connection." + pass + + +class ProxyError(HTTPError): + "Raised when the connection to a proxy fails." + pass + + +class DecodeError(HTTPError): + "Raised when automatic decoding based on Content-Type fails." + pass + + +class ProtocolError(HTTPError): + "Raised when something unexpected happens mid-request/response." + pass + + +#: Renamed to ProtocolError but aliased for backwards compatibility. +ConnectionError = ProtocolError + + +# Leaf Exceptions + +class MaxRetryError(RequestError): + """Raised when the maximum number of retries is exceeded. + + :param pool: The connection pool + :type pool: :class:`~urllib3.connectionpool.HTTPConnectionPool` + :param string url: The requested Url + :param exceptions.Exception reason: The underlying error + + """ + + def __init__(self, pool, url, reason=None): + self.reason = reason + + message = "Max retries exceeded with url: %s (Caused by %r)" % ( + url, reason) + + RequestError.__init__(self, pool, url, message) + + +class HostChangedError(RequestError): + "Raised when an existing pool gets a request for a foreign host." + + def __init__(self, pool, url, retries=3): + message = "Tried to open a foreign host with url: %s" % url + RequestError.__init__(self, pool, url, message) + self.retries = retries + + +class TimeoutStateError(HTTPError): + """ Raised when passing an invalid state to a timeout """ + pass + + +class TimeoutError(HTTPError): + """ Raised when a socket timeout error occurs. + + Catching this error will catch both :exc:`ReadTimeoutErrors + <ReadTimeoutError>` and :exc:`ConnectTimeoutErrors <ConnectTimeoutError>`. + """ + pass + + +class ReadTimeoutError(TimeoutError, RequestError): + "Raised when a socket timeout occurs while receiving data from a server" + pass + + +# This timeout error does not have a URL attached and needs to inherit from the +# base HTTPError +class ConnectTimeoutError(TimeoutError): + "Raised when a socket timeout occurs while connecting to a server" + pass + + +class NewConnectionError(ConnectTimeoutError, PoolError): + "Raised when we fail to establish a new connection. Usually ECONNREFUSED." + pass + + +class EmptyPoolError(PoolError): + "Raised when a pool runs out of connections and no more are allowed." + pass + + +class ClosedPoolError(PoolError): + "Raised when a request enters a pool after the pool has been closed." + pass + + +class LocationValueError(ValueError, HTTPError): + "Raised when there is something wrong with a given URL input." + pass + + +class LocationParseError(LocationValueError): + "Raised when get_host or similar fails to parse the URL input." + + def __init__(self, location): + message = "Failed to parse: %s" % location + HTTPError.__init__(self, message) + + self.location = location + + +class ResponseError(HTTPError): + "Used as a container for an error reason supplied in a MaxRetryError." + GENERIC_ERROR = 'too many error responses' + SPECIFIC_ERROR = 'too many {status_code} error responses' + + +class SecurityWarning(HTTPWarning): + "Warned when perfoming security reducing actions" + pass + + +class SubjectAltNameWarning(SecurityWarning): + "Warned when connecting to a host with a certificate missing a SAN." + pass + + +class InsecureRequestWarning(SecurityWarning): + "Warned when making an unverified HTTPS request." + pass + + +class SystemTimeWarning(SecurityWarning): + "Warned when system time is suspected to be wrong" + pass + + +class InsecurePlatformWarning(SecurityWarning): + "Warned when certain SSL configuration is not available on a platform." + pass + + +class SNIMissingWarning(HTTPWarning): + "Warned when making a HTTPS request without SNI available." + pass + + +class DependencyWarning(HTTPWarning): + """ + Warned when an attempt is made to import a module with missing optional + dependencies. + """ + pass + + +class ResponseNotChunked(ProtocolError, ValueError): + "Response needs to be chunked in order to read it as chunks." + pass + + +class BodyNotHttplibCompatible(HTTPError): + """ + Body should be httplib.HTTPResponse like (have an fp attribute which + returns raw chunks) for read_chunked(). + """ + pass + + +class IncompleteRead(HTTPError, httplib_IncompleteRead): + """ + Response length doesn't match expected Content-Length + + Subclass of http_client.IncompleteRead to allow int value + for `partial` to avoid creating large objects on streamed + reads. + """ + def __init__(self, partial, expected): + super(IncompleteRead, self).__init__(partial, expected) + + def __repr__(self): + return ('IncompleteRead(%i bytes read, ' + '%i more expected)' % (self.partial, self.expected)) + + +class InvalidHeader(HTTPError): + "The header provided was somehow invalid." + pass + + +class ProxySchemeUnknown(AssertionError, ValueError): + "ProxyManager does not support the supplied scheme" + # TODO(t-8ch): Stop inheriting from AssertionError in v2.0. + + def __init__(self, scheme): + message = "Not supported proxy scheme %s" % scheme + super(ProxySchemeUnknown, self).__init__(message) + + +class HeaderParsingError(HTTPError): + "Raised by assert_header_parsing, but we convert it to a log.warning statement." + def __init__(self, defects, unparsed_data): + message = '%s, unparsed data: %r' % (defects or 'Unknown', unparsed_data) + super(HeaderParsingError, self).__init__(message) + + +class UnrewindableBodyError(HTTPError): + "urllib3 encountered an error when trying to rewind a body" + pass diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/fields.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/fields.py new file mode 100644 index 00000000..19b0ae0c --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/fields.py @@ -0,0 +1,178 @@ +from __future__ import absolute_import +import email.utils +import mimetypes + +from .packages import six + + +def guess_content_type(filename, default='application/octet-stream'): + """ + Guess the "Content-Type" of a file. + + :param filename: + The filename to guess the "Content-Type" of using :mod:`mimetypes`. + :param default: + If no "Content-Type" can be guessed, default to `default`. + """ + if filename: + return mimetypes.guess_type(filename)[0] or default + return default + + +def format_header_param(name, value): + """ + Helper function to format and quote a single header parameter. + + Particularly useful for header parameters which might contain + non-ASCII values, like file names. This follows RFC 2231, as + suggested by RFC 2388 Section 4.4. + + :param name: + The name of the parameter, a string expected to be ASCII only. + :param value: + The value of the parameter, provided as a unicode string. + """ + if not any(ch in value for ch in '"\\\r\n'): + result = '%s="%s"' % (name, value) + try: + result.encode('ascii') + except (UnicodeEncodeError, UnicodeDecodeError): + pass + else: + return result + if not six.PY3 and isinstance(value, six.text_type): # Python 2: + value = value.encode('utf-8') + value = email.utils.encode_rfc2231(value, 'utf-8') + value = '%s*=%s' % (name, value) + return value + + +class RequestField(object): + """ + A data container for request body parameters. + + :param name: + The name of this request field. + :param data: + The data/value body. + :param filename: + An optional filename of the request field. + :param headers: + An optional dict-like object of headers to initially use for the field. + """ + def __init__(self, name, data, filename=None, headers=None): + self._name = name + self._filename = filename + self.data = data + self.headers = {} + if headers: + self.headers = dict(headers) + + @classmethod + def from_tuples(cls, fieldname, value): + """ + A :class:`~urllib3.fields.RequestField` factory from old-style tuple parameters. + + Supports constructing :class:`~urllib3.fields.RequestField` from + parameter of key/value strings AND key/filetuple. A filetuple is a + (filename, data, MIME type) tuple where the MIME type is optional. + For example:: + + 'foo': 'bar', + 'fakefile': ('foofile.txt', 'contents of foofile'), + 'realfile': ('barfile.txt', open('realfile').read()), + 'typedfile': ('bazfile.bin', open('bazfile').read(), 'image/jpeg'), + 'nonamefile': 'contents of nonamefile field', + + Field names and filenames must be unicode. + """ + if isinstance(value, tuple): + if len(value) == 3: + filename, data, content_type = value + else: + filename, data = value + content_type = guess_content_type(filename) + else: + filename = None + content_type = None + data = value + + request_param = cls(fieldname, data, filename=filename) + request_param.make_multipart(content_type=content_type) + + return request_param + + def _render_part(self, name, value): + """ + Overridable helper function to format a single header parameter. + + :param name: + The name of the parameter, a string expected to be ASCII only. + :param value: + The value of the parameter, provided as a unicode string. + """ + return format_header_param(name, value) + + def _render_parts(self, header_parts): + """ + Helper function to format and quote a single header. + + Useful for single headers that are composed of multiple items. E.g., + 'Content-Disposition' fields. + + :param header_parts: + A sequence of (k, v) typles or a :class:`dict` of (k, v) to format + as `k1="v1"; k2="v2"; ...`. + """ + parts = [] + iterable = header_parts + if isinstance(header_parts, dict): + iterable = header_parts.items() + + for name, value in iterable: + if value is not None: + parts.append(self._render_part(name, value)) + + return '; '.join(parts) + + def render_headers(self): + """ + Renders the headers for this request field. + """ + lines = [] + + sort_keys = ['Content-Disposition', 'Content-Type', 'Content-Location'] + for sort_key in sort_keys: + if self.headers.get(sort_key, False): + lines.append('%s: %s' % (sort_key, self.headers[sort_key])) + + for header_name, header_value in self.headers.items(): + if header_name not in sort_keys: + if header_value: + lines.append('%s: %s' % (header_name, header_value)) + + lines.append('\r\n') + return '\r\n'.join(lines) + + def make_multipart(self, content_disposition=None, content_type=None, + content_location=None): + """ + Makes this request field into a multipart request field. + + This method overrides "Content-Disposition", "Content-Type" and + "Content-Location" headers to the request parameter. + + :param content_type: + The 'Content-Type' of the request body. + :param content_location: + The 'Content-Location' of the request body. + + """ + self.headers['Content-Disposition'] = content_disposition or 'form-data' + self.headers['Content-Disposition'] += '; '.join([ + '', self._render_parts( + (('name', self._name), ('filename', self._filename)) + ) + ]) + self.headers['Content-Type'] = content_type + self.headers['Content-Location'] = content_location diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/filepost.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/filepost.py new file mode 100644 index 00000000..cd11cee4 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/filepost.py @@ -0,0 +1,94 @@ +from __future__ import absolute_import +import codecs + +from uuid import uuid4 +from io import BytesIO + +from .packages import six +from .packages.six import b +from .fields import RequestField + +writer = codecs.lookup('utf-8')[3] + + +def choose_boundary(): + """ + Our embarrassingly-simple replacement for mimetools.choose_boundary. + """ + return uuid4().hex + + +def iter_field_objects(fields): + """ + Iterate over fields. + + Supports list of (k, v) tuples and dicts, and lists of + :class:`~urllib3.fields.RequestField`. + + """ + if isinstance(fields, dict): + i = six.iteritems(fields) + else: + i = iter(fields) + + for field in i: + if isinstance(field, RequestField): + yield field + else: + yield RequestField.from_tuples(*field) + + +def iter_fields(fields): + """ + .. deprecated:: 1.6 + + Iterate over fields. + + The addition of :class:`~urllib3.fields.RequestField` makes this function + obsolete. Instead, use :func:`iter_field_objects`, which returns + :class:`~urllib3.fields.RequestField` objects. + + Supports list of (k, v) tuples and dicts. + """ + if isinstance(fields, dict): + return ((k, v) for k, v in six.iteritems(fields)) + + return ((k, v) for k, v in fields) + + +def encode_multipart_formdata(fields, boundary=None): + """ + Encode a dictionary of ``fields`` using the multipart/form-data MIME format. + + :param fields: + Dictionary of fields or list of (key, :class:`~urllib3.fields.RequestField`). + + :param boundary: + If not specified, then a random boundary will be generated using + :func:`mimetools.choose_boundary`. + """ + body = BytesIO() + if boundary is None: + boundary = choose_boundary() + + for field in iter_field_objects(fields): + body.write(b('--%s\r\n' % (boundary))) + + writer(body).write(field.render_headers()) + data = field.data + + if isinstance(data, int): + data = str(data) # Backwards compatibility + + if isinstance(data, six.text_type): + writer(body).write(data) + else: + body.write(data) + + body.write(b'\r\n') + + body.write(b('--%s--\r\n' % (boundary))) + + content_type = str('multipart/form-data; boundary=%s' % boundary) + + return body.getvalue(), content_type diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/__init__.py new file mode 100644 index 00000000..170e974c --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/__init__.py @@ -0,0 +1,5 @@ +from __future__ import absolute_import + +from . import ssl_match_hostname + +__all__ = ('ssl_match_hostname', ) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/backports/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/backports/__init__.py new file mode 100644 index 00000000..e69de29b diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/backports/makefile.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/backports/makefile.py new file mode 100644 index 00000000..75b80dcf --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/backports/makefile.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- +""" +backports.makefile +~~~~~~~~~~~~~~~~~~ + +Backports the Python 3 ``socket.makefile`` method for use with anything that +wants to create a "fake" socket object. +""" +import io + +from socket import SocketIO + + +def backport_makefile(self, mode="r", buffering=None, encoding=None, + errors=None, newline=None): + """ + Backport of ``socket.makefile`` from Python 3.5. + """ + if not set(mode) <= set(["r", "w", "b"]): + raise ValueError( + "invalid mode %r (only r, w, b allowed)" % (mode,) + ) + writing = "w" in mode + reading = "r" in mode or not writing + assert reading or writing + binary = "b" in mode + rawmode = "" + if reading: + rawmode += "r" + if writing: + rawmode += "w" + raw = SocketIO(self, rawmode) + self._makefile_refs += 1 + if buffering is None: + buffering = -1 + if buffering < 0: + buffering = io.DEFAULT_BUFFER_SIZE + if buffering == 0: + if not binary: + raise ValueError("unbuffered streams must be binary") + return raw + if reading and writing: + buffer = io.BufferedRWPair(raw, raw, buffering) + elif reading: + buffer = io.BufferedReader(raw, buffering) + else: + assert writing + buffer = io.BufferedWriter(raw, buffering) + if binary: + return buffer + text = io.TextIOWrapper(buffer, encoding, errors, newline) + text.mode = mode + return text diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/ordered_dict.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/ordered_dict.py new file mode 100644 index 00000000..4479363c --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/ordered_dict.py @@ -0,0 +1,259 @@ +# Backport of OrderedDict() class that runs on Python 2.4, 2.5, 2.6, 2.7 and pypy. +# Passes Python2.7's test suite and incorporates all the latest updates. +# Copyright 2009 Raymond Hettinger, released under the MIT License. +# http://code.activestate.com/recipes/576693/ +try: + from thread import get_ident as _get_ident +except ImportError: + from dummy_thread import get_ident as _get_ident + +try: + from _abcoll import KeysView, ValuesView, ItemsView +except ImportError: + pass + + +class OrderedDict(dict): + 'Dictionary that remembers insertion order' + # An inherited dict maps keys to values. + # The inherited dict provides __getitem__, __len__, __contains__, and get. + # The remaining methods are order-aware. + # Big-O running times for all methods are the same as for regular dictionaries. + + # The internal self.__map dictionary maps keys to links in a doubly linked list. + # The circular doubly linked list starts and ends with a sentinel element. + # The sentinel element never gets deleted (this simplifies the algorithm). + # Each link is stored as a list of length three: [PREV, NEXT, KEY]. + + def __init__(self, *args, **kwds): + '''Initialize an ordered dictionary. Signature is the same as for + regular dictionaries, but keyword arguments are not recommended + because their insertion order is arbitrary. + + ''' + if len(args) > 1: + raise TypeError('expected at most 1 arguments, got %d' % len(args)) + try: + self.__root + except AttributeError: + self.__root = root = [] # sentinel node + root[:] = [root, root, None] + self.__map = {} + self.__update(*args, **kwds) + + def __setitem__(self, key, value, dict_setitem=dict.__setitem__): + 'od.__setitem__(i, y) <==> od[i]=y' + # Setting a new item creates a new link which goes at the end of the linked + # list, and the inherited dictionary is updated with the new key/value pair. + if key not in self: + root = self.__root + last = root[0] + last[1] = root[0] = self.__map[key] = [last, root, key] + dict_setitem(self, key, value) + + def __delitem__(self, key, dict_delitem=dict.__delitem__): + 'od.__delitem__(y) <==> del od[y]' + # Deleting an existing item uses self.__map to find the link which is + # then removed by updating the links in the predecessor and successor nodes. + dict_delitem(self, key) + link_prev, link_next, key = self.__map.pop(key) + link_prev[1] = link_next + link_next[0] = link_prev + + def __iter__(self): + 'od.__iter__() <==> iter(od)' + root = self.__root + curr = root[1] + while curr is not root: + yield curr[2] + curr = curr[1] + + def __reversed__(self): + 'od.__reversed__() <==> reversed(od)' + root = self.__root + curr = root[0] + while curr is not root: + yield curr[2] + curr = curr[0] + + def clear(self): + 'od.clear() -> None. Remove all items from od.' + try: + for node in self.__map.itervalues(): + del node[:] + root = self.__root + root[:] = [root, root, None] + self.__map.clear() + except AttributeError: + pass + dict.clear(self) + + def popitem(self, last=True): + '''od.popitem() -> (k, v), return and remove a (key, value) pair. + Pairs are returned in LIFO order if last is true or FIFO order if false. + + ''' + if not self: + raise KeyError('dictionary is empty') + root = self.__root + if last: + link = root[0] + link_prev = link[0] + link_prev[1] = root + root[0] = link_prev + else: + link = root[1] + link_next = link[1] + root[1] = link_next + link_next[0] = root + key = link[2] + del self.__map[key] + value = dict.pop(self, key) + return key, value + + # -- the following methods do not depend on the internal structure -- + + def keys(self): + 'od.keys() -> list of keys in od' + return list(self) + + def values(self): + 'od.values() -> list of values in od' + return [self[key] for key in self] + + def items(self): + 'od.items() -> list of (key, value) pairs in od' + return [(key, self[key]) for key in self] + + def iterkeys(self): + 'od.iterkeys() -> an iterator over the keys in od' + return iter(self) + + def itervalues(self): + 'od.itervalues -> an iterator over the values in od' + for k in self: + yield self[k] + + def iteritems(self): + 'od.iteritems -> an iterator over the (key, value) items in od' + for k in self: + yield (k, self[k]) + + def update(*args, **kwds): + '''od.update(E, **F) -> None. Update od from dict/iterable E and F. + + If E is a dict instance, does: for k in E: od[k] = E[k] + If E has a .keys() method, does: for k in E.keys(): od[k] = E[k] + Or if E is an iterable of items, does: for k, v in E: od[k] = v + In either case, this is followed by: for k, v in F.items(): od[k] = v + + ''' + if len(args) > 2: + raise TypeError('update() takes at most 2 positional ' + 'arguments (%d given)' % (len(args),)) + elif not args: + raise TypeError('update() takes at least 1 argument (0 given)') + self = args[0] + # Make progressively weaker assumptions about "other" + other = () + if len(args) == 2: + other = args[1] + if isinstance(other, dict): + for key in other: + self[key] = other[key] + elif hasattr(other, 'keys'): + for key in other.keys(): + self[key] = other[key] + else: + for key, value in other: + self[key] = value + for key, value in kwds.items(): + self[key] = value + + __update = update # let subclasses override update without breaking __init__ + + __marker = object() + + def pop(self, key, default=__marker): + '''od.pop(k[,d]) -> v, remove specified key and return the corresponding value. + If key is not found, d is returned if given, otherwise KeyError is raised. + + ''' + if key in self: + result = self[key] + del self[key] + return result + if default is self.__marker: + raise KeyError(key) + return default + + def setdefault(self, key, default=None): + 'od.setdefault(k[,d]) -> od.get(k,d), also set od[k]=d if k not in od' + if key in self: + return self[key] + self[key] = default + return default + + def __repr__(self, _repr_running={}): + 'od.__repr__() <==> repr(od)' + call_key = id(self), _get_ident() + if call_key in _repr_running: + return '...' + _repr_running[call_key] = 1 + try: + if not self: + return '%s()' % (self.__class__.__name__,) + return '%s(%r)' % (self.__class__.__name__, self.items()) + finally: + del _repr_running[call_key] + + def __reduce__(self): + 'Return state information for pickling' + items = [[k, self[k]] for k in self] + inst_dict = vars(self).copy() + for k in vars(OrderedDict()): + inst_dict.pop(k, None) + if inst_dict: + return (self.__class__, (items,), inst_dict) + return self.__class__, (items,) + + def copy(self): + 'od.copy() -> a shallow copy of od' + return self.__class__(self) + + @classmethod + def fromkeys(cls, iterable, value=None): + '''OD.fromkeys(S[, v]) -> New ordered dictionary with keys from S + and values equal to v (which defaults to None). + + ''' + d = cls() + for key in iterable: + d[key] = value + return d + + def __eq__(self, other): + '''od.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive + while comparison to a regular mapping is order-insensitive. + + ''' + if isinstance(other, OrderedDict): + return len(self)==len(other) and self.items() == other.items() + return dict.__eq__(self, other) + + def __ne__(self, other): + return not self == other + + # -- the following methods are only used in Python 2.7 -- + + def viewkeys(self): + "od.viewkeys() -> a set-like object providing a view on od's keys" + return KeysView(self) + + def viewvalues(self): + "od.viewvalues() -> an object providing a view on od's values" + return ValuesView(self) + + def viewitems(self): + "od.viewitems() -> a set-like object providing a view on od's items" + return ItemsView(self) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/six.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/six.py new file mode 100644 index 00000000..190c0239 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/six.py @@ -0,0 +1,868 @@ +"""Utilities for writing code that runs on Python 2 and 3""" + +# Copyright (c) 2010-2015 Benjamin Peterson +# +# Permission is hereby granted, free of charge, to any person obtaining a copy +# of this software and associated documentation files (the "Software"), to deal +# in the Software without restriction, including without limitation the rights +# to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +# copies of the Software, and to permit persons to whom the Software is +# furnished to do so, subject to the following conditions: +# +# The above copyright notice and this permission notice shall be included in all +# copies or substantial portions of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +# AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +# OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE +# SOFTWARE. + +from __future__ import absolute_import + +import functools +import itertools +import operator +import sys +import types + +__author__ = "Benjamin Peterson <benjamin@python.org>" +__version__ = "1.10.0" + + +# Useful for very coarse version differentiation. +PY2 = sys.version_info[0] == 2 +PY3 = sys.version_info[0] == 3 +PY34 = sys.version_info[0:2] >= (3, 4) + +if PY3: + string_types = str, + integer_types = int, + class_types = type, + text_type = str + binary_type = bytes + + MAXSIZE = sys.maxsize +else: + string_types = basestring, + integer_types = (int, long) + class_types = (type, types.ClassType) + text_type = unicode + binary_type = str + + if sys.platform.startswith("java"): + # Jython always uses 32 bits. + MAXSIZE = int((1 << 31) - 1) + else: + # It's possible to have sizeof(long) != sizeof(Py_ssize_t). + class X(object): + + def __len__(self): + return 1 << 31 + try: + len(X()) + except OverflowError: + # 32-bit + MAXSIZE = int((1 << 31) - 1) + else: + # 64-bit + MAXSIZE = int((1 << 63) - 1) + del X + + +def _add_doc(func, doc): + """Add documentation to a function.""" + func.__doc__ = doc + + +def _import_module(name): + """Import module, returning the module after the last dot.""" + __import__(name) + return sys.modules[name] + + +class _LazyDescr(object): + + def __init__(self, name): + self.name = name + + def __get__(self, obj, tp): + result = self._resolve() + setattr(obj, self.name, result) # Invokes __set__. + try: + # This is a bit ugly, but it avoids running this again by + # removing this descriptor. + delattr(obj.__class__, self.name) + except AttributeError: + pass + return result + + +class MovedModule(_LazyDescr): + + def __init__(self, name, old, new=None): + super(MovedModule, self).__init__(name) + if PY3: + if new is None: + new = name + self.mod = new + else: + self.mod = old + + def _resolve(self): + return _import_module(self.mod) + + def __getattr__(self, attr): + _module = self._resolve() + value = getattr(_module, attr) + setattr(self, attr, value) + return value + + +class _LazyModule(types.ModuleType): + + def __init__(self, name): + super(_LazyModule, self).__init__(name) + self.__doc__ = self.__class__.__doc__ + + def __dir__(self): + attrs = ["__doc__", "__name__"] + attrs += [attr.name for attr in self._moved_attributes] + return attrs + + # Subclasses should override this + _moved_attributes = [] + + +class MovedAttribute(_LazyDescr): + + def __init__(self, name, old_mod, new_mod, old_attr=None, new_attr=None): + super(MovedAttribute, self).__init__(name) + if PY3: + if new_mod is None: + new_mod = name + self.mod = new_mod + if new_attr is None: + if old_attr is None: + new_attr = name + else: + new_attr = old_attr + self.attr = new_attr + else: + self.mod = old_mod + if old_attr is None: + old_attr = name + self.attr = old_attr + + def _resolve(self): + module = _import_module(self.mod) + return getattr(module, self.attr) + + +class _SixMetaPathImporter(object): + + """ + A meta path importer to import six.moves and its submodules. + + This class implements a PEP302 finder and loader. It should be compatible + with Python 2.5 and all existing versions of Python3 + """ + + def __init__(self, six_module_name): + self.name = six_module_name + self.known_modules = {} + + def _add_module(self, mod, *fullnames): + for fullname in fullnames: + self.known_modules[self.name + "." + fullname] = mod + + def _get_module(self, fullname): + return self.known_modules[self.name + "." + fullname] + + def find_module(self, fullname, path=None): + if fullname in self.known_modules: + return self + return None + + def __get_module(self, fullname): + try: + return self.known_modules[fullname] + except KeyError: + raise ImportError("This loader does not know module " + fullname) + + def load_module(self, fullname): + try: + # in case of a reload + return sys.modules[fullname] + except KeyError: + pass + mod = self.__get_module(fullname) + if isinstance(mod, MovedModule): + mod = mod._resolve() + else: + mod.__loader__ = self + sys.modules[fullname] = mod + return mod + + def is_package(self, fullname): + """ + Return true, if the named module is a package. + + We need this method to get correct spec objects with + Python 3.4 (see PEP451) + """ + return hasattr(self.__get_module(fullname), "__path__") + + def get_code(self, fullname): + """Return None + + Required, if is_package is implemented""" + self.__get_module(fullname) # eventually raises ImportError + return None + get_source = get_code # same as get_code + +_importer = _SixMetaPathImporter(__name__) + + +class _MovedItems(_LazyModule): + + """Lazy loading of moved objects""" + __path__ = [] # mark as package + + +_moved_attributes = [ + MovedAttribute("cStringIO", "cStringIO", "io", "StringIO"), + MovedAttribute("filter", "itertools", "builtins", "ifilter", "filter"), + MovedAttribute("filterfalse", "itertools", "itertools", "ifilterfalse", "filterfalse"), + MovedAttribute("input", "__builtin__", "builtins", "raw_input", "input"), + MovedAttribute("intern", "__builtin__", "sys"), + MovedAttribute("map", "itertools", "builtins", "imap", "map"), + MovedAttribute("getcwd", "os", "os", "getcwdu", "getcwd"), + MovedAttribute("getcwdb", "os", "os", "getcwd", "getcwdb"), + MovedAttribute("range", "__builtin__", "builtins", "xrange", "range"), + MovedAttribute("reload_module", "__builtin__", "importlib" if PY34 else "imp", "reload"), + MovedAttribute("reduce", "__builtin__", "functools"), + MovedAttribute("shlex_quote", "pipes", "shlex", "quote"), + MovedAttribute("StringIO", "StringIO", "io"), + MovedAttribute("UserDict", "UserDict", "collections"), + MovedAttribute("UserList", "UserList", "collections"), + MovedAttribute("UserString", "UserString", "collections"), + MovedAttribute("xrange", "__builtin__", "builtins", "xrange", "range"), + MovedAttribute("zip", "itertools", "builtins", "izip", "zip"), + MovedAttribute("zip_longest", "itertools", "itertools", "izip_longest", "zip_longest"), + MovedModule("builtins", "__builtin__"), + MovedModule("configparser", "ConfigParser"), + MovedModule("copyreg", "copy_reg"), + MovedModule("dbm_gnu", "gdbm", "dbm.gnu"), + MovedModule("_dummy_thread", "dummy_thread", "_dummy_thread"), + MovedModule("http_cookiejar", "cookielib", "http.cookiejar"), + MovedModule("http_cookies", "Cookie", "http.cookies"), + MovedModule("html_entities", "htmlentitydefs", "html.entities"), + MovedModule("html_parser", "HTMLParser", "html.parser"), + MovedModule("http_client", "httplib", "http.client"), + MovedModule("email_mime_multipart", "email.MIMEMultipart", "email.mime.multipart"), + MovedModule("email_mime_nonmultipart", "email.MIMENonMultipart", "email.mime.nonmultipart"), + MovedModule("email_mime_text", "email.MIMEText", "email.mime.text"), + MovedModule("email_mime_base", "email.MIMEBase", "email.mime.base"), + MovedModule("BaseHTTPServer", "BaseHTTPServer", "http.server"), + MovedModule("CGIHTTPServer", "CGIHTTPServer", "http.server"), + MovedModule("SimpleHTTPServer", "SimpleHTTPServer", "http.server"), + MovedModule("cPickle", "cPickle", "pickle"), + MovedModule("queue", "Queue"), + MovedModule("reprlib", "repr"), + MovedModule("socketserver", "SocketServer"), + MovedModule("_thread", "thread", "_thread"), + MovedModule("tkinter", "Tkinter"), + MovedModule("tkinter_dialog", "Dialog", "tkinter.dialog"), + MovedModule("tkinter_filedialog", "FileDialog", "tkinter.filedialog"), + MovedModule("tkinter_scrolledtext", "ScrolledText", "tkinter.scrolledtext"), + MovedModule("tkinter_simpledialog", "SimpleDialog", "tkinter.simpledialog"), + MovedModule("tkinter_tix", "Tix", "tkinter.tix"), + MovedModule("tkinter_ttk", "ttk", "tkinter.ttk"), + MovedModule("tkinter_constants", "Tkconstants", "tkinter.constants"), + MovedModule("tkinter_dnd", "Tkdnd", "tkinter.dnd"), + MovedModule("tkinter_colorchooser", "tkColorChooser", + "tkinter.colorchooser"), + MovedModule("tkinter_commondialog", "tkCommonDialog", + "tkinter.commondialog"), + MovedModule("tkinter_tkfiledialog", "tkFileDialog", "tkinter.filedialog"), + MovedModule("tkinter_font", "tkFont", "tkinter.font"), + MovedModule("tkinter_messagebox", "tkMessageBox", "tkinter.messagebox"), + MovedModule("tkinter_tksimpledialog", "tkSimpleDialog", + "tkinter.simpledialog"), + MovedModule("urllib_parse", __name__ + ".moves.urllib_parse", "urllib.parse"), + MovedModule("urllib_error", __name__ + ".moves.urllib_error", "urllib.error"), + MovedModule("urllib", __name__ + ".moves.urllib", __name__ + ".moves.urllib"), + MovedModule("urllib_robotparser", "robotparser", "urllib.robotparser"), + MovedModule("xmlrpc_client", "xmlrpclib", "xmlrpc.client"), + MovedModule("xmlrpc_server", "SimpleXMLRPCServer", "xmlrpc.server"), +] +# Add windows specific modules. +if sys.platform == "win32": + _moved_attributes += [ + MovedModule("winreg", "_winreg"), + ] + +for attr in _moved_attributes: + setattr(_MovedItems, attr.name, attr) + if isinstance(attr, MovedModule): + _importer._add_module(attr, "moves." + attr.name) +del attr + +_MovedItems._moved_attributes = _moved_attributes + +moves = _MovedItems(__name__ + ".moves") +_importer._add_module(moves, "moves") + + +class Module_six_moves_urllib_parse(_LazyModule): + + """Lazy loading of moved objects in six.moves.urllib_parse""" + + +_urllib_parse_moved_attributes = [ + MovedAttribute("ParseResult", "urlparse", "urllib.parse"), + MovedAttribute("SplitResult", "urlparse", "urllib.parse"), + MovedAttribute("parse_qs", "urlparse", "urllib.parse"), + MovedAttribute("parse_qsl", "urlparse", "urllib.parse"), + MovedAttribute("urldefrag", "urlparse", "urllib.parse"), + MovedAttribute("urljoin", "urlparse", "urllib.parse"), + MovedAttribute("urlparse", "urlparse", "urllib.parse"), + MovedAttribute("urlsplit", "urlparse", "urllib.parse"), + MovedAttribute("urlunparse", "urlparse", "urllib.parse"), + MovedAttribute("urlunsplit", "urlparse", "urllib.parse"), + MovedAttribute("quote", "urllib", "urllib.parse"), + MovedAttribute("quote_plus", "urllib", "urllib.parse"), + MovedAttribute("unquote", "urllib", "urllib.parse"), + MovedAttribute("unquote_plus", "urllib", "urllib.parse"), + MovedAttribute("urlencode", "urllib", "urllib.parse"), + MovedAttribute("splitquery", "urllib", "urllib.parse"), + MovedAttribute("splittag", "urllib", "urllib.parse"), + MovedAttribute("splituser", "urllib", "urllib.parse"), + MovedAttribute("uses_fragment", "urlparse", "urllib.parse"), + MovedAttribute("uses_netloc", "urlparse", "urllib.parse"), + MovedAttribute("uses_params", "urlparse", "urllib.parse"), + MovedAttribute("uses_query", "urlparse", "urllib.parse"), + MovedAttribute("uses_relative", "urlparse", "urllib.parse"), +] +for attr in _urllib_parse_moved_attributes: + setattr(Module_six_moves_urllib_parse, attr.name, attr) +del attr + +Module_six_moves_urllib_parse._moved_attributes = _urllib_parse_moved_attributes + +_importer._add_module(Module_six_moves_urllib_parse(__name__ + ".moves.urllib_parse"), + "moves.urllib_parse", "moves.urllib.parse") + + +class Module_six_moves_urllib_error(_LazyModule): + + """Lazy loading of moved objects in six.moves.urllib_error""" + + +_urllib_error_moved_attributes = [ + MovedAttribute("URLError", "urllib2", "urllib.error"), + MovedAttribute("HTTPError", "urllib2", "urllib.error"), + MovedAttribute("ContentTooShortError", "urllib", "urllib.error"), +] +for attr in _urllib_error_moved_attributes: + setattr(Module_six_moves_urllib_error, attr.name, attr) +del attr + +Module_six_moves_urllib_error._moved_attributes = _urllib_error_moved_attributes + +_importer._add_module(Module_six_moves_urllib_error(__name__ + ".moves.urllib.error"), + "moves.urllib_error", "moves.urllib.error") + + +class Module_six_moves_urllib_request(_LazyModule): + + """Lazy loading of moved objects in six.moves.urllib_request""" + + +_urllib_request_moved_attributes = [ + MovedAttribute("urlopen", "urllib2", "urllib.request"), + MovedAttribute("install_opener", "urllib2", "urllib.request"), + MovedAttribute("build_opener", "urllib2", "urllib.request"), + MovedAttribute("pathname2url", "urllib", "urllib.request"), + MovedAttribute("url2pathname", "urllib", "urllib.request"), + MovedAttribute("getproxies", "urllib", "urllib.request"), + MovedAttribute("Request", "urllib2", "urllib.request"), + MovedAttribute("OpenerDirector", "urllib2", "urllib.request"), + MovedAttribute("HTTPDefaultErrorHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPRedirectHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPCookieProcessor", "urllib2", "urllib.request"), + MovedAttribute("ProxyHandler", "urllib2", "urllib.request"), + MovedAttribute("BaseHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPPasswordMgr", "urllib2", "urllib.request"), + MovedAttribute("HTTPPasswordMgrWithDefaultRealm", "urllib2", "urllib.request"), + MovedAttribute("AbstractBasicAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPBasicAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("ProxyBasicAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("AbstractDigestAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPDigestAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("ProxyDigestAuthHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPSHandler", "urllib2", "urllib.request"), + MovedAttribute("FileHandler", "urllib2", "urllib.request"), + MovedAttribute("FTPHandler", "urllib2", "urllib.request"), + MovedAttribute("CacheFTPHandler", "urllib2", "urllib.request"), + MovedAttribute("UnknownHandler", "urllib2", "urllib.request"), + MovedAttribute("HTTPErrorProcessor", "urllib2", "urllib.request"), + MovedAttribute("urlretrieve", "urllib", "urllib.request"), + MovedAttribute("urlcleanup", "urllib", "urllib.request"), + MovedAttribute("URLopener", "urllib", "urllib.request"), + MovedAttribute("FancyURLopener", "urllib", "urllib.request"), + MovedAttribute("proxy_bypass", "urllib", "urllib.request"), +] +for attr in _urllib_request_moved_attributes: + setattr(Module_six_moves_urllib_request, attr.name, attr) +del attr + +Module_six_moves_urllib_request._moved_attributes = _urllib_request_moved_attributes + +_importer._add_module(Module_six_moves_urllib_request(__name__ + ".moves.urllib.request"), + "moves.urllib_request", "moves.urllib.request") + + +class Module_six_moves_urllib_response(_LazyModule): + + """Lazy loading of moved objects in six.moves.urllib_response""" + + +_urllib_response_moved_attributes = [ + MovedAttribute("addbase", "urllib", "urllib.response"), + MovedAttribute("addclosehook", "urllib", "urllib.response"), + MovedAttribute("addinfo", "urllib", "urllib.response"), + MovedAttribute("addinfourl", "urllib", "urllib.response"), +] +for attr in _urllib_response_moved_attributes: + setattr(Module_six_moves_urllib_response, attr.name, attr) +del attr + +Module_six_moves_urllib_response._moved_attributes = _urllib_response_moved_attributes + +_importer._add_module(Module_six_moves_urllib_response(__name__ + ".moves.urllib.response"), + "moves.urllib_response", "moves.urllib.response") + + +class Module_six_moves_urllib_robotparser(_LazyModule): + + """Lazy loading of moved objects in six.moves.urllib_robotparser""" + + +_urllib_robotparser_moved_attributes = [ + MovedAttribute("RobotFileParser", "robotparser", "urllib.robotparser"), +] +for attr in _urllib_robotparser_moved_attributes: + setattr(Module_six_moves_urllib_robotparser, attr.name, attr) +del attr + +Module_six_moves_urllib_robotparser._moved_attributes = _urllib_robotparser_moved_attributes + +_importer._add_module(Module_six_moves_urllib_robotparser(__name__ + ".moves.urllib.robotparser"), + "moves.urllib_robotparser", "moves.urllib.robotparser") + + +class Module_six_moves_urllib(types.ModuleType): + + """Create a six.moves.urllib namespace that resembles the Python 3 namespace""" + __path__ = [] # mark as package + parse = _importer._get_module("moves.urllib_parse") + error = _importer._get_module("moves.urllib_error") + request = _importer._get_module("moves.urllib_request") + response = _importer._get_module("moves.urllib_response") + robotparser = _importer._get_module("moves.urllib_robotparser") + + def __dir__(self): + return ['parse', 'error', 'request', 'response', 'robotparser'] + +_importer._add_module(Module_six_moves_urllib(__name__ + ".moves.urllib"), + "moves.urllib") + + +def add_move(move): + """Add an item to six.moves.""" + setattr(_MovedItems, move.name, move) + + +def remove_move(name): + """Remove item from six.moves.""" + try: + delattr(_MovedItems, name) + except AttributeError: + try: + del moves.__dict__[name] + except KeyError: + raise AttributeError("no such move, %r" % (name,)) + + +if PY3: + _meth_func = "__func__" + _meth_self = "__self__" + + _func_closure = "__closure__" + _func_code = "__code__" + _func_defaults = "__defaults__" + _func_globals = "__globals__" +else: + _meth_func = "im_func" + _meth_self = "im_self" + + _func_closure = "func_closure" + _func_code = "func_code" + _func_defaults = "func_defaults" + _func_globals = "func_globals" + + +try: + advance_iterator = next +except NameError: + def advance_iterator(it): + return it.next() +next = advance_iterator + + +try: + callable = callable +except NameError: + def callable(obj): + return any("__call__" in klass.__dict__ for klass in type(obj).__mro__) + + +if PY3: + def get_unbound_function(unbound): + return unbound + + create_bound_method = types.MethodType + + def create_unbound_method(func, cls): + return func + + Iterator = object +else: + def get_unbound_function(unbound): + return unbound.im_func + + def create_bound_method(func, obj): + return types.MethodType(func, obj, obj.__class__) + + def create_unbound_method(func, cls): + return types.MethodType(func, None, cls) + + class Iterator(object): + + def next(self): + return type(self).__next__(self) + + callable = callable +_add_doc(get_unbound_function, + """Get the function out of a possibly unbound function""") + + +get_method_function = operator.attrgetter(_meth_func) +get_method_self = operator.attrgetter(_meth_self) +get_function_closure = operator.attrgetter(_func_closure) +get_function_code = operator.attrgetter(_func_code) +get_function_defaults = operator.attrgetter(_func_defaults) +get_function_globals = operator.attrgetter(_func_globals) + + +if PY3: + def iterkeys(d, **kw): + return iter(d.keys(**kw)) + + def itervalues(d, **kw): + return iter(d.values(**kw)) + + def iteritems(d, **kw): + return iter(d.items(**kw)) + + def iterlists(d, **kw): + return iter(d.lists(**kw)) + + viewkeys = operator.methodcaller("keys") + + viewvalues = operator.methodcaller("values") + + viewitems = operator.methodcaller("items") +else: + def iterkeys(d, **kw): + return d.iterkeys(**kw) + + def itervalues(d, **kw): + return d.itervalues(**kw) + + def iteritems(d, **kw): + return d.iteritems(**kw) + + def iterlists(d, **kw): + return d.iterlists(**kw) + + viewkeys = operator.methodcaller("viewkeys") + + viewvalues = operator.methodcaller("viewvalues") + + viewitems = operator.methodcaller("viewitems") + +_add_doc(iterkeys, "Return an iterator over the keys of a dictionary.") +_add_doc(itervalues, "Return an iterator over the values of a dictionary.") +_add_doc(iteritems, + "Return an iterator over the (key, value) pairs of a dictionary.") +_add_doc(iterlists, + "Return an iterator over the (key, [values]) pairs of a dictionary.") + + +if PY3: + def b(s): + return s.encode("latin-1") + + def u(s): + return s + unichr = chr + import struct + int2byte = struct.Struct(">B").pack + del struct + byte2int = operator.itemgetter(0) + indexbytes = operator.getitem + iterbytes = iter + import io + StringIO = io.StringIO + BytesIO = io.BytesIO + _assertCountEqual = "assertCountEqual" + if sys.version_info[1] <= 1: + _assertRaisesRegex = "assertRaisesRegexp" + _assertRegex = "assertRegexpMatches" + else: + _assertRaisesRegex = "assertRaisesRegex" + _assertRegex = "assertRegex" +else: + def b(s): + return s + # Workaround for standalone backslash + + def u(s): + return unicode(s.replace(r'\\', r'\\\\'), "unicode_escape") + unichr = unichr + int2byte = chr + + def byte2int(bs): + return ord(bs[0]) + + def indexbytes(buf, i): + return ord(buf[i]) + iterbytes = functools.partial(itertools.imap, ord) + import StringIO + StringIO = BytesIO = StringIO.StringIO + _assertCountEqual = "assertItemsEqual" + _assertRaisesRegex = "assertRaisesRegexp" + _assertRegex = "assertRegexpMatches" +_add_doc(b, """Byte literal""") +_add_doc(u, """Text literal""") + + +def assertCountEqual(self, *args, **kwargs): + return getattr(self, _assertCountEqual)(*args, **kwargs) + + +def assertRaisesRegex(self, *args, **kwargs): + return getattr(self, _assertRaisesRegex)(*args, **kwargs) + + +def assertRegex(self, *args, **kwargs): + return getattr(self, _assertRegex)(*args, **kwargs) + + +if PY3: + exec_ = getattr(moves.builtins, "exec") + + def reraise(tp, value, tb=None): + if value is None: + value = tp() + if value.__traceback__ is not tb: + raise value.with_traceback(tb) + raise value + +else: + def exec_(_code_, _globs_=None, _locs_=None): + """Execute code in a namespace.""" + if _globs_ is None: + frame = sys._getframe(1) + _globs_ = frame.f_globals + if _locs_ is None: + _locs_ = frame.f_locals + del frame + elif _locs_ is None: + _locs_ = _globs_ + exec("""exec _code_ in _globs_, _locs_""") + + exec_("""def reraise(tp, value, tb=None): + raise tp, value, tb +""") + + +if sys.version_info[:2] == (3, 2): + exec_("""def raise_from(value, from_value): + if from_value is None: + raise value + raise value from from_value +""") +elif sys.version_info[:2] > (3, 2): + exec_("""def raise_from(value, from_value): + raise value from from_value +""") +else: + def raise_from(value, from_value): + raise value + + +print_ = getattr(moves.builtins, "print", None) +if print_ is None: + def print_(*args, **kwargs): + """The new-style print function for Python 2.4 and 2.5.""" + fp = kwargs.pop("file", sys.stdout) + if fp is None: + return + + def write(data): + if not isinstance(data, basestring): + data = str(data) + # If the file has an encoding, encode unicode with it. + if (isinstance(fp, file) and + isinstance(data, unicode) and + fp.encoding is not None): + errors = getattr(fp, "errors", None) + if errors is None: + errors = "strict" + data = data.encode(fp.encoding, errors) + fp.write(data) + want_unicode = False + sep = kwargs.pop("sep", None) + if sep is not None: + if isinstance(sep, unicode): + want_unicode = True + elif not isinstance(sep, str): + raise TypeError("sep must be None or a string") + end = kwargs.pop("end", None) + if end is not None: + if isinstance(end, unicode): + want_unicode = True + elif not isinstance(end, str): + raise TypeError("end must be None or a string") + if kwargs: + raise TypeError("invalid keyword arguments to print()") + if not want_unicode: + for arg in args: + if isinstance(arg, unicode): + want_unicode = True + break + if want_unicode: + newline = unicode("\n") + space = unicode(" ") + else: + newline = "\n" + space = " " + if sep is None: + sep = space + if end is None: + end = newline + for i, arg in enumerate(args): + if i: + write(sep) + write(arg) + write(end) +if sys.version_info[:2] < (3, 3): + _print = print_ + + def print_(*args, **kwargs): + fp = kwargs.get("file", sys.stdout) + flush = kwargs.pop("flush", False) + _print(*args, **kwargs) + if flush and fp is not None: + fp.flush() + +_add_doc(reraise, """Reraise an exception.""") + +if sys.version_info[0:2] < (3, 4): + def wraps(wrapped, assigned=functools.WRAPPER_ASSIGNMENTS, + updated=functools.WRAPPER_UPDATES): + def wrapper(f): + f = functools.wraps(wrapped, assigned, updated)(f) + f.__wrapped__ = wrapped + return f + return wrapper +else: + wraps = functools.wraps + + +def with_metaclass(meta, *bases): + """Create a base class with a metaclass.""" + # This requires a bit of explanation: the basic idea is to make a dummy + # metaclass for one level of class instantiation that replaces itself with + # the actual metaclass. + class metaclass(meta): + + def __new__(cls, name, this_bases, d): + return meta(name, bases, d) + return type.__new__(metaclass, 'temporary_class', (), {}) + + +def add_metaclass(metaclass): + """Class decorator for creating a class with a metaclass.""" + def wrapper(cls): + orig_vars = cls.__dict__.copy() + slots = orig_vars.get('__slots__') + if slots is not None: + if isinstance(slots, str): + slots = [slots] + for slots_var in slots: + orig_vars.pop(slots_var) + orig_vars.pop('__dict__', None) + orig_vars.pop('__weakref__', None) + return metaclass(cls.__name__, cls.__bases__, orig_vars) + return wrapper + + +def python_2_unicode_compatible(klass): + """ + A decorator that defines __unicode__ and __str__ methods under Python 2. + Under Python 3 it does nothing. + + To support Python 2 and 3 with a single code base, define a __str__ method + returning text and apply this decorator to the class. + """ + if PY2: + if '__str__' not in klass.__dict__: + raise ValueError("@python_2_unicode_compatible cannot be applied " + "to %s because it doesn't define __str__()." % + klass.__name__) + klass.__unicode__ = klass.__str__ + klass.__str__ = lambda self: self.__unicode__().encode('utf-8') + return klass + + +# Complete the moves implementation. +# This code is at the end of this module to speed up module loading. +# Turn this module into a package. +__path__ = [] # required for PEP 302 and PEP 451 +__package__ = __name__ # see PEP 366 @ReservedAssignment +if globals().get("__spec__") is not None: + __spec__.submodule_search_locations = [] # PEP 451 @UndefinedVariable +# Remove other six meta path importers, since they cause problems. This can +# happen if six is removed from sys.modules and then reloaded. (Setuptools does +# this for some reason.) +if sys.meta_path: + for i, importer in enumerate(sys.meta_path): + # Here's some real nastiness: Another "instance" of the six module might + # be floating around. Therefore, we can't use isinstance() to check for + # the six meta path importer, since the other six instance will have + # inserted an importer with different class. + if (type(importer).__name__ == "_SixMetaPathImporter" and + importer.name == __name__): + del sys.meta_path[i] + break + del i, importer +# Finally, add the importer to the meta path import hook. +sys.meta_path.append(_importer) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py new file mode 100644 index 00000000..d6594eb2 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/__init__.py @@ -0,0 +1,19 @@ +import sys + +try: + # Our match_hostname function is the same as 3.5's, so we only want to + # import the match_hostname function if it's at least that good. + if sys.version_info < (3, 5): + raise ImportError("Fallback to vendored code") + + from ssl import CertificateError, match_hostname +except ImportError: + try: + # Backport of the function from a pypi module + from backports.ssl_match_hostname import CertificateError, match_hostname + except ImportError: + # Our vendored copy + from ._implementation import CertificateError, match_hostname + +# Not needed, but documenting what we provide. +__all__ = ('CertificateError', 'match_hostname') diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py new file mode 100644 index 00000000..92c9bc7e --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/packages/ssl_match_hostname/_implementation.py @@ -0,0 +1,157 @@ +"""The match_hostname() function from Python 3.3.3, essential when using SSL.""" + +# Note: This file is under the PSF license as the code comes from the python +# stdlib. http://docs.python.org/3/license.html + +import re +import sys + +# ipaddress has been backported to 2.6+ in pypi. If it is installed on the +# system, use it to handle IPAddress ServerAltnames (this was added in +# python-3.5) otherwise only do DNS matching. This allows +# backports.ssl_match_hostname to continue to be used all the way back to +# python-2.4. +try: + from pip._vendor import ipaddress +except ImportError: + ipaddress = None + +__version__ = '3.5.0.1' + + +class CertificateError(ValueError): + pass + + +def _dnsname_match(dn, hostname, max_wildcards=1): + """Matching according to RFC 6125, section 6.4.3 + + http://tools.ietf.org/html/rfc6125#section-6.4.3 + """ + pats = [] + if not dn: + return False + + # Ported from python3-syntax: + # leftmost, *remainder = dn.split(r'.') + parts = dn.split(r'.') + leftmost = parts[0] + remainder = parts[1:] + + wildcards = leftmost.count('*') + if wildcards > max_wildcards: + # Issue #17980: avoid denials of service by refusing more + # than one wildcard per fragment. A survey of established + # policy among SSL implementations showed it to be a + # reasonable choice. + raise CertificateError( + "too many wildcards in certificate DNS name: " + repr(dn)) + + # speed up common case w/o wildcards + if not wildcards: + return dn.lower() == hostname.lower() + + # RFC 6125, section 6.4.3, subitem 1. + # The client SHOULD NOT attempt to match a presented identifier in which + # the wildcard character comprises a label other than the left-most label. + if leftmost == '*': + # When '*' is a fragment by itself, it matches a non-empty dotless + # fragment. + pats.append('[^.]+') + elif leftmost.startswith('xn--') or hostname.startswith('xn--'): + # RFC 6125, section 6.4.3, subitem 3. + # The client SHOULD NOT attempt to match a presented identifier + # where the wildcard character is embedded within an A-label or + # U-label of an internationalized domain name. + pats.append(re.escape(leftmost)) + else: + # Otherwise, '*' matches any dotless string, e.g. www* + pats.append(re.escape(leftmost).replace(r'\*', '[^.]*')) + + # add the remaining fragments, ignore any wildcards + for frag in remainder: + pats.append(re.escape(frag)) + + pat = re.compile(r'\A' + r'\.'.join(pats) + r'\Z', re.IGNORECASE) + return pat.match(hostname) + + +def _to_unicode(obj): + if isinstance(obj, str) and sys.version_info < (3,): + obj = unicode(obj, encoding='ascii', errors='strict') + return obj + +def _ipaddress_match(ipname, host_ip): + """Exact matching of IP addresses. + + RFC 6125 explicitly doesn't define an algorithm for this + (section 1.7.2 - "Out of Scope"). + """ + # OpenSSL may add a trailing newline to a subjectAltName's IP address + # Divergence from upstream: ipaddress can't handle byte str + ip = ipaddress.ip_address(_to_unicode(ipname).rstrip()) + return ip == host_ip + + +def match_hostname(cert, hostname): + """Verify that *cert* (in decoded format as returned by + SSLSocket.getpeercert()) matches the *hostname*. RFC 2818 and RFC 6125 + rules are followed, but IP addresses are not accepted for *hostname*. + + CertificateError is raised on failure. On success, the function + returns nothing. + """ + if not cert: + raise ValueError("empty or no certificate, match_hostname needs a " + "SSL socket or SSL context with either " + "CERT_OPTIONAL or CERT_REQUIRED") + try: + # Divergence from upstream: ipaddress can't handle byte str + host_ip = ipaddress.ip_address(_to_unicode(hostname)) + except ValueError: + # Not an IP address (common case) + host_ip = None + except UnicodeError: + # Divergence from upstream: Have to deal with ipaddress not taking + # byte strings. addresses should be all ascii, so we consider it not + # an ipaddress in this case + host_ip = None + except AttributeError: + # Divergence from upstream: Make ipaddress library optional + if ipaddress is None: + host_ip = None + else: + raise + dnsnames = [] + san = cert.get('subjectAltName', ()) + for key, value in san: + if key == 'DNS': + if host_ip is None and _dnsname_match(value, hostname): + return + dnsnames.append(value) + elif key == 'IP Address': + if host_ip is not None and _ipaddress_match(value, host_ip): + return + dnsnames.append(value) + if not dnsnames: + # The subject is only checked when there is no dNSName entry + # in subjectAltName + for sub in cert.get('subject', ()): + for key, value in sub: + # XXX according to RFC 2818, the most specific Common Name + # must be used. + if key == 'commonName': + if _dnsname_match(value, hostname): + return + dnsnames.append(value) + if len(dnsnames) > 1: + raise CertificateError("hostname %r " + "doesn't match either of %s" + % (hostname, ', '.join(map(repr, dnsnames)))) + elif len(dnsnames) == 1: + raise CertificateError("hostname %r " + "doesn't match %r" + % (hostname, dnsnames[0])) + else: + raise CertificateError("no appropriate commonName or " + "subjectAltName fields were found") diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/poolmanager.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/poolmanager.py new file mode 100644 index 00000000..4ae91744 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/poolmanager.py @@ -0,0 +1,440 @@ +from __future__ import absolute_import +import collections +import functools +import logging + +from ._collections import RecentlyUsedContainer +from .connectionpool import HTTPConnectionPool, HTTPSConnectionPool +from .connectionpool import port_by_scheme +from .exceptions import LocationValueError, MaxRetryError, ProxySchemeUnknown +from .packages.six.moves.urllib.parse import urljoin +from .request import RequestMethods +from .util.url import parse_url +from .util.retry import Retry + + +__all__ = ['PoolManager', 'ProxyManager', 'proxy_from_url'] + + +log = logging.getLogger(__name__) + +SSL_KEYWORDS = ('key_file', 'cert_file', 'cert_reqs', 'ca_certs', + 'ssl_version', 'ca_cert_dir', 'ssl_context') + +# All known keyword arguments that could be provided to the pool manager, its +# pools, or the underlying connections. This is used to construct a pool key. +_key_fields = ( + 'key_scheme', # str + 'key_host', # str + 'key_port', # int + 'key_timeout', # int or float or Timeout + 'key_retries', # int or Retry + 'key_strict', # bool + 'key_block', # bool + 'key_source_address', # str + 'key_key_file', # str + 'key_cert_file', # str + 'key_cert_reqs', # str + 'key_ca_certs', # str + 'key_ssl_version', # str + 'key_ca_cert_dir', # str + 'key_ssl_context', # instance of ssl.SSLContext or urllib3.util.ssl_.SSLContext + 'key_maxsize', # int + 'key_headers', # dict + 'key__proxy', # parsed proxy url + 'key__proxy_headers', # dict + 'key_socket_options', # list of (level (int), optname (int), value (int or str)) tuples + 'key__socks_options', # dict + 'key_assert_hostname', # bool or string + 'key_assert_fingerprint', # str +) + +#: The namedtuple class used to construct keys for the connection pool. +#: All custom key schemes should include the fields in this key at a minimum. +PoolKey = collections.namedtuple('PoolKey', _key_fields) + + +def _default_key_normalizer(key_class, request_context): + """ + Create a pool key out of a request context dictionary. + + According to RFC 3986, both the scheme and host are case-insensitive. + Therefore, this function normalizes both before constructing the pool + key for an HTTPS request. If you wish to change this behaviour, provide + alternate callables to ``key_fn_by_scheme``. + + :param key_class: + The class to use when constructing the key. This should be a namedtuple + with the ``scheme`` and ``host`` keys at a minimum. + :type key_class: namedtuple + :param request_context: + A dictionary-like object that contain the context for a request. + :type request_context: dict + + :return: A namedtuple that can be used as a connection pool key. + :rtype: PoolKey + """ + # Since we mutate the dictionary, make a copy first + context = request_context.copy() + context['scheme'] = context['scheme'].lower() + context['host'] = context['host'].lower() + + # These are both dictionaries and need to be transformed into frozensets + for key in ('headers', '_proxy_headers', '_socks_options'): + if key in context and context[key] is not None: + context[key] = frozenset(context[key].items()) + + # The socket_options key may be a list and needs to be transformed into a + # tuple. + socket_opts = context.get('socket_options') + if socket_opts is not None: + context['socket_options'] = tuple(socket_opts) + + # Map the kwargs to the names in the namedtuple - this is necessary since + # namedtuples can't have fields starting with '_'. + for key in list(context.keys()): + context['key_' + key] = context.pop(key) + + # Default to ``None`` for keys missing from the context + for field in key_class._fields: + if field not in context: + context[field] = None + + return key_class(**context) + + +#: A dictionary that maps a scheme to a callable that creates a pool key. +#: This can be used to alter the way pool keys are constructed, if desired. +#: Each PoolManager makes a copy of this dictionary so they can be configured +#: globally here, or individually on the instance. +key_fn_by_scheme = { + 'http': functools.partial(_default_key_normalizer, PoolKey), + 'https': functools.partial(_default_key_normalizer, PoolKey), +} + +pool_classes_by_scheme = { + 'http': HTTPConnectionPool, + 'https': HTTPSConnectionPool, +} + + +class PoolManager(RequestMethods): + """ + Allows for arbitrary requests while transparently keeping track of + necessary connection pools for you. + + :param num_pools: + Number of connection pools to cache before discarding the least + recently used pool. + + :param headers: + Headers to include with all requests, unless other headers are given + explicitly. + + :param \\**connection_pool_kw: + Additional parameters are used to create fresh + :class:`urllib3.connectionpool.ConnectionPool` instances. + + Example:: + + >>> manager = PoolManager(num_pools=2) + >>> r = manager.request('GET', 'http://google.com/') + >>> r = manager.request('GET', 'http://google.com/mail') + >>> r = manager.request('GET', 'http://yahoo.com/') + >>> len(manager.pools) + 2 + + """ + + proxy = None + + def __init__(self, num_pools=10, headers=None, **connection_pool_kw): + RequestMethods.__init__(self, headers) + self.connection_pool_kw = connection_pool_kw + self.pools = RecentlyUsedContainer(num_pools, + dispose_func=lambda p: p.close()) + + # Locally set the pool classes and keys so other PoolManagers can + # override them. + self.pool_classes_by_scheme = pool_classes_by_scheme + self.key_fn_by_scheme = key_fn_by_scheme.copy() + + def __enter__(self): + return self + + def __exit__(self, exc_type, exc_val, exc_tb): + self.clear() + # Return False to re-raise any potential exceptions + return False + + def _new_pool(self, scheme, host, port, request_context=None): + """ + Create a new :class:`ConnectionPool` based on host, port, scheme, and + any additional pool keyword arguments. + + If ``request_context`` is provided, it is provided as keyword arguments + to the pool class used. This method is used to actually create the + connection pools handed out by :meth:`connection_from_url` and + companion methods. It is intended to be overridden for customization. + """ + pool_cls = self.pool_classes_by_scheme[scheme] + if request_context is None: + request_context = self.connection_pool_kw.copy() + + # Although the context has everything necessary to create the pool, + # this function has historically only used the scheme, host, and port + # in the positional args. When an API change is acceptable these can + # be removed. + for key in ('scheme', 'host', 'port'): + request_context.pop(key, None) + + if scheme == 'http': + for kw in SSL_KEYWORDS: + request_context.pop(kw, None) + + return pool_cls(host, port, **request_context) + + def clear(self): + """ + Empty our store of pools and direct them all to close. + + This will not affect in-flight connections, but they will not be + re-used after completion. + """ + self.pools.clear() + + def connection_from_host(self, host, port=None, scheme='http', pool_kwargs=None): + """ + Get a :class:`ConnectionPool` based on the host, port, and scheme. + + If ``port`` isn't given, it will be derived from the ``scheme`` using + ``urllib3.connectionpool.port_by_scheme``. If ``pool_kwargs`` is + provided, it is merged with the instance's ``connection_pool_kw`` + variable and used to create the new connection pool, if one is + needed. + """ + + if not host: + raise LocationValueError("No host specified.") + + request_context = self._merge_pool_kwargs(pool_kwargs) + request_context['scheme'] = scheme or 'http' + if not port: + port = port_by_scheme.get(request_context['scheme'].lower(), 80) + request_context['port'] = port + request_context['host'] = host + + return self.connection_from_context(request_context) + + def connection_from_context(self, request_context): + """ + Get a :class:`ConnectionPool` based on the request context. + + ``request_context`` must at least contain the ``scheme`` key and its + value must be a key in ``key_fn_by_scheme`` instance variable. + """ + scheme = request_context['scheme'].lower() + pool_key_constructor = self.key_fn_by_scheme[scheme] + pool_key = pool_key_constructor(request_context) + + return self.connection_from_pool_key(pool_key, request_context=request_context) + + def connection_from_pool_key(self, pool_key, request_context=None): + """ + Get a :class:`ConnectionPool` based on the provided pool key. + + ``pool_key`` should be a namedtuple that only contains immutable + objects. At a minimum it must have the ``scheme``, ``host``, and + ``port`` fields. + """ + with self.pools.lock: + # If the scheme, host, or port doesn't match existing open + # connections, open a new ConnectionPool. + pool = self.pools.get(pool_key) + if pool: + return pool + + # Make a fresh ConnectionPool of the desired type + scheme = request_context['scheme'] + host = request_context['host'] + port = request_context['port'] + pool = self._new_pool(scheme, host, port, request_context=request_context) + self.pools[pool_key] = pool + + return pool + + def connection_from_url(self, url, pool_kwargs=None): + """ + Similar to :func:`urllib3.connectionpool.connection_from_url`. + + If ``pool_kwargs`` is not provided and a new pool needs to be + constructed, ``self.connection_pool_kw`` is used to initialize + the :class:`urllib3.connectionpool.ConnectionPool`. If ``pool_kwargs`` + is provided, it is used instead. Note that if a new pool does not + need to be created for the request, the provided ``pool_kwargs`` are + not used. + """ + u = parse_url(url) + return self.connection_from_host(u.host, port=u.port, scheme=u.scheme, + pool_kwargs=pool_kwargs) + + def _merge_pool_kwargs(self, override): + """ + Merge a dictionary of override values for self.connection_pool_kw. + + This does not modify self.connection_pool_kw and returns a new dict. + Any keys in the override dictionary with a value of ``None`` are + removed from the merged dictionary. + """ + base_pool_kwargs = self.connection_pool_kw.copy() + if override: + for key, value in override.items(): + if value is None: + try: + del base_pool_kwargs[key] + except KeyError: + pass + else: + base_pool_kwargs[key] = value + return base_pool_kwargs + + def urlopen(self, method, url, redirect=True, **kw): + """ + Same as :meth:`urllib3.connectionpool.HTTPConnectionPool.urlopen` + with custom cross-host redirect logic and only sends the request-uri + portion of the ``url``. + + The given ``url`` parameter must be absolute, such that an appropriate + :class:`urllib3.connectionpool.ConnectionPool` can be chosen for it. + """ + u = parse_url(url) + conn = self.connection_from_host(u.host, port=u.port, scheme=u.scheme) + + kw['assert_same_host'] = False + kw['redirect'] = False + if 'headers' not in kw: + kw['headers'] = self.headers + + if self.proxy is not None and u.scheme == "http": + response = conn.urlopen(method, url, **kw) + else: + response = conn.urlopen(method, u.request_uri, **kw) + + redirect_location = redirect and response.get_redirect_location() + if not redirect_location: + return response + + # Support relative URLs for redirecting. + redirect_location = urljoin(url, redirect_location) + + # RFC 7231, Section 6.4.4 + if response.status == 303: + method = 'GET' + + retries = kw.get('retries') + if not isinstance(retries, Retry): + retries = Retry.from_int(retries, redirect=redirect) + + try: + retries = retries.increment(method, url, response=response, _pool=conn) + except MaxRetryError: + if retries.raise_on_redirect: + raise + return response + + kw['retries'] = retries + kw['redirect'] = redirect + + log.info("Redirecting %s -> %s", url, redirect_location) + return self.urlopen(method, redirect_location, **kw) + + +class ProxyManager(PoolManager): + """ + Behaves just like :class:`PoolManager`, but sends all requests through + the defined proxy, using the CONNECT method for HTTPS URLs. + + :param proxy_url: + The URL of the proxy to be used. + + :param proxy_headers: + A dictionary contaning headers that will be sent to the proxy. In case + of HTTP they are being sent with each request, while in the + HTTPS/CONNECT case they are sent only once. Could be used for proxy + authentication. + + Example: + >>> proxy = urllib3.ProxyManager('http://localhost:3128/') + >>> r1 = proxy.request('GET', 'http://google.com/') + >>> r2 = proxy.request('GET', 'http://httpbin.org/') + >>> len(proxy.pools) + 1 + >>> r3 = proxy.request('GET', 'https://httpbin.org/') + >>> r4 = proxy.request('GET', 'https://twitter.com/') + >>> len(proxy.pools) + 3 + + """ + + def __init__(self, proxy_url, num_pools=10, headers=None, + proxy_headers=None, **connection_pool_kw): + + if isinstance(proxy_url, HTTPConnectionPool): + proxy_url = '%s://%s:%i' % (proxy_url.scheme, proxy_url.host, + proxy_url.port) + proxy = parse_url(proxy_url) + if not proxy.port: + port = port_by_scheme.get(proxy.scheme, 80) + proxy = proxy._replace(port=port) + + if proxy.scheme not in ("http", "https"): + raise ProxySchemeUnknown(proxy.scheme) + + self.proxy = proxy + self.proxy_headers = proxy_headers or {} + + connection_pool_kw['_proxy'] = self.proxy + connection_pool_kw['_proxy_headers'] = self.proxy_headers + + super(ProxyManager, self).__init__( + num_pools, headers, **connection_pool_kw) + + def connection_from_host(self, host, port=None, scheme='http', pool_kwargs=None): + if scheme == "https": + return super(ProxyManager, self).connection_from_host( + host, port, scheme, pool_kwargs=pool_kwargs) + + return super(ProxyManager, self).connection_from_host( + self.proxy.host, self.proxy.port, self.proxy.scheme, pool_kwargs=pool_kwargs) + + def _set_proxy_headers(self, url, headers=None): + """ + Sets headers needed by proxies: specifically, the Accept and Host + headers. Only sets headers not provided by the user. + """ + headers_ = {'Accept': '*/*'} + + netloc = parse_url(url).netloc + if netloc: + headers_['Host'] = netloc + + if headers: + headers_.update(headers) + return headers_ + + def urlopen(self, method, url, redirect=True, **kw): + "Same as HTTP(S)ConnectionPool.urlopen, ``url`` must be absolute." + u = parse_url(url) + + if u.scheme == "http": + # For proxied HTTPS requests, httplib sets the necessary headers + # on the CONNECT to the proxy. For HTTP, we'll definitely + # need to set 'Host' at the very least. + headers = kw.get('headers', self.headers) + kw['headers'] = self._set_proxy_headers(url, headers) + + return super(ProxyManager, self).urlopen(method, url, redirect=redirect, **kw) + + +def proxy_from_url(url, **kw): + return ProxyManager(proxy_url=url, **kw) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/request.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/request.py new file mode 100644 index 00000000..c0fddff0 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/request.py @@ -0,0 +1,148 @@ +from __future__ import absolute_import + +from .filepost import encode_multipart_formdata +from .packages.six.moves.urllib.parse import urlencode + + +__all__ = ['RequestMethods'] + + +class RequestMethods(object): + """ + Convenience mixin for classes who implement a :meth:`urlopen` method, such + as :class:`~urllib3.connectionpool.HTTPConnectionPool` and + :class:`~urllib3.poolmanager.PoolManager`. + + Provides behavior for making common types of HTTP request methods and + decides which type of request field encoding to use. + + Specifically, + + :meth:`.request_encode_url` is for sending requests whose fields are + encoded in the URL (such as GET, HEAD, DELETE). + + :meth:`.request_encode_body` is for sending requests whose fields are + encoded in the *body* of the request using multipart or www-form-urlencoded + (such as for POST, PUT, PATCH). + + :meth:`.request` is for making any kind of request, it will look up the + appropriate encoding format and use one of the above two methods to make + the request. + + Initializer parameters: + + :param headers: + Headers to include with all requests, unless other headers are given + explicitly. + """ + + _encode_url_methods = set(['DELETE', 'GET', 'HEAD', 'OPTIONS']) + + def __init__(self, headers=None): + self.headers = headers or {} + + def urlopen(self, method, url, body=None, headers=None, + encode_multipart=True, multipart_boundary=None, + **kw): # Abstract + raise NotImplemented("Classes extending RequestMethods must implement " + "their own ``urlopen`` method.") + + def request(self, method, url, fields=None, headers=None, **urlopen_kw): + """ + Make a request using :meth:`urlopen` with the appropriate encoding of + ``fields`` based on the ``method`` used. + + This is a convenience method that requires the least amount of manual + effort. It can be used in most situations, while still having the + option to drop down to more specific methods when necessary, such as + :meth:`request_encode_url`, :meth:`request_encode_body`, + or even the lowest level :meth:`urlopen`. + """ + method = method.upper() + + if method in self._encode_url_methods: + return self.request_encode_url(method, url, fields=fields, + headers=headers, + **urlopen_kw) + else: + return self.request_encode_body(method, url, fields=fields, + headers=headers, + **urlopen_kw) + + def request_encode_url(self, method, url, fields=None, headers=None, + **urlopen_kw): + """ + Make a request using :meth:`urlopen` with the ``fields`` encoded in + the url. This is useful for request methods like GET, HEAD, DELETE, etc. + """ + if headers is None: + headers = self.headers + + extra_kw = {'headers': headers} + extra_kw.update(urlopen_kw) + + if fields: + url += '?' + urlencode(fields) + + return self.urlopen(method, url, **extra_kw) + + def request_encode_body(self, method, url, fields=None, headers=None, + encode_multipart=True, multipart_boundary=None, + **urlopen_kw): + """ + Make a request using :meth:`urlopen` with the ``fields`` encoded in + the body. This is useful for request methods like POST, PUT, PATCH, etc. + + When ``encode_multipart=True`` (default), then + :meth:`urllib3.filepost.encode_multipart_formdata` is used to encode + the payload with the appropriate content type. Otherwise + :meth:`urllib.urlencode` is used with the + 'application/x-www-form-urlencoded' content type. + + Multipart encoding must be used when posting files, and it's reasonably + safe to use it in other times too. However, it may break request + signing, such as with OAuth. + + Supports an optional ``fields`` parameter of key/value strings AND + key/filetuple. A filetuple is a (filename, data, MIME type) tuple where + the MIME type is optional. For example:: + + fields = { + 'foo': 'bar', + 'fakefile': ('foofile.txt', 'contents of foofile'), + 'realfile': ('barfile.txt', open('realfile').read()), + 'typedfile': ('bazfile.bin', open('bazfile').read(), + 'image/jpeg'), + 'nonamefile': 'contents of nonamefile field', + } + + When uploading a file, providing a filename (the first parameter of the + tuple) is optional but recommended to best mimick behavior of browsers. + + Note that if ``headers`` are supplied, the 'Content-Type' header will + be overwritten because it depends on the dynamic random boundary string + which is used to compose the body of the request. The random boundary + string can be explicitly set with the ``multipart_boundary`` parameter. + """ + if headers is None: + headers = self.headers + + extra_kw = {'headers': {}} + + if fields: + if 'body' in urlopen_kw: + raise TypeError( + "request got values for both 'fields' and 'body', can only specify one.") + + if encode_multipart: + body, content_type = encode_multipart_formdata(fields, boundary=multipart_boundary) + else: + body, content_type = urlencode(fields), 'application/x-www-form-urlencoded' + + extra_kw['body'] = body + extra_kw['headers'] = {'Content-Type': content_type} + + extra_kw['headers'].update(headers) + extra_kw.update(urlopen_kw) + + return self.urlopen(method, url, **extra_kw) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/response.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/response.py new file mode 100644 index 00000000..d3e5a1e6 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/response.py @@ -0,0 +1,626 @@ +from __future__ import absolute_import +from contextlib import contextmanager +import zlib +import io +import logging +from socket import timeout as SocketTimeout +from socket import error as SocketError + +from ._collections import HTTPHeaderDict +from .exceptions import ( + BodyNotHttplibCompatible, ProtocolError, DecodeError, ReadTimeoutError, + ResponseNotChunked, IncompleteRead, InvalidHeader +) +from .packages.six import string_types as basestring, binary_type, PY3 +from .packages.six.moves import http_client as httplib +from .connection import HTTPException, BaseSSLError +from .util.response import is_fp_closed, is_response_to_head + +log = logging.getLogger(__name__) + + +class DeflateDecoder(object): + + def __init__(self): + self._first_try = True + self._data = binary_type() + self._obj = zlib.decompressobj() + + def __getattr__(self, name): + return getattr(self._obj, name) + + def decompress(self, data): + if not data: + return data + + if not self._first_try: + return self._obj.decompress(data) + + self._data += data + try: + decompressed = self._obj.decompress(data) + if decompressed: + self._first_try = False + self._data = None + return decompressed + except zlib.error: + self._first_try = False + self._obj = zlib.decompressobj(-zlib.MAX_WBITS) + try: + return self.decompress(self._data) + finally: + self._data = None + + +class GzipDecoder(object): + + def __init__(self): + self._obj = zlib.decompressobj(16 + zlib.MAX_WBITS) + + def __getattr__(self, name): + return getattr(self._obj, name) + + def decompress(self, data): + if not data: + return data + return self._obj.decompress(data) + + +def _get_decoder(mode): + if mode == 'gzip': + return GzipDecoder() + + return DeflateDecoder() + + +class HTTPResponse(io.IOBase): + """ + HTTP Response container. + + Backwards-compatible to httplib's HTTPResponse but the response ``body`` is + loaded and decoded on-demand when the ``data`` property is accessed. This + class is also compatible with the Python standard library's :mod:`io` + module, and can hence be treated as a readable object in the context of that + framework. + + Extra parameters for behaviour not present in httplib.HTTPResponse: + + :param preload_content: + If True, the response's body will be preloaded during construction. + + :param decode_content: + If True, attempts to decode specific content-encoding's based on headers + (like 'gzip' and 'deflate') will be skipped and raw data will be used + instead. + + :param original_response: + When this HTTPResponse wrapper is generated from an httplib.HTTPResponse + object, it's convenient to include the original for debug purposes. It's + otherwise unused. + + :param retries: + The retries contains the last :class:`~urllib3.util.retry.Retry` that + was used during the request. + + :param enforce_content_length: + Enforce content length checking. Body returned by server must match + value of Content-Length header, if present. Otherwise, raise error. + """ + + CONTENT_DECODERS = ['gzip', 'deflate'] + REDIRECT_STATUSES = [301, 302, 303, 307, 308] + + def __init__(self, body='', headers=None, status=0, version=0, reason=None, + strict=0, preload_content=True, decode_content=True, + original_response=None, pool=None, connection=None, + retries=None, enforce_content_length=False, request_method=None): + + if isinstance(headers, HTTPHeaderDict): + self.headers = headers + else: + self.headers = HTTPHeaderDict(headers) + self.status = status + self.version = version + self.reason = reason + self.strict = strict + self.decode_content = decode_content + self.retries = retries + self.enforce_content_length = enforce_content_length + + self._decoder = None + self._body = None + self._fp = None + self._original_response = original_response + self._fp_bytes_read = 0 + + if body and isinstance(body, (basestring, binary_type)): + self._body = body + + self._pool = pool + self._connection = connection + + if hasattr(body, 'read'): + self._fp = body + + # Are we using the chunked-style of transfer encoding? + self.chunked = False + self.chunk_left = None + tr_enc = self.headers.get('transfer-encoding', '').lower() + # Don't incur the penalty of creating a list and then discarding it + encodings = (enc.strip() for enc in tr_enc.split(",")) + if "chunked" in encodings: + self.chunked = True + + # Determine length of response + self.length_remaining = self._init_length(request_method) + + # If requested, preload the body. + if preload_content and not self._body: + self._body = self.read(decode_content=decode_content) + + def get_redirect_location(self): + """ + Should we redirect and where to? + + :returns: Truthy redirect location string if we got a redirect status + code and valid location. ``None`` if redirect status and no + location. ``False`` if not a redirect status code. + """ + if self.status in self.REDIRECT_STATUSES: + return self.headers.get('location') + + return False + + def release_conn(self): + if not self._pool or not self._connection: + return + + self._pool._put_conn(self._connection) + self._connection = None + + @property + def data(self): + # For backwords-compat with earlier urllib3 0.4 and earlier. + if self._body: + return self._body + + if self._fp: + return self.read(cache_content=True) + + @property + def connection(self): + return self._connection + + def tell(self): + """ + Obtain the number of bytes pulled over the wire so far. May differ from + the amount of content returned by :meth:``HTTPResponse.read`` if bytes + are encoded on the wire (e.g, compressed). + """ + return self._fp_bytes_read + + def _init_length(self, request_method): + """ + Set initial length value for Response content if available. + """ + length = self.headers.get('content-length') + + if length is not None and self.chunked: + # This Response will fail with an IncompleteRead if it can't be + # received as chunked. This method falls back to attempt reading + # the response before raising an exception. + log.warning("Received response with both Content-Length and " + "Transfer-Encoding set. This is expressly forbidden " + "by RFC 7230 sec 3.3.2. Ignoring Content-Length and " + "attempting to process response as Transfer-Encoding: " + "chunked.") + return None + + elif length is not None: + try: + # RFC 7230 section 3.3.2 specifies multiple content lengths can + # be sent in a single Content-Length header + # (e.g. Content-Length: 42, 42). This line ensures the values + # are all valid ints and that as long as the `set` length is 1, + # all values are the same. Otherwise, the header is invalid. + lengths = set([int(val) for val in length.split(',')]) + if len(lengths) > 1: + raise InvalidHeader("Content-Length contained multiple " + "unmatching values (%s)" % length) + length = lengths.pop() + except ValueError: + length = None + else: + if length < 0: + length = None + + # Convert status to int for comparison + # In some cases, httplib returns a status of "_UNKNOWN" + try: + status = int(self.status) + except ValueError: + status = 0 + + # Check for responses that shouldn't include a body + if status in (204, 304) or 100 <= status < 200 or request_method == 'HEAD': + length = 0 + + return length + + def _init_decoder(self): + """ + Set-up the _decoder attribute if necessary. + """ + # Note: content-encoding value should be case-insensitive, per RFC 7230 + # Section 3.2 + content_encoding = self.headers.get('content-encoding', '').lower() + if self._decoder is None and content_encoding in self.CONTENT_DECODERS: + self._decoder = _get_decoder(content_encoding) + + def _decode(self, data, decode_content, flush_decoder): + """ + Decode the data passed in and potentially flush the decoder. + """ + try: + if decode_content and self._decoder: + data = self._decoder.decompress(data) + except (IOError, zlib.error) as e: + content_encoding = self.headers.get('content-encoding', '').lower() + raise DecodeError( + "Received response with content-encoding: %s, but " + "failed to decode it." % content_encoding, e) + + if flush_decoder and decode_content: + data += self._flush_decoder() + + return data + + def _flush_decoder(self): + """ + Flushes the decoder. Should only be called if the decoder is actually + being used. + """ + if self._decoder: + buf = self._decoder.decompress(b'') + return buf + self._decoder.flush() + + return b'' + + @contextmanager + def _error_catcher(self): + """ + Catch low-level python exceptions, instead re-raising urllib3 + variants, so that low-level exceptions are not leaked in the + high-level api. + + On exit, release the connection back to the pool. + """ + clean_exit = False + + try: + try: + yield + + except SocketTimeout: + # FIXME: Ideally we'd like to include the url in the ReadTimeoutError but + # there is yet no clean way to get at it from this context. + raise ReadTimeoutError(self._pool, None, 'Read timed out.') + + except BaseSSLError as e: + # FIXME: Is there a better way to differentiate between SSLErrors? + if 'read operation timed out' not in str(e): # Defensive: + # This shouldn't happen but just in case we're missing an edge + # case, let's avoid swallowing SSL errors. + raise + + raise ReadTimeoutError(self._pool, None, 'Read timed out.') + + except (HTTPException, SocketError) as e: + # This includes IncompleteRead. + raise ProtocolError('Connection broken: %r' % e, e) + + # If no exception is thrown, we should avoid cleaning up + # unnecessarily. + clean_exit = True + finally: + # If we didn't terminate cleanly, we need to throw away our + # connection. + if not clean_exit: + # The response may not be closed but we're not going to use it + # anymore so close it now to ensure that the connection is + # released back to the pool. + if self._original_response: + self._original_response.close() + + # Closing the response may not actually be sufficient to close + # everything, so if we have a hold of the connection close that + # too. + if self._connection: + self._connection.close() + + # If we hold the original response but it's closed now, we should + # return the connection back to the pool. + if self._original_response and self._original_response.isclosed(): + self.release_conn() + + def read(self, amt=None, decode_content=None, cache_content=False): + """ + Similar to :meth:`httplib.HTTPResponse.read`, but with two additional + parameters: ``decode_content`` and ``cache_content``. + + :param amt: + How much of the content to read. If specified, caching is skipped + because it doesn't make sense to cache partial content as the full + response. + + :param decode_content: + If True, will attempt to decode the body based on the + 'content-encoding' header. + + :param cache_content: + If True, will save the returned data such that the same result is + returned despite of the state of the underlying file object. This + is useful if you want the ``.data`` property to continue working + after having ``.read()`` the file object. (Overridden if ``amt`` is + set.) + """ + self._init_decoder() + if decode_content is None: + decode_content = self.decode_content + + if self._fp is None: + return + + flush_decoder = False + data = None + + with self._error_catcher(): + if amt is None: + # cStringIO doesn't like amt=None + data = self._fp.read() + flush_decoder = True + else: + cache_content = False + data = self._fp.read(amt) + if amt != 0 and not data: # Platform-specific: Buggy versions of Python. + # Close the connection when no data is returned + # + # This is redundant to what httplib/http.client _should_ + # already do. However, versions of python released before + # December 15, 2012 (http://bugs.python.org/issue16298) do + # not properly close the connection in all cases. There is + # no harm in redundantly calling close. + self._fp.close() + flush_decoder = True + if self.enforce_content_length and self.length_remaining not in (0, None): + # This is an edge case that httplib failed to cover due + # to concerns of backward compatibility. We're + # addressing it here to make sure IncompleteRead is + # raised during streaming, so all calls with incorrect + # Content-Length are caught. + raise IncompleteRead(self._fp_bytes_read, self.length_remaining) + + if data: + self._fp_bytes_read += len(data) + if self.length_remaining is not None: + self.length_remaining -= len(data) + + data = self._decode(data, decode_content, flush_decoder) + + if cache_content: + self._body = data + + return data + + def stream(self, amt=2**16, decode_content=None): + """ + A generator wrapper for the read() method. A call will block until + ``amt`` bytes have been read from the connection or until the + connection is closed. + + :param amt: + How much of the content to read. The generator will return up to + much data per iteration, but may return less. This is particularly + likely when using compressed data. However, the empty string will + never be returned. + + :param decode_content: + If True, will attempt to decode the body based on the + 'content-encoding' header. + """ + if self.chunked and self.supports_chunked_reads(): + for line in self.read_chunked(amt, decode_content=decode_content): + yield line + else: + while not is_fp_closed(self._fp): + data = self.read(amt=amt, decode_content=decode_content) + + if data: + yield data + + @classmethod + def from_httplib(ResponseCls, r, **response_kw): + """ + Given an :class:`httplib.HTTPResponse` instance ``r``, return a + corresponding :class:`urllib3.response.HTTPResponse` object. + + Remaining parameters are passed to the HTTPResponse constructor, along + with ``original_response=r``. + """ + headers = r.msg + + if not isinstance(headers, HTTPHeaderDict): + if PY3: # Python 3 + headers = HTTPHeaderDict(headers.items()) + else: # Python 2 + headers = HTTPHeaderDict.from_httplib(headers) + + # HTTPResponse objects in Python 3 don't have a .strict attribute + strict = getattr(r, 'strict', 0) + resp = ResponseCls(body=r, + headers=headers, + status=r.status, + version=r.version, + reason=r.reason, + strict=strict, + original_response=r, + **response_kw) + return resp + + # Backwards-compatibility methods for httplib.HTTPResponse + def getheaders(self): + return self.headers + + def getheader(self, name, default=None): + return self.headers.get(name, default) + + # Backwards compatibility for http.cookiejar + def info(self): + return self.headers + + # Overrides from io.IOBase + def close(self): + if not self.closed: + self._fp.close() + + if self._connection: + self._connection.close() + + @property + def closed(self): + if self._fp is None: + return True + elif hasattr(self._fp, 'isclosed'): + return self._fp.isclosed() + elif hasattr(self._fp, 'closed'): + return self._fp.closed + else: + return True + + def fileno(self): + if self._fp is None: + raise IOError("HTTPResponse has no file to get a fileno from") + elif hasattr(self._fp, "fileno"): + return self._fp.fileno() + else: + raise IOError("The file-like object this HTTPResponse is wrapped " + "around has no file descriptor") + + def flush(self): + if self._fp is not None and hasattr(self._fp, 'flush'): + return self._fp.flush() + + def readable(self): + # This method is required for `io` module compatibility. + return True + + def readinto(self, b): + # This method is required for `io` module compatibility. + temp = self.read(len(b)) + if len(temp) == 0: + return 0 + else: + b[:len(temp)] = temp + return len(temp) + + def supports_chunked_reads(self): + """ + Checks if the underlying file-like object looks like a + httplib.HTTPResponse object. We do this by testing for the fp + attribute. If it is present we assume it returns raw chunks as + processed by read_chunked(). + """ + return hasattr(self._fp, 'fp') + + def _update_chunk_length(self): + # First, we'll figure out length of a chunk and then + # we'll try to read it from socket. + if self.chunk_left is not None: + return + line = self._fp.fp.readline() + line = line.split(b';', 1)[0] + try: + self.chunk_left = int(line, 16) + except ValueError: + # Invalid chunked protocol response, abort. + self.close() + raise httplib.IncompleteRead(line) + + def _handle_chunk(self, amt): + returned_chunk = None + if amt is None: + chunk = self._fp._safe_read(self.chunk_left) + returned_chunk = chunk + self._fp._safe_read(2) # Toss the CRLF at the end of the chunk. + self.chunk_left = None + elif amt < self.chunk_left: + value = self._fp._safe_read(amt) + self.chunk_left = self.chunk_left - amt + returned_chunk = value + elif amt == self.chunk_left: + value = self._fp._safe_read(amt) + self._fp._safe_read(2) # Toss the CRLF at the end of the chunk. + self.chunk_left = None + returned_chunk = value + else: # amt > self.chunk_left + returned_chunk = self._fp._safe_read(self.chunk_left) + self._fp._safe_read(2) # Toss the CRLF at the end of the chunk. + self.chunk_left = None + return returned_chunk + + def read_chunked(self, amt=None, decode_content=None): + """ + Similar to :meth:`HTTPResponse.read`, but with an additional + parameter: ``decode_content``. + + :param decode_content: + If True, will attempt to decode the body based on the + 'content-encoding' header. + """ + self._init_decoder() + # FIXME: Rewrite this method and make it a class with a better structured logic. + if not self.chunked: + raise ResponseNotChunked( + "Response is not chunked. " + "Header 'transfer-encoding: chunked' is missing.") + if not self.supports_chunked_reads(): + raise BodyNotHttplibCompatible( + "Body should be httplib.HTTPResponse like. " + "It should have have an fp attribute which returns raw chunks.") + + # Don't bother reading the body of a HEAD request. + if self._original_response and is_response_to_head(self._original_response): + self._original_response.close() + return + + with self._error_catcher(): + while True: + self._update_chunk_length() + if self.chunk_left == 0: + break + chunk = self._handle_chunk(amt) + decoded = self._decode(chunk, decode_content=decode_content, + flush_decoder=False) + if decoded: + yield decoded + + if decode_content: + # On CPython and PyPy, we should never need to flush the + # decoder. However, on Jython we *might* need to, so + # lets defensively do it anyway. + decoded = self._flush_decoder() + if decoded: # Platform-specific: Jython. + yield decoded + + # Chunk content ends with \r\n: discard it. + while True: + line = self._fp.fp.readline() + if not line: + # Some sites may not end with '\r\n'. + break + if line == b'\r\n': + break + + # We read everything; close the "file". + if self._original_response: + self._original_response.close() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/__init__.py new file mode 100644 index 00000000..2f2770b6 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/__init__.py @@ -0,0 +1,54 @@ +from __future__ import absolute_import +# For backwards compatibility, provide imports that used to be here. +from .connection import is_connection_dropped +from .request import make_headers +from .response import is_fp_closed +from .ssl_ import ( + SSLContext, + HAS_SNI, + IS_PYOPENSSL, + IS_SECURETRANSPORT, + assert_fingerprint, + resolve_cert_reqs, + resolve_ssl_version, + ssl_wrap_socket, +) +from .timeout import ( + current_time, + Timeout, +) + +from .retry import Retry +from .url import ( + get_host, + parse_url, + split_first, + Url, +) +from .wait import ( + wait_for_read, + wait_for_write +) + +__all__ = ( + 'HAS_SNI', + 'IS_PYOPENSSL', + 'IS_SECURETRANSPORT', + 'SSLContext', + 'Retry', + 'Timeout', + 'Url', + 'assert_fingerprint', + 'current_time', + 'is_connection_dropped', + 'is_fp_closed', + 'get_host', + 'parse_url', + 'make_headers', + 'resolve_cert_reqs', + 'resolve_ssl_version', + 'split_first', + 'ssl_wrap_socket', + 'wait_for_read', + 'wait_for_write' +) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/connection.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/connection.py new file mode 100644 index 00000000..bf699cfd --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/connection.py @@ -0,0 +1,130 @@ +from __future__ import absolute_import +import socket +from .wait import wait_for_read +from .selectors import HAS_SELECT, SelectorError + + +def is_connection_dropped(conn): # Platform-specific + """ + Returns True if the connection is dropped and should be closed. + + :param conn: + :class:`httplib.HTTPConnection` object. + + Note: For platforms like AppEngine, this will always return ``False`` to + let the platform handle connection recycling transparently for us. + """ + sock = getattr(conn, 'sock', False) + if sock is False: # Platform-specific: AppEngine + return False + if sock is None: # Connection already closed (such as by httplib). + return True + + if not HAS_SELECT: + return False + + try: + return bool(wait_for_read(sock, timeout=0.0)) + except SelectorError: + return True + + +# This function is copied from socket.py in the Python 2.7 standard +# library test suite. Added to its signature is only `socket_options`. +# One additional modification is that we avoid binding to IPv6 servers +# discovered in DNS if the system doesn't have IPv6 functionality. +def create_connection(address, timeout=socket._GLOBAL_DEFAULT_TIMEOUT, + source_address=None, socket_options=None): + """Connect to *address* and return the socket object. + + Convenience function. Connect to *address* (a 2-tuple ``(host, + port)``) and return the socket object. Passing the optional + *timeout* parameter will set the timeout on the socket instance + before attempting to connect. If no *timeout* is supplied, the + global default timeout setting returned by :func:`getdefaulttimeout` + is used. If *source_address* is set it must be a tuple of (host, port) + for the socket to bind as a source address before making the connection. + An host of '' or port 0 tells the OS to use the default. + """ + + host, port = address + if host.startswith('['): + host = host.strip('[]') + err = None + + # Using the value from allowed_gai_family() in the context of getaddrinfo lets + # us select whether to work with IPv4 DNS records, IPv6 records, or both. + # The original create_connection function always returns all records. + family = allowed_gai_family() + + for res in socket.getaddrinfo(host, port, family, socket.SOCK_STREAM): + af, socktype, proto, canonname, sa = res + sock = None + try: + sock = socket.socket(af, socktype, proto) + + # If provided, set socket level options before connecting. + _set_socket_options(sock, socket_options) + + if timeout is not socket._GLOBAL_DEFAULT_TIMEOUT: + sock.settimeout(timeout) + if source_address: + sock.bind(source_address) + sock.connect(sa) + return sock + + except socket.error as e: + err = e + if sock is not None: + sock.close() + sock = None + + if err is not None: + raise err + + raise socket.error("getaddrinfo returns an empty list") + + +def _set_socket_options(sock, options): + if options is None: + return + + for opt in options: + sock.setsockopt(*opt) + + +def allowed_gai_family(): + """This function is designed to work in the context of + getaddrinfo, where family=socket.AF_UNSPEC is the default and + will perform a DNS search for both IPv6 and IPv4 records.""" + + family = socket.AF_INET + if HAS_IPV6: + family = socket.AF_UNSPEC + return family + + +def _has_ipv6(host): + """ Returns True if the system can bind an IPv6 address. """ + sock = None + has_ipv6 = False + + if socket.has_ipv6: + # has_ipv6 returns true if cPython was compiled with IPv6 support. + # It does not tell us if the system has IPv6 support enabled. To + # determine that we must bind to an IPv6 address. + # https://github.com/shazow/urllib3/pull/611 + # https://bugs.python.org/issue658327 + try: + sock = socket.socket(socket.AF_INET6) + sock.bind((host, 0)) + has_ipv6 = True + except Exception: + pass + + if sock: + sock.close() + return has_ipv6 + + +HAS_IPV6 = _has_ipv6('::1') diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/request.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/request.py new file mode 100644 index 00000000..3ddfcd55 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/request.py @@ -0,0 +1,118 @@ +from __future__ import absolute_import +from base64 import b64encode + +from ..packages.six import b, integer_types +from ..exceptions import UnrewindableBodyError + +ACCEPT_ENCODING = 'gzip,deflate' +_FAILEDTELL = object() + + +def make_headers(keep_alive=None, accept_encoding=None, user_agent=None, + basic_auth=None, proxy_basic_auth=None, disable_cache=None): + """ + Shortcuts for generating request headers. + + :param keep_alive: + If ``True``, adds 'connection: keep-alive' header. + + :param accept_encoding: + Can be a boolean, list, or string. + ``True`` translates to 'gzip,deflate'. + List will get joined by comma. + String will be used as provided. + + :param user_agent: + String representing the user-agent you want, such as + "python-urllib3/0.6" + + :param basic_auth: + Colon-separated username:password string for 'authorization: basic ...' + auth header. + + :param proxy_basic_auth: + Colon-separated username:password string for 'proxy-authorization: basic ...' + auth header. + + :param disable_cache: + If ``True``, adds 'cache-control: no-cache' header. + + Example:: + + >>> make_headers(keep_alive=True, user_agent="Batman/1.0") + {'connection': 'keep-alive', 'user-agent': 'Batman/1.0'} + >>> make_headers(accept_encoding=True) + {'accept-encoding': 'gzip,deflate'} + """ + headers = {} + if accept_encoding: + if isinstance(accept_encoding, str): + pass + elif isinstance(accept_encoding, list): + accept_encoding = ','.join(accept_encoding) + else: + accept_encoding = ACCEPT_ENCODING + headers['accept-encoding'] = accept_encoding + + if user_agent: + headers['user-agent'] = user_agent + + if keep_alive: + headers['connection'] = 'keep-alive' + + if basic_auth: + headers['authorization'] = 'Basic ' + \ + b64encode(b(basic_auth)).decode('utf-8') + + if proxy_basic_auth: + headers['proxy-authorization'] = 'Basic ' + \ + b64encode(b(proxy_basic_auth)).decode('utf-8') + + if disable_cache: + headers['cache-control'] = 'no-cache' + + return headers + + +def set_file_position(body, pos): + """ + If a position is provided, move file to that point. + Otherwise, we'll attempt to record a position for future use. + """ + if pos is not None: + rewind_body(body, pos) + elif getattr(body, 'tell', None) is not None: + try: + pos = body.tell() + except (IOError, OSError): + # This differentiates from None, allowing us to catch + # a failed `tell()` later when trying to rewind the body. + pos = _FAILEDTELL + + return pos + + +def rewind_body(body, body_pos): + """ + Attempt to rewind body to a certain position. + Primarily used for request redirects and retries. + + :param body: + File-like object that supports seek. + + :param int pos: + Position to seek to in file. + """ + body_seek = getattr(body, 'seek', None) + if body_seek is not None and isinstance(body_pos, integer_types): + try: + body_seek(body_pos) + except (IOError, OSError): + raise UnrewindableBodyError("An error occurred when rewinding request " + "body for redirect/retry.") + elif body_pos is _FAILEDTELL: + raise UnrewindableBodyError("Unable to record file position for rewinding " + "request body during a redirect/retry.") + else: + raise ValueError("body_pos must be of type integer, " + "instead it was %s." % type(body_pos)) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/response.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/response.py new file mode 100644 index 00000000..67cf730a --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/response.py @@ -0,0 +1,81 @@ +from __future__ import absolute_import +from ..packages.six.moves import http_client as httplib + +from ..exceptions import HeaderParsingError + + +def is_fp_closed(obj): + """ + Checks whether a given file-like object is closed. + + :param obj: + The file-like object to check. + """ + + try: + # Check `isclosed()` first, in case Python3 doesn't set `closed`. + # GH Issue #928 + return obj.isclosed() + except AttributeError: + pass + + try: + # Check via the official file-like-object way. + return obj.closed + except AttributeError: + pass + + try: + # Check if the object is a container for another file-like object that + # gets released on exhaustion (e.g. HTTPResponse). + return obj.fp is None + except AttributeError: + pass + + raise ValueError("Unable to determine whether fp is closed.") + + +def assert_header_parsing(headers): + """ + Asserts whether all headers have been successfully parsed. + Extracts encountered errors from the result of parsing headers. + + Only works on Python 3. + + :param headers: Headers to verify. + :type headers: `httplib.HTTPMessage`. + + :raises urllib3.exceptions.HeaderParsingError: + If parsing errors are found. + """ + + # This will fail silently if we pass in the wrong kind of parameter. + # To make debugging easier add an explicit check. + if not isinstance(headers, httplib.HTTPMessage): + raise TypeError('expected httplib.Message, got {0}.'.format( + type(headers))) + + defects = getattr(headers, 'defects', None) + get_payload = getattr(headers, 'get_payload', None) + + unparsed_data = None + if get_payload: # Platform-specific: Python 3. + unparsed_data = get_payload() + + if defects or unparsed_data: + raise HeaderParsingError(defects=defects, unparsed_data=unparsed_data) + + +def is_response_to_head(response): + """ + Checks whether the request of a response has been a HEAD-request. + Handles the quirks of AppEngine. + + :param conn: + :type conn: :class:`httplib.HTTPResponse` + """ + # FIXME: Can we do this somehow without accessing private httplib _method? + method = response._method + if isinstance(method, int): # Platform-specific: Appengine + return method == 3 + return method.upper() == 'HEAD' diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/retry.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/retry.py new file mode 100644 index 00000000..c603cb49 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/retry.py @@ -0,0 +1,401 @@ +from __future__ import absolute_import +import time +import logging +from collections import namedtuple +from itertools import takewhile +import email +import re + +from ..exceptions import ( + ConnectTimeoutError, + MaxRetryError, + ProtocolError, + ReadTimeoutError, + ResponseError, + InvalidHeader, +) +from ..packages import six + + +log = logging.getLogger(__name__) + +# Data structure for representing the metadata of requests that result in a retry. +RequestHistory = namedtuple('RequestHistory', ["method", "url", "error", + "status", "redirect_location"]) + + +class Retry(object): + """ Retry configuration. + + Each retry attempt will create a new Retry object with updated values, so + they can be safely reused. + + Retries can be defined as a default for a pool:: + + retries = Retry(connect=5, read=2, redirect=5) + http = PoolManager(retries=retries) + response = http.request('GET', 'http://example.com/') + + Or per-request (which overrides the default for the pool):: + + response = http.request('GET', 'http://example.com/', retries=Retry(10)) + + Retries can be disabled by passing ``False``:: + + response = http.request('GET', 'http://example.com/', retries=False) + + Errors will be wrapped in :class:`~urllib3.exceptions.MaxRetryError` unless + retries are disabled, in which case the causing exception will be raised. + + :param int total: + Total number of retries to allow. Takes precedence over other counts. + + Set to ``None`` to remove this constraint and fall back on other + counts. It's a good idea to set this to some sensibly-high value to + account for unexpected edge cases and avoid infinite retry loops. + + Set to ``0`` to fail on the first retry. + + Set to ``False`` to disable and imply ``raise_on_redirect=False``. + + :param int connect: + How many connection-related errors to retry on. + + These are errors raised before the request is sent to the remote server, + which we assume has not triggered the server to process the request. + + Set to ``0`` to fail on the first retry of this type. + + :param int read: + How many times to retry on read errors. + + These errors are raised after the request was sent to the server, so the + request may have side-effects. + + Set to ``0`` to fail on the first retry of this type. + + :param int redirect: + How many redirects to perform. Limit this to avoid infinite redirect + loops. + + A redirect is a HTTP response with a status code 301, 302, 303, 307 or + 308. + + Set to ``0`` to fail on the first retry of this type. + + Set to ``False`` to disable and imply ``raise_on_redirect=False``. + + :param int status: + How many times to retry on bad status codes. + + These are retries made on responses, where status code matches + ``status_forcelist``. + + Set to ``0`` to fail on the first retry of this type. + + :param iterable method_whitelist: + Set of uppercased HTTP method verbs that we should retry on. + + By default, we only retry on methods which are considered to be + idempotent (multiple requests with the same parameters end with the + same state). See :attr:`Retry.DEFAULT_METHOD_WHITELIST`. + + Set to a ``False`` value to retry on any verb. + + :param iterable status_forcelist: + A set of integer HTTP status codes that we should force a retry on. + A retry is initiated if the request method is in ``method_whitelist`` + and the response status code is in ``status_forcelist``. + + By default, this is disabled with ``None``. + + :param float backoff_factor: + A backoff factor to apply between attempts after the second try + (most errors are resolved immediately by a second try without a + delay). urllib3 will sleep for:: + + {backoff factor} * (2 ^ ({number of total retries} - 1)) + + seconds. If the backoff_factor is 0.1, then :func:`.sleep` will sleep + for [0.0s, 0.2s, 0.4s, ...] between retries. It will never be longer + than :attr:`Retry.BACKOFF_MAX`. + + By default, backoff is disabled (set to 0). + + :param bool raise_on_redirect: Whether, if the number of redirects is + exhausted, to raise a MaxRetryError, or to return a response with a + response code in the 3xx range. + + :param bool raise_on_status: Similar meaning to ``raise_on_redirect``: + whether we should raise an exception, or return a response, + if status falls in ``status_forcelist`` range and retries have + been exhausted. + + :param tuple history: The history of the request encountered during + each call to :meth:`~Retry.increment`. The list is in the order + the requests occurred. Each list item is of class :class:`RequestHistory`. + + :param bool respect_retry_after_header: + Whether to respect Retry-After header on status codes defined as + :attr:`Retry.RETRY_AFTER_STATUS_CODES` or not. + + """ + + DEFAULT_METHOD_WHITELIST = frozenset([ + 'HEAD', 'GET', 'PUT', 'DELETE', 'OPTIONS', 'TRACE']) + + RETRY_AFTER_STATUS_CODES = frozenset([413, 429, 503]) + + #: Maximum backoff time. + BACKOFF_MAX = 120 + + def __init__(self, total=10, connect=None, read=None, redirect=None, status=None, + method_whitelist=DEFAULT_METHOD_WHITELIST, status_forcelist=None, + backoff_factor=0, raise_on_redirect=True, raise_on_status=True, + history=None, respect_retry_after_header=True): + + self.total = total + self.connect = connect + self.read = read + self.status = status + + if redirect is False or total is False: + redirect = 0 + raise_on_redirect = False + + self.redirect = redirect + self.status_forcelist = status_forcelist or set() + self.method_whitelist = method_whitelist + self.backoff_factor = backoff_factor + self.raise_on_redirect = raise_on_redirect + self.raise_on_status = raise_on_status + self.history = history or tuple() + self.respect_retry_after_header = respect_retry_after_header + + def new(self, **kw): + params = dict( + total=self.total, + connect=self.connect, read=self.read, redirect=self.redirect, status=self.status, + method_whitelist=self.method_whitelist, + status_forcelist=self.status_forcelist, + backoff_factor=self.backoff_factor, + raise_on_redirect=self.raise_on_redirect, + raise_on_status=self.raise_on_status, + history=self.history, + ) + params.update(kw) + return type(self)(**params) + + @classmethod + def from_int(cls, retries, redirect=True, default=None): + """ Backwards-compatibility for the old retries format.""" + if retries is None: + retries = default if default is not None else cls.DEFAULT + + if isinstance(retries, Retry): + return retries + + redirect = bool(redirect) and None + new_retries = cls(retries, redirect=redirect) + log.debug("Converted retries value: %r -> %r", retries, new_retries) + return new_retries + + def get_backoff_time(self): + """ Formula for computing the current backoff + + :rtype: float + """ + # We want to consider only the last consecutive errors sequence (Ignore redirects). + consecutive_errors_len = len(list(takewhile(lambda x: x.redirect_location is None, + reversed(self.history)))) + if consecutive_errors_len <= 1: + return 0 + + backoff_value = self.backoff_factor * (2 ** (consecutive_errors_len - 1)) + return min(self.BACKOFF_MAX, backoff_value) + + def parse_retry_after(self, retry_after): + # Whitespace: https://tools.ietf.org/html/rfc7230#section-3.2.4 + if re.match(r"^\s*[0-9]+\s*$", retry_after): + seconds = int(retry_after) + else: + retry_date_tuple = email.utils.parsedate(retry_after) + if retry_date_tuple is None: + raise InvalidHeader("Invalid Retry-After header: %s" % retry_after) + retry_date = time.mktime(retry_date_tuple) + seconds = retry_date - time.time() + + if seconds < 0: + seconds = 0 + + return seconds + + def get_retry_after(self, response): + """ Get the value of Retry-After in seconds. """ + + retry_after = response.getheader("Retry-After") + + if retry_after is None: + return None + + return self.parse_retry_after(retry_after) + + def sleep_for_retry(self, response=None): + retry_after = self.get_retry_after(response) + if retry_after: + time.sleep(retry_after) + return True + + return False + + def _sleep_backoff(self): + backoff = self.get_backoff_time() + if backoff <= 0: + return + time.sleep(backoff) + + def sleep(self, response=None): + """ Sleep between retry attempts. + + This method will respect a server's ``Retry-After`` response header + and sleep the duration of the time requested. If that is not present, it + will use an exponential backoff. By default, the backoff factor is 0 and + this method will return immediately. + """ + + if response: + slept = self.sleep_for_retry(response) + if slept: + return + + self._sleep_backoff() + + def _is_connection_error(self, err): + """ Errors when we're fairly sure that the server did not receive the + request, so it should be safe to retry. + """ + return isinstance(err, ConnectTimeoutError) + + def _is_read_error(self, err): + """ Errors that occur after the request has been started, so we should + assume that the server began processing it. + """ + return isinstance(err, (ReadTimeoutError, ProtocolError)) + + def _is_method_retryable(self, method): + """ Checks if a given HTTP method should be retried upon, depending if + it is included on the method whitelist. + """ + if self.method_whitelist and method.upper() not in self.method_whitelist: + return False + + return True + + def is_retry(self, method, status_code, has_retry_after=False): + """ Is this method/status code retryable? (Based on whitelists and control + variables such as the number of total retries to allow, whether to + respect the Retry-After header, whether this header is present, and + whether the returned status code is on the list of status codes to + be retried upon on the presence of the aforementioned header) + """ + if not self._is_method_retryable(method): + return False + + if self.status_forcelist and status_code in self.status_forcelist: + return True + + return (self.total and self.respect_retry_after_header and + has_retry_after and (status_code in self.RETRY_AFTER_STATUS_CODES)) + + def is_exhausted(self): + """ Are we out of retries? """ + retry_counts = (self.total, self.connect, self.read, self.redirect, self.status) + retry_counts = list(filter(None, retry_counts)) + if not retry_counts: + return False + + return min(retry_counts) < 0 + + def increment(self, method=None, url=None, response=None, error=None, + _pool=None, _stacktrace=None): + """ Return a new Retry object with incremented retry counters. + + :param response: A response object, or None, if the server did not + return a response. + :type response: :class:`~urllib3.response.HTTPResponse` + :param Exception error: An error encountered during the request, or + None if the response was received successfully. + + :return: A new ``Retry`` object. + """ + if self.total is False and error: + # Disabled, indicate to re-raise the error. + raise six.reraise(type(error), error, _stacktrace) + + total = self.total + if total is not None: + total -= 1 + + connect = self.connect + read = self.read + redirect = self.redirect + status_count = self.status + cause = 'unknown' + status = None + redirect_location = None + + if error and self._is_connection_error(error): + # Connect retry? + if connect is False: + raise six.reraise(type(error), error, _stacktrace) + elif connect is not None: + connect -= 1 + + elif error and self._is_read_error(error): + # Read retry? + if read is False or not self._is_method_retryable(method): + raise six.reraise(type(error), error, _stacktrace) + elif read is not None: + read -= 1 + + elif response and response.get_redirect_location(): + # Redirect retry? + if redirect is not None: + redirect -= 1 + cause = 'too many redirects' + redirect_location = response.get_redirect_location() + status = response.status + + else: + # Incrementing because of a server error like a 500 in + # status_forcelist and a the given method is in the whitelist + cause = ResponseError.GENERIC_ERROR + if response and response.status: + if status_count is not None: + status_count -= 1 + cause = ResponseError.SPECIFIC_ERROR.format( + status_code=response.status) + status = response.status + + history = self.history + (RequestHistory(method, url, error, status, redirect_location),) + + new_retry = self.new( + total=total, + connect=connect, read=read, redirect=redirect, status=status_count, + history=history) + + if new_retry.is_exhausted(): + raise MaxRetryError(_pool, url, error or ResponseError(cause)) + + log.debug("Incremented Retry for (url='%s'): %r", url, new_retry) + + return new_retry + + def __repr__(self): + return ('{cls.__name__}(total={self.total}, connect={self.connect}, ' + 'read={self.read}, redirect={self.redirect}, status={self.status})').format( + cls=type(self), self=self) + + +# For backwards compatibility (equivalent to pre-v1.9): +Retry.DEFAULT = Retry(3) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/selectors.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/selectors.py new file mode 100644 index 00000000..d75cb266 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/selectors.py @@ -0,0 +1,581 @@ +# Backport of selectors.py from Python 3.5+ to support Python < 3.4 +# Also has the behavior specified in PEP 475 which is to retry syscalls +# in the case of an EINTR error. This module is required because selectors34 +# does not follow this behavior and instead returns that no dile descriptor +# events have occurred rather than retry the syscall. The decision to drop +# support for select.devpoll is made to maintain 100% test coverage. + +import errno +import math +import select +import socket +import sys +import time +from collections import namedtuple, Mapping + +try: + monotonic = time.monotonic +except (AttributeError, ImportError): # Python 3.3< + monotonic = time.time + +EVENT_READ = (1 << 0) +EVENT_WRITE = (1 << 1) + +HAS_SELECT = True # Variable that shows whether the platform has a selector. +_SYSCALL_SENTINEL = object() # Sentinel in case a system call returns None. +_DEFAULT_SELECTOR = None + + +class SelectorError(Exception): + def __init__(self, errcode): + super(SelectorError, self).__init__() + self.errno = errcode + + def __repr__(self): + return "<SelectorError errno={0}>".format(self.errno) + + def __str__(self): + return self.__repr__() + + +def _fileobj_to_fd(fileobj): + """ Return a file descriptor from a file object. If + given an integer will simply return that integer back. """ + if isinstance(fileobj, int): + fd = fileobj + else: + try: + fd = int(fileobj.fileno()) + except (AttributeError, TypeError, ValueError): + raise ValueError("Invalid file object: {0!r}".format(fileobj)) + if fd < 0: + raise ValueError("Invalid file descriptor: {0}".format(fd)) + return fd + + +# Determine which function to use to wrap system calls because Python 3.5+ +# already handles the case when system calls are interrupted. +if sys.version_info >= (3, 5): + def _syscall_wrapper(func, _, *args, **kwargs): + """ This is the short-circuit version of the below logic + because in Python 3.5+ all system calls automatically restart + and recalculate their timeouts. """ + try: + return func(*args, **kwargs) + except (OSError, IOError, select.error) as e: + errcode = None + if hasattr(e, "errno"): + errcode = e.errno + raise SelectorError(errcode) +else: + def _syscall_wrapper(func, recalc_timeout, *args, **kwargs): + """ Wrapper function for syscalls that could fail due to EINTR. + All functions should be retried if there is time left in the timeout + in accordance with PEP 475. """ + timeout = kwargs.get("timeout", None) + if timeout is None: + expires = None + recalc_timeout = False + else: + timeout = float(timeout) + if timeout < 0.0: # Timeout less than 0 treated as no timeout. + expires = None + else: + expires = monotonic() + timeout + + args = list(args) + if recalc_timeout and "timeout" not in kwargs: + raise ValueError( + "Timeout must be in args or kwargs to be recalculated") + + result = _SYSCALL_SENTINEL + while result is _SYSCALL_SENTINEL: + try: + result = func(*args, **kwargs) + # OSError is thrown by select.select + # IOError is thrown by select.epoll.poll + # select.error is thrown by select.poll.poll + # Aren't we thankful for Python 3.x rework for exceptions? + except (OSError, IOError, select.error) as e: + # select.error wasn't a subclass of OSError in the past. + errcode = None + if hasattr(e, "errno"): + errcode = e.errno + elif hasattr(e, "args"): + errcode = e.args[0] + + # Also test for the Windows equivalent of EINTR. + is_interrupt = (errcode == errno.EINTR or (hasattr(errno, "WSAEINTR") and + errcode == errno.WSAEINTR)) + + if is_interrupt: + if expires is not None: + current_time = monotonic() + if current_time > expires: + raise OSError(errno=errno.ETIMEDOUT) + if recalc_timeout: + if "timeout" in kwargs: + kwargs["timeout"] = expires - current_time + continue + if errcode: + raise SelectorError(errcode) + else: + raise + return result + + +SelectorKey = namedtuple('SelectorKey', ['fileobj', 'fd', 'events', 'data']) + + +class _SelectorMapping(Mapping): + """ Mapping of file objects to selector keys """ + + def __init__(self, selector): + self._selector = selector + + def __len__(self): + return len(self._selector._fd_to_key) + + def __getitem__(self, fileobj): + try: + fd = self._selector._fileobj_lookup(fileobj) + return self._selector._fd_to_key[fd] + except KeyError: + raise KeyError("{0!r} is not registered.".format(fileobj)) + + def __iter__(self): + return iter(self._selector._fd_to_key) + + +class BaseSelector(object): + """ Abstract Selector class + + A selector supports registering file objects to be monitored + for specific I/O events. + + A file object is a file descriptor or any object with a + `fileno()` method. An arbitrary object can be attached to the + file object which can be used for example to store context info, + a callback, etc. + + A selector can use various implementations (select(), poll(), epoll(), + and kqueue()) depending on the platform. The 'DefaultSelector' class uses + the most efficient implementation for the current platform. + """ + def __init__(self): + # Maps file descriptors to keys. + self._fd_to_key = {} + + # Read-only mapping returned by get_map() + self._map = _SelectorMapping(self) + + def _fileobj_lookup(self, fileobj): + """ Return a file descriptor from a file object. + This wraps _fileobj_to_fd() to do an exhaustive + search in case the object is invalid but we still + have it in our map. Used by unregister() so we can + unregister an object that was previously registered + even if it is closed. It is also used by _SelectorMapping + """ + try: + return _fileobj_to_fd(fileobj) + except ValueError: + + # Search through all our mapped keys. + for key in self._fd_to_key.values(): + if key.fileobj is fileobj: + return key.fd + + # Raise ValueError after all. + raise + + def register(self, fileobj, events, data=None): + """ Register a file object for a set of events to monitor. """ + if (not events) or (events & ~(EVENT_READ | EVENT_WRITE)): + raise ValueError("Invalid events: {0!r}".format(events)) + + key = SelectorKey(fileobj, self._fileobj_lookup(fileobj), events, data) + + if key.fd in self._fd_to_key: + raise KeyError("{0!r} (FD {1}) is already registered" + .format(fileobj, key.fd)) + + self._fd_to_key[key.fd] = key + return key + + def unregister(self, fileobj): + """ Unregister a file object from being monitored. """ + try: + key = self._fd_to_key.pop(self._fileobj_lookup(fileobj)) + except KeyError: + raise KeyError("{0!r} is not registered".format(fileobj)) + + # Getting the fileno of a closed socket on Windows errors with EBADF. + except socket.error as e: # Platform-specific: Windows. + if e.errno != errno.EBADF: + raise + else: + for key in self._fd_to_key.values(): + if key.fileobj is fileobj: + self._fd_to_key.pop(key.fd) + break + else: + raise KeyError("{0!r} is not registered".format(fileobj)) + return key + + def modify(self, fileobj, events, data=None): + """ Change a registered file object monitored events and data. """ + # NOTE: Some subclasses optimize this operation even further. + try: + key = self._fd_to_key[self._fileobj_lookup(fileobj)] + except KeyError: + raise KeyError("{0!r} is not registered".format(fileobj)) + + if events != key.events: + self.unregister(fileobj) + key = self.register(fileobj, events, data) + + elif data != key.data: + # Use a shortcut to update the data. + key = key._replace(data=data) + self._fd_to_key[key.fd] = key + + return key + + def select(self, timeout=None): + """ Perform the actual selection until some monitored file objects + are ready or the timeout expires. """ + raise NotImplementedError() + + def close(self): + """ Close the selector. This must be called to ensure that all + underlying resources are freed. """ + self._fd_to_key.clear() + self._map = None + + def get_key(self, fileobj): + """ Return the key associated with a registered file object. """ + mapping = self.get_map() + if mapping is None: + raise RuntimeError("Selector is closed") + try: + return mapping[fileobj] + except KeyError: + raise KeyError("{0!r} is not registered".format(fileobj)) + + def get_map(self): + """ Return a mapping of file objects to selector keys """ + return self._map + + def _key_from_fd(self, fd): + """ Return the key associated to a given file descriptor + Return None if it is not found. """ + try: + return self._fd_to_key[fd] + except KeyError: + return None + + def __enter__(self): + return self + + def __exit__(self, *args): + self.close() + + +# Almost all platforms have select.select() +if hasattr(select, "select"): + class SelectSelector(BaseSelector): + """ Select-based selector. """ + def __init__(self): + super(SelectSelector, self).__init__() + self._readers = set() + self._writers = set() + + def register(self, fileobj, events, data=None): + key = super(SelectSelector, self).register(fileobj, events, data) + if events & EVENT_READ: + self._readers.add(key.fd) + if events & EVENT_WRITE: + self._writers.add(key.fd) + return key + + def unregister(self, fileobj): + key = super(SelectSelector, self).unregister(fileobj) + self._readers.discard(key.fd) + self._writers.discard(key.fd) + return key + + def _select(self, r, w, timeout=None): + """ Wrapper for select.select because timeout is a positional arg """ + return select.select(r, w, [], timeout) + + def select(self, timeout=None): + # Selecting on empty lists on Windows errors out. + if not len(self._readers) and not len(self._writers): + return [] + + timeout = None if timeout is None else max(timeout, 0.0) + ready = [] + r, w, _ = _syscall_wrapper(self._select, True, self._readers, + self._writers, timeout) + r = set(r) + w = set(w) + for fd in r | w: + events = 0 + if fd in r: + events |= EVENT_READ + if fd in w: + events |= EVENT_WRITE + + key = self._key_from_fd(fd) + if key: + ready.append((key, events & key.events)) + return ready + + +if hasattr(select, "poll"): + class PollSelector(BaseSelector): + """ Poll-based selector """ + def __init__(self): + super(PollSelector, self).__init__() + self._poll = select.poll() + + def register(self, fileobj, events, data=None): + key = super(PollSelector, self).register(fileobj, events, data) + event_mask = 0 + if events & EVENT_READ: + event_mask |= select.POLLIN + if events & EVENT_WRITE: + event_mask |= select.POLLOUT + self._poll.register(key.fd, event_mask) + return key + + def unregister(self, fileobj): + key = super(PollSelector, self).unregister(fileobj) + self._poll.unregister(key.fd) + return key + + def _wrap_poll(self, timeout=None): + """ Wrapper function for select.poll.poll() so that + _syscall_wrapper can work with only seconds. """ + if timeout is not None: + if timeout <= 0: + timeout = 0 + else: + # select.poll.poll() has a resolution of 1 millisecond, + # round away from zero to wait *at least* timeout seconds. + timeout = math.ceil(timeout * 1e3) + + result = self._poll.poll(timeout) + return result + + def select(self, timeout=None): + ready = [] + fd_events = _syscall_wrapper(self._wrap_poll, True, timeout=timeout) + for fd, event_mask in fd_events: + events = 0 + if event_mask & ~select.POLLIN: + events |= EVENT_WRITE + if event_mask & ~select.POLLOUT: + events |= EVENT_READ + + key = self._key_from_fd(fd) + if key: + ready.append((key, events & key.events)) + + return ready + + +if hasattr(select, "epoll"): + class EpollSelector(BaseSelector): + """ Epoll-based selector """ + def __init__(self): + super(EpollSelector, self).__init__() + self._epoll = select.epoll() + + def fileno(self): + return self._epoll.fileno() + + def register(self, fileobj, events, data=None): + key = super(EpollSelector, self).register(fileobj, events, data) + events_mask = 0 + if events & EVENT_READ: + events_mask |= select.EPOLLIN + if events & EVENT_WRITE: + events_mask |= select.EPOLLOUT + _syscall_wrapper(self._epoll.register, False, key.fd, events_mask) + return key + + def unregister(self, fileobj): + key = super(EpollSelector, self).unregister(fileobj) + try: + _syscall_wrapper(self._epoll.unregister, False, key.fd) + except SelectorError: + # This can occur when the fd was closed since registry. + pass + return key + + def select(self, timeout=None): + if timeout is not None: + if timeout <= 0: + timeout = 0.0 + else: + # select.epoll.poll() has a resolution of 1 millisecond + # but luckily takes seconds so we don't need a wrapper + # like PollSelector. Just for better rounding. + timeout = math.ceil(timeout * 1e3) * 1e-3 + timeout = float(timeout) + else: + timeout = -1.0 # epoll.poll() must have a float. + + # We always want at least 1 to ensure that select can be called + # with no file descriptors registered. Otherwise will fail. + max_events = max(len(self._fd_to_key), 1) + + ready = [] + fd_events = _syscall_wrapper(self._epoll.poll, True, + timeout=timeout, + maxevents=max_events) + for fd, event_mask in fd_events: + events = 0 + if event_mask & ~select.EPOLLIN: + events |= EVENT_WRITE + if event_mask & ~select.EPOLLOUT: + events |= EVENT_READ + + key = self._key_from_fd(fd) + if key: + ready.append((key, events & key.events)) + return ready + + def close(self): + self._epoll.close() + super(EpollSelector, self).close() + + +if hasattr(select, "kqueue"): + class KqueueSelector(BaseSelector): + """ Kqueue / Kevent-based selector """ + def __init__(self): + super(KqueueSelector, self).__init__() + self._kqueue = select.kqueue() + + def fileno(self): + return self._kqueue.fileno() + + def register(self, fileobj, events, data=None): + key = super(KqueueSelector, self).register(fileobj, events, data) + if events & EVENT_READ: + kevent = select.kevent(key.fd, + select.KQ_FILTER_READ, + select.KQ_EV_ADD) + + _syscall_wrapper(self._kqueue.control, False, [kevent], 0, 0) + + if events & EVENT_WRITE: + kevent = select.kevent(key.fd, + select.KQ_FILTER_WRITE, + select.KQ_EV_ADD) + + _syscall_wrapper(self._kqueue.control, False, [kevent], 0, 0) + + return key + + def unregister(self, fileobj): + key = super(KqueueSelector, self).unregister(fileobj) + if key.events & EVENT_READ: + kevent = select.kevent(key.fd, + select.KQ_FILTER_READ, + select.KQ_EV_DELETE) + try: + _syscall_wrapper(self._kqueue.control, False, [kevent], 0, 0) + except SelectorError: + pass + if key.events & EVENT_WRITE: + kevent = select.kevent(key.fd, + select.KQ_FILTER_WRITE, + select.KQ_EV_DELETE) + try: + _syscall_wrapper(self._kqueue.control, False, [kevent], 0, 0) + except SelectorError: + pass + + return key + + def select(self, timeout=None): + if timeout is not None: + timeout = max(timeout, 0) + + max_events = len(self._fd_to_key) * 2 + ready_fds = {} + + kevent_list = _syscall_wrapper(self._kqueue.control, True, + None, max_events, timeout) + + for kevent in kevent_list: + fd = kevent.ident + event_mask = kevent.filter + events = 0 + if event_mask == select.KQ_FILTER_READ: + events |= EVENT_READ + if event_mask == select.KQ_FILTER_WRITE: + events |= EVENT_WRITE + + key = self._key_from_fd(fd) + if key: + if key.fd not in ready_fds: + ready_fds[key.fd] = (key, events & key.events) + else: + old_events = ready_fds[key.fd][1] + ready_fds[key.fd] = (key, (events | old_events) & key.events) + + return list(ready_fds.values()) + + def close(self): + self._kqueue.close() + super(KqueueSelector, self).close() + + +if not hasattr(select, 'select'): # Platform-specific: AppEngine + HAS_SELECT = False + + +def _can_allocate(struct): + """ Checks that select structs can be allocated by the underlying + operating system, not just advertised by the select module. We don't + check select() because we'll be hopeful that most platforms that + don't have it available will not advertise it. (ie: GAE) """ + try: + # select.poll() objects won't fail until used. + if struct == 'poll': + p = select.poll() + p.poll(0) + + # All others will fail on allocation. + else: + getattr(select, struct)().close() + return True + except (OSError, AttributeError) as e: + return False + + +# Choose the best implementation, roughly: +# kqueue == epoll > poll > select. Devpoll not supported. (See above) +# select() also can't accept a FD > FD_SETSIZE (usually around 1024) +def DefaultSelector(): + """ This function serves as a first call for DefaultSelector to + detect if the select module is being monkey-patched incorrectly + by eventlet, greenlet, and preserve proper behavior. """ + global _DEFAULT_SELECTOR + if _DEFAULT_SELECTOR is None: + if _can_allocate('kqueue'): + _DEFAULT_SELECTOR = KqueueSelector + elif _can_allocate('epoll'): + _DEFAULT_SELECTOR = EpollSelector + elif _can_allocate('poll'): + _DEFAULT_SELECTOR = PollSelector + elif hasattr(select, 'select'): + _DEFAULT_SELECTOR = SelectSelector + else: # Platform-specific: AppEngine + raise ValueError('Platform does not have a selector') + return _DEFAULT_SELECTOR() diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/ssl_.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/ssl_.py new file mode 100644 index 00000000..dafc75b5 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/ssl_.py @@ -0,0 +1,341 @@ +from __future__ import absolute_import +import errno +import warnings +import hmac + +from binascii import hexlify, unhexlify +from hashlib import md5, sha1, sha256 + +from ..exceptions import SSLError, InsecurePlatformWarning, SNIMissingWarning + + +SSLContext = None +HAS_SNI = False +IS_PYOPENSSL = False +IS_SECURETRANSPORT = False + +# Maps the length of a digest to a possible hash function producing this digest +HASHFUNC_MAP = { + 32: md5, + 40: sha1, + 64: sha256, +} + + +def _const_compare_digest_backport(a, b): + """ + Compare two digests of equal length in constant time. + + The digests must be of type str/bytes. + Returns True if the digests match, and False otherwise. + """ + result = abs(len(a) - len(b)) + for l, r in zip(bytearray(a), bytearray(b)): + result |= l ^ r + return result == 0 + + +_const_compare_digest = getattr(hmac, 'compare_digest', + _const_compare_digest_backport) + + +try: # Test for SSL features + import ssl + from ssl import wrap_socket, CERT_NONE, PROTOCOL_SSLv23 + from ssl import HAS_SNI # Has SNI? +except ImportError: + pass + + +try: + from ssl import OP_NO_SSLv2, OP_NO_SSLv3, OP_NO_COMPRESSION +except ImportError: + OP_NO_SSLv2, OP_NO_SSLv3 = 0x1000000, 0x2000000 + OP_NO_COMPRESSION = 0x20000 + +# A secure default. +# Sources for more information on TLS ciphers: +# +# - https://wiki.mozilla.org/Security/Server_Side_TLS +# - https://www.ssllabs.com/projects/best-practices/index.html +# - https://hynek.me/articles/hardening-your-web-servers-ssl-ciphers/ +# +# The general intent is: +# - Prefer TLS 1.3 cipher suites +# - prefer cipher suites that offer perfect forward secrecy (DHE/ECDHE), +# - prefer ECDHE over DHE for better performance, +# - prefer any AES-GCM and ChaCha20 over any AES-CBC for better performance and +# security, +# - prefer AES-GCM over ChaCha20 because hardware-accelerated AES is common, +# - disable NULL authentication, MD5 MACs and DSS for security reasons. +DEFAULT_CIPHERS = ':'.join([ + 'TLS13-AES-256-GCM-SHA384', + 'TLS13-CHACHA20-POLY1305-SHA256', + 'TLS13-AES-128-GCM-SHA256', + 'ECDH+AESGCM', + 'ECDH+CHACHA20', + 'DH+AESGCM', + 'DH+CHACHA20', + 'ECDH+AES256', + 'DH+AES256', + 'ECDH+AES128', + 'DH+AES', + 'RSA+AESGCM', + 'RSA+AES', + '!aNULL', + '!eNULL', + '!MD5', +]) + +try: + from ssl import SSLContext # Modern SSL? +except ImportError: + import sys + + class SSLContext(object): # Platform-specific: Python 2 & 3.1 + supports_set_ciphers = ((2, 7) <= sys.version_info < (3,) or + (3, 2) <= sys.version_info) + + def __init__(self, protocol_version): + self.protocol = protocol_version + # Use default values from a real SSLContext + self.check_hostname = False + self.verify_mode = ssl.CERT_NONE + self.ca_certs = None + self.options = 0 + self.certfile = None + self.keyfile = None + self.ciphers = None + + def load_cert_chain(self, certfile, keyfile): + self.certfile = certfile + self.keyfile = keyfile + + def load_verify_locations(self, cafile=None, capath=None): + self.ca_certs = cafile + + if capath is not None: + raise SSLError("CA directories not supported in older Pythons") + + def set_ciphers(self, cipher_suite): + if not self.supports_set_ciphers: + raise TypeError( + 'Your version of Python does not support setting ' + 'a custom cipher suite. Please upgrade to Python ' + '2.7, 3.2, or later if you need this functionality.' + ) + self.ciphers = cipher_suite + + def wrap_socket(self, socket, server_hostname=None, server_side=False): + warnings.warn( + 'A true SSLContext object is not available. This prevents ' + 'urllib3 from configuring SSL appropriately and may cause ' + 'certain SSL connections to fail. You can upgrade to a newer ' + 'version of Python to solve this. For more information, see ' + 'https://urllib3.readthedocs.io/en/latest/advanced-usage.html' + '#ssl-warnings', + InsecurePlatformWarning + ) + kwargs = { + 'keyfile': self.keyfile, + 'certfile': self.certfile, + 'ca_certs': self.ca_certs, + 'cert_reqs': self.verify_mode, + 'ssl_version': self.protocol, + 'server_side': server_side, + } + if self.supports_set_ciphers: # Platform-specific: Python 2.7+ + return wrap_socket(socket, ciphers=self.ciphers, **kwargs) + else: # Platform-specific: Python 2.6 + return wrap_socket(socket, **kwargs) + + +def assert_fingerprint(cert, fingerprint): + """ + Checks if given fingerprint matches the supplied certificate. + + :param cert: + Certificate as bytes object. + :param fingerprint: + Fingerprint as string of hexdigits, can be interspersed by colons. + """ + + fingerprint = fingerprint.replace(':', '').lower() + digest_length = len(fingerprint) + hashfunc = HASHFUNC_MAP.get(digest_length) + if not hashfunc: + raise SSLError( + 'Fingerprint of invalid length: {0}'.format(fingerprint)) + + # We need encode() here for py32; works on py2 and p33. + fingerprint_bytes = unhexlify(fingerprint.encode()) + + cert_digest = hashfunc(cert).digest() + + if not _const_compare_digest(cert_digest, fingerprint_bytes): + raise SSLError('Fingerprints did not match. Expected "{0}", got "{1}".' + .format(fingerprint, hexlify(cert_digest))) + + +def resolve_cert_reqs(candidate): + """ + Resolves the argument to a numeric constant, which can be passed to + the wrap_socket function/method from the ssl module. + Defaults to :data:`ssl.CERT_NONE`. + If given a string it is assumed to be the name of the constant in the + :mod:`ssl` module or its abbrevation. + (So you can specify `REQUIRED` instead of `CERT_REQUIRED`. + If it's neither `None` nor a string we assume it is already the numeric + constant which can directly be passed to wrap_socket. + """ + if candidate is None: + return CERT_NONE + + if isinstance(candidate, str): + res = getattr(ssl, candidate, None) + if res is None: + res = getattr(ssl, 'CERT_' + candidate) + return res + + return candidate + + +def resolve_ssl_version(candidate): + """ + like resolve_cert_reqs + """ + if candidate is None: + return PROTOCOL_SSLv23 + + if isinstance(candidate, str): + res = getattr(ssl, candidate, None) + if res is None: + res = getattr(ssl, 'PROTOCOL_' + candidate) + return res + + return candidate + + +def create_urllib3_context(ssl_version=None, cert_reqs=None, + options=None, ciphers=None): + """All arguments have the same meaning as ``ssl_wrap_socket``. + + By default, this function does a lot of the same work that + ``ssl.create_default_context`` does on Python 3.4+. It: + + - Disables SSLv2, SSLv3, and compression + - Sets a restricted set of server ciphers + + If you wish to enable SSLv3, you can do:: + + from pip._vendor.urllib3.util import ssl_ + context = ssl_.create_urllib3_context() + context.options &= ~ssl_.OP_NO_SSLv3 + + You can do the same to enable compression (substituting ``COMPRESSION`` + for ``SSLv3`` in the last line above). + + :param ssl_version: + The desired protocol version to use. This will default to + PROTOCOL_SSLv23 which will negotiate the highest protocol that both + the server and your installation of OpenSSL support. + :param cert_reqs: + Whether to require the certificate verification. This defaults to + ``ssl.CERT_REQUIRED``. + :param options: + Specific OpenSSL options. These default to ``ssl.OP_NO_SSLv2``, + ``ssl.OP_NO_SSLv3``, ``ssl.OP_NO_COMPRESSION``. + :param ciphers: + Which cipher suites to allow the server to select. + :returns: + Constructed SSLContext object with specified options + :rtype: SSLContext + """ + context = SSLContext(ssl_version or ssl.PROTOCOL_SSLv23) + + # Setting the default here, as we may have no ssl module on import + cert_reqs = ssl.CERT_REQUIRED if cert_reqs is None else cert_reqs + + if options is None: + options = 0 + # SSLv2 is easily broken and is considered harmful and dangerous + options |= OP_NO_SSLv2 + # SSLv3 has several problems and is now dangerous + options |= OP_NO_SSLv3 + # Disable compression to prevent CRIME attacks for OpenSSL 1.0+ + # (issue #309) + options |= OP_NO_COMPRESSION + + context.options |= options + + if getattr(context, 'supports_set_ciphers', True): # Platform-specific: Python 2.6 + context.set_ciphers(ciphers or DEFAULT_CIPHERS) + + context.verify_mode = cert_reqs + if getattr(context, 'check_hostname', None) is not None: # Platform-specific: Python 3.2 + # We do our own verification, including fingerprints and alternative + # hostnames. So disable it here + context.check_hostname = False + return context + + +def ssl_wrap_socket(sock, keyfile=None, certfile=None, cert_reqs=None, + ca_certs=None, server_hostname=None, + ssl_version=None, ciphers=None, ssl_context=None, + ca_cert_dir=None): + """ + All arguments except for server_hostname, ssl_context, and ca_cert_dir have + the same meaning as they do when using :func:`ssl.wrap_socket`. + + :param server_hostname: + When SNI is supported, the expected hostname of the certificate + :param ssl_context: + A pre-made :class:`SSLContext` object. If none is provided, one will + be created using :func:`create_urllib3_context`. + :param ciphers: + A string of ciphers we wish the client to support. This is not + supported on Python 2.6 as the ssl module does not support it. + :param ca_cert_dir: + A directory containing CA certificates in multiple separate files, as + supported by OpenSSL's -CApath flag or the capath argument to + SSLContext.load_verify_locations(). + """ + context = ssl_context + if context is None: + # Note: This branch of code and all the variables in it are no longer + # used by urllib3 itself. We should consider deprecating and removing + # this code. + context = create_urllib3_context(ssl_version, cert_reqs, + ciphers=ciphers) + + if ca_certs or ca_cert_dir: + try: + context.load_verify_locations(ca_certs, ca_cert_dir) + except IOError as e: # Platform-specific: Python 2.6, 2.7, 3.2 + raise SSLError(e) + # Py33 raises FileNotFoundError which subclasses OSError + # These are not equivalent unless we check the errno attribute + except OSError as e: # Platform-specific: Python 3.3 and beyond + if e.errno == errno.ENOENT: + raise SSLError(e) + raise + elif getattr(context, 'load_default_certs', None) is not None: + # try to load OS default certs; works well on Windows (require Python3.4+) + context.load_default_certs() + + if certfile: + context.load_cert_chain(certfile, keyfile) + if HAS_SNI: # Platform-specific: OpenSSL with enabled SNI + return context.wrap_socket(sock, server_hostname=server_hostname) + + warnings.warn( + 'An HTTPS request has been made, but the SNI (Subject Name ' + 'Indication) extension to TLS is not available on this platform. ' + 'This may cause the server to present an incorrect TLS ' + 'certificate, which can cause validation failures. You can upgrade to ' + 'a newer version of Python to solve this. For more information, see ' + 'https://urllib3.readthedocs.io/en/latest/advanced-usage.html' + '#ssl-warnings', + SNIMissingWarning + ) + return context.wrap_socket(sock) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/timeout.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/timeout.py new file mode 100644 index 00000000..cec817e6 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/timeout.py @@ -0,0 +1,242 @@ +from __future__ import absolute_import +# The default socket timeout, used by httplib to indicate that no timeout was +# specified by the user +from socket import _GLOBAL_DEFAULT_TIMEOUT +import time + +from ..exceptions import TimeoutStateError + +# A sentinel value to indicate that no timeout was specified by the user in +# urllib3 +_Default = object() + + +# Use time.monotonic if available. +current_time = getattr(time, "monotonic", time.time) + + +class Timeout(object): + """ Timeout configuration. + + Timeouts can be defined as a default for a pool:: + + timeout = Timeout(connect=2.0, read=7.0) + http = PoolManager(timeout=timeout) + response = http.request('GET', 'http://example.com/') + + Or per-request (which overrides the default for the pool):: + + response = http.request('GET', 'http://example.com/', timeout=Timeout(10)) + + Timeouts can be disabled by setting all the parameters to ``None``:: + + no_timeout = Timeout(connect=None, read=None) + response = http.request('GET', 'http://example.com/, timeout=no_timeout) + + + :param total: + This combines the connect and read timeouts into one; the read timeout + will be set to the time leftover from the connect attempt. In the + event that both a connect timeout and a total are specified, or a read + timeout and a total are specified, the shorter timeout will be applied. + + Defaults to None. + + :type total: integer, float, or None + + :param connect: + The maximum amount of time to wait for a connection attempt to a server + to succeed. Omitting the parameter will default the connect timeout to + the system default, probably `the global default timeout in socket.py + <http://hg.python.org/cpython/file/603b4d593758/Lib/socket.py#l535>`_. + None will set an infinite timeout for connection attempts. + + :type connect: integer, float, or None + + :param read: + The maximum amount of time to wait between consecutive + read operations for a response from the server. Omitting + the parameter will default the read timeout to the system + default, probably `the global default timeout in socket.py + <http://hg.python.org/cpython/file/603b4d593758/Lib/socket.py#l535>`_. + None will set an infinite timeout. + + :type read: integer, float, or None + + .. note:: + + Many factors can affect the total amount of time for urllib3 to return + an HTTP response. + + For example, Python's DNS resolver does not obey the timeout specified + on the socket. Other factors that can affect total request time include + high CPU load, high swap, the program running at a low priority level, + or other behaviors. + + In addition, the read and total timeouts only measure the time between + read operations on the socket connecting the client and the server, + not the total amount of time for the request to return a complete + response. For most requests, the timeout is raised because the server + has not sent the first byte in the specified time. This is not always + the case; if a server streams one byte every fifteen seconds, a timeout + of 20 seconds will not trigger, even though the request will take + several minutes to complete. + + If your goal is to cut off any request after a set amount of wall clock + time, consider having a second "watcher" thread to cut off a slow + request. + """ + + #: A sentinel object representing the default timeout value + DEFAULT_TIMEOUT = _GLOBAL_DEFAULT_TIMEOUT + + def __init__(self, total=None, connect=_Default, read=_Default): + self._connect = self._validate_timeout(connect, 'connect') + self._read = self._validate_timeout(read, 'read') + self.total = self._validate_timeout(total, 'total') + self._start_connect = None + + def __str__(self): + return '%s(connect=%r, read=%r, total=%r)' % ( + type(self).__name__, self._connect, self._read, self.total) + + @classmethod + def _validate_timeout(cls, value, name): + """ Check that a timeout attribute is valid. + + :param value: The timeout value to validate + :param name: The name of the timeout attribute to validate. This is + used to specify in error messages. + :return: The validated and casted version of the given value. + :raises ValueError: If it is a numeric value less than or equal to + zero, or the type is not an integer, float, or None. + """ + if value is _Default: + return cls.DEFAULT_TIMEOUT + + if value is None or value is cls.DEFAULT_TIMEOUT: + return value + + if isinstance(value, bool): + raise ValueError("Timeout cannot be a boolean value. It must " + "be an int, float or None.") + try: + float(value) + except (TypeError, ValueError): + raise ValueError("Timeout value %s was %s, but it must be an " + "int, float or None." % (name, value)) + + try: + if value <= 0: + raise ValueError("Attempted to set %s timeout to %s, but the " + "timeout cannot be set to a value less " + "than or equal to 0." % (name, value)) + except TypeError: # Python 3 + raise ValueError("Timeout value %s was %s, but it must be an " + "int, float or None." % (name, value)) + + return value + + @classmethod + def from_float(cls, timeout): + """ Create a new Timeout from a legacy timeout value. + + The timeout value used by httplib.py sets the same timeout on the + connect(), and recv() socket requests. This creates a :class:`Timeout` + object that sets the individual timeouts to the ``timeout`` value + passed to this function. + + :param timeout: The legacy timeout value. + :type timeout: integer, float, sentinel default object, or None + :return: Timeout object + :rtype: :class:`Timeout` + """ + return Timeout(read=timeout, connect=timeout) + + def clone(self): + """ Create a copy of the timeout object + + Timeout properties are stored per-pool but each request needs a fresh + Timeout object to ensure each one has its own start/stop configured. + + :return: a copy of the timeout object + :rtype: :class:`Timeout` + """ + # We can't use copy.deepcopy because that will also create a new object + # for _GLOBAL_DEFAULT_TIMEOUT, which socket.py uses as a sentinel to + # detect the user default. + return Timeout(connect=self._connect, read=self._read, + total=self.total) + + def start_connect(self): + """ Start the timeout clock, used during a connect() attempt + + :raises urllib3.exceptions.TimeoutStateError: if you attempt + to start a timer that has been started already. + """ + if self._start_connect is not None: + raise TimeoutStateError("Timeout timer has already been started.") + self._start_connect = current_time() + return self._start_connect + + def get_connect_duration(self): + """ Gets the time elapsed since the call to :meth:`start_connect`. + + :return: Elapsed time. + :rtype: float + :raises urllib3.exceptions.TimeoutStateError: if you attempt + to get duration for a timer that hasn't been started. + """ + if self._start_connect is None: + raise TimeoutStateError("Can't get connect duration for timer " + "that has not started.") + return current_time() - self._start_connect + + @property + def connect_timeout(self): + """ Get the value to use when setting a connection timeout. + + This will be a positive float or integer, the value None + (never timeout), or the default system timeout. + + :return: Connect timeout. + :rtype: int, float, :attr:`Timeout.DEFAULT_TIMEOUT` or None + """ + if self.total is None: + return self._connect + + if self._connect is None or self._connect is self.DEFAULT_TIMEOUT: + return self.total + + return min(self._connect, self.total) + + @property + def read_timeout(self): + """ Get the value for the read timeout. + + This assumes some time has elapsed in the connection timeout and + computes the read timeout appropriately. + + If self.total is set, the read timeout is dependent on the amount of + time taken by the connect timeout. If the connection time has not been + established, a :exc:`~urllib3.exceptions.TimeoutStateError` will be + raised. + + :return: Value to use for the read timeout. + :rtype: int, float, :attr:`Timeout.DEFAULT_TIMEOUT` or None + :raises urllib3.exceptions.TimeoutStateError: If :meth:`start_connect` + has not yet been called on this object. + """ + if (self.total is not None and + self.total is not self.DEFAULT_TIMEOUT and + self._read is not None and + self._read is not self.DEFAULT_TIMEOUT): + # In case the connect timeout has not yet been established. + if self._start_connect is None: + return self._read + return max(0, min(self.total - self.get_connect_duration(), + self._read)) + elif self.total is not None and self.total is not self.DEFAULT_TIMEOUT: + return max(0, self.total - self.get_connect_duration()) + else: + return self._read diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/url.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/url.py new file mode 100644 index 00000000..6b6f9968 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/url.py @@ -0,0 +1,230 @@ +from __future__ import absolute_import +from collections import namedtuple + +from ..exceptions import LocationParseError + + +url_attrs = ['scheme', 'auth', 'host', 'port', 'path', 'query', 'fragment'] + +# We only want to normalize urls with an HTTP(S) scheme. +# urllib3 infers URLs without a scheme (None) to be http. +NORMALIZABLE_SCHEMES = ('http', 'https', None) + + +class Url(namedtuple('Url', url_attrs)): + """ + Datastructure for representing an HTTP URL. Used as a return value for + :func:`parse_url`. Both the scheme and host are normalized as they are + both case-insensitive according to RFC 3986. + """ + __slots__ = () + + def __new__(cls, scheme=None, auth=None, host=None, port=None, path=None, + query=None, fragment=None): + if path and not path.startswith('/'): + path = '/' + path + if scheme: + scheme = scheme.lower() + if host and scheme in NORMALIZABLE_SCHEMES: + host = host.lower() + return super(Url, cls).__new__(cls, scheme, auth, host, port, path, + query, fragment) + + @property + def hostname(self): + """For backwards-compatibility with urlparse. We're nice like that.""" + return self.host + + @property + def request_uri(self): + """Absolute path including the query string.""" + uri = self.path or '/' + + if self.query is not None: + uri += '?' + self.query + + return uri + + @property + def netloc(self): + """Network location including host and port""" + if self.port: + return '%s:%d' % (self.host, self.port) + return self.host + + @property + def url(self): + """ + Convert self into a url + + This function should more or less round-trip with :func:`.parse_url`. The + returned url may not be exactly the same as the url inputted to + :func:`.parse_url`, but it should be equivalent by the RFC (e.g., urls + with a blank port will have : removed). + + Example: :: + + >>> U = parse_url('http://google.com/mail/') + >>> U.url + 'http://google.com/mail/' + >>> Url('http', 'username:password', 'host.com', 80, + ... '/path', 'query', 'fragment').url + 'http://username:password@host.com:80/path?query#fragment' + """ + scheme, auth, host, port, path, query, fragment = self + url = '' + + # We use "is not None" we want things to happen with empty strings (or 0 port) + if scheme is not None: + url += scheme + '://' + if auth is not None: + url += auth + '@' + if host is not None: + url += host + if port is not None: + url += ':' + str(port) + if path is not None: + url += path + if query is not None: + url += '?' + query + if fragment is not None: + url += '#' + fragment + + return url + + def __str__(self): + return self.url + + +def split_first(s, delims): + """ + Given a string and an iterable of delimiters, split on the first found + delimiter. Return two split parts and the matched delimiter. + + If not found, then the first part is the full input string. + + Example:: + + >>> split_first('foo/bar?baz', '?/=') + ('foo', 'bar?baz', '/') + >>> split_first('foo/bar?baz', '123') + ('foo/bar?baz', '', None) + + Scales linearly with number of delims. Not ideal for large number of delims. + """ + min_idx = None + min_delim = None + for d in delims: + idx = s.find(d) + if idx < 0: + continue + + if min_idx is None or idx < min_idx: + min_idx = idx + min_delim = d + + if min_idx is None or min_idx < 0: + return s, '', None + + return s[:min_idx], s[min_idx + 1:], min_delim + + +def parse_url(url): + """ + Given a url, return a parsed :class:`.Url` namedtuple. Best-effort is + performed to parse incomplete urls. Fields not provided will be None. + + Partly backwards-compatible with :mod:`urlparse`. + + Example:: + + >>> parse_url('http://google.com/mail/') + Url(scheme='http', host='google.com', port=None, path='/mail/', ...) + >>> parse_url('google.com:80') + Url(scheme=None, host='google.com', port=80, path=None, ...) + >>> parse_url('/foo?bar') + Url(scheme=None, host=None, port=None, path='/foo', query='bar', ...) + """ + + # While this code has overlap with stdlib's urlparse, it is much + # simplified for our needs and less annoying. + # Additionally, this implementations does silly things to be optimal + # on CPython. + + if not url: + # Empty + return Url() + + scheme = None + auth = None + host = None + port = None + path = None + fragment = None + query = None + + # Scheme + if '://' in url: + scheme, url = url.split('://', 1) + + # Find the earliest Authority Terminator + # (http://tools.ietf.org/html/rfc3986#section-3.2) + url, path_, delim = split_first(url, ['/', '?', '#']) + + if delim: + # Reassemble the path + path = delim + path_ + + # Auth + if '@' in url: + # Last '@' denotes end of auth part + auth, url = url.rsplit('@', 1) + + # IPv6 + if url and url[0] == '[': + host, url = url.split(']', 1) + host += ']' + + # Port + if ':' in url: + _host, port = url.split(':', 1) + + if not host: + host = _host + + if port: + # If given, ports must be integers. No whitespace, no plus or + # minus prefixes, no non-integer digits such as ^2 (superscript). + if not port.isdigit(): + raise LocationParseError(url) + try: + port = int(port) + except ValueError: + raise LocationParseError(url) + else: + # Blank ports are cool, too. (rfc3986#section-3.2.3) + port = None + + elif not host and url: + host = url + + if not path: + return Url(scheme, auth, host, port, path, query, fragment) + + # Fragment + if '#' in path: + path, fragment = path.split('#', 1) + + # Query + if '?' in path: + path, query = path.split('?', 1) + + return Url(scheme, auth, host, port, path, query, fragment) + + +def get_host(url): + """ + Deprecated. Use :func:`parse_url` instead. + """ + p = parse_url(url) + return p.scheme or 'http', p.hostname, p.port diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/wait.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/wait.py new file mode 100644 index 00000000..cb396e50 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/urllib3/util/wait.py @@ -0,0 +1,40 @@ +from .selectors import ( + HAS_SELECT, + DefaultSelector, + EVENT_READ, + EVENT_WRITE +) + + +def _wait_for_io_events(socks, events, timeout=None): + """ Waits for IO events to be available from a list of sockets + or optionally a single socket if passed in. Returns a list of + sockets that can be interacted with immediately. """ + if not HAS_SELECT: + raise ValueError('Platform does not have a selector') + if not isinstance(socks, list): + # Probably just a single socket. + if hasattr(socks, "fileno"): + socks = [socks] + # Otherwise it might be a non-list iterable. + else: + socks = list(socks) + with DefaultSelector() as selector: + for sock in socks: + selector.register(sock, events) + return [key[0].fileobj for key in + selector.select(timeout) if key[1] & events] + + +def wait_for_read(socks, timeout=None): + """ Waits for reading to be available from a list of sockets + or optionally a single socket if passed in. Returns a list of + sockets that can be read from immediately. """ + return _wait_for_io_events(socks, EVENT_READ, timeout) + + +def wait_for_write(socks, timeout=None): + """ Waits for writing to be available from a list of sockets + or optionally a single socket if passed in. Returns a list of + sockets that can be written to immediately. """ + return _wait_for_io_events(socks, EVENT_WRITE, timeout) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/__init__.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/__init__.py new file mode 100644 index 00000000..d21d697c --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/__init__.py @@ -0,0 +1,342 @@ +# coding: utf-8 +""" + + webencodings + ~~~~~~~~~~~~ + + This is a Python implementation of the `WHATWG Encoding standard + <http://encoding.spec.whatwg.org/>`. See README for details. + + :copyright: Copyright 2012 by Simon Sapin + :license: BSD, see LICENSE for details. + +""" + +from __future__ import unicode_literals + +import codecs + +from .labels import LABELS + + +VERSION = '0.5.1' + + +# Some names in Encoding are not valid Python aliases. Remap these. +PYTHON_NAMES = { + 'iso-8859-8-i': 'iso-8859-8', + 'x-mac-cyrillic': 'mac-cyrillic', + 'macintosh': 'mac-roman', + 'windows-874': 'cp874'} + +CACHE = {} + + +def ascii_lower(string): + r"""Transform (only) ASCII letters to lower case: A-Z is mapped to a-z. + + :param string: An Unicode string. + :returns: A new Unicode string. + + This is used for `ASCII case-insensitive + <http://encoding.spec.whatwg.org/#ascii-case-insensitive>`_ + matching of encoding labels. + The same matching is also used, among other things, + for `CSS keywords <http://dev.w3.org/csswg/css-values/#keywords>`_. + + This is different from the :meth:`~py:str.lower` method of Unicode strings + which also affect non-ASCII characters, + sometimes mapping them into the ASCII range: + + >>> keyword = u'Bac\N{KELVIN SIGN}ground' + >>> assert keyword.lower() == u'background' + >>> assert ascii_lower(keyword) != keyword.lower() + >>> assert ascii_lower(keyword) == u'bac\N{KELVIN SIGN}ground' + + """ + # This turns out to be faster than unicode.translate() + return string.encode('utf8').lower().decode('utf8') + + +def lookup(label): + """ + Look for an encoding by its label. + This is the spec’s `get an encoding + <http://encoding.spec.whatwg.org/#concept-encoding-get>`_ algorithm. + Supported labels are listed there. + + :param label: A string. + :returns: + An :class:`Encoding` object, or :obj:`None` for an unknown label. + + """ + # Only strip ASCII whitespace: U+0009, U+000A, U+000C, U+000D, and U+0020. + label = ascii_lower(label.strip('\t\n\f\r ')) + name = LABELS.get(label) + if name is None: + return None + encoding = CACHE.get(name) + if encoding is None: + if name == 'x-user-defined': + from .x_user_defined import codec_info + else: + python_name = PYTHON_NAMES.get(name, name) + # Any python_name value that gets to here should be valid. + codec_info = codecs.lookup(python_name) + encoding = Encoding(name, codec_info) + CACHE[name] = encoding + return encoding + + +def _get_encoding(encoding_or_label): + """ + Accept either an encoding object or label. + + :param encoding: An :class:`Encoding` object or a label string. + :returns: An :class:`Encoding` object. + :raises: :exc:`~exceptions.LookupError` for an unknown label. + + """ + if hasattr(encoding_or_label, 'codec_info'): + return encoding_or_label + + encoding = lookup(encoding_or_label) + if encoding is None: + raise LookupError('Unknown encoding label: %r' % encoding_or_label) + return encoding + + +class Encoding(object): + """Reresents a character encoding such as UTF-8, + that can be used for decoding or encoding. + + .. attribute:: name + + Canonical name of the encoding + + .. attribute:: codec_info + + The actual implementation of the encoding, + a stdlib :class:`~codecs.CodecInfo` object. + See :func:`codecs.register`. + + """ + def __init__(self, name, codec_info): + self.name = name + self.codec_info = codec_info + + def __repr__(self): + return '<Encoding %s>' % self.name + + +#: The UTF-8 encoding. Should be used for new content and formats. +UTF8 = lookup('utf-8') + +_UTF16LE = lookup('utf-16le') +_UTF16BE = lookup('utf-16be') + + +def decode(input, fallback_encoding, errors='replace'): + """ + Decode a single string. + + :param input: A byte string + :param fallback_encoding: + An :class:`Encoding` object or a label string. + The encoding to use if :obj:`input` does note have a BOM. + :param errors: Type of error handling. See :func:`codecs.register`. + :raises: :exc:`~exceptions.LookupError` for an unknown encoding label. + :return: + A ``(output, encoding)`` tuple of an Unicode string + and an :obj:`Encoding`. + + """ + # Fail early if `encoding` is an invalid label. + fallback_encoding = _get_encoding(fallback_encoding) + bom_encoding, input = _detect_bom(input) + encoding = bom_encoding or fallback_encoding + return encoding.codec_info.decode(input, errors)[0], encoding + + +def _detect_bom(input): + """Return (bom_encoding, input), with any BOM removed from the input.""" + if input.startswith(b'\xFF\xFE'): + return _UTF16LE, input[2:] + if input.startswith(b'\xFE\xFF'): + return _UTF16BE, input[2:] + if input.startswith(b'\xEF\xBB\xBF'): + return UTF8, input[3:] + return None, input + + +def encode(input, encoding=UTF8, errors='strict'): + """ + Encode a single string. + + :param input: An Unicode string. + :param encoding: An :class:`Encoding` object or a label string. + :param errors: Type of error handling. See :func:`codecs.register`. + :raises: :exc:`~exceptions.LookupError` for an unknown encoding label. + :return: A byte string. + + """ + return _get_encoding(encoding).codec_info.encode(input, errors)[0] + + +def iter_decode(input, fallback_encoding, errors='replace'): + """ + "Pull"-based decoder. + + :param input: + An iterable of byte strings. + + The input is first consumed just enough to determine the encoding + based on the precense of a BOM, + then consumed on demand when the return value is. + :param fallback_encoding: + An :class:`Encoding` object or a label string. + The encoding to use if :obj:`input` does note have a BOM. + :param errors: Type of error handling. See :func:`codecs.register`. + :raises: :exc:`~exceptions.LookupError` for an unknown encoding label. + :returns: + An ``(output, encoding)`` tuple. + :obj:`output` is an iterable of Unicode strings, + :obj:`encoding` is the :obj:`Encoding` that is being used. + + """ + + decoder = IncrementalDecoder(fallback_encoding, errors) + generator = _iter_decode_generator(input, decoder) + encoding = next(generator) + return generator, encoding + + +def _iter_decode_generator(input, decoder): + """Return a generator that first yields the :obj:`Encoding`, + then yields output chukns as Unicode strings. + + """ + decode = decoder.decode + input = iter(input) + for chunck in input: + output = decode(chunck) + if output: + assert decoder.encoding is not None + yield decoder.encoding + yield output + break + else: + # Input exhausted without determining the encoding + output = decode(b'', final=True) + assert decoder.encoding is not None + yield decoder.encoding + if output: + yield output + return + + for chunck in input: + output = decode(chunck) + if output: + yield output + output = decode(b'', final=True) + if output: + yield output + + +def iter_encode(input, encoding=UTF8, errors='strict'): + """ + “Pull”-based encoder. + + :param input: An iterable of Unicode strings. + :param encoding: An :class:`Encoding` object or a label string. + :param errors: Type of error handling. See :func:`codecs.register`. + :raises: :exc:`~exceptions.LookupError` for an unknown encoding label. + :returns: An iterable of byte strings. + + """ + # Fail early if `encoding` is an invalid label. + encode = IncrementalEncoder(encoding, errors).encode + return _iter_encode_generator(input, encode) + + +def _iter_encode_generator(input, encode): + for chunck in input: + output = encode(chunck) + if output: + yield output + output = encode('', final=True) + if output: + yield output + + +class IncrementalDecoder(object): + """ + “Push”-based decoder. + + :param fallback_encoding: + An :class:`Encoding` object or a label string. + The encoding to use if :obj:`input` does note have a BOM. + :param errors: Type of error handling. See :func:`codecs.register`. + :raises: :exc:`~exceptions.LookupError` for an unknown encoding label. + + """ + def __init__(self, fallback_encoding, errors='replace'): + # Fail early if `encoding` is an invalid label. + self._fallback_encoding = _get_encoding(fallback_encoding) + self._errors = errors + self._buffer = b'' + self._decoder = None + #: The actual :class:`Encoding` that is being used, + #: or :obj:`None` if that is not determined yet. + #: (Ie. if there is not enough input yet to determine + #: if there is a BOM.) + self.encoding = None # Not known yet. + + def decode(self, input, final=False): + """Decode one chunk of the input. + + :param input: A byte string. + :param final: + Indicate that no more input is available. + Must be :obj:`True` if this is the last call. + :returns: An Unicode string. + + """ + decoder = self._decoder + if decoder is not None: + return decoder(input, final) + + input = self._buffer + input + encoding, input = _detect_bom(input) + if encoding is None: + if len(input) < 3 and not final: # Not enough data yet. + self._buffer = input + return '' + else: # No BOM + encoding = self._fallback_encoding + decoder = encoding.codec_info.incrementaldecoder(self._errors).decode + self._decoder = decoder + self.encoding = encoding + return decoder(input, final) + + +class IncrementalEncoder(object): + """ + “Push”-based encoder. + + :param encoding: An :class:`Encoding` object or a label string. + :param errors: Type of error handling. See :func:`codecs.register`. + :raises: :exc:`~exceptions.LookupError` for an unknown encoding label. + + .. method:: encode(input, final=False) + + :param input: An Unicode string. + :param final: + Indicate that no more input is available. + Must be :obj:`True` if this is the last call. + :returns: A byte string. + + """ + def __init__(self, encoding=UTF8, errors='strict'): + encoding = _get_encoding(encoding) + self.encode = encoding.codec_info.incrementalencoder(errors).encode diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/labels.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/labels.py new file mode 100644 index 00000000..29cbf91e --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/labels.py @@ -0,0 +1,231 @@ +""" + + webencodings.labels + ~~~~~~~~~~~~~~~~~~~ + + Map encoding labels to their name. + + :copyright: Copyright 2012 by Simon Sapin + :license: BSD, see LICENSE for details. + +""" + +# XXX Do not edit! +# This file is automatically generated by mklabels.py + +LABELS = { + 'unicode-1-1-utf-8': 'utf-8', + 'utf-8': 'utf-8', + 'utf8': 'utf-8', + '866': 'ibm866', + 'cp866': 'ibm866', + 'csibm866': 'ibm866', + 'ibm866': 'ibm866', + 'csisolatin2': 'iso-8859-2', + 'iso-8859-2': 'iso-8859-2', + 'iso-ir-101': 'iso-8859-2', + 'iso8859-2': 'iso-8859-2', + 'iso88592': 'iso-8859-2', + 'iso_8859-2': 'iso-8859-2', + 'iso_8859-2:1987': 'iso-8859-2', + 'l2': 'iso-8859-2', + 'latin2': 'iso-8859-2', + 'csisolatin3': 'iso-8859-3', + 'iso-8859-3': 'iso-8859-3', + 'iso-ir-109': 'iso-8859-3', + 'iso8859-3': 'iso-8859-3', + 'iso88593': 'iso-8859-3', + 'iso_8859-3': 'iso-8859-3', + 'iso_8859-3:1988': 'iso-8859-3', + 'l3': 'iso-8859-3', + 'latin3': 'iso-8859-3', + 'csisolatin4': 'iso-8859-4', + 'iso-8859-4': 'iso-8859-4', + 'iso-ir-110': 'iso-8859-4', + 'iso8859-4': 'iso-8859-4', + 'iso88594': 'iso-8859-4', + 'iso_8859-4': 'iso-8859-4', + 'iso_8859-4:1988': 'iso-8859-4', + 'l4': 'iso-8859-4', + 'latin4': 'iso-8859-4', + 'csisolatincyrillic': 'iso-8859-5', + 'cyrillic': 'iso-8859-5', + 'iso-8859-5': 'iso-8859-5', + 'iso-ir-144': 'iso-8859-5', + 'iso8859-5': 'iso-8859-5', + 'iso88595': 'iso-8859-5', + 'iso_8859-5': 'iso-8859-5', + 'iso_8859-5:1988': 'iso-8859-5', + 'arabic': 'iso-8859-6', + 'asmo-708': 'iso-8859-6', + 'csiso88596e': 'iso-8859-6', + 'csiso88596i': 'iso-8859-6', + 'csisolatinarabic': 'iso-8859-6', + 'ecma-114': 'iso-8859-6', + 'iso-8859-6': 'iso-8859-6', + 'iso-8859-6-e': 'iso-8859-6', + 'iso-8859-6-i': 'iso-8859-6', + 'iso-ir-127': 'iso-8859-6', + 'iso8859-6': 'iso-8859-6', + 'iso88596': 'iso-8859-6', + 'iso_8859-6': 'iso-8859-6', + 'iso_8859-6:1987': 'iso-8859-6', + 'csisolatingreek': 'iso-8859-7', + 'ecma-118': 'iso-8859-7', + 'elot_928': 'iso-8859-7', + 'greek': 'iso-8859-7', + 'greek8': 'iso-8859-7', + 'iso-8859-7': 'iso-8859-7', + 'iso-ir-126': 'iso-8859-7', + 'iso8859-7': 'iso-8859-7', + 'iso88597': 'iso-8859-7', + 'iso_8859-7': 'iso-8859-7', + 'iso_8859-7:1987': 'iso-8859-7', + 'sun_eu_greek': 'iso-8859-7', + 'csiso88598e': 'iso-8859-8', + 'csisolatinhebrew': 'iso-8859-8', + 'hebrew': 'iso-8859-8', + 'iso-8859-8': 'iso-8859-8', + 'iso-8859-8-e': 'iso-8859-8', + 'iso-ir-138': 'iso-8859-8', + 'iso8859-8': 'iso-8859-8', + 'iso88598': 'iso-8859-8', + 'iso_8859-8': 'iso-8859-8', + 'iso_8859-8:1988': 'iso-8859-8', + 'visual': 'iso-8859-8', + 'csiso88598i': 'iso-8859-8-i', + 'iso-8859-8-i': 'iso-8859-8-i', + 'logical': 'iso-8859-8-i', + 'csisolatin6': 'iso-8859-10', + 'iso-8859-10': 'iso-8859-10', + 'iso-ir-157': 'iso-8859-10', + 'iso8859-10': 'iso-8859-10', + 'iso885910': 'iso-8859-10', + 'l6': 'iso-8859-10', + 'latin6': 'iso-8859-10', + 'iso-8859-13': 'iso-8859-13', + 'iso8859-13': 'iso-8859-13', + 'iso885913': 'iso-8859-13', + 'iso-8859-14': 'iso-8859-14', + 'iso8859-14': 'iso-8859-14', + 'iso885914': 'iso-8859-14', + 'csisolatin9': 'iso-8859-15', + 'iso-8859-15': 'iso-8859-15', + 'iso8859-15': 'iso-8859-15', + 'iso885915': 'iso-8859-15', + 'iso_8859-15': 'iso-8859-15', + 'l9': 'iso-8859-15', + 'iso-8859-16': 'iso-8859-16', + 'cskoi8r': 'koi8-r', + 'koi': 'koi8-r', + 'koi8': 'koi8-r', + 'koi8-r': 'koi8-r', + 'koi8_r': 'koi8-r', + 'koi8-u': 'koi8-u', + 'csmacintosh': 'macintosh', + 'mac': 'macintosh', + 'macintosh': 'macintosh', + 'x-mac-roman': 'macintosh', + 'dos-874': 'windows-874', + 'iso-8859-11': 'windows-874', + 'iso8859-11': 'windows-874', + 'iso885911': 'windows-874', + 'tis-620': 'windows-874', + 'windows-874': 'windows-874', + 'cp1250': 'windows-1250', + 'windows-1250': 'windows-1250', + 'x-cp1250': 'windows-1250', + 'cp1251': 'windows-1251', + 'windows-1251': 'windows-1251', + 'x-cp1251': 'windows-1251', + 'ansi_x3.4-1968': 'windows-1252', + 'ascii': 'windows-1252', + 'cp1252': 'windows-1252', + 'cp819': 'windows-1252', + 'csisolatin1': 'windows-1252', + 'ibm819': 'windows-1252', + 'iso-8859-1': 'windows-1252', + 'iso-ir-100': 'windows-1252', + 'iso8859-1': 'windows-1252', + 'iso88591': 'windows-1252', + 'iso_8859-1': 'windows-1252', + 'iso_8859-1:1987': 'windows-1252', + 'l1': 'windows-1252', + 'latin1': 'windows-1252', + 'us-ascii': 'windows-1252', + 'windows-1252': 'windows-1252', + 'x-cp1252': 'windows-1252', + 'cp1253': 'windows-1253', + 'windows-1253': 'windows-1253', + 'x-cp1253': 'windows-1253', + 'cp1254': 'windows-1254', + 'csisolatin5': 'windows-1254', + 'iso-8859-9': 'windows-1254', + 'iso-ir-148': 'windows-1254', + 'iso8859-9': 'windows-1254', + 'iso88599': 'windows-1254', + 'iso_8859-9': 'windows-1254', + 'iso_8859-9:1989': 'windows-1254', + 'l5': 'windows-1254', + 'latin5': 'windows-1254', + 'windows-1254': 'windows-1254', + 'x-cp1254': 'windows-1254', + 'cp1255': 'windows-1255', + 'windows-1255': 'windows-1255', + 'x-cp1255': 'windows-1255', + 'cp1256': 'windows-1256', + 'windows-1256': 'windows-1256', + 'x-cp1256': 'windows-1256', + 'cp1257': 'windows-1257', + 'windows-1257': 'windows-1257', + 'x-cp1257': 'windows-1257', + 'cp1258': 'windows-1258', + 'windows-1258': 'windows-1258', + 'x-cp1258': 'windows-1258', + 'x-mac-cyrillic': 'x-mac-cyrillic', + 'x-mac-ukrainian': 'x-mac-cyrillic', + 'chinese': 'gbk', + 'csgb2312': 'gbk', + 'csiso58gb231280': 'gbk', + 'gb2312': 'gbk', + 'gb_2312': 'gbk', + 'gb_2312-80': 'gbk', + 'gbk': 'gbk', + 'iso-ir-58': 'gbk', + 'x-gbk': 'gbk', + 'gb18030': 'gb18030', + 'hz-gb-2312': 'hz-gb-2312', + 'big5': 'big5', + 'big5-hkscs': 'big5', + 'cn-big5': 'big5', + 'csbig5': 'big5', + 'x-x-big5': 'big5', + 'cseucpkdfmtjapanese': 'euc-jp', + 'euc-jp': 'euc-jp', + 'x-euc-jp': 'euc-jp', + 'csiso2022jp': 'iso-2022-jp', + 'iso-2022-jp': 'iso-2022-jp', + 'csshiftjis': 'shift_jis', + 'ms_kanji': 'shift_jis', + 'shift-jis': 'shift_jis', + 'shift_jis': 'shift_jis', + 'sjis': 'shift_jis', + 'windows-31j': 'shift_jis', + 'x-sjis': 'shift_jis', + 'cseuckr': 'euc-kr', + 'csksc56011987': 'euc-kr', + 'euc-kr': 'euc-kr', + 'iso-ir-149': 'euc-kr', + 'korean': 'euc-kr', + 'ks_c_5601-1987': 'euc-kr', + 'ks_c_5601-1989': 'euc-kr', + 'ksc5601': 'euc-kr', + 'ksc_5601': 'euc-kr', + 'windows-949': 'euc-kr', + 'csiso2022kr': 'iso-2022-kr', + 'iso-2022-kr': 'iso-2022-kr', + 'utf-16be': 'utf-16be', + 'utf-16': 'utf-16le', + 'utf-16le': 'utf-16le', + 'x-user-defined': 'x-user-defined', +} diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/mklabels.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/mklabels.py new file mode 100644 index 00000000..295dc928 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/mklabels.py @@ -0,0 +1,59 @@ +""" + + webencodings.mklabels + ~~~~~~~~~~~~~~~~~~~~~ + + Regenarate the webencodings.labels module. + + :copyright: Copyright 2012 by Simon Sapin + :license: BSD, see LICENSE for details. + +""" + +import json +try: + from urllib import urlopen +except ImportError: + from urllib.request import urlopen + + +def assert_lower(string): + assert string == string.lower() + return string + + +def generate(url): + parts = ['''\ +""" + + webencodings.labels + ~~~~~~~~~~~~~~~~~~~ + + Map encoding labels to their name. + + :copyright: Copyright 2012 by Simon Sapin + :license: BSD, see LICENSE for details. + +""" + +# XXX Do not edit! +# This file is automatically generated by mklabels.py + +LABELS = { +'''] + labels = [ + (repr(assert_lower(label)).lstrip('u'), + repr(encoding['name']).lstrip('u')) + for category in json.loads(urlopen(url).read().decode('ascii')) + for encoding in category['encodings'] + for label in encoding['labels']] + max_len = max(len(label) for label, name in labels) + parts.extend( + ' %s:%s %s,\n' % (label, ' ' * (max_len - len(label)), name) + for label, name in labels) + parts.append('}') + return ''.join(parts) + + +if __name__ == '__main__': + print(generate('http://encoding.spec.whatwg.org/encodings.json')) diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/tests.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/tests.py new file mode 100644 index 00000000..e12c10d0 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/tests.py @@ -0,0 +1,153 @@ +# coding: utf-8 +""" + + webencodings.tests + ~~~~~~~~~~~~~~~~~~ + + A basic test suite for Encoding. + + :copyright: Copyright 2012 by Simon Sapin + :license: BSD, see LICENSE for details. + +""" + +from __future__ import unicode_literals + +from . import (lookup, LABELS, decode, encode, iter_decode, iter_encode, + IncrementalDecoder, IncrementalEncoder, UTF8) + + +def assert_raises(exception, function, *args, **kwargs): + try: + function(*args, **kwargs) + except exception: + return + else: # pragma: no cover + raise AssertionError('Did not raise %s.' % exception) + + +def test_labels(): + assert lookup('utf-8').name == 'utf-8' + assert lookup('Utf-8').name == 'utf-8' + assert lookup('UTF-8').name == 'utf-8' + assert lookup('utf8').name == 'utf-8' + assert lookup('utf8').name == 'utf-8' + assert lookup('utf8 ').name == 'utf-8' + assert lookup(' \r\nutf8\t').name == 'utf-8' + assert lookup('u8') is None # Python label. + assert lookup('utf-8 ') is None # Non-ASCII white space. + + assert lookup('US-ASCII').name == 'windows-1252' + assert lookup('iso-8859-1').name == 'windows-1252' + assert lookup('latin1').name == 'windows-1252' + assert lookup('LATIN1').name == 'windows-1252' + assert lookup('latin-1') is None + assert lookup('LATİN1') is None # ASCII-only case insensitivity. + + +def test_all_labels(): + for label in LABELS: + assert decode(b'', label) == ('', lookup(label)) + assert encode('', label) == b'' + for repeat in [0, 1, 12]: + output, _ = iter_decode([b''] * repeat, label) + assert list(output) == [] + assert list(iter_encode([''] * repeat, label)) == [] + decoder = IncrementalDecoder(label) + assert decoder.decode(b'') == '' + assert decoder.decode(b'', final=True) == '' + encoder = IncrementalEncoder(label) + assert encoder.encode('') == b'' + assert encoder.encode('', final=True) == b'' + # All encoding names are valid labels too: + for name in set(LABELS.values()): + assert lookup(name).name == name + + +def test_invalid_label(): + assert_raises(LookupError, decode, b'\xEF\xBB\xBF\xc3\xa9', 'invalid') + assert_raises(LookupError, encode, 'é', 'invalid') + assert_raises(LookupError, iter_decode, [], 'invalid') + assert_raises(LookupError, iter_encode, [], 'invalid') + assert_raises(LookupError, IncrementalDecoder, 'invalid') + assert_raises(LookupError, IncrementalEncoder, 'invalid') + + +def test_decode(): + assert decode(b'\x80', 'latin1') == ('€', lookup('latin1')) + assert decode(b'\x80', lookup('latin1')) == ('€', lookup('latin1')) + assert decode(b'\xc3\xa9', 'utf8') == ('é', lookup('utf8')) + assert decode(b'\xc3\xa9', UTF8) == ('é', lookup('utf8')) + assert decode(b'\xc3\xa9', 'ascii') == ('é', lookup('ascii')) + assert decode(b'\xEF\xBB\xBF\xc3\xa9', 'ascii') == ('é', lookup('utf8')) # UTF-8 with BOM + + assert decode(b'\xFE\xFF\x00\xe9', 'ascii') == ('é', lookup('utf-16be')) # UTF-16-BE with BOM + assert decode(b'\xFF\xFE\xe9\x00', 'ascii') == ('é', lookup('utf-16le')) # UTF-16-LE with BOM + assert decode(b'\xFE\xFF\xe9\x00', 'ascii') == ('\ue900', lookup('utf-16be')) + assert decode(b'\xFF\xFE\x00\xe9', 'ascii') == ('\ue900', lookup('utf-16le')) + + assert decode(b'\x00\xe9', 'UTF-16BE') == ('é', lookup('utf-16be')) + assert decode(b'\xe9\x00', 'UTF-16LE') == ('é', lookup('utf-16le')) + assert decode(b'\xe9\x00', 'UTF-16') == ('é', lookup('utf-16le')) + + assert decode(b'\xe9\x00', 'UTF-16BE') == ('\ue900', lookup('utf-16be')) + assert decode(b'\x00\xe9', 'UTF-16LE') == ('\ue900', lookup('utf-16le')) + assert decode(b'\x00\xe9', 'UTF-16') == ('\ue900', lookup('utf-16le')) + + +def test_encode(): + assert encode('é', 'latin1') == b'\xe9' + assert encode('é', 'utf8') == b'\xc3\xa9' + assert encode('é', 'utf8') == b'\xc3\xa9' + assert encode('é', 'utf-16') == b'\xe9\x00' + assert encode('é', 'utf-16le') == b'\xe9\x00' + assert encode('é', 'utf-16be') == b'\x00\xe9' + + +def test_iter_decode(): + def iter_decode_to_string(input, fallback_encoding): + output, _encoding = iter_decode(input, fallback_encoding) + return ''.join(output) + assert iter_decode_to_string([], 'latin1') == '' + assert iter_decode_to_string([b''], 'latin1') == '' + assert iter_decode_to_string([b'\xe9'], 'latin1') == 'é' + assert iter_decode_to_string([b'hello'], 'latin1') == 'hello' + assert iter_decode_to_string([b'he', b'llo'], 'latin1') == 'hello' + assert iter_decode_to_string([b'hell', b'o'], 'latin1') == 'hello' + assert iter_decode_to_string([b'\xc3\xa9'], 'latin1') == 'é' + assert iter_decode_to_string([b'\xEF\xBB\xBF\xc3\xa9'], 'latin1') == 'é' + assert iter_decode_to_string([ + b'\xEF\xBB\xBF', b'\xc3', b'\xa9'], 'latin1') == 'é' + assert iter_decode_to_string([ + b'\xEF\xBB\xBF', b'a', b'\xc3'], 'latin1') == 'a\uFFFD' + assert iter_decode_to_string([ + b'', b'\xEF', b'', b'', b'\xBB\xBF\xc3', b'\xa9'], 'latin1') == 'é' + assert iter_decode_to_string([b'\xEF\xBB\xBF'], 'latin1') == '' + assert iter_decode_to_string([b'\xEF\xBB'], 'latin1') == 'ï»' + assert iter_decode_to_string([b'\xFE\xFF\x00\xe9'], 'latin1') == 'é' + assert iter_decode_to_string([b'\xFF\xFE\xe9\x00'], 'latin1') == 'é' + assert iter_decode_to_string([ + b'', b'\xFF', b'', b'', b'\xFE\xe9', b'\x00'], 'latin1') == 'é' + assert iter_decode_to_string([ + b'', b'h\xe9', b'llo'], 'x-user-defined') == 'h\uF7E9llo' + + +def test_iter_encode(): + assert b''.join(iter_encode([], 'latin1')) == b'' + assert b''.join(iter_encode([''], 'latin1')) == b'' + assert b''.join(iter_encode(['é'], 'latin1')) == b'\xe9' + assert b''.join(iter_encode(['', 'é', '', ''], 'latin1')) == b'\xe9' + assert b''.join(iter_encode(['', 'é', '', ''], 'utf-16')) == b'\xe9\x00' + assert b''.join(iter_encode(['', 'é', '', ''], 'utf-16le')) == b'\xe9\x00' + assert b''.join(iter_encode(['', 'é', '', ''], 'utf-16be')) == b'\x00\xe9' + assert b''.join(iter_encode([ + '', 'h\uF7E9', '', 'llo'], 'x-user-defined')) == b'h\xe9llo' + + +def test_x_user_defined(): + encoded = b'2,\x0c\x0b\x1aO\xd9#\xcb\x0f\xc9\xbbt\xcf\xa8\xca' + decoded = '2,\x0c\x0b\x1aO\uf7d9#\uf7cb\x0f\uf7c9\uf7bbt\uf7cf\uf7a8\uf7ca' + encoded = b'aa' + decoded = 'aa' + assert decode(encoded, 'x-user-defined') == (decoded, lookup('x-user-defined')) + assert encode(decoded, 'x-user-defined') == encoded diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/x_user_defined.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/x_user_defined.py new file mode 100644 index 00000000..d16e3260 --- /dev/null +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/x_user_defined.py @@ -0,0 +1,325 @@ +# coding: utf-8 +""" + + webencodings.x_user_defined + ~~~~~~~~~~~~~~~~~~~~~~~~~~~ + + An implementation of the x-user-defined encoding. + + :copyright: Copyright 2012 by Simon Sapin + :license: BSD, see LICENSE for details. + +""" + +from __future__ import unicode_literals + +import codecs + + +### Codec APIs + +class Codec(codecs.Codec): + + def encode(self, input, errors='strict'): + return codecs.charmap_encode(input, errors, encoding_table) + + def decode(self, input, errors='strict'): + return codecs.charmap_decode(input, errors, decoding_table) + + +class IncrementalEncoder(codecs.IncrementalEncoder): + def encode(self, input, final=False): + return codecs.charmap_encode(input, self.errors, encoding_table)[0] + + +class IncrementalDecoder(codecs.IncrementalDecoder): + def decode(self, input, final=False): + return codecs.charmap_decode(input, self.errors, decoding_table)[0] + + +class StreamWriter(Codec, codecs.StreamWriter): + pass + + +class StreamReader(Codec, codecs.StreamReader): + pass + + +### encodings module API + +codec_info = codecs.CodecInfo( + name='x-user-defined', + encode=Codec().encode, + decode=Codec().decode, + incrementalencoder=IncrementalEncoder, + incrementaldecoder=IncrementalDecoder, + streamreader=StreamReader, + streamwriter=StreamWriter, +) + + +### Decoding Table + +# Python 3: +# for c in range(256): print(' %r' % chr(c if c < 128 else c + 0xF700)) +decoding_table = ( + '\x00' + '\x01' + '\x02' + '\x03' + '\x04' + '\x05' + '\x06' + '\x07' + '\x08' + '\t' + '\n' + '\x0b' + '\x0c' + '\r' + '\x0e' + '\x0f' + '\x10' + '\x11' + '\x12' + '\x13' + '\x14' + '\x15' + '\x16' + '\x17' + '\x18' + '\x19' + '\x1a' + '\x1b' + '\x1c' + '\x1d' + '\x1e' + '\x1f' + ' ' + '!' + '"' + '#' + '$' + '%' + '&' + "'" + '(' + ')' + '*' + '+' + ',' + '-' + '.' + '/' + '0' + '1' + '2' + '3' + '4' + '5' + '6' + '7' + '8' + '9' + ':' + ';' + '<' + '=' + '>' + '?' + '@' + 'A' + 'B' + 'C' + 'D' + 'E' + 'F' + 'G' + 'H' + 'I' + 'J' + 'K' + 'L' + 'M' + 'N' + 'O' + 'P' + 'Q' + 'R' + 'S' + 'T' + 'U' + 'V' + 'W' + 'X' + 'Y' + 'Z' + '[' + '\\' + ']' + '^' + '_' + '`' + 'a' + 'b' + 'c' + 'd' + 'e' + 'f' + 'g' + 'h' + 'i' + 'j' + 'k' + 'l' + 'm' + 'n' + 'o' + 'p' + 'q' + 'r' + 's' + 't' + 'u' + 'v' + 'w' + 'x' + 'y' + 'z' + '{' + '|' + '}' + '~' + '\x7f' + '\uf780' + '\uf781' + '\uf782' + '\uf783' + '\uf784' + '\uf785' + '\uf786' + '\uf787' + '\uf788' + '\uf789' + '\uf78a' + '\uf78b' + '\uf78c' + '\uf78d' + '\uf78e' + '\uf78f' + '\uf790' + '\uf791' + '\uf792' + '\uf793' + '\uf794' + '\uf795' + '\uf796' + '\uf797' + '\uf798' + '\uf799' + '\uf79a' + '\uf79b' + '\uf79c' + '\uf79d' + '\uf79e' + '\uf79f' + '\uf7a0' + '\uf7a1' + '\uf7a2' + '\uf7a3' + '\uf7a4' + '\uf7a5' + '\uf7a6' + '\uf7a7' + '\uf7a8' + '\uf7a9' + '\uf7aa' + '\uf7ab' + '\uf7ac' + '\uf7ad' + '\uf7ae' + '\uf7af' + '\uf7b0' + '\uf7b1' + '\uf7b2' + '\uf7b3' + '\uf7b4' + '\uf7b5' + '\uf7b6' + '\uf7b7' + '\uf7b8' + '\uf7b9' + '\uf7ba' + '\uf7bb' + '\uf7bc' + '\uf7bd' + '\uf7be' + '\uf7bf' + '\uf7c0' + '\uf7c1' + '\uf7c2' + '\uf7c3' + '\uf7c4' + '\uf7c5' + '\uf7c6' + '\uf7c7' + '\uf7c8' + '\uf7c9' + '\uf7ca' + '\uf7cb' + '\uf7cc' + '\uf7cd' + '\uf7ce' + '\uf7cf' + '\uf7d0' + '\uf7d1' + '\uf7d2' + '\uf7d3' + '\uf7d4' + '\uf7d5' + '\uf7d6' + '\uf7d7' + '\uf7d8' + '\uf7d9' + '\uf7da' + '\uf7db' + '\uf7dc' + '\uf7dd' + '\uf7de' + '\uf7df' + '\uf7e0' + '\uf7e1' + '\uf7e2' + '\uf7e3' + '\uf7e4' + '\uf7e5' + '\uf7e6' + '\uf7e7' + '\uf7e8' + '\uf7e9' + '\uf7ea' + '\uf7eb' + '\uf7ec' + '\uf7ed' + '\uf7ee' + '\uf7ef' + '\uf7f0' + '\uf7f1' + '\uf7f2' + '\uf7f3' + '\uf7f4' + '\uf7f5' + '\uf7f6' + '\uf7f7' + '\uf7f8' + '\uf7f9' + '\uf7fa' + '\uf7fb' + '\uf7fc' + '\uf7fd' + '\uf7fe' + '\uf7ff' +) + +### Encoding table +encoding_table = codecs.charmap_build(decoding_table) diff --git a/venv/Lib/site-packages/setuptools-39.1.0-py3.8.egg b/venv/Lib/site-packages/setuptools-39.1.0-py3.8.egg new file mode 100644 index 0000000000000000000000000000000000000000..726a0c7377bc33c6686e6315147bc66c2e7de8ea GIT binary patch literal 563215 zcmZU&V{m3c*ESm4p74%sXJXsQ#5V5Owl%Riv2EM7ZBDE+&-b4C&hys!v8sBnu3qc9 zy4JpSuim7@j7F9~MkfnII7>5tHo(Bh(8&~NXln`}V=@5n0Z5!oon7pm?d)uv=vlcL zm>HPp?LAl-xEM^$%}D^dh;Yspra*wHyQwk2-ox3#4)|{lKyM5nv9z_fb94qcc{tGl z?3{l7XTV@@=xo7Y33M`bbf#kZkNbZ-hDJ{RnW3U2W1^&{{s}O1w6g{Le|Z^<?QCrg zfhG*5hE5*(|CT!&+Sma8-}pv$cFs=Dj)wOClfl&8(wXZ2`lzU>NdP2df+UD=rZ!Hd zh;RUasj-FKKWYF=CjijS8SoE1z}U{w(bU)(@PAmF**X4m{+s>B4`60#W6JP<S1H>3 z17Hep{GaWybOsn18e0RL?fwhu|8I)`|8N7G9X$Ys=7yHQ|B3aVy)rZWKX}Y65#bbN zz#%X|KtNzX#DcP9brjmgEdM?E{xjr%_TQWt>^<lwnUR775k%*F6%5+~*zf^prjd<0 z1||t&nwGYt%NT8ZD9lT2H>?khcte~EGV3?C^hN3!x@wmLlhnx}Am~#dF{Cd3(#&~Y z6g(|9)r*do)~zcXo6e)=NJrP0x<2sjyF|JrensH_A1bO26(yB*z_KL-2nYlM2ngyw zRALem^iuNT3XF;}|1-!|-*DXEK=E0L{sQ$Gb*3Qw-AyJpu`H#wA;)$n7IS!97ut&% z5=@3dN0siE3&}`AtqrshNJ9x|@N#u<O-(iM7^Hvxf(%kNCH{Gj92P{IBRq;?Q(dJD ziv+##d9d>#@@>GCc4Rp&hg$Cx%R;SD#GzT>&Sn&)L-9BMhgJ?5Y0AawEsS`yIqF2i z8($`t>mQclwwG~Z05*{-Tu!mesQR)MLJ%OuHJQ;ne_jwf16o)7AnTUG=2BMXCrgxO z6S3`F)*ax81y+-6?pU4TG(Y-#k$n0W1tAhckw3!N-PF=Z#l_68fxg93MnI+8!x@Q* zx%45mNs6{~pT$JA=>gtug04^z#G5kYK;Mr%Cglwl^X?gwb1-YtM9a$qX<@WvkVtu` zi)t|)bjIbckd#au8|ywH{CB}$s$OH3idW~LNV@X`BCB;6bnX};w?JLpZ>fIzyerg> z85=u2-}n`IVC9~5L<bm*ax7N##6m|fBY?XtUeot^|1@urh)=(hC-3_KO)hF-?BKO> z)4f3cym~WdAj`TdR5)F5bQhjer&I#`g^snHq!YWpmE(cSk7WC$0<Jh^$Y%t8fVHmt zQ-HBvxu(6;G{7rlquLB4I;j^(srH%LG`NYJ2;Xvj_!3t&oLTU+VTE`OC2SYe((<j8 zOMP|S9I(8O82I{Q?OjK_H)T92yUbx6W&zhGL#^$ysUl}c6YokSe>y@w+lL}yOZho} zo0v5mr{%J%k?39w@8FA2Vvf(^J2%U!mh6TKZT6AEq*d7itqxMLko7QgQ&a7zbLCY_ zq?*1xHhtDrEc~T4b<5ehtgkgyXhwS0{P`ClE4bDV?K-eU02z6;LA5ao_EePy=<kI< zu4c(e?6SsdQLznTt95u5X;bQMSJOA}2zWA*BMben^`$ZrsZw&jhH!{Ep!;V}SnUbf zm$0eeeLl-R8RfVM{cwsjDFj*`z#Kl-pAC<ohk^~iNqi_0!zf9*ZeIU6bT$I^`tOrf zDvi|QFt-ijrhL?yJ7+bAdFIrx+n6Ief~I2ALof5g;yn7&odKr<QT{3wy5XpN$pI}* z(^(NgF~UAhCbN7nt0$MxJOcTHs-2~IWex?t5(D|{E`Ja^nRG{kjd%mQggD{}`vVT* zPHFj!KL-}<-vD%JcPu5OVGlB5^j-TVc4_l(d%pFpgp0LcB}R5DIgK|T?sU!#pGo%g zy(6D#xOt#fz?dDxx`%6@%M7~yIj-e73N~+)Q)-0$yQOeNAtm?+r$Pw6z>i%4@cZ+# z_!Wh)kNL34<dpua$;EkKYe0^>u-gRNVl>1hPCFSYx&J$zt(~jQpma3>UYPC4$ail! zX1#-Gf+BO8W5HFxmf{~tT7pc4Tly05Fg-C=6FY^|dI^DS{CDWDiF*$Xfw+&<E=H-i z^YkLSE|2^(<E8#=#B1K5C$|+Y1eff@%-5amnxm78j9~)L6F1Rl{v+nLZ)Fgdi@n{S z|67+jCDk3FAwfV?u|YuoqoMy-msAwgltsi;7@Xamvo&O#{z+5!#jnFvLQ%P@MLsVb z^2Z`q9tWpk!NbV@a0nETq`|K@hL?Cj6n}hu8;2fbcmuaKWd5(m+k20P3~E~}KLI|V zo*rk^Nmy!$LgtDe>oE2X2eKc(9gjP0@SM0(`j~41d^c-e%qOC1OR$5jh1%LlBnR(K z(D=PrRotuNMs2x<-XE8`_`fjhx4<@=pJLGsAy5mWbUVodjG{4IZi>W?U7p3zt95X1 zlwMFWXM}KE!sKM7rfaoeEKVHgc^g+GS@^FcTd-;>g*AbE3*x0uGzOji506TO(glK1 z;zzr519(@E`udP?G@EmOs9xrnmezWc;j|VlcBArGgHQ_`B?krRX(Poi;tKEDwae?f z$|@4-B&KNP<q8d!_)L~Hh%w|0H28T<+m;8(Eb8gsNl6`;+dd=n_|l1soX#Nff1_UP ze<7*JHec*GD#=(KUyP!<6RQe8jOHn0$)0fuHUFlWa{p0c;TjwCDL@6r*=i&708Z}! z&&#+KN#S9T>V4se^qlespQgJ^4yc=2KOUl|;^JQf%D5<X*d0(qerPkYUE0N5>4|<9 z4wt^`M3aR`l~Zet9m(nNo_cu;NeW2;I@IjW(g!Z#bgD$llVv$B$-Fbn1M4E_g))he z;wFcah{t18e$V$4tS;p#k3lIB7va&r(`e#R7s~wh&odGDd^(I1GA&;=<ml`V#pvqg z?j*}^&*d3!1W*Y*b(_o?6Qhf$jM?N$XJ7K9w}S2r4<3h;pQOtW(}arfzW&SDMz()N zvzGIihx>Z`h@J)C-VO`_0^6TJ3vTVj?N5g(9Q0nfb`=8x@arJ|;?7mLZ%LkCvKh!d z23Mc#tQu9vyE>BybPhr3YE9MQz#@$Coz6WvY%!woucPdbT}cHm5P^Mp3sr~tJw6ty z3G#!Vb#EsVCr1ktB{f2~j~CB&ajW8M_bC1ErBFF7MMfWag`$(?<>bn>b&N0xp&0m- zIK)z>?>STl0u-qk*A&bI<t?D@$}-?Dijv@?MUhaPDYo);Qe=mo;hi_dDHmRg89Q2L zoIPD6$`y7@3+k|HXKZ#_1&KN(^<*Bt4)VWClDVZ2y9~!Nya$r1b0wfZvNpCcsZk+= z2DZDl9S*%*xVqhIBIn-j9^GefA6)2?B+}HQ-=+!cs;UMd79`Pr)ywavIbPjj9yr^= zJfZqd<)GDqO771ywvzJ71~V@b&K{4#Tq|@COKTRh6=5S&d1RuYwaky6Uf53NA834m z=B`d7?Vq&6p%&8jN-8QAoZ0ur^@2%AhWlp_3JoHcfq(8mf>*jS+kc3n`r~TuHD*IZ z5CntUmT>BEoq9K?1*{_AsqSA~3GGT0Ll6nXOxnNSk#;(cOy?`l2Q^XMX0v)tI&)Bw zj2CX1BR@MdHhQLL@Ad40LoYgDflfF6#^J|TryFZc(uhrSIJPtrhn3}Jou<p=ir)1; z*iBF}ABU0ULl>qpZwr3K+t1Ip*;hpKm@*A%_$|PS{2;wAe0Ir3j7x>d{xEFB;(<Iy zJDsMWjpRxC_kFCZN5uldNn<Zyl)Q-Vi0wj29#Fw;VMXI;Ifro)&xDsAs-BjzpEWCc z)IZ?vqO3aZQNztrXm_@j6>2xlTI)1)%UzUP5w0prWwuVNuu%R@_ogDlJ}`%&{*$;_ z6*1TQC%p*EAAC7Shd?~yDif+VqW>+NoNM}9DgOlX=ARM#w{V)6+M5DROo7H8`Zkt8 zYp4GxX!6t;Qa=DgaIULouRSi`l;zHtiWg1^9#q!2XPekzZ+>Y?H+$8~l2TZ>-6-h( zl(~kvC6>@pSF-Nf2-~LU$je0%-$BC*?rbAKg`y86b=Ee-RA9T4Yi8LhRGeud232cR z$?BkK5eFwZQDE?UHO9u$C#vcsQh-%)x3=Wofu5!s965>RNtyDhOhsMB^jL}IFpTnl z6Ur{V!z%;>0jY)u0r~OYgiL||j^FzBc9uZr{~@D31>6LnbU$Et1YG8~sY-S=m(w)0 zNuV0tT|!kMV%T$BFSzyY)~4L8W3#$<+xbpTreWtNFVHhlR<dn(q3r?<l(}a%p7u6^ zz<2O!TrQA=-3We7<%`b7%D4=8c=LE~jgvCQICnqaqlcj0synvWkd#|^|2E!b;mS?T zPt1^4F3?!0Qc{$oq*kg{4(VO7fEBiLJzSk=HY`XUfpeQ*P++dxEj(tbI3pvE{IQH< zmZu3o>=db(V&SE>)RK~wDo?ELZOD+H-)5oVgov{m(q5jYi&x`Z6XD2FZ@xB(EqK6A z%s!vP0?`^pXLi}-;SM;pQJ~AZQwh>FGpC;dt6O(M#&lksb0CiG3924WZeoKU3}LPD z4~iV76k_kEZ7nT45awOHghWI{p3hW&F#ExNe%eY#X5Cn7q6%U`yfaxWX^f3iy&ei1 zBJw~`X|CVt3wMgLFzGFu{S(_@TDxr8{RPJZ97+{j8lm-9Y7E`3dF^E2LKkLja#1Hi z+MF^y6y>&{js`5rE%ACcs99@kp2V{KOvNNxu&iC%0L=H(yzrKGupzw7eWD}JerB2V z?=Vkc*jXV-$vY%`&vcz7kMSS%0yiCIto~_zJ(ey4zUG3XiGw)=6+r#|d^Am}{Z|Vr zn0nTAPhT6u;0?Vp0{fMTS2F6^-1zWreKgL!XCxz)E$UDN<2D0@d+^KQ=Cn~S$?qb= z*xZzPDsWQ9*Khk)tq&-yu%U+<qBsFRzi+1#JFL4&o%tJ6eoCZnSG+Vji!7-^OyJB| zFV=Rl_7GaunQ<%9{@IlHH1PY#U=2-_4C;6ApYE+If#)f+ofe-WMC*Yob5?>M3B5*_ z8nBS$h>X{N)NA%U4+Q_#{o&AwsjcNrA>j=Efd1c=4W=KyDE_aaW&RoFe^<7nse_B9 zqv`*t>Vrsmd3qY^*ds8dbj$SSW^t%cGtU%HaWfsAxuGF$^`YdUJ4o&ba?4k-w&v#Z zqjZm9@$)(zLEOp)vL33X<z>N{aCngaotQ}nG=b`0LW+Ne_1}q|?d<h!OkGWF{v!@D za&*<vGn2FoQj=qQG^6ryjMDVejP%m-^v5*v^wjiJV>2_<$6)^zTk&6;n+UbS0{$;1 z=s){k4W*~0J-w5mnd!lQulP@6oS)o!9s&dbsYwF;KQFkwwYmO3@^&tc#->h;`v2|) zES>fB|Fy_dT^F8s62Ad&xe7{hvDp3)DZs4_*85pLE2*t20_}b2dOkijY$`CZ`V0fi zXfVnAF5kw7Yzdwk`~8d`>B*4Ft~b6xH5(*~nh7nVqpc%C9M;EbK6ktul{3iS9(I0y zemAXYx|rCe%`_Wk4H?O6Q3sq}VG%Ri+weQ3Rt+TDY}iYc8YU-81rVc;?WO0AIa}%% z6Xl^NGEjWe8Oe5CE5PaFrShz*%q0$O{gjG&?wN+m1Jg1_2;;GF1sRLYH=>LEcAMvA zIakfiB$#}yzRU}mml?SACh`yMN>jj^^P2?^fjRQI*(ac*D;S#d2yQ13bkF`&&I5W_ zvxzC?mmJhogPgXRT&7BtnWk`1dD#YnXE(#SRhuRV6K5qKuDYvw|69N0Iu?}T(kxa- zpvR$?SC>lgQdX+1OF#v*-6lr`Eur^TWwmL*hHVE!&EuzQXKE@o_J>Ip<|FUM;tK-c z1)3?D^TI~G*NjdpK;~ydX*I1@zL5;U)sbIK$_G+k!L)g%>z0oBNKIUWd0cM4Bj$r6 z<U$zx<ocB3TIDiZ+u7d&9fjkecAVJag{})npS4LR;p(mjOu;nSY0itO@+{f<^9()O z>2<R@%~bTS?iR|P0kX%L;ZHU8x0UvGhR2)ack3?QlxpTl@DjsrY3%y}+q!bYFr9Z- z-B$CHOx)Uf&DOAqim0h}tyW@GBsSV-9F$#rSIM54j3F>Z%!EPCvh~LTo`stu7bSX- zLUr4--lPh(s}c=8XmpL#+~t-EqcbdH-ReMQb(g4<pkG>0l@rnL{eHrBUKdMGuX<2K z9+7cR;|dLqZPVMc3N^nf%!X`{>JR8IjkEbCa{C9X_fS;LmkPA(=wV(cX|+NR#hH{g zflfHyZRJfa+CJxYNdpTX?QNh4NynK>VCq1GFk5c%%_1p$5FSR<bd<+k?|ujFjeUm+ zEy2x(V{{t^w|RHLU{2uM+`<JdK*G3}lDF5GOFXK)yC8I@$M50p@o=DJWaMVsZ!)$% zu0pQOxX+5qkam@b5C6cX&1yQbVF=5=e{SsSW8VesI(OGO#p|vVbi+z#vp9P<_bqKK zq1sQz*ba1Rc?<E_&j9h^!U&424I)sx@#`ewUDHf)(m=o;ta7E|93hsnngPHy@1-e~ zG194np-pC2?|*cOc53LgbzJ-m;>(}DdoEAWHIeELtA1>&a?yXdzUBCS2}^poh4YIp zwN~(I3o*Tt<XZM{P?lmq2u(qE0iWSF7Sg-HUv9=d%c^Nw_s55A?PLMq?s_M~#iMz* zhi+wc>(9J~leOD5E-&8kFU*K4c|+x;6U2|;nVcAR33V~ZlZ(&d;RTVO?3-?Edq1|% z+`so?(#KYh-$~Cw74Gl!bI;pe+}A+z8W6J#TD@^VPf6%^F*w=r<2*d%v%q<m2~W2U z99?vqxCGDjQNf71Y?m4JsPRyFA<>u_&EX-oIaW+v>-<Gp<Gn7Lwdi(ZUHR@YmJvG_ z!9uKOS|)LOrx0lqZ^kAuIJWa@ixQi4E)<5m`KkR+cTn7zggo`Zp3aS17!zH)Xrin? zeVVDFJRAPLWA!kB4qkm=_4_Ny8npa^+~P(jLAb*cC04eNmrKaKlTQcHt7=X(1!uj9 zg)~nN4C2HjyqpfYNAKL*?bXqupyra-@Gv6#OUx|qUws5II_jO^TjU+LVX7fi^wyjG z@zfI6bE54-wMwH8nUH|m=hq{aa`}W-O5>0{H~<D}u^~5xppY=;Ab99{lB6L-#uY_h z{i9AMII9<1Xr=AK*bcdtrm(|@#6Ogi1xh00%p}=9U`aD9{&1(QrL<~x9N5A6C|6f{ zJpV!H-^0Kdxwh=Tvylln0SBkIX!Cp13>8Rd7>EnI#aW}>%_Y*=8rL}#M3i_n;~o*e z4JO2if3wh=TIN>Xsc_s79&n&Qks!UY2h)M;;rbzs{5M%bjG#ZaTBW<+FsK>?OBrE< z*5KZyLJ_|xu|g%-o+Yhu6cw>PY;Ef77R=YoqTXh4Ii~!vu)xpd{^y7=eMezlwf5P1 zG`6@sPq3Q<6-d4x8yiqZW;H%!-W&)maM)nhM$iuVC#RH|jt54+S9t9Qn>jaHZZZN< z_qd)zVcx{?rJbpM$=)zz_Jp<17A00H3Yu5tp8WtCEB<ReRrSoV*i)W{ZsW}3i?Q8H zAd~iycfsY$Z0`FruTH##_DB`7)-IKR+DfMN$V%W#Ii+cwo|tDyG}|uo2j_?{uXDoq z?zUF)s*B98VHY)YS<pczzL{=nv$YQ7HNVlv1sg1<PQSmyqDU8@qv^;joy`|1*J1{E zCz(HZc{juh$La-u%Va}lErN}ao>LIEuA0-gMsVCNMfM=y<v^fAIK+ff>-4O2dmK?E z2mAaqG}UiT04Kxlkz5pswbONxf~S}T#%)f6m0U%in`y$*5&i6x=r7~TW86b&EXkmR zDGu7*zLh6-ofS7C6NT-p2ma{{Pra(LA%tzqGZ3st4(s^J4%=8Mo~&uBEi|%~;2NR$ zTv(<EztzUBMcV?o^Z|Jg^UX>{m-<!Dz?#~4GLTR}m~mZv&VeZ+zU>0s-KU@~m_l=o zE>aymCwTQ4ZVUVkuBiR*{sbW>V?Lhor<0-c=JIDgL)dCe)+|t$*R$IwtS`>d?$OX7 z@Az*-hUdLtqB%r%{A^x7PaZH-+8zz|%%j^ii^JZrs|Ve>)ud3Rl^M_&HBJtE2%X6k zt=+s^e+7_C3Ur+92>Vb!x^=5#HDVgy-bMO>+i;D<Xbp64CU9aU(UgGQO#=i!;JMUK zZM6w@-$K$3D<F*l``->o9voJXMJtVMiH&;&fM=)xAh)u{b(O*grB0KrH9iR5SDB*x zq1|3r$k?nhFgJWCDAiO+e}!|Yyi7@v3acnZn;ky1(yha|0ws3O^3EDrpdv`*m|jB? zS0)gBDEFsqwQ&9x)lAfs5np;h=dZUtq8b_$jb^Geddc;C2b008<Y;wpR<X-tube*U zoL;Z9%gh2O<s+ysnpJO`<3s9?H{9pDH0Iu_B6Kwz2w^=G5FX^0jI8riIUgjGc)(h$ zp!BN>xNrl~{syj;-Y0Hqq^FBD1xnM!jhdWT4Ww+fCXE4c{3-3;ej#ZmpB|1Nh09nP zJ!0@^-B-CI9ni#K`gE_mHO%*9Q!Y~bvRd((RcKqC97QC)P+A;iQ4u6^3c?fz$3^kn zs1nZ!W7nNI@u%S(rXTfQ7@{NMTOvd7T%7nqC@m&tocvz2!OL6qmmXXW4MvB<+85e3 z)rlz|?eiT9Xr^)v=I7VP$yfy^5kE<-K)1*H{-^%d3i3_2&-Z=P``bNZjsDkrhn+w> zkzUu=_2bG->`}*4rypICl>lkq1AZ*Urt}^v3j0lYXRpJ&LL8QyQ<G)^l4j`Bai*hg z9?jG0Y&WMT*=3wxAp62_JJCoj;TLDx>5$m%qi5T;77qEB!6==GM~5bz4XwXXPxro) zo!{Gxl?OiPo+Vg-sbvCe&c`AuPEbi@Nlsq;Uc@qGp0KW=vSr7)BqBpn>$ioNyE9ab zUDOiqewCsFu}DbNNqgz(M`tT_xfp24o|+`dvwZd-u2MpNAxn;}kHa#W?&x%6GufA! z9zz0ZnYng5!>i9CK4(RWiGp_`B({O{uhCzrQ4dNIY=im%-^B^C6!P@YMzG!Dj7Otp zahvv}aGcShL}ROrvx^{{o8Dd;d+C~V{vOI$HWW-+$5ZhgB7v&S);p4EUC6PJ;LV=8 za}L?>E4-Jxv-__wd1!PZXEC+0ezJ-i-3FRY-;^1=dbR?jl*b()yFUaVS_Por7@!{P z?7>owq*V`E;bBZykap2>dHJur2zGZ~pAr}N76|X$PEsypor-3MJYRM}(|i0O@jbX& zyU`DE{3*~I>oU&|ZL9?^Tn|pB+H419ZG0q)3@eSP=zhidYaR<CMh89oe&51~f;qZ3 zY3XGq1-EKPdR1Zddj83PZ_}hLD)^oc%0xJ1z4EhoFX%SuFK2Z3$O$>Wekao?EaQrW zG2|G8B(fG|jZB`Ralf6aK)pMeO>@uEs}G~z6JZL01hJmq_oX2RNd96jlx|xt^iM@i zyse0N1-=AXW~I-flaPGU6i!Ikbg^<LZvpO=J$@}y=r3<%SHaOIa17%t(E?)&VRIk# zqPI^EzrWV<@A6uGU7MLkm;M2yF?*vz@FhvS*5HH9MiFqJMhZ}O8n>Y))NH{VZzGBI zu=1wQ>{Pn1A~tOgz9#U%EDx3DM}w(q7|7a~!6~y7(*TZfA2lN#RZdg6SolgRSKb8( z4ZdBO3gzV55x;Ejhkd_JuQ-$O4RiS%fuCC{&FF-D8?4@x-hS=oI0`RcCXBnhd#NK{ zDUZQKNV(x?^g~>TQ#&TZjX_&lpSV4lat9nLu8FNQTN{<7>A0gR+ts_2^O}8;d)TT2 z57WIYSktJ6JYB%!OflHas7~&5`SgW>hBO>Fj|#3wB<0b%b_<L(@X#lKan;eP1;eNy zQ?~2N$yw5|aFO~jn&RW&Q%;&x0S6CZ(VWG3A#spz3m8;!;e2p_ODK7e5psH4Gy?XV z4hoMb*OHnHC%7b6b4lG%YCGkK1-zrlRFF_ccc`S)WdrIw69mR-rAc)3<;NdB=9=ut z-wCQp-+Dk&v81}d^=^K2UOPnVyV)oDT7L}>1n~I~&o)6Zh59jw!9sHU07IjN5in0O zl<btv^IZ*4M`uTxDEhxCeorcDQ0Jp%jC192fKZ_29r!$x&J$H53XiwSWUP{e?N}SQ zOA;bf-51I<D-8;f55VJXZe?k$T*H>A%SQbu%+W<9z=UQdSZ?$zTL=V-2UQ^?3sYUh ziVf~(VoIu*Oht7!3)v**gE3g9`%p}x=8~tJb^p!rwcHu=D~B@=7X|sd76r55r#%SU zmR%?MaY!Ogkxol+Nn<+qW(;5mQEid<4~&(W1hJNqar-^E4Yhj1M83O3@Nrr$)X0== z8;>uydk$jC#E<QUzY`G6MA@_JGCudLxU3j(Z_7+vBEClKPrAbxbDYHWXEk9)yxEYQ zsuLG?MBjHrYck7^jLisg7QRs_Cc7=g3)xTD&L<-2l}7NQx+xDSa-XUGkKR+>x=Wb~ z&IF~QJVmphsE*z83J*J^u<z%mnqP~2<U6Q&L{wes*vn1huYQIN{3BS<Bv~qG(}ac1 z4OF7d5YAPn%&@bn2{yX}_@zAf9!bZcR<O0uWyb8cI0RbIf#QKQvoNtwP&GIJ-X1<N z4lAWzg8JO6xQ5R$-<K4F({5a{<5%p50mgNoMk(hAp|0ft&{F|iXaU{;A|5-k8S&Li zRyy3)UVjM-KcUzhdP9pDumG&PaO|JPYK0mxqlFMsKnQD}HY*P7)O2_M$mXB(XCaN8 zwj5_#aR%_}rm^RxR!T^}+M5T6j*%q<4*$;VG5IkCR_&tRcxPrp*hvT?olc5-*78N= zNx`ShCMAWsQ@I^&(&F%DduZmBTj=q)igUNWE@oaEII-*>?bZd}#(mdPW)L0kFIUJ# zWNNGDN7M>y1+DP>#yFddNtnzBY125&vF{=`Lbn1Nd%;a4;1CC%pD$pIDy)SbLJt=> z^$W!h%{<8W*;Q}NC3pd)erYx`1sBj8%g1zLie;b4c8R9V(W#a)LmKQa5U5MHi10Z3 z4k3euxkDpl4_VA0WRLRS9ltbFnSP_d=Ya9?S9m&5X$^M>KPO~VjJ?wRq}>}~2?US6 zG?OB1T08jYIa!0}nx69-;^vN+>yi+c<b6QJ`HM-p+|hZY_Cm(674oZj_0e;v=#WY# zYj!$gEfvz`<&z<i<+%|*qQs5{Yn!r=K}Pi8@#e~J?pQeAqhzb%fbQkrhY$<F4)`*$ zvtS6r^8)ATe$VCC9Jl%@!kB8B|KY@#v~ykZ%H{>tA0vG75^3VPM&WEi_Dr=Fx%fy< z*iI<jhcv1^)1rgzXWcmy6rIW-i}4Cpi52ZSk@0y<6{XJ8#jzJP)6U3`M~=ywy$3&V zbc#3&MJUh#ws($3ueuK2NR<{)pzaU9_Uo@#G|BT1r9cznrkJs^7N*c(Sw0Si3<SRS zr*?w6;sFmBgoGcNfM|!|o_ONH9U*;Aiw{_}0F~$YBzgxtN9wU+sD9O6>iimQRQ@^5 zbNuAi+P2qMQJv9N#Gi`GS7U-#%t0z1Kkb*`w0CK5OO`<1E%PPQGG8-@V?mMb-=Xhf zs=q$1W`xE2gqXkrburHCDzfaSdHcZX14BMtDpLYB=_Bs{G@-+o$m$JkMkY~J2~~2# zS1r$qq}USbG7dHti1<Thq=6vmNfT(O(^@o99EyIT4$~4Y)=+1Zsj~Vo!R!ms0Srog zW&&qlf^5VuJ4i(G6FH}agHy88S$=E9WgPQn&eK*dlF;R%aS9uAg2i0NMw7+Bdzh=b z@<PRAg~bp&p;BwMlbHWN_@TF7ci&2I<JuiCk%=dq_>Rbl4+nY~i?-!^UDwV9bt7qX zrz`#zzmf}8nRRl4lsJr5MQtthbNKs2p1@bLG11zChs`+kuE$Ec8#VX=w2q&v4Q<mr zIST9&IpFb!L|b8IT=q)L1NMDD4jh?Ky?_+ht^VAG3ATl@HTwzKST=p+TjUp5yTsqH z-u8{ti~6+0&9G$?E(mzX_wLH&OFsWp%2=ni;AzQv#=QbcoXh;aS%|bj0HJIN7lQD- z6{PVUc)Bi@#YNaf%sz2-1$%rLuLd}$pW~zS<hNYrDz1jY$@6^}9UenDEyA+O5dHwJ zTuGs`{=QGj>6Nvn><VfaKb-H&uKYqF*oE_omqb~E`0C?@!cjC>;-<|j{S|&!0Ja+U z^Nsl_EFzaqWwVV}LIWD@Oj!1U@nzKYHA!-h4ty04U0^s-m`gJO{&nj+V$GV6?WJCZ zbLzToDOo?1L!SRHQO&@XlAMwZxDV=|n>on|%pxBLX&`^X#-}55ITclV3&0T&pW>N% z=li}J3WspwXK<^i7(=@Ea>K<6=Eyr11l$KD!!h^mM_`O2vjBZ>u9ATwEwj415TXO< z6Z*nzMyX4>TQrX_2W<jzo}<K1vAH6{%ok|8g$`rh;S5#8B0B|O5g6s}DWQYO%}Xv# zRO-(9!75p@v*=QE<Hq|e<@HS;k$*qX<Utgvn3ED}ptjIFA(iazJvlJCb`xTaO?-4l zWvk@k>Jt~P6R#jht-ULwz1+nW(2&iH2+_jTD;KIoKQW|%zW6-q-wcGd#~n=lad@G2 z4S4-JTm!_PzxYTjSh;OB896V|YT(%zk<FtxbWEO~@8Cq9UxjyvU5^&3MOwHb*7|8$ zf6_R>>PT>phE*vn1~g~O8dW(e-^JyEOWO*9Vd~&x1HgZ;fJC4MqvLcK=(;Q4-`iRb zxjk7mk?_8M?F#quJk6XptCd9MXUqH&BlH9z7jxI>)p3QzroE+)%^Pv-o;F*Vb~6+X zEAlr2<%~h{8+6;lcazsQ{1w><%^j|XQM1JpEMGVwBp%*Hp;x_Dsg}A^UQzgm^th_Q zRy-6Z26ym1U~|7dFMnV-QRTw#iS%ppah<Ro5(YxuMmBSUBMPrm!#B8z1$Zw~SWfDv zEZQ0QXRJAh)Lvffu!*MTHA^v>#L-Y%8hMc)OI{!k=8f%A5@tFD(rPf0SBmE&4{cC{ zBRnuK<0!=$cQoDwsz@M<SKz4WclVn;y3(B6S%mK))GOGp5KErWPs5dkvVQRfus4`m zwz{irew?P7-r@zI4WxpLY$S8*M?90ARxIwoaDs;#@l*yTpuc`Eb_nFCI{QlF)1*a| z$>2A@PVoCL%DcUP<d7|BDtu;D+lIX(c{_W)RfrGw5f@#)+lft7?w*9&a%uw@`_V!f z5L(tsJs6ClOl59~C|py-r21BRtvDwc2-at@xI*K9#SO89dY{GHCjzc;E6*>j9B?{3 z6;KaDFe_Jova-Et^@QEnL@64#NANSZTUv~m7*T5O2UqV{Msut=b30G^mIQNj#Jt2} zKdfGac+|LjYk&M)J*~0NdD;bl2;7@5jFEJ4w_#a&L_Ahxx`zvYJ{P4Xs@ADK48Wj` z8*3&o5Ub*zhkS9JDRSz}&|s(nWXs2@!&QSu%+Y&u)lEUWD)an$QSJ+Oz;2N$!Ic<u z$TZeDdyiET7f;iB#mnY`o;D2*a(J34BN)TE<!<jwca0af%b{GU1oFF0sRkTzkE*9k zKN&KMsa7x-gV+dTOhn#~g@citNwm@L{z;n=P6XXn7G+nI!>Xq*nvULTctxnHT+qm~ zP)oXkc!&MM71I&MGU!sxvnA&i1IjIR@O<QmvryQ?TiAq<6PaUZgfzMu?*0BaTx=b@ z#X&c9zkx|-r<+f^qHSpvOo|8hwAw1gPiug3(VT~E)4E^1#mYAXbwvm%yOsXNELWa? zF^~c<nCJEi6_J&dHeD&P$NiE}_ME#O|AVUJ*lrrA=<~jIe@#E2M6V;jR}kxwOq6Tz zu+TU?0j1eUZJbo8ISwF)!}ML*C~{pZymcbV#Av!`l3`Bj<rorpTr0UX*6m&@$?MvX z{}Tmu&q>%9E79`Pl=%0-dS0wcx1pP}gp$h34KjYDRi|5Uizn%LD(+G*E38mI8FG+f zMh|_A7wDbZxX%`KVza4cSU=BBYp?S7o+RtYptlfdek5w@yx1f-u5?|2eJBa(FOlhh zdCSNT5jDH$boH>1$Pl18C0G1HQ50qOuDAxpCYCd-eBKc?cWsH*?R45jPzLlzyP-=k zJC9L2Y_wvV77_7C5Ol2fa%`IAIn&>MBq<tx2{IvdTeD;-`cZr*$!Y@ZY+I`l)aV2+ zd!xc#h}sOCR{xjrO<K2$y8{9<nQ~Eo@@MqbX7;rovYenf$riK%EmY=AHhdN$u^yw9 z@3ul;D5&rJ<1se-FCy)PZ;F|94gl&O_{ayp#b)`X27{l56VQnbRfIsWeN-3~NBEcM z2N1KM=nx(yMQ{_7jxcp_*9}CV1D1BOh|{@gm2%U5T!H(t2`xsG6nl!y;A9H(7HdZm z$>PE~Bs96|v`-6v5x6YcZTKE-sM`q-;jRd)`sY#>7$lZ-?7(@#@3`){u_2FSAEmI} z{<z}O)LR_Q)m5)G?x$s=&R)ss)A8GFN>tH|PBWiGEIU&c%*YEjmgjGSA6#IFF8LJX z5|5a5P)==8k1NP<T%3i#7O-?hkpS}66~uR8`rV+2Xg)=VFZRD0YjI3dfl&WRrRe%u zAG0SGalPQ3wx>MoO#=X<6SN?`GqQrVuqEod*#-e?fMy02btW-aIoR;Wh}G0rXWx_^ zaot)1a&nCQ8qG3t)}R^)Ux1|Gcr?t$$T<cPO=|vmAZ*;ITfDwLVeLH|%oqdvyKBf0 z3z%AbV1Ptmq`bsAm5fGQkEPv~U=!I;Fl?EX0EVp=CVny(Q`#K#j%H3*aolfPqH-Y- z7}diPNs+RF;PcHvRu8I&+DFjv@~;i&GFT%2%ldv6MtIgNrM{~neYZ^x6`3Nq@LK-` z2S5jhW4(Q|*$l!QKfo0RO)ZjUXoL=D_0=9#t-;zGH~oG9Pxb+2vz*TQlIn;<LtUd6 zaio+|Mrds6Vt&P!zD!^DJ&i1ePHJs5vCY|*vn`!|PK_&{Sw#rY%vDVo-V5!6)5qRG zcn~(R5$M=1_<E6v+x<JN)QpULdgHUIV`k0$GZ`Ba)@knzA{4}f@P1YUsD9K>lp5;V zt+7hHyBACkl0?u!r^c(z<LpkM-AU%LV!5q;L$E*Y*>qR-r{H~+%0J<Cl`h>{V_+*6 z%3TzXxv?ka-)(__w<B(V)u<GD%)1G$+^X5ffxo2yK>hi);ugq5D|KVIUWF%DuOe>7 zwRi&`iEoOYmxmD>*-W!A#%ccvAhwzok)A(26^X<i4*qq)h)C62@Gup~#eozq)|!OW z$R%PNCbJ$tVlBP*CBbpwz!04Jd!|ovG7WS9i`a9-JD{>u!6g7~>4$Rn;}J3Ul&EZf z+?tZRUdoi?OKTx|Z>Wve0iw*9s9hRmx~(~r+S6bzc#QC5(?DBE_@N5=sJs>2GHj?j z;O&e(TamX&DDoHqmAZ;0(O1njMcp6Yq)2y2MVRWxri19hu_$FoLk~j=0m`%5-eWZE ziYrdp9a)v!$?@6T_$Ez7rnj`sU%79zO|Pm;XktRhW44LS5@UojzTHt*5&quFqHQLP zHwG@`pRD-qr3p6MY)c<V_U?N*cIt-=*`qB+DbGlPSe*P$4wYH)Z?j0aJ2Bl)P-hAd zeeqXeNKPNN{f1~=x^vtewuqctrbRv*3<rrX^sl~l(Py71lcqwqhX~XagtT~WS>D-; z>to(O{x(b1qx4uY5Yx^SMM&qa69_=Bb(pO=0)P8#W_(uK);|;k1%^nOERxgT!|1mA zB4C5Jd^bMy>*9X$j+&$U6NMaN0(0fO&cNKkiu314kcf=~h%A0a;2@yEsC7u0C{g(g znx|!-Ohl>3AsNSK2ec=_kM%{exrx)MNZ4V6j(kSHUjVDOLQ5a1(}^8^7n~aoxxfW) z1{1(^&eTip>1@Twb=15*BVLfq$Fi&xNCTvQJRHw28hBg8WYJ+~!snqAvl|j;6Uq5s zMvo16&(oH4%)S?n+FV>_0Q^Ql!m+P$%!<2NNr63Iss^i6Cx$*>ofEiRIL2eJp$te$ z#i4&OU_0}-=D$0&Tn0`gP-#e70D?pe<qaHXZUIDWtE+pxQ3v*$%ogr2gKo495wl=H za8Qg=8pM?4#c9aS`-O_Bb}J9Q<&dZ&L$2451mh|@N9FJ=>{^Lec~ehqziuX5?T+j| zF%cDcC5Or-<7%CHk+P7I<E@JW9>eq|P@{Rw>6<Q;Y%2A9j(Ae3PJgtqf}I1G5p`NM z`k~c@Rp(3PAF;VBjSM8rmuNr@n;>aW#TG@Syt{PaS}*E%JLyi9>eq1@6$iW_VhPH% zER`GrV_y=+i<|1*OHl=D^bM++ZpZlSrHzvurKkip+CQ{5+pMlT=QZ3E^s>!PqQFc` zxPN46$xg|7<G}QFChF1G50i-xF2b%>YEJr0n~b@WS_}fglhoRDp<#<Hzq5}e1*e?6 zpbYx!kr_(lp8nc*fqLHa;>icGXBHTO#-T!{%SyCrFBf4pU7vFp;o+Zq7?l_Il3n~Q zF9MHF<AK5eb~a?0IbU<TcrX2kSf?jX4XzKwJH!7Rbl>G?0)bteuXoGT8cAv^#78I~ z&e3Jp&vBoWVWAHvZTr=(7yyUMLtZ7W24(++C+wRm?yp*!e=eWirV)~Qd!x8zp(R10 zy<3@A0Dt%MK<XAWo5sA`;cIQk$U`$L*%~bYRQuiFr0Q@9u6TxB9E@JFwKNMvCKq&` zHsPE#VpE@Lpcy%CQtmoz8Fdb)`r<v`XCiTI!f1O_njoI3%nUFMFdox-Hfy;5T51B_ zU7z>eRXfYQlas=-Ysfmu!s=z#$?Bk34Ls2;tm4snIm^-jl+4k-81iS?GGMgqzBKQh zHg0qt05A7u`%F$81h@~Xq=%6Q6k^(EhuFEtCqn<eQEbtsID=aCn%5j49rp5U7I~25 zdL-I}!%!!6>!%s(8x}9;E)y$ZSCLe^-@MDeC*q&WyYz#ari;*96iRt6s$7)QrLKuJ z$ec=uZKxT|d39V4skf{}T!Os7+MStXqrex~S#x4|v5WVxcfv}Vhdfrziu`c#c%o>k zNC?KB;xCqATOssi&ytsYjb_xGEJUBy9LPJABTYXL0)U4S+n;~vR~80%a@NoCO6YZy zJWbvh4<6)E)$bvv%5A8d_bM(QesMZd@H-`_Adb{=2?E(8Y3kdToO&qba}{(vJGCy~ zC$ci?C|wQbaoxd->n>Z*epmc8bCCZq!(hB4M?F?+qq2+S(VH|fy%KF03jKgz+)M8) ziSSSofZ8!8AGwjwCHnE2&@Rr*F8luBWfIN+Mt*@{6INo6O&b#ANOej;iUXTWDQ?RS zqG)V@AtuhzXv6cM!$cx);}Vl)Lf2Uq708mFY36Lce0f4uHAauRWp8kV9i_K}Ffv|2 z6zBvaHB|RP%V$vz$NZUp@R}F24(rqsRM;Qu0}=f!IPZX$zwP$B%V+hR?~JTWS2vvH z7v+q?2tf}jgD@MCEcm@Pc03-vzoWvy->SV^5NOI@i475m9}d&(tKVD){3Gdz_KB%a z$_)Uu`stF5ezE2BwU8>Ea9ySi!eC*U^z6oACS3HL&P<}WOrvyr91AcJ7F~!V7a?L? zwXB0IqxP!TF^`<fTg<x*O6s;ez@Yq#vARy)wBb~cai-(xu_^SSuaDjD`cjRkS%$IZ zNuOCc2R+qcbTv4E_`aRhce&*>Hs(ABxm#PEFGFW#Ka2*QY8UcQ0mN3EAt&F5llTDQ zXTyxL9PW|=qFC`X868&$Tb&|gHhjgAE*-jHme6Qx9K@+`A3bQ=gF%OCB57G4iQiV* z*b`6nQmcM=a4y9uhjs}_Hgcu>uLR|Z#JKWueNKzNyl8nZWuz<Ji!@_I=-%_duODV2 zMy^oL#3(byxszq5@=Eyo$GjxlhyF^UcN;GP6GRe~1QWg)trzCs8fw|ClPi^_Q*CJG z0Mp6Bt2N=7Bti<Ud4M}IUoQH->&wj8K326E#RarC<*lQ}@(3RtG_5RH+xp1?YuUor zUI=`1jpoA$0|?TwUT(UFDEt)QEu9}nn!Loeis6Vx|2*o;t91jh0FFvFf|yIgu}B_E z+^nA-l)(Nj$5XWMe4{M~5`KK9%(QveBq0c@9}4SV_q6ZOiH>5ek~ui&a=;YL*>9A7 zfXO|O@HjfS1$HQWkE-2pivrUany(eq&5_KU#XB4>H=i5gm?o4makj2KQ5<kfilT4G zVAz`uz#YpmpWY@C=JUb14xyFmm-WALW~K}J!y>wb)8`FHQGG|~D9-vSST2_3%_5y7 zUe{HUowy3-Y;`JGb-~J3yVYqGvM4Z3zTUVz9R<7TQTtf6ulrrb`J>UBAZ!$!tK5kB zdRx~|A<m^Co4c3JiSgc(Xj_LT!d*pZco7mq7f@P^VCgo3<S))D+Fu?8<EBsfJp@EX zfIUsipB+Tf9?9=kr*eZnQF6D?xihZpEm(4C9nXk^zDBQ}R9&#r+{j~83r4nfur0iV z?=UvL`wVtdl-_iyN9sN>iRjhIo<<m0P8o1<3YYG5CCEq*;wmhIG@oqVDHx!mpc0+Y zrMs5eOE$FTFRUmR+rVM+!do8=Y{JYr<XSL_-mtp5r4LsEDe~XK`V2#a)G^Sq$4@LO zET_sC(aCn`ET-L<EQlrWmhTNEAi>CT#fG;5b)XB_$kSbkiWmX?+aVTJxGjl+T0>k< zCbG*{375_qT}ondJz|PBi-Yrcd4R+8@2{*wtRiA=hdn&!6qil^)O<HC_X0|hDAKQw zwjI(DPGVb9XXoHYok*94apnYmI<8~cAH5h1<|`ARe{6@^>~EtrpZOVSNJ(%Td{(yd zIT48W-cUAg4}EY-X}P_XEZ7}Uix0|<Fb6X>BOlX+$L8`!G);90LEr;)jirw15Spsm zfjArqpwOZx8NDFf()Zl=Ndl%}q>RqHg_xd)64hqxI|`*u&R-BYF|ftI<4)J9<_9=! z5X3Z5MWxgT*8*bXxKS?+8tHPJ_9H17;P_*21yyPWI~InHL(__=TEU#B9Qnftdp?;d zpAF=MqNo?~7^?sjrHY2bQVzh&xtaU67FrLsh#*i`Rv&_m6fR2F^L&W>!)K`ybaCai zhNRmexY`*6(p_Toy@xRb{(v~o%5rDI)a*H{iXvJAxJI0z44duE--e$FmlF5;k~f)@ zTKApkf|!XV@lag{FR|T&Xv<hEnACrZX*R=S?s<b3N7DrbP4P<4&=jfINVs%W_n4o= zNSbE2U|vn`lw+&&1%T7bl7i$cZ1ya?>gO#KzFb24FD+Uxg7RSWR4Apqe@Tf4CdtLq zY8jzYU`8H1&8+|KLu(>CI2$S;jZ-X~VmaD|oa*%=T$z{;m6$K@DHobec}Fe{g=*XZ zor_x^H(em+C;na4pKuk)>4Ihwy~@Be-8c+HHUL&@rACzF>75t3{hWC^DA5J*0f;k! zKMZh5kGw5Ojo_#AAsnWgYTrCMnUkidsn<gyl3~5=I7~jcD6%E?rH)8o$MB<-eu>+= zSx%wLoOmk+ipedW5!ZS4-3oVCSVP~KxcX|&hQME*W7CSNcj%?b<WjOpJ5IQET(8ng zbE!eMIO11PZA+bf3a9P`PejgLMi!*9x8y%?n?JTIsS=c^6Z~|S)O#aHcJq+&7(rhW zWqWpS_XVDw96atDK3?v<%XL*(PqcCsEsnY5{7P4+p?oW}r1F4Q#CF*Rh!vJt6N-%0 zS$xqYc8e%2b>MJ?G2Q)1K*$d$p7_(16o!^1mhM49g%GUFCJUCU6)b`s_MB+a5$*r< zXZ43@LpeivyN0X<F&Gmp5l4gsIin<U1i~4UpYC#APTiQ>`Eqto3Di&|Z&_V_>yPBP zUpd3`%(;FG_^_z^1~JD;S}Sh}kY!STP|~SDTA!sFG9c&%eOT(nVO3zSiO^u{0uk=d zkR)DXy=%L;b^Y!zJXyMzxBIW1dcNji#f)PZbXnO72QTFp$)&!AoVtEG)u+~AOfqIW z@$@(;7j@r&NuD3+3w&<9rhOw<1w?<XRD%>deKpa}W*cT%eGxHh<Db=JR26f54K4in zi{x;BK4|&O4BPYMe-STm6OPBD(4rLB@Z~f#<ovo0WrjPTm$U<}+6}zIjCJR;@u@fa zV2k3OeNU&#+heTGVB%p$)%enLky0$6h2bf(La1CmsE=N5v-9cF>FvPLb?pH2_0cnO zUz=s1^G##M*yYjLM`2`e$H-4K9t{%hgdb4~;-xR+BdrAmB%}?tpL$+!y?v2QJUY4I z-*to@2#RIV9*m-v>yG*+knWBgo!4tLTbSwQSJkfNLFXKc6|15oWvv{pQXY@$D}r*d zy(kmTO%!y;)1l3|&sZc`t6>v-KOX3BcV!zW9i=kreI2=gOgpY{4wcUjLS_xby;>7$ z3>9QMqb<LJiQ*i=mtz_x9oFWL&WLx??kgAMx!h`1(-~uYN5_HL$k#@%Qka0(#gpE2 zP=b>!^e!+BbVE}f!d7wEi`$lk7Vc5`fMzFja6oz3;}RzkxLc1p8wsTs1={944ABuQ z%a0C0X5%FT))pMj8N3o9=pB4%MQItoanM2Q_)hy!V*9mkm&YwG{xE#v9-Z3E+4Goi zk%*|5=jCV!I~vU(?tI-Wp#^*mb4}J}QXlDq+;`=IkA6n)3zM%z&`qr_BO??HBK*2U zjB8|J3nx#3oO<G9pMCZroEaL*YpQGmswf~N{1uzCXOO`P%N+mQpYZv4qhp<##7jHq z<jP|z#speoucllSUqOFNTm~+9|E8hbu%Ak6X2&>=TScq|5zH7X9!qmfSIIen06$ve z>K-$-+;eE9h;m^h=0+_tyAP}Sx-E>Xp!~#yhYv=86WsvKc2972Mrp3?e4J@d@e=V9 zTV%mW0`YS_ssu}&SExH>if?2bEPnZ7tQZ*e;D|;q!BqAlMw^+Pwijag#U{8Skcx44 z3ZXT%|F0OJM1mwcSi4af9jS+{6crKIrx0axRT7CAtd1ek;+XkT1l|ZOHxThX1qUQ* zJr3EH=w#TY8P=-cbq_h3mWu{6jbjoHsoprvzA_}`BtnE@l08up#L8BCNh-^GjM27@ zqTr5r-@D`6RRGmqV}!PfYie7YZw`21n|EUGiWvxCrmnY_&pm~8%7CFxokCW#8VL{s zPIEZEai~YnU0PJq@l5GK#A2Ni>qis&D52jKeU?S@KYNqHb_N=t7C7i8Fpn~@?Yy~H z;H9C1jZKYz%o46m!(dRtGS;MW?52=H8#<5b%vSjp8-}*}rv)@c?A<CI9IDi=Yvi%! zOS=l_8lP$L{0(o9j^SR{+;i&yE?)N-(w*~sGkH9GcEtIOSxgP&et&#%=@eZ&6&$#W zZrnp2h1a7OlC{NIc%u2&Y3|}$;ZpPu*z~|heiWniygRE&C2-E@^_vktO4#X%683dL zP=&>&QH2{8AoB4~X|2<P5+CpW*4dzvII^ZB;WJ4x)!xAW#_0!(n{zXM<omV>#%>i~ z{+%MIK`hE-7UYa7JP+<&{Zeg<j+6nFQ{<FE)4O`A+k_u2)8xn);6tsnR{}|g56@(G zem~KwL-ECPdlIAqT;6#6^T0}v<vjzJ=Yh^;>sIY*$zd#jIYZd#_5P^;N2eOX!Vv$@ zShYEOP3fzyWhDJ|;6Xt1CFsl3mc%tEwbj)+&in6BFj@i1P^X&9y02!SA$wU(dmPf8 zR0ECrhEi_@F%Glb#WqyiG=bd->qH+wb930@|Do#~qC*MRwH@2GlO5Z(?d;gLZQHhO z+qP}nPX2xV$-QTAd(f*#J*cm1b*=j9d7q-{FhZj+MwX!A0(5O}Yq>2OVSPZu3c0{E zD<35-a}JEs<RL+G|7%=6!K@G=Qn?Pw7~$xK-)tTmpV!XaXg{cb5AeAFKwa#eK_No1 z?@t-_yO%izr7K~!C-4b_IcZiV`;g<?CY{O8tp^>1U}=S^Q*gb6rP_VkM0a>>%K?-l zBHZCVZgtUZE>7<;Lb+5pGFJ{b!e#MFx&g3R1;9gho=Kq8J$pFX8-wS}WV(yy34YP( ztOu(mh7YsOX5nC^1)799XI5%^?S+TxOq*>Tk2fx^cTXw!&a>Uhf^3(uBRZbt9SBld zj5#MJ=H3bxDOUBSFpAaBc4-dgf1P8|<i1<OzXiwKG~XR-PnRbH4X2RDbBMx#h4~<W zOO*ECwyl>FcGL8`PmT+c5&{S>mm7ZR6O_rMYZM2DOVm*b5|Z@iq;ySb+jMDlTs)K4 zTJppKX9ioRJG^EV5&aj;*bG*ZnP?vmI1^L2o(tIe4k%8{=6U#S9Bfc#tN}WYC6k#h z%jTH|b22D)MrR@cD5x%6-Lll-7rIY0yvdYeOL$VeAAq{2h>g$<;)^UTAArEyyIfDk zo}ke<vYEHOza#7^wlu_&jO&hIPi13A819SP>SCBqh@f^hIOo$8m(7T9q(cpCv;`X7 zlf<69lpcXXHdrUJU?Buk4`3SofIp^%`^>#!G{C1C593+)RKJ^%4pjExYx#U_R0&FH zS=0Q|W;{c<=L?p&<+bThE;(>ZO84WvFy{j-tbql`^eEe#+7_hr9j8$&r@G-nSF6#% zgWL2FC<aQPKp)cASU3){wPDgprlg4wHO8#_ukSn{i9uw}_dRzho`_1#RxO7_1PU>Z zoJ(bmv>hnLPi$T^XuRG&4hpts1NWT_#JbnSa{2<@!hq#C>ne|tJggmYg3oa0hXDAL zf|LEv)peE(ri-8mIyKcZ-bp<L7fDo2mosi)Atel`7mfJ+;X%{sAizezs#vqc0jMP9 z(UP!k6yx~uk9)l6bQ6h2XIXZ$_wM%W;<QRt(g(FUak9Q@(L;YVaDKk;_j`{@;lT~P z2&vO$9+hH^-q{3$Kjl=k72ov%NaR^?`=a&_bd-HhHA}Hw23cF0Ga}{LSLjP_3;G{? z!f7iuzhq#wR9I45zc92Qq9S7xSn%K&waUEa?911?D>(5w>zv3mqMxPY#STPo!&zR3 z)5ras2mfA6f9a0fr)iyMG5vn+j5&{8(qoE0-HvhGKU!2_+xFdXh|gSB+?UIU^J=ga zwXM9uPr9g5r=Mwms`&GSq4#aZ4;1_9ll>9x01E{T<tEG)7<Oac@7o~!ds^W5fXh3Y zXW})ovUj*Tx_*oI>&Q=o*_XOeF7qa=N4c5`P4qb4`1m7Kyg$+palQUl2g>@LC}nGi zGdr<`Nko*p%Q)I_=#2bJ8%THkVBdvZt7<_XfVC2-`sd)F-<3wghOUH&%Mz=Ln1vw& zYmekkBfbMWhg2_2s7XrEoS&;$_!M_+**mhah)$C3!s_q+CMI=jnkMiEe%@Gz#?=PN z`TiIJC8YmsZ+Po8wKa~yj?g1Y(p;A<$sNzyr3&}G{<+Y=E>K`8QsQQQ?3MBLiLJUf z31N*E*Y<f#-aap{=T}lgU4L5ELw;9V+E7|ZuLKs|D|T<|rmiJ5G~TCmyQ@D7ziB5S z+u$SjzA18%ay~Lq_c*K}H1r*ma68h!F9D&hUym8;I@4Q6%vBW${vdm%_$U%n<I6;@ z)xUPuo2xqGD|XX)y~mwxNekqaCb-8CXXo(bku0`qyF0c23BRqE)XU`KBk<M7-q!=J zs26ve-N{r*zQfR(B(7k1dpmu|2gEMH=R%ZIZ+lVUcEEK6*}vfR(VfHc#LnGj<uvq{ z8za6<$9p37_an+HyIsYD61mHKBfC<}=d45<k6NTlR^oNUGvD8L-x0B2X5{7Fy)5pc z3m?;iyZeSk=5vBB$860O9r0FlKs&G<`cl?qnGdG&C*Q&_e7OGK&Oa=`Irx{_r&%0N zQ!S~SvfEnuJ$bQDgd!A~lRSRgZ!X4|tty|=AKKpXP7P=)!&Kl57aBE4zFd0C3G$4$ zAdKb0D$gV%)f~(p{b!-*RGhC?^oU=R-Am6&yDV=_+Cn?q4jS%z^xN`V4Z;nXMQp9^ zroj|@7|6=Sn6bGX^UOk8JB+_?CRVTfiO3uih<^6mc??hv$5seEk$kX-e*H3$B{|@? zAmQ>^00{!+jpEOqL#K2Ycs~wE(I?F2C)#hA$l#nac(H*r)~S&eJVn)4(skgIQ#PZ} z$AG>w7MOb8ktdiU-HKc<guL0dna|kAW|Qs*K@lNt6e+4m#OwrrX>c<)lz~uk9RIOe zKV}>EL9#EusG=xb;J<1Zi|rwL1>L2;c$G7QV&jpdc5w!7@BytT<@m52Y|t%ihl(L( zjk2irz9eWE>%eho%2oW*;P=ORHas?2mW%ply3g>NK=J+JpZ>$CTWcYO0(G#S9V(P$ z`=SyKb@l|f8O#Rg=pTplX8R!G-@}=dkuXE|&n4;@g&v%q>al62Toa4YLj7>W<!qDV z4k|fnxgltW0pRhgZ-6Etc~6+eqAr{>&D|RBotV*PrWp4-4hgbPO8)QHgIcu{&C5M( zeJuHE6e(JMQZ?TRd9ZUhVG?{4mm$e~q|#`+lf(J50*$gkC%CU&8dHYJu$^v;k-dcY z+p-|!ab=J@Jru63dJNGpwWctwDMnie!CbZBY4|uYCM@8!zh9?=Y_`8oHg$*3DvMRi zHE3)HR-G^CI>EArH?dy8U*c&fVWs(bFH|jY>`$y^JN-8+ZAns5feJ}ZTH=CMx4o5u zl4MrWNs^YQ%Sb?bDfge9bU@$&nIg5n9>u_qny<-%04l1cf%D#BOy!=C9eWr(VNeWs zCK>dL#K$jX!@Y={Lo)@ERH2Q*)5X+Di8AE`f4%bZe<59dEIk5X7=A<0>_0n!^K~Y| zSkbiDb=(;Xsgo))40P-ivSn(Zrv&5+kbxUjgeN6VSt3rd^WO2^*fZ@{#?F|Jd;q76 z{hmi|JaNUp`DL+z65!vX%`<di;D9nNP($-AW-LK5KkF;@Nm1FfP*zPJi5}nXv{)8h z4<qyX^zPC_2P5*m5sS~RAuokd*R|MDLaacfPEsHEDv#Mjw6hP1iX7U0y8j*k7J{v> zm;5z52Wd5sXev$-+E~TKoAw=2)n|xo>8L>)mefwk^Ni=pqS@${aR4VHF$HaIA1mXB z=oqY-H-##B1G@#L*~dO=YcMgoT@UNrO_>aMKr%kERizb6fR?XeleR<1Dki|l3LkLj z6ov<OhL+WwDlZmRKB8CWu9E(a3;DwJjiFVT>P<<iU3fkcj9erpfMv{glHj;NY!`vz zGBj8-U+d<f;m}8Ti*A^`tr$9TsF_+x!jg$3AT;m08VVzV)9j_F#dacuuUqj6XF`zj z)Yb`|ur}kF&z%pauYi)21rCxQ^tTQHS;396gxPLQ1&!%hwVnHpCP`NWhfWK?on7w~ zf{~|HNU$aS5ftYBT;L8V0c8&I^qFif(EqdDeJ`*#GH%ZvJy{oMSfquA0vpdnviEit zJ9erGUX#og&g#U$4nK3BWzrq`VLavS#5AzEFRm$d;_|3ABd5Lqgv<%NQuhprX>O}2 zXj9l6bqj(ei(}EBNRktCL+6%8xFdDb_ao3U=Zx$xxAuOOpXIv9x1hqljciEIX-h24 zbH|J6PaqQN6{ho7@wX#CR}AAcC<fGHWn)^S4+Y;WgjsElNnl&X4Ht?ZM=^0Y05TSp zYI_d<J>n20xJsjIIb}Rq!okFj#&xGPpTMPmQIM_Iu|eKtk>%ySliH~_PjSI~xms9Q zekhlgbjMn^DJd@a69atH7TM*qx}=R`-OysKcXEDaJVX(M=0hD7rBP50fxP|m7;LVA zhVAj>t_wDpuvG)Fg4Zdqebj*~Us~ba2fDUa-{<jP^FibzqW%cK6TN2Ejp+xrt)A4W z-dU44w5~J&P>K@JcznAViSU7Mf($3~2}!c{(>&5_xnmHczOz`WTlN&k^MHCO45$9F zQjAWC+H`)ZhRAh@!2=KQ8x0kFST>&hkbu00L(>m?x1--VhAHjLGiHaY@Hoh)L1)MX z)PK+*8o2fJ@l+NsK>~1H2D11|>4L)tqX3MWbF*<%&0V%IQKFdUuPdO#;5OzMIaH4W zkn2%VFm!B5xOMeA^!IHHqqm?e|I(V(^^1p(`!;V^HadZr&3Uim;lI`bMD4-e8$Q0t z;HZ%VyO+WJ@p$joqal0o=~-wk_u|$?#ho#Lb2R4o{q5HW)GsFISoS{*JIefT$b?G@ zBd2}H!(T0X_Vb5Q{~~#x2;@?YEr^V4az9~FdOa^M|JIqegsNU_n>>z1-lb9|AF3MP zib&KUlAxPiiVNJ&{=GNrfe5?nz()+C{2eA`^l6$oGdeQI{{~#8<J;M8)0$vk^sR7k zo8`U;e0G=qaj+Y%0_izrunCrvx&D>5WQwKpLJ9C{O^m~W<|$V)c%&@iix8wcl1M~E zDD!Lb9o(+8K*;yjI34yR8ewMm+J^`>jT(kygu~kTc*h@5EJ>3?-SNMPdDA{>Hy}ss z5s1UiYnI_9Kbu)VaG~6BMaDx)=Wi-gUVXJ8v8=)jZmNe?W^qg3n1GAkP5WsdJ-HHX zF5?G5QE{$4R2PU&#$rY{0}NnS6~)Tbc*>l!dvs!m-#Bk;ag7ckNix7#?`X9}bN$8~ zodZU<rqeR%E2{L&Q4e{;O+fap{X}2VgANQ^j}8J8-sl5B0IJ&yw{Q6%aSHVAzgOu_ zX~sJYM?E}0!-+@CT{)fW!Fb}661-I8O$T>gD#_1YgvHf~X5CciLK*yF_Wk+^VTH*` zQ-AKpFF1ETB_;o+jCWfheZNWK;r0`cC4W`cVg{46N;|b|%`Ff~tIq&q;uhxK-)_i; zVOy*+lPmYn^_Jzt?`GSK$Xw&`;NPtqUc1MoM>c?hOE-HuIf1J<+qy@FubY^%hEq-} zATN%(Ul9`{Lxeh@^q^lHbHR9#1aQPMntU&kdZ|#ebHIjLx;5|Tk>$Gwpq@NFm$F#E z7WSN<f|M^YfW+uQ`WD!6a};l-yW*k`=QALILyS*J$AU;J>coki%poCTRcoKtL_kqh zomHp(bj?{6*LEsHFx`Q(1UjVy&uGXRxZ1PZ&ncL|)YU`r^I3H36jNeDP?L~~6@<u7 zGB)wK`@9`7%cMwnOWvxWh|l>l^bI20cvO(0V7Sp)eL2Z2e5`9btv-dAN%H_|HVl1? zwP?3F&Y}FsT+{zt#Sdy`a%Bw1kl>XO7rS4$m9lahidg@Rx?s?C6-Bw!;w)ST<!IV| z?kAHH2OxU=nJuR+XUx6+6L-ls2;5qD1-nh4pxHbK-dafZKKj(P3CMm;bo4ab{s|qd zQn>XRBGXjhU1-Eq=i^b_%R5WEuQ)1<e(Ght@@U|HeiZwg?Jcra7?66TId%HBHD*2| zc1nKb_=`AmJ>TJ8r1v65HaEI%qDH#fR9ew^6lyuBy~JPbgd|pWmqvKfWSwTh|1hFY z5>qsE3`2m`pDS56-bGXSx2O-?*o3Kl$*A6=8Xd7?@n+&2F1^chl#ZSDujxd1I+5&z z^V7NlH0Yxco|oj?@2dmV`1~%b51$b>j)`)~(P59ibNFC+#uisLeM#zbRX?@67*ZF( zbJJ#_H^babsX9TRA?{6REb1`|aE@l4e7lTyCH5I9{8UQG4mxUzU_C3aMD;uKZ+BWZ zB15j}$u(q%M1kqV@9XamA25@jY+z$QeD1^}K5zE^?`a@=+n|lssr6wG9&MTt+xG7` z&G)Q+4WR0XArIq44EKKT_gm?pFWmENR&B+fUgNoj#E^1us$YFTa>3IWeVdpQ;Ta}K z$<r}7^I1AtE5=YfAlJBVO4|vM#-ciI=HQIbk<A$d?iXp#NFQ)Bt^qI~?Riq0ff?p{ zGO_$<#U+-sav)68ZC83U-WME_9(cDy{n6yPZaz+TFRVVlRckWei^Ps5=b;!a+n+L= z_e4|G`%NsKmkIZ-t9c8kbLpCseOQS7Nt&Nlty%KXlWeMDdg9`m&viH97#A77Q8xhF ziF-ZdMzpF;cjL6|NZQyraH_Z^LwLFG#Sh5Nbj_Z<m_$GN_mo{0D`O5pks+xL*ZJ5& zXe=S}h$%ZN0gtLNms;zNkk36(bk~Y&ns6ujwPp5rY9?GSNp?hdJ)FQzRN4dpyurwu zsx=J{Tc9B~Kp;p=w>>ESQi3+ZK%fX@YGqJ^vw1l_%ek&Y)c5#IFox(u>id@G&p2wz zMd3z@PgY^jy|GzUOQ8lPG~09Lv$bN2K|1mx`T)fWR9MX&-$Ju^Sl}=axweJ)BYP>h zxP=A101Vk#CylDnBj7NvJU&k4MnxuuGji?uD282jb=N68w~Fu*6~QLKX8MSW@*qD_ z<5j1Qt`2$&SW0gSiHH)V>0w15$~n8M2t3l)7ZP=G6j|hIqeo;^)_O5&ZzmoyN5{Cw zv1Q(f371c=HT6e}3w~+mJe%b)XqN(AZ&NQ;H!HK<JbyqQb%V+yW>|rI*X2mUA%l_> z6JBC2$F3NE@p!$JPth)*CpuKtq1AEy+P{qNpNfsJw%!>2!nk^ybJjBp*c=D$8nf&6 zhH<+(v|xa%Zk`%I+v4g|L&Ols-1j>luH=ox#ePT1axssp7F3LI&3%&bBnNsKCOEc3 zf9KU46*e}Bwjw9Mb3?G$>6p{X?awQ4TZ`A@axRgs!Ru69+TB)QG++ECTS!Yq8ZJ+y zCl@>BT@73r5Gdk81Hxbc5y5F97Nv+v1WSr<L2J#M=iw^INZ<3H7_lsU37IwFDoa1k zR<f-fmGa4w#Y*1|s8b9K59AF=ujsOvzQQc=^;d5o{}8J4{&^|h40fVy|0Bw&y5=7t z0wEjgLb}uG_Z7zX%_9+evMTvpv#*O*<-)?@I6UMpVrE+Bxkl0cDy)1xn<QLk2O9ef z(jo0EE`R3d#&5?#HO;a4QN^Em$s`Rf)a(1atd<_x%uYq#b<kyghd+J+T448c#BihW zbg1+(EwIjkZsF`87v}@Pp0{|z&PU+eY?C44`3AD%?(!nM8=33%gOG@T6jwZ}%f`u^ z%=Zo+H9y#HSrj3Q_%i&0ZpqF~tE%o>&^M3-ixZkrvFT2ux%YyE(oDP_Ke)+tU~y(& zSOQaZDK0c?nyN0h6q1f-aP|b*<+(BcndO9>s;`)z5CucbP+k?*qbP@DTR^GZQ5oux zQRmR8@ehPFkt1e~zUf|1<icQ%xN_QZC?$ylj*(8A1Q?}da-6I=Z;o8u6*Y1saVnWM z-MRxbm(_mtm)~h`yGnT4V)f3CTv=q^vb$HST}?WB32Pi)f8*>#0`L08*_|}-C&3+w zE{!OOVUIbEc4;YqsagPbw=N9)BVVC9pf2$)UHRu0<dc&7G2pPpS{!=dsRvD~6Orm( zwT5eQAP(uIYmX7hWcm!(IMY3RYc6sl@@GttQw8-AopozWAnR@TDxaS-eO||O3zr<P zdoJ?_&Lpre%_4<cBR=|u#T7U1LH;Ag1@E3OB=um?D>r6fbFEmRu~xD}*H@NeV8FVy zN2&^|!tE|x>PhT#`ih;K>f-vYLmlqC-0)%qv(C9AJ;`|f&aIGt<>3u2?>K0tMJW+m zc(F(7l6pQ_;F{_PB%l=N6!UJQtC*15Xce7}ltqv(Uq^gD%Xs8%gdpIp#a+ezD;x(v zW^kl8lq<xQ>ZA+1qxFpic`Hn2EbTl420SB9*E#G@xTRBoT_<8B?kjTY^m(~0GoYl- zZ?_gpA|xIUpfRd*8L)js2Z(58G}ijfKKWQKrZ7(E<h`IIf8i`g4wfaaAt_nOji>-x zBp^U>7pscICN9Ot$3gae`dV7ZXiW$NW&wTj*2gdvsdS4XwGa8jV%N`&5GCZHz{^R2 zjj9z4^Yh${x2Q2AUJU6*KT36jVmqBJ(4?+f@hf;40yjnB0l+X4&y+<$jnD^`@Au30 zsG99gA}maAkK6mhGx+QEb?2%r-$>7}g&U(nG72g`;=O6{*;En6wRQb;PH5oXh8W5a z4Eoj&%?Rxv<+W4}Zxbi)_ic|E|7hl<44ppX)fl@Zv*%fa2)hIa0=6)>B8W}~V#|bM zlxH|%gvk^8%SGXxUM+<Gimu7EN;AwUN^;0~Jzd?WU;hq2)0QbN+x5A}R{G(-ti&ol z6;_m%xQ-A=sbk19tm*N5<?3$t&&T%t(Q+m{{%8!*f$Z{GgSh>om4{Ru@QE}7DQztQ zixEvP#zOau$}VIh@X(63WL5wu-W_iY(e3>y@yDOo%e(U!wR*J-U0Sabl%xIZgp3TR znW132wbV|95h%j`F2a4}RWjK}PaOj|7s^MFPRyr${DtpOEoF!KVg~2)Ofd6yp2#F_ zM)rfpxJwNMkL?)@5YW5cp(6S9{FJZj)WMr!-k1?oJ7g9~D=;YcI}#_{$x3Lyma$ze zy4@fTwD{yb(!~3JM~L<PM*khjwcT5yqTmw0)4AEbcv>^{ws)^3Gl<jMoZOynmUNj= zUIfI_wC03WWX+T%Zde=Z<AzYH{rru{CSxd@lN54}x({ejbt&NQjwE7iL}G1d=%y+1 zk-^}K!bcBON_(|4r)Q3FK-Drh3AWSN={R2SCX?Y|$Wp`=*s9E?5sqLml!OVdBN87T zjsSX=|EXM2-b@mJ3Xik;wm}`W$lTb#ihePAuam+AlEZ%E&Db4sq{BKdRs|@J^b_&3 zjQ|zFpfAEn+vp=Rz7s(MC=`BEy~S!pI|jLN+}<}AKSMGtv0S`pQn3Exn;l0wnf?>K zGL##%sx{&tsbWw7l!_8IX`f<^QFmcnlTRgh6bZk(IAmPKt37MBUTYIzY)Vd4F}P`Z zda5^x?J9@{vqw4pRZJQ?fg*3d1(*TkU;wbkyYJKd&h~Ui+(GEVc^Bsp8t1Rep3(8= z$^zTE@<Dn)hjN^)Jr^^FMYhft3vQUBOu@u6<il$>dG7_cEYNV2c3os?jq-e&fJZo7 z&d#rbRRT~`_wDKd5w?}zPwWz%TUGZg=3f8;>|L%-Qo*xsa*{I;_WO__7g#l=97E?= z{}q3K!B8SVk_V7R#Z@!mlLxp;83wdz%4mk2x{p|sw6O0yJ0Z|Yl?EW}UskJ@JsghZ z2`Zs(LZQzfv5RQ?gt?H2g;fvcG!h{aTq=<Jzb4rte?fn|8#^dfk0|`~;C)`77!+Ot zcX`}XW|S7NsR^=AT9j7hNwjp`DY9V!<_vgnl%LzDrvg~c#vpW;Z7ez~YBG>m>N?c@ z|0aJlRne{!pvB6sxo{-%oAcZvrtWQ-Hx-Z8XH~?&*9SnDu+iu7EQO1bsk4(o23I*7 zq;{4qK)TuWoKs@9UeFlCf<hJg!}n#T7(X^XG_;jtQEGeiXxQx+zZta^K|`Ft&-b;v zuBydYTo7iEDr#~wx`qV$K72jhIPP<@tAy*k>4<RxXB@_SQSA#3YlPGu`<rv>wbTt3 zcYI>l?scUBo&t62PXHqV1PTfDlfsd~vG@Cz&W!5#MH}L86r^#%F>x7~1bX#(Sgq<p ztoi$eL{RJ?D_<%3)rG64FBK5g#f(vTi&GYGol0JkS4|lufMmebpk`n;fa0Vrwinzv z#?q7h{qWS<<`#4`;x%x$V<*6i9r}l2$R_)~gDf9cpH{YOFpNrGg5fc2j3wnJubYGm zMC*8`s>@edQK@tpeUJ2QMtS)uUJP_YN42}kS(){OILj=>g7yv#MAvm|ku)ZeVmI9n z2`r5=>s)Qg^uv=sM-l5$%UjiZtP;W8bY~)-+UFit>uI~5?G>a2%1$`gEfaj0H%e2- zu$1086#%iOEb7)wU{{s4ui;J9r~fh1Mg{z`%XV_W?-;<&9}spBN?$h#!ie$cHtm?i zpw9Ome~j2JT<mmu2r=vz&F!V|r+4-JS-GB>Jn;x09^IE-zRsu3qy^mU^iov~S0|3v zAEkS<sV&6IxDc=CoIa6&cIy*9oXZ+jcjE}5HNd5Baxc?**$(zRDMS*AreBdLHPDEu zRc!AWV6rlHs}fr-2Rn9uz?~?<gVn5?Ez}0^$j&E1=#`XPExlbYZixIeU4AyHe?!Hv z61mKttdRYy;Hwi@BQB`rtPB7s|5Z&jHhQ{`7~(Hq6e5+^Uh$W@y<GzkeRSu|B#1Sa zFeS!uLRXps;pN<Glr!y83gC{eEXQky)Ng^bmBZc{7NhXJWfg%z$f#h&4yagkP2u)p zi01+NAChLZ-a%hG!IE)cA?e+R>U7S&f2>utL^;B-m2iA!_Ksu|e+JFM7<lG3_O;+| zC5<tKd(76EC}!Va2o~qom%ZLIO15EpM6;if*)7H~s1!9+8+OMyeQZXIELdHjfFhk^ z5U-Ht0Q<LImW*9arhcomasd+b-tbZd+f$X}bD8)HS{4`7rJg2oX-APPLDB1{O~5ex z`R&C44+uZ8K4+I;xnx>VhIgC<R!B;R2~Ty3nxHb9*#S3Bn~_Ts<rx+JJ|3nGc7yPg zzXQyHx)l-x9K8Gr%8J+$`4u^O9hOs4B>xdIrEMF~*Y-BkwYKN`g9R}_iz>0|#kb9y z{fjX4HwN!(@rV4h2uoe<<vP-~V8n~n2|UD?{YOnWuvYeGb^m-Yo`WXz?W{!0Id^XH z7%f-nPQ4>I(7(LAX98bT$3*8Vh3^<2V@*BA_GkO@)z|BF-}$BYelnA<*ZcM7c@iC8 zC-&7TgjO0Fm2=eZ$Fg0CJEq4lbD#ock|;T)Mj)b}BpKC0^UZ}=397e?%4G85P?#h1 zw2}uarbwCOH{674(h*vbkn<i64mQe&luQZ2OV@(9!Y7?E6tpnxz%|$hgtve-PckRd zR-Y*Y>7s%{fx$b{W3Rk}?2E;MSi$$|;dm8!Mqt$%TtHuEig-HU{Dk2qid$Oka0GkN zFO(lO*U*|;4ErCz0+AyCCF=4Z;>qd906T&v%WZu8=UN%@(nCAxg=ZyV_X@odai%-D zf%+U|4r2g50gYoMrV)Jj0x0Yx5L~VGO|5n%e&>E5OG@WxlwS0w&86hsB3rc{3TcwO zOqS&-^7jE^02O91jq6GOw@tl2MDbp8VlW)C3h)9)?h=Lt(mkbHxSxB~UZJOpHctzj z#C>IQm{smyP9dpZWyw!Y=!!M)kdI4qAI5QEsW;{xxknbKv@p#?qJ9?}uJZl}GhHU2 zuy4d1*_ONxtYn1v${Ohn;b%<VjXF7K4H}`B2UB+U#97n9A}d*583WG%lF1u#3O%-I zmvC%hP@oHovSW<O;dr-~$_yKmT7r`moGlx&vm)roI=Kmj$9MoHvNX5A9Ca1PSmr=z zS(R-VXDkPqJ)ojkz+X+t(=@<ht8xY}P2J^b>+cLoGpTUmYqujxOjQ5fNnSdkyn;{1 zcC<~_ZmF+uzDAe9c4=0exQGOgGkKxsEWTxo>IBo>f1N&272Um$tcS=&n8zfox|7)5 zzRd<}AhU$N%N7moc_j==*$(6A0+@X?EEN9L2G_qJ9#MyEep&F=XdFXBedC9k6PV_= zV6q0`P8h<H{7=At<5-RaHK^N6NFV&BVO1Xep6O2?#8RDM#ESp4%P4u#WDyjKjO^l? zf{2)z&`&WyNSGY~N9qWoX))x+w&M>Q#|isstw83)n9#rFd+R+I!r=I(@_h}Gd$=T- zO_ttOCgR&T>YX2e&F+I+1&gU}M*YMA3?_bFgeHFV!<Q}{<bqL>?(>aP;(I|VCdaz4 zNIlA{M+6fYYMH;my(8NjLeZD}$ak|&|D_~>U29M$IH=(e`g(pO*RHUWI1B#wFX#A< zZY+&UQ@Iy@c{(rmeJ(5<2l0Ejb?cE)9uHD;e0d%IDP24j1}|OQdy_5QlJkUuSGOY} zuF-SMC^H-n2bHJ|qnM(E*Jt6}DOI2$oRKwHOStk_RP;bbPykEH7EJMf7sA~jI5Z;r zgp4q2QwNa4w!9U1h?*Slj+S&$f1raQlQkAB>(>a?l&<n--0KA&xha&U;u)a}R3cWB zdgk#SNcQg3_|0PriCrAljOn>+y06qy-Qp@doAHq9?}Kc9zlBr{J)ZzO(SM+X1^XhF ze(C<>J0J|lOE_!k8QzwH;~Qn|c5gzuB+dsl-f;=i*h(aq@`KY@<h|-&6Idv1ONJpA zpL2HKeN1LiZGhZ+(T>)o80h7<622mN^0Zqv>u@fMP0P!wP*pdrcXymH+z`RU`il8@ zb*JlZr9y~prDn2QUBMqU6$|hwoRilxSM+Je`EYT=GZY!-633HsOE5f#rNWc_ZCMD* zJb@R?6?use>B$C~xj1baF8D_#tf|Bij*U!h9W%tdLeD82x1~&i@NagNT$ww`kObLP z5?WXyNZ}_6-x-_wa^?eGr?pMlih|A&)Y<_#G}aAk>}}ZZwc}-q#8MMNZm4S~Tnz0s z<hPH-tbd%}&H3#K95BER{smTA!}#-;YvQAdy@15v(jVP8VRS8@>#-$8>tHbdmx^hN z`mz}}c@D35r3!vjvR1K7wY-bKcpTV{08bbcl{uuB2>Cf|z(@!futR!I>CWYMi?-az zFBo#^BZ=91(W+w3)_5S169)uB7+C32*Z9V~i{}fYr)=TETw)FE#U%|IR#8a2cy7xi zL-^)%_Jay%!x6waJEe4r%Y}4+D~E~BS&?yT0ee+&7-t;OY>1CLDx^XFn12UnQTzIc zB7r;^M}F^@NKXLU|2!OG!a0Gg7)l5=oa6FH5No6AYA>4HML0+A*80H}IM|CWN6#H? z>v^ex>Sih7B9Cv1VaXOidwt#d=E##FWlGTJhhCjwkHFOn7dbNwe6fhriSmIG7#(b^ ziR9zq{yINQNB-X5e6OLRi+5QI>dS9O>C<N)MVI(SW1Y-FeFC6a5*#?D70V%$lXUZF z|KYT_?z8^$i)~K!O+7zx&?6jew6Z4r1A~3mKpb*DA7fGz8A!jCS{F}Kc{Y$qKf_km z-gY<uXPA1nuwtu4&pJUiiXHuz0{h1F#o+3oVS2-jnjfDn$UcK-%;yr|EyhC;-Yihh zv0l704$1+#z5{?766J<j4fdLulR;iq2r<S8e=3`(ByNb@h-8UzzwKG$QjlLgOF~Up zzaHpp33gSP^b_(MkiR3CH{n2HZsN8HR*ngrm&3o1;BIGnIrn?%E9MDa6z}x{LJB{A zwh6C;e%to0te0IySEF*WpgT*O&U5D~L8vEHJN8f**cAyGzIMX;%`$-oa^{zOIkc2s zd>yQuEP_oTFs}}Ore`(44?Z+w85f<x&3V6C)v5H=NF_zB(f3&OgU3(V2d}8mM;<+w zt*q9C|D#L5yV+3wIJP?vX=iLr5PDxaj6jYo+pnB$=AB#*bF4Ap8<^A*bL>_$)=(55 zO<r8)+-x-If=f*-c^xjQq~XmC5+~oNN!xJE?;=70hvKK_m_m;>X2C?!@g>uP%5TfM z1rW{b-b~5x+RSCr0M5KVIWM1kGDJn^#1PK?HY6BNe%u3x(E$RfG|wv#k9oQFkX|0R zOiS5zn4A4FSIq`MhaReeOWSE%%8upEmkUNAE}ZBB+4B<9UHlN~nat`5zOes?#LJw| zC1Y+vwgmPwugQ2$;l{0k#6^_gplB}gp&-rrQ}pNAb%tT21ob0B=Y#fOfnQP23<KU| zOB|^X1Ng}1uDhpqGxwX|^Cv;-MLe%_UwrlWs-eatXhMXnaQ-wOcLWr_P7=yc!1r@= zG^cpavEFYm_}Qyw&aA#A1>M!i#7$Uz5!N?<EQHdeT1|VutHE+=JWrlBvKe<YgCOi_ zt)oe$Y-8wMf_zR<nX5+Fk{SB}Y@{U_dZh#?XFYTzQ{QH?-ymK)k4%7(JZ^fquiw~c zeyOUW<adn32U04Jc?8e;QnEt6-4UA9m+c|Hm7wt0vFm45s4{zCcJGfTv+qm@ALLW6 z7>c&N>Or1xyI%<F`u&|ltv*sir-TI6?9YZ(SdIeinhEdgJe5)Q0F=bPdA*Y3F=*aY zu?|L+p=OyHmdj+m?-$lLFtPeCVaXmYRetQarH=mUhWT_Lb#-|-g0<BCt;~27-Pq#F znw><wFMeX8hvW^O#i41v4<T$0o<Q2q2l#T_2>`?m11w6=>ajbhGt}dXY^OfX6&~nj zTu)GAu|rT+Aly$2^j$%0gq}QS<&Q<qyDdE?RNlrOmrA-(D(P@NPyja&_j^Hc;JS0r z8Tli`5xNFFV>A1o6w17f?cm(0Nz(HW*Eg~*y9+(W0U(=v>%UCoa2%jh<n&t|uG!I^ zc=R$k8wADtuKHj<=?Z>R4dW=hzeKBS&v?0YBa+ozU)Z5e7mUxzlFos9&a$gQu>G^O zo-3M4)&Om!?;1Ik_fZMxddje4oT$OidkVuuB|Z<&GR+ni4(naCs%j`Dy0apfsqvkH z-LQRauH!*rNVPUm0OGe1m9>$ppqQN^`=cKaX*xr3OUE>`xYZbMwoRo*mASf!zSKPU z#kzk~2;gN1i<A6qvP7EA{?v4T`CBfao>R5ZNn8^CE>>3!y{f4e*dSW=T$}CWW4f?I zZu8U%Dl<*h;Fu4dP0oE=EoHp0s7oO$8?V3*HWndZxUBV`zc=qc3;-j{hrc_oA{46D z`+I1b88eA;{%kmBCD+eG<+)m$0ZJm6z8v1x=(AtnB&7ql97U+<pE82v5RWi1a}Vl5 zD|p#vtE-bli0cQo?R`6`DyMkZ%%aoK$Z?g}-Thlkeu<odKaS2(@rDe>r>9agkxEFn ziIEZG3XS~%``+s<B$sYvyX&vETCJ{F3|V=IOj!t7l3B4aNfk7knKX#jx6!T2lA^E{ zc@1)TZO|GK`MIG6DH?d6`S4h2+bSP1sJwXQ@OLC4!^K<~>FN*S=s^l0cMHaaZpdFy zY(L}k93_%7z|FUm{mU2pnE^i%k3}yUFQcZ!;KYH2{Dc)$v)Ck{12|)_@GpP_PVEP` zxI<oiKH^360aUVMhL*aP)(f*mFAzNZZ0M&U0%|l=p-84bJne`|b44tY`i~pcIF{Yy zjV+=lhygJ=rslNwJ|a;?!uLrP%#FUcB;0D~UGK4~SIyw!_M24`ZZoLeMfPb0TALDf zMF{CCZB;QYx!7TKN`0a33*kpQNc5r5)dLCku=)n6X6H3l3M@Mb<G(n#ctSEB@|9;L z`J39yjqO8(UBVh2wE3t&ZV;AAIFeJnsnwU_=DWLqHm~2t_4@Bb*hIbWdnY~}OD&ws zj@%}$C_zwKnZa|4d#SLOTFIo^Rh*3Oas{{UG72Q;b`DKtCXZk@mjmZV+2O1(W&OuK zBA)PA=3TaYa{hbxZ0G@-fY$wS>YIj@_CTQ(PJDs3P0>?pe(!gv`$hbGb}ZLMq72g+ zKNLS`8J?2^a~i27xyA@9PL``_r-=;01nh|xscCxe6|3&G7f-n2C~nB?{IHq&6i1Dj zv<F<==R(VZNbS%~pl_|R`x_VBkG0TQ8t(MPv2Z=X9zh3>p;a;i+%Mj^L<-()Fq^-9 zUb5%Q6giJEf4aAW7a)6-AJRnq;I@P|o3|SqMjb0IYi+%A{WOWq!zDrH6~S<$I=x)m zi;`qkuFk~D1jDN22g0YR<FqkRp5kTVjtRjrA5eD0MT==z*UMeQmOyiBUB!X;9bHg3 zgd4BuaVcg-2x9J-qf&VU%bfkCJayZ6`WWH}2s?u{uo9ycJB8hxe1%zQClZ+Eu9k#E z9XIOEQN*~jH>?{X(h%g<`lHGE$F4*#+Er#v6Elaq)34_YK~fsaWq6dnx;Wtb*;lxT z^h4Jc1Q))*l1Ic>H#Mc5>1R%4$eQIIAcii5DNKQ;Odz1{Oge$c3J%B(6L;5Pd$D<k zrINp4aWSBm{(gX{L6F`$NecBhF(&xKz^!UELZ6f`_m8!D(n=uHNU)NKOa(`e9KaJy z8ao48`?;58s5I|15N%KSrg_}<?jgDA5}<>{cx^kByb7^NNx-#Q>Q*${z~13{nFnPe zClLmD>&24Cys?_ujz_fF-?VHl!BkEz^xgUp&nztSUFIoNn_q@V&1B_HECeg&k1rcP ztnP>U;CF)jG45`so%dp_Dh#q^6sf^-5N;Hgj0u=Cw`b4}>Fx#TM0*3mY~tKy+<>3N zhB{8z&aKq7joe4zk#A$p4e1<5NVG1D+TrGAvfV&$FdLq+yNU~*3D|DOY1^VnVDgZD z$47vKg^1W02t-z0fdKUWe7Ri3=Pff%rWn9f#mL7|4O^U{LJq~0-(B*7osNid3r7$D zM27&DO_`Nj^h{Kz0BqN6&d2}D&%dyq+$c1i@!^FSGIb`#h)WcWL3^HZ(NbP0>fE3b z7O1_|xe9W__ogj25c6tppm-jrzv%6vbB^_qn$gv+Js|rSZLew3Jduo`Lu>kD9FjwR zg<~R{66hi&3%uP)S<X@&U%ANB9~It)-)EvnJ5n^!Bv&yim+DZ2ZmL5IVt;u|@yPt9 zc0izw)_YD%6V0BY%RRZ&c*qlh?hwl{0k(rrsQ8X=R}BK^UUTtKVjxp&ugA|Hx}lIc z+>FJUD%DwZ1=7e8zDOTXw4SGiY4$iW(*f!3p)BMU4iK(dC{{7(+?XYA=PY?1W+c9w zS`{q%m=-*zA0gp^)FOE%i<~iIL;`&(sLDSm5VwM5&2GYXkF5nuL1TgR;+}WOC}B}F zsx)CLO;JULdz=b$(`7QLokd*^M}!>5xE4S%f7;a&J?P#2D%gBok`;z6OoRw@8YtTN zW3A8rVOee_*~6*ZghK}voy7#TZ4~YW@!~*C_!rF@rZIdu#XbSpHE2G?URMpe5~!yZ zicu@++t#uP7s*q0)Cj)}zru2ugM`$DESn_$1dFo?U<jd}MzKtxqWhTj*nZAtX2ZF8 zCyoo{*n1a9gz5r%4JHqzb=pEUobF)4Q#q0z!b+Z{V&0!?R`*YX+l&c<JQNhmNMKYR zX$Fg6d!?pj&rugten^^c;p09!gO_#Ql4)K}b;bOZqaMQODj|(|ZfDqi)Y%1t+zF|r z`kk&A)bc2h6h!i*l4kg~jQ0-6J=;rUUvKEFySnkbaqAJmH%CgbkaC}wFAe?NyGTqk zSE^=$iOI5q<qY)JeWO&<5K`lYUIZDk7bBW0t*_abHA@x5hT?_tTHRGgpW6#Zv94V$ z07JWeN}xrk)IXQmD!XR_pL+t|%<1v;VW?a#&v$AAdG%tRJ9qqOq1Kn@phwt|WXS4x zI-ktJ=}4x9L;6gnraCo&{A!!33%pxTKh)Yfy4sbnM9aF1b^`%fF$pcnu}B-I@Y~gg zd#S;UYdaabiL+1Ch2aYcPyJ1G?@TRpEg!hGt8#*EDyO`F*Shze)*q+eI3|mm!I_bC zIz#ZxdTrr*A6A^}%vF5dE|2?r(8ZF~-^b_QsK;1XIUkG|IR@RKyHNKZKSdcBxe>l7 zS+URVB>``zcyl|bJ}0v`Zel{7$iNc_DwhsVin}-2jbaxTl@d;}4+wN5&l;YB#`%8& z3U!gr33FNuWQpB*B#e}+9iFcqmMi<F_udm=wnMFE<V(U77gIU+o_Ul60!1)V^E77v z&D2M{UJRzUT=B&0?5rOv(zLbo3j)tWZuoHEK1E1_;sPY^WSW^V<9wedSB;?EAThgf z7;u9lbNG8Bc=1~&2dvxG*lQd3qId?p@JR(Oe+D<#OqF;$-grcV%N;)#=@)_++piF> z$>m_{H{?Hi7~G}~KaK(LBk-M7004Z-PW)sM5Gb#=q!3G&`pgeuO6j_eZTU4|z+nkq zT(bjQsy}J#882~J;R{l`C0VCyw(^GofiGt#L)EerYZ%(tpC==oj1zE;Gt5!w>pFi% z5EWAXI#4d3>MO_l4j4=1madUnA6KUG%IUBjcIT1`@*K^|a5Al1BPr?|Y0&~Dj%rb7 zFzJmeVfMkVZD-$}s&t-kTl#?pleq*4eFN0p0#Z-o97{Y>QnXfErJGA&D+Na|iiseC zRR#BFBG@`zScwnf9iJj&(ztjb768m%<;z-!;v8NWh0xxRg=h6m<bbSyc<n12-WO8^ z$Q1O@O|F-Ci!i?npdE1(B{_D*LjomC9ARl*thbDqH<uxCWE50BN?ubtvx?9s7>ED5 zq*F29QmyYtShZP|?Y+Fz(J~YdkDW5*b!|<%kNM&lG3ha^!jx*!mXmfjjBFIE=jAmO z_xZ4+w0GVq7-nerDS|pJtXXt;AI71RKCqAJ^m}KThpb)QA&3U{yO1Sgn~sl~!ObKp z8}0V|azdzJ8i50Y;_0W;jk`T$C7|pfVje&j?jdoWvK&C+Kc!?}v1cCASF%9kRNWZK zxj*fY^ttdq1<p=?4Z_z;l3}dwFD@GWgP!mbcf80kv7`^czQ+VU>TFVM&FHwi8b?iE znRJQ3SUB#5F92Y>@xz8+wwNJfl;Sp*yBPGhqPOCAjBR(lr*wMWJ}$5R0kB?UJ>H)e z+mp7v?%ywmmui^w<G${%7g7bH+J9o^ZCx6wuEEwi^4(<wnH|`MhV~3@s!eYaK*j-L zBi<Gg66HiQP!w2298VG5*OzGH10U1`@YZ*#;A_mY67w&q1{o6f1GD=RpU{e11$k-H z2-@e5#(1Cs`)e<P2h-E$BgHr%@|}(^m_hK4yGds@86XWe$#m$8u;~~q*iajH!a3o= z5qTe{g0E>k{_V(+jP?Cv%Bu^XO!YZq&AM<rWt}&ylHMoDC%nY2oEU|Bu_df$O%RON zv^lZwVEEGVGZDWJ=1j}KrjzkB!H1T_iy%Q}%(S2h3G+5j=0fb=*~DyGKf`jWqi*=) zc#``;?ls;x#&q=1gq8>-S&)?RchNReDrNNNFhoBTh+qr~i?$-+Ijv@3nG>qlOc_Sw zgk0SJIyPf8J(kPauK-b2lQM@WQCJ}41B&^V4O_LuXLU(f7YsgXq3f<JOGk9^-sEES z=iPlHGrEqua1uLm>PU4x1GVwRXhS%Uc^5xin(L77^guf53UwTEYUB@9ig)EUQ3ik< z=+tJw(EP^qnxj1mE!-Oc(Hu3`VXy-uMJ6;!w&g6`rfo}FxPpWy9o5eelf#Z1^VbDQ zIGR}AHYAc~9F=Rk=+yl}b2zb>DzSP?KRcg}i!=ku`=i&O?ZFW&VuA9igHAKU6p|Xo zlUIWqdf@utnzuoZ!#DXru(4lTqNTR~7AcD0=TtS9VK3`Z|C!++q_o$cq;v1ZJ^T)| zNyqV3@Bx~enIh<+fwV=}4Ki)_ehDgc^Iy|Vp3B3PtYiqxWLERYax0x_As>;x!FUE| zKR2B&6|#xuL_8(RNxL7@LoZl<z1{Wl;(5QjzQ6B$9k~|D64+&^WLOJz*VYA0@-A7( zELQKslGQr1`tz4^aC&Npr7nA@7GeX*XrH8IKDbGW2!Ps-PG;);S{vQ^;_pJ-Hzl8q z&u{1M`Nc@QxrxBNgggOpN;tr?pBwz~F+=^glN>Gdnrew?tpa1FZ1J@6gb?y%Pf#$E zr*IDJmh@qG=;xn@$?_t!ArT79qNfr9mY`LClXs{#IfeN22CN$*^!@X=3*N;-?nfY4 z)TGK*oTg#Aoa9rB6LcQH*x0=LG75<&7yfXkdjN-kA;FE!;yy<b+C0MXMPvGTct*`y zz^h5%jgT#XaHSFcE?=b5m9sIe&r*A2^OC`W2NC8hZI5OQ8cvySYKaujhb$%>m*DoJ zujj-Uyz|)>3k8@tgIuMzYlpnln(R`zNY}R`g25ozb(3_!b5X6lFDXy16@KxJXVeu@ zO|m9cJ4{)AxU%%H16>MZ)Sj)X2o+GXNh1Iwi~?WPZV~{9r6K=<V?<kHfWRj*x#-Y( z>Kba-yyMAw8&nl;KHz@Z<zi`&60bOK{sPuRM`RKOf<UrN_fcABcuEL<dC(O9Y_Rzc zmvA2Id_KRH07B+f`sdzyR#VkHb*b>kyVyDpj+4YutJ^VCtm8q8MsmQU9%_nx|CTDW zzKi<hCXQ5b$K{;(LJBM>LtVa!zme~P6JE3B8w0MPpI1a65TP~d==|le0mT@TcU#A< zeOtr35h@Ip4r-+Y{}v&J)B{tri3Qas$9G+|Ya{L*bAcmy0&Kq~d*Yzf2p3ci;+Q%( z9L423F!*|G0Eh3d(&$*QL&Km8SMKd)Gm<A|?-?MprQBAL*j2r<^i9`@$q{|4z5BXH zd%9ULWD6#ClKMAKY<!dLQKjfxAzsxKY^2e{5`0hAin;_{@WtAH?%~F76mZa*F}Lg0 z>5V8!O%;#eiAUbtf<gHu$Hn}r11*4(qH*sd6KgsTU=}I5zYpGIRJTx;f#~+LB<947 zxFFcV$`nAMo?ZeE6?1YE1Df=EG+Cou0wt#1y_9$2GCBnnNomW9Si8(?!bbhIQ;c}7 zPRNi=y{WeMk}G<Qo%o%W!$IKaBpORhOf#)5W`*{TPCd36E;an^?4WV1mUV*Bi!==Q zV{hNF2}(@b_L@<xGR&-~WW3q+OmNn$fRD$%Xoj>cTZTwc&eTq}$N@vbHNrPsavqmX z2wd&-oJ7X;^~+dr!9Hm_-lq61PIFW<Jpy!7FWuO0{I$fzqiq@1RF#gE`-ZJ?<1FKJ z=ehBEUj&JoDbg68dg$k&W=!OQc?R4NjLYGI)?Yw(i0v-6aZ(q`s@UoB)&`GZsNQJN zl-c_6A`m@8_MY?NPm;{eTC}J~JOmEK57)x;VOKC1Eb1qw5P>V|_77GEAu{}m<Z&r5 zI@eM2(YRPQUmO1;_|bAac9$z<7O#aQCWQ1j=#P>yMPneb8+eogFEA!7hW=hqTMSfi zxpL7oE9-<v0x0yw(1!8+<@+C#-hbS6qhj8S;{Q~4>i-0l*#C@o|Lv}`b7x}sr?|J% zclu|q^H$`s9iT_p{-&xiAViYM03!+-6EBv<J)5Ipd?P@M!F|UO{_&;@f5X~H3~jva z_MGLt?6BwcBhDX%>2AI0$d3s^fP$A_c?gp9q-=EB7?Ym{pvw?EmmLme4w{z)5WCw> zd)g=OSpbt|R=#T(CF@&tIqZHUDCcWWd;+ZcXZh|!s2L5UbE6Oqyf=A#Z2#_Q{J2v@ zZrFu%W5#8N_Ec-E*)cB^0_Una(s1lu0kh6?fx^_6pn8frh$<(j#u_eH^Q{Sdf{0MD zihD7WAD&tx5=0dgswCmKkZ<lxb51O=G!n$vAY(TrH~(vx@MN7X!>kYqQ{FypnL@kZ zm42FD7Zzc23j-=0x_J+Cz~o`@t+*K&$Rgc{*)^+&cz+0!_CpY<r~MUtlFXNX`kQ~s zBu<PN4o(;Qh%fqNh4v249i#aL^xp;eH|7BU#{U0bg#YgUT>xE|f67x^hyN`R1pZ&X z!v9oIsIrbM=AWq0L=6Cd;QxGqzMY+sxr5`sGG1$4I&88x{M45AEtpCsNR@a=kRjV< zX~)tbuadO<i)u^%2Z4$RAQ?u?5sGhSD0SY}+cw2EZ^QbLkV~c@|LJ5J{fQSRncF_Q z3?&<C=4)2MZ2c5iI+;h!oJpt;v#_)>^bUMCKoBm}P9YnN#=nEo;zL-}z=;}xw0x6k z>27~_GxT({OuYV-up8zIPqkY?96Z{H<lqYTYBiWyf#br0F}ce6V}Doc8_}lfh;u4~ z6eNITHy%P{0-ST_h9pb?@K~})f7eZdFdvfTz=r|Giw#omWZ4XNdbQ3jQPO$+^8WyM zK!?95NXBX3^~I!J5T^~(aqx3P*9$_)ylB8u>5aIHyg|rAe#K5j!sRZmp1tZEo-z@! z>oJFgB!bCAzz3kk243Q^VGydJjA`yNolZrZxRbz-g#;ClAOk-1(lBv7IlcLd^n=0P zW&h7S+DPS}ceXaSpFUc9*LivIVrT2=qpj_&t?ivH&<}oqe>asRp3lxY?A@+mG~ib} z6jL6%s2Hx;2tS?hC?O@aVai$OUHd>pKA$G37q)*qKL&w2Gnw#7JBSAS#vLb<kQlr> z{E4AjNk4C*^_z^7Oh8RuJdo}%=6t~AWg@1oh)3<dCpjpU%wc`m2tnmCQPgX_-W87} zh|~+Bq3HG49&2p1*rOKPY!+_f^}1VkKZzh}OuT7BCUJ|ECpVk5S}mBMl9`-I^HIoJ z?flmrAORQM;*|HBAK2a=+ksg_219mhU@ewL0XR0t@kva#aNZQ;hV@TeSaY1nYjCAT z{gZd))thRX=4QsxH6eSEH$hU_bew{6H=6HvK7asf?$8Xi$iD?ch-(QP*cx;6H}>w_ zY31LZz!#oC7%}}P$%d$~>mb_MuG0-3E?@zkpvfCIT1*ct4I~Xg$!XflAWCmgpiUZ{ zb@0P6xWbQ}!!n&U*5OHl;hKyCi4o(3ICtA&@HG+%3kKW^Tdbdg&7yF|%o4%tK)3=S zOdXz&ehZ`gG50U|fSeP9HW_mkgNHFOq|XyENJGx}4LDyS3slyNW?ctk&tMps97L2= z%U9CYYqa#5b+1SXe6R*V4atMYJxm2XaQy~EBI<tcR7AXmS;9*pk;eMFc1ry%79J$F z(cZBKoV0hvkc3|IB#k3BOv8{(y=06!#1$f^Lf*sd11w1)r0PO?goJ1o=4g>f{YZv9 z6_jQTXNA9$AyWc=N<qCiMJoWffo?@SLsBtG$p@~*NiEl54YDjqJiz3sE!-@N0G}<+ z83FW#L4ZaAFF{}G3#b#7D`gk6DSQSOu}B4pVJ5DrctCcXdeMw{!z3g#gjtgHJ^vC_ zto7uwUq#9$o=tA*Ny*4iI21(l`rt)DQdqq<F6r5en3$q?UTBQ2Ovyuz=~?sR=*MDC z4LDMZLDllwQ!`TJj)Fsw&)_aypFmX!ApILY(jp~jWK8u6DD)wqP;mGdrxC*ffI@&o z;mk$Dqs3ap#3FMo(hx*7nnpU#vx)af#LwMl;KcC1V>{6q+MnzME&#<dGWtdJOd)WA zXF+*77Qk`(LWJClT1;0=rS&HBL8ri0@`PQ)DbMx6jeA-AH9_QRB1QQw+TH`T0T1*K z_=s+Wu_e(}y-I2kPp(CLiQLmEO)&JQu^<Sblty$^XkG^pzJ1%Uau)e@iil8*0`Ofx zE!F^oU=r?+foBOr5L{@7K|l85S=;xYeE<EUAD%YecHFJaCLxRG7Bxzh=&XJ!$pyh1 z0x452b$-yHQ;^!I3E>x{-`$K}jy~+af3#m}dG_<5WF3Wp+RxzPDHuJM>rE8glxZkB zZYV&Owj2ZBd?Mak!*mct?0*2E^bYqg_IoeRULCbC48TbONJ1HTFdh_6*1$TWP1Hno z2fN)v4UH7$(?v>lpW))sF`svfD>wvgbWw_ZN=VPU^Gh+jihS6ryk6pB^E;ox`U$IC z<{R|n(yE9eaa@sZ#gZ1%eXYhWpiHEX2~Y+%Eq2YpE5lG+Q{ZNZ6SbsqbIHmoN8}+3 zxM7y124|7i=wyV59{*R^j%xTGa|kavxoZc*Lg9fJ#^SfTpf2s1G?v}>A>}4;Jxe&S z6z8CGa`>{he}0bZaL|4ArI%+1`}vKG2-Su?KyEJOe#oa2{Ltu)c+vxTd!V!dfJtHo z_}3O4<*@}WFA4pG@~Azmf;B;J{8T_MEyJW~&E|KfmlGkRnj6J{&fP^S0bB=~Mel3W zm*<@N?dn-s#^M6=NnjM%BRA@nqt;thvX(s5S;2NI3YSkOm($gMq5cYF^iV}c!8jVN z0j&%Y{&|2_K@p&2LE2jpEh=X4fM*}@>>mivW}z^rzNr_(tONj;$VmET5$jMSZ9&I@ zKgM;TdvFa{(F=ebcrObBwF5TMBbgl2+DgbX^KSNIRz6!qXb6+Qw=f=tv6!$dsU4oY z?y!>H44D=>be%eemG!sYDwm@&St>~Yr@sh@egXDeEITfZ?v}2XaGxTy80+mru2Y!l zj@a%OFsY}-Y#e(*_$L4lyWR6xjKFh{fbuCe4hG=q)ZYN>tryZ6Fd`~$(-QiLrfO5G z7Kb71enA{mtL8ceA0a<g36MQ;%ivDMGH!xY`-c~>9GV^baHbEc=Dyv3eR^{G(=Iy{ z<Pcd#$dfE>l86{BX#+KaV=?l@6{jS6J)V6#z_%(^(}?fj?A5EY(+u+czXxy2V)ko6 zw>8>nm|X*UjP00(fs~XfC(`~h%j0MWGQui&5NVcDp!KJvmwc)g@P00p0-CJnNvQsz z;5Imu(*7QMU!mX|H%6Q>ZNNQX&}`CrZ*c!iLnUZEY2*?#Kdj=AbMVsqnJQQ^iN0I{ zn+ukZ>)|Fd<A;*mIQ&DcC~9V!We$>&HZ*cU<|9B)HA79;9{((uZ0qWt;Wzb@VV^e) zM&G!jte8Gv@COY3$H3qZJ!Sg){q>Y3WmRcET3e-qtTLG0Jhr>X2WO|pCqFIkAFo$X zuNLVuo0|n87PL3Lp=ocHm$b0634*`ZNVmltg~*%_a|NmLais+ptx~djBdoBf#jP;4 zn%_+q>@&;oLm%v+20zqbQr@@jgXI|ZemY?~tF6!r<B8wC8H|cOFw^(4iQG%)%hV&Q zSzq1gniGtf{cl08_rZt401Qa(fx@r65MWUdRc>X=G%AbeazXF6*R@(Zs<`UBA!YCO zRpS0uJ*pK;cjbebLM^H)s?}AoK=iiCxKbmf$_c)_l~SNe?GWwA^@mo-f2<X<s9gcM zg5Mb?iD?kwH{5#Ny;*@QA8^tGPWofuBpnNRuOe$s%qbmhs&t2D6+?@ybAWN-n3%y6 z+4)&@6D`H6Wz8;Z>-!w`u~l38EbwjzDfu}Kl1kq4NDlXhIIaLh8ijIWKg+uP0o<1! zw(645l~Cm~k6CGoHRT`Kxn~MebQhV9MqH9uutK~{zdjfUU#egR%uCM*5I)jU*hm<3 zhQmKr95VW7x2Y5)3ee@rrrJ>=5pC!#KT)%Mrhy|&(KmSy8x<d|Zo)@}cA74O1<O2I zh~P9$jO!p-DJER~q+&gV_>0#`icxR{fr2dY7WgNOV*JLNOzB4!#uTpWc3+9#f-v;D z$FR7exIxHBJ+tmJ{i(`^IC0;f@NOra@))F4_q$u}rZUR;$?3`2>8?(XY2=eJRJ6%* za8+xYAhT)f02Lj^I(i`&1X$8=x~YE@;U9Iv{I7kEX`fvCLp;VTNUCjd7gE|A?(;aC zN|WFA0NcU-!Hc6MZM(Wj%k|$u*N*a0DDK{}`ywm~3?Go_0}_2eqD8jOOEHqG0nwH^ zG!0?oR2hNh+WS3(jjHML)gUX1e`mnj##Er5I1#MT?U5|SF8;~FS4XqBo_hteMDQN5 zERiBSyBd~l;IDLd*-0H6XbH#P0)m5UG;Ba4hTS#tLcj^wOG)V=KE)VTPcy-25-FP& z;%zX{^6W}EiHvHV7W|wnno%jZd&y067yl|SQa2cvms>k`Ek!M;j(W3It{)4Ji_PKK zl^;#cb<j*k-zzl~7a_VOXpW4!1U6MSy1tos=q+CnJozD(RSf$emJQMW1W}ehw>%IL zY|H{4`4B@fda&}*k^ZG`0R^bv;~U3AOxEkcN|Ro%A$d5=fZ&~uGF2R<tA56cf5^to zd$HwhkGWmk7pc$oklc3qlYQHq)yRJMW8co3-FvyHD!cr38sm@llUb%A+wpOJVL94P z^JCmhllGF9oI5P|<X&-+xw?yMYc7)4eh^VD@BEm1l{YuPt?q>~mygvg(Q;|jXUctl zn!Z))s!{(9+Rl>YGG$wXK3CUOVlNlYY!a7<Rvhwqf-MlMwzdI(3bo+A#2gNiNje;= zjcln2)58bSy_k=1CpK&NG8lyPl7~D;o7SF3n<=%G!V_P?{{jdB0My5~aS&Rf=g(=( zv65uZMs-b44D$WmDD`64+i;F}iSULmVuWB&d*rn)1Hg|d6tqrcP%v3SAnL6dxFler zEF;G}49x;{w*J3-BVzxCa+f(8lsc{Qn9>n@7<wQk6Uf~QXV}fGU9A2HMeXr_f1m4F zKX1F_GZ0d*!aV~d_cNd6SjpUY@$=EIy@NNeUmu-b^xkxiUgrYDj(ICi_mw$_*VXv2 zdys-|qvRLmDcz%+X((bIcRQ#lc1)U*N};NVgL}4cGsp{4{VnD3>=(qIM>h=+xHYe6 z3jxqUwo0c%jM<yc2(Hch9G#J%d$6H*iH9*Weep4K&?h4*KEuZEZs)~MJW<Oz$Cl$} z3!#LUBoJ)b)B?j6+oU(eAe}XK0S*eddE#B_O}Ll6%Y`a#pZgwy`w|z}dvK{q(C?;o zsOzcvjUZ}=oKR~T&kpFjv~5*86HS7^mFm35vpj*QW$I}S_}0uDKx^z!Tt}nW8>lx4 zjp;=)D4N=i582qe;%pp@#{D2+{@9C44{6r2)13WuBwdf*ZY1&TMs%1HC|>vAj_Z$t zzXXH5A0BT$efm7#+>brkL+U*wJ%>s$lzm(zNIloe74ZOH+Vq@lKYl#lB`p)iHrm{v ze$2hgA_lf**+ea!W>b`Rk<WS4VD7%sy}9jz^*g9yG(K)wl{JbJ_zk`niJcJLqc|3E zRRdVcT4C@TW!lo{Y}9H&<zvjs`IyoxRJWDms4?bO=1cP9_V>3Z#+}Evro!zX7G}SG zIs_4vaIO#51lXZH9lUNhgl*y0=Jq3{V?7MF+z{~;);rtf$bZ{VXuq&Xa{zS{e|9$1 z(eq`I^950}IAXGB0V%CVGK(YS)+os%WN~x=yY1DjplR90xCGe2(Hi9ldD{R2F7+)) z``ax>r0iuVH^AGqqRVGfm-zjs$Xn?2UL5OIFI5&QD%crScVXt-Jr^!!?_;vEL*}nN z8T`ggQgETp9`d34YX4pDeE;GFTW8w^$0h;X-#8TIM%}NsviZ#%u4JS-+M!QQI~V(> z2S@pkx$36;*%UZ4Jv{4wDit|3us8r|9iR6uemy@jctVE-vQzmEm2m2zOS_5aP!%IH zCPJ08Mzd+oK{?$`=XVfMR{i-V5p}!u@lVA~<^n&PFtU6=^SUHxUs;2Qbb-FTq%SdQ zvG^=*xmmTf7&RG=%K@z&#E3GNV8mjXtgNYXRb53hC8vTUgMtKikV02YGwZhEz6@d% z63pC?6{RUpT?K30PTJZBW;;pTUow2%BEG7VlkIzyRPc?8VEtZi;sK4Gc7VJ&=DeE0 zp2sm)vz{1SKTuEU9OYTKiI(`*M#pMI;dxc7)8mvj#7?QBl1(UHs+?l_0yv|%9XGx{ zg)m4O4y>LYE8&6f1~tXA$9;9Z<E}TIEMMXpOqX*>3wO`iayRuXOiQ?YI(~_2D4;$i z!*_C*eJ36E9c$o#Jl7+`7ENk4ZLz!2oZtfAhxqxj|0jjbgt$fAZ!2T|uw-Qci(P5e zSH53~{|!(}0|XQR000O8MT4A7cqkOZG1344>wyCRA^-pYaBF8@a%FRGb#h~6b1z?Z zWo~3|axZXsaA9(DX>MmOaCz*#ZF}1`vM~I;*VX^PDtC^kgi>s$?QY#TyN=_uzSns< zvAgXa$E%B$Xq&Y}sw8E{n|goyGj9L^5R_ym-QDxtRd-{F1O~uhFc=Kx<z6t&$MZ=N z%&uo~QKs41V0QiaXZPTL!A?HAF4D8}DhNltU}J6VaerfN{p%oj6VE5X;UIW9`fi>U zi4=d66w|aU(>x2(GB{6)<m5UyE8?t5#!+xuBuS8;2BY)1I7_0S%7Zw&4rWPFLWTUK ziqi~QM?i5ff|jvxbq<iq{It4?iv-G#gSag7Q5pltV4RQU(<H0n3Y$DlCrKHE)j4)2 z=p0C;PLG-zC-EdmGXR(b>Q!)+R_FP=3W}txigbivA}BPP%*WCbRbrA(Q)vew5K>Bn zJ1=1<*xLy4n4aR_gvK|UpG?y7JVG$z6dO31SMa>V=c6RUiZGx@c@dP!WP(6a7yu2r z?jx0fh7igO@mmSTsP(J!d}<E~&~-X5GH5s%)3|d$A2s@OGO7d+);P^4ll%&X2@PlC z6o*!B%0wQ*`}ickOlV|G0a;!_uemokDYJUA<yCne!!S+={ftED0-!uL23KHD$_hv# zh54A}1-0uAdZ7C8{cdpZ`o-ao+i!P+y@TM*+t+{Hd%pWT=xiUr?@ko_xOe#d>mLpS zDDigt)#2ZQ*Dr$YSAPrsviIsaVSe|gH*a?j4uaQjgT0q;_V;$5N5S5!o&6u4@4fmi zcm`Epy*>=~_g?ND0^Gyb)TTh&+l6{B5X#Hlw>#g%lkI1F`+J9fi-H$>hp!Oq3xK;F zyxD$xxVQ7e{`TA8%@1$iygt~4PCN(5ul8QOcnb~fzTACvh@*nG;c>A0SNI(qe80WF zPYrJW0K<4oz1(^I=5KHJzWe?#`2O|&^IdrOY!~{s{cL}iTYL34TAKUYdoQEl`S#20 z?{=x;YXJ0?N=hGp{C<}nL6h6?zn#Oq*RK#iJFj0IzJ;HJpTpO04|VMy_YQWWVEgUf z0V3zc+t<(nVizjCCOA;_)h+`<%wyjXh@K-Tg~R#bV7Knk^WE)z0C#}(%?ag6{`|Ay z5Z3W<7;FXaKL4!K>3sf~=0u7$^@E)Wta~6JB)@3_YjRxjsy<CKCd%Y}GJ^FLsH(ts zrc?NiO&~otfTjoyh_gzH3|2M}dpw&Jc|1Bt$fF{GhfunPjlartI)l0jIH2&d91!hR zMa-)R=z5a8e{>y>MjB#-l#iu=T_CX+$=Q4o7XWw$yayK%KnZ>XW>fbw3a<0{=bw%9 ztP86z;pIF@;sQDizpsMw8d%?ZSjYwA!5lTVH;t>&IX*O60aRi)Y*YZoi~KSjBYuI? zofL6F%y%S6ug>ENJ43xk+yJ1em?Jwm*SG*4R{)2ZT;q~|a}86J4G{O=C(M=N02;xv z2m#wqg3kBA_kcP5m=}}r7o8x4PUDtv20H~|Ti61Oa2kC6+0KW~lQN#nnGZjWf+z8K zi~~!Or(bk#fX|=I(@7P~XV6iszW)Irk8dLQvY)~<$CDdor~4nav++%kOcLBaN`M{i zf9O8!K6!)vDt7t#U^s*ZhQp^fK@Qw5uAqBoKqsZHU*i=xEHL=&491E3)V#|3fThc% zs1oMhbr;NPz0FO;Q2?LQ0$6!Xq(EoD91%6Jb;gs~d0eWJ_Y~PH%mbQYjWjMpzhFsW z{gA8of`>sT>cGG5!!J4t^f^ulRC8vAU(R5FAPJoFt4{wZ@Ly_YK+}0Z2;kSfo?dn` z>9C2;=D1~=TTeZDtG%HAG&t(gqiz&*Bm9Tn;FmAD#|k!687wBmr<MbRXcTgQ^nRHG z>Y-RXj!!1Aqw=-~WQgTp?>+6qluY6bXBb2uBKshVr%5ThZ@qAVNT3hDcIkQd?_Et9 z<v{gn{{vCc+oYUNsuF02citkYU|$Ampox}3n$!#oK52aegg640bpix78X?`IG(^mx zL^1<uqk;~@LL^BB7BR7%IQ#rF=>tkLG%%=Gi9k|!yul&QVUQ?OmH9MLXodL%98QHP zAhB21vvdS|{B>}dyvN#C=Sdb^6)7#@DtTY=axYN40R96HikSEliVsvCrl*|6AVQ$@ zCX$CDoU0VXhj>!v(j7&cLYk5M4uU9P@(BWbnpC4fkJ|fXo+EZ-eR3D3C&?J4lTkh; z4j>y3Zbq<XacR<q)Y%xU57yT@#`D8;n((`|KLoD<rz8-st#3YF4}Lh@p`x(-&+~#y zk)$kQa`0qUO-E;co+B~_Wj-%P3GlYFWRNA*Q)*w9J$Lr=&xls8lK7%XP8CbQuQ2Ub z_)J$oIjydJUFz>3PGvl9UA-<>BtzomF`+<%noJU+p!(U2*1rA;6F5pv;?YI@<a(Br z(%&%%=M|tyby)qz@m0n3ror!q)j2LpRr2kAjxdw=qhwYEd-QO(DDuLr!&M9(DYY8F zje)45uZuBkN8{(PLJ)^T<M)DQYq%PA&J}T~tppn@w!+7cSsdu*Rh|*P?)?*Ib5K_B zvKZi^O2VK6%Y_z~yJDk2s5H0_tm}UHF6#vMgU}%A$R*@n&||uX6-*R+^!aC9*xiuL z?Zm(wfzSLUxxRt{n~!8OqepO_D_`Z+UPiz2=?Uyj_!WnOe|JFuqQBEwb=?J#sr!O9 zfMopa8lS(&3!qX0|6P8V@8pyDlwf^V<ntMRF*>jhz;`qK^`MH2ihoFl0Q^f7d|sqQ zNpD`|^qap{+Zna_I!j&`FY_YdACv3X*@(Z-ScaqT1%V@e{0s)ZOA`pM@g+SKCcT>h zZ{qs=xLHu|`TEg|xQZu6N!5~U9J<^AiFr+sYKOoF|4lrOcM1Ic7UWf!<;&zd-UaPu z-X>?sdn|Tvk<JcjkL9X@SpK0=doZ6-=kfbtevxGQ%Z`XRfG3clx<4W#m(6;t{t8U| zsv-VQQsfH#P>)2BY(AwHST3o*{qZEFIv^PCO!6{0jL+of>sgY?uhBtuJxO+$o701w zNdXyre2~C0L5;zFTFTq$G|#?2e7V012hr-9pUqKEv0W4~|DMfUpyQK?jc8~9o*jU^ zaBdb$NLx@hhg{<IDSgYYvJp@cVUGrx@S+I1=gE6U0RTO(rV|6;&+%pK_GKcAY*Md> ziMbx|N0t+`X?&63SOHhmB>w)%{0XZAm%w(llTY-MH$`%p=JOIMxAD+iZ7hALV%dB$ zd7hli&$dU3TGh+~OJgkLvu#x3@K+X}0PrXoC$flWw?SEr(J`B6BSi)?lKEV0{Nm7m zkxW5`pvfxvH^_IR#F}vcERXTr#idG^r+vX}c{XvERawN@8NaO83&1Ju1w-2-t<f3@ z^DG_Z<D`Z)pV@?fve~v0$_Q$j0YaetXA{`p2w6pXmI7}&1Q80DCWAdwOft<*)AzvP zVs5evwPIsp5I&uv2{tVy%@-@|#mjic2$nr%$g2d4lf(`CP?b#8_5nLZHHV{ch})Ce zUZ4wk?`ZQelz;QL;bSOcS2|id4z{*}#~?PG23SHiz~Rg7pN4y{4!Oc$8ow{oe<b|w z1hB;T#kW<#PZ6Ex1w4U&1;!j+sv_#3ga<+vj8T5YQGoy%7iWA@O!3@Ca;%8ea}lZe zcp57q2w`#E?c(g2)Wof_oKGV-l4o%G%L`I+!uo)r;y0GY2}kfcLCHM3#-rRM0?8Mu zz$gi?$)rqL@jy}+z9Pzl=kMu@8X+76dEg;P_&r0M0CDztk<a=m9gmR6ajB55K$Yf^ z17;IarNHoiU>XGpCrv=qz8(a7PzCo<E>?p_ga{ZYbjqMk<8)H;86#G(b~E}Hg&jmS z91K#`rmP4Bq_Ut>(I;|f;!~rPSLdl;gM?t02$34aLVyquxGR2#H1lgP7z~1^0}D0v z51_*orWQru5p^Y!W=v!f{;4O}xWau?GGv<D6RkB!EElB=x}GCA#qe-SIEDez&tqh$ z1yY?Vg4E;!#W9j1=mdn{3(}InVT+|e?C!wZTLsbVvPhxL`DqMf7YI|34DB}>0AjSJ zkV_IjI7=#-2sIBOjH>&7Izi<>oLht@yFD9fT>yZSloEFT>)yNZ!*AP54q$B=yf&P~ z)01%=RGUHf-Me`=co@LW8p1jXD_}oI8=L+0<6aN`9{0RBGav&W&q`E2iE0B%^lryn z@=1c%A6P(?6~YNWj_(}vJ2`j^htlG3D5oD-<)?VeM^#)0m=y9TVNsexanFfAA$uZ{ zLQOsJCS*;WK{=bGRcNk*Cbc(uH;88-m5oE70MsyqM&BapQm@w_MZN3!$Pmt_P<x)( zPvO9FmSikC9Kz8PcO&={hSxNB(m@iV4A*<q;^&_ctAxoNCgmuGqHrpW)!=|7?9$WV zzoOtt6g-WB4l15Vi$GTxaw5lx#EJt^7ceEnQ@oNP)ikVgoKT_fF>}xQOgb#DrziOY zC$alqPoH$&b-QxJ%#Bw-^xcQ$!|u0TX4o{1&`5Ar1;E=-*a_lUUg|mO8S{><L;wye z{Ue=)X0wsejybV7BxsjLCSB)xR6(H2`oKasbk>p$ca;7hWWKDx&fqN;V<Dbe*%BlU z;&POxLpW6=1<F9MM6DNiG^7`we}<x?^bs{K>l=^1{OapJ{P7z=zR1h`ioQJzI@`~7 zp6|YhPew4?9ci3PZHW>UO5p<_ppz2icCHUnMEK1{4;A4`^27!^gP-#>3rB?65n@z2 zs*B+UGQtZm<7KVS>eYy99wI~i%^*XRc4S?kki~VebzGY2uwTGQ1@$YsT&edox`aiR zh5H$-Zq)s323LupvyX!Zle~H$3O&4qEc4(ZNoKTdDKNTx&U@1oJAfp98keNs0QxJ_ zlSyI-A|U^z)o>V+PBjW<0088me6+O&(oT7{g-VTxwC?mZFi8-r44^Ea9sad8XsC)> zT&&`<AFPD0x2Q4C%NYxW=9X{BTOK&@Z#x*f5q@JH#i0m}&M5+W0<CI|55k7tN&ZZe z%$HgQGHLzk84gFddS{6v;~99$=pJhV^MiACEw^MS+0mU<dU{>oX(95FU(&v0DJ%j< z&lLk{pC?7o58}%_9hU*hD*!>wH2^=$VqgqJVW$%~>6X9`bG#~>pU4GLOP7VAz{tW` zGGOe$7eWyH1su^|3&TB2@*T=HQ`1~b+n$4^5?Bpyezn#+IJqWGII6H6YUl@ic!n>g z{D}{dcbp`JQij(H71i7>lu<r$K#WMWbt@p$s;48kFS5bJLLiQ?8w!Hp5Z2*Ac7hg3 zmtTi^VMfMEF!%6D4HZ~m*nu&kQl5v}>9v7}_qT$rdc3f|D?n_l{UT0*<=QexNNqZ_ zR@QW8^+DS2+%JO=MLG~3gZpEUcSG#b=KV3+hfLsa50$a+?AGxUYW@?s{pU%LA3{An zvr~BYwWwEo@W8i5wP{>j>}9igRpTt8he>guPTHNPUp(o!3uzaxZbov8SCbqOr0C|6 z3IMX~g?xX8pzXsWkumBgj0?LOo*W^|Su#Q^5f)h5PH@=xP>%izWzJhc+?IvLez0!u zGRF8F5;2-kB0;F09c>y-97oOBbw6f1kp_KaK!KA<uQ8FT-~bUj3oRlTr$_@d$sW2C zW`^8|7LXDeK@x(BA<4~D*OgXkNu?>g7$OUQsdtd-yvVOIz6In1jcI?t<_x4vWa;Kx zIp?g%qd$^4e;il-Xm+e{6{8i&=E9>DUDBhd+QSp>D?mfo!A<@wDLOst#vP^JPV-ph zZ0snqxxA0WSlE1fzQ@ACH-is1odJoISQM8}&na)12b9L3cHhGSuE++Ax?Qu!HO(E@ znK`Z-5LL754uz=`g+ZbA70O~V#Y@*d(I(05iI-l}4CP)p7^5)9#EUbVWc3`Pfn7e& z#@_;q%V(t}n5WZeGDh3P$@QXcJ2yI^XDmj?f5tQAB)!m<1$N0BG<&JkD3lmDx#j`k z<-c@%{{!u92hi&$+u3+9)IXozz>%|G+cNY3%s55uv0U@(@sXww$6d>b#+c#cJBraz zBF=(&hWEp`U0e{p#aJo9Hc1C|l0f$elMPhe`==ay-X^nE84=W>4GM;kl1=DDVDxRR z3aMOp&nGRNK?lGivG;mp0J6Sdg|`Lwrm@Kxiwdgr)%Hc^ped2RvmrjpizQV`yh_kJ zq}ii`gsrYF<H@|X7IhJ&EM1LL9B;*H<klz?vs!H7OJl`G#az%pW@t39N2;>}r?-{j ziPGbkPjU>k3~*;UC*3ydpr^5^%;Z_sGi;nPmDmD3P?*K*8$jDW93p%6oY1}xC5e3S z_5@W1s$#RGO!PjTMr)|`DsH`A^`7Y)tOm9<*Zv2PlcJr(4T>VB`O+w#PsWHCIK&mW zKw+5`s(FnY@A2EXpvIfX=5gCBafo+Tc*J#T-A)E>Ma*V!zeMrZ->#ugGOxh#Uhehj zDQtg^a>*Jljdr#k%{CeXtmZR1c+*Sg+?e9Ml+;c=V^IK((qoUn-6Cw^+fdhBJ2o1H zQOH=DO`4rGYC|Ds=Mcm==+I<vKx-Wi<6~LG1(zoac(L&ertl<1t?x96+4P#N$&^7H z)f|(aukK=>EzL-09PWIWBv~l1dpA9!6p%KR!Mn@%SW-&iXjE^G){k#$11+Pbmi&y0 zgD3I@B_P<S`hcvYv3vlnZ|h<=`sC)3w3INiWk^_-CRB;~p_Fuhhn?#r1`!Oz=kBAf zp)YYi4}&%UQxGZ6KMKM)zV4V(*u5b6Wu5{PkxRa*$^Xnj2|#BM59{Z4-;5X3q<N8a zFEE5qEfL2Sp~_{QxlZso>zesIV@a~>-+c4UqxFqPkJs(CZ~>vwQwXGdnr-1SbJYMM zw8AO8|5TU_mktxaOIY@LCc+3<2T4`vxYudC<rhG?t*^R-t!`_9fgsI(C$;E~f{OWy zq#2%o78X)%%%^Z3?2rX=uSFCO%#pHrEutFl`yb&y>l^y(<Mr;bJ70Kj50$u1<E6p^ z7ujeOKrGNZ0A0UpU;&F97UoTl2Mbu}MLaR2w7^2cZN}CIBD~%V9<Q5^s8?|K*f1aB zVu5D>)nT~2Cx9pcTf&I%S1u6MqUy%Ot9*@1+)cM|faEC@Pw2a~i`tjb0xCiUX^YNF zidfqatT<R+yzT}@-+FGT0Xkmb9ty>6yz9-ZGOoM-lWrDni{;3`>sI~MMLuo43M;-V z0s~_X5gJ8UT`3lvp7+4;_^P0_1nkH2DKdJzHu!MkFGC~6YprtMA_1ceApq|*@ULA0 zrA$U*%hd{gREhe=*{JTLRQ%T^Rii&OJo$FC>A*#euNSg?-Mdm7#PZ~4&uylm2KItD zlCQ^J^uo(ATkGPV(AuzI7_1U6>2i=xJV@jCaI=9+EJBmi-l>`<ju6H%w7RxvPOwk} zyMPZ>LZPf1CQWy6PubaD#n+``0Celk>IFRTv4s^~g(@Y<=z7r-z(3xxhQ29gO(bFp zJ$ba%mrzwt{2+y9vw%uQ-EMSr-1806Pe?UfUmg4yv#-A&d%^R{YXReL-jt2nI-u~V z=eg}nBtQpf`yckAwVoed3$fp-DeLf|7B3ucS{tpQE+U5|-D@gETRUF&sRaqF6Ak~8 zT(dD6vJw8ahes9qy7G+Zeb;}clwB%au(=0mL<fwhL|@?6TQZv?>7!^1-mnR6i{P>i z&)6D`ARmK9j{57z4NSJolfbYD<S4jAi4i%)rO}tVf#BG^TXS)D5e1hk?%D=cFQXO$ zcG2tf=;Byi4(VrT!xmmdw2AcaICOOB?gH}@sC8)}%H6*%B4d)<J3*66ow)S2v2fP! zGM2V=ehCZOKg>3i!|R1y4c?nF4|y%A`$&@l&}e?;)srql>+~9}-L}x?Ep)eZhg(6T zz9nWCB8e5<9Plhm`fqG@(cYV45CQMbODptAu-3L|1P`~k|DLKit=KYwf4JUrdkK>q zu-*HZ_4kg!u6`+^5!=T-NC#3lq=tL$<&M-Eh}~e=X!kUIKcA@<N%4%<<c1fbT>-fQ z2`4$QrlLTT|FX#>21pEL=))lb_?b_H)Uy^`Vlm(%A*r1sJXDZ(Hr{OnNj9ING?|1( zCl+ykqZlu+)&*p@24}}me}5YMY*{}xm$FTd!Yu7|A{ULN!76>4*o!7gZ8$L1h9+0v zGPkc8u6B~=6RrMKwL;o-@c;g*AOYmrKawIR2Qvl4I^I=D;pq-OUfdsL&AMXcqfIpb zwLoC8i{!fWXtiOrp2sEGvD&DNf{v=zS-Nv8a^_Z+7^4_nw;|Z<5)1HsO1m<i03fx} zN~r0f?uz#sSHtHO*bW|clt7y3Eo_6U+8!VH!2(DRs<71!{B$~<w@R(ZNFg75)L6q= zh5eXCEkyN0v9W$Ucpv21<ho~?>EcJOptei|-l;hOw6sCOp=ytQ+;wz)YLe}>mo)6q zl}4|D>W|0q#)2UizZISrHu_uRy0vj!F)bX#ZQGC1`f5do&cN0px^pqQTfc>Qmu{FX zX;Yz+FPR3OWvDvb$~~5KSxw1r+G**X%c1aN52KAqt$_G`b0ny^<VpVx#v~Gr#mHfM zX`vi|d6431hv%=pU#Ythu?2$|`clNL$?SAaVXjWD(U`)z-3|is6k>~xNuFP@VL6*C zu{MVcg3%F#1B@taNiYn1oH9n-%bQ!3Jy|%?Sw2$&%L6oshCdH3uJBu{N%LEh?>Od< z8a^U1fc}$hpjcPXO{4f5ZS8!R#AS8UGt31K*tD#KzE<Y}6oA3r5Y(Ly*xwuI*AydC zjTj?4AF#8%8}e*JG(szx;gJQMrm$liTti<ds>cyKqyfdD(o8j{n=s%&51=KMm&@9K zQjwxu#PVyiGqJG<K(gw)JqW^SE;d7xYwf$zb2~<3uOZb)&>bTS5|De#8HNbU&Uo=F z%kY{^OsX&mCfEk37+y^K<q6d=9NpivG(c!ez$hTor<hhFcXuE&V{$Xk9j_ufJ|PUr z2`6Mc`lNipFv52AS$wOgqXmTZov~wsw-&5#JPsajtao~-O{Ht7HNJj&Ojl1E*4@)G z*ztI5I<=VtS)pOOO}o`ee3DF@$UsiNK;p$iA{Gog``gcU_vu2|+f(0=5P)N$xc#i| zrd-wang{J4(9Q^F*l&o$Sg;v+2*(cLX+BbA{kz+aItddY({iH_QxuqswHU3mMCe$J zmK5q*m1bPFiTsw?CvYE!aI0GBE}5e)R9j55{eXJ089+&Q{+3jC{ciERi2UE_gm}xK z4zhm1hj~&a@}|+E9{{iy=qk_^e$(~LkaEYtzhstjx!Uazo6c#yaoAx>J;Pz3y<?)x zT`xFVNzLB6_scHYBV6<>1emuVx-+Oa!i}X}7lCJV+Bb2a>x;_@SamRKpo{j-Emf=` z#E2&Gh{_$iYhu#=vc5rHqVJ$t;-xCxSoec6i<%PDnKGzCv`4DgU$Ge72``W?Sfa4F zi4K`ZCV1&(k}+76`RG!+5SC(YS0j$8C9dA4X*ffGt;^`uO+X?B_U(q3K@H0-iLp<W zpkwWM2kA7$_<_I_Wn)A<(8j2WEZra%8$uC&KbhT-0o3Ihx3UN_D>Ca7>kk~h^i6g_ z*I310<vgDk=&nS{D~0MBhV^(gV5+WtyYDhTpenT}+x16BP-^jwkG(kl>MjmoFG*2p zjXEw={8JvFS5(`=*rQ4%+4f3=#2~JXk%ei9fw5m!^--ZkvUG1Ly<1J3`_zJ%D-w{| zdPCyiF4ks|CKfo9VUe?YzhOBkGDK5^U}!^tk%jnA6fBh^1V?M+H=5l-ICVq_qv_@N zg4Pzvt`@b}`c>6mi_|PT#arAKeAG?BCsF_3S?&MOQu`A&?1R6ANl+^jPqnQJa(g^h z;U(011k!}++I?49TdLKl0-OFj7M2NnwM90{r?Yv*4h0yj!d^|Xkw_>`AZv;s!=}oB zgXSt@)D8jCaxq<|0n1L~8C@!>HR(UvthCtb9^3(iQSjxLU#_^?r29xd7Ih`>D~Gzu z<d-D`mi#hT8Xz4P_fwJ?A1WRE$@$ZJ5wVPHc<>yKoo|5@<&YFthx{b#cMN()Kqjyn z;n<fn2?vV|>jKNEN6@V9pu!_{zeIX9&D_dkpB_`T?rxVIN~N*Z)15<NPG225o0J#h zpM!Edx%l}sm|T>GL_@Fm4Zawc7n9SUFDB#i=kY~3>9$aabHB|56$J|~{!yd(a7$6& zLNUf6Yr(73v?zOo0kHk*QbUZ!LZtK6l*~FrQ#aL8*JBc38Ywz^4|iu-P=ZEGf~H}U zDfN++k%2EZT~d}y{)(;!+CFKEbH3eqj~ODC`)K<i>i%zRLd1qx$17c?)|WLrJrvVh zO$|r4aIQCNPjNJ?vtI#4QyuH6KI@w8q)QqCgww;;8Oceu5K9)DCLKNjE!BlN{#CrG z>Z7INlQlw65I^LHPD9uYb$#aaNr_jU8YHtxts}e*Zk3Kuv!VM4KQRKAYm4Li;PeCF zOByngfzeY<8kZgmT|-}FceTa9)@ytvlVsYL;Xqcg;lzTiW>03pwyj;$S^cO{v|gKo z`3z6bp{`<BkT*jKV0D{R3no>AQrm5>=rvgu6H{fn-r8!|G|{$=w^2A3m=cA;6yvRd zB};ImeiXoZDsWmWXKXA;&!WF4mtyg?DD2`|WrxmV<YelJW=FyOXe<u}LG~1_7H*>x za^PhO^%1f=V8ebTYCI=1a*4!TH@3vtvU`Mj78Dy<f?#v*wAVC7vnZAs0rendyN%Rl zu)Np+@^RPdPh7Hifkw}YtCh)YtJ}4DhuLy$hXHB>PdJTcnp+UoMzR9HzVp~z%e+va z*Qjk7*g}i;&>I)Ts=Fek4D2DUrWH22BnI^)jeC|Il(bHOWsS&oQRc0oO|)D(8<GD} z_^s8KBuz$=dZ*4qp+w?OEwO7QUh^iRoQyAi4kji3OW$2R-n}3}Eh*+%Iy)C}o}lq1 zMIBhJPeBmyriN}ZF{j9=np3QU*l<rbr`#t_lbeCK!YQ9rk&d6Rt8E<vcVI>2#^V|d zfdVX-@`ax)Ir-wvmdtohr<b8X2|R|t=I}L6hvJMNdPW6f$-t<V9v%O(hlr0>9gy$d z{|G?q-Z*OyUPWG>!@G9js&QlkH`fNnj=#;?U@d<83aRx=tC0S`QZ>GaZWimtyQCI> zM0)OJ1fez^`L!y&hewY4q;{&rMvtT5Ll*|o-30khIbD9)gU4OOg*?XkYxIykKItie z+UOnMtT6tecv<Ns@Lb%j7B2xZMX`p>kDRgNGZ?8Fi1r<o5y<#e*RkU_P3^JC!5k0h zQdys1L(Ib1-#((eDip{Ob1RXpgG%#s9%DMHV4RK|rXV3-e=hUPH-3Chx4oq^(?%c$ zEe>r`Xk_tF`@aXTU%`4S(s+{oBi7!ROTg>NQ0;sWYTpbxkJs^H1!)|9AXf1wtr7ga z(Ya|^)=fiEdWy~gr#gt2W8dd<hG|rAjRI|YBNy|04~n?4w53x{oalwh52=D)w#vk- z?Wj-(mTsZ!mhn0DkEHLHz4~MXFmH7NCvRW(U4!$Jvm>0!bb~$fxFu+J?A%CjUy+@2 zax;|xG7fgU`IOr9H++1zbO{TbK%lhc$myzgnhF5(RA)K#x}`j)v!;7*1Gc!z8Ge+@ z6b*6t)60D&kB{?F6`vV?(PNyW60<vOk;gLM0%p}#2Ua5o^@8oO>56XQG<=R3wkVrG zZ?QxQT^R(JSb{P`v5+%nbtoITp=^(nAc3Wb&-slFTl$ir?NaAmW;|-1IO>rr=Uh@c zL>IlLO2L1dv|Kl_=ws_93}9LEzS@V)VzNiGK+*$!c^GtHpmul-%wH7GP^~?$q+E$y zMW#&xav}2`CuLeB#$AY**XRlM*nLpzuG+BKzeb6PJhasjFy{@AcIX7tqv-|h(fo2< zF1nbdpPCD!MU}(QtOeA-i<I+gK<g#b&M952EO032{&e;ZcVAjqlY{3GU{ozi*dL#C zB2^21J?#Y6RW+TYBaxr$TTJKdzHsYm$mVTcYS2QBjh4MfkAV*Z$cXAXN9iizFxAJ# zJn@N|c!;0f0+vn1x2UNXjOzu7p9Pz+2NAdJ^MCgETgHBmZt^eFF&<%w#YYsM$uyRV z`CfswK)w}K`k06MtW1j<jzxi9fXD*4c)RodQcj>g{saZ;v&8vccUtiWx4`@9<XJwx zmY8*B{sLAu0RZ3SqQzWXa$qjQO%s#31%Y__b%)xWCy(qN*lezaH9qq2MpZ@gW!8lP z1V@>Q4iEDgtGLVgiOKdvdR4wGE1Q>GMi{SN?ecy;ir&+(1}+y1?-z}MsQiCw0A~^c z*0thnRfw3vl=yj2^iDLkspIhuP%(u{dI}a=;zc$rWaChjo}MNo?V2%sr<4$!WB6hc zP?Q6!bVM1AjWCd(K+RH?*$`XS>0pY^yD|RP*Z<&ut`-Fj;$<@AfWE4}%3>FG?{#}B z2`)A%>2*D=W60Q{<i-do8DZFf+#|C;{jAelV2%50z(CZfpe}s%8Hl?z1XEBUK1(|8 zil=^J?k!7Qt9!qiib(^p)wdfP!TS1oe`BNn7(T(hjg9qZZjVg`Kg08oJ8KX~&#s6W za{_I4*+8WZmZ%Fi?9*ZF!Dg_r(V!7{YIL%l7O3|6vv$QpyLf5eb=wCsiuzz31{<pM z!aXj!M~swgDBC4Ycsa1R*osE$COfhE8>(Anu_KRNTdE*%E}lty)?OI5nb708JkZX3 zJxsu~PS)t*TGU@}gl>@Dwn7qL#+9!9T@Fe<5VavJ9D%!Cv=^UM=a`=am>|arYvr!b z)A%gQOJH=$<qqk7B1yRNd8H!mR&-GF=`M^z?e+*2a^%mKOUh9w%{{xRT?fis(zGG> zmK;QqG)g5gHV8N~72f4+5|avruQe&T&;L8RZ!0R`3Z5^E)ZBJi2^&~P1FT<2@IW)7 zAit0Rf*UQQ)zo0T+Q$@8@3O8{NZ&Lvojk0wJLszz>*f)a1whv=$LK|xNoCi;NyEYr z+qvkWuZ*eet5vaHS6xRf*e1F2weO<n8}-Ovxeic1>~!vz_sf28zuXMy9$rMqup0#3 z2ejg0Bp0m~C~i!lRfBdxy*4?|*UL*LPU#$V>*4xBvzR4^38w)jj!WOftN_daL^mi6 zIJAkx*|q7#bm<_A#biw?KIC1>#^|S>G~(K|uH&+82Ao-2ecFtXcHU)3I!E`%$D90B z0?Aqw6fz0*qBQb6hdJy)uUjVfqbK8&by3LUvSH}F@}Y{8!iTqW>V5-2tLr{hO*opM z?KV*dnvTRc2)EUp58T>~WIFflq~mca8>zCrhp)(jYJWU}uJp~y`@IIGS{dlZXrmtl z;SV3qt7^9S=+QVIl><&fJjjc)M~@#((vu=Ct{+KN%-wv?2Gd(*+ZBDQVPw&MFo8!4 z_UF@ihJouPt-32{0@krIxA!Z7Qm2e=h+8yOhyA+eZmjg;$rDxgq0~|t(?cuob%^bF zf=S7yj<D>5#%UG@adZ-er`bs`ipJ5#+FCDKUt4p<1liez`mWM32ykDnt+2&I3td-P zanx--3%V!GXGee>5D1`i@aL#Y$*U>rHgpp&!U0`Pb!T@SU$$9NSVUs);?4DBWSc~5 zeZExY<&%ysCJBajukukoF_j*0&;ou4;!|tDdiQe7r_6CJ)l|SqFTb)5IgRkA&JhS# zXS;5*ab32s7#mqPZ0KwZMD(K(df$xsN+m4QWjFYf(F+)e`7_P7y`43>*wam{H_ggh z1OK*Ke3~uVf*+na7vH-y4OHRh;<J@o%{^oh$z=(VY&+38Bxj;W|KOFNe@X~rv!#Vu zuR<ra6>zIM8cThQ{QNV#WJ@?T%;4pma(cdmtrl%zisTH#q7+v2Q>w&Q+LHji_<*De z9Zc2;Im4b~mC7!K8D5M;vY7S=vv|Vx2I#_6NVGLkE~ygJk6?foxdc5#KSRpGEwFG} zS)Z}4PIRyGD%rF$U@LPtNikhW@}A`Vi~{M#C#CXXH1pFCu#*J%O2SEK)CR1;0h>YN zl|c|3P#%UoCliCg({G-%zIuAYX2IAD>YVV_K_$A$Gu@b2E1KE0c0N2g+<x}-M*P9b z`PmsCczLTX+1Dqf@<B`hjg(H8X>#TGm#O(^`glfiTP?hckxvknd{L@tZNTH1)9jv( zQa~sCOK5Z*m+9IQXzmFqTG*hvJc0-4M6|^RK(?JjO>;je2L*^OBm{P%fSp1$K}y2L z6-d%dmi9^Ll3xE#mH*qQvd$8JHlS%|!dk<74dj^XCTWG7xfTlt9@^5G@NgV>TV-Ge ziT5MuEHL|w(VceQ%5w5A2P}pv#JZSKsxE?;d|c|O?Y&^2<%pYmxW36nWy^MUMsI~< zg}kBA{s9v1^W<cHCO&-V9<4&0BWmfQLg&v$p)d%;&P%#x>A-aGiH$A}$X<k<@{LzA zZJqG`IFfXup~)6hdp%0JXFm#LKeT#0Cqu=SKGQ<vj%Q;%0P>$L-C^)3fDV1*=s%^$ z_z>&Xs;owbv=!qrG~&ObMkng@Xyh6)-ZXnNs+-H^lZn~F1M@@+l-PZq_c1RrwAlsD z1_i|}l{`&LxoF}yXQCWNW;ULa{#M!AHuK&EboUR3Rls0w#+U=%pXC{{fC+QV_vr}R zQZecX2k~T5Qu4g+I2q*}sSX{bi*!ooEzT&8rI;NdUE#8gi?q5{{0Al#M7S=&A=G2_ zAr%P`2qubskNDVnY^2^JMPtSp(#cbOyEuEs-aMw(4@#=gc<iNCMw6)8q`IN9lY&BY zj;u2rz!ORoxJ@0ka&Jg4uL@L;6!uKXdyP1P8r6`jQdj3G9HQ1;Z=!#;1fl1V$U&By zJtFv<#~u}rI{-V~N)tPU>!GKU^cmK>UI6K-Lf)2|C_H4<t+!~Iux(ruUZ4!|;a0Hj zeQjGn)T59|Valcp4D^$x;2EV6U9pe!Ju33D>|-PV*yPCi_>&OvVhYv?<5nc!<+Q5^ zSDzoPX+I*ul{e}*k0~+}%$2F_Yw^OlRGHi)JK~sQPCg!dMXUfMlS%rIB%pej+iik^ z1;?(`Ln^OJG{zOAA8l?N<4zYoj=nNih{OxPyv{@5A)||s2C=o~>P+wHgv`*R@dP;; zN=uqaeKlBvz7Z$@n#^dH0s@K2-5lD{{;K`Q&AuY_Vn3rbaUJP9cfO|uoE0&^!Za=r zvl@v5-%$G8*hBi&U+*39Z-1bvqtF5lvI7X`bTYM{^S)}@Ntu|ePQvOW3R+M}kV<dA zt%~%otA%rh&amuoX&*ftN5HX=+K%pKh3cebkoFqD<gn*Si4=W>x1Coi=_L;Ws2>QZ zrO_aki&vyJSPBXz+B0-ZJ8DE17i%}tx2ji(<fBeAI2$pD8K7rUVKPFgiyj(gclY;R z?GB&sy?6mb`&zZO_afMS^|xT>_4D0e=lktf-|Zem!R}voUj_g7hl4|S{_^GStHXof z_1oat{`RZC5ELl#Z1?cTT_|<<{ciAT_oqX84xpavap0Ss?fw1W@OALwhgUnn-m8N> zXywPZ+i%|NzKx9jyu_xS?FKJj!_U3l=U>2w!65e?l5oA{UF;jZnt*2U5D_utjN>>n zX#S!hP?Wm**ZT28-2qGY*19G8cUu28>)&Ic3*K$EX0{kRplzFN+hbSRV4+sui33=Q zvEy|xPRFEfgI!Ewq~`NNHYUv2=SJhD57~1Y-EK1!^KZ^~PM$*x6PPZnr4d>EguNyU zar%j4^Rg+X9@=2GwmkH+<j%5XZ1{nL8~S%H0D$p2kezrjtEeS-qNSl0P`adF%E3>& zp{EQ$typqhA$fvy(!i5sEzo{hCK+Y7lY;{v4MbRgI?4m2^Tgy_PvxXwPpVm7f{uuU z(`9Yya0tw9G4dPr$Sn>k_67=utTb64wI`XsBc%Y7S~7GEOqR1{nctKbjg+@aQPa$M zyM0m;F;cRyV1gE|%(4p|CyU_J2d(G3FSdW!KOFw}{odj35cu@l14MQ3E_+wKE2I#} zASZd5Fn_EhEwUUrxWu1PfuD|8w^MTfUqGP0JP;|K^Evg$^Ar~R465#&Lx)1jdT;xm z7uHqKYiP7c$4O}^%dRvS2C%|4;=R_&<dH+aqkxoEoR5x`FE)@Cmv8&NE<PDyTko>7 z^ECMRVuC>)C8QO+qU*8b6#u|``~yXnIZ4-vz{wf1LiZunLrN8yo@ME2I*K!gbvKd$ zx6A{~bmd+re!{`FUG&-A^An*p!7T)qW{8P>ivK<-f54+k=p+ZV+QnS)yplM#`n;4| zZxDATa}u=Sz$8{>69J1RTDc0hRoo_^Xia+pOB$zU;m9W)w=4aJL?K-sd{j^P;^eZP z>`|Jkl?n19;`Pn3s`tMHF^rSP?J*<m5f6o081@d4%oZlSb;2oG8DPs8xILzNCC1#6 z+Md;SD&JMlDRLU86J5eKkiGX$E~5A1d3KTISFjBemD7=dtw`!}APm8BE9WOf^vKDJ z>qoL@&SxkQIqd^d-zH?5ZZ}RZjil%P0*HWZl>=5`!!2`>&T1Ce5QwP^Z4<;DmD}th zM&(pSNylWh3XZ3pX?)FB1-sK(t;FMV+L+xBM(4@sLa7xd$!XOu5;&HXsp;!37r4pn z5buf_d3f0(@hk&=zWaVgo$*dS3t#@~C2l;^3E2qwOTb|2tdTNaH56FqXwW;w!)&4z z&X&r=BoaJ^GC{@TOG<CZav#MEb(#ekVOpL!PMO>xydGB(2O9l>1OA2WU5mRZX9q^> zKC~pk%r<nnLPi;*`E)*kE$A`{Lb8hh^7W#S7ZAl$XG;#_-=G)V8^J~n2O(2QUN%VG zPvN*^-V_O=qcNuVGEdQFYz$|o7$rTW5(G|3WbA?Vob>O9#kDKYt?Huwl7mPp-*nPx z?$}q2H-kX=)ZkPTm%w?iJ!wq2-oS;jMk{g2>w8Uf#w#*q2?q_QNvX7)d6Ax_WbQ@~ zMdtn35a1|2nUN+%+le<bn*qhxfN$un;W{udtiRN|k=O~jp(`zb0_?&1+Qyf-J83VS z&R<+XO`yKKdjp<UUM@C5cZ0s_LH=5IM}Ku>#;^Votgo#FUw^swmtf<ouU~dnFhl=p zePb=cYEkg@S6@B;8vbs4{l_mKfA!^8UmLsW?l1H7GM*qcsl*jKAMoBwFhY^zNrvXf z@T6tx4QzfwL|ThxG{g0V9UGWy%qrmQ*X|Z>h2X^EHivhazExaVyL<O42Pp{pt{b8p zVgZE7RZ4MnYKsJFdzi3DVY}?rj&~77s5S2u@dQ`zF~HZ$_zVhARMOkY?#BAJ^N2j# z(Gs2!LuOayy7+N3TwC9GJQxgmL5Mk60CB-uFT!mjOE%Z(rg_s%R%&w_LQqGjuye}} zC>FL_<IP~o-rUsAZmS#XNN~V`UEIkN8FloWG_pf7Wc7N$4H(Te=*bP%2>5zi%Z4Uh zaia9?$%OCPOOI&0klKobHmDKDX|w{#S)sIWoaxEDG7umelGfH+aX}0+eD(TpcazCl z=Q9f);L3c^*woy8RpP#UTSFr_=oY1Yq!J+gl=MDvrUdjD)kEn>ZI2Nr?4X2h#tbqQ zMG_~N5s^@oIapUPigbo1wv!k`(4#4fv7f7OB{j6a<#Xx*;6KL+b7ZgDsy#kADU!>S zf~26PG=6VbjSB1TV5JVS^o%=TaC?UsbkV*QSCkE+hOCtx-aJv?p01Wht3G9_?XS_U zb?R)_H|k?&1Au)zy$b|7$9hsqCH7X?KDbZj%4UbFNv>$SYl$c<fd&RiHZGB@!p?&R z%P=_9(Pl$O@2q+I<Rz^;r%9W6sWQ$H0+szX>;`L+nhtk*28X8$=7T5r^~Hn&9C%zS zU$Pe^rP;UyK0`}Fu9Iiu6WQm`M)91YtKnuSdfn94p~NTTeo0C$Hh3G5@@waV?!pbe zrZWTuwMRSONY0>DZUGyoCBAJ7Km=2!fjToaq_$;P%HMZpA4U|W2nJA(W4tuZ<wQj@ z83l3(B39UNPt{%Gpm2b*<~w+ZYh_4^Y+qa>nM||q4U;O}E4xFkubPZ$FjP$ZjfD@h z3D2%LR3|+FQy1}v0<u#xQ{|}RYr3(bnoSzNyuDv#TQ((U*_I!iW`+;P(yh48Z7@p; z66`rF1DoNYC+Bs&Gh2r~IcG}X1qJqvdG~#qaWEE~K%{Tw#7w){TK}>3IhIMrogPoO zr&(B{L1=^rfZmO@L7h?_8})`Cs2`Z6olhVb4Gtb$VL%vjCi(%UeBQFRebGjrBzlZv zbikmv^a(tk<X1fl2AV)J44s?DOasBurB4hyVpWms6t~ROuSV(!6+m|uk1paf#s#`_ z@7oUDN-C)V?=c)@szm0@rx|Hm($j0UP7>I3X^e7$N(Xq3xlKz$l&ZlRi8oKh1em&u zP*WoUu*hqa<+DgwUNG@%P{(U@3%^P+CLGYlI8WGFM1`P~PGP`qYTS|)l+RZq*Ij8( zu&Z@3(zFuqz3Fi(AdH2Zp4!G5<+-*3nP<v&5(6N_=Se)~P;&7E)gxG2U$7g}=BKni zr_b$7&@H3$70t})^T}<^>GSCg&grwN)j56cq>)-CvbhqO`};S%>oLJ{o*IjUDY+3v z-)1QXy;PfKMT^FMS8d$KW9eQ{XI52JfYnUKe3P8zS2UoA1L`rE-WAXIOi;VNAzvP^ zw_P8#UGQKAC&Sp2&%@!Vlgr7g4VI*$l*P|_*AXFcc@_mncXmq&08=ozq*H5tx^>Pa zOM5)fyv8Pzn<w_~r~br{SUKT!NQ@5w;R)sD3I1zUT08*{KYj*057Bk|lg!HwrUa&0 z@lA>|CpZ%^r8Q4rYlaz+?MWLS-(qHJz^lv=?FyESGg&;uXa)=bf5<3!^o|S1wD76L z4oMYG*%nO{+_)RO8mUN`kMLSl?F}PU>rR`$=p!+Ni&DkNb&z^vm?g-@!HyZVQqux> z8duONii{vD@cD=Z9kR$HoV>sywVwxNJjiEyJ58rkm`|9_$@RA!7Y7BP29#Y-^Z(Mz z6x2ZsQwb1j-gWqk4J;z}sqNA7dt(jn6$JNN9r86%j^qfbq!PT_1BwdwYQ)%6bpLL- zsoWyjYg6aDw8M8%0<#9z<THXGj8=|o0jLp8iTf&QgkBRSdeDjzy^YnCfkTFv@YQI6 z=vZ?wws3EwJK_nMoFZK96$asmLvloDiQ|f!Gp_K^@`A{EQmHj4IjsdXDk=<!a)a|Z z+kgsDGK>Fh%pR883vJe+_FzDt!{b}e+j0h>i+X@l1}gNH5i-$20=9;5d<X1$#~|%A z-QBROim*!yl5x@|54NNzdN<8ObHL~3E#E=eEyhP<eJmze#z@3_<_eFtRh3L<q}_+b z#ANS6lQ@d?0l|PoBW$Tws9N<+RdrtES9St}L*vk_F9)(*&Yp0tt|+Gy)vV9q_By+{ zu|Q%(APPYt;jtI(27{)6W7!9tW=m;rh~_qXcngWMU)EWd4ON;&h={-P1sZ=hOlH_d zzAoTUfK}5mP{9u}jXL9>aWm>!?(KHsenWlpgTy+XPp7!16VacA?ugr~FF-(Dgbb)` z?%2{JcB53kl(SYovSJpA>T>z)sC(mf?D6tq)uB804IDH9+tyhQ>?@sLpuUfG#SLg- zlF;cV$+RBXK{wAK_Tfog1J}4JkI@DwBIA`W0vlFji}<C8MXc_DT;#>9tJwDCGoxZh zRvw^PURLeXC8>Hjr$ZB-eyJ_<{~7#wR^;dbWvp82_^W&;9-X%}vs5V`*ba5-dVWiV z&SCSXUT}}YdMl$Tmn;m2;lkxXO~+KrwYn4W%`^LicW4{As~>nn(;hbLy-=cT)v7xM z8@CCr{fD$--7M%}L8cX$H>zx6EW>(rFXTZjUNagNk+%7UwW{R653jkLQ^Lzd+j*;~ z&67;quNVuc?mRaY*)-$A5*}GwBrX){Y*uPv%48#vX_ergGm|$ziw&Tt#D<D~59M}e z{0J*~#-|vjMOPbbo>IP|<|vK1jAXf^h_ayF)<tMFd1}a=cWKS>g7V*a{jXjl3ZJ(1 zY)&!5@qB90-~W57$&c`l8Cng^flzO&z75r>3)|_Ts%~C>h591PwK0e!)!~+7sUES- z@mAB`z&43!=ogXF!+L0HceD<Pp0p==KfM(()hBMZAB+4c6^2gRmw%1O1u}7}@9^4# zx4ECCGqkvR`=>FncLn692Np!@psmtdE8bc}DQ#MU4X*H6f#THX4*MB?^q$t((vXHw zcVwxCWuNoI@(WuVeql>}KHZLoACEU~3v0UdLir?%<hBdsH(4B?WMTY!7R7=E;XjNl zIe8>wb@u2#?L->ebrh#njuY#v9w*k@DO;Z{93t``G<6a4ya}7airRtZ_F=`g^l3uO zbEKH&T46>__G9a{+?JL}9tshbydm>Y4|Wu11mhKETkwo`@o)*g#+O~OF{aS&Y-C7R zEh!)zrB-{I2UZ*LD|R;>{*axZPAM7lncnsrSEJVsg@hZ|4*)AVAz1aGf#*Qop(^A2 z<krH5C8{Lx5ky}k4SB^F6Tu=qIFyU57QApv6K=#RQy+MOa0F#AI0lvSK_l-0FIqH= z0heiXhVXMnF+1?ypd7IE9LCBB;ju-CR-Mvcr(9Hr`rxZYFLXVw32bNhx)>)#GR7RM zEqjL$(2MjmZ=)TBC5wKbvGgBalz#-pXl$eDq|tYO$(85}KX;%p1%FjK(>-@+%~uYi zbihf88xEclA{XrD-0fLD!-Nu{x)t(wcQGN?&{~KYKX)N$UGJ7et?S*2upQ3$A4|b5 zE5#2`$M7_zv{hyp=5g}NJPD7ErBA<8dp-*ls_+N8Mq`M0WL_;ovMw%HvWTHiwoDc_ z_`iBF-K!HXG2P-3N4&XFEng%v&S=cu#$=s+B2i*4*dVl^9Pr|}eraBk%KZ&m6c=$d ztQSUbuXbgEQL-t+$+dVXjNfpDu=lMlMi;rt?Fqmq6)*N4nen1CIcg(4?F~UZ!vJn? z_u;RaOS=Sy9>KHH(OML&9oLwlw#8-~^9pEWOs<u^xY+1g7$Ng=?bocYzJtDkdzFw4 zG@}Efz?r2;#fdqhb3kV@xs)693b2ef?D;7M<WkqUD*aYWb{aL}Ymt}b@=tfw^Znjo z6ujI!zyL1jw_CsAL~VEj<ZZ?TYcy&QG2zX2KW)xri`crLnq7gd%C`*m$o+1f*|;Q7 z02ehGsE27R>NnBX5hATE*jBr0PW9I~WT~6G)jU>itM!?+ap!x2Y%>^uVc`(b{HdI9 zI&$G6_F8J}N6_p*2jU7Jz%Q~>TwP&9<7y8L*K9B(%u;AS{<eNB24}6U^2X}f>slIK zP7|=2+DO7l?u3m-wQ1O5E2ft1SS5;RAGzXv+DpiyxFxZgOs;HnZvhsX8|-qFZ5|V+ zJ`Ns`T(Pu*IVO6!%X^G%M$$4Q-jCFFBv3(s8FCcB^^HF|W>yTm3_8+SM_JyWGf;|N zxZ^SIDbt*{SB&#(cvMXCvvg#eTfJ2quxM1-Y^hW+KxvOr@vM~DQ^;+dlPF{xQRJsp zLJG_&y18KV;Ysp7I4fd|iCXq(V=|0{v`-ALpfOX7t%XA(P2#a^P04!@1S%uw_ams1 zj^m1>d5qDr>7^b&nkwZKLf-;;lEYR&_39j1*;u1VGo8}LmGuKC18@U^g=@sp58R1_ zM~0gY%<4@K9#OJ4ZRV-BgISSZreoLYD`1OS21gTv(QvfG2@wOg`z->dU@@t(StcKp z%mv6HUPlTR!AIL+rRyO;YYr5tfrVXom_YON6ptL2IJ4sPIkr(~<M5DjaL$rs3_Cj- zqmiQ`;9pXJ0xpnrB&d(;48o5sfafULlz_fIcLkk?UZ}Va0K3GEM4?L?t(Cg7B!F5F zuk*R2<WN4L*HRBaALi7ROLCVoCgL<96Y~gb+xHSOqF{=Sd>mkxeC+XzDWag`ra!Qm zL=VH^?47!OEHvaf20_~SFe|S|Il1U|a22A>670S>nzOt^9jp6b0o(atHF%?3w6GvM zOA+V+I!~(J5V&zp3ZQXL*tXZO_#hLFjf%KDmw7o!O6|+fa)sMIg<h!{h6Ob~MY*2m zg~&xuP5ZKKF*Of@#{4!4)ZiCRkj1dA3jjoqUDeq%oK7t)>oxErg9eBB0C~4u=q%XW z8Zxh|177W}{Z=j1Di(JPy(M^IVZ!&=5-hY;omj^=4lI1(Hkm97^s!5uP~x}T)#tM_ zV1!xIWA9Looa`K%@)l5>l3!_Vh1`JMEDG{W98P&NHG_m0jh@5eK1uNKj6wD-=Mq_- zR~XZay2YC@JFNUNPm81u_5sbNh3%^eU~5>G<20K{^X5Y5?41t^fpu(v&<GbnaRSEH z(lR?lh(kkUo}S%o42%D!XAOouP<Jd(P+Yl_bd*+dZZ0{P2khwRe~JtwZ@Qow{0XKY zM`bW$gqc8*V{~E34#r8C$f3)2NwSdawxCYVCA+~|3BJu?6T@!qYqZ^QqD~OJj0D!? z_c#Wrio%Lk<_Xke!OpB6#V!!lF#7@iq-`>8^IxSwG=W-2$iBHBU_(E`<Y53oLN;wk zYJAQ8!<aj3VTYyZ=c^$;v3@?ivAxyB6N>jh)8DTS3WMYd?OI;<wIf*6$h}^Nt7*(> z4b*I_izHXpb7XZ8ND-(LiBow+Q$7v$jHYfo%gscWvo-rsXELVtSXAA(Ye$0W#`rmb z|96exyZCX#3NNj1uucl8u^_w@Z~&Fjs)f7SeB3<tHFi^0WY*CoeOIdWYj@L9K}oI1 zpZ2D@s@;Fm(u~<p6=SpE<t8(~rN0hL_GNI5h8o8-F|(97=I!;G$23??SBr)E?JOG^ z)li8dk%kn;u4duBvdcXi7Ml*eA2n^$Y_e&_9QWN0uWXrv+9`DH;b>NU?ad{9qA(Ju zLylPaUs3{kEim#H&%rn-zYO-Lr8@}KKtt;_ebunFD1pnjNjB5?y$WbFe7XJ8aPQS2 zh!%jPNjzI7?Hu6l(cpx%G91q*bgB(@VXZ1hC=QyTVsX?UooHy1`pgNCfSf`-!Bah+ z4-=&sCt)EMzu6k_&WC!WH9w{-Vjxw`2uBq2fzJ-ztgCuXKKPV4!Z~2=d=NZQ3`ok@ zg8@QB?vZzx-c&<UM`;!&=m=~}FtxzN<90{Ool(`{i$snU`LG#8qu%fD9xcNNlHqRt z5}_>tF=#waIIhPkk<Lok-6%|Qr<{y`K3(5<JSoRN|9o-!_{*>0$;Hp7fBeHYlZ&6r z)A2Wd{6ojCEJ>URgqyL4Qdkk?5CWrw{BO)u-@Spc90Z8h`WhSQ2Hgid6Ay##-@6Y& zfY+x7K4opQ4)+DUj(wYQGcu`zr4?{v*Z4brJV5+P+rR(aQ(k?fQU6O9#<Eh}?`5TK z2~>X=8H<nCcNYlmy3^lvujed@+Mc~-%U|x3#@qFpNp9@7@FH`!aife~zzwOkiUg*Z zoz-?zLNVOswrqbn1>lLXIo-;vTzgK`BVN%}5>t=vn{EJ}>dOA#y04U-vI+GzUX{Aj z@a3WBYG%PblVn)kNB0hdv%u0pp|?H#4t}mN{!AU4OU5j1v{!?E$i}zCkRBo3agv-d zPgWSS`f!U&M}eOO$aWzv#^efsR_N9eC~c(k|G2bV%fL`JD^aBJ3&M+3dKIRT;@}0S zgsR1dn;ViJCEi>ux?)adl8bcAIN>KG-A!XdS#2iXqtVBf{(!F%P~o%l!5IOxtz*3? zjf$nOh^q<(ZW|yei7M#`_s)!hr@Bg!c1$f6Mh#^pjf+UuqQ#O3R2>3H(q;W09ui2b zWWHnQ*O&_G$ay*<AR<uW@q@%W8iDj?Tw2m)WnhLsGe9b|c{{3t9q@qha)H3Af_Dm| zb~RREXhgnrUoQ+yBQawJRa#Awh6TS*?gfDE$T}1ujE8kaYXlW3s6ZO0B`O<HkvEOU zNpLpFi!`6ZX=Og0vgs4ufR%F!<#?SJ7XvGJ{u^)b{8!N4UP*x@e&qIEp9Zg?z2|j% zFR{JvRC@>9-m`1gavwl@P~~sfUdy_}mA^$!>goxm%-FTXihD>|n8*V~k>XOvq@=KY zC9lpj;|wA53^m<IUJ8A>xY~3`374DTQCu^wxl8;Wr)TFCtla7f_3F-KupO0V5ypYZ zl>Qp(q^2-KN13RMYSGg?#(VjefjVW4XapZX>}{6EE$+9zkOcC|^pJ^6-<U<7QaF9E zFIL()rEObt8z6t16#(C9n=~-v-W}mbQJAx-7_}U9x~VaRXmhq^qzeRif<lo$Wo)N2 z_&HBAj^>7Pe>6OuAmhtIsAyRP{l1e2%2+rqM(4NCXDtW?m{DLdOtraak1y#S>GWD@ z_+z^3QrnU2?W7?x7POf$n=ky_3&BsOx*~)u(_P(SOS?yAH?y>&%-7H_j66pw4bk_& zjy}iykt5Cqi5qnU%}gfw6(<n>M^fa0QYGP2v#1kY1zH+X3)VI|pa#(PT7DChm3Bx4 za9~kN2eZnc;FAS=1!efqzxR`PZ2tZ(hojFPNAKH3TloSn5wBOtD$~VQFl;HdfqxM; z{zaJdyfsx@tDl?YN_iAiD{c+uS_pc<@$bCE!%JXYH$CzIZ}h^@h*KKJadLo1)ws$F z@hfcQEZ-$rLIsua4hF<Rm_gjUF=X~&=*%escB$GjmhJ+6!EA!saF|4G8^-t5B=KOm z(#Y_k?jH?sjWHW{&CTf2ktAnU{kDW3`)pK)o0cYYOiD&kGn<KrWi?;nXNI|ex8OvQ zygsFLYGG#(eY^Rn|HYp=F7IG&L4~l|fQg}l0xGB7{!=8<ae^W(W^;ufCo!7gV})vt z_K{z7daLjSgo^8*AmSJOLxZO$o))NdYlL2!NLwmK*~EUbkYji^Pen_vD8_mrOAG>` zvcWGJwBuR!qGGZ<bB*pBYuMMQ6}@UWjK^c`U&Whx>)OPC9>mAA{QodOs}5SOeSJto zIbb^*-`or^WN>Ok2&bg27DudsOAzXkL(D_T{ST61^rpm}QP$0Ew&SxRA&(sMkO^Jx zM3^JVefWiQS#qAhu8bEg-{Y4E%TLB`A@MRl=OW}?&aGP4`t*AF;m~S`Z3pNPl5vFp z&>Q^nMJrX?hXS6^h>}mY9D8`m8>U{(e5awJ4y!R#&wCoQpf%dOiVM6kEC=`{?Civu zq@+JVt&B<+fhG+YuJnHCaWuhrVHEb08f=R)a6tKre&psN-sUI=_tu8P(nMmgQ#{JU zZ9EPh1?CbtuATOI6&0Uq8Iivhde8AAinBmiHZnUXB$%-zf2V@qm<o8@51S!1hvodl zp88wNd|%Ie)a0LXM@%88FevEnv;FT`^YCLZq(~44FbjCJYU2V8Qn(El=>N_I{^RL_ z$KCgEf$4mrrvA1};DNyeV$=mtKKeR`9u#<N<<>J*98}<8VEjQ3g5BDsm)t-o&EGUp zc>+_`HpIb3Uq?Y#AglQd^Ny8p_?fU#^UjA4(=>}fvIU-`A+Y&wk(|x3nBhZ=cP|LT zP*><Kh<FPi5xqBfU`wrA-M$RzL6}A4Jbr`fkop<tjjc_f-N~lzQsE5HvH#(Jk|O8C zxHlm_?lpY;!vcMwpd%ERG(j0U3ltTX^(@?2vF7W3QZnhx?U&J!a1CF#H@k*qZ{MU~ z$J6SPQP*(R7Xr~Kg=-i!l-lU3fd`$Yi8TjkC~ZWUH;6*(jra^-vYS#Py-^ZRzm*&> zWh3{buiYf$%Z(V%W$AQ2HO}u?r-qS_M)QIUlgojaoZ~stNWCO+xy3f^sz^<D0jCQ< zaQ~!fTZthvdxYiZvP4*G!r9<BozE)u1CQra$2gz5*8p6AmT(()50xYn)@jgty`#;I z=3$gdqU&b6$BTx#COh8Ix~tpw^bmbnapa^uQPmc-V)kVV4(N*`Y1GsowuD`9;I+jM z7kG7U?G|tgE>Db*TMu-T50`Y&JF6DX8ZXz6eWZk+W#r_UQ=?FS%LK5JR+5)J2CyKR z2@@sIrY<|jb<nl8?=FYV?A|Zolnej#BvwlaXX$!dM^nJa__=Q7Bk>va-lZ4VzPEWh zZ7a-<ft27$gCM!_zoG|fOY62&1bcCooUutN`K@+r(aM~WRaz?(Oaa1Mxj4d-Z{i6$ z$s`oK1C8^3na304_Uw*nly;go2Mf!^BBJJMyu;wvusgs))_NTm(V@|rFGLXL8&}zW z=)%<NYLDXS(`CzCpwNnhHQI#SU-wzBE?@l?<R*7C(ChEIgZ~BN5c@-4?@c`3b`Ss- zPeexu`}l#;o!;$QYU3Ex!isSGQKwfxQH`EkbgE_8je`OFan6FqfuN}tup%+a*?|k$ zQ1asL=gD8&l(VF&et~QL_p{@_@a$NleYraE6V3bYdW8Q_THta2>d_;-|Cp)&d)tzK zUHm@1|HA2gT`XVXpK79iU*rFwM8M<zyJwBVB;9@L|Eq0{qnqIG6Z|inU_|%|H-n#O zvVULa|Dj~S<NhztI#0=@0cKyasjNQl|7=_2ukva;yKbFd-A^o~nzcKHHc*-%vv`_p zkp{5USNS|Is?nT{=g7n}sovIE1<=e>!i=Cn(Dr1a3}M*3$!o8%hYD_Nnl#UB#l`lK zXoQwZREzF|?hU0%jYniBNg7zUnH%LBTtk<%!Z9KYjm2-;f*0A{$fs#lp{AFkfR;vl zjeSlzeY1*(?mZnKG-<u2z=Rv)xQZRyl!1-fu!DW;^pvp*X6t>}>35pt%6wENqbzr` z;kLBX3fP2X!U@{B2|`+s<-$DYI=#l4OH_D9WtCdErew^ri&sv|7T1B46Mvn2Ug5n$ zF1mgvHrUO#h_ur=sl~{LL79^&gUTB4Xfj8uTrx?V)qX(SK$~}ljOoDXyg9H*5?>~D z*2QJxd(M&8cyySskv!*Nd{-KT3V~8v6JqouwX#aNaj8MNNa>b=N-ZqjMT0u(Qicv8 z7`-UR+{cnAn+;3h_le=NMQ%sh`gEF)=XlY0GUv3ZCkYu2vrS`}16kDr=$B|_PU=w= z`EX(4cRO!oGXZIPYTmjQ<+D_F@`$XmeGXm&pD)s}OoEuInG-OwlVh&XW82Mz%G7B# zF&?fBQ7@9`-1v`X+0{mG1qE70b@hnVX!WfbC!a?FW#<F=6Wx?-#T(=0rjVkd0yheV zX|pRDYcblDicX{|l8R~|%Arq3ib|AH(2i`#E(WT9##&fNR;^x0Ef{5=_b^yV_>+Xs zX2xPlJ<mYKL6{8A2AB<VDw<bz1Rv)ds)ClKGeCIrty)`x#X2H3nK+9lq-f?71s&D# z&gD?5GRJBM!`ql*VjaL*eUoPHN3MA>ly$-)olN4NgGUc^_Z~b7CgsJ?<8Dt!S;8W2 zlqC;bnUc{#bv;RT7~H38KMK11d^P*bhWOnkee3PQ))6-$Dgj$nXvo&;=94A!m9j6p zMU+dI>WeDp*}>bY8v7qXk?lR`1x?Mmhe<y-(k-dgMQ%3yEK*VR)K6`HAi4V5eU>Q_ zBzk|&CNYJ~uJhea0bqQF!DyQ6PA|8G?8D3wMPb+LF5`k53MZvpQN|FLrO>hlYXRaH zw*ciL$^fQaT?}wN-vC!-j%ps&1fEXfvu61E-)wpgD7+#zT8CDoaEjPO#9JnDNEWYF z5&at;%_#D+gia68x5^dKRkY%*S`;^`!B1Z$7}FGLKzqLi4f`$pG>#;6PR$H-;c4z_ z?Dl`4C#8`cqh{UMx*fN!6Q7KN^^M2D`|E!MfBa_6?5}Yy^IE;XWDh2VpMbMN2W#Pa zwBGX+#gm;bEUb6rGX55zj{)eH4$wx9UmaJkt{!42Xb=&CFMClCVw{@Ib;?V<`IWDW z&4&K~4gYbq(Etip9L@SV;>guh+-f{f+ZoXM<JCsA{uMU<^+z@SRip8*EwVeTk89<5 zewDGSeoVnc$MX@}Fq#54^B)!SvmcB=g3PDRV+^ZcMPOC&$HcLWG#us*b2C7P4Hj%A zn!DwrWqGXbe7G9l7(!em9dy_fl;hNd!4oWtXW^#`wNJ9A;S)s5)949c<!P^DXnWA@ z32`w%>}1Myj6Gy&BS^+&L@Gg@`tU|Kswzjw*ke?tH1dI(ZMoG3!8Y1(X1N6F6(dzb z80mrtLnX!mg&v&Gr*YOtD@S75q$m*2UjsdLYa9X}jQ~mmUlhnq_fa$XBra2qFN+bB z3zU9f{Sa4EvQT7_M%@hcV^na6esb@kSwrq?&YMn-QEP$pC`oP5`EfJcezx;`Fc`oD zwe9;bKe)wsgJ!vMOzZx?XhUDPKL;yFXKK%0?Tk1af}rYEXqw6z#Id6VPi70NaqO<r zOmsvtLLC^aS=Eh9=07w;fw#~&y!0w>-2uXi8C|^P)JT}Jl4TQGU!o16sHSE=P~T{R zkn{=q+^2pYqJQny(Q&(cvxALmRf}O#O@zwn6<|E`5l7jjz6#BsVxqLfNa{pTQa7q{ zQz&%@eB|6<aEK`oskEF1-_b4w|7Mg)`;!FumWa}<3`W?<qf{GqT<BOox8g?zp^?}k z78smb&R{cD9h93&pyn6OB&hf;$ekTI$!L<7waP(s6>Vtrgdjl_Njw+ICG4PVfGwGk zJ;bkky8?OY1W@El>Ml;pNftI|pi^{usIorw9N!w9X|%pLQLHKGS+MGf|J_5r=^;NH zCcm^ggm~2e79v`5&Jq(ulBF{|F@>UJzKLdU^s9L;zopi}oPCLhvC3gzRhwh{32QKv ze7U!^B`PHoNm<g0B!P#D3O32y5{qT$LJLk>=bj|FQXSuh>6l-;ce4wo$VB*-HkGz& ze{|m!a+$GKFdYYO-UJH%-NsNkRUqvEzsyr4(1g>x5CbF_Am^Q-A{4KQ@vTy`2H)jU zlY+D)#yKs`CZrQgM@5cR$RVYipI93bpRzGG!dNaqCK$&|BE}bOS8i{-Iez-a*zrfs zT~$4&iyC9Az+T6UJPU|Inw=ept^hGT5DH=l8~1DF<6`QPMVVa8Ii4{Mz3o`tq5&W; zEb}ODzs8HnqM}lIVRhEmtn>1ct);<|S#qlJ*E5L6!=DY}w1uTs#_eC_j<{%Jh?0xV zvqQw7LENQ7*IJpq)xFn^D5=2n`E(}lNL?TohVlqAMuOx+aF@gpSte^>n2;i6XDee} zVBl;x>frn*u}NN7CaR&;X|C8ZqcB^-ZerZ%|E4ubCz!ar4zA*BD@Yn(NCz1-W0>gm ziZ|V~_K4P05AU+H@Gxw^<KPmBGjLv2coRVDUkpMV{QTAn&O0<b%8TaRY6-}O8gh6; znvK&D=P%O%w$-(X@-Cw>x%A6p{FXaR8NX@;pzZ<4Kz!?K^-mFR3o6F=N@qqZc`D4n zPwE}YbJWQUI>@)lI2+%(U4<>37C^+;t^{AIAZ&Y@jFsf=A8Y0qC!%n{3%hEZ&uvKN z0<<AXFdKz?9K)$tLh!tjJ%rK*q0b3`s-vUVt-NJpmrbC>P&C_-!cI>)r}B!E*G8M9 z9ikjy)TSsz%+zloo+@a4Vh49Vm?NT-J#Dy=4(p@lMJ^PLRfN+*>;oA^U~`IYDR}hh zL0k3?_E8+l7NTX)A<|u*4fwTV2cbUPOALiu0~u%z-0gOKlJPu4O^saFH&n>@fvw3` zQM)R&R_wRbJe}mRgm^7Sn34$&ZX=YE$iAXk<LklNMzZnP2TCc<R|mG9^w&3<j{!U0 z_(mPkwseqC7{Tbfhk|d=c|j!fMd#DZ1jfd^t}mgz6Y)R3iqo{@G?Z|n!@uM7EUnbB zwL9=M)*rM?O_k@IV$xgf@nHSS!TML<c+ux<%(Q|&2BTK3#)ZK$!flN22%a3f^R$eL zn-qN1_rtjjO?&D2h@L*&c<cdwJ1X~3_z^v8K$e+k6K}ckg=Fa^NhkHdi|xIAf1;xL z7T~da3GiiOP2HBxJv6?!V;_nH&iLXa-iGSn*T5|HYhV-MO+BQw#=VATNbT#beXZRA zz1|zE7Fsa2DBRKvu}^!Cvg8a;Fa-fX9oWh6)WJ<vqy4y?#TbP`Oib!VXakKz7q5<| zlk_5?10OE?=HW`Q(y-{LMDtwn-8&;7acMS;Zys}F{(H&LOdz9R7V(u1U(B}7Mv6}r z#R3HcMUvg3J6MpZ(hSwhN1=B83kxq>Bxz8DTPTKl>~tpQs6j!$!XAg-qp{g(u<aH_ zbY0Y@l5V#GiMpmL89+g>Qc|QHU|I{;_G2ZV`BH#!m<Jq8QzNMQVwjb(R+gXZqjM$K z^gTSf=ssXctmX^MtO_lPWsH(untAeowgdH5kch_JcUhN16>GySn8af*@?HGl$DgbN zL1P*b3J4Px*hqx`c!r||l7{A>TCOROfhcq_tN|W2LOk$nsZ)>7ExMk4^-ax;DJ{55 z{I-eiPvZ)B@>b9ZUu++4@Ao<m>CX~TtiHg4bvkyDIyy~=P#;lA^x5JOZJ>nire?{2 z^TxGhqBkmFmLs5riK<lf`s+Q;k_7+KaBk<G?Z9TRO92|SI=qiyP()NE&63q;vwbG< zqe*Y(D(iWgm)s5by4m0TX=nG%;oj?4b%&wmC-1SL%vT@G@n;;Q{hs=2L98%WzQrnu zur$x0Smtg=YBsE3;Zo+V_q;ot*38Rsx`trF{`@n}nth0IxkK-5gx=M*Pf$1<RSi>d zR1_1Kh}b;eLgGDsl}|yK(iZ5B5vc~O9A{F$+YDbWP!IW1VPF)FFB9A{>zqRPACHOi zC{n%VSh4_ZI<7e&dBhGS@#HGLF1f#V>La!2_R%$%qdQDsUR2n<nVrVhtPG*I{@ZOR zvxli`>B6wS#jgkcDkn3LwxLVb5)yuB+*xv&6dy5cX>ZkmOYu)QbgN8K6w?x|8#+H^ zG$zvI(U?1pOK$YSYR1JU#y-x)N~39@$d`Y1nyS#LZuEtJShT4GF8>rA@&utxeM~uT z+14mF?!7I`dH&a<V^Ym@PbTrXn|PL=>72Fn^Y|8ZPxJgEL39_Txb0x2jyXWgb&sL( z`+#cg8=|;NM5ammA9kR?1UQ}wBs_2-TqM_Ilcw2H$dSY7;Rzf}F4Q3t_YTeyP#Fn# zM3xrw0&es#43py4)m>0emoKV_p&vB;F?of_V3w^gCX+1_n6JdX&V*+aTxc6Wbtz&H zEnW06v752tQp;9fuhhl9o*5>VmUEZ*@nI-v9y0l6>6Ex)?9o|b)4aNmrvzi6ML8U* z<hy>x)$QCbJKf;EVYtNjbf=-_Ks7N-6j?Eoa^}Qgd_Jz$%Ji|sz2Hq!P?8=>w>`&U zZ}P#m0C56ucFvNjRQ@1w@L-Zx4^-Xs)HnmnIbSP)g!RbuXcaj}k8(=sd{y`GLanI! zqqG>!F^qr7ch$hjP^QnzG9`m+T40xXI@T6<oHzs3F#_qI!JlVEjy5QtgmYtXsX8=z zKB7=?KI(R}nFpb@ezvyO1F<_KK3w<PD2IvCd%cD`hDc_Ze9nRy8B6rz_nP5;eXjrf zv!$-wW?{8S3IF=oO^P!#2-}TxR7Xs$CMqTdn8Ja0oW@lGu*_?+7!HtGU$JdXbC|a* zpU&`(Nt}`E=<zoS<rw!;?LwXOw9^yc;o5jt>2h{Hbkox=g<Pet+u8VaHo4w|X9EM6 z!ifnC&bQy<Xy^xB%`FEXyx&^y-b5Ve6n=--Tfm&UVu`yw!kI3E>MF03OpNl34FU1e zR&q<wwP8FSrz&3^wy99X=r>W3j-d{D2;RtY*B8EqYbZ;GD(wWDAW}`7)xs!gv0=Fv zOgZ;lO!D;XJkFq>MLH@m-u|#dOTP1eI!2#HvRmG$IJgV8cxCiW*0`>-d8-tp=Zscq z$MIv3hgyiC-=-9^LUs7oX~;5)JKsudX_FbA@4ndnVgGRWm)*bp`1<Yh;m-HlZx3M6 zDjb&&JH!9ev5l2lC5$Mj31N#Pf~r~Y*mJT7A{|>Gf}j#cgKY`yX%yH}h#h#x_Wxti zM#lXciZ))c#kafstK}7|jG{U8Y?iMUHK~Wb8B^~(bfL0gEug&mN3$^dFPf#xqzdZ? zO-t!Jiz3!YnmX~&kX0yWZ$o4Vj#dA)9AhD-*OX)E6H*>vCmVL(25pEpM~#N-b}gUM z8cB;9#`vKw`2PBGkiH<Fw-cuPaU}035z=_>EEW2}ee}HCZax-G$8R_dch{d_ZF1Q_ zlNi_fcSL&M=4PerXLPy2UA7?^qSg`rxx_o-5vMGxdqyrkB&7&ki7DZYCgG1E@fSnX zZ3`f=u+w#@2qnrpS`npCXcy|+g!zbr0^o*5Sqjl8iW3!z#DW*Ao0h^vnNyiMR!V2a zAxQ*^b_8KC=CLyhUcEkS6z1R$c=N6ObUm_P?ZWD!ptJMxd8g+{bED}vfak%^biBUS z(VqVB2>twxKZZ=e-@=_ds|w5{z!_Y)E2I$jNO!%DRtY)7X=uhh8=~nNb}x9tX@C<& zdaSdTlc8a7N(+&RUpli$3R6m6jH=yHLWf!V*0RT^+H7yXmC~!*9p3#Ty*t0NSFbvW z$lu25RpkO;E2TsgtCf?tTPFI{bGK!3xAmcwwzpg#jRVbs1=DhnX#-~*jhL!F9Yy{& z^4-5cw)^*JwDf8~N4>>2T$gc?N?g6nNGhoPjXBS2hg|+TT6tNkrWlSgEaEVARWQwg zdMROWTI$;aBaBe6^P%qBO;C|r^Q>W_->2-OP-Iw2K%>64oucSJvT<6)-@lYLG5lR0 zR?`P%hrNE&^W;34>f)?c;gjbmpJx^8<BUm>t>3VGCLg(2T^?g-G<I2_EnJyJn|nMN zpiwP1xKph%CY2sOLB6iV0t+kF7;Cd@a<j-w_H3o;Fq;=Nih;N>@T){6bT--m+2t(F zkQn+L8%}=Pu;!&g7;6}7w<LRXCITt6pg9E8u&H}y9EyZ9)Ey75VlIISRO|k=l}}4d zC1VM6whwpUf8T9yAAa}Uwq;7|#x$yn{zOHYZHGr)>v{J$3O;n}adbC>qoZ$*;b~Xl z3LkZ?cDu(nOI!ZQZP|D0=YS1DT72^vPR6=1xxJN5FYlT7T?spfE!a71!_G>`F?&Re zN6FY~S@0k?j6vRF-Z>wwu4!q5R-6tQ>Q4&^;maskofiDtx3PN<71OsnzwX(+^~hH= zGce)%G=*xVFDYqsi;5b*mrJtu3yXg5k4*wb={RikC-OAhyyji5TWeF&eG=J)^ctvV z%}0hngViTm|Efigx&#c0^bJz~A(d-jppkWlYdzW0EjZGLGo1~9?WMUlj@kIsoN(7P z(<O-JWVx1GDBwD6M&)pda#cciBN#Q}AL-0eLT&P(kE7;jdOr0_S&SkmgdG}Ao3ByT zSd4-%h}K)o)aqd?3p1zJEoP4CDXZHJ&ivFyQ%i&RA#)4+b&J&_PnA1)4}*1|E=t)e zlZ+`=Z{d+fFp(b$+sAI&GNbxY&EbxhQ<YWGV3}Ce$It6JN^;f?ZzchKyrI#L%Pw#= zeUb<TrArceC>92~l#B3KU-g%X&NlyCqL#4x1TR354oUJOeGk{CxFmRq>0Ta!{G)F; zy&(7+I3Hh|SCk>fG?d`Ynx(}w?Q#j)Xb?LtPJU*aQz!_cbEMQxBuG=SN0=^)L<b=7 zv+8`nGP2Uraf&UDkPSdc+*=2!L;x{ZDfI;2h-Eunr}n<J6n<2wRIuXrHvvadrPk$2 z7^ToP*eH{j5R>Iv=y$q_bOd-L-aSA=M>SN@5dc*3WRPoMeLkTeStN10SHaWt?3_G7 zNR~#<#h_|oc;^F7kU&%(wRKQsi8vawjTKWB+r3g0V}>SIYls9qz@xvwRc_LY73s+m zl=nZBMVy^+m?mk~vP6}jU=}Ut<DFGfA<2ymRYnpjj2fyPgy_uEOo-}VFY0*8?w!aO z@Qg?y&T_g8RP8nuup_0J(>hT~qiXdR<ht<~JJ9Lf41%}GG@;X=Wb9<fa}^U?ozBFN zpq?f<%wXs%n9N)vR<Jv?an?O_0yMC_0QVaE0TO9vdwW~mXLiQhMS>403fZ*;GZ90) zae@+(9P|w8>u#euX^j6A_)pU1_1i7G1I5D>qSP_UMH64IYYhOYn;IH1Gx`fHjxsn; zCNrEpgGhAb3q+-HaNYmFu^(@YCwL`)<CbtAo+t0U<;p*vq!l`s;g6G~g4wqtcW)o; z?Cl9Du5bLYzwy;qcwmOpdPd>wE9fZxolht6oSr1rNV_UwI~d|zT0!fYTec(_RIg#f zxt^Zn6AYn%VtP3$(iu8Bjnf#u0=O98H5%7T9|sB4fL(ARXHyq?3sjc(6hASyD{>Mv zZ;?HrHt|GgCBEggv$nqR_{*=p{=*-?>5y{~J!QTEFZ=M+YiF;!A;}Ds!Otk3r4@RR zA;JD5DRP8K>2GmID^QJR+(>cZApx@Di7H)O6v%I?9rm09<#}FK97ce&6^7xBq-s#z zqF1tt`i2vt0${fu8TKVmyafTk0x_X439}QVC*=(Y%aKFFL`0i2GFM`IqG|fxwmLF{ z024gvNN4Y_Kke^4f9dz*yGP8Vwqj}{q%t!1mu_T?d{kZzd6$+JYwDy*davB-M4eUi z()deM$9h*3D;tmsw$|yiyR{ZE!@@7IQc7=0d<U!97Jc@QORaHCDDJJd>LVJ6C}%ao z%?MY0{Tj_MlpffG*UV_C$Lf*Z^*eua_3IUyV{NqR;A;@l(V#>9ZY!tEIMi<&Q*{S? zwkG<mG^T$qDk}}@-z$V=bldR^s<j<+U`-{)fxg8h9R{4x)|$C(QA%|c`)z4mSt>!> zOeN@w@Ch*3u1V)Vr8U*-VI#-}`%;itU5Xxl1<UarPtVhg4Z7e<Q!9X@@Szc2Nv-(( za-{3h!<XAX4fkFhIt{T@v8*X7<tv~@AO-xoDk~DERp9ofSxYrTn%SWBp!)6%x(okV zmp|rmd*~rnO6QE+ZEKyrBZu2slSr<}<+j#5QR#hDzvXGMEkJ#d=o{(I(f#uHA?nnI zNeSC29Q)6b_iu6cW&?~SRELF8$ULo)vP-t5mu>Xoeu@2ffc<#auJ*7$VUY~D&%UOY zg>ToNMdP+`+>06`_o`gHD89q+R-cf6!B`d5Y06(=;6>-%N#~*U^dUX7tNPuxr5b`s z1}LiPu&Q+v?tD0|vJ0VdgxgP|)>XJEno%B2e{vWHow;g7R8u=BuJc^6Et=<@Ex^== zm4f1-jw(xk&^trBHaIKt`7CsG%+Oc+Dn2-F^1jBc_eYPxt4Alj=9a10T&`J1njdLt zz+40iwC~0a<|zftJd|Hi-2<adjs{7pc~y%N6k4{FBHWEUa$!Br`gwI;<X5$ecw+-Y z4h_}%GKMGSChG>&a6#Gbq>9!p;RyTB1JVP&)sR+fvyJzlNeB(>>6+axJw%gCvu!%0 zqOr%56+7#@IB4my)n~iRCtn2SBK4@~SBpg69?rOVR$>^<_{D8QRI$FB6In`}@!HqH zuF1j00XN&_0Sb7&8Bjt;@9CE<7bR*WN1I=QgfkcnJOL~g#EMYWJ+Tc!-(l(tmxa(% z@2!)G1CS4X+zjuR(S5nvv_|gP>l^Rwjk~caE)Y`OK2Qf1H}9c96O?&{LQ=-+cPL6@ z$f|SE;&O=drk;4gMT#7;Qc0NR(J@nKLUjAY5b*g~mj0tokCA4mt*nAK*VQ>DdPpSq zo;0{;7~CT0<b9n!jm>jtqbw=hBXy0n-#Z_|KfQTEsVguE!c8xdfRB=qGnk20Ddpni zwiq585Xl|aB2z>RxRuQ@*9{}S=o~%lAOGpy_~E<3yYT~44}=l+>vCP}+I12aPv4C{ ze0kIB<L@bq>Kq=t8~=$PjN@zhX{xjCL9?fu!Fg59HXl7AubTWaDNZN(6$)*SewkyG zWssU4ZG8QQ$KQPO=sdsbkMsU@KJU{U_tEdKPr9u>>96{t4=ejPsr|Sw6WFgOu&MD< zBYyc|E&B2%+<E!y&huZN|7iz)KECONKkfYb)BdmffBH#&@BQ@a-d}(H>!0@ccSAcR z;^z46E@jQ#;`F$N9NIbB?*GrR)@=H;SrW8^b2XLrF%B9!<OsN8;zpVJsJyzuqFOhk zm8>10IQ@pvkKRpiia9qqE=)fy2f;zYmdQfESo}t4n1ey1f@n60Go3#dOS78MN?FGt zV6YnlI}-x!41{ry8qH$%W^5saj`pxxBKt~756@c3NsKynYZtM_?qMDUh02z-)l4U- z%MkJ~iva$0q1@usV>TEWpnZXSoFkZ7)q7Yf3rbRevjprV@wn!BFt3!+3JJJ%xKn^z ziR!Z-@2f`}z>nlHFcniR6h_St>^1DtT8-!S>8q#sowst0WQ+vGg?(WX95OK9FI2NN zm54MlN>WMQ(wM1I`8Fr|B1I|nF+#OMLhyE1(tCKch5rs^T1(KHPjVc;-Kl%giTmS) z^hGD_as7sbhH*No%=aK(xwbg=VcZ^tdn!U^e}S@&PgMi3k1o*2W(<G4XA1cGNsbWq zMse3OgfY&R6NFjI6>i@qTDryLN)|)CjYRw3^Bjm@j6p5IwpdxR#T|VNyla|PEOq_@ zKplg4hU5`(ZF}&hiF|<f#0ZcSd$oN$?DAq8LN}?#Rkb$YK+sfE^{(!@2|OuB0=l-; zz*rWfS7ZR_5O6)iD{SOZz|>1X-nkh79jDB+dnT}iT<kK+@9{)BQzjrnQgjyG2-${9 zsCp^Hqr@2K=O{lP{P%vh1SzYfQm41LGj&}5esGfKlO)c}IQduS2^nGVV9ERkqo>x1 zfjQcFGvK?~#yq3yb)@+P4K*AF%5xQDLcolhf$A;nX5;_9Gf}8exh{RwaY|fd23t=t z4@1K7YouMPL$GbZDZxk}zDu)I)~{sV#%5yhaOXq!U4_v<@JohY$U=hRW?<s^iB-CZ zk=C=*FStKjtGnAVk2xG`@RxE>!ZAsCJB8gz`SbWR=&0=O8bzI;oQ(g!_TId`Z6iq> z{(qlmzXJlThoA-0qHO0-BxPmU&iJ>A?X{JigHrf_Bq$*w2@XM8RwT`5f9vQQ4UqDY zW8UFRWD@AEuCDH`uCA`*=TXDt(6|+k)Av13Q`gsx*czj~#_esnc@4pf#`U#{N63iW z-g;0e{xSBU5h5019qu(k4*|I1nnYlZ6^3%z!E)pk<5H&_y1d(Ml)yDkPb&+E&ejz% zQBoKQgjBs+^8_`MW61=Cae|_muvL)ULmDO6OI@UAv4&fO5~)}erMyPGv6_Qddl17j z`UFnpyf`?wJlo$fQCI=q3NGQukJrnXhUMxqF`{|t9c52{=P1ijS(H*G>SKIppyF=4 z&j(lb`(f4+#`Ynh=8V9y8W(4A**%R~T+lB#SVfG!*2?KlCG%&QMh2bCf~(J5Rx6)` zVrx*11R?L}SC!F$WPF^T&qEj=!b@f=WDE<|)wHcCsgW?BmX0+-l-ZN(x%{4Gl0CJ= zof6I_zUM4;r*!3}w^zCJUE>YOTD-A%#4!^NJU{$+bo}Dz#mi?Dhrj*w)$zg6QSAwL z-ndsp-|cjNx>wvQP8<Gv>L_q--1QK9kN9=B&E~+su=@c-a){jM<`s}dak}AYG@9$A zbd^-wT9-U0)06qXCW%Zl4r|>6`z0d|i$0rsK~%=AaRU^?u-c6#ePio2wDbTfp3+r^ zLo2JpJ6T1KYd>q#6QEZ(=C~iSp2u@Eo3#2#)at}rajVm$=;TdLQW(d=Q1FvgRGkwM z;pp0+qpPHrtllg^_3R~;K-*=g)EA!sOF*>04okdy!%_5K>xJQrpa8KMM(w5>sMyA# zdH-Hvw_m2JwHH-{Ap1aN>3WLNwUwkFs35hFEl-;DHKZl&=)bmRuO{%678j5U)~EoH z1KMe>e>+tmtNLn9Z9D=;>E4{u5M}5QG7?9dl46dUS#(Q6+fK_TMU`?P*(!H{6j$Hp zFh(NrhUYwAE=}nqPAHuOqN)b4N<6B#xxXxWlVk=xy{_i)bJQdRI|2Svv&~St5GpoZ zQEbG;Mk|WVx!Am_*scFDZbFyEI9tS*#elZ^spw`KXfi1xAMsVQa@bWC6b2PAtkMM+ ze#!%<^+Vo)Gx>kDMFsQfV%d+Xx0N_NIos{*hp2*H6F1*vckuG<x77r)YRQ#tpC!Cn z^Wamd&Aq4l-$r{bG>pp6UIcDsWy-w*4`s$r?VfKaOxB`bmDZg^xR?3j#q?twat-z7 zi)&!>w`>N&mK^BT7@;W!1C%+d3~eG5mMT~SlGriO`;&ZiIpWGZf0v=2nH(|5;soKh z;BPA9H#OJy1jd}It}}5_^2cRx(kb^}&L6kdpG~>RqJL=8k|}$KEk>Gx#au1UGnr&f z^dPDBXELT7lqu;!l?MC>vyQ2XPOz`x#kh#a#qi?iQCxJkgNKje|Ndel-tIgMYgC^N ztcFgTTob=>W&8&9@gD%uSVv_Ey%Y{rUI!{)urJl|RpCO4i)^Mh<O*R>A^@-D*I&(l z#u&r07Y*&9BxwEHm*&$S66^y&WTSymQ`d~l@<|R2W(Y%R+iOkE-^x54+P7@a^$L+C z&^%nuy@<hX8e<;YX6<!G=EBIiq_J{B_zK@8iJ2=@`b^L7U|Rmiuz5CEVDRe-UZw(0 zP6kxI`3#(0A?*t?;6>X~rB{$3(Eiy5u%=D$7uqP;nV>6WHxWby_lF9h?X9@x*8u^k ziY>*d{iTfoa_18?DTpnxtl+r1GU{Ld%7{sDHcvnvz@Q5pb%9&JDlFgOVHAbGd}4`u zY*4kF%L4^UESSF*qe&#wMO#X3j=_~7wxLYq^`_=Pg+j7oaq?R`IYStnoGeaG<|il9 z@D`dn7#F#Sh^RuZu$&eP87sDgES=#(#)%Qv`OsU+B}yiwM;z7SmPz8~Od!-jiYe?P zbO`_33BujCuMhW4Tgvcc5#saXgD1}ODLp@W?mV8;<HI-3;}Jc6ZkN9GNH@F#To!vk ztOby28deB69_MfD+FI$Ls3Z{J(!It3SzgOMtX>Avm3*_QEK!mrAk#zJX~hmO{7-&8 zPLp@3Zm23;TO^yNqHQ&FUEt<6E=GHv?RRAgxpe~$YoPz4g44%~BXwSL#wdNF-BWdG zJ*nhl+}+j|N2+|@91{Ei#Sgjl^<Im(tDGU!+5^{04rv2eCwSu?eN#!<;2S>e^*&&+ zSIXnux$pDi{4gIcCsPN_>bUsH@LeLz_>9<00|J8T86B1WTQd^XBI%R&&ODvvFucWJ zp3E|pzp?i43$UlThp-y?RYU~{bT<!hti?Z1X%czYzPr{jdoj)zy)2}k7)D%m<iC~v zssbq0XSoNMu{UyvSi>|U@TmR*OH*)`$VJ$$Y%bMm2g!C;h;2z^8wXBkEsMbFs2d(c zVra7-y}UjVuf_CyY7k2ZTH_>(?pF<tmwULlgvV%}sp7DReUfK+7>lKDoB-2H9w&~; zsHoMF=vcHd@4YDOxvXC{;N}-f8?CdaPC+;TcC~8R{vZN%;smCURSOkInxZpvK<9pX zmQAO^lr$l;S2M^od#;%##9keqF<fbZooqB3#yR!i;DFOCjx+PF4j*%b?9wZK*<bQN zPyy?j?}@6+cCM5-&tDW!G5J4nBpljEQ<84{0U%mBpvLmm2;VhrBT4L;yPvZvanUrX z@Y<sfMA&iA&^<MC1nAcmF&d`~b0wSf=1dh`Tg4td5+QHGnA-$^e5$O$1{V!98}&pM zF}G(k0PV*H&PR$on+`wCq7mlQ>nxYMj~igQQg7=yzSvnVWon$i{Q1T4Gfs@7?#1v- z7l&c9q`~t{2GP?`JQdJ!-`X9^N|cgy0G&k3JCKon0gjGXXe~9##|q*cFozRJ)%C<i z&z#Ve&SD=v$C*)muFc_7%x?q3kKs%xVt(4`h=PuLz}%qAJ~BF9WOL=A!tu;0-vUtT zXUyVi=!r<mBB{;@?^<q)x~PRvjqa8|#n?wqSC^~WGv-tC#ZNa=*5HNJOzShulHK~n z{yShQ0>b{906sfULLKE@ITA&}U0Y<O_$E3RkhmCzwKYhGB8l?Uh@b764CI)(MCGaz zs!GG}$cWe4Y-7ybbONW@MJlwgC;eMM=sbCs<&=A-9I8SpadnJiriY3yiUEs_7q>E5 zT%qFomix^hjabJ0RCp5>81WVzhb!g#+Jm>y%Sw8nbG0IXKMv<w+}s3+Asf~2>gD_r zulE<CkAm@YxY>$D{pmQrn-^1rA98w<&&!P3dlhHb`!)GHj?dk=`--)vBwzokvr?D; z&Q=}L!L#Pzapj8R-mbmYtYg6^US(_Sgln&{wah-e3sLp(Q!c}m8Z&tufY%~Am>KzN z#oGOlmFs4J{gv0QT)hIOoYIkX#4Bfh>qC=xRZ=YbTpvcts=`?W2Kl5fEYpCJu*Mgy z**wQwXL?qHgbRG4bgAf5(c+TB5a`LfloBY2+2j%FobI^OSwe6IURx^5rg~@T6jR6K z^J9$c<BkcH!pVeoUG$?Sq>Y5BEuc&Ac<cnwu5-@riIDp&t{x)U1<arsxPqCd-2pJn zlvhUk1wz8;J!|#IEU>`}W#MHH!!Dy0NHa#@HS=V~m)#;AKxx$^<8fqQi0xRBerWRG zQ=u32uLg<hB$-7kNhM~F*IA{m&mK9oCKQhaN)C=oVKN25`Q*!N@0kYt&2@FecnPoP zDIb13CQv<?y9+e-HX^1w-VxdqgPQ1OmPL$6PbBJcA_;4ysfsd_ku2oy0m?+g_Mb2i zFxz!+vdhOdU=q*XFQ7%VfN+Z6D)R-5$%uK32R!^_0E^phHhq_)eT1iKZpZaWbQVT3 z&s7_~6X9z8jZTlL$d=7BU2*@?P<vjxE4J?Hzk<Z9HK-n1hk;OmIC#695d}(21Cs<1 z3@es(?R^uoX?NR^7E}_y(tKK<ESfxKXHBfSxb?1Z`TTG!*TZmq>?%g`gU!~ecF5nx zXW(9;OveN%%J<T-VROm^ZB`J-v@DZ^f=6jGL20>C59B9_QL*V>?yOpwRdqLLGfrl} zou(=I0vt?-jY2B4DAwcwGF1I1iTfDK6aE`g02BEz9>haC;W*x8QM@lcVqu<=Ic8E4 zda{H?06a^GD3LEIp-Ily3MM`#)M%Vtq?aguV#i<28yxVDj&sk^k*?w7dWa0~U>>Z! zy<oe<J9zQzncL9TX^Fi=K7M4+lfajxnLcPgLsi(`o=*prrMaX*8aah)z>7-5w7;wg z;VQX57v{e1oCce)9T>fbWq(=$plTzv3OV)~H?lqZd39yOki)91pSwO*o*@M0^{+jK zMqhW3Q*Sz>`o|f;D$O=p>v@g*SMEtgx_F~WubfNZdrX4y!FVjRKzrr$8yhavGGrS( z!L`AbcLm4Ij+~J&A*jGj{yv67ZMxSzwKviU`i5FXV1PHtC-#n#nratdmaK=))4|1? zbg-P$0X*nh+rP%0<VK>zov6m*rd30Wqjl0~*;+&plMnv54>>KC)CF%a57?YjqzlE| z;k8rgRv0_$<cB(Nay}oz3}#rmMnRD+`xx_0IB=mV(69lQ3dd69OOCP3>b=Hh1LXc0 zAM%YVbX2IT*D~tGBI7;j_6jK`V=OyVlU%R`n#8~4k>*RDrr(nALucW=;MFvJHU9zS zMI(8b9ri$!#9`?Qz)_eD!)B}iMInBLC+dB220u?NDS~3WrAd*2AaOZIZzl{Hyi;n( zY6DnCsTFu;w_{8W{wgdWi8H-j<g<wQn>oEb3eEe;{0vTY_wQd^;<u6}g_Z(Pp{?P% zS|AsMM?@7?(^d*M_0n_hx{L0robFlT>>}#aU1^Su>Xp=e>{;6D*m_uUnQ5TDQqybK zv|rcjGCpAlhz&ZR2t8p^1TfVwrsf$kn;y4^grQInZ~_#%OIYX7g-guv2Lk-?%7Qmf zTT*jr<o7HPOS){xmvdZxs-P7S)5wt`rh!c+#;If|sCo!T0HzhOPq}{@t5Qz(vIfF4 z0lJ-?Q;$82p_z*VdkuN@a7LT9aj^WL5+$3uZ_wO9R`r1OtJxG0u>-6+MvMEEg!5?; z#L<>WDPo${<O0Hvh?`Oe=t*KI=V@M4g%Owm);-)HQrsy(`mK@*Rm)yf+dT}<*Gtuf zz$~rqtCj)ldgyJ(yl5~lPwKB6sO`#J;~zbY<g}q62(7WWQGmViBE9m*x-gdD=AKch zB<wf~)?x9<aHw{qb=7D!`hR(nT0`+)QaYLX4@VyxY>>8~Yw7z)yfnm0NBrcXG#UaA zbY6G%t3FgX#EM7E%iQAT@%FA-%@RURYZXBfoo&xE^nGCI7whTJ04PkNWFZbgu@Gr0 z^lDOI_;_{LH6FggK)7o0DJ=C$=O|u<x1rhOitre(N+*PBd7UFrV}u3VHu3yimfNvQ zB(obSPcCy)Th15VG2iOyv?@Ari%69{&ZlQ+(k&K;Om(t^t#(aW{wG_OuavkqGzg%F zfC05tW#4HR<nq3o;`pcFkghm|K+X?0gGL+8yY-_|L<oju8-0hJ?T5j`cIQ#&%Yd>Y z*TuVqvW?R?=r*_le}`J@#im{VBK6gLePL8Z&+)A13PE*xbyq>P+O_ZV#Sxp(E_g() z7p;!_T;=q#H*Yz!_bjuw)tt{S_5h08v_Zn_k|C$ZEyt8dENKL`X}<`!rYyojTbm94 z6k#fa35P&Xv925wSU~r7r&f9q?(o{=|IYYT8CKZhPAWwmkEG-4P>pX^g<!Nnt4rDk zO>z<0N6e@g&o02^=U0kj!h_;GpQGDI8Jegjg#vVp*ajA0s}0D@mdZK!$l3*fk3gK- z8z+<gFbUr81g-ZNX4Ec@^Sc)t@sE7BUe%Jl*t<SnoL^(kQ<b&ny&%&1bDxQ~-u%~P zoi*SLkO9qz-&z_m<7~iMT|+>3L>H3w%^J0wb{+epaGI+t_+*R$+LA@~E+zFIO^MJj z+_ko-_xbz}Axwh=RWD2bZUxGpKCMV8`};>cJ7|GeUt#{1f-!5L5R!}z$3ihaq1H$o zrV48c!#5uw3~O3Qq4=g=DBcJzX_q2YQB98;Ftdwt)z{0>H=k9G1}s6q&Bk8@t$kZ~ z=6}i(w59M{E?6556Ata?-dU#@8aGep*6R;++^6%uYv-P%7zwk~yU%+x&~xSAM}!YM zB7Ep!fN%RgOh_{C@XY6T6rTQl4EV@nfXQLVTIUR;Irj8JO_s@GMC7Mfh+j(4tAk%j zUCIz@v-SLFImd*ti`rGOzD(&-X_Z`wpE}vH0wG=P6UvwfRB*aKh=6HGB!5sr^XA`z zW?9gDmJH56gRMkN7JumUG`;$~rV@WzQ=%N?V+sQV)8*AD3g0|?8oYXQ@bdd-!QY-8 z9liQX@co--&t3*kj(&U=y#Ddc>!WAz{owF_0tz7zJbCl#FE7pf)5Uo*OM4=>vH<$_ ze}6o9^DH=g@#YY!AHR74@Zrnb<AXQBpP&8p;QLoEgI9;g_^%17-qwN}!c~KFnSSk1 z)G~!Y#7|9-v%Hw9I{1UCd{0sNmF2^GGK6Tv4bvRr3dFaFs+jPIdI})@B8c=Y;s+LW zvR@3G;Rlsgjo_2e*>EV^G0esw;_;P(8o&^X^mw$<BGe3K7y9cN^UIR|BO-`&@R^da z>6|C=FcwpRBJ%?t^iswpEYTgqJmIFI2jNc!asQ-4^=b+=&Buxmc63z*yFFh{kAayN z5yfe-*cc6UASM;lT+B%t(V(-n6$hPdH|-Bs6O)i=A3WaD^<jQ<^~YQB*G^q7#4CYn zZf^;AYBE#Z?XCEcQ?-PC<xRl{^sC$8N*E=E>)|)9ir=U<ejxx2IzMe~;e#0e04yu7 zUdw9Le9j1XYMXs)p`sB=*w3zZY@AzmN3~|@V+P421Xrfu+E^dIJl=BY^5Zj`ERS`+ zzOE$7kI#HGajKRm^0-WpuYL4jysa0a|2B;TI>u}a)N~B&`4~78vTM+Q>RVLWrjBSr zN?10fwsm(ORZxmR`$*-~Es<)wOsYpdQc29p#F7y1cy6w+??S%&n;CeyHd>xoeuxrE z4zz(4pZ1ijV$oS`_(V$BBs!dwh0<I{*$_I6eS(9R-)YJ<T$0;@o1Y3H3l}UhVZ0M8 z*EAo1Z8NYcIHh62y^#E*ybYZCX+bZ^cL1^9q;`E84ovuG7Qa(3|DMisHZLvpQ$v?q z`<+QBO;`P}ZLn1kOLU7Q;SA)BrdG7Ix##Jar$T8-IF@yb$?QnR<+GlGFh30T>{c!3 z04M`J2xJ*GbXFlc(Y_+VYfrds%U2g^I{QI}zjl{1hh{X3xZ0)3?3pkDm&k5Pls3IH zYI7yQMhP@JbZ))rg&b1Z>YXkI6^Z>f;NtbVmx2|IFz)g^?zN)x>n!l2M@a%O8Cm-* zT@VvP{#BtZLT(`lgkw>2uP92iIZ>|{Q^wW+34>Y>5eifR6goAgPgBMWk^||puX84* z<((`b`nx&FI5+^DW#Vcjf~f1DS+6?6%_;mrfHyOlD}EsCe~Uo+B1&YO<5Mym(qU*h zl{tPS8!B)&3<l_S3}@!6;2iJqopd)saphg#o9K*j$1Mpr6v2qqNT1qD6~o-vYmA~X za7F`ZHdpCtmB!hksoL+|(NN9G1tB2WZj>2xLTAJ+mXk<VjCnA{>!@ob;WQ02O(=f| z1=*ketspBa$X*)_KbxM@O#gsDBtl;%E8Tv!SR`6v_c*ed&RABLJ}ekXttOhvOA@RT z3&V=dWQ`bm^{iHDlPtcLLVs<LB3cN8E(PmiDEN<isHyO&6sF-dw;J+rWyLPXI<B{* zuabQtleH=xG%Fo!sHWeqM%Q!CZB(hsrAAkSnRQTzRn1k@6Hjr+3x_J0&wP@x4p;yq zv>>qws~OLmpZM&!VocqrCLixnv!)qT7}9QN`a+bhpjL-A@eg-ZED_UvsN~_fCc!j- zKYSb!o6YhK;ObZ+YtpGquTK?N<nCzS0p+`+TjkZgZU7D6W@iV&xMMeT7yMu<5dHvJ zNFaoB&n@R=0RsBF^m|SnWkmXS>kEHz%Wd+5C9gXZZY?oP67F+&$KM&_ySvJ-BlWKp z6vr>EeWt)TI&1Yhr1{v8IqO8sk<$2c5n%Jlm5(kZQT!;+FOu^#8R~p&BAgB1VzXGG z&05+42<o~GnYb%YRl;4B14hJnCOKWk2{j_&b1oRUyJsBzhQYl{=h-Ne2Akxs%eiDg z)^`z79vh;h2u;d>WV<fbK{CEft_nd*s2fa|<1wEj$da?(@)9p%H8f?uf^j{QemYih ze6j^wlNupUgT{_=3kXXk>0#_hd9y8I1LzVAaL*{YX$~<!GYaFmSOy*7n{2MWsWxw_ z0Kaue0tFazKIgMn(><y~0Xtsnpe<1&XwcEu6!G;p4Nu|V<jGxmrwJIsmN`yGix8@^ zEoGfA6#+D^JIP>@;OhHMdWPWfk#1mpn@Z1isj2U~4_bK%^a<}}G}~Rny{I~f=*xU@ zFug0cfH^NyRvVcdF?!?*-odT?4)})IwiVO2ii2R1##r~j0)VoAkiVn(m2jeTBdev; z>y^xBg-uW6pN+K)dOm!PGrBA0_qsU@{pTV|>755JUmX)W^+UqxKW!|6%VbLKQnPtJ zOU@|DGuv9aX&djB<M25JtyxYHyi_B_LAdE|zn|eO3`g`St+<zP0JjY#KXuZ8^2*n< z;rFIz{pYnEz)FZe>nc=5Oqw6?q6-!SU1iiUwi*>7?}do6Cu^V8fKDJ>vkzEG9eYxy zQ@$hQCaaF&RLTms>uPNUm^GAuSkgrh*jP`3_$Pm%#3uAbi??(v7Am_>wuzCv(32W0 zR|({lMRwB5RHD1UpZ`u*qGN~Zn$uUKXBOd&N@d&ro=GbkpxTLjLefSs!CWxF*DW8U z2n|8mkw~PIxnz?&4pf7a0$yM!mUR5B2@RJR>_~XO*ZdId9kyc#oj7JHyoWPFAFh)t zALD?>ywEBQXe+|e!2euzhoeg2OL8|g*vjtTjSL1z8_^1=AX?~zjP5*L;rWf9nrmtW zy5wAeA098*@zxkJhP1-ngztHEcoy}eHaZJYmg{Wp={lvecVzEnvDVp_vgbLcadRtk zfvZRv>L_BfX^+kJ3`1?BEQs-+jH_kq1Z>E!T#x@kA7IDBbl(!^7E4pDa<mLw^(<nV ztt_&M;!`cT&|7AX3uH^TO&cO!iX{QGJIT;}0z^W|8%)wgbOcpb<RWc{EE!zp%kdDc zf&s=HW5rFBJK$VX#RRA^XzGVGvghyVWLtZdHP{no^;8Dr@}%k>POYP>5l(#N2^hia zgDvuJc5cK_Wx^u0L3!K(ZCbDR9A@Ga(c<2+r=WB2WrRxpk0ey{oKp7S90XV*N*3eq z@@z;b;7sCH%CXUKULab(ou=Wg)ZMV1E4{h`pI*SHLpU{gj3)4a){qQ1se>)*G8)(5 zeh_uyW*y1~bNW3C=+*LhyWL)2MAvqItGKkZm@yd>OvzsWz^}lst!Do97<N!(lMK@$ z0V_DVR*UR*P0hiIW0GOq={X^(%KXooiZgp9er)FG`g;Wfe{saqZB;c=zG+xr+W8|L z)Vo!D;Pg&>p!ae)9+O#1l=pv52MhaT-p})~@cs1UKr!yudmzqFaj{Y?7+JAQzzRsr zb$ilc_GP~KL6`{cnJ6}uj47R$)=`=&4(7jMvG~<z;#Ja?F;ZS!@Q@4}g-asSK{Fm% z&TLO*aO2<@m7?E9@Z(#u)JiZ9%P@sg;gk-&!Q<92JIfZqFWC$ZBI9MD+j%5j{bQMo zQDJMC??7o^WCmnG$zZYfn4}CjAdQw4t3eie)HJ0DfLP;IwgG$r<RO9B-(S3@Uf5+i z+YcW-wja4bpyK8uN($jt?QC^gTU%S5`uf?FE>jVX{py>qzxwiV%YFu(sJts#)gPxX z6pG@}<Ax(o`nu!m3Rag-T^Qaj`MMMQq<=p@cyY9YUa_Urtteno0>R*MGsaXGz_mK$ zytwma(^-VoTbSIveXHLSSx<T{I6GQ}WnrBb&@hnj*mu!ef!qJlO5KyFuD4TurX8}Z z8~Q{BTX)?p<-TRnNbo4nSo&2(8h<10M7?Tb&#`XyVBv;Wvmtc7jh;$snvm|KBU1Qz zQL^h)fYBhz`2#Ga%O6uTSzj)Bdy&nK^R>2j5)DYoM~&Z%_IJDp#7F?JQ;K*O#IKeh z&5vn+l^zK8_G)jfHB!JLnV+Q#+X`ZSA@2u`B-^A+;4Pl8Qw|I*Sg3>X5_V_n07J_X zPB1`u<OLk$s@xi;d&PsVu)nqrGIVa?wz$`5DpLl*4(CGZNbnYPyCpn1=n}Nq)|is! z)qB!fviZ00&Ir!fpsN5Zu4WlBoGXwha!w7;2@eq)6W>8TA@7l<kf*Y<^My<w7mSEY zsc5&kpBxHN)WlaD2?c_>l8i=1NuCx#B5Xu>tV{&OIH}|snzqH_TO24(z0prcxwtd% zj+Y2JVM4~TJkcfJOk~urO5qMpoB14fuaemGYPrCxDpDl9C<^qMdBcTUK_~csAOmi1 zZEd+(hys)gZi2Td-rZx`oZx9%4CWb!wyFQz1i@3hNPjg;ogg(W{A{+=$N0MPW0rMr z1-S-eo&lmbx8UoGDV^(4^Rozwt74H(g26l~&V9Jb&zCL*zIjBE)CySa*#L<#OUGj* zBgNUr6kkXA8H|3^80Tj<(?-(+we!e@`qek^`iE?a`Gm0KTSl)yi;c^3U|ApmlVimq zNBgDel^EN?fcogGl9*|5=h~ngZ=bz}H(DEbW2$pmJt^iMhC$6>o=K$!PKB!l9h8<c zgJ+T=6u_Eb6mzgwIS698SYH$i&&)DiWJ5fQSQXfo16P0(^$uGw6R>eSKV&St72?j3 z&14E5jLjiAyD%om+G(4)=+Kzg{oKq>!8r7YSMSNK2Ra&y&h0U-Z{1k5Mm<-DO0EBp z%pxemIGX1lm}VF0Lh5gIxD)h7NqaDm6!rv1&@X8O=uxU0kHR8-ch@RNjy38i+=j5y zL99!sq2B@x2VikQ2Ixlj>@a*h!AqA+cw)l3?cs7VtFbw2!1|}K5`qEX_eu_cFTZS9 zF%eW3c1#}7qM5N%%}dOpYJ@PnM#p>uL$IS*lZo^<j|gYMUf_GUlD~u))8kPk@+Pm5 z*sp|H(Ti^$l{+C&H9PUuH`oc{W~9bnmzPm|iLWYqV)8fDlXYQN^ysT^N<AXH*Eo<0 zPYbc*^BGAo0Td)+A!5)E&*@Y!k5~xf#_`mj<5yp>10UcYcT>a4GL|ov&+kR_i4J4f z7XNe#CGu$OK(H-gm;`mEFa%5pW9t~iaM3klQ7V}H#X(;imc5h~!7Q60Z~AOjWk8kr z!ebmj5XR}WI+nTXi)6o9*B*yS(KGGYWF>xOnYyVnogig}X_3`}o~1o$UL#x3uaxDD z4p*Wl_lj1Goe_qhOiH#k5$|^Q6lwh$2`@$J-F-GVy$MP4Oqa5Od!_!u*Ir}=S@0MY z%8y8^;(O)qoNq8zbxxZ0&d}sZ2yDhls9dGmyazwk@h0f49KtGe%e3(Wt4t47)3}G6 z_Afu~hN+H=oVoVJhEP_d`O`?ay0oBLnTDSY3}7l^TgwqcN}@|2q2$pQF|9ZE0!Nu$ znIb`o$9RerHoRoy>rr)C8GkB(ZUplL?}JCK;={BOC+qQixzHCdR_nNY9G%n$THKoF zhW;`e5Agsa^h_K^LYLq<$^<m{9U{gYRJPZZ41NdxJGG0l{?JuPN+4c2SqF2{8?sNu z3$zm6#I?~Q;+2!pz!T;PfUPp<(gjU#ruk(uAFic{6J=pPg}U=ZS_&i<GiCjX)XI$$ zvJv6>q)Qr6f^Fd+sPsvI+!7rGQ0;Y=_F;bDvKVFWk?&DULR<A06d0Y1Nx&U1rupSG z7XCocFW^e7>){Zc0`ps#B=Zcd1x;iB-Cd8h|4TR!?gWeE0&mxVo06c)fLT;Ep(1aF zC#aPi=lKPi01nb&it8H<-vn$KKjAIAOpx*{rqlB|spn8XH8<<R`Fcv|snfQ3S{hvr zY3tqHg}OIEAN~{boQ}|NoL-W84n`xzwL#%c6YIbgnJ}6*5K58Wzarmk>~WtIdxHR% zIa@Bl$qy-M1{!V$!3!D!=me?#hLjExX8KjWWVkSH<7|*EFtjt;HPIM|5HPR;(m4hB zpO%KMqU(|ByI2*6`4om>AqHv55oeH!dwP_W^%ql$Otco~fc9*jLzgCM7Q9W<;ON?1 z`@)>)maR^3=931G)`2mvi9B;SUZ#n1EfM&s9<38jgH9DyhY<m&bW<jCh?lO)%y!1b zc{Xxe`n3W-Q^|@@7WB?}RTay^dpgqMbVaxd|GCSm=8adusMIBc{jfx^^+{mwdZp=! zJ)vv)4ZbZ;arw}ilxnsZlf`4^L8oF^mBtuqFrO&O!-x3cix_!wE{THfm8JW-bQl+) z^lV)>#=xB%^zY<nE?x6QXb7vU>zc5hOZo?Q@(!-)-P6w;uif{i><5l_mOFuKPqhJa zY1!|?_~TxOd>(`gjJQh79Cqr<(Q+J2(n&t&u$91zInYq*ddv0ZsB2#k(^Gyl5)HSk ze2ykjg0;WQnPz5C#nSoa4ub{cU^a|xl(Z#g$*L>_27nM7F$}aR*x1;`uGF^@VeU3s zc=xQZu;N-^oEO*p?2gfKJlm=pKE@aKhVqU`NxBs7Z2=r{&ta}cqm*()nd`X&FR`)B z_NtbPw6>E|nt{><x{!<f(H!m+K<t^4yj2J>C31=TYGHQq2?K`NeefCw1<eg3&~U9~ zkczv=eUqkdb|WRCs5dBCLZ=774yNcUtFjQX)JY~DX#0-|)6d2-8M>gxlPhUv6l+Tb zrX3p8V^RV%Ih1zqlq39XnJ<gL<DdPl6xLyG3oAhM8t;!e8UlM~Um^6v>qavC8F>Cw z5V>(H0V*fxdT(c7e`D(|(v!JKmu9PbtYg{a%j`>(pb32k8V~Ubp-oZFDJ_%9h*>^I zO5m->GzBVHrr8|%!P1;mw;QZ%xYXAV%f7Wvr`zSuO63rrHR=3C)(dz;H%H4t5{Qbs zcU9}vw3XjqcA~A$_CsJ4>l^Z+&j`1%7lx?964R+7qPHMk#agxYTN(LE`}DWyPL+&( zFmfoHi+G|86rAQ`p0;2q;&GJX74X@S+lMDM?}a@<qVC(PR(adYx)^U<d|f5MdaiUd zE#bZX;fhUm=sDN!aE&-)7RpX{?Q@y{W(xSVyPmiZlcOvQ_$%XcRS3Ii#w;Rhc<*J1 zn~vRpQ~(TkH3evv?@Jr?FdfTsR@i7+ce7+?7>d}V8fGskcwBJbh@64LFxqi2$%n~! zkB^l2^^GT(s~iWz8j%D?fl8&%r=VF^;e1*<B3hup!g_mS|FOGlZUT~NNGG;6)>Pqm zv{1Q%k}zxZu!6Duk+^Vltvx($Z>h`pP`kn0nk%_(@5zR|;{2YDz=kV~WbnoxRlQXG z1`8VU>T)_z?+gofm^j%4R_~Ao9U+uiJl3_t?~JBF68GcI))poolze_f4sZ$n>C;ZL zwPkNK4iY?6wWxd?E?pOyj|kL5$gX7XW$CMAKK-FQfER~;eX8gDQ%sNW0aHFv?p}62 zOEvF#zag1~o?#va9IW}3OfQ8-O4860Wilzr&C?NV=^$;Jp=LNN0f(l^N}6qG0d}td zn1cZRqh4~0q`ySZGGQ=S4Ccv<<KhSnIfEYL<K<*3g+o%o6W$rxU@+jyRrfFNV>~8f z)IPcCK*i-8s`QuhaWV`2X#Z;QzBYu_l#yx*weDjynkBt?Ne*1ogO^RPD%v!>qBS^z zBqBtLnM<onm*Byqa!qu6!q-A}UoP?%Uz-GYink8?;%dzcO!vX()LWK;5mtTQFn1R) z2E<|rYa<;GiKMuG16Zo_3{%LXWz}*q<2w#~<!?zkJfAkpEm;^P1@%ti<g<BmU8h9` zAjff9=2XHjde-7EF>#5j)6}&$m=AW&Hd>(<o_2f*iF7sdrMm#lcTSEf{lZz2`juPs zT4257(uO*@;}TN#WJmQx=3>G}f=I$e7jJ+jY)(P!k-{L_S3<XR`7@9q)5X;4Ur8+p zO}TYdA)aj(XV7o9%i>Ox#qbVyrxfHTyg^H~i0pA1q8u3c1?9uo^5_srqcJV%)nPAU zdA_?<)<zo_QCKj}rlpn*AgtPCP)%t;T#4u2p3e?O^{|UT(Rrw64*FlR#rdnz2zWY1 zxXw!2Qw#pKFS`+<*Ex+%puR4xkB0zQ#>K12MdtQSxV=G5aeN9ktTT}diz>qYrz)4m z%Al<()cj&E=pbv2jP9$qHU)@M>YY9r)rP}ai#)nPU$0iVeci1IAPcopdjzaH>{;?` z4Sw>FCX1UPCzW`zwg^lM9S`qPGL_tmZnlM9*W*g<5gUtqIVZhGn1Hk#2ZMNMh*Ou< z(&Xi^haJH@WS1yO8bK^LMd;<QwDrq6mXN?0*plG}^kjh^1M*NcH#~&IQFgeTOD#4< zXn{9BqcWByb4xRsTm=chV~dy;yIV*#791xq(GS*{&?S<vnG#fF38U2QZBMtgm>H9p zSxtcL3IeEtj@Xf?^niW!ZJ@plP1U4%W*k^=BitV8d~<YdomFqWYQ>K`=ve_9q{^`R z5=3g6bl9r#)hpyYb{qtS;9uqmNeQ?ROplZzrdXKMVmTMtizr(wMiW8x9FFI7P`|%( zXD8|6JRcrHozk5*0wV1t@D?D*q?e$tR%F!hRG<rL<8qvv#5c0ZA|A(!s(Ww-QQ|2o z<B*A0#E?ANQiVwQrd+9`MEW81+-LlU4TLg%FZKkgrHj&ip11S=`5#yT@2gVtfHf)& z@zZpWvjGqe@-Xc$&(74Xl^pK2kmbd!kf&+ONr`S-5Q&(tUWN)VoqG7_c6c4`@8i)T zC8qM?nuoK6;@~Yi)4#YDv2c65V0-xVHioj)Tn|<S8NbmZp^59UhV8Z)wr}fj9OTHC z7kH{+?<hZtySw476+xSMzwjI74KpBHrz>IhszPIwnxv7f4PD`3{`%#AyF+Lyb8$vs z61LuOi3VgKg!TqxeZ%CaP@OjTj1Bw{?aCsYQu2|gXKxahL!A5iFnU?mJNVJ?u;s#u z&po~v{#*pbc!>YOpCRxq`1A89tmf1E`)dAFbf4xC9A7G-1H;~mgQzQt&{=0Z6#wwQ zP*(g4#o@4beQO?~cXy=?pdW<*NU{JFhNGV^#)YZy>B?uWl5ylPx{<N)e~IqTl7sn~ zHKe%8p0lcSqznQKwt(!35=CIeZtJ0`@E78!0J{IsHH*=pMfI&yzx4rM{K@i0>sJLF zGKT4V-o_|pu)BrExZP7@bPtJt4|vACdGlmS844t@m~4Z_anU43TOZVu?F~kXPKK1| z<X%8620U|bZp!%TF}?@mnd%F}dqoLVc-wSiTGGm|rHI`E%@_|E;JGgs1KCKFiSdgb zo$|a8v^bCoG%^A-D$kVZiD={(WCR=V|KMz#_mgpOo{m8vDCi;1Oj{eTqMN|Oy)X`A zkxDIfY#7v}|1*Izoaqw{k*`$pk>$VM5{z4jtI}+M<Vz6KD(ndel1kY~$0;rFq8gZz zFVdy*yL4(tQjf7bgOzUktnW4r4A9JZo(+ev>A-e@WMumS*?p7*Dr^f7@QaZydy6|M z@K?5{rizYHguHet1v3z)74)6~OHon<$v65fef+=Wi^<EZNLM$+VD*g`O7T?6--Z-P z>vuqV5}8|}lg}YZ;(k9KpbxLOz)4sPXE}UeO6VS-=jnU83zIXnfhon!A#$2KIM{je zWasd3=jqd(XU}w__VW@aACBoZQ|equW4jp!UFnTSjpGyfK$H+s%mjZHc$I~CX@J4{ zF6(H-{eow#3JYkXMr0z!NpKP8;4I*J0jk560Ntzw&OBj|FEO<J!F--vNtOU>3vHxq zv+X)IAb|LofLJugxc-<QiE0I%%E@9#9xpL=lyzw;;s;P4)E^)`7r7)06Ji-6JgKa( zNXKJnjxtY>*e9w=#>C>HLalU3EE6vv>;x$zJLS7YHW45~$lEYyMPXY82N6VO4kD9K zkOxR{PO%&*AlmFop5@)RZnJqlTn><oQ`K+QIn^v)YqYD^Zeu%0`oUlrq@#wue@%Gd z4$DEig!2KJW5nJOc_)J}aY#F;(#JrRSFs7G(b;Oit0Br}ti^$TZcFD1HYL(yqH8j! z!<<xe>XyB+)oGN3-*GbO50d~kZ<KKtsOJi{O<}Q;LV8))%{i3oY^@@lwV0?U!oAut zz*MXAIV$AMPLz(t=)$|ORGAts`j|{<8|90sgXu8p;$%9#KW#SgWF&6C&{x2dhgSxA zLM1j6z!POjzA=p$DoHOX-}G}h4NH8pEMw#|$<9LR=@CYKunQzZi)LO*vZv%zQkosl zuXtOrWU5G^vuV&&bJIoyqIolDsDM&3mQ(}SR6}vu-e`=hZW<lQVPhFs5|@;hIJ=K3 z{a3QscU=Ksq?3edBQr<QuXmN1n=`w&!ju;=CXV=ep1#ZSWnpD-UA-SnOUx=OXkE|K z0s2iz=ep567v?M!l!#fYWW^cUGRy=52EbTCBwmT`YK5j@5;V~KAz3tp+P7T4O@4s# zI?VFQB6|bB9Zr#gAc$vwFI}jnQJM;gNz72u^cyX|8IIV$GHG^;dW_CaC%k206;)jH zWIMbCbf2Vyg#Ey>LWP=2<cV8!P&g^YhRLZmGnL#}HiN|F?_1%m7Hg>iVPrl`3yd=y zlVbSr+Uhp#TcX<2TxK}Jf+SXgAbv5&9ZK$8WY{=#HH<J&RZMSoMQZ=!{0$9eIxn+4 z3`1IRbw?L>zAG_o5!m6Pbm>#+j4YN^uqY)Hke>w>LGe+pzJ&-<Vcp|97$6Upb7!&O z*gy-`(j%Bv%a>q~Z<i!n>g9MPGS>3DnZeX>T9vq(%PVGHUV)S2-;83<LzLfuOZ2bw z{80AB1kuWCwvtDDtEq3w(I}E>-(2cL%+dT%ql*gMgm_4ibA5ytlEf?DF~`8?niG9u zmXdA<GU>G;NAN0w7u$DaJVdc$83wa{+0){H1w=mdaLy=Fu2_aDs4EMs#ZZ9XS#`eH zGm-Q0zl!|UTl(h0U<D>G@%F;UO@iMAL+Yi)Aep6a;OO!GO)@<bey&O*yYWxJkcuz? zDg0Zp6a3UN<S~kCF%M7RVQAjq;N4Oi8XKc={UGl3i*Zt%Z%Y4d`+aya4dXfft$4kl z*Nf2Zi|}nz@*_ywuSOASh=}S%I))`EqkSw3?y2p^;9<M}SZ0F@#a2-VmC|wD@PH4* zwp8#so+KA39%DHd$WScfaSkLc7A;}>313aS%{iU(P$@7SjnVW6I&}u?5mB~-Zvgv* zDZnt<2}0&OL@R5WZqKoaTlQA(Lqp`Nn9nB(Us-ZpUmR2<75tOP2p`Ze`(>CaOW9T0 z5C-{poDO7A2vJRzQE(;k{ZUa{0XoW3uufGKl?Aev0wc%F215!&gp$y)9%B?wvR@KD zsu0^gOQ&SO1o%>YbCL7Cu%#h%>l~U?6%~RgBaNn<RYHqtI-IkP3wuUZ1yGtAzh#b6 z@J22eO0!n|FqvUsHFA@uDIM;@*L@6`w7&-o%w$9F5_O*R8O--914{~<d8~gUO4=wS z^Q_3H(j=COZyLC5(j!CBPWNF>MLTX__yhoTwu9i{U~l_j@ML%I-~hhwceZQp#=70c z6I2WAkuCc+TPYqKs7Kom`4JV`rAP4AD77yux>^MsEis&?$XuitJRhxq192En;{HyM zw8^|MBDuM*epr%9LCz|6Jyo<#0cZ-`sUro<0x&aNHl;K1p}<gZ9KSB03S~ld9TZK} zR-&X(5xn|p($B|cv}^lFPVCqpWKLJbLhWJ(+&~E=V-FaE{S@sNhz1Baeu!i8<yojZ zTZd*K`{1oe(Z(-P_(Fu#Pv&P!GU>-aFSz!|UXz{aB#)d2nP@qT&DGDJw^!3e^8POj z9*x66C>y8m((&GQQ;~<vGZ@vf*7{}62{#pw$e=r0Qk#nry|Q4J4silRvt^#+21^Q$ z!LPcRafrk1;pdorwk$hORd}<rbLz46jN}xHM0gNrqge_Jf*&*+)X;w3?05_ZJ;A+b zup^$H5dfF2X&>B%c;Dt&Gf@`1u5LE9oM<E!n0k(xnF!itjjY=JP&kl#m{Ab~D>lsF zNgcNK!#D_UgkM_FwInkklwD2u01RI!k{I{zG_c~)`ho_S^JH%ie@O>8`P4^aF%=1e zC<wdvic`G8l~t=mM?aS4#YzKqn}*Z=T51LdBT21!+GbonzH#?j-9f_P82a{IZTT## zj3{m^u?`AehHtby;bR&2sb?E<f^7ibE>HwSOP83f7V-F};adW-ejJq;c_qD8P)l5r zgUE`qHd<+mYl|9@I!y{pwnd?(-~>H4rEBe3<+!p7>r`aE9BYaF=JnA73!o)9g5^7% zAUGyboML(9BW^^(LTMR|>~C-5lG9?WycS8#52CcG$rAS|m^B;vL-Kf=Z^W>9c|A9v zD<)0`AjD^E8Z!#uy)oJwE~gl-iv(4M3=%9J6YyVUbEvPw;!=1n3S5uD$uO`OFc54X z{Tu{3?{u;YA6D!XBP{iFY;PtGkw#etma7?8@a+3gcZ2rF_RsoMo>o*(`p(h6&O2$D z{|UR{gt*ap>Bzr?4v-Wj9>bR5`HPN;hLy7N*AgpS_aQcL{s?C+zk^jpZF)@?gyIyY zb8rerFQCl@n#$xA5LUZp{r|voYHd#{*FEYE&Q)%*L$L)B^)34g;;;d29Wd3!-Vrnd zt;U&WXBcGY7}|KA&qbC)>7&ouuj;+VaB7!;V$6Pk>?`|4CR1VUb}4h5a=l&TvKO%I zg#CoD>ldD191`=-$3Gl#=;&aPoau;$^W>5qP-7gLf)pqkE;?ic1qOXUrGwDclN#4= zv=#J0B9O5zWzUphlia9KVZ<APX)vZ#M&bw~0&U10ML`oi6g!HVFZ|_&lhW?+S`Nvr zJ~okoLm}LcrN$>_O}92V)`kvAAa&l3x81FYBu9(aZg#?@;}W%K5_uUh2DeSz%q3*g zf~>OR%Cd###yp>tLht}R-sUJz`*i%W&t%_rbnQ%F-Iv0;7ofowmp5v*=|097O_QSp zp$5_<H^(I<+9FC=?lR#+D}u+_0~qGgR?`G4>_loEd*)~*8_Ii5)LaI;{rvzWz+teP z?IV$PA7uN%?gMx_#SLW4lrzJGk?%T%b&0}$7>8LYo*U*4fWzcqoEM~}LNzL`r{m<T zh@h@>E<lL}k7^EgU??aHaKaA;hr6iw=0Ks%0b$v?Dd=<)tt~3IiAE&}Y$qDyZOM*h zoDY5=aS-|;ZYC@2KMD#Dyx0kJT<vr^H0!JH)`g8($c-ywIFXo_YN~t`_9St8#L_}# z8n<ZyHVeY@Q0q116g3D3w7?K!$1D-*?qTPO?xO9qxnn*7;HO^g4Q>+#;EJ1~?hd-~ zb+MIMK8qSoQ;p_M=>@ddXv%$CQOO-7qv@tw)QG()Z`6!O*50Tp$(?UGJ<~q+J3-|h zx10`hZS>YCRAN%9E)@9()1iH%30uxoj}*v$C=8<UA}7z9w#c}td|ODkI??4=8m_Wk zTJTEZPLX#@I$ZC@o4i+2iq9d;fSGag#t1x&MvnIcN@7XZ55j-O8#~QoTA2)og&kPT z=DhlT1Rzg&vhYITXxMC0>B&9UPhl1ncI}kzxmVYPa=NB+**#B1h-W9}o@C!oIB+$J zESY&}MC@4YI)~T0#|KaLZ*>AExw|A+YUe<1;cUh#Y7{k&F0jW*ANJ<Ex&FvkxFzsS zdN#FY1-svv7X{;=i{YrV{cwCy41fNazg_(Nb7y;dyR?lkM<>8FLjD#?><AU4*T<${ z-tB&kuec$2*>T=>_%*Z+FSj3-ZV{*>`C1&E__=+BDFUQ04CuF-Z;JOuAx#GQEy@Xw zUyflW01!_WTB8k)+c?cA*7!h}V;1cHm=`jgt(8WC_<$gQ)h)Iqq}Ryw(VOKhEslV$ z1;j72tSTbQKZE5EsPgd3E&Yr)6kfb<#nOALf0^ZtLb?vOAnQ0Ss3IZJN9Zw!uh}z* z=4~MEs$;y??w+>pxBqMNr|+WXKZ8)FLEaAPM;ZBFw}UKDHt=Uw<U$*)zy#1ITi<ox z|Mj%H)%qrBjSgDRPdCGQu*+#SIG;z-GPFJBm<RL5$=3TuGwyszZf>&4SA#{lNoeh> zySCHq?3~75Gi;Wo1zd}IH-Xz%{Y0X2!xX0ViT5XzSDKVeq(9z+o}4x$kvkZwUZH*& z;xVTE<I5L^ubw_bRFIdE?pehdGO;ssLt%>+kMS0(&(kNs3NKP=Mk_7N!ft3~!VZ68 zYQ51e{ZTkg&wzVTL2lYm*#rh=H)gBS!N7uqDeOWcttxpv&#|&L#F$sBRD~K<oa?9_ zuWi%{1Di#9YwsLB;y%ge^Zc@qw|A&_<}=S6i9HJ%-P48zQRq==i?t65glC9T_%y^I zIj#L5+@ieKUw-xVH=(C!()vXgP5J`>eRiJxd@-I(^VvV<#bWvH^8M8>6;=PMhn4HA z{#Q?Cly&o$&{+x-B~0mPKt^%U*FsriX{kfh$O?JVOEAd+!_`?3@mz*lH<`=89|~4! zW(%uj1dOfICfrZ8(4nBHhV-kcu*ex2SdeU#DAP356A%LnBAIRD@cN{6i|PmXa(dhJ zfjdv%SA#sfZk)Vt+y)WUf4|*<1O4TBhWj{Mp)|f|7@|efOx1%mw%%`S+^Sr+sNN<w zUA9&MWYG*w*t#vUem2e)R|<xOV?J2GR#l7TmcVlB(JCwra`Pl7h0c|<y-E7{I|_Hn z3L5g6PJ$tk6@%=yerZ4h>0;0}$$2GwoK)5n1&V8>S-!k#&;<m7IB5MHmQL@#98hYx z_vFOWC#Ts?Fq8L;#_jmbiLXN0xug%Y;OB#;VX;MPikLCV>M?(VEo-wQRi*ZAqKrAM zE&v5)c(EjGbMYI(wpptku%g*UhNsNmDlgnrbC&fi26s4E9OmO_T6KzG?|b3-FK&M< z$A4BG&C`D@v$^3INI6c0hmmml6*2X!GX<%}oR%q?e>%@bSBM!beah`K#c)c6V~h<T zBYKCWnrMsY-ZJ{bCMcMp<%7k^hE?>xdqcdVo!Szn!c0<9Sk<94kC{9%W5*iAL`P9l zbd^XclFq8gio&8xUCBKos-l99VT&LvWC%xr3Wag&(KQ^Zrv+X}@NC(&&mhj*{oAN{ zTc^fy!-ZCzR$-KcpA*KA)ebiVBhfZkFCQEPFAvJ1lSxk)o%8lIv2K%uq17~TBa`ZH zT6mz~pSH{9!|g|K?sybn`|z*w*@WkKAb~&7AboR>CNe9ObpYv#F+bJw0p0!o7jxq} zCb#Z%u%bY4JXolTs|PddGS9>7&Vt1WabmSo3fGO;1~OTtw02>#XPZvq?H-6F6f?`O zP07Z~{8Db|e<3Y9C2m^IgQr=6hh>;%4MpEIi#u+9D0i6@rL@c_rq|M_z7yWi6b!!k z8T!3O>9As|iQ_`6qh^=Npp5Zr<KTW`gnX!TmbK<uA9ed2COn~7x(ktm47FIw37%XO z%x#ctz}hc(Ur&ZZdD!Jf5fhqJth|r)4g82r<8^8=z9&)*qur^7ChtB9jufTu2Sn=X zq+lljkg$4Au5anRU72<o%Etko>y$9ViL+S`r=wMgX+){7ku2KTl_Png`5nM<7hfRk zHHCk0LNRJpvMY47yRPNIR=O_HKRdFD)y*~fSq9ghFQ><8u_z)dYdU_mwt`M4*xnA3 zBzXQj*h+$}VbDqJLQu<lIZyYQo~XCADZr_ciKXtTg4e9Ucybk70NsYL^7#hxJh#%m zXoPDtYPA?Hvc)*{W9W%;qs#_saGq**aA~oFp<)NHI)^F7)0mTYP_dj$pcq9NBL8j@ zg|G7YMb*%hHFhh<7BzaEui^kVz|L3jWBc)A_=Zm(!jCU4zPyU=-Np}p!)xvTdGYf5 zr>}m%ug_n-AzNbn^XFG@-afM(x<3z9y2Pqq6m(`3%=gtOcx5r);0J{Jy@dOg;Xb)y z9rs&+3swFGaLZvFC`EGlwnREHBZtH3G?k2+ukqjkNx_N$_R#=qQA`$?r)TMc(l{}< zZ^&3JKty}!-A}2W2+Y%Hs(3G}4-F<Fg#aceSYic{kp*Rk1Oa9VK3LAsfK#~`spX}; z;zi`qrn2Jx&;I}#M^95s>xietrdMR*d@{_rRr(mVtH2i9fd+u|9wqN`npQ{G>aM59 za(LUs@ir94r2KNaHs+Lu^5Zb)OqO@W+{W@&%}wExgqOhb0vI-#ICwu98}h;nnI+|1 zi401+MHkBQY6$f#bj_cf*|%W4mnZas(u^7I0A}1)Zr*RV4$#Cj<6?%ePru>C|D;#A z8K`amXh4_0D8~^zvSFXR_nI!?wmC`R5r#Pukywl!A*O$Di`@)+tsUb&HZrJZfcQUg zy)^8P|JRfn#l3>-)@I4G#@2%LhOsgY*uq^>W-|6s2>;UWlk(~(!yv;hNa#_`PMSL0 zJqcIik5S0IptbJyK^RNFp)Os2pO!VS;yPocLVs_s@qn!JG*bJae;Bob`v}UtIq0K0 z1Z^sW_GF+HF}f(}2V{mn4caqo|G4v*l{N1MV!z&qx>(x0VAW`@m<_+D`9NA;CZvpQ z)H?!FJ}_vBI{*DpiF%s!;#&zZz8BmKmE}9}3hgDi6UJcxh?5A2Q-a-Tn#T3l?!96k zbwr|W8C&_aOqJ>IBb$EUZCiGBLCuSIHd?-SV#5}-V^vnG3vFAX8YS0Vw-8#p2)n$O zwAtcb=0AYPboNU#a=GE19xCgNGd43nkRFT-5GVr};Xu!X1_f_*rsDf*D=uMz-Pm0W z_i;I5qU}5o=H9y?0ngLXUU<G(%yu3;P`h;dGP}sQec&vUa9_RIeUR)2_!cCCvvl_X zfHe*Z8y3Zt!J#iOQ=yFaD~K%uM{TzjOX!nsBZ(7XO<|30cwn;1aW=h>X5xvq3Zt4$ zx?#TPA!%qK(o^5z5HZA}WT_w_+BOPg^z0~aH_YJ_dgI-LeVQN9IJ-!L5Xl~5@T$vc zfTkc#(l~IU8BQ)h*|rPYSl@1jEglfBw(1WE%`NnFq^H<O<;hBqNozk?G5&rnj~3Db zDc%^#r{(hd>*rg2e_eO+QT%2x5L})X;R8c-b(fH7Gk<h#&a?^(XAd=`k3SOw*RYCD z8PUNizJDKQ3htP7grQWl&_$7R*S*WYGBVo_F$!gfT*#c{3{q*>jd8gZ7lKY7Z`)`B z4bLsCZ`m;(&=_5jx41CES|n#i3yHi|85(x_BDOGUr6>dYh-Qimy}=QT@n(Ur78jNb z6Rnn>?h7<`pT79NeXZ}uXxU{X1r|k$X<kSlsL)`uVdW}Rw1c<oYNVoRiv4I5j574} zH<z+o8Bo;MwHGYuYdxS=`GI_%olW<`IU3oAP19dodauLO9%qAW!5M1AK;6H8tFqX~ zd{crMrmW7W3)LieeYH3@!zj}^0*!!&0lSV!eD2@B4(VVG8}=cb1oKHcN7q9_6P_`i zx3?Nc6|4}OY_VAyv1QfED2T#o(b-|R089aH#`J1?hr!2^4Dtwpabw&85+kT~L9}Nc zW$z7JXpY{J$`CTBjBE!w{wsqP17=v-p(E(D;DlfD)NQi?YZG`eV&^&;wqZn*kotHV zM1*C|7tk2^-$1x2V?iC!<Rn+STRm@&b8#W3U9U6=()U1Y5sFoUHXPy-xt4THTW1Bd z4_^MQ_kRaRKR&w^E@i8O9iA^H=$=$k`|S?1cl-9Ew=k?ESCmTzi>q0>7oN?tVYuH3 z9tB%LC)nD3PzGX^PG;v&JboB#!+)K)Q&nM~RA%S6E#_3&ThQ}Nk0^euPD0@r{_~0y z@H}kV7dy0-u=yhO0Ct^ocFIc#BV!zCdhl9didc>I@DVv!y(^#F?7hMus;Sb&2U5mS z0F|hN*xdx8XH98gWXm=L;XF--><O*_+9D244ZpReQQy4Kx2e5h?Cgn5dQ0njdbNs% zzHlgpccUaFK<ZJ&^~qVWV61>dNIOkl)ySPljBhoCCCGINtZSR}EemsMshN}2c&Hxf zHRgyLXbTP!i2)M_0o8~2Smji8G#sjokYd`HXt0o82=Z+=x`^Mg5*fZw3^IIkTGmFF zqWh1;=75LCI8mp338L)hE(=Qy%HmG(ohUJdOwG*pAaXThs4)q=99v4G_QhUMF}K*f zjPU77NT*m{RlXCN8a0eHPh63i4TqkWR&MwU&fE2RclQ%1nwJocHM&krDO8(Rb$w5G zZbp_k%pT~poldDSwSVq48YPMNEn1jR<X_x83t?I%w^%Lz-Lj~p#t^S+iP3Osm=;~g zh`E=IM%e&eCi)^GoZ8*VT+9-na5}M!^($<ogvI(hsVaWAt@Kah#kcU|PiKp7<+e(Y zew}^QD7tbt<f&5L1pjc`;kx@3clh7il+6QZb|M2pHTu0m95>M1O&t}ok@15JAjM(F zVph&+{Qk9uyb~ynbZeyi{LlZ$X9q=*qlZ9G2DGNVPCRcPJ$rs^aXR_p&5Q5<eC*+Y z*%S^nFNHl&MCKXK$jdpO9Z~k-F`V=FbXb6>0q2Uj{jAw&R>s`04ELn*H*iE?6O#!h zb8&J|&`tGn29K3imJXlnU(X@RIsWG$9g-)>c?Kn5id?l(zb;F&DRZ!-a31okD`J?F z?|2K3O>_>#e6jf;qj-94k)>W47Mcl_VQ3OO!U?rbu8^|==+lk4jNvvEQPzzxzkqpu zh7RB)N+QEo=Y2GQnNoy9y4DnlFH+r(?sgGGMXIud0(NkMY+6z4VNlZ@>6B|^07+*W z9w(TV{#OXlh}Q@EPqCCrEMX+c17J*<Hf1bzt#dfu=WC7v%FzIY!NepToF~()n2?Kb zj#dO@kr}|wI!Ei|D>PjYL|Zp_pq#bv)$n7Rr{sb>T}UVENsjVJQe*>_FIy^rr*OKK z0}D`i@}uLN%)=ox4d|qZby7^a?HQJUBIP*w`wX1KwEva?5LDdejf4uaQk2hlAx@W* z<8(fO#%Z=5!Q7=KEixoCzi!6t&!;&Zc0xvfr<ei0%mjx1n|kuC$y#wrsHv~BooM5) zek$+c*+4Ckt}7N8WQL*(h|9y+Kr9g?!2Vz6_Vu{H%>;#IG(!*;@p5z@l6`Ao5WsAf z2AQJ}Vq^4}TR`&5fs9aOHCu!(c4F8FkXbxz8nErLkS&O02&j-bPwA?~q%M@QRAUtI zA{P;83?>vC`P$X6wJiU9{%9w<!)uGt--;+g=C*L#HqbYwj+!84eXhhwXm!n|ZJsT2 z+E~Oi=2_$nq}>)xfk{e(Blvbc$rfk>qE;ksL-z7kPMqX;iyYl#pGK5UYx6REPUiI> zd2d(=v&k?kh4Bp$<wmh;)awF|YiT3SInWkZ8n7i9bwjFn=NV;bbTXN1+s%?q3x;G$ zhtj%JR{>DMoTF3)HW*-$aHg3XBBF7=M(m_?XG;qbj~fZzi73{!e@2ZKdbQ&EH>PUS zsT8r1d*goa07Z>$T^uKIRq4&3wMOYvuQ;rGSYvzmc=O@?FP*mGS<`*k+HSQv9s3yo z19rB=z{!&tM**&sPn~wU-N$jz*o69BV4RKn@a4<XQ_KFZghp3adU&cUnRQ$&p$ZMo zHkQXP{Ik<JEqNJpA`B;HHyZ2;??ts2-(YOd896{=olRbEq5`M+Mpp5Zgis>{B=5bZ zlrMHdO5GPbo8S!nA|eTBGl($LN!)C9cODte)5!0IwGxQz^b;j^xe<+M4qOGhu!*p^ zey=DMGuEFhzqc2-+5O<1-rgu76EXOy*v`q*X1h|!LOKmf92bSWZ_-Y+r#DThQ&BtT zT+1l-4jMWtA_mZrkhaOb!|oXJZ#TJ(vYU`JY+8hH_QAb9YXN$cW0G*bgb!vgkmn*r z=##5R&92QrQc-!k8t)9pS3#^&+CYl#sZj8ZgEfArz;iO^d<eSeFE5_0i@B~*?gV$F zGJW_8tTxw0MVG53qPqa@LYR)(&rLNkZE|_csLW5f3v0qIcgr8`v$QakfFsu;A2Op3 zY(RX%45IBO2iZasQT+X|X)Z^iVD-wOeesS<X9G>4_1*T-8<{dND>yz4T_AeryW_wq z&mGcM%@>pvKVqitX`?o=IM<#JT)r*h`bg$u%uBTx6l40mtY;6hE7r5_!lzx&cR{8a zhflkvRXgUoGqL=LHC+q)H(k@^%s(rd5vRqp@+6ooEG=n<8X~8S%E(Yq)XM5BDTGN> zBD<Qsy@TN9W08i4Ct+!U5P`}9mX1?oD3kqutraECVWMpP4-yD^lhCn6T(Vd-FjlTq zLk#EnY$kIHjg}Y?5}F>TXip)15^M`|!yZ;d_GpCBcRSsm!jtLA{N&{H27ZNM6aP6m zp*QbOZ{C|RQku=?{YG=M5jIL;U99j5!+eQ{II@={sjN6#flAn*1{(${jm9ce!sce! z2<uT1;T$w7|M*-axv5;?pR|t_{;V|-eZ(6Dm+%;VARnfs?)HwN#*!?kJqGPYYoflB zY$R05bk-tLBq<ICxEDsDFbRh5P0HC!o>P>oH4bz<wmo0VcZe*&P19Mx4({QxWMp7Q zCgBLsqym6qAe}IUvZGn6c@;4aTdEly6NBB`47^PJ2{d@y{MOd4dsURGB@vvlrOYwc zZK-+ZmV|R#Ni{^41teDqLr#n6Mw>XehN4N2vIi!<qbp*M#i=<&8oD`CwCahRi%sZ4 z-a)N;HWWclM22kYp0pB-OA2rU2s`;EGvcUd>8QiN8ku<{$bP!GOw*}>Hv_a%TB}I2 zj^+4|!kq5#TGQ*+N`oOTF-+AX*{-3^P(+whmqtWOymWGBi;NY)Nqdn(Fe4Uhql$=% zx&n|F08(<w=6JC*6ty^qOi)A_&0U&e{8nM`Ie`JqSU0G<#9S<y(vJ6PuB~Iu1WQIh z9~p5G#{0;g8*INv5`HNS94mO4(nFypqu97;(iey+tTp6v7-}<(V}x*Vrz|2>&{+iY zO8~j&3yv_4gbYUG90q|Iv~>@k4#qtbkYv&NnGq3-^9I9?V_rs+KGSwf+ialUr}j;Q zpJr$cnVhJk8g-Kq0Ton;F9*|2Zr1>N^!ngU{09Dz?ZGUPD&sf^qo!@shnq?dudOjU zhu%XP*XZ(l+pzYD$eL(3!Qk!UYMdVOTx;53drHT=7dQw<A^r`UmEN$TLs3YsiJl{i zEQb9w2gS|}4<rMzxqI5g%)e&^IXe(hssSo$NIQY1uS+79X=L}`r{68|<$RF#Xy^7= z#bgvLx|a`!sL&4HH-l>rax%a0`+M84o7nGf%f-u00Qq~1ymt<=53PW6{OfNE-6iQY zCfRCiHG)6=iHl?2t;RPEe=QSBigiE@v^cdkED;xL!kpEetH5=(HeHAZ2+;?yk~9|K zk+I-NqJ(0MsT~MekDK4-BfJ-p{}$|y_sFEOSv1*%Ft`_y*Erc_2<Pi6jXRHhfP*h< zce@Svg^TaK6*^y!p<5g&gXM`t-UMGlQrZ)qZFAGt)^|=U2?HW*4N5X{*FxiSV|7wk zC*FxYDZfXyl7}K*8&1X4mQjMStZ+LP09mh%kT{1g!N7+i;Pu{~PgRAOXo+aGT1NH> zc$nM`v`*un2B^(?t%Ceeghx0<zL3aoGP;|#4a3uC&kue)I_~}D&o7Rj^$!1h@aAnS z<3U!kL;b0bN!;dunN1(08eNb<3J#IX2ZhZK@6zY$NJS?;-`KAR>mWb>l+iWiyxr7~ zRKWH-&!a!o%<&NNUy&&5D&$IxR)<lN%0S6_S(KKfw9i`P)MuoHEnkwZGxw!3O=v)s znSmY{Gl7W#?uM$~DC8`6a5;ump&stirrS(SJ5W@o@DgWbx>(heYry_2HzQHow&)fL zL^f4KfixXH8RvtGsE>c&F5uXPW5rh%T;eTeER#QKleG90Del>p!Em@VYO{!K=Ritt z!LE<`j7lZZJ8>aGf+@poA&!!iTW{1>>Y%MX&=_;zTuOo~O4AwF*{;zSdX_3<9u-WI ziOS7sm4&9Hw1N|UoESC;1GKYa=p>mYXQ@RbN*HIi9jSw^!VrTLzAy*0l#qmUxk8yI z%;s#U;s{@yli#xR-ZU_8I^98{=J`0Kpk$<a&o~b<S!(f+$tADpl3wK;lh<yYR4L0j zS_iSw-?tQm7ihvB$P`nSK;|PhPa^X}JtZ6xxmktf)Hq<DTN6E@>p&NJRB?0agu`ol z!qi5jr0{IcSqPWdLG+6)<{en3ER;2OYs-A}Jv=(twyM~_9_n9D?8crviITV<59}77 zJh7VOf(MZ+efIlFr}SjI^u%cWP=9@DBLYi)61|VFN;jR9+~e%5aH%3b+WQedL`?Je zZLXocplc=vEfy1JgK+d0Y>#Ef*3k+K({dgTH&5YYj~jb9M34SW6N0)BL=CTTNDu5& zx~|crodfm2^zTmSv?bLPHZ#Wl#J;7cFdQkxiAH(TfM}6mF0)QJJE#OlKGzbS)mx{V zb}t!hQ*^LdYHxQph!pr6lZ-b;^j4!Dj6ZC_6PBxd*z6%TqFHD3u`xxP8xxe(vPG9k zK3tBKrbx?g2+%4>_Lax;6lrKwvVw6U4`_O-v}b&}t~61D<1S3JhGkoa(do?J-A07R z;a~7ivvF#d-Eqox8wVZATxTWN-r9n5G(G%YJv`XvXY_^seFzUM@Cd^A>BIHO6ECs} zCCtM=gEi3xUM29RMiBA=8P7!$0M)_*$gdb><WuS!q3`zK&}yjhbY+K-fqA?19{*ge z*BjLd<aoLlzm&RyY)_zl>ShK)jyX6_2N$o?bk6&GImjPs4p6m434xnCLew*qe9QS^ zjtiWERL3T}Llp<V{bJALH{Dj}w5*>HMfX>f#E;?R_#76-*zt7CK;St`#!~I?>O<>1 zInm{K2Gj@ugZY(K{3=qtUG}RewH75-b<cR)PG%r$4<lK1o#Rq<uZm^As!u;ov(Ga4 z&~Rk#t8{MT8oMqTte4Jg*)Am)U(wlVuoPXgEHVtzV*V~gh?hqegSIlv=sY=`t2#Vc zV8kk!ZC7Ooeev??vzO?z6^X<*u$NS1_Oa)Yab?|LAo9B7^|NPh0w<MD365U61{?|D zM~PG&1UdRf{U2Z2m}K%iXJ+x32m=$D$wY4BFON$4hmC)lR!HTuQmKNV=4N2%J(wO+ zM)Cr&ks#TDN#H+A-=zy5iHJa;Tv*<Wi0nalMI)!5eYR#~^%&V_L5}^)vgg<R3`HD~ z0A(I_Pqy9<wp#Fa_$B`N8o!S4>xjROPH~xFnrUCvq=SX}Bdq!r7XRv$c}Oz7dL;s> z!Pi3_4bF1jtqM4~V_1eXFto!WIcrd|AoLr31|rqs>W5?&a7y9mmuwb=XK;ps<vp1N z(|*CB(Su}`7om(C7dQ5I{}hBL4T8jnOvHr2shmcQKSkfY-c9M@egkOUxDh!o?8e&{ z=@l;VU^8rfYg)31<13|cWiUt*BTa&CG%`aqnL$$LhWn1F6_ns+GPn(#V6%B3av~V_ z+oiBlb_dSVMT8!H_`Au8y|P84z&t=?fO?ivG?^lm7vKSVeJ<zN@EoszTNL5E0mt@t z>HJEdNNK>y=M0La<1vjn7MujhyCfT<CkzaLdEMu+oO*C_pR9-OpWfiNFCLK95RS+F z2d16YAz*biRyZQ9LkZRJ#)D(^gZn|d-45<QxFtI>B!+HYHoN;ptJOUzPTrp0|E|^A zHwTs|zq%QOKn+24ZV5B~z8c}$H5zI|Z_4S`bZc0NG!9UWCQyI;7P&wf<p&SQ*6L(> z)BWjWdWvMyU>-bJhcXWc;RqwO!&WO=Z8G+Q+3aJ6>Lze7H^**svwrkMm_vc)(X};c zv_XZ_!Yw2IGt4#zbEhxR*juzpq<lsI-F_>;%t+hk0FqtbXj{~ln!z<^<VFqI$#fwp z(is{n8ANvi;a4U;Ys8H;b^ThGKoG;=ghCmvcTFHa>Y5>pLvigOwkpoVjf(v=nP3Ma zhgl{spogL0$;n%p9*G=x_Z<C(fvm^Q4wIvqWQ(Ou&0ZLaOld~5R!cNWj^XO-c`AH0 zO?52{QwJyB1S4Q7@>5ig0-xK-Nt}F7j2#>O9J5KkdG|0}JLWY3>M7Vg)a>3$6WI;m zz-VmCF+w>xj;WPx3ELzJR@TB`Wg?yl+33P6*lsR4i7N~mI(17w)=WgwR8bLN)TpM5 zU|CT=XMlv6*vp{(7W-LyO~E)2AtfT620t$+vzCeyD0ayqR?cS=L;NIf;dGu+K;%gg zL}+bH?v2H+__BW+14*%G#V-Ek-^CzfWer74CKdQDJnL}@t%4S~!<fu-QfHGZy;Af* zE9(2c4tqCE7Z~>dvwUDjQ$p;AgTviPGU$nijK_=D?;h=Dvv-e5kH5snU+Tvirx$Nu zef{ND2Z{}0HUJ7mj=#}LDBWitVt%#ACaLun9~fvJUH|ywi>JHGWj3^)(sXO-sf^QY z*Ea`cEi3qf9vfn_>}r0Tzu@68f&*HwpQCA6)yt;|M(3%1hy8Ni)77GmN@=~bg5TS( zoapj(nQANS&T70-Hz;x$niWy*BUDUKm00Hu6jAr!z(3D{-JroGn#kC29A!S>UV5@w zdh)Q{dDMCQjs5V;_SSZ~{m=oQwmObZ-pwge>ig&ub)GB?fA_sLQt{OG7)_42m&J-c zJ%4^zg3o!m)wVASxvf8NI^25r;L#o1pJeZ~$9gRiRI(D4J7d;ajchi-43PoywVEE_ z>&jF(^b)zFd2!$eQP+1H1wvmWH*MjUmi<k>^YxC}FDdmu1xK;wVi$hdKIiu9mivCQ zzItgLcEuB`RB2&$>B;8yL#vpxRJ-)s$)ENCOs3R>_DT}8R}rE88<WAyd2B4VAKN*O zOcn$$A3G2|3)ot%-L1A=#a^e~)>iu~7iJ}EFoPU)?9P8&n-2HrcFIWEYxZvIwTmnx zYOGVK(KO9X`Kv1|nK^heWhbq~Y*Xx#vAVFnl9`7x=m-U-66e)SIyd+lCNa!xme$G# zG%O~c(XO%TjFz2@b}F46AKk>;ayAW@QW`_!j74V)!l&S?0FJXF+muY95c%#5tXAaO zW8`p+RU&Amrqh|}Y7oRmlVLi@CdqgW6z!NXT1(OBZnjRpI~i_T{*6}0KMgr$%N)#F zoYYk^Wo)qqd%5QEp2Y5n=W@cDoTO@cfV$c{)-%W<TMu<V<)dWm9RH1;4m0-2!c@*v z&k*qxSF1#cXmEz}+CWme%Lfa*^-}VSC08MJ6s2z5AvZ1;)R#u9Vctohv4*Jc>py8W zhzARpEe~a^0+vpzAs@C>D~-5fK9s0s)5;bn9fB3hiJ}i}>gCCP(mom9Z&(^twfWaf z_vbcut6Z9dEOECSg$v<(gePs^;EM$+)CnGJqi*`_RQ|Xj+^t8=@0t~T5qTQQ+KbQD zNqaawEw3QMMxc~|N~>g`fY${qp$_vw5lpiI%))V=Unp-r<>(bDirxg`AA3dEdPmh^ z6bYr8NVlwKBD+`4;rT3|(qt7o7WrBkJWF9xo_*hyhtM3s(OqZa+G4Dc|BklP3NtjH zFP*W?s#?anhu&ucykbHRECX&Nmoz~`3<>r~-0LED+)^r2X#|Ij#-eP~#o17Q8N`jY zA9uG}k56y5;h#sR=v01s)A^46z3#-@x6SCJy}D5I`r)nFSJb#k#hmJ``7nqMuR(st z{{dqILAY)FciU9cp-1|;8D>l|W`uTqhvpwyEgM3GY`BN<#d@Zq59hf7c{7L_JGj~D zXU+RxnKKIj1gI`_`_v=n%@S<2Q><zv+KRtqqr06Q%Q|npil*>EUZiW{h`j$0m!Y#& z!X6NH*t3<xvr}9R_du@kXp0On(E@h<U^n<$HYs)*hb+*^5qzkp=6p1|!TX@E8xAme zc@ud?_r{CBjgJ!coHZJ)e4!`vmwGaz_ioIdys_TzasO^wtI$wQSIp<_+o-$KZk;xr zhu`g-bnHjXYkTJZaBx_{(s&lUf4^h=KZsNe)AQtAilOa@bF>?Vi@IKi|Bc4k*?_$Q z_z@X2nF``)G+FG0_x{$pH)-7)hNcyfVn+D!<W8EcKI@=rT}GGC=N+kVZ{rv9h)He( zMbI+TJRm?#(9oUY<}QSrH|G^6_XG(F8kyl2D^!B&)~%%l^Qf$eHULWohAc;wG%gFo zHCsh(cO&!MS()^AorOgBZw1XXaSc1)eDe()m|G7!mKSkZ{e_>dMdt|X#&BwngNGe? z!Y&On&5w7B-e_93bi<FGpICl`VMS>$A{66e9Kj~z;5yZD#$oNigq!!fJLGH##xdn1 zerF}-7U*z4?y?vNXKO(m-~02<y&rb&y=~tceU8OJQ?`DA;Fn)xkyu?_Z^10qS}xSI zcgZY1V8PHBRV<oC?UFg(ez^1a8~A@49^HBUP`l<Dii7Qkaq##X{tsSkZEgMf>*}{# zQ05Su!s&Ofcdyc9zJD@=y{-v+U<)6?I4;iN*~w5n8YWl#01kE5nLu9SB4oXH8xK(s zy@F3`GHDHmhUDo^yK1~#q->13$H6H+IM0`JezHU5v*~h?ieAtY&Xq<_B08;NUz*?H ztHm$-f4{*)55C;_jw)4l6Or|Hm6xm8-Q)A~oylYe1i~Wv`^{!+YikE4-fa`D&|p-@ zq+=qqU^pk)c$}$Ulr0AU{z7qFh1mKnrN^8ttN`SP*Nx+bFf3{Wjax-w)B#sWL0{iS zE%P@}8BQ41qt3P^{h&@*^%{R*Pv47A%kxKm%)<s6u=VItdq!tFZF6a=du{^50MmF; zyE#}_<zjV|6DnB?-BJLP*&=3(W^+YK#5kJgli)J#Q?gfn&K{I&Fx(Bsh-+a!QUPv? ze1FV|X&t`utLCbu7Kia-=uJ^`{M2<bAd{h<z;R)umSG4boj^G}xH&*74+{oR9NGzJ z@#EVvGzQkLK`CfC@d^;VwI4J}#M2?S6ge6db3!I_DxJx!soRFtJ1uYvmq>7$s4cAm zU2P0kV}G{kCMx$?%9S^Ys*mY>N2Z(7Vs33aH-zG|o%yWRZh>vQV`z0gpP8GXDKiah z(2Cq(JNjZopY3}~+>Bu=QdUhJ4*=117>y8;1b<SQI5`KWfq`wua~B-QOzw_27<oVi z4*&Td*(m7s&~mQV!ze3ZuQy4uX|EUVC<SpkP6rFZ5P!l%Pw-JusM*aW<me$2RHeP; zv4nQ(;gDMDQ{|S5DxThd>1u;~yqrua?mAcVIGx5p*ru?Ev@+RS-(_RwBxt&zg}tW? z%4Ig73pK52jZcfvf`k#-1d<p~j3OMEEvP=xbXHyZq<vDLsY?}oQiaSeF@KUhlDB%e zBfkCLBZ;UnNyOTo4vFV!3K+zp`yM$<Hf`L@2Bm6#2>W&*4Om2A1@s6;hDmW2C;fCd zq*#Fy6%heLQVUk#Agyg-tes&4vl*a_&UkWQ0+iB*`GS(rsB{^+4);5_&s+c7zrAh$ z^>2Uw``_%V`hi#gA~`55&+zTDqi2W5AxnYq9#HP1%NeXvxtufvE-V|N2IAo0$)Vkf z41p-HCu>-S&$=`+sTH6^GH0U+?#IDF{Nzb|cqqDaRkVl8Wb9Z&$Z!ihPGuNz@FWf# z5OHvfrMGQR*_6W%*jRz=ETS)rK!Vog|5^jzg$ok_P+YK8FVdg_CgbeK${=KY_28$U zenNEKd(nY8rUQhnGRCwfq-6+WoA=nJJSDrGl8KIEjAP<-XJe$*R+Ya&FV-`DtVYZ< zD>C7hjPyRzKyQU{o{iw0jCvUB{|``00|XQR000O8MT4A7nOIF)NF4wGl63$88~^|S zaBF8@a%FRGb#h~6b1z?ZWo~3|axZgfcrI{xtv&s7+qROw>#x8m(=qj)%1fNIbCan% zRcxivJ%63#H0|YiI1~w4tSOQuNZWdE?tj1C1wewIlI3_Z5drKj7K_DV@xkSAIQ*Oi zVUPt}uvMJ0#}uBUJLbhcXW81#Sei$I#Sy#SW^4F4W^UxOx5MFZFnGmI<7Ar#ck7H< z-iRH)e)IZ!`0oeyfk%J3n*gwQ##0eTgI553&C^XFL;z$0!PY$G%PqT0-6-S!n5|OI zS-fK2+D-5Hm}N0kwPgw6vv`@gL4>Tiz+AEgasZpHfslw-*`u3s;>;By_5v3uGC%h6 z4UaN6!x~pX2yL{oHD|+x!WfRI8lSr%&;xd{R2Q<x09u@b1h~l3z(Xoy0P@1zM?Q3M z7;FMn2cnZW1ds#5xqx;cw_~=6{a}T^oEn$p%P<h@G4lf?zRWYo6qxDp2(h3o{|Wse zc!;b44eTLmamgV;VLb^7HdCS!nDe-fH`Uez$kQrMBdC@WmLG%YsMbHZmthVftl}_? zAEgdNet_)~@2UH4pwwN)51g7LyFH3C;8^m3eUX%1tct|i4MVo%N^(#&$l0y5Dn%Yd z26_;<Axq+vDy_HHmP~w_vc=WMn=h03l+70GdVclW>}-0*hLZ)Phhz3-cJt}#^9=)t z`Q-BE4|esDO)mdn|Cn8#joI|~>-luCU{`Y>HoLe!pG_fmc6oaK`D}LiEBgSLmsdCJ ze0DLr0kSt&RHY&|n=X*t#dLo936hf!v-8=_A7dc(advZwbU$9r*@RtB<~Os`&*zgl zyZ$`CzFJIyg)<<0IlKHghkB+L)5{wh>V-Tu{S6Xq@o92?j+Ftm$!BQ89JyqtSJ!{c zXTN^BVV|zf&!&+1VG7($KAcZwWze+K^U3UD%+4kklV7KVbp>>=g$O8lWM4i_F%#>Y zz`xU*+0`XB=Je|FW)8_Qv~_+{Ab*)Hreijl&lV__kMpYwY$gg8aIT09U|voo9Ta-C zZvX_-pBK}DBs-f<&Vkwjk!3?QxIGxGQczjPS>;)ta>rr81~maRPQ)P$4@ag41C_tZ zBQJ~NQ0R;REKMaN24!@!IMr#fEsC;j!o^_VIBpJuIEC6y*sx)=*iTE9^-Dt5&yLf( zpND|<0Og>g67P-u=C%DA>>;%0v*4>dBvT47TTpQ~6`Uz}811VSm_1Z<)Ny-o{l_to z0M2YpGKg03*Vnh~<b)kV@!Rg=w^;nHwfz0@E&KU|S#QVe-3UasVgUMnz~B$fO?2mw z1Q0h%$CMv{6~5zXQ2=RK;DumQi){Rr`5Ax8C|gpYyk!u%=~m}1w;4(q3oa(VFJ}Kc zRm^VOClUOM4|pheD_2WbaGBN4oQ2%6Fplm<Ej(Jpr0it-6pL=)an#^Cj{=<MS~$n{ z$ck6Qa1y#1^y$V1E0tyfO}{n#(|vG<BgsGhy<-0@=SVkvbhiSnzhG~VfpjM90;-e* zw8668u%CWnZ{LjA_w0@2uoQ|UI?Im0uEt<gmmx<hy>`I_qx|BPMIvDTaiY`LTSwrd zla0zMNjmIzD<(q^92X_{=kpZ|yO4u6TQJ?Mj27v?l*5>enBui4&eCla7Km8CTcc5t z$)7x)Wb6vGa|N@?G)?2Qit-91^gT$ZlDShxO*u(gKfc?G){k#%w0s`2-(digEL`7r zz<03F!i>?2P!a*3XX4l03iMK>EyD4PZV`fFhV38~G7<2riAw|IfIE<f+=|={FR9O@ zagt?YC3T#MaT=7l%w2(Pq73NN3@B$srH&@<NV)@~>uA&w1@RRNZ-F1F7S6f*uk9HZ zURu)+sTbgLWlAx|%wQM)Fw@37Xd?cYcz3)+1G+F869W@msyxhapdkqdl5zOJt&u?* z<eL#o<FcNyLLAY!h#um57-5bhur9k>EzxxW-vs`-I2c)e7lJ1SJ{Qax%zcOhU!a?- zM2%o~;A?{Us!>V#CVnV@e3V&`zyxF0##5+S2NjT($uSzy7#)*Ld4Mg$BLQqfYSfof z21N&6fJf$ENPQ|hb4M>ir-a~hNBr^RGL9;pn!~hd8AK)PBfFqdZG<_u7<oV$1&+j< z_5=%+%9z<CBG6JS<BvT9-2jAU7!B2mRI_7BaJ9jwsf=oRi@jF}3ljz<h1;XK4{n%a zxgumadN>oMhJu&1j3w%*&Nby$hpXysIl;*U&2amVT<T<l){ah=jV<h%N-Evf1!m=b zkT$0iY$eXmUxx|<ymffQs^Iyy2KRRW#3yNC(4)c>t{!Cd8&pxp)q_Xe)&)moBvasM z=1XE142FPZTj(=DPt$;wxq%#G4U)*~ZFQg(gY}tX4b_0gn|#0=tcOOQ%rBDdgR!Xi z;PHqx_l`+NjlKSHiBN6SW$$#62O!<%ZXnGELA5Y~e@$!9f~l)&HbawEuzMSswpQ<M zPyx{;)jGdBO<7@oI*plzRHH!Kp^Y)lZE1@No3aR=E&%M>&DPQf;dN&~`xq0p0YI3R zvb9>Ep*Iri#hM77Y#c;_b_Brh#g)DCJ8VgbreawyAcY)VDV&(Er`K;^AG1{u`9KoU z!`OvKSR`k9$S!f~VFQ(;D@@eT6EC)=>>uP7P#D708VK6RQtKkxO^|SJiw1QKT4;q5 ztJCB0)S#*`_fh;9sbVxE|NcLtHgqtJZlleiG5Z@V97Ciej0(~0>3lSO1x$;sR_gp( zvif&6w1@D&#)ZWr)@U$<&RT^b4ceSTpI1{^2li`w9b?j_y5)o6WwyInZB+mUcXf`D zaNRTA)!2p$+1>iGtr}Ljb^qYo7Kbi%1HqXbWmIepX+%h62Y(*aC5khKmFU54iqvpc z5aszTp?yvd*4H>9Txb}QX>F^qWO!yHD_*NKp~_`2gkQGE=<`4X5$*(f+@e8Y_@T9R zsU!>kw>e==YfgZUlyc$2lw-E7t!kLm#8MeKfp8MnyLaz;dO({_{F_S}S(<~|2XcQC z!F}D;v_?@R?Q)&|1;990d#qrA*D>wjf;7P(rYUaUiiCSi8f`&lu|QVl@vZ%i0hb&t z?Yke0#jnYrYUJ7#g?HM~Yvj7&$OYHUP)Y>FO_g4G%<Cgl%I2>;Nbw{fFa?VuDJBZ; zo6PobhkDK*03(OlU@J$RFo#{MmB2Jo6LFq;%894eAUT1i$Q4E2VBi!p;7R)&s(o8y zswIV<Wqcz{_uH6eF_VTi&R#G?$tTqvTQ2pb<jFxr<~DA6kIX5dL4B>xEFstY*rB(e zownH(y5p5Z5aa(v&S>0<zY0QVEWzt7SWGN)$cNEP1tpAn>ZP@EVf;1-RueTyGuc5q zh>|>$OAf`GT!EO3rtYItz{!VBYEWO)LJn+67tY2_`o*LG@TY?WXrK4!BTy{L|7C7o zKK7$8+wse%Wfy+xMt6LN44(=h`Orm*8xvRyNjbQ}U^!H4ns;Q@sep(Rem8YL_u9x7 z=LTJvVjc1)=dV1@2t5g4kxl)I`S>7<I<U>*QyWSh7@q}C&jOD$&V2UbFyyqY*vTq_ zpM#^TQT6klsFFX8T&DIwfBJ@s@ULLUs89g-(@ny`t#B^e-(xmvkY>`Pt#(){e3&h5 zgZ1KQ72G9w;6s+~l+xES-HwoKQ?5jwY#n@VgY%ag=Pr_?8=mnOer(KY19$v<v)MY? zI^`~n>3X^f&_-gNWeH4j@qNJmbW_P7CU7)D0*mdkcn1X`g@KPXWYK}T2^~Bm%M>nV zP<jg<Mv-F|Ae}_YzW8)=aeiH-2tDcU7|DDXKn<GXO3P(Q8z$elLFjA(nDsX~=n7Oq zBq-m$m|aXSn%M|$m*6|-Msd_Z8hn^8>J_9N72pwBmGDg^hX@kT4nlZ}S0(hJl0$?D zsErW9e!982Uhwomc3U%tx<klh8;#RnXH|qo#x4pA@;$3KZF#%sc-Mh<FXuVqF_BMg z2!G`~Cz$`Chc=LuC#lj)d~Aggv3JiiQSwgdMK_~{oiHp$kFCh=$rVDd8}--&=J<gd z#$@x(iYHZOtFk_Hyv9?K_z0;c83U$|l<-oV=zOj33zgQ|uE|y4dI^$Vl-x-@Y4TTr z>m!&2<Z#@`AB~Q=y;#{jfvX>l1<5`vn7!x<j*uN$NopEpW^WHizNDcZir$TS6$m&8 z<J4Qnv9i+H{VC?0>YT>zs==3m*<ZzGgSVQ>9yz5P-A8>@7?{1%zptujcK;$JUB!`7 z#*f95A`o}XK^k?#g@Co-GFIAiA=4k?iZ&Tg{mrUtcXnUZ?{3-c)b~6M!H&u48c6G9 zGwmnRcCuZAP#AI!?<2`^t=~&hLuisR-A%HOSZ`Smmub9=v(j0qB^6_4ZX2zqO_(O0 z;kL*OH9^QkpX;LVMQxh<{o;IneOgX*icmS#-Qs;U-)E0O<j0SKHlkp4?y+LuzjlcR z?=B4i`t9*h?g}-xD*mqbDjHk@o^qKT^{Co%I~bT}gbkYNo{>J4E%#yM>8rY5P#)4& zHzVZ%ZToIyu?=LKJNpu2C{+M=aEn?-1H5h`k9!P0nkSmLtyIq&4CMLBNp&l!p>@O2 zpq(!&)r<{C#_1*<Wyn(vD00jpcgS89ZQJYfpy~j|vzI}og8g@^$cvxT6$mvrb{hqA zeGZ;{b~w6Z_Al`g-0%=&fPuwN>fRlQ{AV0Q2cnwr&&3re?gMf2=p{Ah(ZO{Wdq0I$ z-yh9M!dyHbH;)diR3RQ(Z3+u(+{}JHDoGa>De3k=+^o>$=VIoSiE;0?3NUIof;MV? ze6~^{frw{e>>Z2_5bow6>p|$Iyq}Mq;?1<+Vdsdtt<I#qcDg#P_D&)#6Ky#W_F}eA zjlFygI;OuJ)7%cvbJX;5m9N|Grkc50zB^}J@<6}Yj4S=w%8W}{`_H(a=jYR^lYHFk zFB_=1M{+3cDXec`q~65wVy#c@T1S0BrCo2^Tf3j$67E5IOPIZS+s@Z>^;RiMm)=%I zyi0G3wNM+0oqC&cFi#@;W}2($RdrWo?ytRo7biSwS3q4w=NTWk|6%AL0p6j*J4oP> zf&UT$c+iWTdko;M>c0aYppG?-L-6l-mZb5M+KPWJ_FNSo(()@3+F5|t8@epW4iad8 z&iKj&Z=dYPCpYrL13Lm~&ACtPyp)bS4Y^KZj|*{N+W`A%`w~WIJN<<Xxdwyq7^nWl z-8Z4}CCJvQzvkQxHwV$2EJc>OUIy(8yh)y|U)soTLWsKSn^4m2I}7mG@>?|U+fbqw zemkaKiobXX0o=2F5&p~gKXtt|e<6*}5nWV#sTj#_zRXeqRLUX69}b#<0Llxw8|BF% z*x<d^XWwUZqZ@hK7g4~ubL%X(cqMWde!KtL<?-z2!7A*7d{~9s>&13)_gp`=a2`87 z*_xnt`LY_k?#&it_V8y#5=Y-~^HUS7d$cllf0q`-sgKrM)JfIRp^t#;g|Xmk@IVeF zfbST;1h?ChEz!HiLWivO9Sjovz|kO)cMOLP2A@A3wDR=~h^n-Aj|c_d91@z)?lDmw zLVdeoVH|8#M@Ct&|KOM-5>DUcb)UV?(>fHchlM?LuB337+LieIn%BeWvz5>6<!=3J z9!Ty~!D>%*liQ_;o$o$^2A!td%{X%#nnqXcMdErov<(-0v&0v4@E*RtCSOABecKv= zi1YHjER?iyF}-bnP`&Pt{?(p%dM5_))I7E)W;yFgTsh$PMlS3FVV51XFM(>;B9Wfg zMAeP_uSbM&G-gNCZhTP9kdKlndM@c7-9A&<yA^y-r6y&?=E%Ap<PmE%W`G-Ec#;ji zvr#IgR<G7GX#`Q0g2<^l=oNH1yVQaQ%&A0HL!nff6;<8^(yyskYAxT#+3{|A<Fz6* zWU@BwRWEa#ug`ufs#=*fj6hnsw<fw{_FXz;-!W?Sc!csW-*k2Gr5FeAc4I^qhn^f~ zXq2In$ufMxGFeEF=n~~Am*px^pi2mR3q%&fQ?<;OI~GEg>r@ryE{vCMs6bQ#A<8$E zs!a$s^w`z{D8k3C2AJu#78HrDCR8#y+F+(}$}aT5^&jxUgoC%PG58L>Yx|T9RQF#( z?-~6shfNj33bLj#2r?VVSfc^{0MR;@$%E&Hp}VBFWc6cD{Tc+{cx_hfMq3Lz9k+p< zA-V?lI4>1iPH$-5%hy>W3OPe`pnQ|Y^35MpPxUKOd9;l4$ai$)5KCn=8BhhXvpt&H z9Eq#m13OWHZZ0T^b75&=6}+xZVyM6-UMQNiVUa|il^rOZH$znqZiTJXy1`)!f34k7 zZ)yok|CK=rMlTRTM<w!AeZ)|mLA|c!)Dm3>D<`dO39DmNW$E|%5mrx!gHBB@;?uPC zfH7l%)&G@eGNzj<Wf-rHUi(z>gtoe43J}0Tou#Rq1W=GhMNkp7=>2g3p?BO0vo$iY zl(Fi@kgY@vU4dc5TG33yR>zdKtp^PNYB+|;>&DYSHQdq?cB3koHVc48>z;3gg|B`8 z?f$XN-T@uoCLn?^^cl-2D9CPn1=dC(po?R>2uP?l{4fyNZhQ%4;y(oZ5u0VoPU;M5 zI3NwNbZ9`!Ms&l=aub8N?na<ufUg>~-JL?>NXtHXUYAI0vqzrQArjr_k7sp<#5Q_k z-_Fnw&+3o@<{6z*fFMp`<FvqGu{hTgGAn!w@C#)uENTN8HeUwnbknVkS0GI~lBFG# zRNHpZB2G<X+egy^_H=X~SSJSQZu-<y&!hiUvVPlBMbi>3t(N&u*z!`CHN^Wu(f4o6 zMO)sAK^YiNZ;cKE{7)G=DoB>*o{Y*CMA<Qh1(Y%NAlF{dk2U=H!*FEdf?CxSnrMh} z47jHHU>7KZ`&wPujePz@K?hAZfI(0R0ni!%pG_`<m{R(sO@xSTouZ--h^b3dLb}Ho zSSZa-VJ6L{f8}n7E^<9jdeZ7HbR}Hln_KqN343GQD3-W$dTV{o@Ay+m(8x@N4U8Hr zL0!0+x8}-|uSQ1Lv!cD~8P@D+yJ}I!EA}N$@7+{-9vJ^Mb0gmk!NFonPyqp+)q01@ zso;&4uv4CduE(wP=%4>Q8Z-QX2Mkc4U>q(yH__V{g_g>Px>{mZ*#@O|*0P0zIQ1d_ z>+4(76c;LJE%Viw1s!Pl>T7U2YUpI~axz{P!)Ulx@%E~XFNcp2dt_>DML`YSEp=6A zR&}{YWoa+KP}%2c<6fFr*t+Ey{ZwR@g=E-5azKmnoXYWytV+4saH%yx#hmz?o8AdI z5#p2Tfm%2u3EGgt$f{#k>N1*paAgLKUA4Wep3WM~Nq|3b&oRQ)$vqtX+A~NW0ZjX! za@wr1vP4a3W0oyjqW8!+c&(AKbcnnxu|^FPSO?+l299<BqX5frIN7po!$=}vu#*zU z%9ch9tP*TcGf&iTOYY`?%+OmGjta--gt4a*)xafFK*}>N!=qyy>vFT$HY1Y+D^0Oo z0;^QTkb<cIw@oQ+88KOCBq<6f65L+tB}D}at0H#0qmZfck`AQnWN^Zz;&Q_-+(Eh^ zs~9!5`nYF-IPjNA3DcR11k>V`16jj6h_IJ_$v&+V50p`8n_Mvz@`((Ed^~#JQXi6Y zaL3eA^zhk{-r9RTXP0?RS(r*zOUs?u5?L}zl5J)5=NIw0N5$p{*n?tY3=I;PL$Y3j zK@dZ^T{6NhQ79F;Vf`|{VW27l4r9(o{PBB{Z9^_G%H0g~9E#X)?<n@$vHe43Ag&T% zRT8$7IH3SDcmRsh7nvXDS;YbYc&n;QJ6qk^!A~V{%Xc%kwzY%t5W!>_Z;v6+*a&Lf z5@H!aq*E+ORsdeHnT!>M++%PiTnCVkjuEou6W1P*jENUycAY89;AjQI2Z@bPY7J%x zq0YV{-;J?KY|WE4+cgWS|L8nN7)pff3}tSiISqzZ8m~8gWI=l<zuGYD5;gwlg^t1c zSW&1l002gR7e$Y5gnMv-+JE|p;fIPs!RyKgIgRF_Dd34Iu!c4nT>+qFPc#Kk<L4&L zt1&0Z^3;@*NQz37Tm2`8K5l`k6B*=mlZy-^F(Rw@?FLr`Zyy@r*CM~xa!#*;H(HK> zd$t@vzje!r<en`@PWNazR3e+*=B^mzf(Q(1;N!*xUVUYNlFLY#_&E<WbJnOz7I`-t zS#v0mo%D`;l1A-KVFFB_F!vFt{#&Npy*C-{W)ci}7(_<oeQWs7XjmO+@_62WV8gz! zekDmH)k+B{v<$YUy2;^6SS>2rgqKRL7$_$k=!jsf`+`T%tEroj#6@$S2wD`G%nUG7 zm5a;<Du(f)EMQ~Q>G=Fa{={2Vu_Nct6E*XeKK;&_*qlbeX7^5`t1uVq`mBq208a+8 z1eFXmmnepWBsHAcS3O1&%rgO6=H8+5B**e}Tn<5;H|Zo$Me856JB_bP;k_G`9?N6u zCc?u16O2;`>#X1|;{HjwZ2vN!TwhP;&SbHe{d$QXd0Esi5#))FpC@WT`h0yhxtT5u zx$8<X3UvJhX;s-T=wNNEs~Z7+6&)5@3Y>1XsOJ{9hc!Z~DwYg?lB#bqq?WU^Lc_qp zbYy1X6LdHEL*)gA;@S@8tHU*NWn5OE7QUSd>7UA&kvgz{jLW(tbR+sU!+Ua>mU!i! z1wMCCeZabI+<UBrVqhs+1$`R6Xx&5p01G1g8kIWQRi7tPpLwFoL$vE8Fv>BWbrm5u zUs1KLhoL78&Z$gNt4gANVu<H}kB(z`q0sTeG3+NrQ-U0S)aIHJO?fwh6@caz0Uk8k znsmXym>p#tH<Iw%CzNwEX4YuT{{4TITP+oa>B;CfYLm~sSZ+(B2<gaGeXOg$BTWsj z9>&ILa0iPK^5vkUIB~ZzR+{;#h%lCicp9E8)RE&*f#V!ieJz6C*V{tiE*C-9`;{JU ztAh*oG^u)Eh%P;1q9s0f!84l40%Oz^0s$Op864GpsRrC5%*rWWwSXE5Bl}beS6+e| zD^ZgUVX`1x(I#yGq>9LoBRR)<)_2Mv-PV0oS?G6SXbX)cAOdqJe#%2raLD9CAL6GN zRK!~WP65V9E|z>m?6aBo7Qg7BV<@jd0d>%Eyh)VMhH3RXc3Lr^&+kIDuY+wLE1saJ z%7h^W`Vt84Oj6MCBnh|r!yrZD<R{e(1E57fTX4sf4YMOv(UEjh>laPh9LnEtQLa47 zUwV3hd2WP6!FNSI1MaitvZ(Sm1lGS3fZ(~g;99EDk?t!k6>DS<*?0Z4bUSn`+<Jc5 z=O;xT5pO`sjyPeVyIJ}!#s7V;qW~9FfF-r6JIb@w_y2WN(Oe=mkl!xE@HQD&U)RB) zDn*=O^>r>a%gEh6m}KN_3UvJRw+B_&X1v#zV1VX4(OK#WG!Y>KY=DE)6Pt0K8y8H~ zye1DvuBX=wL*t{G;q$v6-Vg>M6H;-75yKSA2+!>8k3X_s=A7d6_!Dvmux04(sBJ_L z6!~%>*M#G3xlz+D>N2~C<L?OWrrw(N5aoCJG}DSV_6rV4R1*I;Hx1~{$}6U>C&H+N z(JF$cmhT9lr41swoXfXNDqfPtfWHy8>IpXjT5B{u5m|E}L~ek*WiIbMma)9mcL{l< z!kly8X4V1}At4`ybQ-_Zh@{D6#~Tiyu7J)joN8p0`bSDcIrv5B=ZcqKfv<cT>=RG< zktk{iVP?k<6mTKlvq>byGSm~#P=EW71SNH5gWp>;2*OxiL7U_(ODAb4Bd7%!1oQPs zgC52!4c~G~8=<axYwq1+OALBNb&Y;8y2a=}O%W_;7}7V%3}R5oQ~U-eo>yy0k*O`d zfM;4oWdZ3@x254ng~_0RQEdUXhpl^2#qD4Dp@wpJ)FyE{V>UbNYfzoV%cU)X8l8^c zdki9sEIvm6h$Lfv4TCI7O^yuTxUmP73T;wk-zqLFj|Tq_P)h>@6aWAK2mnQcoJ>3^ zSjLF~007Ve001li003}nXJ2w<b8mHWV`XzMUv_0~WN&gWaA9L>VP|P>XD?r0VPbD} zbYEXCaCvo7O>5*Z487-9h?L&aOk0*x78bT&hlR2%OzEX8#*-)$v5sYIxsZRqwv)7T zX%2CotS3Fa=nP&)3NVmCNM|3l0Ye?yfIURpqX!ug1pO3%hXU@L?$YtRq&4u0J`mgL z46fVD2DI%<+Wr1<%V}YcSc1>L9-e;hpVo%9#5}VswUYvmjspq%In^83L&uXdC<r}@ zCKK9f@H~N1LzL)IjD2HsXwkN1Z0E$bZQHhO+qP}nwr$(C?c^ls^QybL>b_6+!~Ow# zj=5@K4p8JzG@#9g^^-zXg0jsoahVvvvdgI=4Y($Ts7hKGAw7Y2tHkGOQV=jysP7mf z95P$*+0lD$^6sT+u$31@Uo&l9?k5Y|u2m&rU9ZpN#uoh<+^aUS$x2?HSn>N5e^pl_ zgL<3+_6jC97KadWIGM}F)KX_hXDlh7z9<TZ-gE0Bnm~uQVYELpEpsD-txS?&Jh?3G zp;@rW$M!a^l7aV%7{WhkOPt9~CAnCSEEAIUt8~^oo9*ts_YEDiijX>hr*ah4jbR=} zi%MQ2PvdT|axe(7_wjhSA?&f;=U%pl%WJIq{m-F#fNSa``aehk|3OOiUqNbNYw>>( zm5JxG8m5OCar1+6Xlq6gyx1-9vn9vYsdc6pX^&V$x276@9Ps(#RG_UvyW)}J<MV>Q zE1IK!_m_X`Z3h@|OJ{tQSB!&UB!qCB<{u)&C0kp$DYt?3#y69jxIXCZvFb1JweaHX z(e~10C!jrjc=@<@<*Y_49Wf$QaFyw2S9lfluILUx=ZsY17dThQhVNhjRsyjKBMe#4 zymuf(wcpDSL~O3aI{)678^BCoC#wLiNa83*(zM!PL-`=uMlY}06cIJF%F=XW)>;3J zE<`e#$v^p&p>&K`cn}G3hivLQgz|cs`&3xX)H1qcDM;K0<W1|{VQsTAZ9r6^MWA7e zp0wK3aXP6ccyW)ac--^4>`(gu{m%lQT1XyE{VT9GFaQAMe^X#1I~#ig=l{22uow_} zuGC;&30x7S>}f~#g|d$2AxicY$xFf~ZmnqwQ&<<Pmr9=d+=w|yDQajFO?SPXI)dlG zv+~<w`EP9n!Dm~KkzMFNVhQg9{3+ld1@(CEM6FLctLS0%$VsufH3v&Omi>FF>fgSy z%%p+63Jtrz?0vo*{Jfyfqi90=RkRqxnL~{^hBcl)5ei_3&ch)&4V!6MD&q_Qj6NgE z#7F&cMiDUXc|qA2GCtSlH;QH=EYOQys6qA|WtDT#Eo3Dt<n-9;r|wSGp&3@+4z^C* z)^GHQZmWK~>Xc^}4}g1i0^#GxH+djTs`zCMA^#5Db1O~~Vz&^co#*X(Nh`}}HeQy8 zkxhX!iEq>lC98gv9LNmRR1F(8kiWSQC!-o51_04nH)MazP>nXi@h%=27Y(CT(kSKU z6$!<4C~Ps}CN$Hm$I{zDfTI^{54bJSPm|R+#WObULt^7hnDkh-@-ld~il`YUJQd@# zB5gVns#Wn!oYb#7>W=m;)>+nhIbMqJc36$Ndor4?bQTXB;bUd8O(pkEsCN6GAxo@| zqfMxY<ON)Y@X1wpr1Flf*$*VAK^|F0o(K+E)*P(ewR{5qXG?s37b7|SYl(1B007$m zrX`%59bJr^UH*|>{<XzU5|3RFJwmA4Z=_O_zp%negJPI(v0^c~RAFr@FnBv7YfGH? z#~TYmCP;Fj^SM0TXs_2S-Psz``kzGsQk1~FB~5a9Mu8jp5Y00404NYaElzrkF84~| z!!naJ)B!F{vKUjQ_P9Gj1Wuc!+_gF%Ss1HfSEmm5jJnmQp@7bvrcrsdEvkBT46=#! zp1L#)=m-j`kl=Vi$O`RgMk~pE?y8E`agOmu##Dam90eAFyH&(uM=~q}L}gXWM}OIJ z#7XtSV5j=|jOE1FfDK=L!2@8UeX+<4y1NkdS>Q0rCqQ<Xs2_P)HXcu>$UlQ9XbGg~ z%pzUx?ogDR`iSUzh+L(6!H({s`zsK>vIM<4n+fxfU^b#4GM>{OTXeH?!dDWYn|oI( zBu^8(*493+av#Ov1O*Iz?qXEapc6Q+ZBy#MpmAbt!Fynsr@w>ZZGJb!27IM4%)~!I zaiVcXo8m;rWMnuv%+KL&i{q>WUqJr}AN@P>HaHXj06YGFx1wzf9IZ?o{|CAfj4j(O z_SYS~flByP`Iz{O4L~qao&Fn7)PZ6d)(em*78rp93#}SzOL0mI)*0Wg+@UC8Nyo+8 zV}jIir?Z2O3zCm^I*<)i5|aBai^jxc5m_n$w&DubWaN%AVMSkrV4Ibx!db_6jwOAD zj#BME)tTMId?aKH6O}PQUS2P5&`I%Bk}HQB7hNY|RV4=M6)dyq%gq8nvR0%}6Yo6p zTa2=fuH{mc6dUpxC?(>gTC;G(GHo%|>@rG<*p{Ot6Sg2!SQ1L#xJfb&TKW166&?x_ z{N;`jfwC}QRTOjnDqpnMN;;-U>3G*&?P$m|Z9m;o94OTX94L_AK&cgppS`pFU@Nne zj(~N}A0%Zh%0T6BQk0pBk?9bSkJq)vp^BGjCM_ShpTDKqIZtoVK_9;Z8cJiwY@>IK zy%7_9Sfm%Hk_q3qnP#BXLl0(w*@%yc%GYz#<T=IeP#OOshEA1t*ObvA6qdTzQTL%x z&nIh#kDEJZCJmQrrAd>RXC{&0>||Auf&2mjJn|mqlEE1ue*o^bP*HZeg?76UsvlF+ zR%`||T=G-?#^abHSaIS2`cL)mQ``Umn!`>%F(L=LV-H<bTc0O7jTU8;{sFmkQwS)c z6nB)*KZcWTHnHb2T!dIwzt&K)?RRT)*F*16*NxYc^_9`&Og#yg-5XZ-qHIq*%#o0Q zXTfF+2#MY%1Z?NA=fx5gVF>}Yv~&Rr@fHlt1<XSTR<7SOg0<Y0U-nyS0Lx1V_N4%^ zuN7`6AT=hZoMnIs`Rr$9HfGB+rw!=X1fw`eMN=VIV*b;-J*ufhg#B}1S-6sSC4+|2 zy{ykko-MdsJ|8p$$K|+y4}>!Yt;?6q9SYCayC1iZg+G9vAR$8`lR{|$C1+m89HYgW zFa*e5>M!&Sk5fMmB`|>W_=gC06LJ<JuBc^^rCr)pX%S)OWb=YuMsH`F0MyfuEyn`j z5?o2`F80{tJMFkrS38$>H<#vsTnN++6)dDB*zxCC)hrXAP>&`!X4%4r?hWA3s6C!X z(_I*sAg0d-pPFYRY$?$+F!q)w#Ld4Lvdz{Rei2%`3eiFo0?67DamR%ejFKT?odo6_ zA;tIo!>*4#7%6QYB78>{n<E#<$=Ms~`dlG~fCm(sApIn!mtx<lv4X^?1fOKb<fDfK z5Hik8fH{IRs%dFt<q?YeTEIp&CZv?fTlqEXl9|z^CTOd6gGPFf8)EG(1hBdx0o-cs zv%YB3EBy!|b@n%c*Tb652uM|BWJ)ka)*u7NmK7s_urxX%+XZnVopnP2V{&Bz)AhhF zIN;9H!^6e%hrs9UXRv4M>0{eP_4g*`?RC@3>!9a*ZR}}&xj=50j@D04xAbg$C*_1{ zP=A!NS;!#TzYOk&<Ah+}f<y~<Evku+-oJxI9bFp5!_Ed%nh5^FL&&JR^?ElqFOR~9 z-?Y4~<~<s`mO8DxKBiJHVyZTT^Sj*}UcWLN24`BWm}#pD?uF42F%KD&)_4Qb$F-qd z+jm|tOdwf50m!5RqG+O|3FSj8b?;FRtvrsxX-GA8WXwsqU*)VyVT|5-M2%P%afbR4 zqR&_6pS4gn6c_X8>v*#xpjBBm-u-3e*Mx8i8b^_QNSV5q67^&OKkQ2!{YAsNAQ{+6 z(sX6^CQn}oI_csH`2nFKjdDOvDnavVi#o-*e`r8`;w5(8WhUD)9|N<k_V|a`?y5oj z2Zd^8&NwPFbpb+j3-Yk;oc>fn+HoXKIW?R-=dMEIoGrz26Trst`j!CMXGY=*r9|RO z=JrjLcbp6*KLE)!9)Sgtv0?bm4aJ&GDKr3j$S@(WZ|VH-t_l=cz^9&CEl07Fv0s{s zJcl2xrI74Psj_oVg$;g$J|=QJE6kNmxTkPQMr5OCJpJJ0Hfk>&q!qF1Pz2AO{jesv zQgP;4qN*ti;S<LPBHC7y;-AlT%H7V>&~`5N-38#0Dh><>F1gBBWd)V_1Ac@%<fhmM zEwJ2@o?Cxiv*&XNYnJ_KrE%0XVsYMvLMW6hxQRDaGy<6Y*q3>G5~%2`II9vHX6jp- zf)#=b%C!L2tMhl9MTGUe&4WPmD%fdSCPPExjxes7H^Wf5OW(mjFeZu%i1J;Rem&q~ zlhowJ+Swix%ha=7#_uKSzWY=v=<iXj-Il3cN_+2Sh9E&M(9AGNV^yk#m>iNmH_W!o zQ~fkod<3x7$7)xZItcwoc`&u7<N^AEB26J`PG9D6rU{Hc9Q*L(1rFZJAjTJP(kt}6 z*a<y^Q0@J`Ers8+Hq{+(-K|+V@nOj4_zdFZs){;aVR`!$7G9FgxjY}Yl;{~TlH@Y$ zfB|bPG+`VIH_WB-KJ59Zvx0(Uh;b@rcCzEFi?&6vrTp>f&c$8+1q}VzJEsao&t<T^ zCe1uxOdx@9E9VnoRH{}aBtM8(=>hy_8T{dy;Uv=3081RsF$AvaJo`O5HLF%KiXi|z z-xf#y=g!|$67%biANyMot)B;DE{Q8FHLM2=Gu|WH`kyuoh`-xbFsJncGoTL<6d+s3 z&*2z>6)sH<ejpHBNf$&;;2B!<@RsT1pVCtb-MlXj3+`l_ZP^hKL7C=OqTiT2DcjLZ zF1M|UEWXn9y?SpocK!MC{Wk@#nw(S{mN$C|)t&H7jW7+0j3b4W8I(b0L17Yax6UAo zH>n%*1!?`xOJT_74txv{ChyA1H%hY`MqC_<?NBdH3I_FqA;Z(ElAcmhSVqe~(D*P4 z#8hQDfvIOz9f1LoqH9}`t&qD3Xz<f+P&EtV&g|Ee_dcYI5knPT_U9ILe6G-iS}EM4 z(?Q4}cnh<T*^cJyNrRz=;SpR!6*KjDxzc$A966q2Kl6ccu_LBN%7;bluAIzDkL>oY zq@X8(xXtWdK?Cd2&t}B&zhe700J8yXQb+fu?Wg`%DGukdX+O?mVR#v+oa8_6w%JSX z##Z9P;OI$*SRm>%zPeoDy9f@V+XiW&p4MfZr%&TeO&&@YZoL;M-tT2)$D~pQ$v9RT zE??Q@EKF1k$vN>A&;q|iSiWtSpo)_mz90aquUCl)j-^+1>Ex^s-~sTT94gT*EhG5J zo5~iNWSPm-c@@719=<wX7*c6`KWwB#^3OGT6rMV%X8m^`rUvU&B|CGdM0#Y_EC#YG z5wT9y9ypf*2-L9j&BvOR#Z%E~nH;POY|#VX)#0Ct=2V@QWv{LXjMf4ojX0~PjW^jV z1e_*$UxlQA>Oe;aM`lvJN=f>E=|}qSIDCBrmqpRtFhOW<)UIJi;x;RlUwfrn`tbnE z$L0nUI`MP553t+lmSc!m%s5a89cGq!vDDel{GDP=3EP;jB?3Sj_x!L6a+qJh;udK@ z$bj*%mg91>MvQ`sCVm0_^Eg=&inHYn1^@tz2mnC$U)%;9O&nY-98GLYY@Pq-Oqrr~ zm6XMb@H?wl;D`q|8r<Q!m=V2n74j~A8KDQNhufo#o|E81tWJouT_o}IR!iJJNSZN< z2eWwl^IEWS>lmEMmcf5TO$L!`5#p3=MkNR;p&+6(sNf+aFY&I5->Mpw-%sT(&72jc zi%iQXT0``l<#$LRtu*q=&1>iG{Rg>_mF!4?J!(jkK*cM&LD47(H2aUVG073Uf14?G z&3fy&goM1LWcJBm+iJFrLSl7Q;~}wxd@Bt)9bzvkb)975c}v*hHEU9+NBKSmjevix zq(!-kR5;Qr+e{>~ln`1TD<oN<inmCx-0gtJB^o>^7~2JyOYjkrl!_<f;<8Y*SyuF+ zH)J3k`rACv@xLf(!VtwDWXd0c?3s^b2Z%?kQ9$ondi&dgaO?4&Fi~r-9EC@w@+6qo zgY*V|<ltBYle`D`V-eRoyA2v^W$wAAD=^VQBuJpG%bwWWzLCGk#==8vu!U;>OkeHL z62eL&Rhc6HIgz`V-ph`I)!`nR?g{zSF;LJ<X`ZM<FqgKm&n<>~*D}hs2B*$iWvdY% zXFIr=6TEM<*5m?)1S?(JFVpaK0;8=~CyJ>-T12%QsL*<>GJara217r8O(6GyHdX64 zzEk~UUM*B`qKV=4#f?x-A&IXl9>QE!-z$lSE4HVyc;JE-sU08<lg9d3boG`;0uj<; zuSIeWSJ65&LKNDUO3dbF3pjQaFL-mpGLKv-9@=x_&X7H6-ddz#E{k$s*=j{aZJ2u? zQjbZ>df4(wdT+Iio*h_o_%ft|^KgM1VinYlZ<I6`;kP5?hfaY29B@|Tpc?CIgO*iI zfp(b=FoQJU3^Y*eBGprQcSQ%nO*GOLGF+E`9o-*I!Jk{&Uvsh+GeBqyBja--1ONhw z0;nN4Fk*}`QexH{#l=4ICt0R6fLO$N&F^ZB@h1VA!{Iy+xg4qcL#|%YM-u$YT-ZGt zBde*o0lhy+925n*I1$MF?Em$KV|l64j@Fw!RbYoYoVN)eJ($vet_9ufGWo@-9m$$A zZhxEp>)(0#??36i%&;pV7qP^G240p+u0DK>F=AF;I77BWOOt$u=Pf6f(Ad#H1~crv z)5f8I5oIvP-4SE^lV6#!%X-zhY9=+=(Od2W5u^jV!cL$SD<5&oM-PwPy>bkRxj|4m zu?rXNX8e2oW8-4*S6i=Jpv!{beVauVU2F0beLk*G%$X|f;uwQ2+w-N<Z0C&;UQsHL zH`Yq8I*Dipjzl4e|2&TtbO@P4iMHH3v_ll>bEK8Fpj40!t^%(0Ta$K)gEc)Bqg)2B zwYz5u=-k)(cR%oWSC(g!DZIaputSx}^ZLK_IO?Wk1#!{TH8q9xPUY^9^1BJd2ms;3 zt-!f1iEO=1hmO_qC8~5-xkB%x&yb#JMXt-UZqO9uke0LX`vv=g_eiq7A;GCBS7B`& zny`eZY(=ABzE_6v=yZ7hIgpO;&5cF}tyyEA!NVO8ZzIWptM0#4?YL@qJb|D&J9{F) zG>E)CMxe~s*+WRj;P_|gL^o*;$V3>j5f5~$L(0~*o42C>$)+1b-D%)PZi0mJGliv{ zTj11E3?h#YC5f>MK*@cQoH>q9Okd_YzieMU?N7gxpdF*)_@oLyVs;MeKV&^g39BS0 zX66H@7!DhJtH(nr<<s?Ed6E$;CAmufYsyTOG>k~B=T+Jj5o?lzFe&~+fBi>sKXpex z&A2yn-&w%LvtHAp@N~T=L-kYom3dtI9BU2^s*{Hod$QZJlh`p@2%+!oH7!Z+z3r{_ zW(s7GhrLD5D^(AP&#bE8Gc4=*SaKE`whJbwZqS=jWW`EqdestsG_clevXME!C*IOj zug}B55~Ga>Sp840Lv~Iz-9B<9ubxp_A`*;?Nz?h8{NQuZwSr~w0pO&YTqzHP2BJzt zeV1;zy+xlDotp)qjN3cUDMnE-mXi*H@eNT)q`Hn^eY$a>^ET-_OP;V;nwl+IF^yQG z7djp|R6WTp<i(Ymmpq-N$%`a~5-FA&Y+^;PrKqq<0!aB3Yg{cglMjp<yka?sSrpJG zfj77}$A|06DT_2yFSac<Af7O>3k<><OH!M{yyqt{j(+cw$*s_(l*`bp83c^YjWzM7 zzcaC4@XIrT6m*7tc0V|8h-*G@A%gakGCPH5YzgAmkhHA|?>3(s<yE+U@BiM&yhVbd z<In*BJZt~}X#R_h%*o!w$imd(|2~b}@K`xvu_f-kP>n9DW+Y#5Y_#dknoT+&-KADK z%2LXbxR6k3+CwBXVb0ov3n@gO{C&N$<t_~vkWW6;c5O09p>Y5+XU6;%WSi%d?$tV` z?3jkm=%3rr{3DTI)~M{5T0NCfon%UoB)Te<qMY`8@*-(`e?+xoo$XC$m7;bsVDQMz zgG*MJt<W^L=VP%|Ji$eAaiCVF*X{9j8-r0_Z04fEg2}2cKc!OgSX$WzaMxIwRIOPH zwJ~l?ij{yy$<tn4W#Z`I&|$mU(%mlpcv4xJB`mF?QjO(N&=;4a;hRHbcx0?{W&(^e zSuG$8uN^o2BY9U@DgP<}r}T=u{Ky}dt&1;N*l<({mOn?Ac_Ufr&^VDbGJ+&O167cG z;ZQ?i?1df}lT>%CZLIa?LShM8ge|{z+}w>S!t2$RsNtJ2<@w%2zWOMmqxNz>A^?;( zpwG{z2W-5<uF&ezh*)2ZLVdulL4{7B5M`+|t&f}5Uas;ulVz94_xr)_l7HQw2Tii2 z@C^wYV0v*i*Y}R+PA^+|v1hUx4S)mmh|wEtVs4qhGH;?VbN(T%JLoxZ6ctsFI8q{z zCkM#4C#gQKh$zQzWE`SNslf`QHscU31dIM6iHWUvXaqhv?Lx_ezqZ(D4^3o;P_!&$ z9ydW9ta;6bm7u?MjENS9?m0$$8x`_5YydD7s8nSyV)75WW@KXtl)Y`EhWK?hfGvqQ z;lx)dl)Q64b0t7^YQ$gg^C&MPoyk2^E9+jg)2dF*0MvEPZG(4BAWF$fpHyCcL{Gk! z9pnJyEoyzk;3V=$OJGX3PLdyUj15_`P%0rZl}5mrm8c7KCVlw9JL9J-qpl#bMyO*Z zI-1ISuQVgxkcq9z>!EL{h*1hUz$tC$H*Am|Vtn&O80&si7K{vR_fL800owt4n%tIj zR7X4QK4dlV>BSdepWtxH#!O6hihh$q%6CZBQp%_rizbcZjX}Vnkai=-UBeT0YkHlc z2Rd0P=2Y`<t&zJ7z^X$!c|wqMvlQt>cs%%Y^)r)Q_5sm9q(K9+lhh(fGypIZ`%#*+ zC$RMm<xL|9U2)n%>T1X0mV2&aax{)4U8#=tn3+Rp6G!l4czE!N^Zfu~@bsMK9BKCb zW&ZQ?SV5sOXD%(eu;8wrK?;$sek|BAUsza8cve%PywbaX{2MCfxf%4RGR7I&EZLO< zf7Y?mA??Oep-?Q=JOz$skAqPD+W#&8Sw}(?Gp-ZURa0-Fm82)j#&!%`Q%9|jl~zRe zv0N;j*e9XhzaL`a-yeF4D?$zn0T+vN7qIqm0PIUKgghP9BUXpyar<T1-_Xd%sf`+e zp8veBCYe;2lEjT}AJg~WpE8ge!x6<5hrzY2z*I1G6t^48<>P!DDXD1t0sbq`Mi!dt zjG5V2_!yc__ot0koT;i!#VK<33rV^)yF;~+9tdY(XNaJm7mkIPB<(mNH~VMOqH_rJ zBdC<i;<G%i)M<nLNMEAsU)(J-vW$@y%(E_3s{_7BudW5nj7AG5o<qVorH0w#V7c1W z-nre6B-o#hR<0U@`X|P|XrRk=pDkg#8S7sKc8aI%4wHbb^Mn$q#MDl+u`?g~cVo9e z_f=@au(!*A3-lPhQ}fYlq?Q993m$&5)bodD{PS)R%O$~%Iy8^<&)9J)Y@z2Y{U~mm z9x|I0rCIF&9iemHuXiW78j?4FUBV-@4>`rI8v5pX?g%3AZOK|dg3^B?v>LQSO-6g5 zf0^GCtFSlhzprfrPtWfDxcE;AvZQn1(_@1UHG@zf(F+`cZ864MHZ8ga;lOO>xE_LY z$$(4AI9T#ck-@9|5B~mK+J;FmzVm+*sq30tcIov+Smu~|5d9Cdw?W(JvLkqG;G3kJ zM%a_H9h$%!bqXz?=nCZ%kxyM#{o!HZzN!mr!dGoOfUxybOtY<n_05t7^&R4RUx0;p zpNZRwf|R~&n3oUv;d3y*K({h&XrnO3M}`pwc+29I@Ndk{Xkuzv+a1vB!Gh3utDHfm zIHNZu{?_VF#o^8f;L!{O0|h`nfw`)zwZBn7X#y{@OoCzU%tEiBk0PC*vKqi(+w_jd z;9W^9CMC<%+kRB;On@fFof^6>Y{r#qe_ZveFRD55);l;lJGWrC-~<mH|B;^Qygl;7 z$pHP>5Jv_9RFSO&W03&C)&g7RKnl5IKu}q5C0Xk%0q|Vo4~IDc^9P!mC8{^S2(Kg_ zf52fc;-|l8_jcvnoQrotz~9&?7alKLW7XePu2yZ#c7gTdYGUK~@YKv^Y5G(Sd(c9O zh{Sv@rY4Gi-lbK}`6D1Yn={E_-7w{mrYpYv9;`_r(r{sS=tYm2)3zcihOfU;SCUeb zfl3ScYh%$c)~mS`Gt<6J9FT1xfvvRwT#3LDZk)+-!Nq#=2j4e~<SK=(#2A{DgZ>!X z-JM`0I-fn`M&+G7mjot6XHezM0t4bNP7M(;ivX(4uof^jbZ0v~w1|-X-o?$h6|OX9 z@8@ZW${pFz#PRFG@$1R)E67hD4@OJ%r!J0%4~#Au?xq=E?C)0(W)7YKJ5aF(XDI4K zKK?X#&3LN>F4qLQ*#YN84049`J={;PYPw6sYWsew5348xeeNZwnX6PgaTch3v1SAe z3YPdgqhF?qh|1zrNqHT;d0|hu108pQu}F#dasLT0lcW+`k|L^&h9MPH!Hb|EQNaY^ z{3TsTKnh!2LTGA0a&UnCh-R#{+GOo*I1?Z}KaG+z@uQ%l>N_H;YdrTs_ag}I&=Mc) z==#|g+n(>wOBdS&jW5Ud)mB}f&(p}2o1JKbxNg*tF%Xys|HFfTRQmvtCrqK!g2zju zE(%g>+IgW1R<?YQ2hD=&bF;_Az`bW!&dgL?p0n6_$9m5ef87egk+^I8j+bCi@$Ti~ zHf(IYgiyucb~0S1>l=49q$qP?t}r@tqfp0-=em8|Er)hLFg(`t2@m+q<I2z|kH@(& z9{Wt#++)Dg7RNqdj4JT=<7Q8D5j<Uuxc4d2$wetDRfrvS<GV45nOFWAig2BaHcXF< z+WmcF9yxe*#=!i>vECHsFLwv*KP&G%dXfdJ@US|=+;6vbrwoJBrVY}XL(;h%7+iG9 z3dROOG$@-2*X@3eNPwUo3f4Zv44!U%n0kp=Etj^MRRBR6bF+{u<v%)mPx5&91bi@Q zf2K=ZcNjR#W6{;`;HD{99exa_!NK<6tvmcPOeYkfoZVZXv$L@KvUqdUCRD(*a2d>c zO`)x!e8JEU3}bR}k>IskX-*h@EM3f4yk8sxp+n_+M?tbl<7M~6QVW6oxpZEgz)-QU zsReJqk6=P_=h$x#pKqPV#|XuYij<m?X@hl}<M{F02kYliP5f$qLQh@gWU*86vx+Ug z))ChYz@~Jpz`M#B5sie;%r4}!T<FZwznZfEp|Z3OPk|un$j9&kmJju@skP0|DWx{A zikP2i7{xEf!BMH%Wt2P8<9|Hs*CO@$B4Iucuir2Ha`-%$Jx9P(sv=KZZ^YO_c<+?H zug=3YvwFl}Jm1L~v_5uunP-=x-Yz`Qv;rw?%i1<<a&{sOTm0!75!(O|es#_qmv;W_ zfhLqLmaLLX*1UUDu3Tp$ID1=?yG9YOt;00z(d7GR#Z42%NV&oJO9#*WpeYwF7+OUO zfke~#tJOIS$zktxaRlxNvaC($?mJ7OUezOq{skDP0o015s=!mD;szig++-syI_=27 z!#|#DKIs%1e1-d$O5jME`(wNzALJ+}3UOO6*8AXu<@3qw<0mXRk0@s|CAystD0z1r z6?Q@GV@g-XgtqFBZU=7MB@qt+n}eTu^3>h%FbKhn6|CqOd(qgg`>~-$DG^5yq5qO) zkxI6Eop=DxiVeIa$^4719{`FZA*}hs^DO)R;kPJ+nC=Gs26xfh2ham{CR^65B_tIa z+WJnYa77`K6u`%N?lDSIHfNWvQt>j(G?~l)Rx<<gB2vbKvgJY`8Bd=R+@PKrzi;A; z93W~aF$Ps5tEe#GTfE~*yL&vHP&|L`uUrb;ra9_`Ui9_Qjqd2rx({|VJdRZEB6F(W z#n!H&!rO{VTAd^PYp?kukDDj!@i%FN#;+9L$V%P=;z5tJ)S{kby)gGwhUT&c@9u9k zo%m7=M$7Oz5wTOc_W~yo?VBMIWBb)aoe1C$+$Z%?x3k%!9O-e5ENMFr8aG-V6;9~8 z$0N5->>fJ8yd~MYJ9ofu-1KZNp2fcX^#pNJ68ZNP`6hkGcCg{BBn$-QNB4j*#r(eq z#^i0G9-CEEe$o;U=s>QyN#e5ri8YKoE$jVcvpHY-%dVYGC3c`Mlyi&AX}<|zS|iJa zOP|>9?%`}I3z%ZoB-xY2&QVR~an;pL9v2FwkpTn6!p(MP;o*#xR3u^Rc(}zrHIIwD zCTd5N?C#;XF6Jaw{YF-3xyPPcLynw?<5SR25E;j$O3~$*!S6YH|0e9{Tj|HlxIHuo zCiIv?NIWunOHjCQIB!?2Pfcg%*Tah@r_v{M6umjq=?Z@B7J25+>oDpGz0v6I*v61% zpTJ=rOlR3GSfVfv`Mu~+oevR8mr{f)zKiEI_4Oc^H+ibB(RB$3@#JcwV!5+<j}k{! z_DPMish43Qgn1HBq)Zo3PSAz@p<`t!_#EzXS|NRH;^=qtG=@&Qr$lPjpXrN~+SMh( zIZ;5kyZDsn7!q!rh>RJE&e|9WCt$^xV(p65iOkv!$WAD*{YO%NwxM!%Qk<-qWD@t) z0o$cujCNzOGb7nXF?C$@&kqhz*1nXfOHI8gV6G%Iapra3x7qlm@zL<NbbElgydPjv z?EWny4k1cr7QKyyawZdQZPKY-iK`wknoe~ftqI3i2dtBKeBp*ha0>DwY;549>)ueF z#-Qlx87%<HPOyQ5dRoBswk9<H+Et&kgYG_oq7Kq6@dSjFx#C5EiacU}d*lM0l|R>c zv7wxbAot7$ozWa{Yi1;-y1bKC^O4$b+0dLcB+tw2$V*w#qPmYl$qXCsy;%-c1G%A8 zOjX6a+eU_jxwH;rMVzHtLPOF~_HRjsR^(7BBV+4fJ2IRx&ZI7vwuf(O_5~bJPjk2H zZ#>eYz>o8v{+Y7sj$OzS_d94=aw(;;_VYaT@4+5ddZFV!NE?U&PjFOQ-nZ)}CHKSm zEkjwAy@Wo8ABCT;1w0pLx;Lmw{Kf=LRKb<S+a#L#N)Dl)@AhIsUDV2vjB>FIj=I<B z3>k!zn-9{=%zO72%?XPdA(7&{{thy$B%Ffoa`58w95JZb(EfUFT(*C6xWp|AW!W_x z8KX;ahx$z)b2AF0=5SY&NmOP5IPL~-WU4`%3^?2nYmCw~4Ch8WZZzk?swrP=gz?G> zq|YoKANiKdPOFK7&TM~4?m0p6e%0?%rVAv$F4J{mIFCts)_DXbQ}W(kMas2}E*+s@ zYpi4B85~7l_Fi>QFR0Hec=$Q$Fdz9THD$SzWH#)Zif#>@n#W<()2?)mh|+%*rfz-` zvwT|2=Kn><ibK~rLFK?@{2=kXcdhW7CjL@No*(D&L#kA6C_yuzH|V}82*D()ij&m{ zJ}%EYL<)_(%sYMCh7ks?bulY^eYPoy*hwZi+(X(T@#?;kaI+teU(wXcoj3H($O;HX zV7cae95^zrcEI2H!|lLXnAI-my9xV}RdQ9*-WK&>P;VCP%6WNxZj2PXxycRTxJJ62 zUlJ^2(&`z}ecc1Dq1^mTizpq(K$5w?ff*k`)w-jp%lj~@*WXZ>^?SJ&4)IYquc5q_ z2VQpwSB!mDR@UCP1M12)4h*n5)(Ca^I_pb~b&9i9Zg-uWArah)ifnOTa|%)QLyV}D z4mIbrgYuY~<!y15X7k=ybTe`cksqZy5*bMrL{rc(ty081*<ZyvxHT0lqXNd{FaY&0 zQ<Ji+zCAyKc_4>kRNK_Ka9dH*QK-^du5{20A%+$p>J{d&^mPHnzFSln_!gOKvc)P= zU5LHT0G-IJ4Y4xLPL`XK)96U+2CErgNKf_UcTeS+RBuXhdyO-1)ww>r?F)i;7*-5= z-XF~y^Mnnl(ODC^8Rvdm?8{Pp8Sv<ttSQz+iR$qV-<3mH&yLi#-m-~*NNyDp;|8`; zNAyBWmE%%L2m+VwI~<HKsKN`wiggKUl;(BVuf`gyiuAQIodGrp>IO!soIQycod(D; zD@;3mhlDe@wlTmb^-1Ea!wS`=xW&nX($hpH14Wv6ZywLW-V@-IVaASv7#NH9*L#w) z^B7=tpCl=G%>m?Q8?ZO~xVU=rdOGYz5%Uz%UYFb$A#l*7?Bw(_&RFXP!R9GNu`<0@ z&j{wg#)6+sAkweS+@o8pVo-QwIxDbxRMYOhVNHTtib9RL2|3(agF~b;XoYuU<F@#F zIMVK>#*BeM!(aC$$#e@U$T1Mw7~D}x7%$=EA5MH_2jaP=hzG=4a!i?hu!MGP;FcC^ zjge+m)~P>5XZHfMF(OQ__!^Y~02{~t+Pl{B+}_v;#5e&gR#_7e_%vd<U`X*{xv=6! zk2^Hj%ys-e#PDX_nHJk|yR&^gyI6Aa=B`!p_y>E*#mUcdAK*yVD<mJGdWumGUd2*3 zRV(m^0fB7rlwvRpHfG!?*oy$m2<(R5<iLR&Jojf(!C1O`B@LZs86<<zd@@VjsRJ#X zG}ihKW`!!+oust0mU-{kShjx7o(!I>@g!Jcx)+E3iJ69}t>rA2ODb>+p{1=Z>TSkR zCf4u2rxhrhS0<Z#?xJHqp}-nE9%9n<sH`ChVZYO3u(Xy{CYNTKWk#o6ys7juvAb0f zl=R>USmM<fAkx|zFOrqtFc;$>{1@6e60UiJ0K<F98X*CjR;r~tBHl1^XGBQJ9{^<a zdDB8<eEx2@2zr=gONMvHe}qf!+*aYHPaje64GDI|KB&A@N8`H1Bf$JFs5dZAwop6< zL#h|Ug;kgY7uPucn-2{~g}I!5CHtMGlQTaGnPKlU2xQ|mrHW=b2Rh1CQ1rS$^mp=b zi$bL&5XdHX<UJT=^JgafvplbSfA(z?o)dM^h<9G>?k0U}Qowia3;g*yg^xPUFtUAA z$ZMi86T_}0=JFvtRelopA9Lbu8`sYa<~d@>v#it=1-IReMOt%jE@k(CW`5snpD;0w z)wDlQ+++$U|8iSL4)&t5nzc6l4;8~v*jw&vr#&m(Lai?RTZ(S=m(_6{Y^8+~qWD># zGYyGqP+Ax(R|cl8&iGaLuyGLB^r5mS{Cs)wGS`EZKfUrcPjr`Z-&3Y5w_VT{pq62E zUw*b!hU<Hv1trg8t_!jZ0|!o0ca`V%QRZc#*`I<_#aon6FKbKHj8qux$dIZkI3ZS# zR$5^j%S@7Vwa3EWcJM(dNq0sr@f3R=>9T>k<c{#0lvA524w1>_Z%q;)zi@2aW#bH` z$Tif*M^N8RnaIk{MOb(BLZXJ}G2F-+Ufj5q(wS{%4ogYtH1SJSQ4Dq+xNwwaXrb*- z=j=4$X`L0abTqLUDK})iuS+Z`C6>n!S?;FgO(q|JV~s|KjZF%=gc#5KLC;;@-*fns z1HKG&bi+)NC`%z~AaQGJ4<P`9E$M=p_v3YJPDqk5D$<CCU)h9#@5C#<{7LYkz7a)m zDxJ*&s5PlAAIUJ#wvoUp_b^eqreUM9!1f9050N|W#5$K$L`*m_Pvuq!^M<r4Q>!}Q zR?>VS$4U%>$e49Xy@jqtrRmQgx7@je@1||OVuKVu{i8b(@0?4knO$_jX~STKz%Uf) zze0BooOg9^=|<?BDgy;tmA8gAxwMby+K0T&!wV|kE*{`8Awa&NH_S?=r{V}Y>Ifo_ zpEqd{>Z&K(QrJpsu5(*2bVRr*uufpyt1&#C9Op0=mj7H5t=`cX-4}-N_b0eruCW}n zHyVy`3AeZuMm<)1TSOzp;4b9B5f|b&|9Cx3Bk>_BOFfBk<O@->W9_w)av_Fbb23h7 zr_xKPQWjw8&+kxx__*Ry&)y!ExB}V`GU)zQGQ!Kw6PQZ!$0-%kK-J4xvKN#VEu4br zn?`HOla)}s%?XM5qLOs&$M;vSi0*rzk|TB!^ObhaHlEHBwSMiERF;QwQCngC5@3o? z<6hVytSCCw`Rn~wQsZQ~o(lIV+#gYxYS_Bs9n8gjZ0;*J^yeZ%^)p(=Cy%oHTO|?$ zpOGN+?kMJdN$dBySKBb`@yknQBZ5MvwvjQGtjhnG3f6S`G=~bc7T|m{yJz2Lh#Qbh ztQ)MnXS#VS`d~~IADRGrSh*hOdH;V;HbySV;1T~3c1!+!<p0HF!^PRc`hRBgHu6$Z z!}JKfXKLQgbUN3eA`gV__YL3%2_YzSgaljCJNlW)5|>wNS*4x`FhZdj-gJ%qLkptL ztB8(lMXvU(BzP10&!OlS;^M<T!snCrEa$9kH!xQB;@CF#h5<?)w)s62^;h3FbfSiG z%BfpjSu@|hPe$icu|ncauCo2i!RAW)bJc60qFA2;3WVsAo1Nq$V+CP~JL#gNCHh|k z_JO>^`=i2^xmf65re*rDV6D6+fp$xOl>gGF2P0Ij@VakVn)Qh@^vr|PJ|$&GJ56R* zm8B%kk*zQm!MeN)-FKFGcBY~MeNdmm&!jw4c_i0&&A^>qF=-%3bF_`|^)kl(Q>CiF zM&>&o<h1KX+WjZ<0q$<JzyKBifcW3E=)a-HyZ##$S=ibBE9{A;jnft@(od~kz#<!R zL#hVH%}z@$yT#%sXYNFME_;%1y$_{`Afr{JzQ811#n;~51}Hyb@$tA#Zw@K4)IajL zojP~deyqD+ii%<CiQ>LpXS7p-Sp+p@Mx;rCB+b9D8_No`6nUnfht6o^zaCcOqK84t zDy5MFvF^ArVuZAcq+U+1MMV+A8OeX|Zyw;q$jroC2LkgfN-T%4kjynIDXUU?!TT~6 z2^FFk(^~#iR3A~-6%I&Og``WHPI*?G7!x*%R5;TdT9iDR(2$+Ji5G9khz7<8S2Pul z1`}3D%m?Holyj&3Eq9D#G}oj`VS{hRP6sWLP`NS@v{JR5I5JE{(eU9zhapX3pCgzq zV8?^-4rE+Sfe|IFKP{-UJK>hS)q;<W%KAq~SWSW#yPJ*m<ITwK_5J-h-;tniCq7LD z*w$hc6X}k(=n3`+HJy<d3irzcr#E#Jv2K|*u|AeKf&Hdn`3-Eb`pl{#o(-B>z#sOk z$c9Yyb2mZ{1vd@A-|s799_`ICV{1f6mFySPU^s)AM@pp(p5`wRp@vK3uB{Bxs|oId zV)=&kq~}^8y|+Fd-~X$KO2IJ3xM4lBsWH-RIDm>$CRTQsWj8uQUzfmS_eTBbT=~+Y zkjSg*NhM+giks#ZK|S$iv-VQzX<3a916FNn_IfXrO?Q&8D(Oc3jTwotD4Mi|{-t7I z7dzZI$fTfCVIqr~w_vLx`;y{myD)(j?60+mjylDF;o;5L5m{9=VXQvkjrz)5D1aMD zy7tIxJvU{=Wkvkwql<52x~K=+io>`tVf<)>IYuNz1H2H4F8Hxya&GXYen|D_hhrVr zbz_z<s+rEqnlH*i&$S&jPh_2rbCB~A^(aAo{8O@|2DIJ_n%KMew6OAs(4xI<s7YiG z=~8%Q%o&r~SYgU}K4pWtB~pPZC`zph`ftvLMzaag<aJDnt*2pzif!g_^!C|V1PWp* z_`tAno<t-0gZ}x<TQ;yP7Fz*Z6%XXu>8Zv5wB7~Zs9z{u5X9IOVQm<*i}>Nw@%-eY zPlZav(0#8)v9>HAY%5yzoB@;;S7zT(7<?5hjI1&N+ssrYWGs&ts%`pj9(x_Gi9fIt z6&&!HeHDxyJOns#A<3b@RCuoO?epruJ>d=t{2}-5m%D@>Z6SCA+MzQTh5bNQ-dyav z_bp>6@Duxi4ui%piTkes1H|k*Fe345ci+UZ&68JLFJSNR2QF}MF$RIZ|J@$2$X|<r z{@?}vCVbzOmHNg?WXU43;4|DMj><{ysw|7=1B<X84V;j|j_NRB&O^w9{4A;Tm?WSK zj&LA8KjO;rCPRvz3}GMNdOrzA@T2cDJ-??pzwfWDJ5D7x{<Ox}5k~@-REVV0MyQ7k z((XB8Sp!2%ACT^uu)W$xe_>(l>H@f4m|@yEhQu3)eiMA@{VeowR=T>wy3+n0J(7N9 z4NPD#qJhYYU~a|wH!vI9zr^;kPsp)(gRaALNMfC`$SHvo@t6W4fd^h+KoZF5-!AaN z0#N&Pe{qrR=qIKdu1_@uxhc^MMYSH?DoFsuMiVL+Yz>eJ%$Nl0*pQ?rO>8U!U2QQn zT-($zh5`F4(!oB5A=4Kk5(F))<7Xr^?k7~m0@HVif&h@1LfyIn(yK@K_f#qw*(b{V zAZ~KV)X$+(W&@>)ID5f1j}`N~bBTnhT9zZK3IEyusg_j=A>udvZT!?AIaE$zIZ_BR zP>|Faa~f>%U|nhGWm~)lE7Ck{>>FCO5eYMQa-n*mf0omNlR$?HZu3790@3*wX-b0z zMJu9eE={6ZfiyYS1DQ&NpB2TCN8qzRpsguWPPlJ(=Cy9uEY#OrQN~xdz(=XVVQu3o zx2Rc!PTb{_tf?|ehvY(mozFDUQn^((J$>}pZf^9YLA0gWF+J2?3}s@Dq`VbY%73Ki znphP>ek`iWt=z>YIqbi@E&^dGX$2srW-lVy6&@JkGY(`#f+kRUiitP_L=Z_2OvO$! zq+8tnp^5c<3wq}qZxLa`a{edN8NZ|O=oIA_qgN9HU@xprR<C}XZf?wLPv<sNFSu^? zqxNB$k_#QKjLw=}18m;|QA1ZR^oqUxzUnypwQUS~;o~vk#H*XX&+Nm)mS-<ZTR5$* z+bs2$*pDL`uM~bFNEVkJgHN8(w|_o}M|Q~G$~2^D%d-6?r2>Gabq$g-K(~4cGIhrZ zhHRu)Yd!6yfU5-U=Bn9Z3hHY<4?O))AWSY#m-{X&nD>Ab7%+o-;w)d!Do@51h{t*G zcgrJXoXv~HIqTdoEgYk%m)QC&aIfAbS0A1k%W{lg+f5X9Q{}Hw3Uq8qN4FL*?L|@0 zudXr-d#9Hlni2YE*bNqg126}m@Wau2SyJ8}&i8#Le))p!m!gH3cRn0g0otVcZFzG> zTVZxc5^P4rG_mZmDQ+Y(Z<35mf2BxDw2R|PT{AV(F-6WM!)(29*});FooqVr1B}Q* zQz@zAUo8t?vFsH|DKBd)%XmtBbfTuI(OCmq#WqQ2oX!F=LbFMsbp7#1F{hf;lX=&> z!T4k?w*Gp>XtCZ-(p~tO1|jaIc=*8R`Jk~;7Eqz6X~3+Z`Lobr7jr~0TC4r8QtvAp zt2h?3x%?q(8kL2TOG$s}hc)4Sm=_BS>DXWvgCZ89IX(is#C|=bIHwu1lA}LQkdW*u z%#8DKq9Ac;77wjF*CKCnjr#Y1$6~P1!2KA_awLEbN+2qdMTwbiK-;eD)+GlLXE*-i z`nh5d*3!J9f#n{~=(b+g*rYzz={3tt3#u}yWzA~17B9{Hep5VRxS4{Y>PG69<1ydY zX8}t9i9QPut)T&Vce^(Jdc1Sw;l4^51C+ZN%1&YxrZsxspt5WFjk%`wY%6-nI~8qD z>7H5=K)yH>2=rRv0{T``9O>w-yZV-xJbQi5CGQG_<f<eXonacDg9!B-s;Kj}sGvbS z61%MhVsjrn8Ze3*vYEP#(5_pJHW*UfhTt=yJ+}2xp{^${%cZ4TEw}#Lu%d>1+<1CF zDR5`MQ@y^4-)pUoI!;5oWVp513#@;-1s>mrt?ppG6Jwd)*f^cCTpyGxy8Fr?q@J5* z_bw^xG{Q+ke8XCS1*Yc^TLepIXyB#Ia@!C;=@K)GRZQ*vvbaH&ZetYxXr=-b#Z7EG zbS1W`HDniPO}Bd(eA0=-l4~j_jx6UE{UFc#9uK&t#vqCFd8{)C|MsV~<jc=B#S!oK zsFXGOBuYcy21NuD7t1V6vjp#(^|t$N=m!x{w!|N*UNk$djx$u@$1A5Wmi-_T`SqGM z2A5lEZoi{|gEEMxN^S@0M1#QFQo*)IE!7XjYg#fsN?X!wO=BmR@s=$XK(vc2Txhaj zf;-H^jBn?O>%_!7m0q0*G(DY~7WfR<cSIz};vN*wXhC{DIr}OVq?u?3D-{?OZG&=% z6y(U3lw#Zra~nE!?9=zM)VMq;3RqW&8Ac+_!6EXoS--cs4@87`1cCmhqLk1)S~a<C z_FyXPpt*RHg)(M}8S-J?-GqH3_yi6*lPr&ZCrPFTpQP0O)%Ay)r7N7+HJO*e(p}M? zRr?hQetTd!WOJ=^Ki*)8W|S%XF7Hj@*a4fj;zOvnto$$l0Ge#LuObjExnP*F{?UuW ztsbmF)7}o_+H}2Zz4I@umTcm1?4pU85UmQW{(65?!MZkuhct?GWznBDrNY@7bP<8R z*+lH}6m~ffZ>EWGFGBA~c?F7qqCrD&{Z`--V5dw^S|Z)iNv91mS+fYp8g<8vU;<^G z<ButfS;N02ojJyc3Iz_|SSS+Q(ey<i(P_{^bxGB-_@K`>4hH}i08|$jCc=7Ic0EPw zFjmph^%hQdA^2sMt(B2R&?t;wL+Y%Tx>;?Gv4WVIJvE!ETu8bd9JfeDv-y@Fsf-{o z8yvFDUw>I5ptu>6drDOkF5Tbq=Vfl8<J!gnc*U29{Yvp{3IrC&Ve~;^HRv)kg`>Cl z`~-Yea>Pj&>c2!ib1FG_1Vx;u!B7M#h-~P}8n|2U-4mJ~U#no;F!PMF>6qkG=GI7G zJ8p#3IgrU@Z(^cpTMe*{b1)pRlXHM-nkICZrbwa#YOs<qrbIRsIbwH{XREw0p}kSr zN9oR%B4Wu~W~Ft!Qtvckbd=Ym-x1UbVu5E}6(G@TxMQI^#|W?v(0vFkJk5bO4Sijy zP3IWod-%ge=}f1t@;CKh`s5p@ir!9^+V&37N$<8+yh;s>Eo!;3sjc<pr_;n@A=N>% zYH_KRgtacKm2%!?s_8OIwJrA^tt?C@Ws764OqVLTz^9PK{p)eq7Umu8AqT~4Dnmx{ zVvMIDM$bCybaew9Fh_h0(aF<!vpdFY{B_t$&~gT}#6;J_(*?XOH*czoTEPh?O-(}( z?Ra-Osl|!94EJRNMfAYgP3=}9y~=PGw~GZKJZYA?E6FB7he>aDq<P3oSJP=6o@qbS zf9`Fy%MgPI&#M<6>+I0tH~uV^t#01t?1Qa74sS2$7w|tXYA)*!9+Cg_%WaSV0RKdf z|I2yZ#NFA%(e|I%|Nkq)TU2G@ve^-O-s;F*;P@8_s-|fcguBA9Pa839R6B$bANdz- zM%IT}GX$!>?<yK)mY9jV((qf%rB|vd)%3<|*;a$Fc5K_KQtaV)3vHu&py}p&Hvo0M zzInHQ{lDJc?4P!*&gY@eL-+!u6X!8MC3eJpK$g5Ln&mCMKWO$1kO9Pp-;p=PE)bgU zgJ2mIx#axn3C2I8*b9SJGvTTkdKU|a9<N2;m-L}kNLrp%Qn-|F3{ZLcjTyK*x4P3~ zD}SaQUge4!!VMlqHcvD#Y|ZjZ#*vbbu|K^%)U7S*WfFVc@!?L}sb3|R)6L$6u`jOy zG*C>M2uDA?>}29r<Icu$ptSNRP5D6l5NDFfdwD?^BqLmK!=I0bgc<NG5a5QB!!Kky zAlW39XDA!d;!`$Kq*G@!4g<?Mmtdfj3O5BR(#hcVIdRfZe+3<-z?1IBXJsq-R}6cC z#3WwW&ScL+gE+5}<`H>>ukdl=E1VqSi&=&qgxx%uP##>*tq%d<2NRYcpI@(~H<IWQ zr+E4*OZsQD|1`q#J5>X64!ctn#r)H5cO(1Y#-uQ4$G+C9M2kEqNpmf+pNU{R1a<$# z$8Z~ty@xo(YT;B<svcwq?k4EZ)N_JE_bNR@W1K`TYg?Zri)ZM6EM!Y9cITpne=jUW z&XgfbMw`e;!H3O~Ct$WMlx;vFVDzAju8nT)lv8+ol6+J&jr?G`Slp0&#c(bnx-7xK z&MxO$6W}fqy&$I{p!x%@xy<4y`;H%yuKA_X+!bKJOg>=r*Y}ysGoP7j(%&ds6DGDm zf<G}wJY)-?fZ7@sQ>b&c{J8K)y7Zlm-kdN2*!a%eJ?XDlmMj_z+)`$D>B>B&JNU=U zzZ?t}6K|ICAGKD+FKsgLJj-jIVV;j&O`|na&&{$kA!WF_Pvv{mZvJsKh_Akg`s+OP z|HIWeHVGE2Nw{rI+qP}nwr$(Sv~AnAZQHhuX>RX+*}WT4zu-jFd8@KA^GW_OHIod7 zj?@E}VA`X(TD9C*i(#`WnC>6U!`i7eFb*AroWLNpV+OWIv(*PZ7c*cfJ_KM{9?Clq zlt5@&1oq!vuq}F2<%QXrIqtDuXUOIAn|Ty$?^0(~WRNR+lDTVybwd+LX%>i3wkK$O zidG!9OJY_{7MYLQx`u1s#g);P=yFgGD4iggWAuwuD?an0{5Yfak(SAY)F2LTJKWxh zW!}{Gw0{V<D_Wb2nQ@(@tL=hfs;z)SDD~!GP`v8-f5CGiXh~ph2mk<KQ~-eA1>j`j z>|*b1XJ`G3Px#;6o2_mWyVdgNS6mUu;uGhz4raEI?;9DQxnhT101MsphJs0_Qt*0` zED%(5YyJ1^V=CUgeZwIDvPKrqH0a@D+Q!Dlw#(zW%w^+A*7fIGHoR$NCRVqV7A3mA zAo-;XM3-_Aw%QZ9$?h4Dc<;9>RswMwcEr<Q>uDv*=Q!HpG(^Kx0i%*u4QsmsRZqf5 zrd6}_N2I7m+OM{X4*dKUNN3S)LCp<G;IpboNdn(~A{LlRksRIfW8i$Wfa!H&TDoI+ zMAq3c4OXLmU-)50#o?+|V&-ZLTCu^jz_asVTeeGSA=Z8rGz?Q&Z<f+mzBk5`kg8;P z=84QjHlZQOMk~dT&Q}5?CkeEeE4~K4@YWr>yN5xC>?1?hZ20_FSG@@=6Mbd*)X6?l z;Gp&`IxLWS8<Ublp$a7CKtIe6#+KaXl8b2g<8_~S{-+4-AWW2-++bAK`*2zh^iu=I z3@XBrYyW0yZABPg%d7+hp}Bml?)ywvXh3Uutp1s9SfgD{kdw_7Dx8|<UZnx8`Juv) zwl>RcfN=3BpNEXSxkyRsjPv$p_~)t&|FstvE};c=-gkZy&O(S}{!GlI)Frj)z0c6y z!xasbI9dzTrXBf4ssfcV;x*t5=d;q<6fQU4;5#8(7DdFbSFO8YVbE0|nLrwtuIb=w zeYaogks=zyt4;iaYdfe(^hw_Hg?sWK)$gu88^~@Ny4ey$gsoDO{e53nqgf8R$ltSS zqh9rcdKYqg^!15#`&glu{1uqc?n9z|ciDPHs>oYCV`|_aa4zP4l+Z-=2;L17<vY)z zPk>;zsQN~E+8|AqGWe~3_P}rf;hr6)8m!)V?y;m{q`fv&)sx<hjc_r9a%dLs`z!hJ zRP{K}|2TOrM=tYNKwg?#JOZ5}tUsgQ5=zdBa-Ff({&Z(@)X+rpi4==0|Esp}f=Z-* z%M|5EbU_Vh=A>)5zfkF!I;z^=(nUlAGB<&ADn=4xpIG+2iJ`<F<V8J6VqfEv3HJm+ z0KPy@1S|=m`~F_Zt8{}@PYcm$KUN)4f`S@WxY(A%OFr2aApwW7n`ahvNoqwpK1T3D z1nS&P2Ju*TteFl{0|tMWut4|1H<=j<I}1EA@{iI5hO9Sk{6RHuIZ57d2P!Jtx;%<9 zlCp+KyTF{HkS;6IVxz4k2AW{cCSqLDAVl`WTt$QOm+B0<pH|9XdqP=w!_ceE(yd#_ zmZ;m2$2VwjTgf*NI+Oa8czwv<e_y$GG$HSh%=jUt8>dS+5EvdH=|(IrW<{se(F;lC zCkIf<!^@43<PeIk!4z{@TF^K)+V}XIN~kgx(wiA!s;^|NrEqnOAvtIV(E>(<7+D9r z`b?ydk+C=wOVG=(ymQD{rWamQ?Wfavy1rZ1qb!!_c!|?+6tOyrZVB}&k>R4&4BuDd z<epT#Slece>;FLEJ@=GQsT~k!4h)m%(n|w(XAS#cw5yd_A)PGw9Z@ZEwCxKUbDru1 z-R)5J!A$&{A_l$aw7QcXLm;;Q!VHL<Q88yCB9VDmO^qijS1N7Lf*t=Wemo<fpX15+ zX3-I16M%PW+@{j^@R4b4OBZ?9){oPNH5!<~T3zO_TAmrvTRayl4qby}0Qr+AH?y<^ zO^o)3dwrbge8b?tcPEvO9-ZeY02tIKmN^tMU$gpR9)^I9QWp*FD(lKTEKQARrU`&F z?YXNar(isJ&t99g?0$v371tQV0rV+35u<h$1((51lIOZ?s8NO_*jZLeI)5XT<d<Ue z(@>#Rm&Mu7^!CzC+DhZJA>5PcoM_Hz6PfRnA#LRM0FW^U>B1yMw0r5xFLZJV;{m)a zCXul1GzvQpX{IgKT@F8fBQIrJPZu9@YV9I2VeTU4`0|!I8a|<<FnvP%c;R;Y^D@1< zS?=<P!t+=PjE8cvj+NT#vI#h29Ybl3CQR+op=vKgZPV7%1_QQ6p-E@IeplDasvVqG zK2*BgZQ>*Kj=WgIql6)1%cR+$=lzk|8wrf8z-=+t{kZs|*@=PzG??1k{q|eHTJkU{ zAD8WVz$+ZIgZ@6A21HZpv>rH8wt#ePYSBh(h|QI{)oV_>_D%$A?SU)vo_bD@YY|bw zVc5b5tapl5tiZEUj<~jVW;CwDv?x|r&N!Dcp=o5)C|w{r)z0G;&S1w1l@obf93z&h zV=!*y?7`C6y)F94_aNNJ!w-wr#pO{;-Y9Z(4WN;RoLn*3RO4m*;D3ckAr&69nfgeo zVRDo>W}_mRus4`+6YEXTBg$(tSiz{<C4g~rJFM`}@rol?Ih)5Ic1a3nB*Z!aDZ3$y z&xYD;!50OUBEy--wYX`Nq0N$RXWtR$1141&WIU<{fQuEv>G=A5ALGsoIK8i)62|1d zh`k-*l6}cP_?w++i>O}ReI`{X2ABI@-~FhCpCtGSLt87|E#JiVI5<#F4Wmhqx+%h) z#WZS{ygx`RDC?~`l9|NQO55?HmTpVl<$2@SPxc0>nZT*=8OeX>1;hs?A!{(hH%*J^ z;)oGw%AW6_+>Q7bG5x0mi?ir^&5@CszsVvGoH>e~iw;xa@8COAqRUwaTF|p70K*@6 zCh#~-H9hOT&7Gdir)>K`Za^vvfc2mzOqysyzaf-7DG%<*Qw1nFovahll9NcAvC&*F z`cC>pu718W=?vR4AyXuby0CeU8QDZmfygft<Wq<2`K1URxwHNvl1EN`eEG_d;D4>E zg4Po~SL4FHgWafHAJZcGoV|%ctdNleTOj^+4GtU<gr*Fd@eAf+Kj8m)Zzv8kQK$t6 z0O-R20Koju^M-+=k-3GdiQa!dmHj^GG^<O+Zn7fue5lpI0ZmpHh<KhEL_RHm&q=}C z0D-^)Wu}m4HVan}qtv#Z`Q1*%EqS$O7NO{`p@uQxo!(E2Up~J_Cnh^9s;gQK4rMcO zyD8#m)Ld#(jmY>W;DOYvY^^_gc59Az%#YN2ttT}g-q#+QzNu}#P3CCQBmS^#Omv2J zDs{zM9rxLiz*jDuWuPo@Zs{`_M6srTw&NXq;oZMXK(n15&OlUZB}U3Bl5b+xQx*Mb zUp(p1ymsxXaOHZ5=+<IrTdB5m_uUCutX{m4WnbEpWk=hg5FX#0xZdkUGR^kXu|r;) z7bCe9xkqY;G%2KN-arAfM(3Ja7XZe&RjX9db+B63R$%0PdRfuZuI*j5Q7MZy+J-xk zEr?9%WDOK-1{$-5;i@N<(=gDfy=Jk76|7=-hrn%S)6F>EYX{c<MwM<~A)nOEOnC_C zhZ0(qSIwiO3+M<suFph5R_#KykY;uk-bjZ5(2KtJq&r0Ue7iua7KZ<ZUDy98^PbHz z{Rjx~nE<HTUw~@aoz3prtrcJO4K$i9GRaD=E}$0-%&n*25(&zUwV_FBY{lPej8%{= z#D)B4ja-W`N>4t1V){4`5sGyqTrY#626`a|uUn18Qm&txNFOL6)<KKt?Ts+6S1^V? zXg*w4*U?P-zO8^xbENu*?WrtbQsRV6^^xjANCA4raBIQtj{L7CG*|IP!l1Cox1ibW zc<Bo@mg2GO)*ox+OGS?e>eIhv&E_>C!+8S`v#`O*&LX)?I*4&S)`~-}f9!pS$~4Br zkQ4T(H$Oo1<7ja~i!jaz(AKDj*pCp7f~nJOGD{K)#JjNo$;~7y(F$z0k~QwlsE~zG z^M;85gb@vq=M$l;xhdfQA!dS$&J{_^i!HmuxF&TT{4>WBlhSdw4P6Np=j=^Fz?@^` zk*1%Gafo91h4-@=@&XYu2td^76AHF-8&&$4lc3zewgo*2`4!d7_tcthE+Gu1uB6is zUJ0=BbRFCd_GIR={T*{%IDS%*G;3SefR=KlT$iu!nwC)}tKdg1`@kr0dR9cV!lOZf zoen^O=ZvckCtN^7Fw#Api>gtzHSl7;e7B(Wxl}FPxR^oOaFXMxl%7mZ>1?138paf! zqLa@5<Qw;mJkhHW9c;!tX0^Zgy&LhxOSW#SI;2L9&@`phyIPOLH5BZEQ`4i~8#iXq zy-%r|8x~$)>fx7l-D(Y!E7`3(b(+p<aO<|ZaNUsOTzYHDop*|v<5~GHol6sN8LB9R zAQh%^mqL}!oDyisQT876UlT2Joyjby&G&7Pi}9nUHc!VjGg=5#aUHxs_UQ7pLbHa_ zZhOuRMbIOBEuTjLwa%5Z61my>z<+m29Re>oMO@^6miZZo0-r(G&PdrGjsd=m-Eb-2 z^|VGM3y2VeweR+OqkY|nrBFhSwB8C}k(=uE@6@6*uO>ww_2EWDS0$N;AjD4d%iw_y zWLlB8P9`M6NO31I!Xh5(5Y+fuSYy_jEoqm(BDAIVRngvO%(Rau96NfF-}a1`e@5jT zceE4w9|ah}4Ef7$%Udhw1aR=RvJaYrZ{T9x@)kk>%ck(_paEG6^}>BU+JovC;9S&k zEx7iMl0Ii5_=x>|q^a`o^uKXmRmSdMi0ilo_w7obO>@9J^BRtWKn3t-#LB}umjD~f zi=AS<1Ds}=-@0x1XJHH-e*5jJEUB1`S$WPosE5K`M!e}@dMG=_t3AUhh$q1vL>nu| z;GlU7URk*k-Y2UMS`tt1WRh-ISCFHEdNz%Z7v1<<N&bTRYTIBP<n_rZ?HQADa=fat zio|Y^G^Qu3%ok7TE#VC$N4>!R<S#Gc_e~Om(VDgYOiY>{3#3cK^X!)(+68sP-gd^z z6o@uXu68nz1kv$_vP^3I#BojDHO0x?J$Ze&?@%z%bmU!=<koeo|H{=rs*yo~py%mH zRO+hpc5TwGWGCk;3oA5uT#i1$m7I)=)EWb9;^!}oz$UDB!y%6k&Q0%k?if>_Zyfia zr|A9rj|Eb%*dpWFY8W4W4H5p~5tNZblKV7lxB0)beAltY_8P1qN%#_k!+yWIM&bS- ziq^@8?`HKBHO$lbAv|;Wjd<RDh44zMNxAm|{=3L<Xhux{G372^<SZY^nZ{O_+$*st z-N^SnJlW445!P41b#rz+!++A0;PA8y9J~R4atnu)*m1OV$30KOW?~KQKtl)FqL#r0 zWNV5zwE}^Qk>MjbBA^4>Xb=+yxXW?(CjSM4#}>#-F@W%<(hC|>Lh7crD4qsqXt|B* zUK)4q0dyfCbt_*Sgu0p5V}a;bxoS}9vWpm+McO$r-H~3%fc;}Qy#>|o4()fwT;)>) z?!fjVj=hDK^+lO90w;KU1;aAq;yUF<#Ni`|83=;6hYu-DS~DMTnm>q|GrNCK08lPH z+Si9IerEuT7>GEDN0%dT?cLq(asT(-Z_}uTx_F7<_3=XE<;2ZHi4ue~$s#=FSIm<Z z=432*!{;f26sQL#9_1k<^I5{1+OTw2>`Y*5>5Cfj)+Y(a87a2B2ff@A|K`^8_JG~- z^O+3)=Jsw&l+7($oETv6{Qtm=cn3V#*S`%GWWSoiZ~piH$_j=q7S_gkHYUynze9dl z-NtU~e_R{=H$Li+$sz9%1^fWOGG2fiz%>vF$Y1(cP->Xh4f(=266-tIH@$A5MLWqZ zbEsv1u4=~iyLcaAlDBPN6S{q$Gkl!BXpo{ob?$-ERHpo|H7k>t6`nK)gXFX0Pm_3Z z@(i+Ez?hXV{ZJ}uJd_wIFgeSJBT3e}4M0;9AR`GoC8?ISlRAkl0VK)C1*iD{Y%SmH zz(*KWWULo@o<Bg%CqXx;tK?-SD2s{Q4_v4SOvKFjov1R1BqjHk|Bk3PO-t;QqhVT_ zS4pJv0A6Mr#8xDl9PxHHa-H(8<X~XOwwqHn7ov|I3x$(9N&|{-S!8usd}5qX5;q1z zp}};hL{tDpzi7a|6iMC|$gyyIlV4dNdXDVaFI5tG9YjAy27}?bmdObjl%qD9PlW?{ z{1J)LF}tEsztt(tw(t`_Z=9sIje?%xH4}<Uj`NrNPOs0sP_<Yff~izlm%txIfqaBg z_ZqRs#FMH7<kP6aOb|%=dk`#nXQ#LX1Z;`oX$2bUQbOaJbkRrRwWoO(G!$$w06je& zp4~>92$SrcU5{7B{hLZZEx5r12S<9)PMDALq#mdxv&FbOV1{T=%(tzlnDteTy#wGh zNpr;~2)6E*89k<Td>ANKUyso-B}ME3t5Qh80mvr<)f{jcxXR}`fFfBMetUS9gE8<# zP+W65m~b85!Q&*5g0Fj}OY;&m+hX##nxfJ$EP-@PdzAfH24<VP!|ci+TH^-TJu>Ic zz2pJ2?{aI#Al^k{%_>?AWU*-v#Wt9fvi(OQlYc6zv*-@fJdF;25{~*E=<hi^3y$2) zO&DH;JNXtXIaE%|5@=Vohjz7_?T}>BUSD@<bu*tU(z#6=5o`x-@~(Hn{n>N@%zQuu zqg6Tswa$mKR4Jz#F_>pE&}a~1SRf?cr9jZmur#IfVJc``+oa0*jjQx@QSP6@Ee4^` zYVeC-rO4opg&m_bDG3o&25N$2?4dGAj^?^DC1hRuLh~#b&L{f156&MOwC><w&<&uG z&F3B~I7vXtfCkQuuyrJKB<pdK^?-wg7UFEYLrPD>i|6vP(~Q{}3dzze#(e4B<)?Dk zgPj$+S!M9daei}%fiXi6&Qai+7R$kBxK(Pg(6DeAs)_}JE;cZ=A1qIXvFzIelc=0E z%6f7`#h;v4nn$>u5uvprWBUUSr`loV7zPv@vW2YK^kTXz7vm%Tz_&Il{*VStyf0>7 zRSQT5BkjUz-^cC)r;i8tna8yM1~0kD8Y3rZ7(Ju|X;X#eo~AqGMZ^29eV7D)JmZ9^ z?IA0l(}wo)S8{8Ich<@{kbAc?8!9!9r>&Xu#*59wYgw>S4#S7Up_ape3`zwEw}KJ2 z>(^Z6h!FAW=JtLQBYS;539Y6<kQ}ha*N=qE0Jc=nk@i#+wCWz=`YJI|G@zZvF7e)_ zc0eIUt#W|=L018^?cu3RrwWN2i4uJF^W965xew1gz-4jxwVa$gqBfxb73%19%L6~u z#lFQQes#swW41Hv`lM*z{~!)S?$?Ru@mKL0Z2o(P3FN_k<oP}TAHjF0r>)0K@1Xu$ zw6%1!Gane0)y^#v`|74p#fXD2?M33mf;63NrAY7n0ZGj-@D`m7hIEM?_G1zYY&|KL zj3gaO_LATNQ!-#XKJ#X-HM4Kx4m&rnQec$ECG3#l75KD)5o5bVfpKh>5D5iRf38#- zJ>fjpSE=A0T(Oi=;wDHg)s}d2VD~eMt(z|h9c}3}@1eoz#`V6H>vfBU8kZGJQ6@D< zCc9^e_~v=U1+ryj8RcaPWqa_>!e)qV1nNkEPbn)$0eiaIh26kgtq(2Its@96C@>vy z^)-3WtQp{!gTkR~mRHT_t-!d{bH4-oMuldDct#{HVJ_NDYQV;JMdilTtz|(vKe^p< zoTuc`oilJ5HT`aB;&UkduI*^s+mTE5mzJX7TwfY+$L22Ciwbr%XbLcFH;g>$@;kXz ztReT)nFKSDJM(QyW{R;30EEWM+4w5E;NNb?j~l>CuHH`1pqaNwc5h!On`U)V?u+_h zwX<)1NZ)w$+V)bTCQl#tawDPjiMKRTF<W-FZl-h!sf!IuUyG%K^_^-8a5RLIkW9kV znV%^q{YVn_)~VA}Tuol{%e&me&Oj_=%fJ4)*M-Gj({IM7*%Thu1=Wq<9`%>-9J}gP ztv_N#%lV6N)ZGP0cZRbCLDFKiE`Enx#=W1EqZjvhzzXTtRkgGyN8VWNZ-4%2?#JiU z`UALsy?ifVRLIa{pFQ|Dr#Ll_H!5N#oL=D2MPFJvblh7}x{bJcP2=Gxjk3FtmGYa5 z;PCB#-h`h+JuQ5rerF>9AOOmLjz}YG3mPUyS`&AZt8PE<U#X7Wo6Re6i#T%&lof%v z4@h7>uRw}<lC+Lt9U*BiG#U0!!XD9rixf?$7a$%a$ZgH^bX{`G#zyIeWc@C9?#5}o zoIu?#Q!Wjl;GvKbqFJF(R=c8p$e6(D#%pG4n^-^h_55S?<NH1o{&jSViOFmx%jqO5 zo$0s4{bnx;d-VQJZ;{=Wuk?qb{pYI|`ukM+%LuNO>~PxR12%Fu%Qg14|9QnlX7@*S z(Py`D$8T2%-bb(DdlGns^dG@x5WEJ}&5L^P>(?^;R#JAhMjUzJ4AW7r_a&Uy!%tUF znGclLcYHVE%`8jlI@!Q>+k|0jqgREF@vFnjZGC5d4*Y8|{Lby*r`q9}tHYLIP<&*! zu%+l7D`o=>2DTfFZpxWO?sRY@$2_?;4{xcxwk4t5!wd&3XZ;@h*~$RGAJ;ctZzI1( zI)|+)zrd8AO+Bk!6`zIT!Uw*uZDO7}i9oNfc@V)h)o)33s?q9>a*Jo51)n?p<;kOx z!JpQe;2_UzwsZZheL?Ekywvp%nzlQ>-GZN=+aG8@mZAcFh;~?;Kqh<To+FJD8g6AN z^Rffc!ri@+OC}Ck4(c`LO^)V*zO8;4_-ZDQpO#|Q4Aghf6S7F?hmE(YgyaSXgC$Ky zogUIM8-~?)HP3U_lvQKwItv^NDyl*X*66LExkJsx2`U`F^)0wO4w$7(5K!x>XdH`0 zE=pK!p|6OJ7aKI`zGg11kraoPLCZXTe>S>xr8w|c%?HZP*5brgU;_(na~D80Rma9D zw<HUyO_+eXPZe@`eIQepuokp5feb6bS7h~+P)aE38_oAd>#C)NhIanFp}ogBba&=z zWMIB9u`z!PD?z!2D9@a^10bpBR91db_g2A^KNBdpmg`ey)i5e|8jhwaQumS+X!ik7 zGBH9j7&zEr;SZ_4HLgX}<UDvyV~U=T5PNKI?qvy<Kyl5fJizab`<<Ioug3TdjRlE` z@@9Y$Jn=i4bUqP2EePhM2u1PE%xf`=$bC+m21R-w_eZ&o0{*-;B$?0;5~t=@UtO7C z^(W1sjp}BnmCsq4)VR`aiGVI90=!>rqI631)X^yLJ2vX-LRuP7crcTCP2td5XlO^^ zF_OD~;B&Mkds9D&i>Wf9r?Q&bU?YTCDPnWLSku>bZR18a23(IQ-v+|vLgNQz;lO4k zOyL<t(({;xMK(Fk(!6EgMX;9UGL$gB7<d7)Li%Mu*u~S5{XuaXor@eYB8g~g6th3j z_nbT3?FSS+SCWPxG3(~)=47~J24T%L0Hp0RODy^VQ$+W8^gmqN5{0fT(tI<a-DPn* z6B|<;<mE$iovhlmQxi91C)#k%I=4_?)Y|fCNUh;NTl;>v&mO(q$cPK(=2*_FEap<3 zMmRXcXKMY8X;xuC1-_^PINXnxyNZ2dzL@rwufY+J`~iCY^=#vDa&Ur<kdRzCFG`8( z$PZ5JA7AqW;esq4t)^70|1D3U(jS+%{7YxQYTn+ZE7?&CDj9x5<_&lf^g@z0IFLrv z^jGQ*91x70`w6OL-hs7=)?_j||8yMzZtdhx4@=W{-enMLBa=PUTY2Nuy{Nb(ll3=% z)FW1xvnr+}^)pTYX6n3HBfj0K3Zipd@(*CRO?sGTh`Mht^U&@U7YxUivjXZOD`@Z! zPaIr>NHozK3T}n7HjIrdoAr&kHGb`Ct+?x23$zDC;d2=1j(A=l6dPU`BG~iN8^;wX z%_@+xz&>^~5=0YdbLin581&MrqIaUPpn>Q=7hzW4^?v7oVoHJ77D`~#sQ4`nJiy^b zvq2S>T7q_`yZi{d$sQEkE-U3$|F6r_lonN!g(n{J(K)|~IMUgWhli~mZvVo^=<x6C zv;lTfWeaNnf>Bj}f4ND1z)`T4)r;zNU44=2<6^!anzQk_%1`Shl+I0O6~jKpDHU0< zQ%|Q%0LS=sM+zlLoAx9cu`i0eDEh`(AQZX~(|Iq(L?FLQ*_>w4KC2qYOhocA@V(Qi zx2n|&UJZGG))oGK>g+n8i`H|nCA)qBgenex6DsB!fG3T96Y;-*tdwV4d8B3@K00&L zJYE5zxO=RNj1PwW*5(?2>4Z&=gukA`<9`wNKsL(05{pYst8qpEV#PsjpDt3o^Zr6r zLk|;*oIyT%5DU?}U~GO9lqDte>uaTSt=ff5SjO*!telH%nS3g`G-=S{_RrZCYn@cY zXfdh6l=KEzIcAKf&p2WVpWy`aD)8szEH|T3g}-2{cY8a55L5(3Kq#hVYL~^)!;F&> z1L6hO6-#_+qKZ3EA`fR@)8!!SAl9;crQUhwvhr=ahvyeSsNM`Hl;=vvRvPIG&{6OM zB?GZA>tZ<Z+oKU+PTkMKYo#^weC&D8onYa)frjvYNk7#~Q1~wt=3?38!>?n~(yn<S zyEK?vN$EsVih2SIZjL|gS&}j2c(T#nX{O9P&s(r2+RV?%r2-@GlTa-at3+qQAkA?^ z@lxfIt4rc)8S(Jv{vQ~5jd>yyrCg=j;p@+kQx%;oom(`scXPw^adGNnCazvA>qq%N z*}z#R7cWZ-t!oI0yXO(`0UIS4WzpK(Pqp&Goutst3@rsdd}g$V8*ZUECRwX?7W~Dn zc(5Pl8HI%$+0Iu3bYt3l^+4|1HEPfb^^;1UU1~G~c29b>Z*dpBrXE6_*Gp9Dw#+VM zq?IMeB!((*_nWl&1?!*fer168QveE5a3Y4~!SIHg<0i+A<?*u%5V<kLi2i%*FGXdo z{4ZQBI-1}Zti8+T&}>bMez|}z;^)}%J6TDRt1?0R`4E={w*;Km!djxV?%~vRFC3nk zC3aYvpe}Y@p<OCte{mUB=VtlIY_tpo*@|g1%AM7_HEnUp+e1CO0S*w8(uzI05Lr9V z@u1`UOKem)x&7OuCD$%i8l#T%Y21V}N>Uo29$TszEwosw>49KPK)<ZPCTmWo@se9L z<!LqYmQEbPxnU%Be*km~xe>r|P9i$<4>iJ2&omd1uTmecYTB4%c2Z~e>9ZtK2Z76D zDuL2?#l)tv5AjV%lT!C6&IPp4tq}mH27W(EVT<*If~1z6KFE!SK52|>YSN_lA`P%v zGJJGG`JJ&<$AX2tCyXQCokOaA)ZR2qtI>qmh`3xt((mC}-o6Cxm195vH2T{9IPn2$ z(B9^*4E>Gap)D*6blU*qj6W3%Otdizbog&SewS#im6Q@E%s6MUAiag%3c<15n1+Ai ztr9P*<e_LEz=11?W!z7w>0?Cb$V-4MNa_d~^dDfk!Ok2?zZx{cb36jAp9nA<J(s|R zaii?s_d-_YrjQ~GIr8p|YXl5<%RA5+{Wa2T_^bp|@b_X0;4ptAj`3hO*+lqCqympk z-hpyp_lW?q7@qqUr7C55@jUHBnyQjZm$9!o2!=L=)+Y3os#X>bxkQ=_>(H4OtF`Tw zbn;yf3EQ&!wHXhq<@dC1-M9>i=JET`EZbVPNq8}(ebRr|O4iE0LdIm%|Wv!fuD z-fX1m#gtw?0o=Q~d{Q~^fkx0=k)`4mD#<Y~(O)!=r{f|qY(-W{ri}{TS61f1e4uf6 zRxHjZ&C+;k6%7d4{_XHC9fs`wPkFg8>57_Uh8`K3zklh}aPY;gCm4J^@GOg}s2Dpb zs&<VDS`7-5q%C6TJhgtub;C019KxS<2J&f;u40Lz#yOHT9S^LG?JCVYP@nieeO0W` z^DqYu>>K$d+y@bZgV}JYb4P(-l1Li7mtbm)dc4U`-gBA^0Hy$H<fGRQRj^F_0V973 z{Arg7JO%Gipw~6Yp<UNI9AF{Hl46Xv`z{*J>^$DJdcIAUccGqIHQq#Lj|?ONxp(+_ z`h)x~usay#+$1>**w!wM9>~7WUGQ_`&3oL?mkU8*{&drmkD}UIt2;24(>{RB$Z~ez ziMWi!W9lO)+Vms46D;?Ug`@Rh@MeI|NJCNSj1)DT85<c1_;eCsxin-s)_0pBQN{(M zJ|@(1Qp%Lg-<FEB0?n#I6<Jni2vvArAm$vgH>}D~9v0OTdwsCvy;ZJ^pFa)B0Hlgi zdWc=bgx@)E2S^X@f@(V8qznpK_B!cASSwVl6!VjWnv?#?GbW40<HEdvzvsl906lt< zccIe>I@r5VdFh4VF<fJ$J-TrD0JR={J!P~av?QewlebWYKH%+<JV(^bILu0ttuUJK zx$KdMlcp#J&6_={pW{#HhQb8sGXc=vh3f%MLJju3xIiQ<)~*YbUcZ!iFwS5DyrTVF z6f=6?dMgS?s16;-bDQx}K~vGuVMq2tuu)6xTwI0)wY_%MX#-}8HnWY^sJtQV&Rhtu ztYo2^*yDCy*2WgjzyI~iZfpx(O!qrEcF=4++R5`*Gmf#1=ZhT**bEBc@5?)6YCt|p z27^C0I_t`4*VsDw0nd^=TK2@-**U@YKQ=#Fh8|hi*uv&aKl-CIAgg7yvW;fKiJ<+Z z<6^l#7SU`%%n9AIAlC$v+wEIqo7dW>fRnpFqwa1gTQdz+q<$P3Gc`*;iP*e6ltJ^S z0JOR{k@e;%q(}VX8ti>xfzoVNouu*q11(;8thsNXMOI?FsOmH0fHlAPna3bt{ocLF zz5?o(6)EIFbw}*;CQ9F`U|>m>7m4KG14Uo{ynydlV@KOH(8n(2CpTOnyF}(v!XK+2 z+wg7%Jmk>J|C1972E_gMUm<nKjybAC5RhUXZJmutemR>3sCznVR0KY>X#x^A6g?S6 zRQb6eqA10-(qE!uVZ0p++xnUvMvdt-WwF~H9L+{3X#+i!jX^GqN`Z8@H`e9;kIcF6 zFWI++aWrN8zAu2hq?=L0%OVM0?>unZ)k&6s-ps%o+LDcdz8(+W$JMxV6=-wQfD`@2 zxFGA(iR;A3en~{&+QTs>4_fZl_NiXcNeK(q0Hq&l#I`dL>YPm2b#ZAMUZkZW8O?cH z=_ph~!&=H*waiYHcBy}XVP>QJN;KEOaxcv1c6W}Yu2|8?1vHX=dVekXz33Fq>@+M3 z>hw?<9h%wPCd*ybQj>yASaSi}4Orq%nCA8Vtq456){0^>2cB!5ZU)~X_UuOAN<_L+ zaw1Nf%H|X|kP3E6)c|VOZyx6D<XyjMAnpyqe9p=8VTSF1x}wXX<LiGQJpQ=|Q-V!< z?=-I9ZRF3zk#t7{lg{Il?m~pk3c;GY09xDv1cTXTg0FRp?!TN}ck<U+MLlGBcJ1;7 z<hlOv24g0B1uGKmr#*TJB_>kgS5oXN(Xm(rJqXc4ROGMy5M7n^jkJSvec3b$FsZmb zZew{-&eBbZbW7>8+4S}9PxtxPq1FKN*3JUYC#U=(Wk0*F--6TJs_2fK8&S5rt)T0X zhovdo4UO*Af0ihRC-_}75pB*d7?{4&7_7L|+Nb_BX#KfB{YIuBhHXOa1_!ZLbD9RL zJK@kNnTO+SZ2=^i*A5}F>=7OeGhqa@^iI}wD4mw+3refIJ;OcLPK8HnTRj%F$Rt8a zJ^Ah?>avGY+@6`(AJK;L9<b6+;)&#-gAX(=UpX6e_&Q0rRC0X;D5-ra)_+Ri&7h4) z4MLgL1M9Oa+d2#Gb?hOImEunK{1^MQ1ZV+dep6ZwAIPAxQ0+tkZ;sx}ZQz5lE~QBs zw+_3Ed4H&^Ye)%;5>hokiDvIRcoMK-S%_&Q|1=E_83(PR=}k#rS!FS$GTDRvL8NgU z$R#pwMh)v>2@Ll$A&KG4o0U^dSgG$+!ZO1&Ah8A*Mn)bbg-Yg0kpZpg0yFUi6u*fy zR;lJVi3Lav+~a*xT9!h_1B4O9Jn~IO!&urX!W2OdPE6*Y-#$9i*O7=70h@L`Eq<k@ zINE&3L0`0~9i)0g__csBqgFs7kEz8sMYzN-fBYO!-chwfWu4Og!5W<e#$tYewNRBN zuGNC+h$<}Vf&CpWPKlyN0CjwmjwY|Np5J_8#SK%H7;4kiVDV0S>9T?ft}s_(wY#|p zLuOb0%p(rK<rcRKmpyiM&)4<ZWcBb$a{U>kGj#nKLi;=lPzHFk?5}F1MD7Nv>meRb zcHyiuo;xG}2Sp-?p75pla)+Hg)Sfu$=(Ad2>F!>!tp0lkUqKM>#I~4R?vrS!VtQw9 zs>eOW5&Gk^AM?hlnAnfv1-Twy2)3Y@9*i$|nE}@YI~ADx#KuT@KGR>1vPd1h5UWci zy#W?`Nf>ER?}=n!h`#b!+|bN69_WP)xapP@>RonGZg+9+wFc}^kz%Q)=b*}YJLpJo z;CPw1Be~e2H%^u}Vq+)aA-qpo;3R2*yV_PDX9x=LqwW5`Q{t_u@y>KaC%U3X-QrU@ zuyL>#3S}xCO8KJatRYYfQx%jHXgfptG_tK>2)bwOR&VLI8uXvmXZ8C>*j}~*dinZq zN|JK8+^yO@0y(g>@jJ7|R$B~3xct^bb0h|BLjh(C<)=(pX=d9$+x8{ycj{$=?D>sC zvkq@XH^V8<!XVviR<*P#4TgTx5hl!M|0t;9bXD-FjuliV2rV=wO>&jz9X+a(RvkSG z(Yy4-Tf%}$bG#6y>Q!;|a>PL-mc1%Rd82yUPe=C6tY(?B%Ggr2Nabujmgv=T<a4Gr z7_(d;sK*eofZLJ*KfwU)EARpD&_L8_z;^mSf(-X$y8Q6K{JJI$_W*X-!UMY9^=QF- zQ)7+<Y#~4u+O`fR!?rxh7Eh(t%;!*rXDSm*5)q(u&2KSY{xG{_)@#?YBA^1#2BG!> z9WeNxmCLSTkhExe2L|dQ1IO+?=}Zyv-n+r+)jy(WlBNfEqzwAyS4hHqqlY%82(8TE zHxPCtaK2s!J8o#Wh2~rbQDs&t=3bjReq&#bQi`7&`-C_p@bm_(0+!&P0Qd~!dwv$a zOB{>(r7(%{{uzOuAd!*v0kwe9E(FeqFHZO@#O>?&ZNB%oa|t`D%9aasln+W1Uu#Y* z$2)<yJFc(he|`ldGruGX`NLq3lN4?9P2&6Min4(1ushJU8Fmc=TL0@@Ls$;X^kt20 zN1|tzxi-##qY96)(n7a0@y~{VLwb(lROR_)RZHNd0E&ej;j45V(pc2!vbE@VM=J?I z&}jJTx}O<aD-(G}k1<F??|DDY;0#{7EP^q6dF>2H{9EI^4;NV3$2%Ody8?9hsHFbl zI)Fbd_=oHz@2MWnLp-f$xQiAv+u!P|>Ju5$;*Z4gO5zE8N|YME8Rk%OyB(t%jNbOI zq2zqMD!~F4lJKxvVX+|ayR0M{q2%=EPC~)yLdCeCcMK7Xkle^{4^*2@nyk5Nf#Rtv zXz(p9WpXzjZ*Dz2zIA3Mr?u$(LLW;Bw{veY1vL2nxFyCDSkptPfj<LdGq6Jh7VgV< z1+w@?M3%&?Al<V+ZF?owhp?<)^|Oh-2COv}qIkraaV&nMVlEt@e3k)WY9CO^!h;uG zqL}@wJR2XpPG@5O(<V1RSVC3D{HRMf9Jkt>CGhlY&&7oX9AWu(>|ftdp}#7D{Ol5O z+@Yw4bb(x6{Bg&ghi8<zVtt8zYdHaSQXwdm4jq_o4ATo-+1e>PYnL_uz3|`5w#xUd zDdvG7fb|i8w~Uy*Tm?q0pj&$15eEo0SWj)Cs>LbtIX8pxY;V6I%H#8-^H~3JqMjCd z++ziIU%1ezUrhwl4=!b?{7;@lj9aVh+7uV(N-PF@Vb%fI4xWX!Ai67nSeKlkW5jjV zz<Y)jYqVjQ6>>=ccp7d;0*knrYG)Q}GyzTm-Nj(|NRlLd7Yi((6dU5oT`rxAm!$<X zeKTTup>{*%EF)NW{A+6w1_q0kQ;INrur?Yr7bVi){2in8<!)*DTOsI-u4ThqA`ceQ z&R`ub7^kfHe~~Nvo*9eh?ou~Y#?tPLsM*8FD>0SGs?0tLQVe9pgjcJaRl4zx049*+ zJ&41>2KAd1+wVY%QWJBX7bE67wn7iZ^cl@uBAA7}>d!Yq6@OSQ(Req9Ytkwj10-_t z7!GNNidGL>7hLq1GWCo|AvowC7?1}9&qHey(?RVMp2>7^wJz^x=l9QKJRv6ll{K<t z?JQ*IyN>n7b`%CjdYEZ~;cfji$Ckl4Uo70qoz)g>L?CIXW*ZuX$1ARVJV9bFc;8j< z5W$_CTpo7Jdj_i5VAo=v{ka0h82~D!&}}ml+a&*1vH;$z>j9}Pp=B}4Zbrf<i4pCy zQCG**0k%%BO^BMnT;k`GVc5i#Z^}M-LtKA>r&QG-NVs&>_rIJ#Ww;6~#<bkN{jx*R zvX75Qb#9Mv1Ab};e~|9{xQo<~1KZtWXQOjYfb+O)elhp(?Kuus?Xq`Ih_p$&=dFPT z)TQ}I`)A0&Z5gf5)mqKw;Mzjf>^Z`x&g>qtf12RTEK52h&g@a`ac0ufab~Rco7)CC z&{n}DSWh-l`>|uh7w=hKPFjcfNgXpUK~kc1=_%l7PKCOJTwL&s{e?1>#^g&YBgYS+ zhQfSPGVa#9iaMx_4M$om<rV)BSeb(lo`ou)Q&fV~n5YOyA(EJ=Fr*GyMBVF*=9egC zR8Hzf{A1(8k|Da1@W_jVw$$no)7};a;1YPCObso{U?mdo)9D1|s1%)~nJ+Dt{JSN> zX%Bd|SROC880GZ*OglDKZZVgh+;z)gFC~~v%4X9pAf^kWZ=In^!M}VQQJLAw=4SI9 zevRG!mjt;UXko5<Oz@Sk+5~bJ(dMG;s1<Z}y!`w7cwTxzci7ZtP){fq#VA-v8t|J2 z-f|&u!(i*A;?a!IAXz;ks+heHLvo7z@s2!7|M}lDWWo*{x(L&s8YY{+9&SOR4qTk{ zn3wi6ZnR0z-}mTu;q#z!^iXYzPv1#LPtY^;o9{R{55}H-aq8RB($yU>gG!a62h6dW zk(<Y0Zk}rzSti)m)Res(z(la8_jGWevxA9v+OOrg^c2yBakGYqT&Gw*Pz3B=>XqdL zC*r)rS0QFUpVM`{gI&=qo4FD7T4z9=JYK=ufnn>{YzD3$I1wjIa`XYDw7kmGZVeeQ zc^F9F<`A&-4dgXiD%mjQklbiD#$$w+fl#4jG;SR7v$OF`nm0V?w*3fUH%^y-C`iw= z`*Q`oYy)oY3?Mac4rp0{HA8T;am3DZL=-xnIpzq7F}qpm>UR`tT?Af!`mUaNezLRf z01g5_#(O=$#wenxlxVlto>a;%>?VpCu$(^ECj(ACGfzhe@0F<J&zvr>#YjWUgp=yz zcV%<a$4J8$UbtvXw7H6!l~~f1^U2Z?8=;<vvRuniEtLa!Ly;tlQhOqFPqEKV4@YA^ zWVddPRINn9*DxA8TKcd9e?oL{?PxBqwX_{JFKwRzE5;cPBFNgLT!sZ}c9zX00K-&X zYg8NW>uc)k4M6`D^^mq7rKhdUE}o*UK(`Q5H>MQ1v@y$D_)KZ~E=3_G%cR_mwAz#y zdcG+2d4z{6L%n|}c)LM<$@)g4W5-^UZ(wVRs>o$k(eG38KZBasi(A6b90-0wHM}`U zl^r-VUR;1$xD5x2kwAOIqVl8h7l-P*H#%Jk9z?`5$ya`=N->e&03}_`le;64yJJ8- znv)3S%h~C0;m1@*<AP4uHtzO*d+9tpOP;&7xLQ5$XHzaF^y?66kiNl6HET<&!9f>o z2y>m*HQRhRCNi&-DjhL%2*#d|7jc%Trq_s;e<e~WybqFDM~5my&UJYHa=Wh3J4cDZ zQU-(y*4WBmay=iKkCe5ltMSY@^hPTTT?Ax$W^z2?>#jn}b$#yfpV(_K*q?-d5yuOW zi7KPwW`}n$Jjj8I?barf$q^*`jBk88svjyQB$Aj*4uVCdn>wWDxzscd)eFDw7rkB= z5Ek<J&)F1re!6+Phw8!kHy-C^6M{9maY+jR&w29H4-d|GIq7$=bFbC|?!rnep}Q_y z%)!-tk4I`&yPfIrR$$qA>9KUnp>+qkxH|C;T$MLUoz19H)v5}$Nu6-c&>VE(+=`fQ zAjQou(_OeBQw8kOjpcXS-hgjpXvNDzU!%f}tz+_GfcO(lMudONAtHh3Tvr~7p!@IH zq#}shOL`f9vluLEY(*NabB6mMa!bOvl=+*fMKUu*d;7=zc=Cw(Yz&@K)x=tg7^`5O zUXu1*aNuX~5+sp079R5FU2BdNBd)v!_`R0l7PO^K&_?t@a&<0W7Qkr*&TZd=pj!C% z&yqyO&>;8-DRp+sl1t1x8itHjcIGe%3L8Sh96AG<YSEj8e??WME@T!pohMVe?W*&} zjdJ!lnc;R#GG(j#1$P*oV}Y_#+db*+B6~x}RlED{;G-@WTAB>aZOcawb7@dkFc`Wh ztqaGxzgP@K{3KBb1m7fH^-FR1WoQ`+_h{Ngb=e(4I;e7U4<w2v7qR3E(=R50+#@o# z!c%c)O8#f_;V-5FEl*;Kb$qt6-U-ndHIMRCB7QZDn00`?E+m`>By`oL$xUQj`qW0` z{Q%kc7~z-PK2HrhNWF(^ikShj!;TK^AVd4j$Ltik56_0^7%&e>2tO_;+~vblD|090 z*&a<EngeU}DwIN?nQ{Rn^J{Z8$n?J%=pMq1Flo`7JKQ1WGYNXj5ehB$pd_8j?3!XS ze~cunfOgJc8=)TUy3HA;G0~QZ)PT5#`RZ)kf8Q2^5e8C1nID`$WQR8VcQg9C%-RDz z8W7n=TxPjZ1%#*bJoHQdO6QWgju>SoN5ygW{?2KK*7-yXCC;1)eRF37Tw)QQpeKpE zbKVJ%nHfIL&13qJRv$X=*UQD5F&Qo?j#nTF=EzHh(bM@DvZIM>GfQRT$<!9(!N+K# zN<|3y!Eg~I&PdMj8n}c!l~6o#cw}YDuC^mvM=&VAL!>&`V!;Ijs*ctz_n>1n*kl}D z!?OMBOxcu$^***wCk@GdP_BR_zAqo<dk+F^s-tePpXEB6{!wcV_b#3YG~#F7c&AFw zkq_-)<xNx8cB8;4c(ACYJbZ5;a={_C?ZQ!BFcgMiM_49>La}T#hQ_K7dESocl{DIO zst((6jY)Tj>797>_!3kMuNDnDgCVAENp0beFn(OXlQVIRL$@}Z<THJu+|q1-<e|+9 z1J`8(1T&vrZWem61|uszrw6&hF*o9BBy#VIV?IQ{JeSZT^2LaO3g=(Nu^Ot5YjDZO zpi}Ld>W@UCv+b%HnCzIdV&`iV=M~5!MxS`D1E*dg`OF%!PKBnU$_;l9VkiWGfpt{; zXI|M+HR~XaspVcZBC}fP06W+wg+KWoSW28aZ$irr5*kV)oncheaeLsmx9}wc?5Dz+ zzo#n=7Ujjzj`p5R&4d+;oTGkmYI%mLis~u?gtHgW<+~TK{B;Kyn!<8WC0<&Y`A?I{ zema^+n*yfIfTGcvaVM(9-fQ4)RAhKRq{X%aEJ7Si^_S^@OTVF_hPQX_Vamaw82n+g zHOuQ{w=ZE~Io;S&_h$8}DYtBbwsfJ3$_pnki7#h8>`w((+m$4wW@&9mgHj>P({W(V z^~FJaJ<!I|Ck$V#U+90WU42-PWLe8*)3hM6NBl9mTK^YrPc9%wKc_Xsx$dvrnf>02 ztA!yJTdfY}shmX<TjtQHLva^Nbpw%&E=hSy+}}gkaSd(-N<co)vgRp}2!flouJ3qO zr^`1<Glv}MZ5C&)vM*MIgM>^Hr*X;grnz}*&07;LUUgPATxDj~ir+?OBuyvv6<waJ zvkq2+9jt|>6e%_d4;aE;qU(|gkR}fh%w4vq0AH)=LaTh5?{gj{f4FKTQ8Ac$cTB)T zi;>(_=6jQ-tM`o*4WL(a(n+N?&423pFa?Ihu%aVV_UZ8z0xQ)se#i=kr|XQIYiv<B z69!ISD0rXP+pZ>@Y}g|sK(?s#X17qKwyRQ$2Ha!5e`?!1?>YZ@bfNNutuC1Db(nhH z{BfQ1P2MKuo3<^NYuKE^xpF;pZR2?qwshz0*x0J!xth7%fPY1BPYk=~Spx+YF{1>Z zJ*&C?ZBu@craJuX4jN<u_Gwx|E8SlW?ks0KwK4PO$-#SBcO3?R2<_+;_`IZN2Hs}d z&DE%b;<S^b0J7&t1f~&2*Be>h*_?mD$_;ywT11(ULPE}<Nv}xbzdm(HocON4if9zL z{usTRN`6^M(9P}lZ)D1!_|#;h@kV1-SKo3A7G9#^t|7By5aDGu6A{#!>ixR5)9cTV z0i8HS>v_gBwQfY$oSx}C4wySk+<(R&T>uf+B7|pVCFUaKdyXhx-;j^f6&-a3u04JS zcwME(lhuT20IX(-iwL}Rc4mEU2JHoyi@_&V2R1k_nQPS375(NS?6G#nUT5#2KX4Aq znHstEy;QvL3Zuw>U^Vi<r_Ke`w51OTbQl9_ZqGLbac<;~3a2f*$^u^?KzVYxzB|<% zJIYVJ<$tLV2N)6qu0ufqdx8U|<gc)CGhq4p6O^>rz;4sfZsSFXiiH#OqCiWk!2k(m zxt$Yw6aj?;_|j*f1TWgniNY1MEk9GcR&n!umChZqDvuA&hb0$$(@YtJ#Fn9nddg2j zrUj=_Sm5Y!FoG>zCpd7rqUyA?*6&~v)0zpl--W~Z;+88giksxfKzZEiWkB!EiR2TJ zO+8_|&uP)n;6g(tgOBB-9}DG6^>zGV?&v%>>p71-R)PjTHw3H#hhMREO>UU)*&4v) z0LxBr={%^nWJ5@?E#+tbr`i@o5$zo!DAXFD!_^ou?%-wi3_g4d7Uk*|uZ4|&-#yPu z{*e0zw+${a77gGP7Is{TQ|bQCdC9SDU|_`MVFFdYW&z2>9NWX%JU*ho@GOOp1I+d% ziLCFD(G&fN3^;g(jFW2=IoD;Y5TvEX79dRJmu2G~dV-Ta^KRI;RNJY>RzZLk@YP3d z&fj}QzJZK>D#%%i;pi-xT${x+wl@Cy8Giz6o+}R)T8HaP5Wt-&a_}Bn+Z%fYeST83 zG~+=VB66$z2k*NPO*w&((wjbyGBFRA?(v?eh}hA*h?En$ys=gXD8cUr8Zvuj7=7gW zH%AhP$@!e0K^+C@bqeOmj{LM++-%?(fwR}n=brGLIo0s`*~X#NQ==^KxT?zPV~IC% zWp+{_i_nmmwb0pqsIn?+K&Ct5r_7TJASrc=n}dA+65IvIGMALX(xLfVf0uJPrAe85 zM<;O~u!(jz*!E)UXwK59^Dd<xaoUAf`)W75I>E_bF4E5VU+c55hSoj9er@e1^4y0B z1Xg*3tjHs&qO4M*`DALga$EvS<yC0N<YKD|F$E<Nx6R19*x|hg0#+|}Za1G(E@=qr zo?~*5(Qh!l%1-8YVNNI@cNyelMvEr_KP3#Z-M%{N(_wxZSKu4#f>@t$Mh8-NSr}!( z1FCBF6T7GQ{>WYhQ+r(OH2e8txTqOgX4Lr&{09%4AUk!zkvK`ca#|u=Pd_@$N?2Za z3X$@;oy%J7R6;PmQP3LYB<UdZPv{Y8Go^Am3g6?;n#Va_McS(iL$}468=xl5z6BM- z^63*6V~2K+XiLXze`B+x2D;)gfa!Ic$j1jQEiJOWFx)R-Ng*clD()rv>T0fsyUkL} z#5IH8kfH>x=qFzs!iBN)qxmgKF-GcIffK-b?-z~;2PYDb;AM*dPimNCT4aeXe<Mbz zHG^+e<e+}VD1NmLg->~$$ol(#0aie%zrUeg7O<C!2?jPWjP}bPe-)F!E^C**Us^R8 z3ipx6U&5gAcB#RhC*MmR-><(-fH&|~2EPFGUdCM1QN{vhAK!BY!22Tr?>G@adl}24 zhep!(eZjo5$HRKY3drarj~|A&8<9ob^rrwo9zPDx%rr0TbW?>Tok+aNtT4<^{a-NK zCUo%6$RX*at@+T13HGNED;fOhKg|anayu<&b%wUMJ6!?>C2ZRo+W}l5jUnlPLKdI^ zeK7@r?2U1-!4~o($?2F3mb+Fh$emsq19q=#9FCa+LKY#*)q*tFYVVRCU~|!4bK}eY z(Jy;Ozl29#LXE>{J*uOXL5zuS%A;{yMJnf$@9hi^C;%IribX=|2s(&HP!j_<L4l|t z*ZseSR>KO?*;wBm)TG-1&gLa^90Ss<TD6!)kSk%to8+Y~7TCts;gI+AHTsZOhq6yP z8^Dplv33)xnfrS{FlMt2cKTRbxen~KEil&R(_Bnmw>B~0-gsIca5wbefNP?U^(G`f zRJoRvV$?i+kj+?kUm<T10BvS^N$yTeDrrRlfF?yPs8imBHcZ>uGD#0To8Z<zYVT?% z;DbO~aLYyXx`WckPR^SQkCwB%^r2JwJXD@<^~a+lr3Dr#4Z0DW26Xm0`h$^)g8ye# z$Nz__FP=<Rz2pC`YArVa=`83!QLmPZ^^#to=p?PkJQGOvfWBBT4A6=I9S!ZnXpIN7 z@(|L&BEC;3+4u$Q^u+fZsDC@!;n}Q!o<D*hLFYb=o%{G_nsycXzy@;>eds1oRh^Y9 zcl0<pocq~gfff|##3YlkMcQfgail(Lr3Pauydz1}E$ccSM^~!6<MF#NT%xnmhbj~l z>qB28c!CWnqb;fVI82ym^%wf|2XUFy%C$H_vlBT7p0y2YsUbdUz9$zIQ3kZ29nb?@ zq4*+H63BbA|CXG0)2DE?A|wil(H~*f6O6)3e7Ix_Udit%&h^%zV9fLCkXn%iNs3EY zb*#7Z{G6A*j^b0N<vxkzT*7N=S~SB;8-U;IZ2eHv4oJs6_AEYnD;iwAOg7AP%n2qN z4efrx7e>mPK21zzivhHNNM(T@2s{Q0BbBrDH>3VGSAYAOvbPfb?KAz&slT1o-zxOC zH}tnE{q2DMwz3qv5))p;1Rz(}h2)sL#RuBrn%Yrzu%-`swR9^TMe|y{m;U{Np2mV2 zwycG`GivEYu=DF2Owc9EHjOD2ld^!5p%5)Ls*ouh#tB`A<<do;Xc|fY>%I+9)@$%= zqW);I2fxjrKY5GICZfV^z*VRs<VIikW2SR`d+@%?G!rG&x0}6~^_S<^i-o-?r3e9e zQJ{9A07>JOQUv6rY^Bt~9&i_C!A_J(R>V$}qs~;!xcY7<IOYh&^6H|zD<N}Y07p?> zfZeD?#K51BSzkYai^Z6ojvK^B1Ynp_BYS7%F|kKt>T=ESr5|5r11_tKzSzSie;)8H zuR+#k1(XglR^63U3sp((KK;osch9|&yE6xq+&u}o`?JBTxf>^!(&>)}(N9Qv#JGlt zA<5O09z6yn*9)O?1GB+4io`|r-ALj-etA?@>xD?OAfQtK3XiR|yXnGli7D=}Z7#u| z(&~z})?eyyUB->5wxg}}u@2WIt_(`@8?<#6Z5@vrJ!?X)m^*}NU@qK-UaJ*1r4+mR z&;ja22gnwVTEu;>_zah+rMZvI*Yu)OHN39~BgegTV;7D<CQ@mt+x?h4ffj#+#vD!^ zvt^DWTF=eUl-*7#n@(n*rsEj(F?e&k4bphEf!}Qw13y5vUm_@7Lu!s%iG?X$Un)mZ z;29v)`uGbh6n-}SS$iUIUNTYAo(!7L##y5mM19Kvu=7ETv>&K6q1REXM~31CviYGZ zgPKE@<Q2viIR@1w{FceJxQmURXS*j%;NC^6l_OTD6_;8bA=M@f#+Zb`7~@Gq>6%JT zMlS1N*H2xs#hSND7JrJzQ$ue6wL9YwFcz}ROsKW3T4)ub<3Xd=hFk)x?t8=4*_-21 zMuJXJA=#&mD;knCt^t2jz_kt*GvmnrrWKVz2F?#E+JvSr;36s;p_zUo{Z}Vj0yBt# zxq8BbPMsnkecQ*P>kycP4(A{`A!48m2by)D!2V<btHbk}6*#z-&M8hFMUbs;6hHF; zo6lq?pd7T%#LeAYM{4P{W#~;?bPaN?Z#k6X8%$xFQf^O{AST1&pVZ6n(jVk-oD*;? z*--4I|BAu#UpR~%e&Z{1XO(fjd!UfQBQ<W?&o~l?$1%2k9gP~jh-iwf-{%H6Pc1dy zb``2O>M+C=*XF*y9S8+L(W0w>ghYGHRs-jo1trzeGo|{@zgzu%iRhLyjt`^)Wl)o* z`Z*>kbHBmzwA<+G7`N}%Zu4llPvhW(Q=&lXq4_%PrCfOVYQ9eQsR_Ev<9$eSdOav> zePL%R8~27Mm1`3loR0OQj>7Ft=zhlOANzGp;}{ShLqnK+Q25tSIj_X{rj51qo%w9T zemP&~h^?>M&qA1D>r+UlvD4AnBm%3&>G}^7d&9<u7MdZ|$x`bRsnRWx!4zoR)AXIM zA!QdL!M1dMjjOXt2k)h?vJVU;mr#duxQSU{ub&4KwX+K`^wOvF*f>@KgN9)`)t|S# zp<TI_!)^9pAW<Bq9{}>x@DY6t0PBhk>9*0;i%#1Bu$}(uNOGzlVfO(5#vu)ysjEUi z!Mne!&&eIcOD%~xI@XIMJ+bqylXna?eZ_RFcRxia`oBQc+O*I<XFluYjy@I%S_eeX zW;Ia&IG)^CpV%g4ka*lJN6Jc!k!{6ni`194Q;AJdRe9o*hsdG&QQPB>Czs7gRf+M4 zxUbCO@rwH%PP3h=4OIwv!Tt@CNVADlnH-mzGRShlc-Ar4lzE2|p5=JAi888RQJh|$ zf5;~cfaI}Qmz}s;<i>M{h67w;w%6Um(JU&9pu#5~ZtJ2qu<3O4e3k)TH?pl>`WLsp z5CmTw#90ubQwL5cU54Ze%&3?cJ!nMVF=eowV(T}o>7&B6Y~gR`0HbXd;7x1KLyudL z%blB`w(*Q9PDInM4EUlyD*>5V2e9qF>=lshI-E(|g*u}>sVBX3)z`XtsL#X@@5-H0 zei?IT$uW=JF6EFj-#uqiA|~VejyIaV_-@!_JmfgCUa;F`o<tI>6PZAI7;X|<WpM^t z8BCQ;7}f_k^?c3}K#_jH2CP+Tbqodxb;&AH#VeNtF^CQ+$@W3Tq;xG_PZ}>d-fJ%S z?okujvQk-X7vKZ?JQ+XVVf-r~<T$<gBT^qHVEL^s{UMN0&giUMjRGHSDBY2K--ho? zN`I7m58(U!(w`*X+0h0!m4=e<kKy~2(kGJdkK=nz>5uU}9p2l}qS~<9FKDOh)Ge!{ z>Db5`?KE-4>eR|rFe0sJOpZesGFJ@b-c^DZCtfOMm5n;8f@CAHy>>S*iR7#A_M42d zpoC41j;0IHbYr#9;E1eG#m^}yHd+yuLErz1c^6h+6*9w}?+?c-oPkkK8O++cSjr{s z{*=1Hh%_Dk3-Et+VMMN=>o4NuE8AWwv*T6n!{G^0+=-XyDsAIRa+>WlB)v+9K+>Z3 zl6HlPQi(#-q{1q2wtsjwIqj4jrz~gnLFPXXB6>UV5*>dK+q@Gm(aeL`>YaE=EM2<k z_^;6Z>8i7ZmF6zsj5CmGcXi3>FcAFxbxpIoy3s@E=t7?+jPZqof|Lo3lTwvIUY<nm z1}^%ux^NYw%T99lYPI@A=fc(78K(*IO*%KJ)#phzW2jtwH6F89pKqQ>s?Q^1)vi=4 z#t540eDoaM(#tk0jPmHPl&RXr)gEnGS6y@>P?j{G!KfVx*VOL$D|P|<b|qqCh%1Rz z8gZRa7p}I2>4h^%b&MRb_zD)-wfxH0mF(4T_W7`Lzjr37@=a_f^K&qGg4U1ToLKq= z655WIPGI^YLLw;r+nT%Z9h?_I_XMw625!6pnN=gTYeo1%H-D*58i;I?pf0hvTi?#~ zc9L(oZN)6g?FMC&*(etfr=`@I`jd%LZs|0<<&;jxTY4$y{JB9+rRB_Y$8!aIKWua+ z*5+*C;hD-*S_N*FmlWZiRTxq502O4<=b$4>N+rWWFI6z47*FhKOACbM&;9(uTH10J z*}1MxEyW$H;QhU!m*9!s;iXG44DC#L%ly(h=@!4iLzkXqGs-xKE%AEXbn{K$vbd(R zl`jj7VaAI%GyjUl%A-b*F=Zw`a>{k!c|AWoomvOd4swb0)4!k`%*<m@V3>C6I+j$M zJ+`n{O(%aR%S@d(eGHr~NEs-sE`e9a0e82|pDvqiVY@5-hw0*z;YzfrOSJUhDM@Hc zYfZUBU1n;VBEH=2uB1~w()(wemX3QtLHAah+R`+asnt*k6+m@?bJDF!bDWc3Xc@Fh zsV##U@~@yIzT*y!Z5@V|iGdzKqb;q(D)A*5a$05d;*#jc>;ulSvOTUDc=`?^Xx0q2 zbLF<9(Ui)vmia5CONi~Y{SgD0YPckA3RN0fil@VP&>PLRg>C1c8F*ZtD}J&kcvKp@ zh*h4l@(yUwQTZ!u3-qD1jNvE%3U`%cNDG7Kq*C!<*bTrlsQp8|k=bo&&^*0yTKY&! zquF$P0>lU(;L|cwWsetw5l%_z9Vr}A3^SN}av0wW4J!~<v2vPWc!A2qj%=|{MkWLv zJWRpRWCptr1i|ZRoxGOCv7ouW6ZciCMYEuD@mLXPTXCLjROL8X7DrRp;|VqQ(M*iz zbzy*EDb%`P{hg$`4}78ZcaT`*vy>1oIwDQCxvBClGf*8DrRx*fjYG9wEa2!j$pWf& z;ht-i?Y{<}5@QiZ0tt4m1H=%25ScwV#cMl<@e=Y)+PfIsB$+x>5kij=(Py5N*d{sC zpR#-xeu$>(C4kox!~qiHq4cb50LQafN#`2-R4K>lTw~9ZFX^|xlcJZPD38Ze*y%YL zbGmCi9@W*Sy{o!nK$V-_^o4hrS&B!%O!I($9s|R<51?@J0aaL>?td2{VA!sY*J`;h zqTA3OU8%%UBpw>@n3lVn%{)3TiUAA}DxM-`Vt~aUUiu3=oNlO#-ti6-d_dRa)pDPQ z94vAO>hspp7xW_z5+5*fGf6fSFwow>n?BsS<koWc<7^2=E8#I$sN<ZwFf3~L01`8^ z2$ct7OmIB4uPyo1`KLeOQN)f;DLdFMWel9yg^>u+RbK2zE%!LqDaUPcOv^ojTCP{0 z$-w(zcE__*wA?Vlx%zCbUR$qYKu$k+H<TRB3SN}cNk^p1oYkwc(CC48)gr8*p>f5C zRe^!ZBIQpd=L}FcvvB^+f`e_cXv(Lbo&=4mhxH=}eduH&Ff4jaawjy=cV>WRE*`8f z@Jg4np}t*j@ezaVs6BNPP(~kEhVAFY1^hsSo#Ir`W>6xy&bdTSkiTSy5GUfVlIJfP z*pW?%1Dljc;<zSC%Hojo)<CyZ@B%xqY1|8FSV<|-H$!E3N*-SrX%CeR4L^M|{1i_- z4X<$HjEe0Xn5<^UMcLvQ++fyEgh^5JfSH*G$li^LpkXkKwspfK+Ia#akcQ6!a-T@V zA4R>mNw2z>uHVnXsqM=xV(=L#V-0axUO_i>jU%$*HjrHrYRanhcxmw-=EYIz1op=b zNbCpUk#PFLxW1^)xDayP>KNQOn=ZoIrw`YD>TOm#z>9%LG+hO(TK7%Q_b`MgO~*d1 zlgTrKnK=q(BChXNn`%6@UcVt!ZK?67^(Ji{ujQhwLPm?d-XsPa^tgY=8`1&Q5Pc=7 z6#i8V;)VhgH{3$v7!)6GggZ9tzCW;L_1v8d6~8KUXfr#6!!jZ(iL-*{?PIY`!WEHB zGjW6GKMY`E?(8dxbAOI|@p#j$usjPo*^I{zVz47QgXe(3y_d8PtcLU>qyz89lhK9n zyb@CI7&U-7*>m#T$<I%o$vP_c4O}F>0A&G)iURY%r^b^_ISzo^C^U%<fZdR>q!2z# zx~ITmI|ok!JedaGA2_4D&yi!~G&zg)G#oN>%FGrF<!9%QdTXIB#LR-HGA>){uBq`^ z9~|B@kvz#0id(JDWD-zOFbCWtfSzreNY<H@p&{@O?<tt8Tpj|Q_xBAqh30Mut^9+T zWT{mq<x!rKkFzKPQZCSxTR4uLYKkuwc!|EW`Uxgx%Hh05446fEEaP#Rj)mw+Hg*DI zm0&wUf4x@&3j6Z3b-)j1ZJmYA*TW0z84NT-P1%o<+rA8n5y<u0!};37dD_FXXl?=! zEVgCdS`YaghjrU2oKVwFu3*vipOddh#BZRDb5Q@l*Q4-V(>`U3qP2Kxi?0*tQbT`M z!*R?HUq;pz2uo`;slY<_Bo25vByfI{uN7_GZEvEj+l_PZjv^L^I^ECH!+%b!4FE%C zT^WX&obw31i3@!^eeLwf`WY0W40VY=K=0mDOG;O>2r$(27&5#K*Pf=(x1-6KrRsgi ze>+k4!=NbV1p6f(bOA=)xuf~G9V^RAJ&9P|@nD`BD)qS8k(mAWFrGoa$!}_~r?P0* zTx9HD_a&@pK&a<Y#Cpkb+-*Y_vRfl*UlFx<>7xinZO2C<k{g&4up0^EJI>~}q4XS_ z2c3jy^c+VHk@2WOlZW2_HYV-EjazzHuNeG^LEkah&B)M(Q=2^9cv@f8^3dB@Si7qW z<8Ob77JyFiMQ9l3r6&#JRE%*h^3u;Tbjrh^cO5B@SAm0?LOSr6t!_FG^t^|DitBBz zF34?4Va$mq3{}CvmS*d(RAtj}lrhfQjf4m5Wm>N;^V1m|MuBwE*Yv$;$sWIn*`{5b ze9NdVz(PGETPOa^_Sr?p0&#$7(CFPK8Cx`W2Q@MH8d~3aH1cdO<u9_{5re1jV46M0 z!0&AClGl!GxM)0v1WSuHVqP3c=o31S<kLGU`Y^-f+X#S%?M*PkTrd5_-*q;a3ca!6 zO)n+*PRoyt^f&E1hBJ3_;M#**7a;$5I{nz_-5;lpvfUq~GkPj9t%e4y<Bbio{9U$F z%P}b2ygr})4ZspdrD4%jKAIf(%f$bxHiH8D3XdqvVyAQAu0nDK54@wHZ**@8{3wg# zgZ1XZi@@B*zk2BM-|0cgog;Au;9di}>|6_%?;f=nk3`3iWkR9bwCysUyx)|ege_p| zMu&Yy7#%Ruxy+1XbuAexd;~Zm9{ExvZ$EgH$D<Xt8!C{6V9dx_q*lklyAXq?;e#iX ze+wC>F6$%SxVkJxmi58#)_=$#OOea`oyz3}8;t%1_maDK$6bPa2QF{5D3`74Cz4~Q zqoKtq{J`mHEB99nWymuCfoT(?`Jp?zhQB<sALCBoV;X*}<4L`Vcm%S7C)IIdb)R}K zj~*3VmkO#!0JLx=V^pp6G38@}THhxIpTO7@IR+__LEgUrc=E0W#|Ily$Op#in4Sx= zJKlwqcOCCb4S1g0!@T2RL3SKuI1gIaPatoc{$k+WX%gVO*vQM%5UE?D*M#osV(EKy zZ1EGr_hFuuB9KKq9tp@wB#Q)fi2y{78qvRO?gJ0Y@qS`4r@A*}I!WpPTEO)ofL;Pu z0j`cEg1o8?h|*du4n<nw0f{)XrCH?U9CD12^>h>}&6voZ8Fef6S7hWxuV+AJAnPco zIv(Et$lgB>1sL8LV3ozyG__(*9Ly?B5Q7(Syxh!;Z+!xYWN*ezwMDPuGAeG@iF_y; zt4x1F+rd)<4hs9uvLwpRa0~2}IL-P;<@wgbT(Vq99jYqVAFIqQkCbzAhO&wuVkycd zL6aXqxrO2JU6ur+<ds{n5^Rp&fXzuR@_XTt(Bd%{YC=_(8aMr0Au}#<hdcvyq$2DF zUiqG2VbZZnV*8ARU6`(xB8qH&aOWm?0`Cno)q?NVE6-KJ=I@3rZmkIO)sEICj!t&q z)g~nsbD8yAyO{9xTZ|0eceo4>p1VS~R^qOSPCxJCtZeeyjK=|<VP9~6)mUwVxps7G zqrXs=2%0)y-NI|BSOuvxgUL)fl54ItHB5*Fu(%&KgU=Z?8pGwmaPuY7{$Q9%abONg zG4Q`DcCYFbR41>5g*)XwKTigk&lUMhG(KYTVUH$|!Pp9%>%rju(9gJapaho19hWzj zlVgQ%M|w=5h2}D)DyAu|7jS=4Xh$4wsu}KIg7$RAd-2uHceYS?z?W34XOa8{xYl4J zr($GC=x&o*#j9mP=uUVL)G}UK{mTj#PV(w6kzd*>%iE3&MFL@r;9pWM8#6ZXjKx4C zKOZ<X%`K4j(Q*7HU7MlnVXnm$i1!L>K%-5Fd@hn>S8239a(5htsYQ;jLYwVzGF7cM zga0f3a2b5<ZwEDp8?KFK!32N8!S=GoBbRv4fidOMf(>c@1$8)G-pD%|1-V?;Z<nm= zuR%GBg%%r_g4=-#?pj^JO;sXYqdz{g<0>6@w*aN7_`s8`g8B#;>gK|?4ApU*j}d?P z8x+LmIBu!Y_`5@kZ;2}!Q+JJ|zAuzNsMec7L1O-Tvsx#pck!rE?h@eYs1xMcw#Dh7 zMaH2PN#_;Kx<0?9c^qnyw?}J{P{oc4@^;k9zL`UJU!^<(3~5MC%DI_MZN)<sx5iaL zU2KShep`kUPwE|Uwc^%TPYK#P;htiQ2M*!dIq351q2wh7^{#kmr7aFU6&d1}z~})9 z$`ET(L%%By9l(^M9LLYe4?rBp-NOUQ5DqABfy$H8lJw3Q8Bmt60VVAp5*r2-p!Y_m zY&Qx}D(YL=Y?R}wj?Zv~)qNq;SL6{SC59zK-n-x`Bt|wMYg$q{r}2nTenL6F^%^75 zmq<A~BkNm8R;H7ebdCD>$S_%#j3TSctQysdyg1w9H^ShSolF5#3!svWsi<L;$OPrX zUKpT(J3Whl2fek;S;|}5=`WP(m=?_jwo{I2w*J$f<1n4g^xj#p3p_k=%vctiF_iV5 zoT;>1)Ox{jrinVv$Xm%|EckzbISVjn<rPtIi3Dy`&R)oQOCo2+72nRnx3h9CeGbF@ z|#_6mKG$ZIdw)O8WvuYsaW~Eq@K2aw#B+Jdj3@S&t40aFM&L~7S@2HqjjrhDR zU(W)Qbi!3t5PK5O9L*IcKf>iCCBjEPLv8bI$zQyq!luo5OCFmj7z*`U8$oX#T^KwH zdJ{nIxx|yqLa=+jO0WZn`xfK~$AB1Me&C(F<4!?d39`hvvH4o^HVR5Sw7D2~POZN% zV`XcF3jc>h*+!}_z`#E(D>@sbM+e)^hD05D+QcCda>!Y@pizBc+Fg9YP>4Z20{K^7 zeT0V!$-kmv5Cb7*HY7RoPC*5L8U#>lgalp<I%j4LMSv@jIh$v+G-q*g7Gph-nlCdP zqnI?FvAMMZjRpY89%0aoN73dAz1o^!P-YaJ{vzXcP-MZQQkI&jE*^tI54uq9HJ(Jd zhNN3Ttouk#=n;cDKX_EW#xWVkSs*vqTFf4h)0LT+q#wQ>x`Q8Kaux#(W3Tdt27XFD z-Fr~e*dEHnIT)n}ncbY#9=)T#(xgbYd+DrpT%|Ze56{AojX%7K8;PUWCC;a5PKA<y znJe>Q*v)j)w<72}Y{^%*nAqUKHuD`phwf)sa&<SZ@#4AM(9utYVL+ZtZ#|e?Thljl z{_%jm9&tpAn(zoj$%KW0%lmHt*zTo2eNOl1ylho^v~SEdguKI!(d>S1*e%}QeGN3M z_=eG2iHOVOwe_pPxu4+48^!E82d;M6%%rC$4ZOn+`8vA$0CQY_cwl&5k&$WqFpfP3 z)0nf}ERfDfEH#ukWF<}iQ2}FT+wy{xb0-GXy|bYB)@QGSYs+8?E>IZcIWPzfoWwPS zYv}?g5ipuVXIxd)Z(n6q^^`+BEP7}R9>S~7Al*MvKie4|-~C+o>H^P#Fp{+Xigdn3 z4D7&-2T`1PcdoS^wO3g}!F<3#d@|xDY1-U$HDvt+_mXubHjS(Tcz|Q6k`Op22Hdz| zDfc|uh0ii-u>x#iHCTf5a+$@)??}aiL@GYP6SS~>0q`xqgB!ZC2y3-1+;S-s*G7U^ zECHe@n~FIpx6M7bby;6)_1AdvjXwoXK#JZa9*nr@dlz)iaUKa_orP~0tIeRR9Y@5+ ze}kr0N+{_31kWF%CA0LO8i^%N!z<SqBGE~HgGUDf*M1aCh}V~J{i&hqz8b$F6hfF9 zx3(9XmB_8nBI*GGD<OlQ3$fO^y@(?TVxtHL<kJItkZ{-I`F1Qb2_YjHBlf)|j9kcE z;`UrT2krp2pA!SP+jF=~z+qIO9j?CYD+)e==hq!TNQ1cjZFtdwSiZ)}W%Ilx28l08 zk*A6KY__9olp!E>q`X{V$fT%yv3+_sCjggfERD{@)9}|g7?H%F59?utrX=u`uJ>mz zcdP6>jTMXrb}&4O86I=k2^?lSt51CF5;)X7*I{gWPTM#gru80iF3C|V#NwVDBk~ur z0I)Lf=WEEUx)idG0FDddLQI0Ys)4(#M*Lk6os&oila=3KRa_zCjZm-(u8wN+dOLZl zgkgl&wy|X`mosIvj$a3t?bN%r)tq?Pc7XNtIF4&NM9%1?6rRCenT@^T(NlCO8R?BX z7`_N$U`=zhi`(b1G_16cwZs83@fhwT@4;<9x?q6Fi@}pP4TDXpP8r>#3f82Of7GN( z@)Y~3_ocXRY+2bF1)4QpVa-bMXRlbJ<~f}Tt3D-hTcett&TWimhOm8m|M~X)i{abt zyVsCp?NRMpfbGNII%Eynj3D1`2+C>IB~5F<wv^~?fkqhi;)C%m)|4E*4aN=wlNbF8 zEiiWIE!Yieujw@m?ei_epLh%PMnPUfAuP8r!p@0wlZe~v!>w@%!9C;nKn(mWA!Mw% zq`k1i9SRg-=6@u>lF7Ii0UaM~eIshp=bm)Vhm@70TdxZ=qd_Jfx3&Q42w_(IxdUx4 zf@pJwi_O)Esr&|u;`F>%maiPZG)`Wt9AGfgjsDaIJCjh^LdWk*u6EHW`*0+RE=Wl4 zbez16-jZM<rth7SsLN7I@iokME}-wejQR61{|E4>SlJ@Ii7-S8851?GVCOeAP~R`v z4mY!p;&4r0W-G|J=r)P|TF*;=@bYlLZo+wmfxL5g{cRe31OU`x+BgiS59y!n)q`b@ zvY#Fb<+Bwy(yO0KMzX|%i*MnT4-L|5ZfY;kj~*e${)#!gK^i}@_Ht7!aTIrVbUcmk z9i|M=Dn;Ak>Pd1Rd|^L3q!h3-LCiiOhVlO+Z5v1buy=Hu{sY@|&e1;HrfcYrhXL3G zBfTckm=k(qO0H~-2#v{Mjp=aHwKMd?HAs4YMH)2b7R04%ItvTU?M`f2NpJ(S%Ba?N z+v~ffiS(AeY@4MjP|FB<|Db_C*qdnJuV)M&Kcnw|#oztNr|<3=o)%@sM8lrsw5T5^ zB^?*#Yv_Mp1v5{FiKg0Rp$XY&J_|YTrQT-{slHI9X0H>Z{3^Rk*qAB4Z0@hfoXpF; z_!~#i?!vE@kdD!dfWx-u@L@^Iw9&`kgWrWA31GJ2kHz3}rWt?!0tWn^&p@vv&rg^_ zGxl7udimo&Bu`HWqaK31eCw3xQMM#HC{JmfLeKo+iVXVNo}~wW35~6HUZBb^66>9U zoD1?+t6`Y>u1x)hSn#*1lxB;DUU-Krwu!BRbK$%<q^Wnx7o*n<zY2Fssamx~{sK`j zw&pn<r^O&H0TxfilgljzxhS-Wg=7ykO$oU!xQQz+zRbDloYxYewSrb1x6ASMAK?$q z#CL;p-p=V&%lG2%J;e+g=7lz=4XMo*C}WylhJ}@J;owLa7Q1YLGF&F|c44&z_mlIj zQ=@$A$~3LGK8C^ieYkk)cQ0qZF#`nJ_up5n$U6T!u_8MHOgf^g$&tdhluId_t3#U- zC`=iR!h_#N0h(diZIJR?r_y_%Omf73!*bPt<xarh5ZrE^GrE>5eqqLi!K7mqDr_tM z%U?JSw<B%>HXr$c6w9bB)?Qo#|H?i&fF4k>$Ahu+zSW;Q^&b-SXt}+K-Ct@cf<$vi z1%`B{ViN9ygPz+m9Z%PAnHLr3NrKbyhTN|l1=g?>MyebxOS8eLx-2^bEPf<K47`Yp z*)9g2M;5_=5?q;LKZ9hI1(JrpD&w+}q6;kI%U)lAVIdZ9cu<n~*I6{6CR_FB6EW}v zBy1_y*E0s7{HEJO6$^w?{Au8g<LD1Tw8>#dyOiI_9X}41!x%R;b>nuQb}6HiLmDYz zL3Q<^{^+yU_lbe|xS2td`}C!2{B;Sdz7ytS)Eh;;ES^ONU?Fzzk|W@NJKoT@eh;`z zShaM$y*^(Iu&uGx`Qj7*j<E`IK1j~!oIN}6`x{$aiRBnX-yW*SNT5HSz76V*^nn!n zJJS$-r9+5b<ED3he02**FGlPGU>OT(8L1=LhtoYC{Pif_<B6u}h#;T`8^^|d)fMyV zTc{x~{VzSLsII4ubxogI--|kt^^Qe#30HI#`)MmHTkpGo`;O5EoQ8euvWkIoO!Z@w z0T2`Wjn22S<vyS}wBXOAh%$l#wcSawu;3slroU$&<la)M#JV;XLnD(^d1V?<CGHrM z{?eJwsM5)(GWVlzQ6+}I(F=fkps}7>8ve0<Hmw}1Wxd;XWsSV8KROeL6LLW-^4zsZ z9QgtbO~pN=s@w}$4}37Ge+FcyA>7axy(US@kthc(moonccuC4YTE>2l(@3sfz|3TK z<zbNOCoHKW^gtKJX`=-}ulwon0gxkyzD)ZmhA7Q~M@=qZ*j!N?orOnc9k%|XD2bYy z5kcSC3Zkb=`z2`RJd8WC^;deCtb4WGSW?W35HLFTs`#%~J^rgTDZhB!0m^SDmyln| zCFC~`m?E7qMc#<~TCsD@Onyxx@|%~GU;I6<EhXEuUQOG&aqei@JvH^)vg_{pRv(`U zo|7I7@eAC3&O<-g!FssXlla{=1FH!)xFCahSpURycK6Vumvt_W%C>$K4u(9icm5SE z!C&<%OZ;9WvkVtHpckhgQ=5UQP1qRv;AH)m{PI8q&#TA?qc{S3Ew_)Y@xs@1Fa7kt z*ly*}0~dz7f7X-#p!=skiQQkoy8l~!Kc2-y<o~0-_a^pdZo{#915Y>n7aqhS(1+OF zMAxvpnKrPyg?iaNk1oOcZFC`fwbBLbUO;bW_gVC2cArhJWA{09D!b366WBeUitJuY z)7ia*YX6BCI<*Z>+V`KBR6#GWdll_w_r>%)ySwS1+5H}RoZXkx!|cA2zRK>a=pJ@o zO<!bpAAO$P*V1R$eI0$0-6gu6-8azyyKknO6DYil6ZZ5WOnn(AVCntr5l@kz%h}_0 z7SzEWQ7O|q*yEG<csqN<Um>8g*&_yb(P`}QIX0oi9`X0KX%>6jjgK6wdv?PW2M$U_ zB+Ze^PEG(l@R#4Q{jIzsb#Wr)jsL5?Zvlw1N*jLX0*p91W1^v=j)`VrMxh3b)F2FE zIXc{B6?KF`n7B2(ua^=X9B3KdW-}|(wyn%A_HEnOUh=ZtKwR*)is=>=TUczqe8X3` z5?~?oKhHVu3^ORM-@kp|?*IKe_;}v;T%U7!&v~A6p7T7!XT3r@&p4T0Z9jxQLo(UI zCn>c7>0+8^XfA4Pz;e;2n)-xj16GPY<<uus8?Z+7F;Sl|Z9tyrvyA#^v;hU8PaMT2 zTsyBw#3sTQ8=y9bJS@t$@)b($4;v;4dtN7Gqa%{i`?tUDk&;`$6Y^AE6YBbuZ;qbG z$`>x<Q1tYh+R-(^3zL8tlr7^f0rjb_2^D^V*%0e`7hP}r-O9mM5T&o-hetY#nObQu zY6v_mQT<XL?z)JgJjdMNZ?Bis29lsgiE6Jry!;!!9_GtczWcc_EBcYnH;JX;r|PNH z$$fs6%Gl?r)So<*^Km{ytvyQ~&k(W~Y2IKUau-6qra--16TGjAWj-{ov?dg)%oBQ5 z1>~p2h$QFoj*TeDH$_O@H`or_JXfP=qn{YWZ?->vZ@=cjFVfTK6QI%05W(=I*oMJ| zo*-O&ZLom)Yg~UiDVp9^^d2T6n+teptc05bjXE>dB;jTRx3iP$1$At^l$!vaV`5D* zPHnH3+Yifw+qn;UcT`=&_DOYT+U#|bhTg+O;w-dQ3Vj9HT!0ROM6JDtk&t9x&gUTj z^FIZ?jhO!*ApiI5^-@=j2Orc~f$SG5)~itP_52xGqjmtkm_F4uq$n#d6HBO5J(f_% zXJy(isO(>>v;(VFbBa}~b2?^E^qLSISKlGEe<`zHR#<Pp^ol$D>GUUb%yz!%_ZVvL zkXx1ZHks_GJG{DJyN+>(JM%CcTmfFUZ-oC|1~>{Z9h*0(Hc3*mNK%_5g?wukN$rg? zdlSk1q&IgMm)^J}mc-sDwKqvI)~ka!&^Rz~5yK`4hSvDz@c=l{0FeN*05kxh0BQim z6KHk)XYG!}$J@abz!kvl1h*61E^xcR?FP3S+&*yo!0iXO-zi7_hLLs2`ozL`H&(g` zU?ad|=%a^rJl3!sG4y?=wHJNxyYy`lXbw+YCwo^v9&L-A5I)!mqpn<fr60=e+JWWv zegZB1;to<@PoG?-eG-9v()|SK6O6oF4*$&pFap#j$)=yFStPT6Lt5`!(t5w~$r^DJ z;|%uIHxQHbLXA(%?LP4!(qNx`BeQ>tD66*NB?AAvUk2w5fZqYU3vdMBB)~a<3p+^P zgh5+}fg1{LD7YcuhJdRER}HQbTqU>)a24Rn!Ik^>4Q(UlN$78YP=MJ_`t(hb46yd; z3-a#Y559hWedqK2-`IT1yU9eW^h~rDok?z=nKmT_4~-xm&|SbMW@Q3ZDuj%I?mP|T zToX4&DBSDWs^OdXk6rfzq2o04r;rN)<Cyb=VuOfdDQ$`hVU5Cyy-0(fCTjXcgVb~* z$(a}_w`s1Ritdbl6rQn!6wJcSt7VYFe#(uO5xF*T7b{F)_R<}?zr5tdp^^WnqxtGB zx{qEWTXgTf<iACi_!8aqIePsqI&P-$G|k|VAsNVM2KM7_{;+F>Q7BXUZ{&sf$x**f zNI$hh-|EO{b4?WP@a87Wdx>u6wGs_mo*gfu1y$e5XS4}BUJ^IGex>$qdQm%gMA}A} z@G>s>28AOYcM?X~7b_J_@u3*x8UrtKXM6|*ffvr$e7wSLk~0p8&u&y^maz5^y@O_t z+fEKrTU6CQV^E-|8*g$wCrUf2s%{@tfzf@5sK7urJ4Axl{oXhTb&`j-qyJva#{Cgc zI@Gh7cs?b1Zlj*RBc8iN&*Fo4bM-|cD#nHsJV&!P3K_)zIq=_u{{iK)EM_uBV;32P z-yXzk;rPaP39lX`TBrJe+?rkOW@iyDVuI7qmts*m4V@_#iP8Nrcm?+8yCvL+N`o5p zp}J!BJVo=3Gzz%~=}FuSRGrfg4`F+D(ZI1rAxR7b_Mo4HyXRpwg*l?X+J}FD2tGH$ zDG`9TH%@JyV!tfiqO@O@aUpxq45e!paU7$_%Ov5Z7yS=JpMAk|_DaQtlkuyFd6C>6 z&cT!AFFYs9Eid?=EU)pVbftMz0Y_WpLdI(z3E>cOQ3oZ2*^zvCzx|sLsM=1(bKWy% z6mLg)S#_FMj7)wWnPt9Fxcmaqhl5fETs!1D{Z(>jRVqC0@Sa8wH6hUxupQ`9NhYhX z1Pf8Pl_muLfoK>}SjG!Vc+93zfNP~EWB(oYBRIKJFL#Iryu4N<i1j93*KaXWQ$5tI z1sb`C-R5~ChAjr|Tv!-tW?~$}=p1ji6Dt^K_Tn0bB`h-GO0C;X=V$olGKl!RVmGne zD`einFgcz}<3r{B?<Q9flKZ2M3csl)^8RYxI4hMmhNlW4xWXP$TqW+0mlzVm)fq<1 zK!JMq(7OvpXJWXV-hGEyv+(W$-db?8vG&d3v)yc<mJOf1{toBd^}O=8jwRtrytc6U zw{nKNnciDS{H;P*%!m)DE82Ac(H1YWix(H7>hgH<Ub#t*IB;q{MaicsV^S1c0I6C- zTFN_5L2tW8iVtY39;Kra<c<fG87ao)**V!O4$B#Lvv<D2y)p&vX1`rUj$-j<5MI@i zIwG~b+-%{@bN(_O+0T*Bz*f=6`0T)TwBRm!MF=c_6(Q2i$Ke0)tqr`PGp%+C+ThtD zu^*y_uy4lQU)BBwi^3?F58;_WCpCus1iARKzd?0CzR=!=lW#!n)J3i)+Yfhefp$Zv z)D>X+A%c^EC$A5IiSn@r#QoE%h2$Yz^>~bg*zmaB_Cq8)qDdcu_R?H)Yl9YSWJfJn zPP|Y(ylWafpy@7Gu)R;sjfLpkXc9}lU^ypWghl)s(ZTu99ra-^7oysKLUlm7w5MLq zDpc>Euy;hdCiT|Kpgi`j+7q@8lkM^Z@ZTV_cWCVO$Fzo!@(F;nB1YeDy_J(|kFTEw zuX1AicRH^RUA9lbX^8$}889)pSh!a3IsK}C&k2!z;>hX8s`KyT&8vNKZqhyp7iVvi zvLh-hP_Ke*!w9HlL=4xzex?xlbGN%kA1a{=Z&+xmez!{nK2i&_940eaBN16aqkB?E zH2Sl$-kg5F4&?Ryu24^$$RT|@csn1+An&9c6M%-vxuAlLlVHF}jKVLkh?kpA`u~0e zer5Bh;rSK$^TY5fp}!!same$OU)cq(+h@Ul=>QvlafAE{=Ki<&6@tUC{EC>z4^XB6 z&<4-~&<t=Cpbp^RFMce31q<WdSm`i;SpW;3|DWJjUVOpJuNYq#mS1`KdD15sdHe6+ zxdniE;cxIOFTQZ2{0hnUzr?SId8dQ35+Dzt2!I9H3{VB|%nLsjze3ySE%^T+z)^tK z7k(su#k)C{l_|U@7cG<+_YjU?0I0Jb8}9l^xRLe&DHqnGOO&wVfwb6x@<|fDPjJYo zF*G(TQ>c*BBWA^Ua>N`=ISzW1kSTnE(m7W#9NCRPrlURqWtQ-Vop}EY$Rt9sQOyiU zWu4vWBNX7=Nm&l-PTvFcpIyyy<n1I3!~Hw`8HNv^zG0z&aJfG(F&Zg^6QVXCmrD5d z>FXVmuiYu~3#3^F8=6m2?z6K~_9@tjxV1cXx7%Hruk0mi8?qgNXeK*JzG}#|XhO6B z;TkjVE!<CBW{+d1#4`h2fbb<OReSJ-93a8E1B+8xrqj@cVrB+K3iL+^?T>Z#I7}?% zJ{>%!IPD-AW@cIfP#z4W!W70#_c--=qQsKOwTvRUUv{%EWjZsuQjHif#XU|*a%G+Q zsHB3*ay+*g_u`uZFiUbF{;MGuhqag3aWOe+RvkSBwOiv|+kmKJ`3^-?9a89ob?p-J zHhZoEb5m)gpnTQ-(Gbm7{WWT;JB}B;Rr>>t!dFMc<KPNZnqBh-nLs34X2clOn>A4% z#^fkePajT&?nueBj38HbI|(-ov4I>isI?@CRTI5R!cO9C_(HD#n#o;Waz@aRjothG zlb)N$zR2Jhj3ugsNJ+TdDIjZ$#J@CEHAZs%-Yb~kVNA~rh=v1v*1r@dUcNp$sjjzq z`ceMK45rKN)*iJ6^Yz(J@r*+r-f#zUm(`4`!)x&*tGaG;HvI(3Q^*J>L)#-RqJlAQ zUjXBHo~ZZ>m4$Ot>;l88(H=23HqFxQQlweFbIH;yJ??R#$YcaL!UAD6ca0aW?C|o- z0Z)1ad%Omq=mx9yL}u3J71~h*hcvz(zxa#J1yn#aNHhxA*rS6FY97jlM|yOSO^!Ih zsu#10#lv7>R|Z1+y2c3`2C>)*kB(5Puwig-9cPMAA$JFzDUx^i%oLu>`?rXVbd3x8 zvU)_03m0zLL8NdMJN$3=Z-2te&q;aFcuWn>QxOo+BazGZ`k6lzmGMM<7PCsh%?F-q z`EIJ40pBMMnjS1YBx*xLp&WOT!ZWEv5^;fcb~4GFO8JWOs53EIX{3g1aN2P_f!yF{ zfCrQky36fj59jKtIuj+BR<!&RTCfkRk@tisGVMmQOe2N=c!u7^C0B<~R1f@i@1ne` zqoT#`)~TF$C4`^*9%hT@XL#oU_le}hCx9q^>r&ZKIIbrN+IFRVi-O@|07D~Y6!lpG zGzIYs8*B@*34jF$IC5HDGH4B?c7<6)NTn56Am=J&8m%~H%1%n7HL*A9T-*4H7M^Q^ z0>&Zs4J5(WjS$T~+8sd=tse-4)@%!qbpf|+uV{C3n-+CMxT&2_;qe`Ak5Y8j<W#=r zXIGOSQ+b$F>TvnZLu_l>>vWLF_2>Ev0gj4xIu=gb&rhvC@9D6{M1@?EB{W{4%__gv z;xS`8-m@MlWbJeh8W>OxE(O$bYk^#i!VwD8rRg5mPbIsE5w2hi7S^DNGI~rZ+2C_b zI@ebu9cI5!hrR_^qcn%UnP)N``c@b$S<wB4la7iuN5wg<Ua6{DP4=8n&%e_kq@W7x z$#ha<SJ^8B3AY@Te&Te7+dU5uFFnt-HtEmd$OontXSx<)=6ggTOOm#C%ZkbYa(12O zOq?&CUEe7X8-quHpokXFuJ6bKMza-?;*qq%eU?WZ9>CLfpkS*}*odP45ZzZM1!dYQ z+G8r(*%qgKK8ho>3j+_4U4u+iTI`!0AiI^%IjQ}Eos0#ArC|(|$fBzs1g~-Av;mJb z8DC>6&T%0~M|fiqeAoq<7KyNOyEtS3od}3x9E_xG!VBeX!i*=#chlw?2_w?Y2JnVv zhXm2v@EMVHXmgtDyhqyx4*Se+Jy4*qn@Uzc>Db8n?2b<_qfn~o8|3jla@kG0S%DuY z*M}?=T0v6RcLcctoj*syGGA312(VNQ|7B|6zg3Z<5vOHn#3>7nIIRY+(tI8KS7L<! z)~|v8wv<7@IyCH5iiVvwpkb%2WlnNR>@n}OmxnTaEIfrdD!Ks;qKHPxH|*w*q6yC9 z5yzn>==hs{;?Ioyn7f~cMfsHd{8ooS&|YN6MqI?p^0&IZ7Ml!0^)Yq>pM!VRWM?DJ zI5IkAEfK)~cJW*%U(p2-F1?JVpwhIbxp}>x*z45}L%XLX+9AxKkbwuJ&S-~kAVS}6 zOidw{xM&HkiQZ=8&j2HE=@lOEm61$Q6CPHvo9q&ir97D4j8I+l7co>*tw%X(Rn?z} z9222$s><DN6bhOn{EGJ%f}F>Dl#_TV3*1TA+OZqw1w6B4PY~WdhEuPfC6o+F-cx&3 za=y{EMx>=C1G$k!#8PGCW&%b_^w=TMLcLV`8KfJH!XmtV0rl)s?GK_p^N6Ma^&+=H z%_@M3lWV)!KSp#x?uUGLR|$nm*!!3mPQgtTPS*PGqNY;}Nu^x3#&AluwX#BuZyV08 z%IWAp{j7sj(SAx5twL=<Mx#Xr{|X=%UBMEvA0BodH3|W7+CT{4Onx469>~BT1wgdr z?<u2{@t}`Kr*RxA7Q-~CM2twM<Yu7`_LzAZ@L<z~Mj6=>x}V0V?qPLARaYz`W;#f; zQM+z63YiDV{Ih-nA81<;9mkEqCN>HsGOxxnd!rl;@o{G<SHr`q8!d5l19#Jm%k6g# zSaE`cMNbfw;tsB#Y$$6#$L-`sXhH{uk6-PGrrKd|a*!5;`K<%>Cpw~dy;9qVyDva{ z5@{iLI}U9qgt*0B<wkb7QF!wJsvKBkftBa=BD#SpgZyt6ZgY4vBM4I*D4>q>=j||A zWf_GdZPeIYqenMw(N9GMwzSM>2X~c<5Q_tst{~yL$9<NrP@Gnks6qOtWkkaUvAv}I zygVJgRL>4y2(BQgKJL+1kmwe0dv6q9>CrB2Z<7%19+fA_exE$F12;}Z&CgULG~dwi z96>{{AEbHSbxn=bZ;PabS0i<QP0p1@{Q#2<<Yj1$hr&nY)cuY6D_-T)a%V=LMV6X^ z2W*+{GJ>#BNpv!X;|WYD&L4de)qZ^+J3_VJaJjxsF|yuIIW>MOKKol~Fu{yG#u|_@ ztWX|^|LsrqYmkSZ8QfkQ#NHZQ$4<95O6*ON*bCOc*snH7rC-N3!BYb~HO969U)~|% z&O{xHZDU8EW*@gz+WQG#zrxGg<0K@`JIYdQRyC67+*p5Bs^c9(VB(xK;ivwS%AQAu znUiWr5+(b`Ofn^DPpzLQv_9&eIFBZF-N);@QQSEMP)QNLZlDWsPI1kLc11q`MS%n< znldHwb;2*?MD4e>fm08e(p2`kfnkNcJ+sFZ4^QP$R1LFJ79WS7H!710f)Q+{t2z#C zi`$r)={}2xrHyPlY8`jh(B-@zJQ5&`>oZ#1?t3s6jGXySV91TadC~lO#h4hbpCxM7 z;_=u8O0YM{u@G*LI71>`)`Jl=7{S#=jtZ89t4AKi-F9vSyvuvfA67GIz2`+WOnKoU zGWv90c6J2>dH5_>&|+IO!v^ZAk8$5EhJhVXpX^<AX8V$Nc&-@b=0D{x0u>FPc1+wF zysH^)ksL%JM)=;0K=+Ibr`)`<DFA~B^X@OSjNU|Oxk9~VCNwhNAe7Px2G-zE?Z;cD zz{j5|tU!LbIopvD>bl7eGke9CFt|`i#s0l}b2mQ<v$0>6s;VyI_kUVdb&*^q*J+P( z9|1EFQ-Q*SqfyO<Aq<Lw#pYvG^|M%Rh8nGbFYn+WGi|f#@nR_|cT{hYTV$>dN_&QR z>`<|_h~{lTgi5V#Xllx-|Azgz)+nj^kZrCV8LP0$V~?-@wN3|($O*3ZVk$znL}P5U z&ZO(ONlFb=VXALwDgmg5+7XaY5qn(qC=0cuiO;)EQGrb)9@S~U?E@Ac;g#rf+Ama9 zZWx0fAZ1(q*%lp@RlbC>%5$BGlN8#f4P%9ws9X359&rxJYQDUmo@Dycv~AS#5US)+ zRqcapQE3ku?5#-2hS4M79SmMS!ml6{s7fz3)t|ACY+2}2{(Q0g@xrU9l(@gz&Hlts zBzW3YDA0X8h<F#uaFgsk<+3-U*Exa^mE;X4atAG0!VAqrFuG0HiE7&PE!iD!ldU@7 zge!c-qDj9~vFI@Tct>0!Yyz+iz)b?Dq~*d`Bi78RM`7sJOcXA?10%KAkA$LitEb30 zAVvs<2<;?-k|^QD2yWEf^jbCQZh8<;Ea6)~jxUt318Tw%P|P*tSQQ#<begaM;%5mD zRg?4VMyL6xmo)!P;WeaA-zX$fr+fy?avCCgN(E1e)ae>>Y8iShsZ*aRx)8G9GjNJN zd({-(<ej3|SNhMg1GZtN=%<EE(I3GS9Wx|xJx%O-fEYAa!`d(oXWvwD7QLJ3O;@|_ zbC<y)+J)Y!o{1U=!^>on#W{MC@P*BD@O`7xwMc%srlFMsg%Cq5UMSHZ03TQ@4_Xk% zPOhqBCwM5RPx!`&08CKdC+%%PT59ke=2J4wXYptZ_B4#sq?jOfguPy_v&S%8Z>G*7 zHwuTgQGN9=J)`1V%Lu^&bGmD^QOLzxlc-T1wW_1~b<Q;{kk|M7ETkb+Y}1j`4b`12 zbZzx-$c<aQ`$8p|d}J1s0hDr@B`#CASw^j^J1RPXgx4X%7*!X&T0&H}_U*wcXamBK z5DgaQK~L=^J`LO&?7Z-p$%G^g6QVAYBl`OVZmXxIJ-SL`a{5%&yQu21$171(gJ!{g z?g*vnxv>z$k{}HYYH)<o_IGeyfa&id&;)V6uog9|_Gy2}-kcgUg<a~L`@Va=Py`K^ z4TW%%h-x8d2}dX)K=~v&zIH8g&OI12h3g_(AMY!-SmarvuHG*yDG}MgX1JCTJila6 z4{C+9_Y3DDskTV~RY0o0_1Jt!L)5sc?6?7Aw8+J@dp&7YRX5?vlF{!}9(0UBl^q6! zV*;rpw$VnO>$gZUg`;o4#GI`&3e7gEVGEjjCD5&JiT+u_#XpH-j2%T~K6h`XB(0&3 zZ;EJ?={sveb-kZVI@Wt;`q30v8E4VmbCuoD?H2kgJhWk!kX=ce1kVNfg$F9hAw@Q{ zslL0T07+u-o#*w14>)Z=)b1!=ltZQ?o*bhK>Njv)CS?k*zvadI76{195_Cfm79ODp zH;IxhIli+9xiUB1OiINYh1@J5xx#;(HgCRawg5!fOrGn;-N;y!%ok9}R(7^4UbX*B zPvYH^<?KXVtvdEBd#~!iG1dML>(47j9*;37xsl1P$*KcqVltHMC|$m4zXHPZVGd~m z7sE$mF*kd-%+daZUVTUJZqFS(ppTsk-76YADo*plfl8<aN+^wQ0iv2u_sG?<<7$IZ zCiVn-y6PC4A`08OMz&<}4fS8CGe@@Y!5^SrRKA|?jXELgl3li6bfb#Y(@~A~!}7}W zs3nyPn?aPNo<&E(DJs84)`B~-YV``V<F~Lswt<}wQ_;7vU$M7VwX+vca<_pU2VSk< z6$oDETsv2-rZ_JgfOOzop-w+K?itOvLrdtl46;vt7UqyQ9`Wy+xsQ0~5KZ(%_6y#i z)Sh5lcnN$xA4Z3=r_xeVg|RBaTMl-77%Ulhv}74r?$CESGTOCWFdgSUBJO`b;(Jn7 z0|YCUerdBpJC7Wd-73U9g1hL#)Ins(M)zwEd(};(1c--sSy%1k*CxwRmqdtg>0y$~ zCl7myb6G0CC#=2Ek<+C;tEy5!E<N>9Rkd4A*QI-Eb>Y&w=Dr&Jfa?9aWQ#nT4NK-m z^M`wz_eo&h|8l^Qp+>u4@JXTaWE#Lt6Mjm|Dt_2A57JNLyG?X0o68?QBRC9dZM{_n z1S)dF4{s*KDo))~gn18pdEPkks1RGHfShZl5wn<^QGtcZkvMu5N;Di%JJLtb=2fy& zJ@N8nmaSbJV7na57U6N$x*7$q(zy-lCVdx@&W(wq1A?P-2H2&%s&>if85l7EBi`$Y zXsZ~IKx8S6JR=yW28=lqV@|-BAwF5kXsnsRX}I%>x54-z_uN4DxY_6F{rN|5c`*pu z6RO9`WO#2*t@`OY^b3+0x}1rD@*c*fszSYyP%hBk<B^0u!H(h$-L{xuF2JUcyJR-a z4}4BH%;d5LM~>Q|@6xuY>?p|zEMu)?!9-QnoA9z=6sxR}CB#GHk~?@1KUsUU{AOpo z#1<XQ1;=AZqb%6PLA$$(-Fmf!p=`ZV@Ak*rb3hDFdZ4`-_C9)HIhhTyRk(xMLyfXg zd{C{yU9%)Gz%@gg)6E5vfEO(iiyM}0=%bc%ggPPKa)_URdtG=-ei5FtjpKu8?R8j3 zsVksX0=V-H5&CZI0H~v?8f%Dch`S6A)Q+q=wlOfF11(ViBcR%U3}}}=`PQ*exOMac zs{JE%wnJ@GP})SO9jn@ZT=l*KUx5o7CA4kutPQS*<AI-%%UWDI?|=zU0J^&-C1CT2 z+OfQ<CVljb1k`ovd7GIK(c-$Pw`I3Ql1gZyfwQD$z*I%#be|zR>o6+2EsUsgpp)Fi z>Vn3b>rq-+y#de94V^IecWd=Zyod7k!(>~z)803rs^%r6zdG#H<!_EU1`F%c^)etr zx*SW!N4gqeRE&mEk#E2LuyB)}SE~*v^6i&lWPFTU%J$2nSXI7bWI}>Y2c6&XJ2G~< z?DYfM`tm8xWGTsYl)VmUe6=N*oY~_rB6^+lYN<F-q<G10xPh{Q43rGdK$(?qujmVA ze`6W7Jl`S1!P19=1s^WM!wf#CF)?svu<LdlJV7*aH5okv*v8L(NZOeCD`+MO-XVm_ zUtOWR%E^wF_XOe)8ZC7x@_B~DiXeA8JBV>Xf}JH`71>Ywg!7(Gp6BoYv7-=a<i286 zb@l*q9-SR42Z(t!G@@lu7j)q+;J2KQjKk|3ow<L;`Oe&^r^!$8_%y*r3J~(W@#rqy zH|(`!9Qwp#LzHodp)wAK2v=ZGPdXM46ZqXUw@}V&?Dj3AF!d|Cn}I?Q(f*ndwp{kn zjPNDvt@eMgn9sG2wU%<COhn;VKAVG)upag3)iyNn?#OAY$r)(UH{;|COf);fk<-$s zcdK2&O?s3SWNLEUPJNqEP>mustUOfFhgOk{Qy)Z)ht)^9F}?MSE{Nd*V)SjS+-7jw z&_bFlq5)4Q>xeQec2P1rCz+io+{2P{<k4<nBI|d1e{VUxy^ot!j*LFngr0f@tALyt z$oZQlJz8?q;c-(RuMe@P(GJW#0Jj5722k4t9k(Z@qK{DeU9KtObnY4_&i*c?xMtur z>Mr=Eeh(Ql(+?lQO#^K`F*Uzc%SOWbKU>?xPL0D&7+`iGMH~Y;sj79*z)kv2lG&Z` zAjgN9@IcC$9EX^*syHSPoHg3Rs%jNYAfexI6U>D;1vatc`B4fWr-AM@gu*l!1R)q_ zpN_q$($Ec0@=60#SHjp0UGmpa^njI(sOa9O@q{Z}A&@UohxO_{H5){I)xzHM#8_9K zo0}+{vU(c&*H#=bp%8=21bD6zhdcT>%TfL7Zm!d*Z-$u<IO#qda~~6P(Qd97=t;C= zR5$%7%(D?Nb|mbKN^>8MW=syLAni30&gJJ1cjsZiGmGA5MQP}<R@@5jVC4)kb2@GT zQSi<s{>==~)>!{TWYeRaib82Gac>C?4`FRl3fHw476Mqw3~rrk1TFzMG!+<ozA*Q5 z)T+Wa<2n8J0elFt;g?<C7MKmopzW9hwZ&c)PR{YA;Wmw}#&E@EzLH#Ha8pH#J@v5c z{~AUHw2+j2$Rf3$c4t8`dljO2KSA5XO%P%Mx5{W#>cko#wBr-EyW@NKZgI`-H@fH7 z<n#+WzVoo=6Kxg!6FK08h25}H%@<w_B$>hBYyi4xzL2Ewy#KaG?*;@S0f7(jOFV>n zW~(dIcwMh;dJ`8g!k~7^M(9y9;`AnMJ)0PZ!;8Hwj?sa03%p6`o0PuE8Di%~&Tx|( z^#c;u&G@xTV4Rb2FarFfE*VT8y?Ql%pQ@_2QSYbTt#jlEs_K1Y+3Pz*22On(ez>Zt z1LQ-(sbGV)UR7O1;&j5Y_~<4g8!TNv8VG>(k@mg-RdqgUynJ6j5amu*Rn3H#WL0%4 zI8A!NJ%A4R3OgneWnrW-qEC_)X5?YEDUEpC3LYNoi>j)hVJpkX=H-0h&Ti7gB!DAJ zhLn8}28gQqSCDIEh4Ae=A23`t*1V&Y@#2Zc;CQ?I(Y568L9Y5K8b=e$KX^hcUsaXh zCe%H4KlKDOps4C65aj@3O+}c2;$v|G@E<n;B7X5PehP|G@s1?l*pUZSi^IBdVQCgA zL|Gm<sO1bL{7E0glVaj%kZU(I527wkNq}}llhK(NM=C8lI9O>Lq?h%@RCI3r3<mkp zK}i)H?nGE6yjF3yVZe5NYoubh7)Y(E>pRqS=YwotZVf(OqlnJA!cBuOK*3JJMAwjk zk=qm+zJg9E{An_nHj_zZz4s#)rxl9~XO+qeIMYxefiQaHI7o%Li^(^9?Q&q2m@l0E z6t^LF{Q&Xi^QU|&L1q(&e6*+l*Ah~ozKrsZ#iBq?kArK&Q$7Vf8=Nc@7kid!y6}Hj z<YgbNux6tc4jo;ramjST3hd~k$A|h>&)R$wIa+Sj4zLS^$;Bu$>G~k5Cx&ZdBVxE# zb~3EnIN=%E{e)PYi3(C1u3h-WXJjph%u9<s_O4P=@F<v50FK9s{EvWB264O}4}d=> z*rBc0eo;tV*i5wIhv2zw3z@;8CJKvG$OypMxS#J5{)}f2T%Yi#QnIVcH?A7or6Xz) zqdr5`H$QM1VR4Z^i+$!nFIRhBLe%B7;&EmJ`zIbZ#ZCj4eInDcGD`>n62x*R&?G{z zlAKh**G5hFT%ro<EwNcb+_$0u%u8H(mazC)YRyfCdr^iGy7{amn5e4oD=uKWbxdZK z@L<D`O`Wk8f)(BJX{jF)`duLjb#9PC)m*{k0KRd(6pAu*xh-=tg@TcyiQU<0xb1}Z z7qW@A{Z6uuQi`o#STi6}Y+W5^NkG4_b2mjf08xInSPVy{9z@>jJsK_3C>%UI1gSNJ zBFg<j3TDzLtLV!XKDE#@<W87sBYI_BKt*&;MZMhJ?ntPbb!aXVX)b8MNXQu>)<R`3 z?v__pbhkmuiX*NmLX`#kTg?M=!zmpKjQrFUPhIfsWHFJw%O>_}5v6yEsq&CPV?N{* zIxFfkk-rCW%aPM9>}*8qcmkP|9T}*Gh0P|DCs3&mH=-7y>Bn)pzU*e>iAab#qHEIk zs+vY<n5_yJ3Xi@EPwyZ(l!j*D=2FR7YH^_-*2|lPrb6#-!@Ib@Pi?Xi#oSm58jQem z#=dIz=HRVz?Io+6Z*ZZ320HMCH-71vBiZ@8vGk3BThCVaY&gw}1dc*TB6&c33*$ur z^^8Y-MtE5v3tKrlfEy{q7J3K~a-Fl=^`7>Jtq*O6V#^;)8>H>G{=s*hLc2BS`*Xag z23bc!3DnGK@^0vW>4zN|-8c!}CVW=l$zJ%XV9=t1BM@+%&UKUXoF0051zjm%rXhYs zeL{Gnj!!&$rI|#r>Md9>mY^0k75FekE(0FBk?lkAwkv#bZgP-=#fmmFl}4ekK$I<? zH2kI4Ca)wbip3IHZH(&-p*vnuF}5<YHa=Whm!;ajNv?XouJQtsT4(wye?anvHG&Hs z>_Tvnn3;(#&@WTa1<EDPwpecCgPlw63a=ew`?At@Tv9W}b*sPcHrsKjOR$;bTV10D zLu}J*)wtWw1rZh}rvbZQ22+Q6*maDLWkVw33RCaWb^cTDNBQJivy5Nv3g$=Up+uvC zm_HG}j{<tYkp<rca9J=JjzfdN>Mi4e3fTg*s+>~-D<(lj*1*d|3zBtY7w$s7{|sB2 z@10@agmFo1iaC=d(G%E!Mn=Qe!@DcflDI0<so#}m6!PweT)164*^NZX@e&*1Oo9)O zZ}wRmznohCWnlEmF>)?&X)?^VZSd(mhN>Vd2kwpnvdoSqrTNAO>jLa`@_dK>xavS1 zp5iwZ&{O=Ac!r=Rn%#hs(VuiC%blAe<&K=bEiriAS){24O=s5{<voYhoT6q7OlLu^ zfSL(*;GFb*@%AQp4A-~$IAju?<7Q_=PEjA?7_tw@D&+itOJ<R+)_z=}gcJ(*!g#>P z)eh4j?lB6d%-Cd3eJiYYyHKqTDpR5}QWv2ol!S+%!`IE7<okq+SOci>h%8~R86^jn z+ba~nL8J+DQ{f{aLQi;{Fd4VRT7g_a5lua^Kky>Q>~cC?fsjVd1)<+ZsD`=~4{JYy zd1kaQ%j}t+@N%oqbgA=^BQT&)9890@Z-fQRS<&^%EBUWD4CjbAiNnyw8$w>TNFDm4 zd>^!yLBR9XoK8p1kyS3WQMemr#hc`4Qj!nKhNYzw78?h5Qn-B`-U4ld{s{!%=|F+P zaN3pUoi1O@^WB`i6UawAnuN;1uzB}W&#@8^3gfwl=yGymE#3N9OC(4R?I1!=i?SUR z%`rKhcv90Tyu1U+O!VUQ=kOl01r}16lo8V!lo@Y?kr5=}0|};k7SN-(1mQm)cf0qB zZ}R|a_k6r9E~Ks_q_bm6wj;E|EG5!Mj!?ehC?CYnN0Q+ppr6!{LG*#O19dU0R>61K zF2}J`GlkF{<kEP%bBRPkN^;IsI1KHzqhn8St*DC8(Bg`SUM^wpux*saa<|$x%Hp_b zFrtjYpPwK}TY#<%;74IvhrUHtZ;Os&Px1Pe2z@)xos;!BD(YNQNn^YL35>)d-hAQa z08x`RYk=y;OyT}4t7t~quw7=cM|kK&38IfjGLYiIeB1|`B7DEr+dI-+q)S`H9_lD0 zoX`=nnejU#--w54CyklH*540V@^3X!!r>la0-%JW0tSa`z7e=Wp7EqwJT%qCHJ(&o zZHEr*f;5eRnxt$#2>JuaPoZX&yJiX>8IyC4>N-XdaA<_n5l2&K`^b)_WC}fyZ$w2q zWG(CEE6%y*^ZGidtNR`(SOVpqIW(l)P2O@JMEPD3-I%FdV@%EwZXI9IjBT2gDLgYY z<$W||!J4mh41`M$4hf%1!*O6vfq@B8zBn)>O8;sSMb-<GB7A{@Hj<OoOi8MlA`VO3 z<2{pyJu`U$ISTDW>Zen9FON_^FogP7uZsHP3PG~iE3hC^=HbFZ6WQ;ZW%6Go-df{b zB{F*T%FDR)pCwCbw8-m>_wYJnO~@c#Sc623Yt}wBcgsErJEcdjl(M11S8H&j;C7Jk zhc({ak2Agt4w8K^fjA8?RrCu*$)epnZkF)m8viwA(weK3L`K!Q9)d->3lA+Pp!}F% zks=j@ak4xLAD3p;j#2GDtlHn#lX%Z$IXf-Bc1-M9cARSe_b8j!6r)#i<DBtsv;sRS zCa2#eLm!#L&>tUrmTOq;r<GFQf1MLcAFZM>IaHtfvl3C}w^P`@$gA>m<{*{TM2;_% zP>8Ckm>47>SQA^($i--XAX-SdIf8w)e|wBveN}r<k&hXWG&5hdU*$Ha$yx20MLmhq z$#SR>n^1c*R4M@4+O@p?yaHl<m_PD3p4jpi7eR!4ZJFAtg#T~a5STA33vtbd=keA^ z_&;>R?cg)f6|OpfXYkUV_{nN^6y)HTjGH0{j=5y21IIBBp2O7wLPogtN{WFO0X?6g zti8#DL)IV;G%7(MnV^tNP)H^yBoh>p2@1(KgaYPsikp@XU(E=VzOHrwIq5%k$U--% z&fX?X#(*x*fVps$9O3k9+|BaHZz88zXFult>znp^N$)52ZzZ*Q<rR2ql0*lwc)%~^ zoBCHDL(QuH?7yeJXPCDD8Ub1Xz5xgXqBRU)F2E9iH2?(w4+GQyJPYs!z`Fp)0a^jN z0Tlg^4j>vJ6TkxSFu<b#I{=;s*bi_Dpaq~Epa(#Hg<;eHQvhZGL<1}Z_z8doU<be( z07n2m2j~VEJpg3^+zyZkkPcu0r~=py@I1hq0Ph1d1GEEl0|dJnW+K3BfP3AjTajVb z0+ax326znMC4k=m90q6x_!6KSAPh+RSpd-h_mj<P|KEjB9rK%b9W(a<9dl~Aj%i-4 z^M<|ihK|`aL3dS}d{beOIZwluYSx)qjd^1stH~|RGi&m#rNx>uYiX{zynIfuZ@gTq z*~FTC!!$F>8TiK}lyXIRnvzn?$DE74;Abj9kNm=tJdJS^TTog;0y);Sw#W=oQ0Kw) zX=Nm24umk|-J7no%v?fZ-BF%vEi7Z_lx@Otta?DyNHJiTVy2wQWl9+<V}`#uOdeAN zf6$jq3B!@++elq!m2gEx^brpx0<j6zj4Y4|l&a-=y*>bc^CB4|iL8k>E)P;L_e4f! z8H1pb8l*QE#hQXO@MD;bWgFqAfEY{=qfmgOfIoa?_Dzdtm|NmWITEQ%9uOF$7!f>D zIcl^@J?5sdA>+p196Dj*q_D|TrfR0$GCh38%v)#Oc6-F^JLcROdDq=hbLY*!Cpsop zyCCk~`*iUO6B6}Fi;@@L|G*N%(q+b!)U@=B%&g_vKUuLdXVvO8rnR|w=KOU9g_Z}4 zic3n%9<r9R-1-e0H$D8w=87#_$u_gT1iRE&T3EuGt?>Q;qi0f?rSSg}CW^TmS}YNs zmJoas&HizdiprC$W;42JW;WAQ#F6JkKF{$*MWwlz*2<Nzg~eu#*=jAdY8Yk|bZ+{R zWoc>D2Va@A#Y-3YyfTT)4DpMX4*I0dkBpi-DmcDGV=5~vD$F&pg)n3aOy!zl6AVie z__M6JxQxZ2SX63)Az5J7BxpQk7Zt9xnyi~Ng-~a!)tt)~ZJHBoEHazQ%`mV_SW_-b zQuyS4Yq_SJD=RCtLWtQ^tjP!Di%YF$$O9gWNt`(pTZ&)QsNg#^@q=h^khdXi@e-de zhb<^9*O<!7&BberHfi!WYhlScO$lVR-b`Z^mK3surlP`!N%q0%7$3e7M9B;(HEX$b z@UGcZ%2|DJougUIY9MNHX*mmZeb5ZKV|A?Na;^wImwZjGsi+7GgO);^?#L}IE+e1r ztUGgythZ_MxsqJcrUXyZAW|jetd+}Uq4MyL1SS?08BB$=?pW`;vEJnKE-B^K6==%K zOu1&#TrdDkMSczD+g^7KX)kZx&9w7U(`kFN1%PyENv?U$jkkvfw@54lb3*(E3&<10 z?~cZBu7u1w{wNffO=T2YjCap<>bRk>bV$Dqrkg)(x^gz}I_c(Nx-t%GzrN7Qa;Boe z4#J)!5i#D}Ve?;IT7uK|ozPG?dy|RPoBv%g{`DsFDfV?KyyuzM7v}oJ72C+Xu?)T& z7%|u~zTYawxo1e6Vi<OXYyqqZc{mCl92$T4b`cZhnOGA<A4R)-=tplgKg5~Ku^=2N zsp3Zt6@l5QxUd8lqC)I%9PV5RSB?$1!So}3@=%A!m|^Q+E`eSvEh#paun-&LMh_d; zWL?K$#By)G<a^48NsPr0whZT7FIt!dPH%JsGmN1y*IHU$n$K!73rQ^#A|kx)v4l=~ z7%v!N&zUoaSpe(vIxAGI!~_wzk_SslH<a89<%&u4*iF-dgN-y=tVW~<fOD!FDLzkz zXSw*i)92X<&kFJRXFku5`#f*=d49s@d56#QlRnRZHru1NN*gT5vPW%?ZnK311i*@1 zU0n?bMMm0;wi;MnXWbfY%(B6H3yZSRh*yC$vurgsNX5XiTu@M;Py}r(E89?3=C>aI z>xa7ThW^d+{#_k*^<OejO4s|Vy2hV>j7pzB$qoMbrr+lCC%wTxPg>1Cy7~VJepmNt z!T<CKkPQCa=+AEiNCy9;H~2R=0{-5=zg2(y3xPl1H{Y-uuCiEf|MwfM?_j-$`bY@F zXsg_2ud06Zr!|gR{xRpz9^d}Njwhdbdgn8{c0c>`=YH}03oq_@Y46Lgy!zU{*Z=L8 zZ~W@be}C)OzxnO&-rj%U;Gy5Y^X_}^e^6I{xZ%hj8k>$DJAUHiA5WcbKJ($(bAS5i z<Caf8{jBxRpMTMI{>!i0|MK+(q2oVXo&WjGw_O+ida3)np5DI8-~Z5mWx)M+GepBP zJU7G;{iEyuk1qeeogp1Q{GX!zlaphMi(_%ufMN3BH(O(Xp9UW`!H+Q*?##=(a}%MZ zj0T2@HxQl}_&CB2GfPX?d!Ls9w}g*r<}%jf8PBcb%2|fFpDQAH+z+%ey76V!Lfn%u zn5?;|P9Vv=*2;-A+x?~z@(AT%{+KW3iFsi@m<OcWgn3|kOp9rlG!x5N^Gqa<Bx@mg zN-yB7<)UAfIj_VlzNB;X$xvECJkmJPHL;i$(_ws!hjB2R0VZGEW61(mtaL*fO9*51 z&nP!rm#wt`53qQUV#Xa02wP$*XXA5`t2CCDab?7hzSC?N1LSC0XI@ykF`mgt)2Bw= zJtuL=5`q&H4Hy6-fDfRB*pc>uDnreo0iYeAIiOXbaiEQ$si4KM;oz6BZ0WL$^l)Yl z@Vxl$*-x6YmSh9|#d*YC31w{puA(@#w3MZ*WAfjzvf_bdbGHs9W0~fAV5KbtGIsa1 z<D&Evy5~gK^Zs$D&M*Avknne>`-h+O34eWtj(Kl}fB0iQ;S1*J7~MSo@S){@73&|~ zJS6<r+TqJbR~x7E)-ed4hbyP<-s|IW>AvB^C&%lUnE30bzhlw$@%-Wb>!*Kk>Gi{Z zWgM*AyFSk?L*kXD4u(CFI(&P~%l0qNH=oabqGP`O$?)NKtk5xct?&=88<Ky`D*tfb zehpo%WA0pi{rcW!89qI_u|?NUfA6O2r(arm{qQ@t`G*hf&+w<OpZ>jPt{<Mh=lb}c zc*Q?_=y&<VYcw2xe|%LpY&lEbygnWUhp%7Hk;ipR`ekoX%xK)aZey<b``4Mu-*={x zDp_PMF<VWnIf3q!C9u{a{d#i=tQCzA#^UKi0&bIgP9RF;S*AiZsnnWQShB9jOjkzc zX(oZ3m59+`dHi=-nwj;<G}%;=R|Is!cbKc8G><DXClwZ%mzs*r5c^X`kGt>*)<U*0 z*Hn~dCi{Ybw{(fwwBCG`|M!Er(2TPfCPJQ8WCmK|7OA+J$LHl)3C;l$-$Rr#Oq)<z zTnq`96qZ2oU5G2qC!v(Xy5Ea=q_KI_6Z#v|Ain9F%FN6H8fvn#Tp1Dt@yrK6(G;24 zs}Q|Mp6=Pb^S0o>k@7jK6<XQjnJmvJDIjI#={M#Akp+pNIC3yCRSwt<8~l-Uae1P7 zEw^r+*=mI9V%J@eh_ngW`eK+@rO9Sf89CfwULw!*AY&!L#E4a3{vch9J%AgV=Dfuv zxmI&A83pye{y=?r{L?UPe1ef-La;TK=?(bY2H0epiVE|{m;uU%xmTX<bB3}2-^5dt z`|#O&(h`Sn1jTOb4Ik{^^l7hjvXi<PXq#u`S<u#G3^6^@C8ef3acdAp)9(Ri&!+c~ z9*Hl>ODiiZq22s|1Pjy;?rf&9czOZDw~mbcs{)uM!=%V!s^nRPdFF%ylQq56fIGzt zH?d~s@U`=S(fTs!2l~}8j7gqJ_rysHWXn=GvvrfvY$XI|NiH3h(AySl>-56h2gPyv z%d5u{G)@{BpM>m7FNE)_oQzy}VxE<yvPBss8-O}xUMCo&nrU~e@?aqLP8I!1==Tdf zyVK_#K0LsAp(Lq@D=)yj7jpUeW-E;Cucb>845l(#P3VcKGH+X?mwFnA5qx7oTj=Qb zgm3tLLAnHgABfXI#xyy6p`RRc0mliJ?mfc$C8<#w^g7I{OhQp<xi~v8kI~U0;vdgE z>r<O$99zb*q>g^EvY0^p@_c52P2wzvg~l^!3``<rCac+7+f08Sz`6x-^y&XhleG{J zDB_t1^r=hrOMoB9D*|SzM3xHUnha*<Pc%*5vV8hJQ##0<VEtg#^2|o@EEKesW6kC9 z*Ipn0_50`f)kVa6U5T$qgZk>Yc+cr-sR#dX>5qupzkdJwe@nmCz4Pk{A0++<@YguD zioVn_D*;gc)E4}IpD*TxGIO3WDHB~hL&NK*D4~d=iD>8ruN4FVpnR)BbVrD8uoyPd zCv3c!7G0H?uUhmQ18|cF=s!*LpC`V@i|+~IyHQM&D*C61ZkCvTwpezN=#LvK8UUDZ zfp%sXtB7l$7~dx1Tq(NS#BjS9UM1#(7XVQd=XvpckBHC9VtKEL{s%<-PKn_ki{YU` zv@JYs=4o?Zm-#RH4;TJljXzxY|K6W^*dGno4Ey_sqWz=&hCg(m;lpo=|6}p~F@OKR zj{))b|M*ZS7zcEiRIYd#7OXYfHf@_G`oH=Gb@#kN-O3l*(6$q!+hQZ`K8Rnx_tU+a zVe+jUpsr4I-@d{4@uIsQ;-7x0{iTV_UtSVkS}}b7TlSDA)E$-b>8ejP%<4}qpWc0S z{Ie~ew_RqKySC7jMgK|n?h?fC|E{@v`^5Mk^<BbTjVs!#_WTN5I;QJe9aDBu$JB(y zGrJ~IMXTsyU%SO0uC0B7j;y68!NoQEMR0KqSAdHjaq9&gS&QEQ7wL-{aL0nX5?rKd z!oi&YZvWRhW+J#pz?}r{W8fmKkO%G*a1+6u3U1q9bcB}J2QH4Yx7u~YDwrDFjfgzB zcy`tGm5#x$rwv>jY^~tprszp<Pd#&Efb<vAQJ62*$-`b?`&gjwcU{skPXTNPcnqKh zpbEeSuo0jPpa5VcfDs@WU;#ihz+8YxfY|`E0Kx$@0AT>303iTs040DNpzp8HCji1< zY5X>DTL78?jsUz1@D{+!051YO2e2JrGe8-@2>D>2W1r5!HibTa?6$uRTg6|pXf0>X zknw}<qzQO(0yE5SD1T)uqv^XY(tT=UTKaHFZ|G-C{QJ^3L%q~f=(zUy`99+}J|K>H z9E(~2oOy9vprsI06nhTf62KU!SR}ww0K6#UNfXOZx_ARa<l-3AIfXad{|bPYJ?{iC z02KW%AOQcCoQibFPbU66>5IB`Odh~WfOLSN<LCbXP)h>@6aWAK2mnQcoJ?YH&f5i< z0000a0RR;M0047kbailaZ*OdKFJo+JEjBbRWq4)my?K08MYcG8JKaq>8#gQsVUq?L zj0PdvE(s0Vmvn~P($V-tMF$a$GAO7FxfgImOuQW@P1z%F#+h*(-;B#R&t(=zXIK@p zKo)k8C4fqBt)@l7ViMN-JLgn)(nOf|zQ51+&o3X+w{EScs!pA)PSq{BXSrmRB*_MU zrYT9QB=OHD{m=he;jj1bHNB;OrfnIq$`af%V%nUC%U$yqJpPjf_dn_?yZ^Dr9@ktC zJmgxSKjwP)F_-_=+g*=7{@_F7va-_M@jCil#<T8v`q`O@zxk`r&74NzpU+H(=i&V9 znYY6;a8=68a(ecgc`rTfGbhk<;LJPW`5zCL&B5|LVJt0{qz9k1N!kBkw<Y4*q)}2v zN}43?ftN=_+~Pd=$rfF=NbzurB-!yt>V8V|En=|XAB<Z?qEO=T!}kk<(zn?bDK{Cw zSr+MR+W%s(|EGU#lC(VK(#hkrhZbw_9J(tG5cb`6VICJiGj73y_iOh{(koYpI;AV& zZ~uk)eDHsq$R>Sx9TtQ!8G!X!dgiMcH(z9=K0;rmba)Q_K|bIAK~MkRzyFK>)bI?q zLk-V!XRBe&ouh`AxLwLL<qqXe)%eyGWQSCv+4R%|*x5BWX~+MjcI=4w(=2M_2~#a= z;=W8t^0a%71j~*#NF&wAbW4!6Rhdg4l80Ad{ffLIb8N+_8M@7Eh+STBYNYO}YG2yl z&l=vFp|VZvJiiBOP^|~^+8eAhRI@&o;%SFMwy~<Y0bT>%Bh^Lbl2uTsZ&IPrqL9kw zxmA^E?oyR4aZhisj%+BhNGhA*_61mjYOHrDGnIRl8TFeJ|FFL~cd3=%&I06Dnf-&l zkl(Xj4Ts#N6thodwepHIm7NYXYyFn1W=+MZ@w%<SXU<sW2sP{9sgaNyNklO6oZFXz zPruuzMy9#*0W>x2cf0saeSk77apy~N)!!rv`ew+X*KxT2P2p{#a0(O_gRVxPAdEQW z>DZx~O{&?fTAL~gXXp+H!c%jKRBzLQj0WflMe4DnYOx_8R6&5P5vs>I;oGt#iKcTk zu2{Y#9RYiR^2PclC6r+T`&e0pZz^k2Stoxd1A~n!drl0PXEX22#;BLw75HAc9!K`R z`lRu`G=AZ5Q&)rRu*%LvN*#n?&<*|#5Dbs0vJ*=9DM?<J0cch1`BDw%@H=3Ds%kW+ zJlroq%2W%W3HMQ?-X^cegI8bZi1uTjylxB66`AeDRbOfWU&T2@#Kzb@2#wSS_}UvS zdT&n+B+4(;_^vtPXRSNTDpTtlWQ~YwTloiRh-e)i6RUj9S3OPzJbvkdEWb-+Y3L;> zX0a3~D~5?^2!yX~z(QjHc>ZcOfzfAq0^a4>0^SNQAjuTdGzn>Y;PXXr7)C9(s#)*L zvYr`Xk*b<Chi9khy#5p5+&FKLJ+~X#<Kv%=_}&Vso*Ep{eQG4=p6`!Lnd8|R{=nTv zRKO2S!q0U4nZ+9%k`%cM7J1fl02<)U{5g=zbbfaLQFaF81q7QPgt}EM;KOMxz@PkL zPjfL~F8kQi46nI}auzE3&H?IhE<bEXY;(Tz89vlm`~e#RhWOJd5&j^g_ti6iLuEmC zsj<-v+kXwUn9lnSAfg4a`4<Ro)9FuC`zulH*hIA%m#8)*I@~jU^TqM?F2q$q38Mm2 z*J5`9>|CIX1Fm{MRoQXCSXf@c$ZeLV2H(skZWI}h|1DtFLXzLQBk0|-<m*7$Mi>?@ zrxKi-Kb52swgDDZkhSs@IkD!UW>GEF8F|=zDnH0<p9RXcK#^ZVk$`nG-`yMGpZHmv zNSO7sX8hJD6kD>r2Ob63dO{&UAnK&=_Pdlj6-0>XDMSF*W_1z3d?ZNhxF5+-u<R7k z4`r1E9riSv&eQvn=~BK}s1bkWctods)mytTM;<O!6pYidsbm9W2a4sbTNG=cserOn z(z6rFGWaUig0c#0{nv|j`7v%^zT<rVfTAXq&mjmK6>5^FI!O?@PP-zumjP&DV! zPvVn21|W_US)(T`f`aA4Q$P&FD*P8WN<{o>puxbZ)W`>!n9erw`+nY?T{SnVW}WKY zTQ18hQbIMFV`92yo0z3X8&V{so|Gx#EdK<nMhS~MdedSa4V@?<NaC5o7H0QDL|Ab^ zCvJpLwUUWr;l?c2AVocL8dka>_XR3z0iw?zIfaX#tANEWz9oek+luQ9h%EMTGL(xH zr$ke!iGR9FAq&i`I~e|xTg4fJej+O=j*PuwjRRS3q}YP2`3>S{TM)knbeg7d-VzAg z+yR&Z$I_9iQSUIf&R(vv4BpuR5EzXPj8l#8EHELR`qwl!{1Zr9D=15&Bj7!VX-^Fb zu*}bREfzEDlM<GEV*q)FMg^2=V=A&6?aBb#1%U8fe}WN+iQ(L}Urb?;ZQ!#Y6OC+a zKr!18&s=^Mhoy;o&zNSA#k<NxS5+pa7MTztEi$3<bXv`b)yjR!%=>;UmNXEfsN)<~ z1t?w$i&}LA!@itgSascgC#-H*+b|KQJO|hbR<C+D$-l1g*6Ww^;2242B%u~5f=iG! z&rVM>e_*sE8BJ!?iMRwsK28)Fbjc#)<3&D~5QiUh&*!J0@bdO4IX=1S*F=uC@z+K{ zrcP74(&#)7xK#!#d81l;${vi^_g-O<jL(Owb9YV;So;GeXI+<Wkz#!yFg6|K9iSEV z_aIaI<btR5(OAo1ti_3F&uZ1$PP=gkiZ?^?%$jzkph6qT9~pfqa4SGLGq#%E6Z(}1 zSXw_^g(Yk=5%y{BIT$(A36X6o+Y8I-1IVx(Bj3j%L6%hj)Mh5lfEuy?&Tf(FeYYbO zW%hYqi?p`CL_|Av6)IIRySH8r)&r=7y<vL*vhbSG2$y|W9&`_~x<NDm@hUuQEGE7# z5~X-z>Z-wrJc~WefLM9Zni}qJQH{EM)u;u8j#)Gi=j=PLgdzJ1`w(%CgiOT|)fxcu z8*whqwE#u0i4RkN+3Ikpf~>zKV4OC!4EQ~-*-NT+>b)9M&I3aXm^D~^z=&G(50J90 zcVTCdH}fJ;oGK<=iz<$0=Uc|$<YwIoZ6j-rJ_YZa#aIv{&RPPZmFnHMU;+%3<iK#t zqH(|{)K%}iP5-V`^LD5mht=BCRzisAO_5-qY~BfanY?ChjvPx@BUAHDXW1^|{s@Su z-#FD@W&59!joNI!F**0mko&ss+yZVGlw($Ge&d2002DnH!%d6w<TXFdk=4A7N$_+; zdjc~T`V2K2wNUdHA9qP1ST8{Flq|1VkV9}x78wbIHC-9w@IL7F33-^`cO{Nm3(oD3 zLWt0u{DYAa&b5}o--8gy0KPCFM15BuF8nupwmdu}^cz+iFghIzZkJc=46L@q{{`f~ z?|^9Eg3Hv7ea4|wtyeIwRt;x^a9zTh0!Hgif!b&<y->WQ!i!bwGkf;z<;&G@AH=GF z*{q)|0eI4@`>1AZz--dn>*e7-2{Xa}K;<cEs3eu=WB%}MAW__w4dp;kx~&ENTA@5V zIQ+H2U#H#@dto-ov#MO*2mYW0{D>kDXu%&U1W%4XZTQovZ*Qx}bW71`fRq>Se~|4f z$*9rXFoo@PsaozbU~$#9K62;_92~O_AlFhMMgKaM8DRDGYS;!Htb?&l2^ie5U`$}O zd7l0)4O&4~*&Z;Cn<btdfz^^2%F2?e9a?k1sBy?426e`(4|P|+IP_(;yN{;FUmsR$ zc{b(J9*9TXDRSH%f1T2u!xxXbR^+%k{yMrV!|-@aKan9@yvkJ*ahYO&tQ%F&PMGWL z1;y>PsaiVBR&^i95<3R{b1fK@JVD{xa$v+=m{9%=bjd|SkQSeFEK%ctD9eIWn)TQT zY+-X8e~VcTthXR*R*Ww?m3GM%WIMEe3iCNi%1Uh=EkWxJpmD)bI|60(H?#iPDl5un zszbF-b+jv1S<94HC|0AjO??pu+OsjhnhCq3zXQpK)=~*mfLB4n4jzW?T_EraK87+g zNN>5paM0~4LD{lS1^Jn;yPR?s)C+we2zheuxbrTdh=DX{e4CFv_DxCf*cWNxoB~<U zv$KSqVjIKL-1AlMX)QhIJ+8|^Z=EKu#@3@Bpe_rq$AaFCdZt?Vf_phc>z~6SkB7BA zLGNLa^a>_5iX;qcYlGg;Mbf*N^cRtYVeJ*sJ9e<3pO!(IZ#{~V$11!N^sxYiHUj3< zDnH{ziEnj^B;+ONYXCH|ZMh(D?o=aBT4D~&YgMWTsHkBc#|j5(51~r-8_EQ*+tKPU zaG7=Dcr9z<3@vTqI34)KiI`1|%tc+Tpr5`?^&Zy72Vn$82SK9B+ZHT*j(R6Q`*w2E z+xRrmG&_eapT?F4ssO=ls<&f75Jo~95oBBA72p^w{ApL=EqovqhC$Iv)x6Kt!k1|* z7T$u|1@cwQwV5A-$&8Jsy41Xbn2RdPrCeQgZMr;Bmrbee?*=jGKOq;}7_$NKoF4=| z2<<aCIsj<hLL4FlI4d!47&8zX>7AIag;3EQ64ux|F-;4pZomwEG#@++aqK~m|JI^V z(JfDa%06x=%1W`mfFyhQF?d-$5?Q?iWD`(V76WSLqtHfL%FKJ~yY(;)l~?0iP-8$= zJ}pFhl^sLDuR>6FwWB4#YD<P3C>hlPVc-cRLw2HO3bZ!pE+`qbonjkRj0M3Pmqu=Y zVqw5ahSaDK3(R=0VzgROo!@^}DC4tGf0_fJmEQLQ29v~Jyjf2GP<kJ=wl;fqN3Ch< zDJSaH+UD%&y%+HM1|<g=*iO0X8B`&TU5gS-5fFjpH6(%cQ(5&Y3QYyto8`<v{<}jP zz$%(hSh7Et28}rQhHEejz-cc>VWF_dp$#EIQcc;i9>Q#C{LfcV^$tvGry5dpr$KpA z8j5mYS)7m`PdOn!ZAs>#1gp=O^z%VD%4Pd>0M9-b1Wb9QZMxCwh~0@gfy=X#k0FBv zsENj^Ovr0lIsh5Biv&0j2v1xmNq*K6gYp$<?efbjhfW8w=%`rYE|9cLEShh;g5aD} z2ml|+PcRdLHWB?oXlB8X0dB1uoWQMav=Xu_|9B9|*0DR(s%C8u&N)qdK3doaMNo}_ zB8`4`0YLpUJk`lq@E%YYjCt+?3u{@Nj#h>I1`rTQU&{v}*n2&R_s05J|5m<089)aS zEeLdZZGt5tqZz);GI?45G++}G>h!yiMco3*<;`kGEh<I&p_?Q9(`HwGZpyPOPj||T zcBsq(Tp<mJoW6l13}8KhH3{Ck5I9hq8MN*Uc<KUG^;#_e>Zz$$0ey`Yvp%#_yFApc zjZ$k5XG3@hga^jMGK4ck&=zXftFc&Ou3c;&&nToR`{a5OR6jfiBlB%OEKpO5ONgr3 znv@?z)>pTn;l;X92xNmma(sFVnFmeh`DPJmW1GzF7vdGRwGt)(Qk(}N8^o_hbcv30 z;fn~59FAcSLd&lr0&tgDJg3PlYsH#VuwGD8y$2T@!Bv`%t=uR0n#hhy3Kf7_27&|$ zD=PzWBgNd2C>c#IxjCt<YD{|RGE`#rX*tl-=ON73OdxIFfq*Z?h+~DM!7kf`kE|cV zgD-`SK~wj@`|lx@|A?{-8&6p#<-;S^`(hn1CV8+qkYXZPS7O~IqA?k9yjh8qrkKvY z5RZN8(O064XsXFcX5+qM*2?z#*(n-NzVkBB%#2BY%d$uoIdm4H8tpIP3xxdDqo0Rh z)d9I`8<Eni<--7iqvJ5#hGIlMz$=ITC=%yl;!aBJBtvzOwId9`b~wHlsK!wTnRiw1 z`30H$_n5UXRZoe1jS(|cCi7oW@fQ9xKEtWz$58JOtoLUk0bXtRI(Hm$rW3k7=;azT zbOL*vtBPlSSA%gtVpT93LpRcFoCD0_AE3S;aSjqu>G0rhLDX`z0jG<BSq(f0UiC4J z_FrU*@lb$JIQT1&pa37wgaYt1ot{RNzF_p{BR@b^<?CWq^<-c0?2JBg9_4Qc!<1Q~ zGvEy=ls_`r61|m@Hj`ByqF7yY62^!%!S$=+hV>Ty(j*LS;{OqUZtN$X6XNez#-Gnj z5YIms#NP|3n@<A@^2@Fw#kk{Cmv$Go|AK(Gs^lI?nq6p5-vd1APPNQFX%7xl*6H2w zu+~-<;8v;T@Ekzi8S}2rNWtuCPFGZ}u?lHk??s7-ft~|}FQOGy{&hV?^b!dlVPA0! zi%88MX-p~xc9sI_@E?Hf;m}Kb-ZgO=!#_I%fKM8q$T~QlwH&kJMkQCevc8X5Q-D$} z=OGyjJdwV72quh!1k<^E1NHtNpnLOAd=&l=xEF7^DV~?6J_Re;Ffks5+mig~X`oBn z_{lT4inUbM#6LZaRww(7P&^p6-$X_hrwbk|YXDaH#t|sdiP%?lK*s_n0bh73%xr8R z>ok^tDyusnIttO7xrx|^dnRZv2U!Q#Fxm=km@EYN=$(WlWTTo6i)c=c8lLY$d({PN zyM#UAC}AT4?571KdEc}vw%H{p3LOrzs9g1lMEfOSwJ8|(Z7;l0em0LRZ8I}jQD@NG zDnIkzI4ebGF>L%E!p4&}Ne-b@Xm~B!ARtd<jb*z7)<$zXEd6Sn?xp2Q<x^5w`J=6R zF3_u~C>v;(0p3i85dW|1h+g$xBdp?EOlKZMv#B;EF26%%+xV2pnD`?fyWLh&RzkZC zx$vGFu<j)r_!e5nrgLvSOvcTS*#t4RKHGa^`6JOAVP-uwvDpFkgv)azkY^T-TR086 zmCdG}40;bOxKVVk{Cd@UYC)#z?JQ4K+KX*2eZ1k7v^40Iw^JJx8;F*x#n7{VSOVc* zei(-mYolUrH#bmA;}*P20ORI{FTj4BA7FFgS*`}y7s<;#L3@|Dv&nXdk{#zV+MD^W z6&wpW^jkzJ+Yz*>*5s?+7TpH$_v6RErI=Y5vxpiq?RBXZsiP<dWhlKY7#TeVg}SoN zfHCo`r01>1je34_Ul_cw?JQbDfGHKZNNx;U$zmEVa)X!`Lxb$u#v(TsXe@Hz0|ZIP zl~Fl02R9U{y;w?uk1*V>!EFKBRRZRiPvl5m^FR&=XZy>Cf||)|`%6+~S&sRgX&Pm2 zK-5w2SC%dH;Op&^b6})eK&mr-mM!Ua#gt-WjL8mjahA$bsvWACBCn{8IplTC{Ohq~ z<J4_w)>w*Zjn`DQb7`>Wz6;hIV5b7CjqUd>i=tw~_V|`<F*orlzzE|eQ?peac>0@o zf94@O&_MLNfT#DUPigldsG?GpMYYU;v6w)%^oiX7P<WP=NTMZZ<}#FV%?;3!K9Em> z5j6^~)cc6!f84}PSh4`XmP-IY`^?EIcICI*#fHnxC#A%OOH+#2quPfO>l_qYU<ED? zu<a!*iu-VW)(Vele%1yL+MdIGI{xMf(=7Jv40!kJ3V$7t&vT%sSWG5ezOuI@6}&9e za9IVFuNoJ-kh{?yeGWuX#n@)H7v=bZk*v0DrYTpgkpy4qn?+*IrW26I+o<KDL3vcL ztOhbRZbRcr6KG7s(L!A^w`O{YHPl>D1Ojw=kkvt!KS354?}DfGE3ousSb7i{wd>H5 zUE66F*6bH*u~hryf(lLHdwXBHFR`pk_eEii(W_HY=Y&Byt*!Je8?WF#)-<;dfBXsq z-R}i5YbX;A%b~-)#10_ZJCwC(gjUT)#d};0e?V%j{9IEn+;nN3IDJuHRbIDYvb^p& zM;nZUaY&9?6}C|=t5eIG)kyy)NO~bX8|Jk3v<=#t!8R)1opR_20LO@e&{ge-2gWA? zu|(4TMBtS~;J47MampfBO@x3C8a6r~l%HP;i&qX+q~O|7<Pd69MrV;6+Kwa8SuBUf zQOp!MG@1gpYmXY8)8){Y^mdOn(CEBh4ms(qOb#I*h^jUu$;DE@*x(3w>$LGIn+}2f z+89M%^JRwokyPIIcc3ekBH_rZ+tC^A3ng$gOQR0jSQ_@~F{tO56^5{5eLi#!){(sC z+l&CaS1R^)D6C;M>RYnE7TbV4*$(Um8pffWMAfS7A2#b4VO;dM^n<#(OKM|_<&`C! zxNTPxSL^&Gte$81Xx<g*!!W3HIuW{l%Ch24c=O|1btqoqWqL+S0A$?K#x!5W2A5)N z_7%hA$I}&dLXKR8+eqtrVfMK+?hnb&IjtD@$<l2`=fiU77!Ceoa_C<acw7#>M1lF* zLq=!09Qq#UgVCwWq0JP%SgzU)6|K4)!MojTn(Z&_qoskOmjaOMN7cMd>W)*f5il}1 zB0p-Q5s9UnP5y#D8qm;M%yukq6A%i2lo50&9N{R*t5BmvdZCcOR2=&9iCMPW8vO2H zz7o0Zc(vbM61!a?=?ByNSST$vDZrkh>F2LZObnqMT6`AQ?RuAHpB=s-mJ+@pF{aUZ zIMXmx%4&4s0&c1zrpOCY@sU}cUJ}Qq*f^RstfN2t`n1#%`J>{_*g%*+cw|#tuaYtd z+lpCnC%tEtc<Y{W1Ugy}HixJ<ohn{nEoL<^Jx@85bu_mbit%MfvG+u=eCr86FtS;= zbpvzv5iaA7mLbifHo_pO3frofTNUrdr|nR;<^s~dY67rkJB|feO=NPu(OJ0Es#qJV zt*W^xwjDilunOfPz*;k}UN!5n{WKU?zign?gD93(;mwyr8MJS_$%Lc^Ykm~<D!sR_ z;@nSkB@Sd^96+V=Ji7fXy+VnsyO*pg+xQc>Qwh|ctgI++g7nWiV!f1guS;T4f*$nc zX^BP?h`>3utR3?swc@2C1nw{PqrVWyYr>k>fL1NsWqy;W_s4!<dM<Oj!p?eXD!)NH zh&IgcZ36*<WxaYD_pqrR5Q$V&)jc%?{a|mWJ^*qo!W>__l5<peuhJbfIcSLm_E29) zNQ1-UFP!F{E>}&(F~Z5b8VAl%o{AWF70g%rdW)8gFL|UHfbgWo`ao=oMp;}j4%3L- za~kr|IeD7fpVtBDnZRzLtG*!H04&$VcXfbJjuAKjL5$tY`*#w)I<$fCYrCL8K7Snw zK-GRvO(BpQP4{*#{i(`gejp^Y|6h|LcJI-;sjR})Zf;YJ4JmwuH?bo0YnZTp0#(<> z1exDGCl11MRGj~+gP5`6J+1#Yfgc-158z4Y850}S1<_s{wg*LasK*DjFByzbYyB_i z=8<;Ff;<jU1gUdB+zD6G38(}oQ<-2^D0RSUoB>RCd=m@?@iXLr!0D>or%cmd@In{c zd`_^<SBY)128?KmZ=hcjLz~{qZkLrd(znMq(i1jWK#+ho0e<IbdGI?=%YxrU`frF% z$DXgaX`Y^rTohh2V--LsvZIS&Awj?ueGCH2Qi)bgyk75L@wDYyy|-#KrchM$R!E-c zq4;aM;!n!a8!-Ms;GFmbl6yHmfzS@eCs5Xb_*^W9WPAd@ONA$Ls2PN|K6%9!;#Yj$ z_2{GMZO}&0_BHJ>f+)!+es7vEPyn@W!gq2gg>1{o8HRjMGZFnA&~oVQmHMD!rqi+n zf+R<N3(>`_Bl<i%iz1mTkYW2Hnz}vu6r~)G>WPBGlsI*SNk@@Rj@)ye2FKRX5|aTN zrT|(%rN2coE3kaTuWrW-(FvlcOH<%?ly)`z=4m70_bRO){N~G5IidzfRE}2_?Ii-1 z=sC1rz}TinPn@Hul<47eVsPf;&vg8mhCgaC`yBcp7<&UMvHxLDHr}K3?24OO=K$aL z75tNsDY~eg>>6D<>wFNj7v}`Svs_&Q@A5dG2F-5R3Q*eDOh>a*<bfvK#W-lkeUp}A zj~Vbb>JAh~pG+a0Jqk*Y!ZwGqnot|EOBrYkYAG)&u71)HFfvS~p(riAIQ(QLL=?bF zVLJRwz?f2q2?mV%=^$pmo?LiAJ<IwTL;%-a;(kC51!$^aEkoOK$V(2Hb8Ko^e!%+u zS_v3sVU8TkA!_B_Bu65o8D3WkHBcWA{^0_Cs6cxd)U)%<J_zBqt`FO@ArOc#(e}P_ z<p+Q(6=ek#7l%B+Z0Ebd-oWhjxD#(Sdh3^j08xhh6JBGf01U<}%v8Jwmo8O}8%=F4 z{GQhy0_9h-XfyHQfW^dmo6Z;iDMa`{u<RT32Ls_7c<AtwxnF|V?gk>z3mt<%WRet+ z6&wMWvg|dlfL_73UMWhZD!}V9V>C;<kxVuQP;qW>c+V_(rkFvkKspYpa}P{ct;4QB zhz+la8lm^R)~jNwqayZnLy@CWfrVuvi#BS%Uj_JM7JI*u{Y|FxyZ43B5j|IK#vv^x zbMnFWMe{ePVUN6`#^_AZu{K{U&FHl1HV8V@$kaHjBjd2z&7#a$Hf{-w!@O#v6<szI zbG?dI1=A`&cN?0avmWV%E`{^nM-?n)h5W&YP%l9J2i3DYH^83EFJWZ`T_%98eb%aG zeKfx^<&t|6H(A7<gq0~n#kMQxgIRZXO5_Jq`E4uU4wRfvt3w0kvFZil?FW&+p`{UI zk!*|LP5A6`v@A89L*5s<iz7v_XCH7CXr2G`X(3H`5vBqnWW*<Dk(7X;=|Oagi^~aA zEvv_Om#3Lu1*KyyWI5a}q!Uqp_xqc)WW+m4&jW1|?x|=b#D~RhqUn6-J+yMN7SnnA zdt&jcrqlNx8TT@)4(N`En!@K@i&;lP>>8|vraJRI;yO4oKfZ+i4qA2;gp<A<D5LKS zuuhd7=e``#?ZH9lFeuEMgo2KKZ@8~#ZjX(o-C^G0!4A*pnFm$NIp=@qek-hWn>Pbj zz2YlGkpSD_kN6zkbS=-U30SuqomVY59#M`MoqZPdS_R6fR9{)^$8C8;0pnC}MgCDu zz51fU{I#~Yy>F2KR!>tScJJ3P;x^T&$)+uQO1~>9eRv|hKc#o=p?H$=ocSt|C!E6v z=OB@Ce(_a&3nmyT%?5$Pi^v~N>GDy!h+PDof{z(nOx*o!xu(nYCb!W3x9=rsp$pC6 zL*GTx{YMVMf!{mqH{atNoRO!T^Pbb2lB^$qQQaFA-S$jqY<>>#2bVCKVS~qEHi0pj z<Wz=p!5{9`)%2Bxb`Lf^5}SVY@5xOM5lt)dl(UNWtX`Ac_!6AGZV1r2b!iydX`6^( zP*FD9!e8j_`*^j=)BuXVo+K!?!nz|U{t$=a*C$C)1Sn1_-jn*e{{f0i`xSfI36T#g zF#bVyh%j?E@|OcY1jf|`%rE|y42+`-nC}(u_xjpoFY<bU*j+BbxD$56?ZTtE7FJVG zvPkGbzUyzaMhEiS$ypK>@S4AoRr3regkfu!&98g!iH0%X(;m6S!XE+2V0mPw6_=BD zSam;(^wh(_vM+!Q&#+pgn~jOBl2&>%%WQ2|attk-kMRg!$6jUwROL3#^j~r{WFC*1 zA(!wZJN8%Fcp5As4{^mroBXhJc%N#xzmQDaba2I<Cr=dqO$zxQie;<`J39>hg?<Ds zrsUwn?{ixxrsy|yC^-%^XJ5|>^Pb4AGM8S(hoXZnyFJ^_8lm%dP5=R*QI}a!PN?Py z*=Ri%F3O3e8dGyz##YETHQOk2P_r8Pzh_*yuh{M92Mi;X<4LL5SpEp@6>4^55SPho z%5r*_J5e)u4McTlav-Q4z#?nNSew|x(c(7eVE93IPPfmFpB*dqd?}^?`@h^{()kKw zo9UgD($^x%k!MkKDLab(j~1E<E@_Y4%=+{8$uJYM*fzd(uW2ra^!F?@&YY&`I>k6| z(fjj4q#nRjM+5)#L*wq)km9O#eE?)ifq5J(k`>wCfm?wpbIzk$`X7dh&+Wyt0|*c) z0AiZZc!hOCk&|NF#8HPJdk|Pvmmf&Ia4$+Bzqal<#6idr>o*t~Eghn>M`nP1Vm#@v z=%dxL29gEL1{K6<Adu(LjuOcPwwJ+EM$%TrRS=!}1+wn?Y!C>%ElcX-TNPx-#d!pH zeDRg5mNlx@nt<V6k5a;ci_=dvGE8s9hOYYC=UCAhmEE9LwQEC+ryUjzCKpz$`yEW# z%9o&biE%l)Q)jE*b4zx`cc(L{2fa+^nYRUO=*<7c#f{5kd9<fslh$UHLHEqj^WK)E zp5sIWMlIX7PB@B9x{nMM19{FMNs8PujPn7BjkSAP5$n&WR**lgdg~yX9+sSgg<)e2 zu_ssKc|~4NZt6sjWIhgF8l_B$WT$(`AjD_G&vH>tA5YVOSpA$!&=m|<;Lh8L&aR^E zvFt#2#yKgLhN%ynAw105co3z7m)}Y(=bn>tZ++5!ec3)WGN}{Kd{_^t#>9h?-iM>* z4VnZ|qYrl;M5r?lb}vjAtAe-UV?~QdxEA3YT!TJilUvn}W2(2Y+|AWaoU5J^9)iyA z?Vw$$dsX@Grv&;`nX2sX#5HTSE<!WQ@zXHMr4FFzrgQ0Af@xo6OgelTRq;XSF8%Is z8k<dO)dB6jMk`hvdmCSRiI)WF&hOsy?;#H%69vfS&=~?@ryM#iwgK5bbW9ncER#YY z8=+lGQoVcSXFnj7>~2f7rNKG@kJqssCD3z4sVI~{bi@U5UN(LMxt67<W*yqb>MJHl z`d0zg%!37zR8cTq>sL`QL+dRvmp>|w?V$tBEF8o^vA*$?+m~6WylU1$?Rpfm%)u;I zFS7ttc@xKJBjZ_f8?58d3olVLr)SZ~6pQL@SeV^V41@nJs19q<fh^Xi!HO6-ivJfz z(Plx9`2xY{AE3o2_}~u&ybJk*5BG(3kj|>GQwnS26ZZ>Gr(D0h;(!ubVjZRrho$W# z?<bX2BR!ieue9AgssSlB5_ZCeE>9;AzT@T=grF1~pN>uhIH#<R?NC<RXsVm=q{3rF z?-G&Z1QNYR&_L8XsBe7B^>JrT6y6=6PE^yRW*zzt7tWbKqntZz^HHHTOecr;Y2qx^ zbUw9QiXZkembgnLO~FHfFs)dDU+5V5;zS|t(E^ou?mJNc#D$={6zyNrQMH%_I>V_2 zFaskKTQQ)xPd_SD26{DWU|8*6eMfs<Hy))7e?KC0h~*;xyWgQd%CiuehRTG!0z!fm z+ehyc&CY@Fh<JFu>Fo7qJRr~p`2;r^nJdmFef<WFz#rej5!eAQ#-xo$kl3Y*e5WtR zgm)ofO<F?Zc<Bw&I1t!N$i=WwhQb0{XCc)GT`)a6`8zw%CUiiJJe93PruI_gmG%Dc zy*BuBz+dL<6Yl^;`ZFF2$~(8rHe8^w@ts9Ku0|rmpr$q0$7Qy{Y71buY8=LtOYb2j zz^VMU!cHTT(bBbjIG<vUv49O{7<9wo(51ClJ#Ir!ve4!tq|C2QF>7Eod+Qf`zs&Ex zvjN7^g-5aOj9nqGxXS{lUE}xGEgGQYZ4a=Tn<GKneDqy;&&5C7PDg`MmZgSj^pDw( zGD*2a1KE5;74{<=s8a$}03K`nSSgx~@F=T%6Y04=3G%T!Gs$TO^FbbT<PomQbQqD< z!%{_Eti^lrA}KwKD0FxvUg|Y3>OL<M1S+sLP^sIk7A><PEqht0KemVa4%QT{Z$+95 zW1whtC5}`qwV_fV9ZZH<7clBm@WhDzQS2t<2Dc1@f%u~m@wtr7L5mzvUu3c?mZ{)d zZ>S5{MUQ&SI;hF}@d7#_OEcuz%=hdz$-IDb7+^on39xckfPHaal7Ehie@drqI}@&) zF99Fa`l-e$+?0~=2+ND;AR2pYbr$Kfoy0ExD4a%dXuQMj14gL%k%J6vGpwdQ02c5N zJZQz}gkF<o=VwnKJ+ohjEHnJ`RbsVW{+U=|`E7<|A!HP7plw?vt$nJCZ`_L|iH;Ts z3>E&O;yfvOg=Rx9jnP*eMg8~8d3|)FeehASqD|)uuO(>W?a4GTR&1O(r}u5Nw|$q$ z`2ggM?J~}s)%z2XZM5%-r!k)`w)P?}qzMnw<UMzU40`tIuJ~#pf3f2{fZikrSf{sM z&q8s`4&qoehYn(2b@iv{38}JJfNfCFv0W-GkVBWFz-rwbuzri~9L6d8f@r15&*4@k zo{FwCqZB4LsFk3tzW*wy4E1v88%fw_NPB)Z9@#*Vw+uy-4^kC=?-tOmmfFHIGyR1? z+~sE@aZ)^{V1|2)c2&W2i<T>|D3DjE7VoJ=&b)0<=MBREpo(-`z`84tw^{!l081&z z(LYurKe}x7d1O8gN5HzC(%3Dw%IKe9S!lUN)TRwJqFGwD;@u3QU43luDw_>=OIP9E zZY*<^&4I_UR`r3m@Q*V6;n|LuH9XUyMwVs+nOlt;BtYMytvEEpCIf+$t5)JRXOkJ- z)3axwR-0;M-lH(G!?xkMUF#8L4RW=Ti2q17dJh!jXjd29ZPCWcEBeSQ6pMHJBHS#w zW|*?fs#td^4hzPXST}pOFZ>pFN(%<*+wcfRiS?6`yj}WQ7`V!#*f)e!a~nr(T8?ov zOUp#Vz~Hr_Z)-*0){4HZrM}I~R3mq02O>+3*r-$T%2XtBv(ZdamxAMVgk<&8DC8l! z7T_Z8vr}x4R1kYx@9Xkbzo-oy1vC&LK&|JtRI+aJZ1ODs11>s{{?@^ppS606Y;x#% z7_rqZ+)kSD9f{c>!l7k)32~m^h-KQOtfDM;gHjsy;<<dbnd8|;KjV<O%1xPnftlM3 zi>VKezksGRU=QviZPt48vqw!6?Z>07dvMMFLFBet+MgxoaJecCYH7C*g&DKRRj4os zQc!&oUD%3jVf)M&x{*1;_PZ&N8MaTuz+N=B1ta!%{t5_j+WyoawQQrj(myqOwh|7h z)xeF+I?NLLTx6|0jcD@JK*+YtKWOOW>X5~CWml#{s5Vxbxa^-Atd?zC78-=S6LaO~ zK`v4&W1pda`abM{Wa@oD=AOAv^wZA!LqFB<u#$bEd!iHd$D#9i=zuf^M!>QgGk>Dt z!9xBej61*UThvWZjEvbmFsw%v^iJ!tD1Zu5ihAmF(o^pxo1HP~eiXU&{;SWS1LiUK zZM084E(jKB@VPy05Gt$8rK#G7cDg4(ZfQjN>#fxuRhdC{Ux>foD3J6SDq}8+Xx0W8 zg{a+l2|*avz*mw>D9gDp$DpJfB_an_$}LIp-=ljPGxFn&O~J+{Lt+6&R7R1A@Ew$g zsSx!M;e6gU{-KCN*A0CAn|Q@)_-i6Oo$S_j4J9DpID?JVc<T$owVNDQDFfFrbL7eC z<YEEY|AkUb;gmM5ugYZXOFH(&&P&LR?&(hCgzQ#FQi_LC8eJq?eTY|YbnA-9ouYk@ zpxg{A0XSM^VpMH{!&SO^yyx_I&%fY3qD&Xt!)nAy@>gML8?vBmP`NNmibXXR1B}2@ zN*zgYbb!pFgN|N_y>2rqa4aljM?<ZR9FmM?v(0Zwy8uYP#c=_U;ytIwd;SIQ$w1ED z`vV~Tmh>M0NpU@a^joTD5qj1p+pzXy2?fW0VvzL-dUtB$@mL(&$X@~uPy&g=1Mo7M zwtOexd6<a3Z4d5ZZHLu(nkZj=l1(e_{~V>3S`sqPpP_`7(<Srt=FOD;BEH7*R+H*| z{wNAQ5mrM)(HVoT@;m7~N{h(w>32y|OaE;`YU#3HnxhB3BuSe=L^VgtFVQ&!2xYw# zKV!$T*6c;|y{ToHPE0ql-h>E~+;q(&V$ZYZ(S(Tojn|QyR=xu5H!4FB;TtQlOBiaX z#7&Z-hRP0nK<4W0lzCMbam}MHF+&hzDNe1N&=1k03`!5Ltr3O>+}5+7Ao^{HQJ}%# z+3030O6)r#wlwmSbqN8p>1+kOV_7?)0@i6d2mh|i(5yyO%Nq0t;0jMzdo&Nr`fqHD zZ8x3mFOnt%u>(NfJBb@>&eIrYOm&!HYb=$&93=q@WS;$$H+erGKIcC*yDUkLh?>oR zx+Q6fXkC!!a+hFChd%<i>js!KF^ZX|s^V>&c$+TXT;gqxc<U?P=8HF*cv~#q+Npbt zs2W9lB_duC)M)Rkf_T~a7Kj(K@$(}zM@-1uC{IJdVZ>+$LXm%NO%k(v@n3VC3MzQZ zw~1-=iz*V+sO6y%=)@Ul**nP%%t#vy6|Kc%(cVt2w{eq%=MaJBp6Z&`6!akmZgo8u z(_7HP*391kbmyB7lZAN}aF)N)6y5h*RGSa&5=M8GrdTM(cYobA&sVdok9Ni9x%Y3$ zR(ctFp=_eF5T>*5Z@cDMcoV1cO=n3!>fRejR-b37WvAF-)D3(Aww<470zoBmpGB!W zgR5c@Sx|g&3yQqb_Cyp9ny?Pq)2u!3@X0H-^7s13HA)1=SN%^iE%>TGaEEbSh1|=K zO!y-=TVnk%wpzr7DVA+i>6rL5cR?_2lweAK(pnW8fhF`-P-TU-dVfBd;|3J?-P47F zQ5sh;JT<YwAj`PtkJ<q0$Mm>er!=m^;Fj&I0Gpen)g}BQvJ<}iVKqT80IL0b#UayV zQ*+d^w)Wa*^nv`dFHrEnvk0`c0P^&;D2CPgv@BjnX=LvD++()aTC_poCmrpz*>WgM zi@zw_ICNeOTf<XxSWyn78LdZ+rj&3|&RgVIKAtaH*X4{3H1*+i-HzxPAm)DBmo_;_ z3@XOmha%b)kwd79usqxi$(x(4MkZUJ5mw|jo4iNEMUJI|{A>dhzh(r|k=R{EvkM@I z-h|%S=S^*tasIq^8Hmv;YXFYa{~L6kjXVA}Pgkv(b+J@H(0Pr}PsQQV26}d~t)OhD z@Gu^p0z{QVM`>erYW6aiv}#Liz=xK&Qk4%`*#^GSg-v_U$yFO5r@R7<SF|eFyzX5f z*M)xjAfC^2yXg9<{9xp|Pj)~Rr#uG&tikKhGSF62lWm+CxZoK4$i^-d%<+CiUOo|5 zk44DjB5D>LBGI#qNs$H=mqYiHLWn}M9D0f5ph@#USyDdiPnXx&@B1&DuWbRgn|F$X z6V9IYN`BxV9bPKIa&+&Or@6sC`4Fkbi+)KBUJX^9eVHs?V<6j_Gf1)j`%)DyqYAUm z9)wK2`=X%(R&3|Qg+GGGZ!q#yACejNd`>X_ktz-re5Oz*)w~^CyY>=Qk0*x(`<$22 zs<E4BmFE&!ZJ4#JUSun=*4)bc4G#W`OJ(2v8I8i%zsFI?c3J3#l(Pk}28vgoL<ddh z+W#bL2~w_W$Zuq<T6RFS!bAo?bMVo95Tt3JIYiB9F;asJbU9#5cmFbBS{DNSytqI= zGjSJ&m|Z+)1rx3fjL$!v%+rS%lU`X5lMMnt&NKfL&_=O`@)B;GCf#R2hhZZ(=kV`o zbA`@$Ek%P$*naufWdF>;2M8+mNKsC#7oM+3x=W<zo>%vke8+fwgV-uL_!YE!BYH)$ zR(Nf~*YO=h(F5M~@-xCsurrW%HW+!_5irg<<Y(|q5AH9YC?usc;N4I@Z4Dh5@z$yG z<n5|;yXxJ(pbzHxs1=#H>aEuYgXneulxCOe-Lv3FnD#pM%3H4$s<oz7jSTHX7sWrc zQ~#!Xg>7u*&(kZUPIYiYB)KW+Gpvp~8oDe>NgCFLH=dDS1knN96zym+o5UC=$zYLT zza{hUq~&j1>YQbgPeO9J$3?k0|EJ{!ZUdDlod!39zx}=FBwe0#)S|~Ol)G5%YH{$+ zp;__7Zkak!wKjQbDhu(vou0WyoU^+vM}DE^ME&MqnKBX9L6GeXT5A<~rLTXnymET4 zn<GIfr?~2Xb{V@Z6Qu72=}d80>p;3*AS-A_uFWm>Zd&j;wjc!e#C>KkenD0njAZrw z10LFFPV7IAEXk_{zKk)|D3IZ)Q|5Em^5GrZjaExsRL||2gPU;v7>ceWGTF=>F_1?J zr1%XK;trXt9jFAqc#@_%{8>D)4rS|$+1J@|c8Wjny)dXF&eqGJWhC)eqa+qAv!{_* zwWDx?)(_phjk;{Lw$-LuYY|7IbZJlGwcG}|tO53M!27WrDkA@;$&M1N^LjjUV07B` ztYG*ahZ6CfjgA&k7U6j~kQ#l5oTtO@<AdF7Gfp|=Do$`X^(`nemv2E^;KmZR(eK^y z)RlqSLpG4w5mW_D$F<od;Te`rmNf-)+l%4X+5|b5?5~{g3rVVBYw4Pc%tiyB26FU; zl@pdjN+PZj;~uD-@SjO>xL{+qR8II+Qd||rO{km@Ns7aJ1!7|=Cp@1Nhr9o=zLgVx ziE-&74rM0xD-6+z0L9!MCb(j$G&q3%VH$|&7w3if>k@ktS^q#4Kb-ZRc)Twj|NMlu zQ#PZYIRvAx97kN3k?i)8IL^rSk-NftPdnRT98Qr#XnLZ+Yf?N=kq9iOfK?9toB}qj z#5mkb8*7}lX!r3~_9x6X>Im(Eo2*vs6V}Nc<l#9w6=7sq5<C)~=<}m*3lrHHx?3>o z<bmY0Ux>85B5iweT1@9}V&7OBDKgl~T*9K|q(rcdfW1>UNmAk6Hnif`W_KZL9p2W- zFL*7tW407n_mTS@C2XuaHXNEQ70m{co8`A2Lvqi7m|OHzPffI4!b=E_=;=zN#LAzj z2MrZe3kUL0pwP>WGY)NlaVA6SW1O*RnL#}H=ZA@$AG<op*3pG8ba$iiXADb_UGL{- zD-a<XpT*zj5H;*n1QQEc*25bCfp*Z@1N;3O5yx>csAU_;8{t{%zVTp_L)h~2SylmL zihaz(Z9ss+HaCEm3gBH262V7^f!>397W)mkvTsw&-7!1c1P|{)Egj*u1KfJwV3=Tq ztf~GmLFcJSoYgD<x!d={bDCL&`vDc<sa)_hzAZ4FvzO5Y6?A%h@T7sbIx=WAn9fnl zaO3rWANQ5S-4q4!`qK7GiF?dQCC%#G2mJP<qk?#5(=iD=&e46=GU;A0m02na=oD?9 zu{g)3k7hpCB$xeHgEZ%)5%}mmX(T>UCrQ5FS@d4~=ci#NFQmahU;ja}Pe*l6+u{X& z0mh^)pCX~L^Lxmrf7r?`<P-p+#t_8QW=Nbk2{>INiu|YPLdqFd%Q9=IM*k)<#X^z` z-XQ30!Q!1j%dguaOie%zhCK}73a_L+grz@7#g|Eu`4+86E&Fbb*uUMvB`g|F#WD-f z&lKgpCZ3Xa33>0UUGXaj%NkT`3)HT^1}&MJ$=txF?8DU2M>i8{T`o1+cYM-iVZGSC zK1`0W8RcD3a3L0qT5u!%qW*y0vei8ItP*xCz&aJ<A!Hz*!%QoU7UAKsQv(v25-`>~ zJVz?LBlSL>nyMqd6(fOjt7bjpu|mB56*c?RW!CCc)ohekcraxvzoM0xZoi%x=&ss! zZ3ryjzxpc9yR=^Lo2I{tdD0rDm{JT+CwbcOnpnEBtHSHj>=oWLoo+2UM)8}71bnGE z0^x~n1Wz%0#rI)jn9Z!M@XpZM5#;Mb8}(sT?OJa&Qe>$p7zx#|mRJVPLRCBTgSG95 z#`>7e*nY2u)ERi913<27)?<hs+O1XXx?`eCn=&y?D}n*JL0;FygQ#IZfgyMjd>L+d zQ{S*)yqmEMI_G58V;qfvSs%UI6vdz&DV{yr-$Y~Lmzq6bxZRMm*Tt^IO_mU8&yNl% z#8H3eeu4V;p@}3iX~v#zJxXPJ8|=62rDZ<03Q=oV74D9PCoQDQOb+14O1c$Y+0h$< zPUR4WcHQj!Aqx3r$OrLoBmNt%dXJUQP|Jd-Y@Ra9Z&M@vkEz}r3sf|YMs|r61l=zP zMr>`}^^(tNyw;!4CJtR$G-+)!^5jjP8h?1$I}j$<^b1@^gx|^~{91i1>!*8=f_)ia zpC}Q{ouYU*>(`jh-&2QCFVHd@?SVaF{lrF?&K)6?ZM=KLF-8B@aMt)e@nfiX7C7Mj zM0c9bA9s}}w$qPz-I>|`!ckgZ)p{NRm+Kvgz<21VSb#tIYTg-j2XL%<&rW~jR*R<@ z-3W6r$z?jvhmg>4#rv(MAk~=pF>zD`^6Ks?upCw3X$C@<8^0`|E`<L6>-7xWsvEr< zh1-)zgPpHprK}-V?%k@TLGR_NAW_ZAP@)HNXaXJ;DsbU_aW(MNJLAu`yn0ZN%i6Hc z9kk!qi9PO36&FASQHi`z8}N!oAZS}IBMN0Yhf?K@@rgo}5@u@_qU#*mD@0|6+;xDC z14@y`g`O+@L!=6B*d^%eD7xZSxc?y9H8uL_hEu@U&yD0ep5ynJ6ECuN{EJwwJ6}>i zy5_ZmSN$#z)wxD3Q|$n0&ffYjlr-sf2h&+^2<;bw?;6Af1D*q>^V+2Fa)V3&C@6@C zMTYR5F9?F1zDnRd#EfcDS9#*i1-%D@vcDx59`*>d7U=jGLUaC=P_z?Pn2X$>RrzfT zbhgA(Q-WS2fE9QFR4)I`Ets|*)8Yl=_ao9Ef?Sb<ci&_O8f%e>#vJiH%eym+`V(h1 zj8o_JEWU7i!p;`^kE-Uy<Gfi9!oZi0A&*Mud@_I5CY!04txjI&cQ}kzUu-15Vf)1# z0_h5o;I_Cav>>kkC;TG#>G$JzWuXUIvd7qH{CdR2{KVqdVQuc|U-9n$@0$MY{g`UU zKJ_g;LafQNmoLK=5!$KU_hzboBCslP|5W$gRw~ObVNK}X6|`<tJ9Y*<I|8FV*0{<_ zJE7cdz|E$_ubwJ|@c4Lm1YSucg6W}leKin5i&>Aq=jrzx{hp=YGxU3!eoxVFCvx;Y z@5ir^wy1?!FYk~f;8#NaneE48EO*>VW@pb4aWsUkfZDD13wk#!?5%pYXer?<fN=c@ zI}LAEBh3s{cH$BBg>HWD*0}#*vgaU*RW80@3%U=+9#`WBLCJK?-R~h80Nhpz=k}MY zwxG>#r8uxj=AhZ$+J!;Y`#lgx@41CpLDq=Nc`Kjy4k*Y+w;&qgmo@m8Si9sam?vz` z-B#r!PlH+LWq@@RL0yX`@^`ny{U3h_?1s&zNtMYVm9|;BE2QI;)xA{jr|4gbge0Ev zoAUy#64vhM9*l^a%)@`7hr*`XgcA)klaKav+PkDp1kX;q>795m@YSb5O5dOjC=})7 zDm<KtZT>QBjs3!OKDZRw%+KVi4s7Iy;}d)v#%J5+OLp+fO<f)QNl&=(7M&zN$wR^* zS5R+^ege%FKir4k2OPU~(UOmZc-O4T#iszz3b)al?&3#5d|rJSPSc0cgqd$VEyAq+ z+vwUyJUa2}Q)Ed)HE?X9J!2bgT%y#v;{?fkS+RHc`ArF@XMUn9h&-w<e+P2$&o*`Y zQ}@`%{(+AwZN{=w2w^&k7<d<7>=C>tFO^>gXdIiN8mC(q6#<ZsZ%wd_ssk!gX9PHi z>}o?d%#Rn^?}B_<DZ)HVz?`QVXIdBHt~$>^_-_0+@bM9w;wMI`m(Yok=8bq_B(|G7 z5($rsgm)<cyS=tYpYqXVc|Tt42r}i>=y*4!RqZ$t@Ya-%;<Zpr9kC=?v5$}C-e&T` zo)nP(-hxIc2Ol<CScQ>0Z{_vp6AHREK=qy}?}PVcMlw@z5bF7%|HjlFM@BB#E6q2y znepQrqxb{@W5$JG&~d*~03)L@_9HquF@c9^KXVi7<non5e`#!_qa8e#E}gPNt+9S8 zo0?1R4E$mAlrqY4C8I1y5+X#x>$}SbG#Cd6pn=jb302MVuWRsPZ2nqvm-VBkR<*JT z+HH)D0l<7(FXR3kDVD>RzCp(0P27pcAUiR1<_*l3d_5Jl>q@%6W>x+WysPUG+!1I6 zkt2kMbA%hJ3sO8sJZ3TDs4$i7gN5oV#(TMe+<w!GG$(x=9}IAgD4>17AIv5VV_K6i z*8H;<F0C_o?OVkD38-#?+VghB_-6RcEVC^LC{tQ8*PN~_)8qnQO1p3Sc~F^BNO7|0 zX$srWvHeYpwp?lV%MO>8<=M$L(YDe{m(fLsM>`P1<<K!Y-)LU~_20~FZIC_HQ6Y!+ z<6g?`hsf?7nTBFqbqx`H`+sakV@`hrBET|b`GtDZ`HP<kU)w)HDNrBMK$nw4zfD1L zZ7w81H-jLC<HbG2RY&B|q7)ReK#KnmcZM-@l|gd!G<WH;jABspPNl1ntN130+bt>b z3k`~~WMHYJxs+x8fx+sa`(E)8f@;5ehGIMjNeJeQSOBkA+C+WRt_`paYF>T7x?aT{ zt6yxh2(IN9Me!>X*Ih|_!E$IJrhz6oG;v|q$CQ)zPh_~mA`q(}E@7e@IchO8P*U|L zH~@&Lxps-Fii_u?o`B)zI5<L8AfI!@Pc@R2N*&CsMMWq`@Z*U3*#^`3!D2C@_|*e; zM#(#CUE=l?&T|Ll=TOb1fhz`8HS~Asf?9pm^YGk%)?YSCwA&N(M~Y8k8(r0#&ROxg zzeYnBOpRs9lcwM81NHPFL>@w+6n&t)(h5^C+vrT6jkjCiB&bGxN>Y~V<&`)_bH*T_ z$NNF5euY&wrT}ExAhu;TtN=d`B$D;TW+OJl>Xp3pig$zjj0Ff2thQhfbz0o4tTN@Q zRaQhIIrKBUXXcDuu6oFdK5H8iA}eo!U^pk*a@I7LS*fVmcry!rkH@y<;LXerp+<iy z-K&GO$KEiVCl})7{juNB`>TM)tQiqLvyIjVApA!3qCOB{-x4}*r{M)uJ&Rw~xIN2H zHs8oU-L6zR*t<dWpnS|S)ZsTwOxH822PkHPivMfzZtY$etUP7*lcWXPiC&^8fyMo- z!Jk(HAUK-QWmCf&FQ5;!H;1=zV4lS4GM(=)Bva9KRy<A_uR+agQ_Jv}g113_4!3;S zhBb%~iDA73C|XpwJe<|B-_cj-7KQUEa@DRx&qhMesMMwUcD1|`I%jN1K@`yC+2H|- z(U79jUoHL34)>zh%2VgDn;S0P%@Ixii*9b#1y0@!Kwq+}`_KKLtGLY`t%G>#(=F(v zOox!^+de?^5}g@$L1!{SQnrX*)Y0GU_-p0qH-YLdXi8q`<QkFJM9%)WzVCqgS?y}{ zcm7>oooDBcPCqCD33$b-ze>jeXu}>=0C0HLvU}l|ZH4}4V(wz}3CNNfyUBp+&ub7P zvPPqc&#(eV_Iul({xIf%dNrI*c$J@T0`zC+L~nsUDBg4OGre#${(cs10GTpz7phZy zO~iEmBwi&R&Gj6JK7ST5WPdqf$TL{oCjN3A)UXuKxJB%98j^T|Ps>m$Cb|d9Aw2ZP zudT!7NLN?}AZWOxs0#6U=fo$mkQbt_@K<jLU*YN@q{briyzqkS?mZFW?a4Q>7qeFU z99G#rbfO>1Kd*&xG{Xgab#0fE2yjWnXOHPUC_ncq8penHegjC`hWMDs3E-W`G=q^z zFGIBP^>B4=`}C>I)*-J8<~xi-7CnzIgX*BxvaVX`^428j;fWgJ$FWCYc)ka@YB^TW z?$38vv_8dbeSqzT1iX`nb;g{0NLM{PpK1m<1@F57A_yYL6_gImovgW3bLpZvltSj9 zI5z)+Tfq~u5Di!S!!7x0*(t+3ulM7Bs7W50eeeYNs2ab$=AHD+dK{S7XkZSitV5-N z8Ertc@x^ewvm(H3Ct+Z6XkbS3+qyyQDNxP+NDRr(*f##T8_zpJ(RP0h3`rhDO?6`< zO{R0{0&*5eH=Wu~iT<W|4uE{%<jxu-;rzRgy5QY}H;>*pn(jv*#dm*n$+i!#>lz<% zP!=#LX&=0_TP<+&Uwm{iLj_4$udgGSc_B*Ld-0Cs<75~@7p>CQg-%<b7*9GReNY7~ z7oY+~rlyiBRpQLX1T}KIiQi4~o?et8uSl5;BQVT{KJ%N@yp1r3YTiC7D>T|fIjkuG zeQEse+$esh;Sy)#ON&vJ$J-j|?*4rx-Yt6XfcV+1yPy*{!kab_-WK-7M7zKGiWo2P zZqRRn5D%}rh)z%5Kl~3LqE1g=G84Cb%*_q3@_gJx5~t*uxH3t61F7J(__)w6#-`%J zxenbGWZQzQflu!P1P}C4Rr|*UWAwUen5I5(8L~q<>7`8AppB#BUa{Di3!^hJTI)sL z178Ka=k#6xK7LiiyIZcZTd;v~m~2|~yMvMY(a;(6ez9P%yrMTbL-F?;@fh|7yeDp} z>OE2ZwZhitHGmX+WpVXbH?M%+u0d-<I9q^v!L+ct=m}Ds0bWoY&si4Usz$WD^C~+J zbzv*AXr-jPm2Id^ea#y38le%Fzj|C(y&&eq)$vuOxasmDRPC>xmuJR4@mJ^Z??1SR zW-sO>{R1?~LN#*e{`10gkpMATN)fdn)Ph8tvgB?x^3xx}_t%Dt!<Pr}@g*NzI0kaa z7Qe$j0WXb0JnfZpJ<^`XdwhL&B$4S^Y6P9k!uOV{VSTz9ergtIMUTCL<bQ)2F3#~Y zr|lz2T9-m}x`gcuhD);j;bLHq$HR9x0H6Jl$4tL>uYPMVV!wYeGQ}-x#K+czJ!J_p z)Zk<2oTp_Lv)%siRqw5nq}UMCdD)}LW}UCEBb&Wn_V4kBoxfg(degnxepWKy@7=ca zI)ya{Q0Cm?D=5&?1J(`RZTc~z*;H6<UagY1LGji;mF|zI7Js;8eykU8^Kdbg+#`o( zprYd4D~E2!4~rohR*>rQ26<6-_`TogsVcMj*(_Vff8jzYfp*yDAv?PuH$HbL*4?Hv z^eFmIbo#xZN=!tRYi*mbAIr+RPd`Q9IQ$Cj(jSYX*MW`>oZtn)sgdAK*|547jZ-6v zta@t~S;<AXwT<61L+GIRaZDBD=FnF#W{s(vH{&5cp7UMThD)kHoKMH>F;fjLBN&(< zE6%39F#y+}G|r#Q!-4nK$|1bQj@=>AMLB3zWF?MbT<eXd^P_omC|50OQ@m|*Xav=H z2VTPXd3w2*RiV93@q+Aw-)e&#&!fc%%9EohD_$(>QP|G7wDdUC7d=3Q+Lq2roIY=- zA-D}_&-F9}SN>oK?)q_j2yg@3+oBC`v{Lu`@j*vSaidC0z?&F>`fLO;W({Cui}qMo zhX4?|wE<Oq)A{*aF#_66q9XuKnDzj+#_tKr_txqeUBeQ~O7x041H)-L$IqpYf<>mb z`3tYs?fm(*C{NuQf2)Ky))3u7>R?BZedG6b;O-5e(ft1Yu<l?VB6?MsdM}7%i){+q z%ICOnj5(g!L36@#a_f0&F-{{MkeZ0=<v=h}GM{Z{+vt{fIuKgr680@`z1ED=4g(Nm zHBez!7Snm?5k$=<Kz^IwyGc)FXQFrl1Hu9|mp%}H1%wvDyU~9Gq<uuyMc1m4yJ0%^ zElTgkW!3lsm{dJqcQ;PV7c?=rpEx=`G1<H#*5zp3Ju4+P+>^I?4#bR-vRdJ6J@wbP z7kIBN4mC^`x+3J_mXiScN&q`tYy<Ja<}qXA#ALw;*kGD)O4wcnFE#?K=1&iY`FIKv zT0J#*?YF-(F*mvV#A?%wjS!{dZDDB`qM%q2bq}L+ExP}mz#~#yc`cLxzJqslp4A-a z1NisV!fsTOqk6XRV=rMBfgUoThYaXp<RMo=e!IvwUFM^Sp3d3>58kJ+PQD!~U?KM^ zg6QS0YhFun0MJ>x020ylgAS>)Q2cX6w1=7tudh(KMz)9cRBt_PnjnPCi3=gKlAN{Y z1JBO}exDO}))u=5$*xIA+w+081AW(3pzY8n`!8Qg&~}HPWsO}Ocgpb`C}C}Wb~?zS zkwq3nq)9Lt=ujJ3AmG_%I)5_<&wpx;@T8N_yV&)nbH-0FG3%>U2@1Z|AI{pl3ej(? z92z6=P!0{Fz&5!G{n?m4$9qCg#T!D|d|Su8i(%fTm#~H*I|W_?%_SVM?lqm6a}c>( z{oXGGHBvq#l%AumisS6lfDnuBo{D$9B{2KC1ffaq$|V!M`R2|plA8~lRor>oMRMQZ zg5*L6GyUOQB)Ksw-X?-M88L_Th}-D)%jf+P(VM^~GR(HpesG)$-}w_7CufkA%<`kV z?q2!^!(Bf?AzDz9D}a*RuoA_$Xf;jvL-V06=%?<$fdQ7(|H5&?Q<5Wx#_t^mq45rH zgXV@QLJ)vxbW;RgI#d{s0fN0jlsb!N#X(gNkj-(bT|1kooc9bai*5Yv6-d@#5jb!W zeEVBk1U^^<AT$HwL>|gcUIZ7efmvN^z$dOW<C}j=Yv7gm8hA6Y;e>0TfDSK+trtOj z#Z?O8Ml-fYI1`LJM~L6^l)?p{u$a~3lSUVOFHX(dAwTm6;UDQ(a6f*`=6XDKkg?2` z9x$6oY;CVi(d5|-A`G4|BDB}qv@8*2qZk{0KCd=v*KZR6tJYtIbd?h66MAj<b-fbw zpTjSy;rH{P4Qc?ts7Ieyn=Sq&;7j_x9+3F*$yi~KO-py+huhS!(i+6i>M?(M8^(6h zclMOFAbw+S7c@3Jil>i~>szi?p2p4i1^-&*!VRk&Te_U%Pxq;nwMZHPjBnM-DCSt@ zqw&cU?FHrfv><+{FUW%F*%*}ruYqig%fUDo#^vG{{4l;1<2l9)z|1C$Z41&@{N4^! za%>?`*@+L?Kp@4J{Z^kRaC`J0{+0)<O+6<_HJcN2L=&VM(Uhb~q6vaHTh}BdCaAP~ zf{dsG$CL)n(mg?`VuGZkCjOW6<4^Cz9=AcwI6)xo-<FNBFmU}vGm0Y^?xXLf=_xmR z^q1xbsL>)ZKQI>+$<rj}r#5MRg7Nlnd^>S`+c1t}98N-jV_Yl7wP4(KfQx1br|-6G zj3>y%1mQII`FHcP1~n5rv(^d=rrS3#;NZV}PaIz1VG+pT6(Zo`i$oxoKPCeC{2>Zt z@Owpsk53Z;l}{CcQa)J(rt?A(n8ou&U=F`r1Pb_NA~2sjMPM<{e6Q=I8<#{F$tFMf z4+<ms;9P`}tng3%(RC1xZx>;@cY3`DBm3p6L>T!r|BDDCuja3aFp?Yof(WBMnOBQ& z3x=17a4UxAi!i!a^9My3zs=33i!ffPz=I-;dJ*@DFdk0g*NQM5Y|a&7JRZx3iZC9X z<=G-k2cB&rOed8)-=#2~b>`oSFuGFkRuRSn&wQ5%qb;2`y-OR(!k4qES)1HF&uOYR zEA3VK)az?hVyXjT%vUI8xroVznD0f*(yp2aXOKB2;Y<!>+$A#JA&R;nW}}EH5;3_D zQzK%o7BRq)vsQ?h;UcC0V*VmxvP6szVqOz5XZ|h_3u0arG10$wcTf17<Of+Zb~Fo( zL=Ig3WBt_@UhvmTU$PYZ3th5gtk3^(J>Dgi)_u86)lS{6RQHK}q%4yHW(|?|Pz@S1 z&=`WrG9>f;e@Wcx^a^n4e|5o9!dgnIn)TkQ_}NL8pPLZ8fe2n-Otkx}(_*{}(C7bh zX+U3pryI~9+Yw}SAmW>Pj<U=eFzc1-lz>?W(2b=-(T8L19`TtNul1r&|9**0TZ^mH zp<%gdHhyswtIF_K`}>$m#8(=7vB4s7OQK`ZN5yAaMZYdGz<b}hG~BVbli_X_W2sbI z0!f2;7>B1fjO8!hNsQ&cV6Zm+JO3a0bRDvgA>xB|6YBIk#RT1z_*UK5%e&owdVIES zQ_^SaKI;BlUC_D{zgI_WUVN~wF(xNIR_Ccfrm_5g|IIp<^rgFtz)xIoBzB?y?B&ZW z6Kv`FSRp|`oc>*$wduq0Ml@NZXT~LrWB4_^AvIX>a>$gT-2nYjy^!O_DpO!71Dn!= z5X{D4wmu1hIT*~*$I+K!L5A6ad@I2}f1fBnBq8E_ha5C!h)+?+|5#=pRc=z{W)QYT z>&fSt%1{|X7q<dX2RrdAEGWA6;j7>3whcF#vAY<ZZ1uY*;->)6>g=0Aa$x~x?`Jws z-9x(`X{?E_gQBr!x+I|<G?Sm>=6(F5;PJ0rS3Kx&oI{gW!4JQU_rKYv7{({O72l`m za{-)WjTajgZ%DXNar`gHL4POp*r+)1my2&yjOB;kq@9B`Z(eHWU^_Z;;E?<j_2;Y$ zb}IUI?Nq!(HpI@@06xE~CSFB#t75MLx0F=Y7`u``CYqdb$tLfOH+jk33UN-rw71fc z&wb)kPEWsy#_pnQv;t%qQ*#{gPd3H+!HW&Q?F13DMNgjwEuz~+)vnuDyY1u&zYNq> z6?D5ejK>0VKO(mUK%T;3FT9P;S9Dq{l6CM=^hkL4?u5^e9D0si0-P%zjc-^KPbdFV zIaE&8nI^t#9UZ`|q6}Nru)XMQtYg@8k^C=_d`nmISV}&Bmq`ANNS3>jos@hqo{Z;_ zgP_ob?OAUNzt<6vyLlevHl3^D*-F>ZIkH1<p_&OAc*|SjoSuE#TXe_W_P2zaYgy2H zP@9P*u31OUSu5ZA|JwT!u&9n~;pzowHoH+!aP35l7^32m1Z_>ar7?{*ih@frW&%PZ zM1)RruR-I2HW=Z`Br(fm*EnXzER*=MsL2=yTo5-TQKMrP$zr^u&4gs)mZ<kXr>bt# zAY}5snfK=X@6By4r>br(r>ag>ovJ!@isn=vxPu*ytUNE=j;V}QK6Ee@pzIz58$DG| zMQ-VumaS&mIn=YG9K~gt^UxSHVzBYuZ(@A6;W-?d++ks)eBeEH<|9FA;%hqn;rj^w zy}SGh|8AgXLfFNII`}HD<sVFT=}<auPJT#zs26j&QF54FG03+H>3NmPePw3vCGE0E z?<JksQwqBH43xtNDX0}-Rpi%b8z?{XVwYP!n>VtZBdRly>o31SzPIZD%Qx}{)txB` z9=wTACBbKA5q^#IL8?@{Ws5|06RtSBDG0R&6$1;Y5yF^0(CVFvBA?sGG92~}jre=8 zo)5YMylI7duojR&m6$tb@~sxs9!1&E)RkC~74aA^(<W!d?dT*FhmIkHswbp7?v%oD zGOWaWHiM|w4K&VB&uAC?hTV+*bLT!XoO~MYXh@YlOP6GM;%YpG@Qt8PuM$am<$3W& z*|M?A;=+A1y5H4;>P+yK$q1YGvUbS<_#eM~kF9zb>P<`<rKHvTT4PhM%<WC-4sWTT z=WXO2lvu&Z*FBA0n~UF!TlEfavjK_8TAhfJIy)qG0|Q<KAqIIHwZ34y8$t|b-ywP9 z>P%em@m|)jn+^~S<3qPI+{6UDJwh<pwqq^%lFKb+LS(sRHo71lz8h@Y@fIOea(CGz z#-eYrJNgO&Um{>JUxVT>>C(f9<ERgSPHY!`uuBbyZYtnA$#%Y0FN9i+I}UkUl6<{w z7iv-5RJf@obsaj6i@RS3b3t$2KAYuWX-{vX!DhMSxn9&;_Al(~ZPepww%!iqfc1R6 zL5u@inlbg$QHt+QoALF_x=Xwm9(fNJvA~aB><9lf;#jHP+pHA~D{#@h{C+4haj@me z!h!ON4XOeK^e0g9yGUzweZ2Pki9X7OQ@Sg(s?)0OMh{v+d*M_kyO%I7^!Jm5HF-(L z?Jjm6t;2TW1N8C$^)NHGy-~HP^jdaGzta0-g8Bdxj>_C4M?OMNjqQ`CsdB4<Ji#UD zuzWU%@dCn~&<E~<(Udkq+!hSAR&2xRm>6ccB=$RR&DIFL<oANOmJd96z8S+>b_x9< zo{d4g*B_9jZc`tcu5MGqcNDsJ;$Hb-yxq-)yW}-7nJ-ddjs5BKKbk$E-X3Q_fwu_M z+xr6B6Zc;(=sz#b&gJ;|2DW3*r5Yk$;M~F&>jSs$_xYKHCn&S9XCpET)he^_MOxiu zU>1hfZwz1-?59b9Si_s^>CnAqeOE*GhII_z9KgMQ5M>r12F5LfgWIaBRHC7qoYsaJ zWe=VT;-U;0EQujqCUN_^fUSCdi+B=a4EUXiwpcH41;X`UFbI8N?q`zc0-3JJjlJ*_ zJxBn9KJWl|g*PAjy=PGuYGegb^%-V($7@mSEFZ7D7V`1@|D#ABm#&Ht^84XfVv$>z zi(;&J$3Lq;$rwA;vcg3El$fOHR0gRM)rok=|8XtV1Gk!fdOL%zPm4>vgC1W?U4EL@ zK_0MypJ~DyjXFvLvIW!FX%v|u92p_010oK)RI9{1J&m%fJ@T<p`J(m)UALB>QTk>Z z9yg(jnJ8ORwUV}vg3iu9W}wJGt9k+SF`>KDvPX!tCf_IyphExocm{yiOHmu=mH`CI zq#)jxC#__={Yfa<FAk#e^2RM8`Bge=C!5?9!PoqI(3(a?vFtHcJWCkDNp`6!f_A}| zG|Q4~mhYA%N@;p&55#JGyw)l0eHZD6F6Oe`ovaKV(6UGD?#Nw%fgP4sPl7eML?c`; zQ3osAr5>$x*d`x{r|;K3ryefo1YdgVBNd!ub;a-iz6bSGvo&SP3;`~ZL$Ac_nTq24 z#!5Up>Dzb^Wj6M;RIn?JnSOyz&-I@KmZi`V8S(-lr8&@fIckRXc!6&FdCv?$0UXDC zWwrwa79HMkA&NNOJATp%)T%KUCdIKZw-zFxz{EJJ>%$lE&N&1@@0_RSxT>a7$xjGd z)i(sDw>{-`&-xkqx1Oa!S-kaiqC4G>FGUsbEVV@51ATDme5y=*==}8<`%l>E)hR*r zN*l?3g)kwXI{@8SMX-9uKU0qA4rzyOpH9$4w&}zaitrW4Y=lms7=QDOA7gE27_&Z< zpIeHNKYfP!k+=AR`R)ePM_3{^t^?GEIC6n|iQK#n(+Rv^6J~dH=j|o~N|#7_lkX<^ zF&<OVGhH5KTJbcW+t4wn3*DADO>OIsZ&~LTrkX4Xr`gV!cgd&-B95w=8Y)lPfJf1( zJq{Y$D1K#639yJ4PW1U;;E#%ZR0Lxi2f)BksR*XYlJhjOb8#jm=E2E?3&sa1gGWt_ z4z3X%=#ZAcYtMI90uYPI<WL4VCKFXh{xx?gSkv$>66tK}sPlLcc!d1=dZtC*ChcxP zEp+dM)3O2V*ewh3j+&s`pU2_XYOHw%x21EHNmAd74iw=fT!C5ABuRgfUFYPmoG^Ov zn9%tYgT`2iS_ixjKzUeLwi7U7>R@iW(r9WO#Ub2Y<JO=gX@XCur0{aOunuKE&ol2z zOx`3GGc<Q<p96NEgJudm-Chr$oK*vzH9-<gNGB%(p4)yW4SQGKAPsX|@WBK!t?r5* z<;Lse+nqXD+FREgWY@`d6wUF)Iq*&`%nwEg8J`G|w3z7yPG^mk&*8wZmzPN*e!?R~ z^rozuNe%M3r*Im_u9Fu8NA7XJBIr4Ksd1Ax=yT{Qfn$nj!c}})PIaZd>#YXjtTNYI zL&Ln;5vWXjHjTmeVcnS^ddGb3VU!2rYZ&wQp$uPbz1?8Y0RQ5+g2iSt+ArIsZ_zia zyFJh2mF|0Z@4qCz04d1bcA-0)8%aSgE%A@B2{^2oZB$9@yLw=Y>+SJ3z#!N-i84;~ z4v#Q)%<ma3>$nqei2CXQ&cYqE&d6+c2{6;uPSsNdS(m6g%1KV?ZCqMUm9E3<EMUHP zp=v3i5<}A0cIlF%>TZK&zp<hRJ+v?*R*4y%hH^p13RIfrT^b7%MMXd1n+<Q_j^Urn z`DbzQ-c)wWz4x*rWZR_6m5T8<FJTZUN&lX(!_r`U@KG9(Gt|E?T-4RR@Zsb(08v1$ zzc~~XcNoXT9j4IxO!g{DO_|2`M5=VqDedAyH-`gcZVJ*+!T>ps66`5!TW-bG_L=+r zk`mqa65O>$VF{{#2$J}VGnbweJAj+X0|XqZQw@+p`{?OV8k&aEI(R>cu>$$Zbjt<7 zB2`kAxTy02|0Q81+ff>37tB3TZi1d-%XiSb#MtfVY0~)?WR2`&mJ;!%wx9vQs3Z}W zo4C<|xx!0RW&y1;HGAJb!Ou1C6()2V0YjT|OJCnX(`Ndq)1O3{<_mN(reG(YZmQCt z5XXu!STbUeocJU^#gv|e`_Dy-aOK72Xp=Vn6_vff)7KNiS{D5chHfWb`cNy3OEqo@ zOH+2*YHWW-edc<bx6TYs4rM2I(cuy&u6Ku}qLxIvWuI`sp198@)!`y;$2m3Sztppr zEx0CLag>sh;{@_m-<RQ1z&GM}x%IIwr_w=>@u_qNHVcW9?)T$b&JM>4O0D<5&9s1* zMH6wL|4uKtpQ6TbS38kRr*TU<(;g>lbug{q(vv`H${x9uUIJZ@GMIt^=uB@pAskLT z(b+_BmpawChKE$o8jnv!URgwSsp4Q+({*-xKB_1*Z@zxG6L6FtNWK4nJR5pYp8*2M zPh3^|5{TQum~Qx&Ky2G|Y<Vx^E-FunhxM&?MnnrH;s6x1<w3e&<KX(4q{tT^<UDu; zP85V-C8p0r%A8kR^Fce2sJflnpFi}DpUGBl`wgf<@SU&##hCg##`NnC4#GWhqMmk- zGr`N{)r4wRn1mIViX>gVi;0V{dv8X{i_vb`yD%19%EyfvFB(}@%Ae@ygdi9-Yx$Z` zJy(rASrc%HeZUdPPVWdxqEi8sihc+8G34D(;ox11@__X0+zoR6TE5{@6?=`m_2Neq zrDY49HVvj(&~puKmFHRTf%4#=32uSlzQvf~_xz_2si;>zE>u<m=R><JXHC2oMX4?p zD_mcS7%d-u#D83LHyEW@RMu0UCLP6~J5JL>Uf1eSdEp^!U>^xO80bfR#IpSUZv*Z= z3DB^X#B^tHHrP#BbeLYr=^{)*soL$*x%60?_g%JH6^kQb1{2viEO&nuvjm@UId&!2 z;92Hv)-XjlD{%|exJ94bf_uAuDJ*+@wyLpzZ_8(dpWjl~!)}qjrPo;0T|wQShvY4_ zG@k>kt6z=BVGI>~qJFIUig;9YMc&2551(1y@Gvh*KIs8(<;)xUX46KPkXl)3uc03$ zo8Gn!bE)1hfeUK5wy0B=6HyDfG%cEyO3Gi@nZc2$+w!8uxP=7}B8^+t#N!ZA*K7!{ z>qOejA-&3PL)q=V<~}?oMJ#=XvsKndrb#U@_{$BYv?9g0<T=-BB5iq{^@8G9dDBB( zb}aAxCO`<NEja6I+^BV>&avVr+ShDDgdN^R1|s%w!U%}ua-7Qh1=D3_n_ik0q3TOb zMkdfHHQKgmOl;jFfr?Ir2Gh2>##?)}YYnL=bQh>473Y%jRYlbgR>Y={R?Jccb}vm- zr-qL1OHh9KkP^7^Ks!N}e>>t$^RL9bY(=I9*$O&(JEX&uI^^Pq7#o^_oW<h6h@2>b zdWi0`whhC%R+^(bC<ToAKt4coxG07#LqN|JE^mIAm461I%KsRqm3Jzt+O*j?K4i1Y zerPax*~2*X_I-Y^17C=XJ5=OQ3QF{-Od<5w@1g94UHYJE29aX^2-&gyiOQ3IlrCMe zSEcHmKs{AU4XHJ`isc9uB#)hhT;xH_3|F+m#se!AtP8VAM^m9PG`=_`<}bHFLx`E> zkJWpz40z@vC@fqRV|@e@u31m0AmXw+sVw<kTjD`)qmmpegr@0sTMmfdN{v!|Vx3*r zV6S3+rOM4T$SxE=Z*b5cZT`Pk{ny&7s7GHk#AmlOF0BX3evw{hSij^48*1=-9dJVU z2fT>da#Z}(F8z^;hFW|mjnvI96{6g(5DJMID_=qG+0uaXwOuW9bZFVVj85LBQp>?* zVRX1`vC=DIW|%0O{MYfcSiAu_9qC<a(t3_0-`&$uliE|*k2i4au~i$#8azQ`9h!v( zcH4&UG(Ah(g2#x*Jcn6XmPkXcQA2tmq_JW#P(xeb13d8O>3rn}S-&=k<XN}jG_uuh z`J1ugEHsQXKfApwPZf}7(%~~Eqjb2+ptlLhQzePOncqB=bLIj{Y(jL;L3DeAxs>?d zcCZl%vTjsa?0PD+`8Vp>jVB>kk))%T_)*H@3VtOIua9TfnfyR&yasdc>@-8G#<xkK z?!_{ir)J{^nvL1*<WEO*HP4uLQ#<)nVL6vQ?I91@;g>!2=cG;iRG8_<F4e$i2!{gY zO}`pP>%YG=LocO6yJ>`BHt_o`<5j^^KfnE_HOOF3X>)ja4HZU}X<ze`Q}WrNDTb#> z!FDMl+72z(F1^U;_6wxjU_3NollIHM`3?)Y)lzS)Ab3f)Ww+pR)~JOpHQ^Q5e$mvo zzf<#RtoYzEoArR_%`{6Nw)0xe6a+fh6*q_FFu<?nc^U@(YJGYP%bO{yW0re5-NoJ_ z9gjMU9;XVqnlO?*63#;o$?r*A*fjws8%hzKY$SJ>Y;-B(%H_P}BFs4xZsoGB?PXjY zT*y_G?0%S5;ej^c?j1k=QW@6{xTwP|Mdp1RY=2esbA#<pKG=?zEvviU|9i0O!InxZ z;&{759dGHR#VTc(DnAfos4B3wA@^mxpyW2mYH%?3Ms>*TINm<R?l?5b8y{4)KeQ}D z?xfT4w~KO#1t!NdV`h7yj#1xGVFH`<2_ChJms1|Z6D4Yn=}|47?K@WiVSP=j=DKvt zX=B9^<jTeqreF9?JrkzJi`&w0NgQRy@eo4At4Mjt1saER^QTL2w7Oz5KDO6kx%mXx zM8NZ}Hfc|q<s3GmbG{jP&A3wQ95YNjr_}mY6Rv-d&mvHRu{huzx^g*qfkHKFG{}eO zRq`QJrJ#2YjLoS8{e9`I8jdWmo9?q$-Tdn%sNd`y+xoCsz7fVa#|*s_9EBt~{{lNs zcCTz*rIs;Wr1k6NNeVpDn`*ftpm_Nysz*|OY!#JVxbgrdut%tORwY2xSHUXAF&`f0 z!^eGW1Rqc$2Oq#<`zs(NtaV7;a3*xsmblxQD<jWwJG3M!H*iq?^La`Ey&Y1Bt$axk z8PC+F+LGr45o5(~DTa`FdYcMf(R{N9V@|w^>Y6W{f@;Qt(`!(>r*q5#2(gkD>;(tv z6Occ|N{0;PJI55ABSJqQ$8!*u25(TWgXV;b?@B%WD9Vo9<Em0H)P~n&^wJe1DUv*Z zr_yO=uRvxomrH!5fXbQ0epFgKs86jb?;J_58s@t@6_vRoV-DCY)m}JNbBETl*SH3E z9GtneZOJ$-wMK6-t};@BfTr^dOTk!yGiOKcVP{o*15j&&0pf*X78c_I4%E7_qMB2v z=50Q4aNwonQ!5pw?QM@xgkQgSOHtB+VV4d&YBIF4;{>CI=nic`PNb3w$5E|&;!%e# zE8cBieWOF!2{}nKrXEvbe!K;9vq$XaJ)p?vyz1r*_NpbTSTToVf^)$FxWZ8K)D`S( z56T(LrRDcm{AXlUeK|}kjWAIj_ZAz<YaAN6?^gfWx1o-jnHt)!G{`l_yO=P#SD^pB z>WsRb5}fwwWk7nY+oT7D2hXEN`z@b}c6p#Tuz#Qo0`DKjtVC5!!nGUa?e;}+>kTE@ z#&`_k0ICyFrn5a7@L0PAoV~^^;rW(EVU%$T?rQYY17Rw=tjVK<CyiTl#;yD6J~M<j zST4c1SCgXnwi~zBSuP4xQRW_MHdaDs-x*F0DD`|QoQY?WQN^DxWb95M(xKGhU8UmR z#_kmL4z}#23`!bBh%#s;{a-N(8=5Lp({p8)gGAyAE>klA#bb}*a!->((qd&blqVBm z7kHOfc2@;#Q2x(^Tj!bWJLuWA?Wo_vky~ezP9Uo?8V60(gBT}oTfz6#A6lVq6SWKo zp&RPZhQ5Ufj3r2@#0~W?=vC{jPWY>dykrA%tGgQH{c6BuY0Y=#DH?(s>(%xVhE2f1 zZUw(==vvrIp0R>%eGgmVA9Y@a&(gP+Q_!x!v`K5MT#1oejtd{ytCx&Owr!(VnQ9eV zlVUUOIE=exF(^G7F72Y4dS3B<an&h(?aSl#XWsYOEGKNn2`7LQ(pPY1X0O;s-d65k z7CA(X*!Ek-BLZtE7eN;}HS*>U@mhk&>uglYY_e2A^W?0WlVnvbY0@#<Hrz+SeSZhr zudQ|_h1$k87%LtksA-t#nzpS@Cu$&@cfVrOolL8lp|RBzT(GaUCxzO_D#BdV1H>=} zVi2ZTP6_F&!~EfNCmp!VT5u7AjIos~8gW=an6Vh9AB2f(3&R3jf}j{?tXeV1FC^Kq zT}O=IJnDv#Y^nb+4!F5l@ky5B#x*<js89eq;|I6u>Aem;tcs%h8lrE-cre@L#)?Jo z4bagVD{wXgb=J*RzLbQCA?3~_gWeZZo|k0!$&m{K&L`>8=``IQDv9N^$VTs24cEqF ztJcSl>uszE!;R^&dxS`O<!PF-yT!+sc&rYk0Y?7PK4~@fcuje7m>8Po-K}k5Y+ZB9 zdjKJWt^N$6nv~5naKs2EqyW+J?7lgI-c}N(#Ka|0(*t8*Rv?Iw#iZL6B`|{y;rjCJ zG@>wJuyu8!nnpD{M!4EOBGh+Bn&lJGsCpBF>UCkhQJkE(N+hUt`R=2@;&D%qQvGd; zA{g-=y`VpV5#oj{J1u$fR^v*XxcLSI;$dawsr7|oS<&K=e73}IkPwWOxbkfI)>t9q zJeO{qrX`*_uPYY~X}VJ_Z%_{ZxX<MMQNKJEkoEL{&o<q0=<y~bZzrbF8X|lF9peP! zjtULhph%+Snx*PEWAh$VS{^}_RJE3!qQQ~7)1f=z`*r(rvOrSaAGNEY1uTiG)~N*r zu24v0yg%y1Yh1@-Oo=Ca(Y&xOoJ<8~CHDh)<Pn%60Nd)6wo?w@miWp0vRyg=d<(Mk zqduS-WcX%@YdC6&0+f3yF=@l7mbmUq@d`0O`b&De8hSX(E=NsJ=6FS!#F4fdAK$C{ zrfNx&qXi4ha{OIv%0jn%+n5=o3*wzpGcF+=%GvvXpKy&^_3`=Mi$J@n8dTM^M=<5n ziyX9+Jn0nyHFsR~ldd*@jER!2p3V!9bbsuObhr6Q7ncYyE>61_hEa;`ro`Mmls4K* zR8fNTYpg)Mlt4~J<2ustM4Gw$F)UtTa(-1}H9I7$CX9p(PVcmL8ly(DIxA_cZx+&d zbi1g;p!}*HFxz1D=h(Xw2Nvi+b#lr3z!`-xgg&w;ia+rfUxezu3*D;{sVJc3jB({_ zNcPuvO7;<~q*>8Y%BR(;5(v}^9w$B|XVaR$eARBWpSDT6eT7QQ%{Sq?R1kFje_HI9 zm}sI#6fkP(e+5@$7l=W2>5T6+lv{>xEqEy=u;N4H-!G=a)pCE>Ku!fuNI$+v6^)%8 zz|3=5>n`NpZ8&g#&2`W8l_xAlsq3m(Ic{;FBwGwUnQr;XxaM;lPR9SV6bIf9DcziL zN*B1;`{kwBM86!6KL1N9_YTe2X{MrV!(@38RTfjXs7=nSo%%ufcp1}}hx@qFE*slC zGColYQ~yNyWft1I$gdu-L+GbiXkRgKqA{N;3YD6laNcf41wVG&Z#V{DN>Rbj315sn z){llfl}61}*LXjr>QRT#?~q=PF0ma__IDKg@H?}dRn}NXmBTQj-NrdGg`*VPTje&K z!k^r0-4qKhH6@y=vS)G4{{&63Y;$VGLBUW}w#~N1<O=}~-EFVFfQ)OF{8BfnN+Y@> z4HPa^6yv*J89gx<>WMXkh+!+1#Al&OT|t)`_5&_<<H{j6fLhzY2Ha*Vw;UF-5)TPu zEr)~=vbBurI|^6io@LjloS|tzxg_3Cmx+D~#!l^`FAk+!1p}l=AjNNNe@33yr?X2x zLVIk+-f25slWj2xH{rj5_%9Cs8NHXRqGY%HC>=IFR_8O>qy}HOO*-fcmJa!}(qXCo zU5FC(S2zal6ef<x*_4nx9&gJQZX8eWD&YR(alH*~(1?T^#*<*|JuN$hJ}tu)6p}dW zi$dv9;tP8Zxi_EACdp7l2HSgB4JZ_nQQE&cC}aUJP)*lY#N*=ErgB?N>I!JPRA?jv z@@Ex#+Klgh(;NPMYx3^XQ+LD*qKYUD!*2%FuUQB|dmmpoSWE)_*q45k(>_MEp?Ij} zI{DZ_wWwcNh;)WDAg^DDI&@psQ?b?xsyDzcq3$$k4VMpJf;wxR@!2qvVw?$ksVoG} z-;|gML)b#oY<lNdCC-T7p;ayI9av|n6H_P`V6A8s##|dKpm|{cjhe;_@v}(3NeGBk zv^a9Zoi#&EIPGnxUph^)?;&{f=Bg4iX)qoBdO&96MiFw9+;ULQ1$95Xfesw$ES`o% zKNpXd#v`4O_lZnAaJCY2O9H(+;}5bZVyWTi=X)9_4Z*hZMyoH>dr>Fq!Dzs#*la0W z9)#C7(8PY_PmIl#Aw_%G_cTFF*}hsZ08<g(IX=ndw(9zL$7*}L(^!d@(WF+KH&*RL zPN(7rp-c)-m3AY0_4`n|6=%o7ij!LfMOl%I_u~i|fXlfLpi6H-p~dh3u~qBpCGl4I z*!K!dZp7Gfu=EzAkpHzqkR2iHs>3=+0h^(m8p<3t(@an-P#euV*xoC@6HQRDSp)0v zu*YA!`LyA!QvJZX@x%%kOd5|;sKQNP1270|S|TKZ4M05D^n~8op(kR(>c?m=<Qwpg z23i?L0p!!&zIr2bHmKbcYxKqn#07}RZiA*`tb7$$J*2&ZkoIs9&1$T`8=cWuE-XP% zYpi@wLz%@@%jpuy*@fM_SM&>$y;p)@YKwcWJJ!$?SP@Cz+7e+pW2Sx^jFotpbuW~% zaur5SJS|JhA4+HWKDq@j)T+f*j1E-&=MsOp+gUd#&;1UET!m?A!c}WCQqO$oGwt90 z>CZ%rve#Iz+E-UlL|Q&3xHk-mj=!n^%h4NY3%CpUtjE7~F8$Q<1!fe{5(iQgY|>GA zZ3x#udI@hw;Dy+NM5JQrW<Got%eM>fgVHdrx{SAxU(p*M{F<W8a`!@m!fw<4lsVF{ zYZ_P%#bmnNg2jT^+qUay0>CyxV92)KZcp4JPua}#ya4>_WV_|`@{joJAUE7v{VE%M zXcMrOpI&}#Gq4(p49Sk%9_@t_(<J8}pp){vsO05!vZ=N?#9)s~#=`|p@j5y{^y#8$ zISmGLAh7^xpd^^BqSaXO1Yx`0(C%-Ghs@aHGp_BpsIC`(=LOj}>)1>~i5U^kjv0uz zC^2tePdlY$_u=|mAJisA1!FG;rBl6mfXamOyja6ksMZZIMQWLVx0zx#_tR`%QnPso zQq_myYUZ=?xZ>hiu^UH{4muH~-BlTM_;*%0%v78EY_H>l;?4e;s$HtwXEQ!ti<*TK z<X7EYYCWziVO$ZDW2=ZSr=DsJcFB5??)RdMOaf-vN=J(Qc*qGm7N+@jAu>Fz;Kktu zk|x3!Jm}@fMQu}f&T=p29{ArBfn8|HWe;iR>(irPDlkRG$AB58mdf)&gscEYRY~-a z1cV1(^PXR~owZJvnt&>}n&}(lBPCrfA<4yj326qd8XcoY*0B0!Q{nqG3Ga)L4;xrd z_n{L>z{xIIJwi{4$Y+8WWmxe<$oKd0;X#(EiJvW2&wS!mQ0z6E1LxD(p--vBA$^x- zX@r`%zNGyILE8dgGRL>27b*`+9w8h_vwSEtIwWnHrCzAFCnpJY@6JJ=3xPFzcQ~cn zLk{VpoZrnq7q-+JE1#u?tHw$?E3cU~2F1LlpXCd-_3W?$x(!>0E2qaDHM4cNkoZ6e z7rU!BR-j@Ds5a-#gz&pN#GTlG)wf^L1?=V7MYwRZhbs~Py0!~%Bk1neGOaHXa1(-1 zhDnFZufP`rrPO2&m)Fq)rHz=|8=%iIMPNq^=w2XHDGt31vr#@rmCc=?5;1ZSy`}HC zvnD$Tmw?|X_Ghx9k<J}dF`%t=U7+>!d<@bkU;jL2cyx%oVu7NhCw^s@lGAGR<D4~v zl5!by;!c<J@eaHLuu(3k>td03@_ZCx$JOd-;Z!05Z#({QF3xMu8enRS3q0<nZ~OYo zaSO26SbJmleA;2|)r;j0BPhq}u$*Jsq)JN^_43EEj(aITb6$@hF!*|uf{T53Xr%At zx}9u|5UD-`+_ZR;to+JO*1-$o9nvR`#1jt7DdTVI2p(Z6AAr<_2XAX;0WJ-6!}Ftl zSXXqVafCdj$iLE<QiRN9m)8*8L(g`-i?antbRk``Xtqnc(k!PO(y>%y`d)B;eFGgn zgb2rz43lMjd>_f75VJQqNDP-x%~!cHJc$g0AB4d>u$7o&{jtu06dUj$!EnIQH)HAD zRKwdb@Kj%?j?-DF%)L?GN3S~vj`1-Fc;SSjkK(v+3iTnPcE>^TLVrTCM9JiY67xY{ z7=(4`!C28vq3Yw(Xyk?d$S=^F09!6x?YIxY535VxLt~qAn2)F?**HI7ChVJTmkvXu zD4Yq1J<|`xW6_^MiJ94#-IT_UsrQ0#zJvZ_>dnQZ(_`xGjsgVUk>JdQj=bMX#n`$U zY~JPpX)pq%&##?5Ns2fyq1vuVo@m@MM`O^|+E#o)XEMeeO}6)cT=64i^=1RaSs!Yg zL7p!GA+UL7guviACX_ohhVn_0{s4@6BzXncNwUV5)WLlvb=Uf0!KN`R_nFl15%^t` zT%KC_kr=WK)AAW@7f$x69YkQ#5`;)#&J6slAQK<mS=i-(aJ)cKw)Ld*G%08;Ovb7- z>K!yr931E-LgtLXX>>E4MoTR<cj)ak^I*Pt!Cw6>%w~IdFKL8s%c5+SgUdpw9L?LB zbeN}F<++7)4aHIz*v+de3OIkB23WKJJ4_W)Bqxg(ZOLUCn9kJ`Gk5vwPX&ais;Tkn zh5U&S=bU)A)bGn8x|(#Z2q!4Qa8xXtyT2pHqpt;?$Y219IiT!^dCbRnKya4^_a*M@ zi_0oosRSaEG0(4S*3~#;_4!q6;@_a$=RVnkWmv^l%_u9l3i;?$Rk04PZ_b(fk)y_; zPpiq&>6guNN_$bKR!zTO7a=J@2U%<5Y+E|;GwHhMUAF28hD|0hY_%p$(mJZNz7Xr` zF%EB-0$HZ2Pj(upj*z;56zpTa6-L@DANy0X8=YU+EoYYXvPrvna12Pp%Np^lZ3o>v zZJvisbxk}fvVkh7O2!j+8Q2LRmqOKa<Df?mNkeMM8dfvO^vDF2+d*cBo%M^4MTr(A z=HpnTwKZJXUbFlqln|6`7-~y<7}E23yjQd$UL$$KG(|aR`BqG15(WDeCFXc9^*A2t zGp8NZc67?!PHnzWy60n&Q2+&eDKT5(@DfQTe9Ab}jd6tPS}@9==ld^2!PTJ^yPE?U zLtKlqX3n_w422Y=ne0EOQ3lq<L$P$uqpo0J<_c14^0n!}rc`N-TZ8h4;)*jQoL@D; zP#tvVP^{LAt0#n^x{fNkFmN6VDhY?sWHgP&i~pp{Oq$?0itl@O8ETe<XdIFbMq^Qy z_HtoZS_!gg9$s!4f}gI(6T))1KU=anU)`)iW~fESR1Or-E4F|wupMC|`2g?5p2o`R zcB@BhNZ*?a6(XSj0(tTijBQJ{)r`|)HD>@D20Z2{aMxYr4u3UP+(i{Rq{91&FB&t^ zoo6DoCQq;C;*3LzdHPq#Tzx1e%9|d+sPV?IRn)Cs?3E@Ny^V@oKM!}JZ^ewY;0jWz z^w&4X+mlBM3DsKQ^~dfK2FPzbj-g{FL(tTkq99FL?jA=?gsEC%8(S}ak}91`%RS^9 zZcV;VBP5kC(vB5xOukbm4zkru)H`w;9J>9oo5c`HV-SLa(sCQYIXO<)Z$p`*Pi%>M z?7C*$^t3w0h(s97N@NTTM(3ynPN`Nt7ex7#=~O6l%qa0McHJ2pKOrI)xH#8~TIgUV zF&T0wpUKC*?L6dA&dT#wTOk-B^L(2zR7)q%qv?Uq&A5P_gvDV8o*)Tt5=g>JQuElQ z;@N4^0H;LtrqSK!WL#EpAV;d%M%k?Bju+LQ&Ox+{@`A@;1g-@(L3e_QZ_pbwXVRVd zG^rQ8!u)_E@rXnBq5SsNE?BlFd1PjK@BlB>gyQ{6z0Qo$DZ4P+Zz9Hc8SL!(6ou65 zfML7cfj0@DEOu%l)D`k?4qeQWJAo2%Kc)BOyiQBWq5H{+r9aswee9$Jb_Bg99#7Nt zlCRs^1y`!4IHd#M@hBp-$G~!V5u*~f*~dVOGghvp6Y4p5Spv2XoNgVF8@F^3<$q*T zj(%(`=jad1x4+$m*HziP(O_E{OqE*D0NuI@FarbVe)8c>AjsW!OS9aLYPoN9D0}h0 z6q!34n@FP&B)^o$BX?HaobGphG>=KjIiYhJbx=N<s$k!?y8Wd0SL{4^l5`Ts`l0gq z9CkXhF-INquTfwwf1XVj+%qohyaco&9#CSoMKkS|J(ZZC9(2Br;pM6v<XnA&VVJsZ zlSb%wewS8=l^@MfH&5h(9RFhA2b6Ds>0c*uAASY#qZD~)DwCGGMNUK%JH5xpmW?tN zohV4~Eyw9-vTaNmih7{x6M34JaAgX)?L<9h7`KEwr1vMBw`=<8g+V~I)!`NUgzj~p z8;o1(!kaALi#;7R4=6s=?u<%=fAR%ezH=DuKY`bZePV60v!kAKemi5J;K@NI?_uaf z2YrXL<W9>Ts(+YX*Q1^kH``Tx`KS@T2fY=N3b0%_031;&J-PjfI8G+n?L}nTMCf|n z!)`O{c&eOA4$@1>Emwp;V_7JTkTEEZI4BOAH91iX%9jrLCL6ct^6NeWj$v1RctgI; zGTG$mhM@cXA^A4l<Y?azwDt5{k0AE`KIqun7j4{HN0s)QgwP4bEo)-?(eoO;fVjcA zH%nqTCUFdt2+4<Hhj01eO%P2cOCpmck;#(CWJzSQBr<6dI|Gt<j3$w9d0)IS-*QL@ zb)e8)yux#DtayRn<>pto{xCT7sr5E%l?LmzI_o<>eTC-<Mx&&dgk@dL)a%!Z=N-zv zG|N6gpByFrkR0VS+UtO!Yo`D;K%bcRtjSpw9q&YXNJrJuS@E&X#HMuPgd;Ae)OQf- zMoG6EDeakWTk$z*O|N+dwNu)l3k6rP)hR((<lzA)(=L?rXX094L+6(*uN_OzawXlp z%Q}NkWW97tg$Q9xD$tzAl<@`lKpsVUUouenmk!_9@j_qjwSjWe&3HmqiaCk1eJOgs zykM;At1aUlBHGYNL{en39XY(PZd5j@UFviux!~GBRIiep)yW4M!jjtolMVs<TpLjS zDCJu014BY7joP;&ISAK6AFGq#7Z3whfOn~z(2K|4n|n<qK;YC-AFW8no4{?x$9A!c zzXL-<^;zX3$?Za-yOf?Gm)CXToXzLY?b2aKx5v%Bwp{3kfpfbo7kYwO*FGR7#EyA= zozpHUE6uK*2)BBdI*?DwodHh!ahZ`VUaq>Qlf_G&G{Y+Gm*1$Raar%)MgIN#uYWe- z?QHPu=I|tktsH8j8SKqr5{C{BvpEzvT*BdRIDD4F*ErnHVIzm1a(I@*s~q->Vem!{ zZ{zST4$C-P!{K@k-{r88!%sQ<n#1!PYI`ym!C@?iH*z?Z!$};@<}jZ_H;3gMKEdGz z4qxMN2ZvvANP6+~I2_5LgTuKTmT|a>!}T0)=CGc_W)A<#;Z+Vzu?)s@IGV#r9NxuY z5r@k-e3-)x9KOckb`B46_&JB)bEu8u>2i2Ihod>1!(jo3WgJ#>`1hWI-h`gu9GA&p z);$bvn#W+rM}CF5JNtD0U48O%3X5EMW}(D9&n1{$Wrcz{w<OPH&i9loFuOe^xvtXE zVPS#(ay_mb!4>$;JgAhwAAM3v#G*WNaS6ud$~CLbBqgU99rFu|^UN8Ggo2V{>OmB8 z<`%iYTNw8@@H#jBIt;!td%N%@ZdWn&J+w5}Q|K0kxfiMFdQt)T42BgU3rH!+B_+f| zT<{x4@<<W<2uUEtM5N{+G+aWlSX4BmtvrJ94+_jgbipK8YtpBtrUv12a}vp*0nEu6 zvqKEz)}*9a88G;m&B(V9Lv}$nJW#RjGI$K&gM<)+0e}I1AqF15DOp47V>5>utxg{l z9AXF!3y+BGW;8{0?-3o-vsY|f?>>F|^&eoq?)ri8gKij{FyzL>n}!Y>o-|_QsL?my za%=LKv6gY;Z@b-Un~-8pop^^MZPH|C`jn{|)23%;&6qiB_MLbAYR=uiz9&0pZf>3{ ze_lc1z4MC}6qmT~^OOqW!u!h>Eq-9h(q+r(_BuWuu~;Zv;4-^Bo)V9lkVsx3S<b1M znaq_sWu{HJBfv`RQ`2o}Q`%gn-;y+HbYz&V*qq~b7Zv8_2!&A91v#bW1vx-gIp8h` zt_5xZNvWtL2S}>GWlk}x=@%8w_2hUKnG1_^OFSM|u28gSSXf4pE2q>2gjp=)<O(!I zK<tA{&84E-UE+Z+uABwte8|9p5|0bw0OJDcXPBBF#BWq&*if^r4Gj_EPR~qp22j3G zP*`ftDJ^v^m|L{SoF{q;i|3h(A*zKg=Bu!{P$<kPDqKvX56eRTK--9t3qqRbiu1s3 zUQ{A_0&yK?P7}=FbwNp~0C}D7g4i)T9#^SY1mvA>&dn(*!o;AY5T~KJB@5iN=_L%$ zE%FR8=ZnR;v`i_UIc-Q4mkJ&+SAfjJAN^=ADoW2OWO>JYkHmb_rdeDf&MPpNx^r?} zw77~&AlY^W7Fb>*I+T|`?=Dt()3aE43k865NpY@g*e@@Sz;u!@9gGceY)d4M<3BPP zzl+7R$7qj6fh)(&VnTnn{!BjaFD&U$cWvQr=`viYkoPm;ZpLtK5lUcTp+^vNirOj( zYm<6Jf1|sM|DKX!?0SboVPOwUJ4Ju|BgVAPH|+zlzDvNK=UP~p>rzXR`RC>2Dsw~o z0m{MB32d{fzgs)_TL2_jC=@{do`)1MKQIjX@49?=pu8L*r!5KkL^4w7*co_S_ld4j zOcW_-I&b`tIl<*wP*{uuOd-+$HUqI(EX6{-Kj)v=6+nKH#&nq<S25INN$~<#vB2|# z{*$}(pW~S)qUTb7?$JMOZ~4&43D}_BC56R;A3cl)yFW(VFr_Zc^^}yB<O}ARg*3M* ziHZJlak5Sk{e^+=VZ(-zaWMYQ^FS7hbHIaGJioZ){^HvpT^=MAtM0n6ungvHteNA5 z^TY6f`soLDeSrOm4)z+b8v^XV>0p1TgZ<$S_D4F{*LJW!+QA-NUcRb)ML7(Vx>e<? zR+dKx1;GehSy>5)Cnc3<l&^--G+}UZ#;kG}Utti=$iOv4b3*y*atK9W7%nI%Fc?D0 z-0u6`?rX;1|Lc$WnqPwdckQ=pe-7Y`e(qP%$*;YS6#+lZFZ>0DUm5Vz{=%Oc*8Hz7 z{{I2bwRKwX-%SCUw%;#(+EIX}?Wg^Pzcvc^M}L1W|M-iBU!X1U+b_;C&v$$KFU@aT zzB{^T+D!+`SFH3_RIYk(byc;rrsg*fJ^aYpM<09qiQhi?)YH#A``q*E*1xdfcN<^) z{U0{H^ztjO{_(ZfH~+^QZ@%^RmaW^~dG}A--`nx$+Pa;)cJHa*+pur{frEz{4>!I4 z!I7iKK0JQnFDF0x_>)ghHGlT`7hj(K>Wtj-weRdVfBm-gyYK(@!@2VpE?)Zar^{Ea zD*x~VsOt&NFPZ@TtMmV_PXE7r0^0TW{}JWyaEx8BU~H+nOhNMCxyhUkj~NY%;Gyp6 z>BIB#hBHe>Iw7`n=HKqhg*l?jqlTYSvap?fD$K~xn(1;2>Ia)RPb?J(nIsm`_$C1l zj?m`z6yh31dX6WzfQO&xn(Glc???US6jLjti)mr}7&pd=@nKvLei6on@nCoiLo#y& z(UX@$<C*9w<R+Nk7l@uxzm1StuDoJbfJ2tZZ0RM%)G<@!Fh{_6Fg%7qf9MCl({OjV z)U}vdFbyoZKU1L0H@eR#b$O=Fy%**jX>DA&ji(3SojIj~Ef;6C86|Gf?RRHxEIN`7 zG3U&4O(-d2A!lT!P9HULnBD1Q{s9j_2e1O<07pO-F{b4QMFJ%Q1q9^;#Ra7Xg$HE_ zMF}N}1q)Bg)G1SEWW|$VF#krox*j!bE{z7<7vxbmho`p)W-|+>my`%y4!rFiP5%he zUkE4t^TJ5~tWeT_w1M;=*}FNmsb_86fFKe%`e72OSwn&$|C<H?%>h%ciA47S;NF+I zYhuGlEQF7R@Uaj+c4Tx@_ga%1m&{sY2szo4kZ~azf_5~&){Bq?YKO><ItbaF*518u zFzE~K(co^#o7DcBK}!r-)7!-xXAUOaG?Ph4Yf!V!txZBaleC0H^$j9@=f>9dbjM^z zClRtHkts4?5=Tf{Z{X2C<7E&RM&d>rN!;|9)*j7KO~%?tcSLr0h9+1`f<4+KO|+Io zzhO$E_K{#W>WOi5Ffon{cSrRNBYpFXr0?i%q^~EowP!QSyPDP)g9$mCKu8%+D>O_` z!bXRZu<5~mKU;5vdIR&*pE0P>YlwaVKyw5!=S2~77VrxYzuD8bmDNnNTVo0)CLx5F z01wm1h+0jkmV}NBO47ta`RBo#6#{h;jCJ9T8xl@>jm{&zG<OkGYq#czrm$LrJ0v?e zgVkvRlvSuXl9+eL5wj2rY4(EjdJ?myJBe%U)g05*R(9EA2`L)O%mzG?6RIPjn(aiJ z#LH0#C2^2`9Hbuy>Bo(XsnvvON!ZBXq$tEWFBEV#5YzOCS~bqekk?)CZsBDVh4Ji; zfVjdTt}uVSpnsH~53xhv1n*()zcGc7dvR}6t<M+(i4ow<3n4LpL(IsiT1~WpL<3&Y zfLAoQMUOPOqptPWq~bJnBFrh_js2X*N$br(>y5<~262T#TwtDVa%+r04|(B07h%Nc z33qEEv?M|kMdIQ^NcX(ANcYiilJ1(#B%HS+H_RiWXq+KfHhx;z0sVQeDTIvX>BbF! zvKkHiny0PSFnqGVoS=*ZfKaY+fD4qBKMzBv6LMyHTU=3`e*JVelaNF3rmNp6KEZx` zu&k?R5%M^^`P|RTV16IoRce?XdeQ^(&|{?0A7<E{gv`0KEzEsj-gIYM7*<v$V$3oU z;~P*`y$qxm;NL3?AjH*cWDhs3!=vF)KVeWeV4fb;O!FI<*O4*JJ({BYboA~$gglT< z$T~G0mfws}-kwx{XL1PXJr^eYpEKC;`xtN=KbM&iM)e8<{7itGk@WKPXpL$%HbvHk z`|GS3dgRi4LO$c^()i}K#rFez)6FB~%I6Gf`bCg_K->L*hWY^w^@F_h8yVN!s|ngl zARSGIvY~m7ggirg$bz~C_c#yuGiZomLI7Qk45lNLCPYg@G|#X;1oO~67--K#y1&uQ z9hn`G!Qu~v_zg7vDB72WQnQNh1rgvvLI!-nX>d5;I{H3cKTW=_v;M=}2g;~V80nMO zjr18EN%~Ch)yitd=#TTJWrW-f?-U+qR8%mD8XZBRrejHlWvl*fUrvY@-dn#2Y<CeP zY%R1qI?kA&Z!<#Q){VrjWqobj(8$yQLNuh`1L~+d>5<ayjj&cjb8wTsR?Bgm?Wema z$S=^|2jT9x5s^0!6ij3Q^xu6TzFwocd%CqoG>0`AYSp|Y`@;dPf*(q+-L$0J$S^h@ zOxGs;y}W<;1kl89+w!jI8Af_S9(qE2Jw4r<O-<cuBi!NHtnS|C^brO0VFLOvLfLmC z{nm2&2xy~GwB1BPo+C)F>Fv|ht%LD$U0XTE^#FR<$;WWQ$C&OsZ_p?D$1~ceK>LDz zF)q*Fhx_}K`5Ot5;B~3>Nd0$XGzxeCZMN&HYhEPeO?a1a|D(Zt`uBu9ABfjnhF1dG z2ZyJ|r9?x|8QB`%9NH988|2n!>yp%ZbgQ_p<n4R9HiPx!&`$te^S;90Cw%uRA%FQJ z^mT#slodt7K2ZB{m={ACM?)FI7|;6gtOzKNaN3W@#fRP8b5zvMj@bBV3TYDPDRz2v zYg<i*WoY7{3^%mrC&H5cemjY%C*-#J09v^&j9fQ5j$HSB@7CDno=wrU-Q7{yCY3kI zh>F&c=nW>fF}tn5`L>aezK02EQsd~nziDmjZ`$f#6Qm_Uqcud+H<a`R{w^Q~8R39` z+&~!jI@V4G<GITGZ6y-ogECwj&dV6eHY*a!ID$m4HMwJ>+NS<faNoI=bou;SE`q^- z%SABwua=9*)ZF1Jc6o9HR|?ztN)bFosS91jFyGn>-vr$KPbtZB`6U26`dK-J!o(6! zW?}KXA{U!+k|#(Cm0#fAVDk8uF4H9hMC!;X&MSg>`Z<g>y(CX8a!o8Oa!tuu-~!(t zk<?<r<w@}r3Wd2jMVT(T&j;nKb-HpEx~_5mu`L!BG4OE1^_fL3n6qE6<+Eg4UY>{I z9IOcxVz>{(rj#sL00Eta#gP2-y6HmEjN<!Y4xCy>en8AwtSKcTmc(rsW2TVD9H9rs z7!docMQ#@v$G+xx1ksICZyTv4c2|*0xCU*DK1<z)^Oxr<6dTdwfihPeo%$KY1vD+d zC)ef1z>u7P%NzssfL)iLo3v@AcGp~S-aMBl12T^lxejwTlWn20OcL@Wx;aZq=8Nu$ zd{Y%F0M|nv!7nK}Zb9@QO$e?sft=Cs^#i*7Mab{94p)wQqQ?bgv4NUxMMWjK<Zham z3@ikag=Sj{jC0XgK2uZE(R>o{o0(Hom`7<UXP%23hnmN&{|wy6gB-krYcK(Jt7c+R zDMSFFL>IB4EmO7Kjy8(MMXa*`3||i@)hxP;ng+SP4gE7z$us&{P&<?cNvqabl9R`` z18t}SKFz-g-k}a{#d(?T!eT}kP7NlW+P15iDWF6HkbfO*JJ)<5>0N}FMON!)73R58 z3UWMICF!_hJYkXGBD*?|2dMpJTJDhRfYlyCHd0sC7NK?Prim`kq70XZdMVCj1P!Hn zFV;y`VeWiR;jdmxg-~Fbl(Oj(OjaSZ(^5+FU?MNkbf&vlVOFvh#o9X5@^1s|&`1H3 z6exMIv;f0T5cBh09-#bYturMZvOu#0r5>mA=R2!JEe!H`pfAX`m9;jsVe5l%DeYar zPYb12Dty5jBsq)pfvKxxMP6a$2Q^HHoum|%l=7a0Jj^JA<8LF+1mtF_D7Zxd^Z0Z- zU$aOUw#$G%VlnR#F;N@IB+%iwb3878ZfCZ40jxhk90TflW{#&2g%fOKa_aOcsm@U& zhvgL&L7%Rh4)jb3mz-o_@}}l9`wiN*6++A(AqUjH$|gWUb49^bY9s&UPjf1h!|G^n zw@YIB`|%*pt@*pY+WXi3C;b2W`S<hh=h|oFhEqeIg8A2>yUicuA5|3R5GL>HZ;L-L zd+XmA<O-CP@~|$W{D&S)1CKVT?OVqo%G98;E<AXKXF%{qHB=CQ#~1L-hk?UT4#W7j z@PKbUd02!-9<PbJMZw#hzvzA)cfXn2ZQP#1?HN4Gbnc$X;Vd5iojmO#?v9%vX2RA1 z`oinsxCV3o<s9b~9IoWwz5IIxj|Z<LL2=vXx%~x>&qki!AGrHgj$b4Hew=@g4Pj-W zmRVrAcdUn>d;Zz}|Fhx$tK<LAhX42TU-6i_eAst$m(RZx?SI<SweSV|-nDSRzZUO* z=JS7@20A?dzmr6QdTv8cho6lwz-O;qwDLOs`S+(7eBng~SFCHkjL^EQoWf1uzwUP@ ze`oF@`W06hv~u|NFZ6HYa0~c9yy43Yy~*hf@`hh^9sjZysA(E7B-2j*`lOlMbMoGk zBd_&;<iw}Vmk1fLjD`H+D&wP2S2EgDI{5$Z8fUCS+t1tnr+sh7gLd*{jO;vo>t$BH z<r@B7$6!+ugBd(sHLPk^=~ChKqCV;zbM}ucUX^D`;Py~%zj%q+Rkk>r+tsOW0=Gx0 z{x33ncW!Uu_8#26p4(%&y@1=}xZTR_y}8}M?S0hvE--svZr{Z1{keTLw-4ZUGq;<$ zT|Uq3YP)Pb$L!au<;Lx0Dn8t<$~`4<`(ibIZoka!vD~f}wt?G|pZ@1UoIl_^U_D`V z({U+6rI+t{yUYk;bl~LB!J(Z)D~IDaOy)3&!vqe^9GW;J9R8qZQ0DMU4x2grn8Ons z9_6r!!-E_)aJZYpS`N2!xQ)Zj9Iof^F%H*sh`)lvB^(MI7I2u&VFrg*4wE??&0zwE zCJqUQq5AgiS#6KQI@E`ix9g$_{~WlSKWcxWrm5nh&M(!c+|9nVe#iQOjLa<Zk31Rn ze=K}6$J;!r^Zu!${VJcIs}LV-^A>oK1Hkr*mpkEYT6nwi-{8e<%_MlIz`H=x7B7Yy zOW0iYenQW-khkE)d%C`d*93lt!<!Co(f^VO(%+LO*LHYx{87Uv2lM`b!vqe^9R9Cc zvxE-y47_E*8qx~zP8iT019LXOS9&n_%>a+W8)49pW`KqmLS6-T6Tola-Hu@c<RSy* zCK0+|5R3pb!nfi50sJF;58f}qjPN6PkAhhScsC4+S>V3_;3OCjH-gy-u(S`uK>&D! zyB`Ip>C4P|fOqv}e&zu5a&ra1J=~8S2FyPUU}lsZ*fW6nX#n^w%BVy@UI0E01LYF% z^CZ9<210)gjU^jkXgmuW0k9h0$H2S>;GjW-JPYQF00-T`{3HO(;pRMmi@EtRfP3M6 z70e9)HG`q7x&i(G-{j`E0NyqP#sTnC2JqAn7PcAS{fRLCpgX|oM20`gU<@5fNHmy} z0BWF<OaikW;23zVU>*n1JB-Cs0q_{S4sbsKaOQ9rBSJM~Ho)=FY0Lq4E5M=Sp-;s) z0p^cq<>LnU_-%k2xIYQ7-|dhW2wMPf_3aEFgqye-;a_iO>9zu#V`XU}JO%G=q$_~9 zM}+1AfUP!8R{)1jfN>RZ0N4!gm*^khoxpsTLA}fY_`4Jq|3-jM+96$te<Q$QslW?> zISJsKsVv=t0N<JjV<eanUYy9v9N{1CfUy?bHvzorVEH0xgggLmExH5Tp2o@nVen)a z3&Gt0@af4c{$~L$PX`_V%;f;bO#zw*Gs1&Y7|kF|nFf4R7|`T2s@H&w1~bCEOjd3P zKh0u!G|z;3pULuA2Jjnr^T2<^ESQ_jV*W=1{0d&Yib)1oG@IoM;ls08ScH3EK-dO; z8c?^}UA%n(oB`9Nv*11(;ORNQ>tQ?qBkzH3A{^Q~z|4DCT3G;}xQB&(65w;$gv5iN z^#HeKGe6q^wq`RND9mAIgumwIW`Nht1)6}c@c{3DcL|ss0Q2UucnSdClE=z658$zU zXlvl772u$GP^Mr`0yuXbZ)*TwoX2SoU@bQz{I-DAX)C}#-wXMLu(bfU%!hsr>U0~x zdlx{xfVl|ZHh7cJ9pL<87$3k~j{CQ$n-<Jp0?aI7^pFMcsS;Md&jS2{n`?n5Y4X4v z1pFZU(!>0p1-PM<)$c}t_Y2Hi2C%ybyc_t52Kb!FXmUNko(sVbxW@uqxD?6(%w+&y zS_b(9^Q!>=yd26M%(Va)mqT76p}hl4^g<nh`6hsctAXagTm(>C1!WCpJ-}iK?=^=u z4)7AZ&w|<h5VWI5pxnTm1hDK8)*cZ?u4V2ffKS2u7MPy}c;BPUEC4*s&8r`WzTyd1 z?`D9rfRWh_?y~{D@>^DSuL4~E6x0j2BW!(&_sIZnd77E+08hiKhj?Uw_dW;pi*yd~ z+2@!agtMP#X(4p4gZ2exgnwAa`+tDj*8^RFJHnwGpv^-0TLFH%fzewlz-NC4c?LfS z%^O+#2<zcpjkFCg;txP8U`BWkycfZo4e<0!Kvza+*DnK~^$LqW1K=yKuy|etcn02^ zz>f@Y;H!*Q;{on@mC-{3z@PpI^#y(|11x$SXamd$AJ`1_1?CEX3;zS~0dpC^>06*5 z1alU^PqwgnYzBC4D>GjNxam)TGx$N+YdfR2Sb*K$W8<A2;BVh!cs>cR*B+o_@E;4X zx*o<LFs}hv-3T-W{?`CpbQszQn3n*IYGU;s4e;>~_;?C12^iNo;0Iy-QJzPDPaFgM z!Tcn^<HuOKCjkEL1oU6nMgW$70(gTNq3Kf=Kf)`YGMo*k2szNq%GvZ8^fU0fu`WJi zXCX#o`FzICJY+%JN4SNX5gz7dgy*;!<@-?{AI%6yb2GwpZbq2T%?OusGs>Q?<7R|! zax=<+f5y!SQAQhaLx}Rv=#CKOXwe<v6mCZ7;%0=)xPOGd<z|#~-O9}fo49|3eZPb{ zFfoSz{{c`-0|XQR000O8MT4A7^@e(BevAMB000315&!@Ib7gdOaCC2PY;!MTY-uiK zcxCLpe|%KM)i``Ndz0KGo7@F95G23?LD8V1OEk+Surb*Xl;DPy4H1&yBhqzCErxpm z9|;8SuFcJ`mA2a2r`k%f-v^)C=dn*guoc`Tm;j>kqbdlsQKL>=s<FgmA#3h?&fMK3 zV4wHt``7#a@rDog$J{eBXU?2+=A4-`v(@+R;EWu{@$g^MIBq|u|2et;{jUrD=S=-$ z4!0-c&1w4$i{G4fkMF_t)^$za|4!3=-?QF--$M_5U$Xwo1J)+_A?t$=Su5`LSikrE z)eqd1ot;^bD5K6Z<ez-&4tw(dyuPS?3VZ&My%O%vHK*Ap!ri#aVz;w<s$FFFarW=A zyTP6h_oWZs@5B68<LGvA++u@~i@ii@M({QovJ4p<cMM*Z=xLwLgo`=RC~Q4Gr*K?q zB2V(pISo3o;1B55!T=F=_&$7Nf3q)f+^m0smjBydYu{CU(xs#FKmFY#J+MiFd;QS_ zLfBURN*F80t-7gc^?lNP@L<);<fg;_x2}YPdYw1vVBFzCEYF~q+50WH@IT+8|Nrm* z3x74FqCg0_4Q+xma8$nJS>`P~R7+^6;zpz2;HK*{IZin&*fiTYwW7e>!A%dXGX(#( zr8b%t`UU1EiwpAF_^gtZvT<S5S~6X}Ca7&O*ZNm_={A<vWE`+*9ce2oqbW9x+=I~L zTGPra9e>%}4xl*<)SCnaY|M=vY12C@4O~P0in{h~7fislJ6pz<akj&1pg@2(FWFO& z2lra?D!aF(leYt5X<TS^0asRXv&?stX)D_dfw25lC{SPmW_5?Q7nnhsYeM%FSeAw= z3M}qg`m=1T)Y7uKK;XpS^UxT0G_4c^KZi%ifEjB-PqK`9p3vd~OO2N{Kt_1CLgo?5 z6&`BY%xA3(Rq$DIW>rh^N+}odfeKBILrobS9EXYWmwv8xq%0^sAGF9)dI<>NH~4s{ zl4=5wwU<2u`m^D?+e`OkAhNTflao+q0g645-dZnxihZ^aXeJP(k#scJj?)ytbK7C0 zU;FXopK?KfKCUI33-U?lXzcyGn+CDwwFR?SXXmT+oLVd%Om~w3b!9<5{WnH0Q!p%z z6%XERSXe__SqdKv%U`sK3tJZ#<OhyQ-w_X<TuQ%}{3N9-n+wdGw73n5L^dgpo(49V z*xzoD$J)Yn<SO{WiBE=+!%hwc&q-zvGDVr7GsQ*QIp~;tPWnX~)X<t!8T~On0Gx%v zO$0bdn3aG99<y|$ahi)GF0N9Y`xxMKyLfQIQhL^u#0daHK)k;iu+Xs3O*>7)4QN>a zOmLf~X~2S(M&LbQ`*ygKL+ojoewzz;P9D3HvzBpCP==p#Yq?yPliQEVxE<)b+!pp% zxS=g3Y!Cdm!2dkx^L%$FB%;vJHR-Hr(3f+@IXOtquYhDN*9-+g{VRbvc;wZ*rGAe6 zGvL+j2M`m00KWOY-5)wRIt9ihCG2$5OGaH#!^+|1?LYz^1k>c#ma5r^sg^5X$xv#D zFL2jrxx8LVx~~OFiS8$S0p^4DC78p)m?N}^OYjE)1}HrA3bxU4Hnc8f%Z;Ju*$@uc z<`KR%w8^0BgEq4>a0>XTv&`{ENJ=wo{s2q!8@zN@8cHnn9f2B`(MPi&Z|7AKbdZ(* z0f}vyhkAure!n!t-|RaKIoxzn7SlEbg#SH|4zfj!Blr~_s&rfoZB93A?r3Zvuh*|g zcG$KHc`2jyhXvk9puh?@ABPeK_0;$|>?SSO0#rfa9E}qQv<0<><In~R)YnpclVn0+ zM)`F_Hh$T`bb+NRL65d717?ho+*uz1#j|I_RW+|6xpVNLif_xl6&}26RJVZr>*toX zR%O!kJt)V}f69<1&xP{x+`c@3qw|f4{+*b@I3`qSYyct0R)By{%Rm9g2DaDgt=V2+ zMXlwfKmRT0$<V9(Y}6II+jLc8z%tBLPDkf@bDIEik=b%7Q%Y^Qlr2a7DWHrnv(Ew* zFNJ2&doq&(f9p=3wMM{et_hnGD98uk=gj!5*Q!2QPyn~qK*21XumbA0=?2tq!9ftL zIY4DAG_C;jS;1vUhygY#=-i+tXL)^H(9J!2frcL7Hq$clV!>=^S%@!0W#mNt^ofzF zJ5>U0RDMa*)U?--V*p2`gLnLOOFq$nL#)K|%2GOmeP0ODjo$`0f66MRrqS8hr!Ti$ zqca<1`XV+u(>I$xRbDNa3rKMFooU#+D<l_=mqaQsVH=)jGUxRjM^XHVA<<P2=_obs z$Bd(TYkm4~Z$X6?5K;jOGu140)5qhQ=B8mJ(stHrAWS2w@C74zbbe;lgB*i4sG(E8 z(KM*3-EZ>s_5ljNnhF*5t8%w3OzH*42jWv<M~7^s4oL6h#sfND{G;tt*l3{~(R$v5 zM9{*riNQ*LR_g^1{S`E&PL<>R<tC@R(L-;T4DU)zlO`##A!$505xJa7jwl~ajeMA9 zG(Gj)4P{(3^_8bV#`?<&w#wHd=tKmykRy>xsY=(>NLQMX59xsW8KASEMari;r(B8I z^$E<XyEVJqEzj`K#W0YNSjc5|do|hQq5qu&oaXBG)Y7-u5R>2OiVuO>rWvS>T;24q zP(-^X3v@BIqJ2MSF5}vFh8<;`*KcV+rMDjq`)Hb@qdA>)?7}a|TtBe_c-^j73sJGl zQ~bPFEy8c~U$6L(>c3`rL%Z$ND_CwcbtfjPrW7S&RSxmnE}^2?{JDRq0U*o(QA-X* zVyT1=V%y1O<+G`g&(a8=jwBL*;5hcAsJB4&JGNa~2N^cM)o2Shw9|i|0rp7g98lhz zluFl4gW;hF>!R-=I_*STMlN`XEU@-DdYh(i8(IZ*Z@h-QRmg}QG1t(~KqqZmVnR2i zE}E%ySiM?q9w@nndc6SR5|o&wdAt%fyXhYbkbtIbRXRL?xJ*je>ejQ2<X|m#M4G0S zvI_IItukp_HLWlL4P^!WYzE7&=gl9Lw^~pxS)kPBafv((N#FkfUZXq^2OZ{$yP@M* zhZg8s(iH5M^X#s;G>+bv&*3nfNteR|sgA1xm_A2G%$?&PWhRuD;3?@rTNrE*0nEbj z+b*NFY|2qeTW??l?s;G)j!u`9%Y4%<180>FjgqPGWNW(8X;69$azF5Kmtc(G%?!6= z%16dXPl}Xw@wZTLrVjTx!a)U%?QrFj@(ROnZSbfV_%ZUhhnxl7VHxN^mm3B~vz!IR zh`}JdMz3p2Q#uUEI;BD|X>Zmc<xj|2fRpc2J~m3@M!*2#b|q?%|AuDsiiXDafldUM z#wQCA15d-do+^K?7b58&AzS~71|45@g3`%joxl2{HZ-(_q!~{ry_)S184qgk1<qjD zCY=wQl4b|`r6~i4fD<{%gm+Gp533WRdD}k1sRMY*fhUeV@wQW}R4_=OT$3%Vrt5Xc z{m=+8xKX#X7}l(}H91d{Et+hG&h~5A-PV~X-+4)HsPWj&d27}Bn7v+*nn|_E@rImk zuQ$sNM^oV@`R(-<Ovsa0VM3l%XRpu41gm^ECRn8^dwqdC-(EjUo)3a!3p<OaNNH7- zj`ofHE%WEeMUFS5Ym{cQQGD!cXoNonknn3Ybmp~8A6Kff5S@Uz4|Td?IDqt^pA4B& zS|?(8npz)+5|@bw)7<n7AYTWZX{?NnZ%Zq=S;{V1DP@%0BnzNd!E)JRs4Si$|JgAp z%>=xqNu;yTCD>hg8=Bp$TA&4ekrBYGHVe@V;<7l}p{6|Iio?U54wum6f(A+xSw8Cq zS2ABdmGpejS}_1-09Po-?eeS*GeCjH5u$)D)ggL9@D&T$S||&4*}8EJ2q%<|WZl5( zvgmJl`dhyKX4T&c^tV~~M$hD7NrF7yKfb|(f9f2%GEa9(I-)n&>tpgK{^@lfpOI+3 zcNo>91q>0rFet|sZfsa_G^sA~2F^}8x*tV##*rFe5K?Wy6nG)kz$b|pz!^T82hL0i zD_zE<vgl-EV?lkpBO7(HoN}?fXA>%rgckFXuR1DCsL}7IMYjUaRtltQt(rrseCiUO z<T$d|O)BH0u_Sx@HK6#b*2(Gg#7zK~Mk;wn>W+!<aXf)c!`}s3aUGV!Lu$WsU5ac` zs@A1IC5C7w5ujuzj~_c4>JRZc8p;La_E2>%U4!D_>Q(l?2t8uhGA`umb^8Tu$M@$l zYa(hUEk{skR14xhzDns5TAJgWluoK+%6;p;Nsvq_r3IkR<gw5|lD!HV0KjDcT;C49 z1C$nodg|&DBBflgf=t=#P4Z-#Hv#M}{L@Ec`rP=Wi4d)Z!k~A~dsP=zU0pa7dk}3` zm%G!|4FzuPbX~XuGmU3%jajSiCcT@|iL0wMFUsINbk$rOM4|D?-eua|L+Z`Jb8@;Z z-1BcxK&>*!H_4$#<3Vl1Lm=T$ahq8Q^GbvV^|N$dO<b;SbAJQRCG%>&k#BEv55e=b z^J<3VX>D!|p3U=s6|xjpoVPc}n+`=6h%Y-e@#RHYv=W|%;AtpY0#Dz-(>Kvu;VBMJ z@#rkQwy4-<hEgo^#>i%8ndXYy>*GxqfGGiM@nueYIioNV{X4_I_B9GxwN}e5fDsEw ztL0kZVOuArZqrtM&T$*j)BK<@L2UZH+c?$*f1Ha$c`NWFefUN&w^3ngC!mWHfW8Va zsrAwzf39yXyu!dZOMg$rs!r4=b*4a%V2`r;X9L7>zd-+<j|Kufi20)|h2CfuNrM7X zpf0d&Wud7zX$5$hHjIiO3uclNJPI%;8H}mvLJ~$P-BXAo<wPIeX>PHu-ZELum{dpa zz8zY#3QS>N723l)8LL5=clb8d!TX!g{{2q)(#aQ8Ai(_qpp@>%V(X+yK761DZr95- zfxnxA?k=X<!oa?HKJ(X*=~WA8W`X8l(~yH~=gRGqi@{0~1Fz%AGkGpNx4F!}M$1WQ zHi1+BEE2frMJ%414cSOcZ9Ws!q)l4UZcL08Vq&i<pI4i^Rk=&~f`@0vKvOO4girP~ z>2L6Ir*<2S6rwFke_x1dKzlDy=x<qSqOe~UGI6yxcgv}ESC^E7Wj3DyxnVVs<}=Y> z`PM=6_pe48G=k|`=i7wu629M!?@5bxDmoI)W=@`^vL-^iORfQ2vD@RI-k|OHSrXvG z4E)eeKN^SL1$G!t7$9K#5c3i0hf@uh`nzPRKC?id9ZGl-227woOuP~eoP`_E>H^c; z0R{}+GY_wKjlt{B*>iwh*B0Y7^>(~|0X^;ed<HZp_Xea!!7k+Xh9o0ZKvPn{rd?^% z1>%KU5>h~~`$pGJev5AocJ|w2fn}=i<+wHWRGeOxi+7g5ZQFi)!I^#ex>vFc__;L? zKTlNlOK{KGV748#w^Dc%pNgo}-BDh7pc`6Fy$cw7!RV7uA42}5%8h71LV}srvxHLA zx4>BR!)*N0Echo;M;v7=cMb^HuIHEyUdnO1N}wHdY-s{Ypt%S|)p?1849a5y)cPm9 z<4l;Feg!UG-OfD7xho$oZmr0S(=$aTEX(?LMs?s7rMa7v!HT#Q`hnKLC3+KaT_6I< zP^-^_<M+!V)TZs^0ZLrwN5SVId@)=SECec;z72iVPPfkod*yjZ8<u!4^@tqjrUKFg z(c4T<AOc~lqgUopAJ8y+cf$KBu$Ht`9<Us!G~vXkyu?!*DhXDhlr7-?gv$Z4)k8DJ zq34(m6df0;wD?nCR8`ZKtCe{$@<p@B0(Fa^&Q}}q)CL~>l9Vy%d^S2)L{q@$NotyA zfs?KS3{6lKmMcy4QZW~_>Kc>w1t7F0k5jJYlr;iZ2YLF-Oin3Hc?2>QXp8twS!7IW zie?aB4o6Mm!ElY6esUu=5F9Sqn32}5rHyFBabQNYxdg4+ME9aHny*1gpfk39mPDq1 zp~>k1P;yqfRoN<V@@yC-3~ABAHltQ8khf_w<SU1a@;LeqkW(qXK^Do|FD;;}u|R0b z)^{3KBnsPhVbkzj)a$A%4x^t**S)o*8BO0%=y{L;b?+X$9ypKJ;C^=PW!K~EO4;=U zyN22I2wdrm0ZjwPsEAgJNuSylcH<vCoukimA9x7>IVqC_UqtI@)w*wR3gAd4$Msi& zr{CbEPGI`FKca&^%H2m#pY%qCQklEImwE9i<QVhye>B?HM@Ros>L_17g&aahUkrW+ zs9`(mI4cHF%G$=Mp)-hisEb`+g=_0mU&1wTN(@W|e9Dyr2*9b&9)_E^Jqyy>4$Zcf zEZ;arJa|Yv*s>gkMWsu$^@FR?ZwreD1CdRT<WG;p_&PQCBxG|$#2@@F1C&fb@UOQ5 zbO<R2<lVuD%t*JFk#sL3=3YkRy-3WS4Ui4$QK(hAQ=vxbHiZh(%&ICW7v98REl#(G z5MJoHYxtS(Sup%;=&|AC9D8m-U!h?5Q%X-BJhxoFL7ojRk>1Z_YuquU9zblw&?RBG z#DQlqspm7Cm}lMp-EgLO@K~rqIH9vc&vE#q?!}h%L<GIqYp*VrvSNSDie)tD`6(-q zUR59~<xy73B57I6WuH{ha(S(k*K&EI7`$IdwughKo_i3?u~r^mo=5~q)qAVQK8(M) z=f>e@YtJ;Cs5h3}CQoj8)G$|`P@c@%GMse?EXWcY1Gtp|{00GVsvrUI7X(->2HwH@ zgJR%Kyni1Cf4s|L-~iq?iGjU%UoHlImyYB?ZU_ZYxZL8)hunH6)8|XrXwVi!&a0EA zlMo7CXzv;J5j1t1v0Se<5EcW^gBHI6;xT~esZQ4!CAM08f`VQY1CQYJUCbjs@plei zvGWyLCYgbGmcxIcs!9z07>2W!L)Ok9vLd>YI``{@a@tvUhMw(%E1RoQpY3LH{v7Ma zDoE*MeT8$9J->n10j4140DZ+Edi<mMN##a=mNQ2_5ylJ3B~4C!1!)XiqXU|erIP%k z9>BWA!0&nRb%*4volk;tP=lCA*tL_XALb8l<*}_m_4ffMXzL?|5ixKbl#OlvC4T&N z71A7W-@>@thwTgnvB~aG5Y>X4em0M}6EHMQ?PQt`D~XP4TNrO;fSn8u6ZMQbRy{>f z5lJ7G0Y``AAXU8MEorV^H@01TjZ;GiEm?kEc<5woR3mzg$T3U{;C%DW9mDN)(*`tq zd)~rH`Pe$~i9y!kALGPt>;ZB6t1SIH;t%Jd`4oFldRU1)B+XJ{-xq_=!MA=^eT$B^ zfD<+MC3*wrBbSlehjFIw-Huj-7`XYers>(Nl4%VIBIB)5)1rd@sHTk&rsx0gNl|m^ zRb-;S$Pxx3C}U#a1zayoC$+rNDfGO9!}yq%%iob7(AkNRx6aO<x1{OnU>j2&yWq=~ z1%&bCwvKuOT6t5lK$;obg1SWw4*g`-38n5uP9<lenR>yP-PVtNBB;Su{IoEx2Dgt0 zrN(qJ$dSgX(1`%4&oL0p;Q>==c|I6Pr8xbmogfFWUCQD7ZJ(ipNmgBG<h(?Q9<69K zg6HVqb#*NV5Y_L<`M|`ZfL0+;&(tK4<3@Q*qEDca<+|W`dW>jNv8G_RsUaMcqXi0G zF9u$YGxiRs*ylJlylg=6M2PFStNPr`G{S=b*~S3)nvUR~Q8HVD?=XJGaR^rpdR#-S z)66K)cVWq$e1F6$<>{2^kATS|zP2zP<xzNk4u;IaI3^l@4wlrZ5uizqcehU1%sV>P zj~O_loZ<%FA8A}d7<K?hyia0sitU`j`kHGtjbevu6sCa(m>#;4HArVxyPP(SAsv!0 z>cfe~lu9tXH4Q&YHxkzHpD%TLYH15FwGx@5T(YarG6so}_qU`O88usTmP8MPTo(&F zDiesI-eZ~7y-ZN=LkpU`)ncC`c{L`xgk3ufbDYuni`GDTn$zicOYSRVOn5RDoy8Q^ zj;j<_G<{J^F(;)W?AJQ1UXgMDWeF(062*jJvD+!#`T|l*%Fw&&#%SJdL-M6CnzcJc z8l%5h_3lHe5jJWUKHJ5vn5wgZNuHoF<1WOc*W<U+bzd`^Ut=Z+IWY1u6v9I3hOd*E z1#pt}Cte;~>+#Rg;pk0z3CaOfS)5L9X-zP^<zL9&QNzZ*G%bV=Zhu<H)dxEEX?Ur0 zSJG`o2`wwnva>|Vs_lJx1dr-I`c)qi2Xk|E^4@5^!mKw9*pBspJAuhD0IN$FZkv<1 zN{Fj90r6O00$0=*oHS0`iw~4XBjGnJt&Xq(x6RnfMr91^AfYE2ZIG$kPV{^T?fnOq ztgaAAb-b~`_T~zjc0tpQw(t1-1}7Jt<>V$^@8lkV|F6UU6YzgLq*oMzxp<Gyjh^NM zpgV1v+8htLo^flrPVn>+E|lNtw}N3Tr=b(!=oACEnzswBTeWBhTtlrmo<!$#IC)MH zv<_!#rn*V!a29YK&Y77V&THYdxWhRY*9J*8=Gzv*9F9oS@iq45x5Pjua+~V}mW^I8 zDGn{?L%c(EbsuDaLz`2`P^YVl$>R#dhkllt@Y%eix+`R2#<pruQV}6*Xa~dShEW(P zs|2oPRY6M<C1q7Hm&9p|@m<HErc;`$%U+84H$NLqBkW0epo<G?TfRqJ-9!L8LGmh> zhNPM{BS^qqy9GI`M$0YHr=?1W+(kNY0qE1Ikx$c%bM^Hu$jGT_(3zFI?>TTwLX{>r zZMi{5UJPJtnpP=5)#Zw-o3}T2ZT^Yv9Jz=k6tM!*(7nh)_ad!j3EvWJ>Zs(m1<%Q; z{{H3BOwwM(W_`n7L!T96ghNaL{w)t`(t_Gy+~%tDXCh&hSc;6LIHMU#%qa8lD2!nB z`Sl5s-VPW=GZC&cZHReygGO;XIxrgRa4mN(lnegx81RYF1y3*vxKi}~l;rda&M@2h z9Ubyydccra-Aqiax(vfpt4889k6Me{<py_p*jb!q9PKPBzc~XV4d?MM4h7G{lOJ67 zsh=<@jiZpyViG&&8+{5PID1&DsUhY_KE>>XXaD@ou)o8+jWye!im_Yh0=qqXgx!LN z+3h!BcKaQQ<}*()fhI0KRLys?nhc;B6aHuj4KT7Ou3J@|45<k`7w%-pBI|+*h9@m| zIZ)5fkuzHEJs57m5Qpw_>k%m?=v={{LVIq3?(ks=TJGX5HUnCP9b6qp>7GSVy7f8G zA|x8UHZQT>Qm=JE_W!`_^*#TcobUkRg8Rw8c?QTSjVn_w-PrV1sOoRZr7;_G{MpNa z=KP!I$0G4lD^Tcj>KsQVg=a*Ruu$JlpP9%eiPH8vEoEFgq_tBunN*=CnG&-K^dp>h zsTOKffj)*4N~D**ieBd&=;!0dkNZyC?&MZ$MTyuMv%0px9D@IaT^?^O>+M@yaog)| z^#Q8MG2)6RxJz}#LayG`Xh{KwRrjt|v+=R6v9VzV`J}!kx#XFc*w54F7S;>4A}q6( zq;<G7P-%V4T7J}w5|vGs@W!`oreb>bQ^0wNiBt;u`%!#%3H?rfjTjt{>Z#fsT1Hh* zoUAb6DnRuGWpGGp3@ze9{0g%8aZ9M;akJ{`1!;H1f=49_d5;!A7eJ+kV0g20>q6p+ zkuy-M{8mddDDDE3?9nKA6DW8Y3iD_sL!nP^T{|F-t&JW9%5JmYzy5n&^7TsTcD8nF z_2Hc=(~`kmB3UN*4NJ9LOjiyIq}oI~=diVH`*M>s)~8eCG&w?#>B*!zrdFA*MydUi zD^dExCv1&|R0+_!ddT@l>=?VpBnFnkL!#I>s0^Qa^0nktTdl1hXE|TTs$z9PO}@^a zdJnMdhN)hC@gVd#t{FJ=L?fsL(u<Q-$4F=6@C-c^g44NdWy_U{CE+soKV4S)Rb?eg z8q{$@q-NV)Ch4CnE%L3>%!vYDzjXvPDAD}SmUuuf(Qopt!_oLXbhTw6*e}USX#jfB zD3|+rI+0II`g`enx8gjbs~bb`ylxu9*Wr2dEH-c6&B?a|PSH%rnQFw@aW9atNV*<X z_$po7jHgzts#nWhi8_X!7(}0{j{X8t+x=$W4#Z|r9H-jV`fk60{uB#R>*Ic7quSi% zD8&Gg=2|ik`80(^f*3pOc~S-8`kf|465Z5anuwe+YOZcYvuvKlzzCnFhdWe2wJb%O zn?}FE$$vedBtLCo^p{shwxlww4D|Mt;dLDk&L5IW6FJiIq0x4(<x-05d_h2a)eh2J zOXe5GU<99C>-N$IE<x#T`hyC#K;h_=MaUNjKO!n!->8+QXu7h*WL4hK8X=>yhKF&x zfwZp}wL}!`movN+HCJ8qW-r~W>9g9YIFL=nxmqVwYw^-}3|-|xsHbk=Ox>h#Vsh7S z@x6rPybLZanp)jz^Lc1Y1vUl@FN|C2a<GUSF{D5xj1VFIC3~^dkRYfRno;o=TqCfZ zx<g$SPtfuuQf2CoDALXLWr94$P47g^kmyr@=+TMxW<j>}M^dmqZccoXjTx@<P%A}$ zt}+_10l#%6I^rcSt!9<9Cp%y)V<^D@ogf*B>pXq*vfdNF<JeN0flkG8ak&J<;kD&B zDPHpRVi*|=@{|z&brn3R#mv^w<|v(cw0T;>*f3QpLj{{pfhEz{(5@6PNVF}!BASOx zM(*$)#5CwhFlxprTX=(%U8|k0r6+(Hlxu;xI)rUQzFe@|&NIkHw#t`*kh0OOogVrA zX~T+POGBIcIszx-Z9wqOVBa)c!oFDuont#^pNyg+=g~bd)cL2-l)U6JP0Pnf9pH%2 zT!yfHio}!7=tKTInt|&ZB<2{DMfy7MK__Qo^U%>6e<rQtbm6g2k!Lev)KbZ+6GEO) zONTHoePTElNL(~aogYoFr5_KDS{6%+Lw^iAA(PHZ&^}>xh4iK=^Er8(n@-oc6l{ty zRQd>)ac&z9fr3`Yu+_d88?tSh<LwPM`MZ|eP7QqJaG55Bo$^$w4J7fY#XtIk0kp6z zws6lo=*|CEwTXPC%7SA+Hro0tnVwLFx;8$TR9tr{9isASuPWpEvLkgJByPMNRMKKZ z3^)+gCJGg5vt$b!v4!>Bj=xG{;B&2q-gb_eb&kKv_j&z7Qi-ibgXjz-F1DApK#FAZ z(jQM{c90lsV#_~f^eWt1vI#vdoQDTqHvtA{&DFI-_G|_xrRgvP>>X%hJF_Erz>qZK z5E|)8Un71QjtYrD*Bxubt&p;Hp&2h$yv)Ii6EAMOtisE>&}%q9vq(Ncpd=W|^{@vl z)+PL$#B7%fFDsvkc!M#c1Pl#wQu%1Bx~$J}Od4Bwtj0~(qj3$xxJw|*`huq<m(gV| zJOqY@EliqYq`L3of8f&nO#^>bI-%fROa_d5F}WA|l`JzGj})F*>gQ_c7FHH^MFJh* zfxLd;fz|!+0fv?};;cxgtDE^+GjPp~BU~vAxM3-?bTZzIws3pG@W(~P;f1ztx(13! z23F+R!X7Z%RaYP2>3L>3IZ}lCZQRd3b8q2EX==^0wy^kX{8~@dWf#=yUKTzMNy{Kl zY{h^p4zIkFLsx2SVl5S_L_NCVXgmEmB<;euHNZp<rC_6g?Od(nqLgZ{H*K`iMc^d+ z$Jeol4&YCLo?xE0g><lpPv~&q_I7Dv8#k|A8s|@Gv^Sf?$8n{+HLbEEZC)j*wvdS9 z4ar$NQ7QpH1*o;m1d1W<xV-+6HgoIvN@sDNOx-nfJE;9O5aN=XC3DG2$+XbXY+CPS zJ3d%8R~}R}Hmax3ZxdQ`Sk_)WoankXVcr|kw3bUZNqGz+za#CY$^^7|1RCErjDdb@ z&7*6fE&k~}Q-BVwQ$|M&v3ME*<7vj9*EI2EwCwuYmRSP#7$(b8*jo8mU<{&SBn?K! z%y5~JszKJR&VLk9<LB8jI@mXi?#f|v{S_bl9Nl(hIyW4~#sY2@FlX-yr*79v(_uWw zei5&^yYV{tdAt@qhu6|);JRje?h$s&ewE!OKh18bPqN$09qe}FcDOzBL~3|Cy4u{X zJ?zf!+7I^-c$0_mJ=g^UMQ17p&*-l0#E-l7Oe^C$Q+LBP1AVmA7pLLZguAIS=WS<z zJ)R%-*>=SM2!^`5LHz45Gy~l?-=A5q3Oa8}DFSdn5(6zn7+=QK-rLdk8=r^vOVbs~ zOA{2DEt#sAK<(#olgj?F?25BN?fb{@%$4@ml3t&|fU`59%KTb4EqoU=SXkV5ghbRW zJgz5iF-1N!XGKC=%)kBZZ(qTojs?o+7rylxW^A(<TFuV8<$=)Sli~Fs$I=8yTOtoM zHY7VHKlO^G+1gN$UPi}s1Fz-!0Qc80A5K~fvH`6%kcxuubaXcLwFSQb(2gJ`SOa0{ zrqHurUPk^qBED>N9N9R&FyeHFp3KJYe(O@|dxt5Z@-}06AS|B&T5d3ff^o<KwYi~Y z1az}NjEOF&?3@SEAr<s>?eOPX$mF4y??CpdNC3n~1F#hp2J{XCDnP1jcVRXC5rdS| zvN&zBxovwY78@Od_E9b-SuqI;YTcfO<cbO%0rtRQQx8VHIu$#E-B8Z2*sAXJ?3p}; z*H9n_KO0Yk?zJj|6E~V#7Uw`MCtD6#qoQ(o;>H|IutLJ;)>d=W*uimSj<=f*;k+F> z_IIB_#~ze&F)HP^dtoqqIum`0oh-_3;W}xuvUM#dO&}Y6V2=uZEB)pBXmWJW&w9}u z$fg$u(8L2(4j`)B?I>cQdbfcyaSb>j>vY3k)NLXu-AjLP5v^_nQWyFNgNAGXx^`p| zkmB~w=nsk94HfL~AGS9@;dr2XP~$xR9=HyZj~4*<4GqatI#clx>89mwf`W?c<B}_( zTB0S&&^Pkf(I66lM9(QhaSYw-B~E_iWArfQO$P^>O>=gPC_C%7LkVhG+yM-${c5w| z7?N{fG~b8*OStD*+@gV71MK^so`~^MKf;>9D+$jj#f_XzpKa6VH@HBt&VV6oJ?wck zE^+Pa1OeX6C<neSZtieVU_d4pm}J9kBPeU3@_g{dT2DcRr|!Ucs7HBqy~)0eijT*j zik9Xtpvbpz3PS#}EhlhP3}6(o_;Mu(%h8_y!(CBK*(o&3x}liw9-RZuLFo6p^}dPT z&{m1D&$Gmr=VP1)kgTh%<w^J`R5&I>X@-T4*oM!+3aG4X0W<I<^qc1D0!vtF?&6_< zrXJD>sCAa3r^M0kfOY9lQ_D@Ea&t(12Fkg24Y{RkjXI~y>AX|ENG{U%aIJSAutLjX z<7D3Hh-~PGvbW%3!CYMQD4+7m5H?T{oQvd3q@1T?(UmMWsU9I}RM!g$m8EN{M^RHn zciW4wkHz5fAvSwBJa>KPJ4^^HzU3$c$NmOitGhJ%L^=urcuf?QGHLWde^VJJ-@vde z=fyxRb_4EgqK|!vGI1t&P7G8+;w!B<=5O?o!Hd69W^f)Hm~hdh4vfw&G#1g?Ao6)_ zgKt<u#*j*1sV*aKdVen(s|`L6DMhK!-s`Vimm&r~#|5rbluUyd{0qiRXH%&!DSqYr zuJh17QZDT3Vt3Q7?gF%0z|vJ>sm<m!WO2E9jcRh8fMjQsvM;5`0L|HLi}UhZTU#gK zhaUX{N<%YftUS~(t*txq@Y|;vlh|Rj$1zDBM*KgJ5b9)1^JwoSr5TslqH_S*zx^FW zIXV+PLhH6cJ(q_{n2V-fK(iUAY%zYUi^E{5#~`g;DSfGsMcMklp<WiSmx>7nHZY9# z%O8IglfW)(m%d+GH5m%`k;h-cpz(I8!Ja4IOCH~^zfFKQ@Ky%D0Q6qQT+~s<0%jlI za|OWrBLMF>5kPwx%cF-z()WGAytBu{dd3RK=p>IHhPNA$McwqL06-o;4$sUqFYI(v zg(aOxyveLE%uoGaFxw_{@XyF0>7}jt(1;24rx7a|{OLc<2OV-dEoXIxwzxZ80tO{) z+Zx*eTp^7i>3~8Opa6X_1%d31aj?M_@*~OVm<*P?RxQY#UK#^-uWKBRnF2x<A<NZ* zG}mhHk{@7m(Oz@o%l^?Xdq%&6M_xjW!)QIKqm@C7iEqlIaa=_z=acX43=b#(8=Q(o zLh1-Qh(=Ho12{o}s3F(=zlK)B3ewqF-yYPY+X2qzC374D(yUswm`0E*VZ@u{r7jlO z#?|4F_w+UTkXMJYPdXdGk-@Qc6RMf}dq6N|vki9oSX;Rc?6fT~*5=b(OkTG(G2q^K zS|4yX^x%MNqL1|^BtBHRmXu=DJbjSOSa)9`ZxH}(W_n5PPE0CkMFD^&MJ=dP-i0<y z+u1Tn4?UaU)<0_RYA4`>Kw5CiMfAFZ(#KBDn+%VZv%K`7Q~Eqqo^SQXqa&pS7AXz7 z5u65e_Br~4k%@x;XI01lhpI20Ojf<)|E_8+Hvs7@=s!`fmW%b0UZChCt;jqRNcMof zSTGFGiU1uA?Zaq|2ek4K(!nCWPbk^=1?=?1_Z+ByJKEvdtbm?Bf*?WXK8>CG_-C4S z75cyia}j;$CQwzKl`D7jI60jA*<yhf6zIexld(nGY4vfWK5L~0V=25NNz^UtIvz(? zs=VXzyD(g$v(kqu6cp=2UnF>f4Jo57srfiem}vDE`t%2JnbgX)I6<=$IR~D#4Qr_( zK5D)v7Zp(kw4fc(16-l_B2*H{d$a$RoOjcwaJ3>N3W?DlVb&9j!b^O(WD8!&?<vmp z)}dg`^XiaVkp)SLOIUTRxAXj*m%fhTQ>W!ViR4_uYie3F!%G{0-|KAsP}2@b$36Be zK6)z}T)j*-%yi5NCL0aye!&+;%9}n-Ol6A!w17xufgT7v1`8vVv-LNl{x(;C`<k-1 z68-Hn{mrSroz>qe^tU(kw<`VZfd00!6uS}=Uc>|-SJ#E)n7qXY+TxnpQFgGV4|=t9 zD;-7iTD_P4{eqsxf*Q80g}gIr=|!;f>l{qbCCfIADHW5lfRmvREjFr<DICTLU5Dk; zMW1LIN&xG=4N=x>@NA;~XtD>t&7ePdi_IpY!fn7+s3PP>U-)CDbA5a8zRNTdCDpf^ zy_ofv=h%ydy(py!0eMlNcA)@C<CRhb<fLq+)WRNc7iPgulu1^^PL!k0RLr>gZYMbA z2*vX1qP#01b7BBTQC)!Ds71uUpO9H!KY@$In4OLr#76{Rm{KEqXXP=mM`G%7&G4lk zUuFX?tBk(b!zO<o@GY-F)@B8i4l-8Vl~fB=N$x)V$uM`%y^^~#2b0`A3Ay{T!K=9& zCzsOcj|b6DNP5J$hKM1_)s!AR1|`=Ep>hMW!8VG-MfKfC;y!+PR95SSNV6cIQveE& zt+l)9!f}Zy?y+qy!JpFVinZ2X>Tq4gji|Pxt@W`E*CnnDO7a`Dbrx+Mj~hK}LavxQ zglS+d+=gDO6*r|6yZX=p>O}|07LHoPeXjTnm#L+>kImQgqEj`zuLvW@y>w$2jzA_- zX{y`(m^^_Ne}u*yP93vljw4#n&CrzHPAQvCW}l|x81*rDbGr@Fc(sAwZ59JRK(=2Z zC|yHpj#`O@DP3PGM^fM!Ak_N!3oI0VHvL(9B5+<ZQPQ3an$N~rqZdSd%K@<SL5#E? zs5GJ1QL9IW;s&z$p(=x#Lzd(f#uhmS)g}Cv$+ftPjh<(_CrsepMXQw~R;U%1S{@<Q zCJe@yguxi&Nkr+IN=`;D>tWYVU9rWQw@Ma&ipNt!ZveGB;}9?wvdm1VwXIrc6{6!o zqt=F80;}$O!`0cF<5EU~PEjG*r;RHbk~FRXe^bD<4i+=x$p5All|cs14=UP(rZ3<k zDjT7hek1)?CtCtDh=I9!!h=qoA|QR+$D->Hn1l}JAUYvppbQ6^b)dlhWC5$g^O_Yn zxR%Z-P98;&t#1@R^8uUBWGA2;w9mxN-CRd%>9u9(O<Qyga;<MUl;ayrVVhEJPnIAi z!{VRR%ka`4<Zzr5a4gwS?4|#T!SY`?j2(XCD|2U+alU(?kisK1ZraZ{5{JhzwtgLr z8oh{Uiml)01~^YGHQ#m>syFH|#1+@(zP=p@1whfFtAK<=d(2h?=bHs3)zUMi`p&;w z{e6k(mNSkIqylA7lcxGPCMk2j!Sb}*=<67_@78YfXt_`0;Dl46K<c6SI_;%gc=>9+ zPWPz^y36BzNOF2TC~JLTXDS=_h9{M46C0e4^`nl$?M>)@#_1pXbxq?K5FbNBn0!$9 z*HAgH#Q3I-we+3&Y{PyzU+0LeuiDQ-m}2WwNT;#W(b*&dtHtU14-<RC#)lS~A=SxJ z>l3NcEs?<#Xx!8Eov$Hf7b3y7bbgJivq}f=rLVFN3?-LPhjX}zSzxc92NSik3o-Q4 zr}Wr3Rsw^DVLH{Hx4fZUxt7Ci_Fy1U9Ht)t^3(7UeGLHXiVf+u(bbDi+W@eg{_03_ zsvlwZ0RYA!4V<Z~LO;Q~zpKy59mGp5i8(sfizGd<^RAP33^jelbgXwjMJW2eK-Jo` z&^~8A>*bC<771DhM9^k6Q2;oe+*qI3CS{O#+$~4SN{o?h#cYezm$p-hO;S~P;**ES zq54tV<Buno%}7;=@rbyu%;NEi`yNiSovIC02zkN&4U<T-iBy>!mzpxja>01kG1!!O zhZ3IUc(;i%s$Wr@UY>u*Ck%k(u~?U#xLV}KbBBflTw=D@-NVr=DvO}PCm(L>qBpSV zbo6|d0bVz<tzP;Ux4sYrUmV0)5TR2CPAFZ5<O<BFm>4~1MBg!Gu$^M-H>~NS!nJJS zZ|4A`Z5H57YtKWETanA1o1nJwj44h;)2|HpqCYDEnOO(0?Y`_4knK90N!*1xqdlo7 zy>!*rx_PM2#1QYwol<@ob7#phkKHcikTc&sXHp_2<NJ;`n!fmM*knB9II>=_+hv|a z5~~xLKzbN%5?f_)23i?Rl}#Ad2RQY7&JsY8e!vE-Rcdt%1_^b^DpJKOmjp404k^j@ zLB*tWEnZI=FFD?8F8J<I6WOv-S#1~K1N%G~Ki^^eD<I@Jz4;?jA17e>tuFl`kWkL( ztXz!(A8jbzk$m5V?@LO5lzb21`~1?MB;VQ51~-+4lJAe<`;^irlJAe>drs+(@jV^h z+t8xgu-Y$Zr|Z-$tE1`I$Qtc5amDJ?%2hBTt!PY+Ll`nw4CLNbf)^)VDrS|9I;w(X zBeA`9H!q3gtMB%kjIyAFO^%MH3($09wb0;*tWU+yDJV8t5tc#U|B87RR$mn|!=3LB z$19wHQBN7n+PYZECGGx{y26Mw9sUdOe|2F*uAu8L;^ZsaUMjQWRqn~pgMm*^^O z<4SUx?KC94N{2wwqW6+^g^E&%Ler$eDsZ-ccs4ohlpLolXZ1nmKMx{$JMj`7e-PWe z6ED%sgV^ewcu6c>y6O0@(EjPFvxSxBF5rwakZN~z$>}f<{QY%Jv%9*{L+I#2pC*j) zg@b~W35}Cdl|f#fMD7MI`m?%l6{O2fa`$Sr`b6i#)!P}T3Gz)kH>uU<Nj77sTzoYi zvsa&Qo=B?CBV*OBR4c{^n(KV@9Np5(HY<$s=&+Qj+Q!u$ZCO`cbRtleG@rq!9SPUe z?)fWr0sD3(Vq=IaiB%eLolqC9wuR}1Gf8!f9I^Nc7TC4?%GZ_b)o=Fsuyen6CaLmG zY$x+`FnEI2kKUYE`UMi&j+Rbf`XfRjDE-@-yYL;H7eV&~uUZCfyaJh3BeiQq_(C^- zsZSb+Y?7cZvAA2`&h&PYZ@F#7EXwT$Ws}(`7Z9hV)SCK}iBfLqG`!`MPRCn%Dd+sT zK~AOR%yh?d1$;kjbSBp3Y~kUV%2ZkfZkCr6;ht3(QSbm2WY6cIBT7mo!$L1rFr*ky z>}pF3gyqlu{K8t=au(USu1+n*9joB|y`h)jiQeI*OEC=XOnJ-v(mLrDzrjP7o@F!2 zIEXFrdfasLP2aM(rn8kV3yfjLi#Rj?ipI*LMvyUOCO&e?b>MkDKRlgU2ht95iS^UJ zpd8H1V^Cn2cI!HpRGU4vuvbkde<#aKoj83AoGwTiD6B4lSH}T&x6Gd|n{8pcEB=S+ z;*;S@w5dz9^x!E;XiIBNxkFuMYMUay-0rTVQ$EuBXPlOfdqF|>R-4+=G?%H>Pze=4 zb%Arztx9v8lV4~Vv`VQhgBkL#pd`NI4vlRchL(we9zdflt;8zvB^h#BW%S~b=*R2> z&a$#St{Hgx4kBpQ47PLSwxiLM%CeUEE2T?_?X~?81DI;KBy9>+8d{2{!+6je&9;SY z=b#yQT%Id_vL|>{8oP*9p0e@|XwXslD{Kq&p|p(QC;$p~m1IZ@gXg4D@nF~uz%!`* zL%osNZE4Uvy>VLlNK2#HbbJED2p{0nGE-%b7lRQ_N$DLa98wH3n0s;<-wO>Z5LU5r znqhc>%EXRru}?-O1Rgw0!O&y|yAK4x>uH_5mc_B4xxN$kRjWm_pmXt95olX+o@`X* zI9V1)Q`h4OHTTg>jOTS>fMF@rx?ugCq`D7$q4jr=Smd*m5HC6+O}DwJ@-8z_9T%nR z6WNVJwO%aX=r_p%s&?U?YnAQ42A>jR5k~?EcCG`&5PuMvJvhZ{JBRTS@=e;i7~CY8 zI#Ursj}p;mo|M=oIn$rAd>4L*rs^et*Av76662xttZV?svsg*z8v9f!$LU;S&yz3d zx4)C3m!K$*$5YtpIT>@hYds#-)u+9yx?(_;o89z<cbHj<N5D+;fPWqX!?_QjaPk3F zSe)*E7a?HSu8-Ghxi6yI&>mf>#8M<48t|BwyPM5CIxdO<3=t}xB4uKL#UNh#3p<={ zsEgk54ikJp*W}f5pNAYQatP}4*3uXBBMuTDFmf|VHWV<>-oTqa+`8n}a`)qG2}Ud7 zF;}SLoVzeAYWM&WGqVVl2VzWcJhiVa`PBKRKjBftj!r2%*e+!ZoY;kt2+>tu>_;v4 zIMyl0ZE{S@J%U=USD(qi`(bv+vs1L(Fv7X|Y_48guVX+?KX^Bk9L)+|l+#H^q|2Pu ztFqAOfp^s+te~NB#fVjbfyyG~PbKFJP&c!1{>_4eZL(;}r=Ok#jjD(BBM5!yWFjyu zdQEaCG|_ivfM+fqtT6COm$RY1U2pLbgYBq2brVoVA6SO%=fws5K!ly*RM2KnBDl`E zL{E^vWQPzZ;;)kDFB;g9O^E}Wlt|*ZCQ8cUkn`3+w^Z-~JFsco3ustLDbY7WWq3*+ zUl?f*l?@F)eKY(NPdp8;aN~@M?Hrh_X2(U@;uzdu)=z{<QS*SAnFq+;jf$XQFpRc! z!z9{y0wa)y&jNCvNW>pSy|_uQx|gos&%&wg%PnH?87N~7aamqLH*}37vf(z6T@h-^ zs`Yqj@gC;IQRxKs#|=pA2jP)$`og%rsLr?$a^30}+&G&q!rG?~*M914Ry)9pfk!l5 z1*}^4P0#l*geXnNKCP3<GlQ8q3T7g%?^c^?JhfiGAyjRt@u>ACZ5^-WqO3wji@n|? z1{?Iaf5#ir0o4$FC8-qtRSe>W0u(pgLgE+{A8&*^HtW7Wux9n#oeUMfDs*TwJA}hB zA}firg68dGu}#7ikxVmjgXcdCU}Em<D~WS|j(hQV)2y&O3p&}1#}8t#BRPZTfWf_& zv=6L?^dqDL@5YnSh48!*Qt%ixfH~Q7^4!VKPoBv-D)$XsB)tG-0f>qM^T4OZlTA4e zfZHfEi4K6>kg=o?K1{l&z+yWGPXaud2HqbyqrA_NW8^eBi}f@dGIPqz77XQQ=Z|`8 zp)SPCf~PVrTk5W<@mU`n-ZPOr$rFlOt<Gc;P*E@k+#`UVZJS8enUtX+@DJ}Pn5$eK z0-g8w4L616ZV0XXgPCNhRVL+8o|BKWC<9V1(3D#^j-6_XFBW)-zO?!YCT7avyhaR| zMR_daahZ;V=t(wq0%Mh6J3@cGR|5+B^0alp4`ywhh0fQ*3+ovSG(%0<kCNNI42luR z_1eSv+QWI;!?S2^0uU^=W!_p3`5cFJ+bNt-(@w5n(e<B`uSmpippA1-|G?Ly@LkhB zWs9P<cxsEU6X;Sye^$eB%nx5i))oj$Yc#3ALiZ#NcsV3+ev_{iZQX5eqOIGFbMTHL z7Kb|B&(p(yPOJ?8LuOqWhMJu72)&65eLQ{b^vL=d6rv1ui9bN^-cw6TSF;E()btoK zybaf$rqH*e$(g0<eaL@1QTM~3DCY$GB_4DEM%}ri`M4b`%S%0pSl#hpo*F9kxY?1I z{r51QLB7dvYOtrWXxCh1>|ggKtZ6`~=TXFZ$#L9mLl?4JBWYg|wRq{H2u5wkM<S9N zm=mxY3FAA?=C`5r9GnN8glO~}M-Gwks6ms5-v2fx?Zb^*dRVU*{E0!|G1$$>(1uf+ zJl%L&U)A!^+gMn;s|(|Ae~A`=PVq%(80V!Y4dYadaW3-G&oXq%!=QH^DUVlygPKA* z@R+S`IuG=`hklCdZLTiJZAxLxi6;zI!N8Vg>#tO0({PkA&f1NH2kT{8uP*b`85~A| zbkW!Jy=ciEzlqtVU7UQ&s4l=lJtJEu{>=8-MaKehfN0R@-6t7aG<OFzG58u<-+DCi zY%k?6vfdGcr|@8!J;%WBZ0?fRj%>JSJca~Ii#B3j97*UCI*{bkJ1Y7x!{pltfQRi( zFv46f{l(vPHkb;%vEfZGCHPLukB#&<?L3AvcXQy{gIgCM|9Cq6*y!CKr;f7SAEYyS zDlx5w2CU<a4YT}Rwo}V7DBQe0pZ*QN5=W(B(NsQ~9Qez`|Ee~F0{aS&D9mD~bK$N+ zat05)qoHqfZwmY<i{pd!=E94>+{V9p=<?s`LCKvXaR%UC1H0^83zzR6wHS{?$B<=0 zq1&|WGM>EOl%a$zVCqJPeMT4^Fw(iqjAL~z87h1PI3gbTQY3Fbc$CMZ6}B5HkcD8( z$XTRT$HBW0gQwwxCzO8+8K*AmBi^{WEJl{~!SL39$RJCR%lw_n<pmpz{ss4vyLiW4 zf_w)qZ?!0wt?MU}W2d8`#VP#2>1iwXR}5vyGXQ~U6QlW|JG+LzJhLC;PT*r2eyrn3 zy@_}PvVteoabtC#dM}S26<n7Jsz(5{a3y0@t@SbGV}n}XCkCIu*c3SiDUm_mzW{jh zt_H^k8&b#z#_E`!3$i=jg_L(4?@JAMp4-E`<6%K|9Ar2TTGvk?Z=C*O;N58w;Jet! z%hM34TcX#5?&@Ocdvt8^6T|mmo|PhyMLZq}$Vw!O1a*l3M2;HKzijRU56kg>Vlk(> zH)J|V>Hu26^&x;>0#^a9jwOP;stt(JS}hJmTHyhSIJ2c$<m4Q3jFI(p6e`V_$etN> zEB04p<VCM%KxQE8D5yFf-v7wnKMw^M-Wgz(#nm*mVon^)DoqfB7jeAY%#3e+0*GX9 z#!a<Fui`Q)Zr6!?C>pCwe?r^AQv(hP`_8f?%Fb{L?3Fmp`bXvY*27$~Tu2?ND%T&Y z%q@?Ub8?2ViXUPr$|gaRA3(W<;qhIT1f%4YTd)#rj^BXINiOnx;gQhdF&An=RhAkz z{aYb3E^&uE19hY#>;_)>o?v0pu}fn6jD=m8u9hN-Y<_U(CU^qx4Kvk(@762NRl?@) zhAnQb2=mpB)+UZlcHq?}B^7g-^<2A{@bz1a4BmIR3=f{WLbq1pu8B@R@8hg&^4g5Y z0iI!BaDUZUZG*XXbZeu(P?iXqI$zzwYpGZTsWgMhOgfTlt~E7Ghy}2?A2x%}88sTi z<-u_CCDQ(2m`QP94oWfbzbkgH>J(HbuY`p=<vu@82AR(l`AjrEV)9{+CXm6{3Y_b~ z;Qr9hxOJcemc<>HH<puQg>OfCOreG5GNme}DXkZ9e^O{i9B!%^?q7oTbjEw})y;Rd zP<X(XRIF!_{06wzU?ZnuWJu_4lUl{AWkTpqco5VwURnLi3KmZC>MxOB+A7Q2jtoTt zVT|BkQZ5@aHt~$bKqNmOI5o{JkoM7W{3czSq3dC;#TAJ63Tr^4O^AFhl4DnCv_5io z9EPbyj;}(S?Qt?ytu}-IEB<g9eC=-sHHRCnjc36Gf5O4`vc@Bqc+i0{<<f!;Y5oOu zI9=YzI~oPKT-R@xtn05qIg5oB8<>LIfeP+gUBOLNB3+|DKC|O09e1|?rK$M9ldXdK z2pH<-!nX|7ah#74fA|{|#O63|snPhmLyK>TD;iUGjikOWls~A}n?XTh{(7@oC#ZMv zs8Q|`;OeLo<l45y>7Yf%p%zK!70tRnzomH`YLT}`YmrdJjtcU2)XKh@Lw8@LJOT`9 zNKVSRnN4lQLlw8iRY6^Bh=YDxh7(Wf9dWhd)>uyo+B@N%VvGk4;o3Rq^6R1GB?k4b zcxa_94m}ka;+Mea0SU?wYf?kMD-IpNl%pKS&&dx!9LL?m1IiE%C~twvlhTs(&KVg{ zmaqXO?H>{w1{9$8My6~x3Q#KQTiI-s<EoC&aD~-<A=6jn5hNvsB}3l3;3_0WHXv(S zQaPvbh){k)IluK9Bhi;gIXffkTS!)>lb3Xj`uNB&S(l6=tIMn!)r!10+u}FE;Fg_C z0aOd1l8mXSVU)-O<-=YWpn*F*i+~5cwar<|TiWR_l<Jrk%?7qpj%l|3)1Tuooz3*# zS+EN{JaNoe7Mn4Y^`4xmv|H4A!EvUEI?l*j$z&|}e}Fj)FlXfzQE-U_ZdA@*$aza5 zXT}xZ&ce5|axQ%i!~M^w%woprtPC_G=sdRd?=G`yAmwJISd%_cCo?3=&BP2UN4X4k z582KrL^kiJm{E=Rye(hP0+V#YRaFps63-mX6(>K!<s>D-M?XVt^KHpryraUV&3H>5 zn<y9x^;;W3ZysG3JPLXfK<>H3lgvV}d%jAr1Bm+;<Os)r7+`+joxI~tL0$>6#JI8f zTJkmuN<6f=7<f*tzc6EEYlRB`heX*%sxQF6KP@Xd8>B}E+s=kW9eUctArW%OS-7B4 zePP;Ne8NzOK|KQbS6+RDhYHERqGAvOA!artIrC0I1%Mg^P-}z)UJW{DW(`GvE0H;y zXS6hDadH4dK)k;eV?B_XFEbpYm^7ZTxwQg~1^~$(VbF|6(dG)h+L~ZcW)z+NBI9;Y zWWl3SmYS(99)m&;x=`*lo<zBZq+3C(`$$gc5raBEcvQZ|F&W2MAUD`r%pQ=_m6@2N zAHE*CgCAjX76T1qukwZleo8*wdr;HZ9?HZy7^Mf9-JI1Py`#U<q)4}W>8y5Kr8q+m z&%%(6KfH<?iKEvg&ZlWkg_3}oEAwI4&2-bZBIrA8$yc|S*x<o7^BqBl?q^tXbvLf@ z;<?<=(NBe8K%Pu*J(yfu(>HVe@qoS_aYT!n@CZc7goT02`)>f)?xjC{PWR`$Y*l)+ zZ_GA?yu*&s?0#<8E#BXK4K%FyhS6Jzh|A=)^{c_TpWw+G#q2r<u6EhXq^Bnhyu%Lp zI=cG+b6kITV0d1Uk!k!ejy(s{n6uq1kj_XfHIz7HB~AZP0b^&|@`99eCkEBMv!M9a zXRm{6%U}vFP#EMnFbEBt#5IL$=>jMbFq%VWTvgR?Uu9MGltVo%dT0zD!mH09-9J%3 z+Zi6;{ap9z0?&dllC=JcbiPFl?7)o&QJi^quC*PtS6M>Ae850_GU6s_+T3(CWc>v9 zl656EjjRHAfMcnW5I83W+_+&W_dME#&oXMU0&HP5Sc3F&nZ?KNNX3IhDn7vzw6J{v z@GZZC8@jRxYqc%haw!wnMuJ!@0ir0Iia9B_%{{kuSzl}Q*Ld=cKLt-firyt2jJWB0 z7j(~Y9tmNcg>M+E&7i9tN5sc}gQiwWDCqnI&mW^Dv-F=Di6u_ME7uqz(Mf)TM+XAe zeiTfI*OzepsiEq=8owbFLYNx2wila~$gR&J>Hz{PA%mX_vDUi1h$9JNqX-A&(*t{u zaM$Dcb}TaqAtM<h_Pr&HT*zGF_FOy%?f|x*69c&0bGS^vVN{_VuD<Lm3O<47*BwAe zgSh=|c+rAbzQ)RB^SmVni7!c!r-}P)wxes5As}_6yj)?(q^NtbeR?-10GDbkjn2f= z@YgsPk;I@6>tThaB=D53_h&D6tL!_C6^sUUFg%JG9&^|U9A-PKPkihWIMhAYVQhL% z+c+Jj^&W99$x$oB;+`BM@)xoIurl!HYsjp+6ta#0jtk;KOoF?rfxE0m{9O>8lSl}Y zmET}hTp{C)P_PQFj%xFIJ9(;vVT9MVv1KinGi9@mUk8`%)VsFToOsxFfc5k^j%zwZ z&gi8Sp21$3jlJU0Q*<dA>5V%Wz6fDpO>?x1+vl+~thA7|!~rt#815wR!EHafV1USr z!IL-*gH5VV8Qr7`)})eu)TB!C6#J_8rMPcwS=kx|nl)Zw%}ViSuUMnzIh_itJ|%Hm zqne%0ZH#Azuzh>~`S$&b;oI%I*N|lGQSDoR?Ze+XWDVMkAm45X%4yXlO>4lml;~}N zMi}<ugYhlalpMVc#ts9M7ySw?Fm~uI*bQp0=`{@P^DV=lcnkGLL0&^4EVnSi&WUuB zh}-MKt#Jv#J>&R54E!u1WURTQy|BX_3KU`He<Z+?$+#B*9Up9cBWlv;o^;NKl$E1f zuM0GzK_(uzwgBn~VOIRP18pyYXmf^(&DDvi{058S^t@M=uN=TMPF|}VU@+2+{?rCL zlTg`0$L~w7cF`&Oa3qQ@NJ#H=oV<<Rl3*gH@12sU%Ti16HOzM|pzpqn`SUUV2k@v^ z*&@A(FhmL&6E&`2=QlM_-!It?H?xo8a7|xkE6BL$Hi`aP&r5&s@^HXz!g+;(ymNT{ zZ5n+90MugII1Hx`>7VV@gJq7gpB@V3vlTeftDj3ovc!XnZ{d{>4bp3FYA?`_9wEm5 ziaESN8b7l3a#JjE6nA%YJdN)irVP(2Mcd-)Npc^2VLv;h6tFWv%swH8@&6-j8%O`J zcXXTn1KV`Y(LUU!Yv_-M0oVj1y(ZC^6MADxu5645jmcq+>2TAvGxWnXNP2%o8Z_n> z#HDLG3k%KdPHb68a09f;sMdGe>$|0i^p?GBo24pH%Lsb^pn*Twn`q##XAB=dqwjyk z-~Gs^@9r6%7G=gn!=B`{s2?XK9T(+m=zm`YGf#(!rrKqp3E5~q3pwwl-e(Z0zEGuR zuM?#FD!WVAm?^$&?ytz4%*(y_8%NOY!mpN)j?s&N!?x$}VM)uh(Z}C|--RIwV7B3p z#o%(L8Grr)2K=7SK(8dvPnbe8_FS=g`Qtw%PfrM=9)i4l>y+qGwj??zPidV(&-~$v z4Eoxhr3ZfrjjeZHpvo^2>z#s}3-VU0VVL@^O#O#g@VBazW{ZYic!w;uiLHWj;k-Ab zsdvg3qt^_-3U^AWTD3*~0#Puw<~bdw#UL&L7Ei^K%Pj`ED71-%WDhk>3Arw~i7PI? z%(>~D*Ak(%f>s^3%klLe;SbKlcY|}@&goUl_u}t8#S9zfg*K-Rsm&HBW13!ug_UvP z;7A!3yKI3nTqg2%VYLPKlk=@pqkQYiG_ANkhQa!MxOnP!FK53o0|eUl-&d^2I{!Pd zB0B<1I-;w|k;1o>ODUVHLz@yPOc{;BgWpC0nqk>(kn&rn(tDsxa>Reba@Bz4PQc(0 z+-{vSx|S<`VaA2Qq+=B-Y%BiDUpNl8BW?mVANhe4%cw2ZUR(qJ%04-O9#FBzgR%3z z)t@`{9}@IvxxI<qUur3WL~}<4hIFQ467GY8p4&1VPuFmn7ZvA8g46Ma+^-x3*02;t zsvIs$v%#slEIR`%ek4T<yoik1E(V@Q7QuiLT$y4&gJhKjl7_!3<Fb;X3oPQxUSEJ= zAr^3WP?Gr9Su~&~TlMG@G4KQ=Y$?~*GX|jirrSdm3xrbqY2c0H=np}($zeykl;6o6 zKMt0|7&kR_<945RDWj7^8Yy8xb@ieC=(E@NiGlgJnL(5L^rdV3bqTA!6Xs*o8%4b= zo<#>>A$ISQBjA8L-q5#x54cQNwRF9`K3@#5t+Cbl;uHUlu?liNNY3b-Jv;FG8(Un7 z<rqZY9;(Plpg*3z4eE~cffV~Y(-3{7Lx^7ErgwgPbqh!@M(hJ%84GC{sUz8k(>)&i z^(fxsiKgj@AfN{u$Hslt74zy_s39-?FFmTLuBVQ5O`lrdi#n0@jzx6|S9BHoX)7yR z@4JBej?o94hJEa^ih*-X^<$I)5EJ{2&bPAVKA<_Y;LoIpGJ*oN-AS^r;2<cbzh@uh z-cqW>x;7R=Ba>8lWg1W=?iiH*(wWYv(#fbY_oHu7C5FGz3xIo|v7TBQ{;_^GtsJXm zz1w$Xjl8WtIunQ!azQKd+_gv?`2r11#XY2|+zVI_d@!kh24trp+|U=jCP~VXC<iT< zGXDp7Ny<Q4#(s~}NUmPM%w%`vVUX%4EU6>(Ko`boqXj{)`|0ojkRyk_O#3N@D9wUL zO)g;ATu~dHg-2!`w*I3iiJF=bLEqU5qNhvyC1~b6j61URS9+POd$rtHQp}4GFgo|D z_^(zy{;M@9zj)jM%5Nu^kYCCr<TnqPBAqcs-iZ8Kv2)E#eoZ6to0pVd{5`KNCEK)K zP20M0?r7OPHTB!F>+bqiAD;=HlO7E53*3IrLqFKTdbrk;_}w)Fs|h!_AcJ{W|HO25 z_t2x4buN#}wtf^2hCHx${uM33U-c?W{9Yup3>P|}7pEXon}MlK*ckfYWc`=?@<0U7 ztH=nWI0AYtw~wvy!q;>!{q(=sZspJe7lylk)|3CB`=>vN-Cw}E|66@Op2b7t|D(S5 zCiZ7;!?Ah;PdEG*9>gNhhuGaj*RZ>pHn6*edf7dXF2Vb4bRm1S(go~ZKyPRFS@dRh zpG~i0_c?SbyU(Q)*gc<$>|RXM*}a5n|A`nnwGB?%_n(+lK`*d-742sC#q>P8yXl|V z{T_Op-IvqD?7ot|%I>S^9(G?%Uu1V5eV*Od(r4Ix9etABCAyv6H_-sQZ>F0QD7=gl z_Vgi4eHkZU>HX{xPm!R@+2eK=)WIH6DbqXH<CFM!JA1@mA)vF_BL;WTY3%ViHlf8H z@%OfA7JJ-{j~uIecEc414oXEN&5_DZP5?ddm*27dt-K?3aU$i7|Es-k0f@3n8-C{k zj5s=DqM@RWiDqF&p$3f9APizTI^1Oyb%a5fxHY`5ml7QuXc^vSGb_`!t;{a=ZQIvg z^0M7PT=2Gv=@u1RSZuz0!&kTxU?KBA&pGc5Gbpa#zkT2C|NT4oc;5G1pL2Q7d7g8g z^E||7y+S+BIGJ8;KZHI*GTFi>DYXIVVwz`YE^2MSa?z)n`h;i$R*F95)F)IMutxMT zQJ*kvK%VHcjQVJ_0R^H@9K|MFJFiH@Cc+mRpf-p+EXud?6-w<78zu>RUMFOuBa+hl zx4-U@l3TzN@>E_E>iU##j-JTM7cS#a^z@tB(KW#flYkhME#oc$^{K826@G%*5bJsu zU2pr{%E49;rLW<KM>>m{T4^w92s|uN{Zbz8x`?7Y$K2p=ub0#YlAuP3YOg%J{2RU= z=F3&S`?)YH`jO5ziKXGE>Z#PpeSVe7*ypL#pFEWFaXv$>Jxd<X5V99(-e4ed7ec+J zK)qZOyswI7J~XeiCKRg76M9tz<fp}mB<J#ujVQ=BMM&K@*bdt~SEFd7pBTh%wm*Jv zzvjU&($nY@pwZ6|!SJNmhQWrOAY6QHuz>n&Tz@(#n%-9Q9ws823wUX)gqs76Iy2TJ z;bsK4vy<xub!@zpn*g3;VofqmZLgQx56gqwxes}FR9(aNNp)x1>~)fc-or%VEVNb% zeFfQEfDVF0t-XhlkYr!Z=OF;|KLx&xnExLj|M%?mQdf-!AJkca>=!E5t5ERu{25uJ zb^yMZKGim)C@U`$OQ=&lmQcrMW!f*O>|d+21FKeZidCy~I%ZGwnh+gV-yyYsDYIWz zSZ}}diaY%2^e1%8cE0KN7;5j3Tb1@Une3=Lyt-h!j&X-O^DrD-0baLng#TU!I0`Tw zn>VO7Nm8>&Qkx`&d}|g-?Ts>f6UqIgH+LA9-nb-|#NH^iH%T$ptAjYuI52P#!zKxa z*7)Y}065VAkpQy*GytIhY5>I(Xm$N(?T*C9+rbsU6~OHTw-ekhaJ#_m2DcmBK5+ZM z?FYBtDM$W>k#))X#KL$tR=NmaBfw+mqlb1p*03Eh^nIqa7k%)%^lcGn4o_Ssdsjam zZHt`{KG+GPu3UPhAIk08f#vpo0xkXG4pLuFpIoMW5`lfv{RHU~jJ#bA|IGq00@NnS zrk|-<B(r}*TJKxZdcX0>8gUcj4EEJG5R>#mjZe(&KJg&ZV4r;>vww>ytG3}K0{^^U z2Imcc-vPV}a0K8az&U^mJ4oMzL0gA`8wzeHxFO(%fU5>q4XzSgCAbQ372wLjmHYP% zZ6oGM=x=~ffZ0#_^i7fsu=eQ-^6uXczJ7jv=kxvF*nG>o$waI4OtcrBNp7E+HYEiQ zjUXP-UBD-1Wdc<ygp7giJPqVr6E{XE-0Rt@;hXr6UH1c_<23ZAkP89hnDc~UgNS1( zZHfwEjlzn(NQ0jyYWhWk)N~`snHVXzX|AA(?u>pEp0R`!%)-s9Wst&t%8iy0xi)bZ zD@<Va(jB_LyyV59k^iWp`RXmYk6t2Mbnm|8zeSh$65aJVdi^arZl>@w&ESzC8OUe` z_Tz5;uxo`;C{z1y<c0akQNK<|Kea>O>d0twO%(3%<|fR0iEih$5)E6P9WSB<Ro}{I zv<W+25;whmrS@)mQ9F1<+D4f0GA{WBg(Dt!5=Pk<D-})gp%~;E121xCd<X=A7tYvx zyuxmhGY*N*Zd7KLu=WtWgJzH0P7YFARMkIYP@t$AZ*n~+N;|5mZXZ;E(S3=iz(6)T zM1t4--Z%(#l83jW|6a_-{Si<))U%m*J|%i?qn^Jbp1VZP;)8f|^+h5o#)cF;N3%By z8N~lN@ZW>~0p+qRW->-&7a4`$9>i<m_{Mh$uO1{?r}}{0nqBQ?XAv%9g458KVo^E` zohcTH(fu)a1@`E>CESQggBtarx?=V`Me~g`3b_aAN!$!nozo8wVS9Gbz_CUlNel$` zpr3@h=V3L4IikPXhkt+wJ~zTC5rDThPHmoIzbxINv|pBSA$!marE3;(9HYp~B;lqP z{SQQ+eZh0~O2vhf@vDe=k=!26!IR}LJSWR7FZiD<ukogIrFm2VM_c4V#%mr4;Sh3B z2PK5rk$ic-{hJY}+D^uE-ZN$tZ%27qb(&X<Onx4jWxi3k`~uO3gHi@uJLEh4RdQ!l zDm?D+o<<KfA<+}C9q3X?CabUn3sJb0CItV1Xc$pg#tTY#%%)L*Yo#Y+{~h)tIJr|V zcZdeOyjCQL^(J1|Z!uC+J=ClP8o7ww=6NHAEe7peSQu(%VjRQh9B;Q1D;Q|@;u?k} zEHdFrt=moKXZYqai1@r>H?iC+WZuFsIi5@7L*@PNCRY)X`=gEuzo{nj{%YPhE0s5f zrwSps!X8mvCGL-x7!t$P8Ai)MfqM7Qy9-8VVz`{%eTP`H@a_WMT5z+m_RZn5-E5$i z4WGUK4(HtUyz;k>CE-fEwy^oPa)!H^-djlgtwLDLh!3bM+I0ZY7B91l7Z;-H@_6!I zxk-*VaB4n9$)_q~QWRVOsaiu?$~#X%Z@Wf{4`{0%rK1w$jt7+)DaPg5IoT@?%NcjG zcfP{CG6n8tzg<O+V)14WUe%I1BDKBTY~jpv{xTlf&yml-R?)}!?7()k;4XSa2rPgV zA=1sq;Q#Qg4ZNW<t#%69;MpRvAEJh^Z^qqU)&2&H!YG&z;h8`uHHQ5Jx%jfbL3KdB z(B6iVZ$RzTMXn~>4|i~Zc0;Jt6=3@zf|G$KuMdHV^05cR{nM(2<RM)3c#MSD@VMRf zLnJ$*Ngsmt(p+<EgBEOLM=e-Ryih&7YZ^SD=`L5Wy-&@Jh3MR95=*{dIVWF)Mf@7k z!THb~^<gg;qS}8#bwIhar(Vt~RPUd#cSO1-_14RvJoc{I6SfYM?eYZh-ypMhXzcaJ zw1$xK34pXBM&EC}m6L0aub&35a$@{<I<F61wok!ni2h<3Ffq7TxK{8v{i=V@36Xu` z$mz$b^Y7!$t9^2A(mn|nXK$0TBPuIUuYzsE2&iR54A;MYrV#max4TClDxnH*SZJz# zw@U>+QVX*jCNo(h5m`Z_ds0U<`m?g$oPNI!<n{foP*0r5A$>b|J0Hj(@1z_PfQHGr zpn{E)V8BU?!Y{9gmzz%d|9%91W%H=v`4#!|!|*GizaX@6$n%t6*#)oLXTg8z02_aC zgZv8S{<rxRg2S-<ikQa_P^JLT2G9b~3~&^n4&dM~ek^_k3*+5b=`es<01KY~pWs(s ze8J1F7+)BcUwQd?(kB>s`|sen1%P?sZ}2NGzHp=b3d#4s#IJ~Xr-QQ+AP=AjfCbnL zPzCVJ3qKaWLfhyq`2QflQGnJLek6XyyE&GXDZD2aEtDAd5RPB~sIwj$?)pi%k@f*8 z7uKUol(6H0wAg|2NfN$KaLB1KG&U?#sF2emX2p4O#2idH4tkW3DSU#`Iae_p*^NM^ zqdoy;mhgw2c>fH@Bto%K%?wCoo!#jp6yV%RSq|$?-vjiYUCnXi?IaAt{X6{`h7X^< zVWEI<xj!#48YzSmqBbCxO8EBa>m8D>-6`@5q*(?Vnom;hv$Iq7DcFg)wLEsW+g+Kj z>?LX&vK@hFCOb*KYRI){LbL(l8Z+-L+)rF)k7K9AGXq?J@Fgr&d+>!EAi=r=i&I&q z)6j)tW(GwH^hXHok9GDqOf2O-9XzHu?I0OuW?BMJ9t@?z6vj;VIQ4m=#FEIhj3T*T zcC#;KIy1UbjTkY-Jx)n-Wu5t`q=L$FJhvJ5;+q06OL8Ipt05PMwU^j&F*#~h9X$oL zTjO2ZfT&~n4n<TQQs{(r?Go}fd#(d>Q)#52eAWKZ5Y1QpHEOCmju*UD`vZ-_S4YI- z;0jclUGoN+KqOmc#2D0@HBleN<S0~6A5MktNXfK}AXj!f2{#O}fgCcZwIqpE6TM2p zPU3C&LazUs$z5J@M$nOs-TVEMo}0(M$lw@^C8~r-Nx0l8AZv@nzcf`fMsoe$E12M6 zOwSF7h68-ozZ554zCJpsuD5ymQU1sbrpxWt9<>JZ_1RDHj6)vYa0hai)r_mdYw;wj zx^8ne{RGNW$OtDx+aoTbf-!Di0ONR`sQ3$&g>zHv0>i4&9x*pI&C=~sq*=am$<i!6 z?s1{WWCS_F0%0|GjTf%$@bb$6PkID<yau4?2CMc&X4d8v+EE0DG`=3c_>0a3R6sRI zGz!?*qk|7>9?FJCdUTLYjyS=p7qg1R!(d@o215I~#t9n+vDgZaj!>$wVQ_C9XNpiE zcL$v*l6Uyb6rRibw}_2&jSKp+dPI&37jD@>q;M5G{BQSff5OYpNqNzDObyOc5fITM zk<0h`nLiYj@kD(Vvr56u2cB#BZmOFB-zN^59xOd1YC}Vz9Cwn!GpR%pae;PrGRd4u z`HJ(XGcj6eq=sy8+HpOB+~8+`2b2=J%k5(i=jy6D6D62dwEPoVun((|_k<`i?MAaq zBZdEXhTg>`SBFqk5BzrTqP(l4qQ&mkshoHvgrEB!W{c-%c;^B4iR8p5fGB?JQrS^B zt|tlFcBOrbg5hESLnCGs^;rTm1@Q|TYzwjpfCUFQa#~$7Xbq%xg;_*Mr4?8p=PG3y ztvF`NPD-OSu{Y{m+xUtWo@;{w#v%3%B*E8>5Y0Z?9YGPT9|(ljYzvTe0k>_hXm@j) z7Ij3pshv;Z@f~iDQgqhjRKDkDSCb!8d6-n{aQV$cY-`%<bdbpP=lTl)j*50V7EasG zPpv=i>9EE`g<O&)G+v?2D!<m^F=IR4vmPmA?Q{<s7*Gx_1=MnDfn1Hk5en3$=^ocl zCA)|bu3!un)}V<pdQ2+W;B!nm*H<JRX1`E}z6DsLG>5*KXEGi7Rv0W<(EWy!j*2!% z#W}5Bsj6B{_MA}9ztbS3pbG2BbW&qi*((GIw;Yvz;&g`FJr58sJ<qi^>CfTF2c{Nh zx)x#Pdqg2ilD2otipl|UcAe%-oG+eT-zg9qgGYd%h!)ST@5lm1vlWu!k+i~nmPZ{P zz|(f1V5?Esh@$@x-B%_BW!fs*V=CI&7N>kZiX*fO0}qj1gG^Lf?3*1RyOqy5sr`bT zj0J_IVGNYWqN^VSuW{tG0gp8qUt=oHaUn=Ycw-TK*aevuiLi3JIAj2w2#8`FjHGSC z3*~LXj3>x<)8-lpBht+V@P=lG1ku~@8Ig5pbDHbCN81Jt`^;}WP@u4zN>)GV*vR_q zj!!S6P^#z~<ncXn*-g7yfgdQ>hb$CYK~mRu1i1p8KS#ncUsW0iuv88IWoqERRgt0* zr)6lwDGQA_tp=~sd>#B(Vub(JuYv!zltI8cH0)H0hMhK`VW+KSPI5}@G4HgOhcbOE zJcT(bx&aNMh(^gb?B<W63C`mY$Dt<Z_?v#>&y4(-yPt<e`IP<qR);~*US!8cT*S-r zx4OL+n+!trF?Iu=gLl<rXCuxyGCE}~5y1a;@mwcg(FGAMy^N-y(zK_!dA*<5>(vfJ zyQd}EA<UqVfd{0{XoqhgLf>voO(B-JXbG-~-e%*^03&ee6&~=FkxWq&9#*lN>=Kcs zJeb~$P+jyFF;r8nM>%R$)t`tQ6QOUa%H3`h3YsJQiuV_SoX2~VlXxi$+)3Elu^Z<F zJhNm^5Z*q9Q?H*TlnhDUQ+ri%zR|Ttq@^YUxsgT0Qf1_30!B;p*dftEy;S=dq#KRG zBD{S8_3TpZ528Nvh^7JcBDX=!Du9ZUYrEJ#Msz{$hkSQe35817`<NI`!A%uT*81<F zrc(?_rChhha7wndvO<k-8_urE>F7ZHtb<h1eo7UsLTy1tqeTY)3LqC<!4k3`9(Eoz z3ITE2KnUPWejaij$iN^4K(yuWDWjC}ppQqVaU3cZ!!)Qwj7X>CW}y!Dn0XrTVAF&~ z8QBuLpT?-}VRb}RS1clCI!LrpyKXfKnFq=Ivwi{}Xj>2+$Bn@zHVP#&uf{WbqZ|$K zac3!4!^5f@Epc@Nchii^?RO4Xae{<JPY{*j4z8bUC~H5*?c_#iLI;MAU+svd+F@^U zkQRjbtpoKZI-+>JQrn2TFF<<|X(4z!4s9rexW!%NMs~STc=G_N99U$5mFM*$x`8T# z{BIU+b9gi(2vZy=ppNtB?J!wo8HFQl)Yx33M>lQJPelc`w9IG+ca@3|ivyRgAmO>k zeU`3JoK}^nLHeg<M8gKLy`=rTJRQDN&kkP*t{|vB?$K9}=oWB$ZxmnY(JpOolMwA5 zl_$x5pFFe!H%>*(&r~Bc-_Y?KK|`<~q<P+TO^wuVi=>5DBXxgG&Xq>}0Fw>mWoV6u z!bj!Q{f+u7UggwsXGWhzmYRYGY?<ydg0N6YbTWqH2}~)@AAJ(letjQ1Lbcy;xxP&? zvffWQHGV5T`&(%+!Hhh{8jvxpP#%c??N9b=kcXcc++G{R-WpuTPPaEo>`ju`3)aBc zuQo`fU&l7VQv*CT#<l@p-XY=6L>-H5V@IH7AGcN7`w3sa!pqy^BqYu|%2I4rHInGu zSbtWk;~hd^;+!<$r~Z@5o=1n7lWIs3CHu!rG9_tGt)D2gKI)%1k0y5A$LqUM+&KhL zNfEzppbK$Mam|NzMLz&Vfdna<G9~hL!Y|}R?YFjpQxBQaRQ9@oVTHXtv&R(=Pvucm z4YN}gABUeeDw7L>5p1TbIu31%+nAZ@K8uH?jcht<9e38y<-8v}5+IE0Gg{p4doUJ^ zocT^*$c@5z(foSFm>8~~C2H5=@z@1Qus6xE5N?k+Ln2+)gAp_s!PP~M3YLVcM;^u9 zc5Vc`%X`lsRx@e6=S4M4dEp^4`gC4)b_E1^_$*h@Vp}xB2I{Jhao;V5fgMqw>|J$c z`;vEft{CO!Kjkk16%C(uOxzm0s~K&P97G{T_}+{__lygt+`O_W0D}qh?k}{A-b84* zLcL`sG&0{Hl+p<X*5FX>$6Kbr$Db;!Kz_M7+mR9Ky2%bRd&QS9xKK#N{=Iv1H$Muq zv0s*|sxIUAe_B;_kz6L%X^(Or0W%R(fx?8NQO$-S42puq=3`a$vsiA18m)mZ@8BRa zZL{j}Vks(jRBw@6WUdZMdxm-JP_ea$=50WPO08{ZYRakqhW)tKD5?68ZLS>|tFX#r zkFWo=P6v(139k2IDnhqJV{Ej}r0cjzN)1$Ds&8p30jP%B5s*+3dtCJ>3$>()&$~`h zflVYH)oH-(0~R0QmFRQYFH}`-7=s@mWn2B(79EvUzJ#*MbDfEk6xyZ@V}+ThTlfeb zaSqCAzPz8FWct#yZPfA*s^n2s?SpJlX%89ftw_m+(Iem;3|>FNuOJktN-s9mpRtc@ zS?E*#e6jrT!mFs1xWC%X{=`otc-mDc(0x3Jco)iWlk7d^vNxmGIf4+C<P9fs2Q68` z3(Z6@x=q-LYTEQI*&T0_tvcX@D}2SGNxxIE=rH_vM_eLo0<aChO#-K+<-%Aa*379# zVd&OO6fV63BemF%graq;r^q=VMhJxn?IePdDB;BjZq(iMS~co!dJs=6;afnCFO;wY zYQhmv%r)d#6&h@Gny>-lX9*8glk@CGr}?OtH2+QEHKb18C?ry+d<M*N8X|j21y708 z=^Aos8G0?LQ=cii5VGJiaEd;A)fC<2oub!Q`p>chwqd5|r-n??AHftIGbC|6P3(Gr z7&KSI+At1h-&AoHy_@JwSG(?Wm%$?1h2E*2i5dvQ%Vd(pIeL=th0SyDeWTO0NPfAd zp_K!L5JN0pDA6DQA6P37S`f!huBu}vcqph(_{N9;Oi<q^?QKC?YVaNAQ!>qG@n{V8 zG>p@vm>_n9y<V=f$1q%Prp_Wa3Wv5)ef2OsqvBi32*Cn#x@)vi$i-Wes8JrZs-yaK z&NVHN*Z2D@q#;yn(~;8+)txMKZS`-+ja$9@LM54eWEPYGlyaISE>pN!My;zmDmsCL z*CE3gRTsTlLR7c*?ZGN&1HzCH4Ho7>Pwgc>4cr>+yzrRGgd`0UqArso`uhcLtEZ(s zx=Lem`c&1ssOquDD^XN~X2E{$2&L({u@J<PAPo&_aD>wKcW_;R>F*-Y1aZHx7B#E( zX@AJxoEkHQUFw|szI(n<1PzxBg>aLIY9VL|M<^jc`6M~Mb}e$wJs2~E>mpho?<==h z<XNJw-Y+UC5!t|IxRw$;zhqDkYK64-3+E!Kwn_Ead`LsoxT@^90b{ht#k6}pX;oD> z;mVTH?^GUij6szh28Ck+sU)`1MxN`pNHT?^Z@|QytuqSEHmYF@ntLVCt#66`S;ECX ziDQf%MP)vBZ>A)zp^tBhXq4$YYeIFspG-Q|duIC46j&K&(cN>E-O%k8`YSxNVV00x zNt*=E1^R^tD#;;5Hngd}yQ2U}V(^{k^@R^OZ9vrSC|;C9rX!vlqYLUca9k#33a`KA z#rqZr$jlOSLlG7pp$IpLk}WyDvk18|H{DE1#T$j(EFrnVf1EaNzG}7rMA%H8>&D&4 zSd`2cP{~$ywkuw>|4dKf-IL|)L|v^q_AGm^>cBD8{txTVD@GoVF(|o_$*#$&17~6~ zl<X*7zG}Y$!t-GcX#y9+M`JNJd$`Qe{)JwBNAGUW9X+6roeSM78ayga^TL5js0B(W zjc);>nosx0)w1JigHa~-1be#b7@Hyr+qy=!WbqC4U#T-kw(!9ppk7qIp6`u1A?uP| zwqJCkiqz9ljrPOx%JZltl?$6el%<|UN5Uy8zed)AJF;r^3bf<5us^neoexvdx3OQb zw^p^Y7f^DyfgJ~4t>6_1UgumpSFNTvFC2h$;9Q|jKRWIi&A3BL=(h~APkt8WkT)Lj z@0+=gc;^sJ^hEXx-k{W;U|V<zd_5mVhq9;AQc{JnD#BY1c6=Bt8F;j08CdSncRDiK zwOueB=RP9te?Q`TQdR>5E0%s~vqC$M9F^TF#5{t#=)%-NWXMMMYY%(XO{4^fhj&?5 z?c~=c%Tbp^h;Zp)lFKI#dx~>eD!(VJz0r}=r9G>vQa~;}^-@)}TTa)ddunyz(z@op z8vTIk{kmj}Jev(m=0@{}dz<%3VBY_7z>%RwyI}B1q4H!Jz)cf=O3NyK*fS5(Pvg5y zbS<09A3h^E3~Ft?RR#nqa>EaACd4XE-BW~l4|{puIP$0vTc?1WYo-yin43|7h02jQ zdKOAF98o*cN6+R}vQs_r@?@5+T^wM$9LyHsan`yT1+UV%4eBO+7n076iK7F8qjLt> zrM#+k$><pvF##jq>xpQq7?40@DUCcM7^nt}ITK?}z?dOES;}avnZaqe^NP2@_#pS( zK=-)W=jr|VM{s#D2-*{>$I4`QZ%(cH={ocak{G(2iGlJS#-^%5y^&BZ(B9*bgg(KJ z;tk!lm|!lzrjWa2Hq8%wPB+ZtvIa+v+M(~#wy5kV$q6iDtz^MORn?pDvS1XetdS+e zL*tS=co08Xd$jy!XS~D~9n1yCV@RVc*u_D+yNca<wS}Q<y;JY@$J=v23{QHXy&3jC zdSN-44Y5_YgV{rkvQd0ct-)QhBrw1=Lz~mh1(JXlEfR|xmTl;xmUDzUA>ML`pMZN^ zcuRf}p0kbPgJ|t_SVyTVpjHC7^9>RDZtMW4qpBKfh;4|w3=h<ftU9(aFrfo2Q2-;L z+J6jamp=K{u~4{m^aHB>BXzbzZBtO%M5rCB+J9X2z5`!@3mYZ0ZSbrOu7~4+pOMR2 zTsrT72~PmJyCx-I^N8B9ys9RB^o#`5b?SMWnGn(9x~aEiw?&dlXrY0#q-MZWMdWm! zAv^0ZD!VO=sB)l_+{NmG#+&O=T3NjT&(95=F!y(B^-8>l^7g}ITe;KTH=wHKC8WPP z?9}CNjyeVl>(lizAVRtvOU6gK8evq7hEb7kzy7drlb%<r4k+^Nmtkalj9bd~%cEFT zzGGxUf=&mW-|;&#cDn5K1KRrXDb8dm$#s;y4rqL}C77Jq<1iw6o%Cv{I8dZ`$!@rT zvVshh49`HBm2a=;3ub>~8MQp$A;ZDahl2$lF2lnNKBzG<aAvUUb{srGG;%c=Jp<Ur z&wfbSnEESdCJEjlgvwuCp}fk;j+XZX;t(1wbt&?BhQx{>cRM?XaY2HeC14fVPy2-P zo=%?U@Bp!+5NYJTVpVna0CFCk9V-Wjc{MbmWl<M&;V$5}oR5sd>l~fAf5!RF+^DC? zPx1IP!A1%Y^1bosF5NfmwPYOn#A8F0afqQZ4u=R=U{Fsw77r8n-88pQ&TH)UEu%2? zE4rJ3LJ-mZnh~~K_R);+CF`yBf3TR(wT`uxa-vK`;a5JJgORWv_2|_$H1O`oX{*T@ zXwo<1<P1zSJHnCE(x`W<UBOLyloe!Za@<aRn^91WA~vi%RMCf4k&IIxM2&~lN4YV* z^^7iv;R0gxZLHj8aNE#Ank=FLPbce$GAwpcGCL=kohjVIl5^zIZeb$pcYA+tIlaA) zn^lgCKG%evdIhV1oEgaZn<hP4a@65*Qy;Gnv8d4w%sl|N155@`+XWrBC#Is0Q2Jf2 zDdKeQ8Yj;FE~U6;;5F(l_@;gj88g!lAHq!oZ9OqHzg5dd!umg3+r&<d!%Y}qb|FO^ z139Uxb<n^~`c9JBo$w&Xhnes|%9$L8n6s)lCJ>x8+QX`96-^+a-*6Mmg*XK^vE%ts z3LvL}?lpwMG#CUS7-yf3y{XdB4Nvk)15{VS*bQCs*HQF<m5r$A-ly?|D_kLvFHwi} z>OM6aM19r5-t)v*SD%}kD4eo-8v55(95A5}gUkeYt`dhk`Z&u`{p)V7)2VNUnGZPW zJ{)r&6LZmSt{CV^v}05^{V2?{5ioWn?2JltAC6{B4yhpRH4@I{=MQ)1VZbws-e*N= z=&@GZ3h!X$3^8*$ZUIs7&L#fM4A9nC|3hTcqn(OEX)kea2@MZnZBYu>wHFowSjh}- zoofUx0XQ@j7<;}j_jA;$!Z+hN{r3TU2(jUpUEda%4a=bIm;|-OUKLKx@ulH5jjhIT z#b&;eTw`!kMT<T4u<ZXDMh3Kylzqq|wV!rpK{0z3qIo|-+r&)}Vga|xXjJON8X&ae z6SuqLd-!f~&F(k4=hx))3p>8^u;vqO75x)A;Dv?Vuu{zzUJN9e!QgBFx@o?Ur0~4| zwny&<1R?=}5AaJognDMHE7W*huWfo07cj!0cF9KQQ8VK7CT%^N7>C1)y)BN>fpZJI zN$H!EzR4M4=SI$OlN<E|64%Z6wM$@}lW{Nt{G=`!Odq{^HGZF}s<%<^r{1k|<Or(j zePr3|J46OfeH?zcs;UFzL&B+GgSK8(T}9$_!m{}2CL$XwT|XKKfc25~z5rEqK5D#t zUq2A#PF7XTgqLJhbt*Vbdci$_4*3c@CK6>~q%opTk`-p;VYVrac-#se9_x#$s-Iyi z%gE;CeBsV+(!?ZyBTI&qeGmqSs`^)uYh{J-?K>YZTsGFcqm}XEiO1l0yZq6$<nTeR z`Y9Sm6U#q%LM&fZmEb1SJ$66!1T>(i>L(E80Afu=n1SMBaRcxlHvuAk@iBf1ic;~8 zB;VMP2UUy1x^iJ@7AZto9yqAw3?=+YAH<Vl;%Ja-H#85TE>1~+c0`lWnHWbZEju_^ zX&a=M^~F?lZv6}f`O!g16&&tFSS7qxakpW>c7AK5Vz?Mct*Yxg)OF{BY+r5-K3=1U z&bh)(gD*hAPQpajkb#lg6dJyQPAU9pGMF}#NoBqFBNnF>iwtL#$_qHtP$7XZdgM4r zg}IB#H+=1KV3wFKoc<KIA$R=%@#gcVd@4a^6Nh}Xr~uazQlP$!@{h%$Ku(W?Yr|7M z1w9*_EEE@emTJ22e^=yXAFZ%vqZSSwU954*bixYk=%dGn`c}`{d=oiZZq*L33xvtV zC^PB$AgU*ZYhxo~xK?&DtlK!@8QT4XSe%IpQX8&a_{C>rEr-lYi#_(PQd00Jm{S0b z$BO)qfKvu>ydMvMKPT9st=E20NL<)VwBm>0xor!X!J#G!i&V%6z}dK;?-KruXAfMT z@TXF;tI9X78r-ELY7wJ8L)AAwa2jE8kw1%l=0Pu4dtO4+<+S2)W&`^t9yi5K1DAaw z)3P#42munrawpIvLa>sYRKeFqP54}*3hFJfSwh^mq5;fHTzQtT_*rVrO@@0>h7!8@ ztR$GIs_-i=V7qlpW|r_^!;np#u@-_A-STOv9}@aqAqjPEkV4g5!Q=qGalI6ZGIY5u zb25d3k)ny+*=e}#g!dP+iMIVtvW`-UtzTF(AX02y9cM{Ezp!&RML7UbezsT)N2MM_ z-s?RYEz>9*JUj%cHH9L|{Xz<6(kH9v%N9Ph&@<#tm}(<>WnDl;bWTOR+}-X-sG4<X zE)!`kXuwFw86nm}WiRfQS5|blLCT6Ft|>y51^Zjg19QVE9SV&6)D=%%@a<$Vk-f_% z_G%HOcZ#X<kU?WU<P<t9>NAnQ2Xf1i(=F_5MC*70nUftEsD_2jCX**nsSh`z7NP0K zak{?jX5)!Sh&rNc()X&GMrfF=3K$BHz6($9AUTwVX5i*h$ysV~p&!=En}w!A?{34p zxW7+rvJ%DISPB}9z;njFYWL>gt#a)ptDJ9ep@9ZE@P#*i>6s(h`Ma_7je%RwR`+Z; z&5Hz%LP#QcKzs}1MFI7UM}0<kSs@EsIXZwFDa00f2oZ9fv)lEa_J^$xZH8jYA50sh z?YI8Hcb!7JHR$_uyr>3QM?wkI%xUs&=z!^m9U0v?3En1rR^Z8A_^M#gqJkq3aGlO| zlk=P&dU^$2DPX1{enovkc%zO_JbR^?M6v2ESTL5L7B&_5Fhwo{9=nn4L-DpNd~t4a zkb}jFHZzq*p|C)dEuS>}rPn5}BrA%=5?O7G>kOegUQ#i(GO{*4Tw0f<+P_JzdcUsn z0+L#1`YL}w@`g2n3m)u3aFLjqi7wDDQ_uy<CC;{3ZsUWUOYRD<9b@~l(so=@GsbnR zzwb8Naj8qNndDntqXt84(`?na+s_3N7AL0xyI=-WhkDp`jE`kQBH{{D@6vVtQ}0Ll z<Xf|hU+xO#N9CbJqk@<}5x<WDdcctd-vw}4Fd2?RgTd-8<ADm<0<@}}Qvxd{K}FWU z%R~#3bz~RrLcaeDTbl2kVc&#tNo<NalO@p;*nmbx!`H*RE7Ov=D$}Xom1Y$3?uT5s zT|C*1M9T3J8{tfX507v5SsTBcTK{EW^vW@EE^uiw%(iXt={<(3AS(y%jsmjGjwYq~ z#s}*H>~->dhyJ+gKpmdqHx<xR{F8WwpeCB#fRfRlbSBH4n<M3poW3nFc->i~sRvDG z*Ba$Lht-^-W(-VcL9T$B33lL|^nLO6CV33kxA{0^5}o5_XG2a=AL1CY56CLy{D4bl zk*(H#T%m*%3irZzz{k}N(;)6K3a8B2WKMl6tarOmtqv+vqBBw#p(m7thoHmP&7I`? zgo{`MsPTv_VXqk_2bS9_6u?2G33F57BOyXhc$_d9x5Qe3TtN{{J+eRWBFF4<I$eQ~ zM$QGH-$$s1x)l#=KZ1E?v@px;nV#@+tIu?)^N}Mkpimr4pYLyk1<YB|^~x*xuQ&|n zh&YME(8e1=UbaXb`lEaww3b1@^VOVAN6wK|F11m(8)e0t<Y-co56Xt6r4tq#2X|7q zeI4EcZG-*^1mEdEfx>XwmFJx<U(EB}oV^psM?9K@%E7RC_fyZY5)caGxrgX-a$+sr z`dCXONDl2FLQjjb9Tm+nIh}Y?(<!{X1IbME;`Qh79<v1&Qkawx(;Ac+Z-kK%B;f-I zrh699qqqd&KOc9y_lj@x0BiSrye%%It|O$gV@kFow8JbV(npR^zTzk!#Lq{P;Ub`) z)R95-fwcp5F{@U=ciAq-u~RdJ&>iH`c)N3nL_$h(&Q&-J?X{z0PjIcMiqX*Giiln= zVehbQl*V$m+BVAKxM?t=jKZIvAW2(*t_<KuVOod2MOJT%j$=>p`j!ZNJI|ey^*Ji) zTvJJ7ya5S}#3J5&;pPBQlQwIB>c&jr{w%9#M%l1kX0b<j=tK#kk4G|);=z2}2bv;$ zzt-D3(p;oVTg4vgC?uTF5we-_J0stShiNB`nZnlJ4_WeWHBrLh9$^BYgrfomhikqO zxI&)sq*^>Q)x|ZQR9|g}4(x(7je(k^Y(5D31ISOIW|g~U3LhDhbB^jdMiFpmgwqj6 zQ)v6hj;3S^J&<oiMLT3I>*XuXx#siwI;gAr9w=A><(@e-q})y3avwzbUJ>1xsa#`B z&Jk`MU(t+hnw2R$Gc@IWG-bh>uXGHAOAihSpGw1VU`~O72~oZ{FeFO<Y7#}(3zH&z zfr2)YlhsT~s+l4VOWfl<lZQPsc>y^J?L_LQQ+O|rP(Lt)`d6=t`r`^gve+xIAX4Vx z!a@_-@0(@vUnSmJ<6R{(diBc7xb&YTOKP;p>x}pCI%7@9AYNF5M2&0KJ~emCJ_$Re zN3WE!p~6>daHQaNkno2!-rbKgz6%bLeK3JI4KP*o3q{GI-8^oV@Z=i*HD%J8tCU1W z)wv#mMY;<QEhnJ-m|&426@+oJJPIF|X4Q^S?LVyA-`A6P&ty3}ExvY4>{)i4YXA2r zo7WVhS90T=@ouyNJ1Qop-z7sInZwW@AA6Q-Sna2kQr~}_6H6bhqA@vCpZl{CQRcT( z*uKcC@^j`OmDNO!FO*P-s;Zb6Bq3N6ThYkHXn!DDNVz$JeYJmkj9h(Hdr*;&8IUwH zU$tN5HmJ#2?U_YAiPFh(s1ch`doxrj0NUEMy#BlbVttrD@;IK@@)s9DgnVt8+Ny;A zZ`u%;FDnai&4=gl)=2n2bi?i7Gtm{UI)G>J(w_LqYIYRl;Fye?A_tDSWU2$lF%O=@ z)dE6Bxb;ekffoTipP{V1$%8}IAPzJtK_Qu-kW5fWCMYBm6p{%F$v1=o=5vahmJeUe z2$a6Ab^$r*KX%AMH>u9vCQZhGF3*6uaFrb4^lRMB^2l!@r&(t|=KkxO_IgS0C-!e8 zwR+_hcx#eG2eEj-FXfy1S06*os{ic2r@m*Hw*VReS^>TR2n3=v3}7z65`Z-T1pp5N z)BrpS@CLxU0LKAZ0lEPc{g4hI8XyzE0`M@vqX0Vqo(I?ua0;LWpdFwGKz@Z`)BsZe zW&uP4ECu)pfCXR&z#9NZ06quk1{gg6WdYm{kO+_tU;(HC*beYKz?%T?12hA)19Srf zyBTI8z-)kf-KblUVb%ha0Bi<$4B#bz-vAs2Xa@Kapc^0zNc&j;(E#_8&1(POg-{*y zn|K{F_W>PqYPpVSUaj+nz4L~S*)>6TRhoQLVUamc!<K5+nOTi_V<D@_EzL7)@~x%C znlfu?uDQH?POxvhT&vl{ntj7GGs+qG$0U?;MR}T%Qq0Gki@xAzDnXC@!je3VaT8lm zT0#Oj*0i?B3{g<$!SrcmBxDYRFy!5vuC&ZtLSo%fo@*^EW9O7@!g8#7K-5SvV3=a2 zoXKTM87pIkzd1}EQv`p|mrM!6k>}e;U1ybWMMd-x4<-V!3Dt}&kO`Ek<$Aq70Dto$ z86%0Ti8d||QZV;KMrIj<ppqJ-HyFj5f;I4Cn2lu{;irHYOc0|`fTMsvd}a1ci)WZy z;z>CYsZ1Ua7^D~xJW@Gov`RhZrm-R8#@`$|VdA8)$y26krrk0<e8$XMXWe#t#Oyof z+!=Y--BEMr&A%r)CRV#3?%w-!@e30Y^+}787vKND62sDE#+1~w^o-1`<=H=3u`*}X z>NTddxq0UNbp?f%2aAeJO3NOymb2XY4I4K-{K)2tEnCSpv%Uno)L2?r!kVq{{s5zA zQkkXj{}LvOxf@z65uTP1d=t(7ag&P5ldNVlx@l%M(^SNf=S4ox@kK?YxtP|<m9T}y zW{ufuEwySGW)yU8`jTa7Y19W_nY6`A7x}z0iOUS}i<b`iq|T3wnmZ~uzC>dxD=R9@ zHL-;-WC~2>nqm_SOB49Bthu<1#i3YKYJwqIVAdpPJY^RZuC<!1n>2+`XRFnm%NA{# z6KpIpo65~FuuE7|E=yAQ<bG?prkpD)E44z1*;K5_2jq)Ot!Bsr9*aqwITTxpU(~4J zJ2dfwXmF6XA#L#zpD%|kC@j~Q%FE5gYl}8%@;GZ@$vRC5WVPN*V-=PZvW2Fi!iP!r z!RZ(uz7a&p3@J5hxpnZa*;L9|eQ}+mS<Gr6YH?{f3w3?a47p=<tmbmA2tJp5O|Ge^ z2n&OjLY(f%EiEo1pYE(XbBnCEY4W*}T+*flPtzb$CFQJ@%VnYR@Q(y078Myxg|zNi z@4K<y<nt~m<<=Ew%F9f-X3|_R08B-G4d&ZkcMWMTZ{5wb^HS4kd$R?AbZJShdCrZu zhX=PvECX{w{00li6T|P0#&E8L%sT!k6qrqA6kCjU&voj!p|EsFzYV6FKWw^kHt#y= z=3%-r4r;%?(8_YAqQMTro+J@5-rQmHUtL;))ApUvP&j*&iPf9`T`~UkCi5xwbt$~( znb#NQ`otC6$h@%(z8e@Z*fPG~D#p2INStCAc7<#KtO<EI3LYF9fB1G06Xls$6GR_H zyL{+JZ#6%}nai;t94V>dM-CN%*{Qg&1Q()0>~9?ITnSf>4Y<MdBYyHwhsc;=>tHT{ zUMnprHkYsv8{<X~8`orA$6>^BZ@%Pv%7;me#SgX&=UgvZm<3L6bObYup)l84T3(vZ zYBCE+EfXRlyzQ}sPI?$G7-G+vGly9K>+?D*RIS7W5x9~EOG-DC+zaK3N%YuF(}IJI zG+L}iqz8a=sv9XjPlji?_`K8S*$K}I@%d*y&yV{&Z})kA!smI1&-0T$&w)1Eqqa&L zEXcA)ZI5oVg#-k^id<b?4G2X>+KjduSY2n`8g0z7!FmgeveAfFfi$yhH8x1az_MIW zP@qr*Z7eI>P*&!*9{=lyy6%Sl&GP<T9d`9!GEhp_`>VRfpMQ)>pFhbB{`scg=JO}L z!9P!0%|E*N{|SCq_i4fZ^azj){@v)$Zv;pN|D-qgH#h?R-oL+9fBXx9Ki@asup6$j zSa1LL8?EnPy@&cp2*YTr+-9$;e)Oj`j#~aP=g%JB{=|+apL%-dGrM*_`}601@%#%f z?s;kN%dfop+P>HS?U!%->dk+D>({^e?eE^+f8gMu-@o(jd+&cxSAV$S$R8S;jvhOH z;^ZGsoo+t!;n{P4`sm}9Pd@#u_0OMw(RTjJuiF3e^#!5hKU|&v`OUXo7yo*x`@5dr zzRTbL(0^sX{dY4&!!tZL#1Q?X>;I1~|G%9f9X|Y@qWzPTV~dMpao2!h^58dHV}PFq zA2z{{F&OU5%e!+Ep{0xlhKV;2o*4Kz!VWV_OV@j!mjSngk7?#I*5et^t>emBhPj_B zB6-{ov@*K!W!6I6lQ5X9xu{Mc$-LIei8R~&rV?a*Lv$rf7wwI0J007$?T&5Rw%y^4 zZKGp59ox2Tz3&bG_g1Z%)SxD3aL(Fi;~x6R@Egc@9OY#s0E8;u2=y}bmW#0hvY}0A zJ;;$IklFn5l40DfJ}NXw`_ICZuBX`Las0o&!8gw}$KC+MTrl#Djc{Vh2B9$6G#Lj~ zuXYv1m4!BWoT1{>Nw4_}K&tmlG#(*9g4Qvnu{dz~Q^l5+=43XM(6eBR4R&a$ZK1E( z!JIoTwNNIp#ZT!pjv9=Hj(`my2}H^dTmADKL?b#?0P<f8=FV5kcgl~;ugD*+-`h>E zw>@i&eRMQOyzP3uUQ^6$N;3uf9`+j2gE6xMtu5sG+niETWpcmM(6}FD=F*BtZjy2A zV^~5D&f@;^_n`0*t>Z*&<>A|@e46p|H1XD>>?0!Y5hlPdJl@M8JmA$tU=Qy2410_3 z=eFP|0ONvan~&^sWqof#QUkB-VVM~^H-fh8di&zQ>8xjOkaF|_2z<RL>ou8sy8GPw zz9<WDJbM}pFvG9j=oFZt7u`=SMGWUp;_>yFoOouO;mn)yFEr`-8o%B1sGeo^sJTU| z!%GU7qWN*$@kh|BF}c?D`+DCt#}VM~Xb@jf47e%1C^OLZ`nu(9eTzW4nz=2j%lq!O zs3pqnIeCB0^BflRJ@t4SvSGsy2=G<owB?rF?h+t`h^RA|`7`P!_ipB(JZZVvWp7gZ z_OX)jZ^xrFiAKwmfmuhsnmgz^g}i>5<jdOyrWzv-d1U`g6x2T1M}b)8P^(mgqhc{r zU9+)vOin}M*oq=3J2i67(CgDfD>LJ1oNY}tNdw$<&;wXiz?MMELWzNyk)9bnh5Yeb zBBApZW?7_#X+<@~oZ=%mu+=qct$Euw_2(s|eKxiUn?fX4-4s%LAG4w@bM)j$3uYPw zbw@OXMJ`K8TNfTC9X(CxPA`&nin1VOuwy62tGK~y5$zpsfw<=^>)+%gD6Vy5qb?3A z#N8y6&>VWkS`~7)WbXA^_e0BW@1J|_Dh%zlgABSEDr#c0qchH9&_57S1zgTd%xZ|M z2zZ}=T%EiMz35x*bJnaw&y82~5+j>o*4~YQ8YScAzj3%X4fRQ89*IrJ`-dXc48Mu> zV)+B{vW~lk$=lUkm~kMUdcKAHJU<th?0kd&7>U%gr=20ZZbGh_W=6w4i~&LZMYL<= zUb}=h0(ORer+nP5`OKq6IDik^Um_4)?mSx6xi%(uU|VKc9BR!jo5C~m&y$yw@;TWc zODx=gSj?2ZBoan3j?2>0(iLod27<#aB3;{-Hh6l247SF{epP`2$p?$aj4Kbd!n}?{ zL6h0L7Xx{R;W!)2k8l4z1kJs(oI$-WF~v&fO1}(A!<kN~a5cFl&)JfLTSzkyq|I(% z+Fm>kY(fn?y-!q)qOvLA;^c*1$})!DRAtBNdK%}ZmNbgvkmCjNnCVku7iU^|RNosC zKPzB-$(+8x@pmqq5D4(~c@>aVMA9<$bzwQby_wU-Ue%SzqQaN5Xv?2QRj@ed6sLRR zMxywd2<x1lzJxlw`U!V{2M|Rr2#>IF`xfNkyMT<sq+Rn5e2`Zt<393CR?3MeTeWlX zG9}E-k?a%A@Ll}QGQ-yyX(*2OZ)gMxect<;2g&c#MTCv8TEWYam{C-%>1@aa5cPFH zI6a>I$R+<pMxxr!fO@QueUc3%8lwd@uMkUvJ;;PNKUQRu-){7M7x>LHmSgy3xO6`$ zaYu*VoMtk0bhn~U^z-y_^0p*C<f9i=Cl&I3-sU-TW?cdG<9L=3xzX$Y^ARB1yWIV7 z0YgOg4fUVvL`!tfA~P+B()S|fXFwj~aTtqBE;BWn9-rvoMHy8=WMP!$DMTFxI7q&4 zm58fkq<uX$$2_HN7Z6h~6<DYJhzI7F41Fpn|CmSFGa7RPv)`#KmrV0s7G<9X3~14G z|8tsvM~e#p{wK#U$F7RB$;aNI*w>}**cfu`#MUQ24#5H_qn~))`6WcoOc;CBMSVkw zeJVul5yk8k2shL7*&SQC7^J^3z9V6M8^j6fzW!|Id9M;7tiXSKL==7%eT56U=I;$U zME{uFeKQCA^d^AZz5Ki?QDH;50#$20aWJddH#qFFDBgSDA>3ZNM7I86t<Scg6>S)k zUJFDT^u8=~XByqt;OEyWxbF1yzupyg67A>tSA3O3O&aK<>T5Ime(O9ZQZ5pt-k((} zvQM5X(&ugaxqUX#=e6pY13O!0Q^bFyU#?MyZhvaqeLjX>iJtTZbmM5(tDZk$b$LoJ zbO?UCD~~RQ4zqSrsEAjc8XI&D6V=xE1;<yHQ1%bAe~3FeA!r1~5IJ2y5NO5h0I<$t za2-d3J5hCutp@sY0QNsCJmw^Al6^Vg*Cx9pHHlEy=#FUpIk5H{2CkuLt56K_O|9#0 zLo`6#&A3RuHc$7Zr_}iVx-tY^eA}Ac{nAruM@4=YlfXx;d1WBu^7x>>;fH4ajfdVm zvm%HslqY;XWIk*kWIakgd_KUCJP?H##}Gt_txq>lDsb&TS>gZ)8^Gv4Y2vT{#EImA z`1v<=vy^}V1FKICM;$;WNIakm?iRCe0>B8$2USmC$SQ=>2mNN4XOcJF&k-gNaM{v} zpfhaHXi0A|op={=RSe_l49Ys`Kowv{TXfdRFz;t=qW$hD?Qm)#_xUl;DcZgG`?T%( z^-bV_Q-C<$3qM91knQE9n_q&gitdBBi`s`>u1VIX0_dVTkVczO>hJ^;J>17$<PPK9 z_<;>f=f44G0-%2}5(EAVQHXXOQ>6IjJB#UXlOybt33LrCI5_zMD9M6>qXPf{Xn;gW zwj3|GgQ^rV0PrOU0Q}!q7c*BkM^^_2TNg$X2YYiX3kFB8BfJg!i;=r6gNCVoka4gu zyY+ODupn^mX$X0RU@|*G)sVum)W6K)mAdmSna4Z4tUd-RjoGrw`QG)^&hGB+*I3pY z9zN>m8&23h`si|(NP2?x&ZM2@_?`tljH|2Bl~rDIkwGtJq;+ihr;}<HH{(TJ>m=Ki zHn{o-g*GL^x({~T9HR7<!u__REw~-E4agCVL}F{@W#{^&9LE*!8ke2kwy&w6m0|cJ z!fY%jemhT?3py@8RbcauAxK!)*OY~Ou8Kx~e6f+lq^I+C6YUs=lZDA6^qW0~9r+x+ z+}t3_4EY%^3eVST+VDP5Ii>1=-?ku61^Di8ZPpisc<x>4D|vvO*Wjqm7BGDeG1USo z^_fO;BhQ=emmZMAO9j5$GzcAJbM+Q>TO?Gl9vZeJYWJW+GFqHQ&R!Bz*<FkFQLs;) ziCL9aQ-eVR4p&y6)uO%yUIFlpP#|X?%MVcY`78bagCVu+vWj5CoxiAzl~=lR=|BNs zyA&rs#gX0bGS?W<h_ywvRzOY5V9}CmVj%@)JC8V}EV_R6_y@CIoYi^vkRw0;3bMHH z#1ICl%ba@V##uc9-|4<Ay6Om%U{*VZaOn#qaU2CXi0(FY0)jT8AR@rG{GP5=R$zxE zsWT!zmER(whd0IJ2+#=%`|S#-?&7exQHDz=Gbv(t6kIlDgWEy(ZoqL$fS~=XgRPo_ zaYqQxK2Spx0Q{64E0+=vr)iqxhYp<}T3RWtq=UwDuya~ayh;n?p1;_PpCbYzKW-_7 z5-Bg)V@}IQdZ5}dqtEmLREt9z)f3z@QQ&>++yRNW)_WcFFNE#5YqLZIdqZs(ffg0v ztkoi9sD{XFlt&uTdWjNcIL_luFeA$Us&vZebVi-{N-PQ1&H9LZco~tPwwD{YZqdfj z5Z7f1=R-^x@GEV6j()8LX;>vL+Z>w!UpWQ~!gzd_u3pFqRds#?I4{nR?ad|NHX5z? zlr=#Vifc5eII%lYjZa~l;}`L%7Z^TpsAfKBc5r#BI`Cy6)nPy(1~>8l2DJF{?s?(u z&dX50S-?In*J?G+Oj?7xOyV6y#wu~}Q^sH7SmX~UyeP}-Ey~{|7;(0l$-`Rbm;9p^ zZ+$DE!c#6(KOJpX{ngF&=u4Zcn@{Ca-wmqnS$|z>A&3nx^}1ae=*Gl@jti)cu!QH@ z1KqMbcVy5E)~F-zfcop%zwJi<vZ$?-H9|thkL1yZG#rSQMKy_{(0tltY1ql8eE?%- z#_iLo^6FrOL!YN?t6iA-TJ5wPl$T)lP`G$tvmFxpoImMCk6deOsW=wEBo@vw=Ov7M zqz#E~Dav%Lnv_JEq#O)kMZlzur5$%O2bwKQ6urpHV+OeWN&7WB_g7KK97@0lsRKc# z)ORlZ7J@(1UFd-(<%WGRtRrR3PZga7(y&posa<C5Xsz3zxdal%V~Ha4kgmE^Ur$Y* znjDVL8Fm>O-&G?2TGo6TX`Tlk7vvJt1*d)T&uBB(W4xpBBj<9<qI@%Y*ifLX9VEI& zcuwLn<NQ3Mq;w^uaRBn)V3pBTCnNdM`TxMZ`(&a37R4Tx^`czrt~}&lK2nrJ5<*rU zrU{@ds97%QOMYHZeV34Ic!iTh5!Yaq0*H9>Yn}E0HJ#pGiIL5RA~CEDmw(GPVRm}e zQTlF%NlHY&W8-V6#Aw3{rN|vx;5eT8(z%!v!QVgc>?m<IPgL1NQ8FZf)by8}MH2(w zz4+Gq{A7McT(e${31sPx<-#Ny^Nu^VxH5qTA(rx7kw`(Or_hA%Q_s-s;NxTybG3+8 zNtA2&Jni==Ti%g1Yi$^P&D_j=h3y-A1H{s|Ng;r-<h=G+5ZhV+Q=<C90n!|`v!lOy zQA(|}3RS{jzT3zLGdcmOdGL(-Z6$e7X?H{l-hjS6J{31crM1wN;0_UPPefb)MSCNp zHIQGshC?gO#u!+D>VnB5ubfDY1)=+kT>Q_Q1W1H9NsXT6HBCuz-ywmW?ajt@gZOd0 zkp6iwfulfDSn@UPvz|dqW6)S3A4EAfQ|U<}cw)SG!`#^~Vzyd{`cjb8Z7fDo7V58u zigbx0q>};w9$Z7<!<<rqFm=UODp6|rF-&wr7?plQ0`BFTP}=PEzqmfniJopO8S#NF zs#{MEFePoHz3ju<OV%2f%rI?fV@z{_I9LiYhH`_cQ6_bIsnl9AExHnn%Mnwo-(<h8 zcAiM{0yPyq23Y0(X#WA9d}-0nJvmuR5|SVfS|(J(dfmvOhB<WUD9^BZ<Enr}e}-8w z`7x_}uaNMU(g#6J)YIVg$ZrggyPB_L&Y*^*ob)JQ=uyCwK0WW*Lxv)w`nw3LoGHiW zVfwYDnGi~6VW_KQ4X?aGVqU>OQeurQVx86yZ-_g$K8^41dQGsFXeEXlD*Ft<Ue4t1 zy`jq67HHbyLBTF<`84ip1Y531+|h#k%_fV?qf@wrNhM+i4q?u_1&t%8CL>T}>JL+@ zO!;GpwiK293T|TbC`h@D!aDDg$=pQs_vA%Y9Id(1eRtj!Fr#`M=|Lxb*y;=1IKhbI z0Z|BIn8U7Xa*`Nx5+uP)MSEnItwp=3M|GVrtA6b-BH^Vzu{XV@4UpsTC;lRn%@+ls z(al=m3W_#O82zTX2Zws@v{7WIM5H}8^9BoZ1&zr&bg*l;(p52v)*DuAi-Ff>IVvSF z*k5f3M$;;wiDNdPv@TTVWAv(yG$8ZR?VETuo+JINJ{9eD=#aEd6dRqz-D+feBL=Y$ z5bEpykz`1Q!zX<zG$>uMZU%$!1S2y_7Hw8zUG`+Zr7Rm>jJDxc-P!$HeriI>F21bV zU#Dkx({NtXF4==YQzris%FfG`KUymfIaytgFiTi)ItV$zB{hcG9lXlcT9HzC?eEX! z&AZ8$3XGg~jqC6C|Gt~*bZ{`w^>ule+hBCKC){Ww3V5FDRCMThJzwxO2>E(kx<R2J z$_<Yi3(_bXLQFXJV|7Z#O5?SB6%#}C)H)AV%x)9(m^e-f#tDc6HaoZ-Er-U&)Q^MJ z#g5eCZci6D$@?v2j24o`l~Fy4<JH~oFMdMFkIK7Z_wDjC!^8@{A>~AR-yWh^K}*Zj zNq`0wck|O(HC)KTAgrRLkcls-nH4b^S&o`AibZ+jA@~pY#YKUhKq(J%;M%gXGS3gN zD*C>8CFf{5GdfO<52^n`vb0)gtZYkJCzWJPLmPFP%;Sbzt2%Y2de;8%?f2AiJJqR8 zc3SQEIUy^;+^uG?ciANF?z>Q~d}paEgFIby8}i2sST0fun0F0z{&YWX7^uznhad{} z6oC@iAfM6pYr7>$9wl#_Em8`beN+>%^*11AeZF|nfYx0ZMYQoh4Zf|>G}{FPvADGo z^MafQfSJh4eN4Jk-CNrJ6(5xSslTNx)^{MTCH(8I8&RiIyq#8H5Gm^k(dI}8JyJFo zJ5z>!Vd&TXZs^53?#yR2g*PNuSx0ve$ASUDXo98;7TxwEnv(!mSytynu)RVYA?h+@ zSqmBJEek15@gFVSIgLIptc+Ss=wMNx&yEAAK8+h?=Q(ve@>q;0DW^`7FJP?*k3ne( zBvwJLcqjae(cHY)6oq{D{GdP8OgxpHHiZ2|K4mE}@tGO@Db%9P;Z5MOrGs2cW9>M! z^g*2p`-?4rzTzUGP_1zh7u05{=Qql{6iuPC3OJr{_+oE<EDPj`nk)znspSU&+-vEk zgSE;$`L`2AEUeJ*Z*62zRvFm=)=AEGHFIzqhXaBI!-$Hv4&~BqsaDP+JBu*x2bmQ8 zXBDqkK5>TP%Fd!UfVwL;t+|e)XKCtL#SAd_x;JCwFuPq?Wk4SUe6ieGp#rLgK7dW_ zsE15GY(10)rh#*B^DWd0?vssCO*Z_TfVFb~$vdic)XPFNL~<eP#gnk<VGTxR_Qt~( zAq2%MVt;mAc*-t`%u@lPYa>Eiz&!U))*4TI^FMdstw*%(3!-1j11UCvdGm>Dzk@mq zW^!lU>V|z{t~c|O3QD|3M2{_=v@V6Dnke=`cXi+wOP--ja$h3)*IqwM){szmL!ard z@lvv>ULNLv?PLd)&scRBM2%llfeY_ohDBT6Kjb>yX>T@OF=bhjX26_LG$sR}mU|G_ z!YYEe%Ymmip<Hqts3K&16b>b2GItF*^_rUx;?U-u>3C9u11e>iSo{b75RI>ji<a<t z6y7VcSn(?CHfiDqg&*;3D9Fy85VDIM;IR*VSV?(*G~^G2=IaZ-FVYz7<2_+_61L`o z+p9V4X8*6h-a)P0>vJrx=yIbl{qOZ>E2>hpR@q%Gzs<kwA#9iS;7F2c5IUFt__UfF z{7jF{{3VzIj$DXIC>;ukmhZZ0ulUF1FX9O-N2+#xGS8|is>>#n&&H!ck0j_B<b}<N zjyEy!|C~Vooz?;(8lasFdJ!AIq`yzPSalpM4~Sy6R}`aQL|Bj5OWpp8bilRf%dG9D zWeD{H>|;bSvif=a)Ah|L25h+b3g7Xx<#mBL1j<kfvzm1wuGk>7A@cmg;<P9+NQ8nZ z5y7J-A8zst4Lg9$=`Hov%Er((J=Wa2Z(Au_^Q_%~s&X$;eZ+R8^D4+5(BxqKY-U@{ z#I@xOqsKhf!o+N#+&*>jbZyn&0;ZK7`y*2oa^^6^qVb%Q{Z#2AItX_(V5zMjJ2cNI z9=P?J-ZSdE3?YyfZUx`<Gv25Dphk$K>739YyO~xYTfjz&1n@wac=zxqV4(NS^yzTT z<uUyj+BkA5{$tO5%*RCk2SIZ5MxMAVXjqq;wxkCk;LX)3)ZX7jjIXeS_1bZ;s&V4y zKjl<8wQ&xuxbe|cpYja4Ko>D1lDuM>Y0SaLofE4V5t58m`ztMjJ)Qmzao47*o#3G< zEE9#rRqE~lgZ0;`<Dy;L@5>BGjHa6h<zb=k$$DpJ7RBD6NC`nZe%AMlX8Xa^hnkJm z4LOk|S_#48M*q6Yn-PBYhw={kAT7fTfA*}1;vK;ORGhAy-)+IdchywLY}HZ&9hf`E z4IRRQSV6d#qj{e)Wbb$JZ(E2cM(PUq`nPO;4<n@9ymMwz6+K;NjfjZ#J=HJ|1Zv=q z9j)F@&rqbWnF&MQnO{lYaUg}aSm7~ksa!gM^)%yZ^<1D(KX^U%j!U<B)gej%T<}wK zJc?(9pX)w*ov2!-O1;cYKhKgXa@}VxTJ8v&#H{9|4^cRLbupnmKWY@k>d1yFbv_A) zCxlEt?2~Mj757a6lf|$Are4jrW6ZN!Y9gc3ywJ^Dt4C!8cU>jy67|&M)}HL+yn#o7 zc8_MO?aD{Cx?aAN!b#>84LqRrSibu`g@{tmGmW(uvqB+Qk5h9!g{B*33HsOZ2trk; zLRdmb8M_1BP?jmrQPdjKML)yA$YKCSWzp@%X;hL;BK5XJVdPlCh8(5sfmLQm&zOYy z@=psNaN~}Tahm&xH5TW6-rS1OB&zqG(+$70(%UK3RP*fjf2-b!;4FvzACUh=9&ky( zS+YO?fHE)u0P}y52U9ag12<PI+yAhKFqNtJEGFch2lS@PAYwDGKpF05i068Ku_{YY zur~G<_7=ROE00)d&@&lvssG5vd2b{98!$XaqVO^wrKBD*v`WcM_<gfsuWa>kwN(0h zGX6+Ls)UE#`B00=PatF9!^L&8+8%x`r(kZgaDNReC-;=@#J$#+mO}PD(3x=YB#iqr zdri?Z(!iG`7a+~#f4eRYrjg>Ud*QW{=lvux9|i^21)vivYNhom{RB1Dhhz^)>qb|C zM8s+*V}ifsPXa2T2HZm@p;?XYIVYxVjl{rYZfndaZmQ2vnPfR`6@E4T;Uo3}-v~*Q z<LC34)QwSWliFyGeDBm>{wMC!r;gr~mWoDQ219<mJfmBvS`$uo#?g9xQs-Ja&bL;+ zcf{o2fF_GnbO=XOPWolq(nVW^(30fjrbOQdTgukYYG%QuTu3mWxjZcQ276NO`m&?j zGh@p8pQw%8E%4x^@$W97PPdto)xTKt{4LI@x(>Ck_i#ZB!ljd~^lFXzxGcyV(uFU$ z+PrhDN}aE0Zj0du0&nCSBH%vU|CUpSn%??9ObIacUoA2IzjB({o4Wj0%^FQRhfNOD z@1EY^*02O^!<y352phdi46A+cYw`x8GI8w{<TlhJvl?=>KaJfl7Y^Z!Bqdw&I{(H0 z>MLizWLTJ!wbY!$&++o3T~mI-2)0%);4M#{E7(bsH=o5>x_*!G(x;GpFUOsUS^2w1 zTr+gRIMjVVw0QbC`F)=s96d40IzP$Yo!@^g4R=1QJntRfmtAO_JfCD;Oc=}vPU1&& zZTWq<RkYBv1}z}*4$7+Ct=X!hS6f8~SC3uA_6d4V{hW%Ao+Zs{k5#T#RytfB@N<4w zP^B)0ONWepuDMpT-PyWB`A&pe$@4X_PIwFC^^)0*^71VXI2xmCy%bi2c2QQ6g5t0t z2ryq1D^&L@%77kCHkNzJM~g@qMUyOaRiukG(i@;2j{n_L+tceHQ&=KjE2no@<2O+5 zXqFogG|vX~yyuhYR;#s|jR??9n-8ife{hOf1~bAWFZBrd(xx_WPD?oRJz1k}4}u~# zt){o!v#o7c4M(B^k=!A{M!F<x0X@yo+0nrg^m7|t%BqIK%7=bB%!5r5snv69B>$>C z4{G-Vm@VCqw89G-m371rh?`e7A9I>Dq$d7BMJ}aVJ^DrF^*mY|agZHrSp|^d=b%X{ zKAuID9)@bBI#V7pHCg6T5>ge0^;?|xQ<~=!ta%r}JTX$u`RT=|I9g>AoNfFrQkbjS zDT6EpeF2RUH`$RxMUM}_TZ5mT3>G*fqGh=`3Q<*bws+xfyWFWFeU_v}0sAcAL^Cui z@`LC{SmrcmuP4I$Ny`#WyKJ@DMp28XJXum|KyUvq&J|~|Ne=Zcys35**&5<E9hf2z z%~^RPf2A^g$vLvw>}0!x^Y=|A0wv*yr|anMbpr*^MI}rJtO`4uvNX!xi`u%MRyO97 zNNd4Gg(V8MmizVJtvxLnv@fc8kvCfMdLi2YF)HGSpBMvkr{1Kpk$PHX6ESQcELoHn zrhjXqkt$NNfEG(AWV;TXG$S6OA-ydqw}V%W$<vG7Mj-bbf*0=En!fNi%qh^mH9-U@ zFH3^FVSM7WgrhPD>DM3`h1@YSb3ZvDVU>He@Ve^bBT@I}GOi=aV2eN9so?f8$<LjM zSrY)hh15LWfMD_iuf~d<{(jFq%&bwpH<Y|K2m|el`I^+ZW<oO6>mNJJ;0ki3?cyM$ zeF25C>6*Bg?>el*K+7;eKy#plJjQ3xG<r)9fprqI2>hdOw&V6g**zP8;+s&8vvG|g zFDV=&?#%}4kneCGqA!IzKI?DJx*?WaiH#v<&13mxQiotQ1V)LTPo_AI38+eR!*mvD z`a6seC9vo;!Bf<)n!txkvt!CuCZLteQMh-l!iGQ;G?aT>W8H)`M=l^Dd)mBumwROk z*&!Hc3`dOGsQzkENPEwti7q9nUUetL_w3Bn{{_L+Sz=^g?2(++M>J~i>4bH33rQv) z+gxBQ@_>%p_(n@n(J=Rml502#jeoR#KqW%hb<gg$KqAXe6A5G_5To--o4uha*WZon z&_RjosfkDHhB&oe)>!d&t*bfex)Z-3zQLht#i~dQ2`QUqSP$af0yvhmU+;&&GvWxs z7HWR%4n4E^cXM^{lYn2Bc$OLmMuIWf-S#aMtM3GLx`Xo8_wrnn6!*Vq2-R=8vv|zp ziH(`RfsA854oKJu1+CK=m@Y%rfAp=sM-c2AnfsteDlfAj{>>v5hJD@XryS;i|FU+) zSmB~mYc)8I1MTo;p57PB-GHA#Z0NfmR1Gb;>&4%-_~K<0B_XspZJ7>%cRB$t9_wO{ zK}KH1_LBac<{kXUAn?I3Ied6(72Urv1Wmo@c&8sNOx|da@Cp>i-EK0e$+qL;b!ZSg ztRr-5)5EBHXLiotb%%{wAWQ0?VL+0wEAon8c4(`k*Q24(?yKW7P&E|9Gn@2@jdTDz zIe5(VX<DXg4V+En<JG1W#F(Ty+o!D$7tz!|DQw)2%H$&_h=do3s^`*4G`cmPpw{Vg zq`ZNeH;}HlZM~n0&JI#bf&uQo-2^eP%mvv+6Z{=2tLqCtv4dV@RM^nzVgMQ^Cw?r) z3OhJe2giC2gn|Xxk<n>Hq5|d_LEFwJ0g>sM)p@6!-G<IT7z4p#42(rJciQHapVGZz z#MMndLR))qE@TUE>3b5ZjM^gM4c2|r^?G~%#r+p>gS6e#`MGz*i+!MD3ZU8msX|~R zawKhd5djlYFDItKk|0U6<Ihe1$8fc-_+dmc@M|Y2VgOf9AqW+z+y?p7^48fZ%dD!; z#)b)?M}kH~D5-3!7I}`7SOU^ECBcHltx6g&ovqy?Q|J(Qyn!{I;ewR=J(1hf>HCIT z|2jA&$@OtQ9HVt9=!mQiu2GHL`ZR4=7d{qvwP%v4MwKC`23I^dwJA<g8?*Iw%FdTy zj$f=#?k$h9Y=!A-nD<1_)Glj?fyIa36x}m8YZ33UPryXY@3O6hpRH3<JR|gyJ45$~ ze(j^Y=WJksVsyDfYi?LH>iU9JpJeEu27TvvuGCk8;$vE9bTOiEzDgps!4&cl`^^4v zwm@kK)jY7N?XsH4+ll3(QPnl*Afto=Kp%nZgHpjeRbieHEi94)zb7V#S`2PLggTA= zMqHl_)9Fv*eT@oBi_5o2c6FC4`M{-}ja&*sDwpi}i+E;Xq&9|9L<Q5^hv45c+{sM& zxw5_a#xa<_O7J|u`a$%+BLm8eG1dVs0DxNZ-~E3^1}hiW|K^1&KRXw^(Lc8y-_h)< zl@O-L_de}Flk3kR_ri{*n#Sx^>P!gwAdq&H`j|@wsb4fdFJ%TN1jOVYNgW-csbYp6 zrDbJho&Oz+V`ZoJ!)DFqiH>#wTKB>8M;BjbmOPD%Ctv++EUcq+H$m5@CHwM?(k?#k z3eJrdyy)rE)|M3q549Bl*+=J^U9Fr&00RhWpw>&1n@^5_ZZl%(i))h{(LSf2Hc~0x zy8BjMb%#4xj#k|i=$|XN8VmI$dw#l$;XX5b;srN53%Gbi*jL{Qhu#emU|s##BEMfx zZMfQo-Tn#VWc|kdV6yZk;&)w*Yt`@xksll9SK)eQ+b;bq9PUyhW8h=V9^>b2DBQ~` z@{^~zzUYbFUXQ<@VwBxqPc^+kWCAKqFytnA9~(MpjwN^P>T~w4rQRy*tt|BPlC?~8 zD_Vbt@181NG^~Xc54R@Un|H6?jr|+&^-??ijPA4^jzQlQ+bSa`lQiiy@r~+po0ZX8 zP8a`{3mSY8v(&4q3onaz_Z9ls`U%_4pVubwPLNgDK8x3OBs;{f2ybEnU1tHJbZQv- zIE$}kx^p#z5Df)FU1@B9b#^x30P`XL=3uxZFB>JRvVQ7z!t>EghwVy<PRKE4uk<=* zsrDB$Hb_FIodu>?G*SC<sE}(Q6qDq7aC00Zhk1G0lF}4J1M~g4Zxi}|U;jc9D$lxj zLtX8tl6FkA4zUV<tKZ2iyt3`LTiIS#azxCzsmulOdIgsgWDv~s(`4x}N0_1pZIV~x z1p8#w1KAp$4%pyWO$^gOw_0lty15u+&!1Uha$Wz|Ox60a2kE`QEc$YkVlD5Boc!^A zyLVY+OO%2x;MM%=N6Tla)rNIe6iI8Pf4Jk^$DE^=a7?qwzUs(#rG_Yw4E6m`GYBb? zkqG0b?tH2d!2gsT`P-N8qZt|U*L3@Z5dDnuwvzcsw^p5$A61D&(OiNixaJc2%+EtY z*-X#Zdnf1;&DgI-9p+|narWrvbBFv{3+;sO%1pkQ2dWlIeqm%*5er>^(j$cuNsHlw z?~_tGLfS5Am7@)76J6#|-a$+}PrlsZVYI%M@WQl;N8{Et)h&VF<H@DE!-9YDTsmrM zU9blNO)xN2$X9#KxEGwlk-lRHV(rp{;)3<)A;qZ;Zc@On9PKd0!i)?RoHUykkE{_k zO_rI;vL_a+iR{2k8>(M7Of%{GHQSswt+n6rs)*~We`Afx@T@j?-`R{~BmWU%sgPU% zb(2%(bW)rN9;u)GY|&=TO4c@(9;i#sr-Emm-kSM&SB5456%AqHL;(7RXW?JyASr@a zUU+3Pgk2|m9&E?GtX@#}&p;mrEWs^2azE=m;F%#^6879bY2{k=rl6Jue1G?nv<0#7 z&4GYm#J)oi?FTAJ-)ISf)o1zp3Q6R;NZZ+2>pTicjb431A0V#=nyg${!cM__rC<NO z$g82U3%YV$aVO(GYR>+usli)`?s<%?O1RJYRP?jiSh%kUe*1d!!-ceB;Akf2Dl9<) z)24h(6G6nNNn0SDyynBHF_OV2rApKY18vN*(f4*Me<r%ry;ylMH-y_$zWb~?86G9_ zcShfSnQp9~U4))x=2=B!CJxRWYx+3%FOvu}SkuPUr_|?q(6e2KKp=IyPF75Xu&>-+ zP>$Mi6$);CDYKOkW5EM~IekB~$b<N|R}PYC$7jfD(5Ud!r=}RtR~fCM^!ZKEP2DH? zkpC7#R$|dZ_z!EU{1=VqI|imJTd}ug<CBn((g!3uXe>FRpmXr*o8b$iepG;pUQl=V zF{#b96-cE|nfV4lJ$ks`7DRJbWva(If5=6NV=xxK%<1jDi*6eWyM+Qey8jk1No~%1 z(9`hPqYtEi-IH>=tNRI7JNm!^<28Tg>{lk*YIUgU;N)K6!@rw5s9n8$FKA;4yWp2Q zxpHphuvq=+p_|3Ct&O>3&;Mx4iUmbxnt3z5x9}sO_i&qL(tJlm!Lrqv&3Lj#l3>>C ze}paDmSOH&x7<A7s}6T$A`w|pK^FjH+~&2={IQ1Bm=8*QEb}1iPLG`|kni=QdYTow z>968IeE`f<oWn1dr^|Gf=53@4#9iaC)@3%40N7KsZ*qz-pamLv27p2FsswX01^d`E z5(`^k(y}?vCKwPn%Wfef+WmBLJ^5Fp``k3!iUnjt!NUE_Ae+Gh_PRnH1yEdewq;CQ zPu?)-q5DmU+wkmb3`f=3uWY+K;!AW-v?@o)bGK;V@Z8gXNPZ5mb^<;wHw1&Hi@5sc z`@}YbT(k=gEdy+k${>*8I@3W>SzqAkV8O2G6Pqsjf)6ZVtxU0@fr%1hptE+@Vq(O3 zdRh(qDJJdB)2`T_8-=r?8z2jipo(2qVEIk{<$Xch@hAEp^QGDi=l0!kxSmiAjDy=L zxu|_ibRB$KJ#C#<K7+3fp5a9-D*Pb6G5lA4TfZjb$w=PI`@d8X=AhFI8-;sZg4)-p zl-ULDMnpu)tBp7h$@Y94*9|fdvGZi6_@)JEuTmJpA}>PP8||TQxUsMw@}T~BKgL#J zmbTY)wiF0BeX*iDzD-jh$Ar?m$Ssgc36>&CxGZDbF6t<%3%c?W&-|A^l#59u=X5Hd zx(s2BJZY)#tVhV9<EkR*P~ZL1VZc}0A6;r){40}dd)9;MSbjVrD!kqT->|Uac=KX` z+XP+4K`0L@2_)qvkd~4oRC0k6DGez>;;3G1hgUbcZW;97GCw;a1z~TFaiWtjjW^KL z0-N^ZU@i~O@fhA(zF9{LQ<+=TV4b%KpI^vIPHAu6S%xL|kNsF|EjAa)Ne@s`#kX$p zWcbr#7*FI1%V2XS!vcDd`-|u<*6xlVmhU>@c~In^v$TDj(X&Xe2+~L{0r_BB4Qb|( z`WFJ^T@Q+^_p2fvLCE&FZ_M@hpoLi-;`BI|I$7c=_2KAoxg^`@8#e(yr6e0DQU-+F zD);Sbzv)&1r)Rm1aYSh*C~1W8Rnn)REv7R)g&Y&C6B?~;e8Y=JBK(Z8rAC2t#02=t z#dGu(m_wm7Z<JCY(;{sjfWEU&1Xj&VhP50#CpLQTq>^>1YS*d{3zGzBbFjhWO{;5& zapBiDNQD)LM!%YkPsDOUW&HT&SC7$Xo{^agQ&NL+4DRL%)$&t#K3huUNZoYep#{lB z=Z22%>lR191|p4LK0V3NCdGaIFYjiX=!Y-lhf?uh#d7wi%uSFvUyeps&yNCsFu|uy z)>F@zCsNbzdYGzO+({M^-BTXu+NcdCB;EE0OJ$D9B;cD_1IsXBNZ7?4f7R*&iRJ9L zVc>`!|0a5)*i02xDX75UIn~!~L^t;}Lp0~;i9c~VjA<(fgm;MX!J|OEB96H;_!hPF zrxs_eI&j>{CUAerd2PXXuTne<e65Mu!~IPRY~HY4_hxkn)c+{#`L38R`EMKx$LzoT zN49!F+w93EVb9X_WU2agBS}S`rKV|-&$RzI-2|Q<Cb)kQr<|kt`g8i%CPX&&3eT5% zs0O*k@`VJ=rL@7~e|PKuo|XB<Gro;LA6U(dWH>WrEXpHxI4(l~c(zr$+#m?Na7fgj z^*1%fKFeT-cBt}}7jDE|@y`<^h5M-mwSi-2j>Q1IL{^Cyyty5i`~z8BG^++Q-g1^1 zNO9Bz)b$Y$8m3frXicxUJ-~)XKw$@oa?&;5gC05wrq}AGG1(S(J1&;{;gmIE5d!Je zSIqjI989$U$Bqw;za#7U_k&eM{h&ylEo!4{;_{J=<x&Z6Z>$EK%irAJ<<=OU!=uhv zaMLj$T?g);BCFz!VF4A^)cb$At|?>JY9$@P-d5m2AZ;7KV(MNq3n!N#L;9x2z=HUB zd7~&wh>4vPphL=D_n{`?@aQ)nqHb?y1c83=(RQH@@P_Oik7=kzR6$r!E>a?ii|bm3 znlPTp`+djs+2Vg|YR}#HFR6ziB*ND5ocPKJv60V@X$PG{GpK_}5ZgJ0Vkz!i$>1Xi z8*2q_!m`A?BP%gyHTr^Q+VJntQUA??uVGI_$_-Hqmj<fz+GUj>Q3xja(HyWL;5LDq zrq-zvqz@-k%1YlePf#i%vH&BKr%x5~yHbkla4fA1oIxS$6@JyN3RlBsV~U+81(ocL z2)DBkveGSgl2gPJ8y$Y6mL?(Z;q()-lTpR~J~QkeH_Hdw0DbV!0?!No0NJ(EbPQdi z8J~R;cMx{JQaM`gd1vjdnY8dNlti%ODNw+|ZJL5Gp|PstA5Bu_5Db>Yw0akmnmyRm zYFYpbakhs~N+Gjh>}|?o9g-W8yGS|AtZ-803`NU3&7DuE+#&QB<9#3%R*=tSrPhj- zV|%YRIaCdj5^-r|X3X1*Q;6u21_qqp*blpAP*YO@ZsgVS%_2vZuJ9nQ)VRoHf~jIm zZ)?|(o-D)dFz>1Z6CE#)$R5A7WJcg--|t5HLJ*UKL-E<tsnM?3CtPr$KXMia8i;d` z0wJw`lZmcaH)h8N@BFDqSepk3f|j%~(^U?Vyh)4S4LAz?u0U0-*9&hNflSuP!M`0s zQf(}}?4r&j^c7JxwZ*u!207lU{RLda?4iN18)fZb3AyiP7}frrVwkqj$0MbxKxG}h zFh44JAw+7MV~MG;#oJPgPjHjs<3aMww0DDxF2)4j`oV$?5-e3;T7K}KgJ%-v@XDWx zKLtX#(hQWK`zccO3UVg10!XJ;XEz_^5tOHc3@GcEkBb#k@wyB8bhMu#X$WPle^6=* zBRjh9#;RI0Sh5KvIGIW|IP`Rk8!v^l+{L+ZgFH>do7NB&!0L^7Gopj~h+T<&e!HEz zAjg1cL)vb37mB4-O=~Jx>kvQc?^0Q;%YjtDn!J@<yj4P=*JK#;4JPOF9c>r87>3ba zU#5Fz+aR28d(<rU4JAfvU?ab^lq`zw(%Dn0AmnHT*@H3?&&qb#Migx|PgUHD^mb}5 zx2Y_;bMYG4gqn&kgCY36H9wjGR!U|Yj3XMZ07Z911SCN)NHqfh_)sA0G`YsnBI&&& z*b-FAV8J#pW7TkG(=iGr3Jftf+5A>c3#75Ma@kKdd+DG&L_C<BGhbxG%;C#5aoW2R z4BqrI7^dcuKF5*a&Q@Msqp+brom=^@%D-yRnP&PNAIFxqo`OIot@^TAr)>W@#lTD< zulm{{f`v0}{4{cTO+&fAt@a3>l^2Cv;-E?VitFH2;%1=_eNl*QJB&|Vj)9Bv4-`~l zVKoRD+Ej0wnr;|C37TK-&jZi$wuNn>8t*LWN`3gkK_KzcfKSLlx<}`p3LkW;f1ShJ zBNLd9Cf*6rbyXU(ar8{a7Lmp1j2c~BKbRF`|2l-jrn{gsmy;ret?n7{_B}YC_Dfe6 zxhzi^uMxu1Yu%r`g+BiC%>e{5f5kyXfQlR9apk;F#s4S?I;zSpqLeTYb&h885_NH7 zQw}0sGe;(CzFV7d^<$01l1zL-w0d%9O#WvUYJ%01yaz2DXxcpx6gckg{&zH#cd`a| zaK~^e{QN!RbPQU!GSHkOLAJytBg%Q|n1P6A0V@mRs-q~SBRe!mN&zEAGtPZOQ#}jJ zW~nW%-=y||3g)}CgI#zLD?fD2i1g>m5*5h}beB$?HTdT^owzHCnjnp}%VRe1gahJ| z^m>KQkD!I&m>>-OWcunJ7<?PkU$EkfgL$X#MdjQ`V}ARfo3VV+IoxHlA^gF$(Xw$T zl^1UsA)<K_7;SijjPW#YV23u=SMmcHJIdKB#$J=xasp5YG{otJfW}Hk0dG{?0<~5W z^u<~#z2ue|h+1BQn*8^i?%#DwD!SOtlvcA*dEvzff{6}gV%x&1016$2KlIyzoBD2m zBw<Vi@l@Ap8iL1$4BRr-=`s~TEXIA;TmY1bJ$y>odbWr}15y;JF_@%-m5C;w^VgEv z%#diE)k(#p6@uI&d<Kb8!FW(hyaV?A8-ryJpY}``Jt8|Exmu4n<Cpc~oDqI;<=Kkk z7qzV(+l?xx<aAF-FUko&jsC7~Cp*0aeBWEXE-7|9h{g4vN}uqce&I(kNVc{7NiB)8 z(W?V}fbz(AXFcWHIaDjS=}MP9wLHbzA;$v#9hl{i;VN>)56JJ|t8qFDB_&Av-`if0 zD$#8I1M==`B(FGrw70Wl3`B#IK~+e%=`46i>bzV$3q@)whe+v)<Ib;Vza*qLCg}C! z7xq#wgL|naHlC&?&(FZ9_(gJX%8=+{?hfopV&s#4t7-ls^<mYkA+@YDpVKT-dszV_ z?SGx>1)qS)*{pa3i_ZXJW3m-u?7GbyK+`46hh6kJF5?P(pA-e&`bL5gg>^vRoQ!d; zKz;cLrT<Dz1x?M)8hYtK^BvIp$v$M^A?b;Z&cM}g8}M}Fl<xNy$Jd^(WU#TFoDVcV zvFN)VWHJsug{3#q!9LNfzq?xUnvV$ag|=UZL=)!WTd`^Pjkjc!-bDO0H#8@EgLnlo zGdM^hWu|4@yg-dWz$ubc-0mhTbi7<l2;<gVg<YF56iggcUq=?PN+<1mGJ8SK;TxR0 zHSeAY#Ookn>@BoT#zC_-1e50`b|@<A5lNFMHiv<xh@y~w)&Z7L3E%IBOl1EnHTE*| zb;ZpCi8k4~MqUKU{+#SNI#TG-@nbUpCE;bs$rV{sN=*_I#+HcMwA;2rl2D^U<AOs# zTT%_~lXg$5+pzW2w$z>ydT-q80yMgezyomfdLBi^RX!(s5HEz!x^@fvhy8!C^u)QU z5|bFjNb}gXJh;-&<%~0p0L?5%C!A}GPr%C$7hDN38h;4nZ|Ng=F=PZ~)kGmH;HdpG zpxx4WFxs;xV@+Q=F=(W=JjMm7uLMo%HX}6edipxEgM^{u(LsMv{eWD;mhwZ*;CsAJ zW%Ls5io?&T2~aAyJ#Y?R?5EnC&HdX5SCAP3OFW?jflW&I!iFx%AfqYT?95BqQcWqL zw0My{Lb3XQBn^xzFG)_4cik;-=B(0EnqTL4Nk7S?x6z(Hwlv7b+cXq<t`!#q)$70= zEN=7M1oJz8S_g9hLp#n4iHE_?mK`tb`%Sle%r2UUO9)?%HzkRvOy;~bg9G79#2m{R zm>pSS;)Z$-Cw3h;AjRUqm%3+VL^LqyTre2k?U{Cg0D90QJ0i?jR?Dp+KZd<r#HvWB zlwrz+LvjXN>i-OUJ2v9DGpDVx@kM8GmsgPVbS_ajs*1|@7ib{0glfWPgkB#i5PyA$ zjc$LH3*8t$BAWwdYI;HIsqHsBOeR-?Vl8u5cYbSzpn$Gld?@)Sj|rNj$fQ9wIQc2b zYq66tKS%x)1QNL?Je+qGF<AbJAt~ykS=klK;I50Ed0Q-SStmzvzv2eHjM;s})nguP zo3>k8x~gSdKE`Y=hV$I_w$h<5%FGS@@Pj8+LplxlI%c*x1`<?AhA>nyyG)&MozI$A zB>TLo_rx2IMeaH~o2Pkh|IOF%W@I*n*jI3KLLEC|551fZ!2qjHDzn;jMb(%ycTutD zEeqrGYM6|i`nV>*$|*WNB8SIKqT<E$&Zjv2H$lHwLi-<ecp*&J5;f+?+|4!Pq&%p; zPYyG6<cOLuo|&;*SPLgs<iLB@*}k^Uhw`ASmsjZCXZFKJx94J#`sDC6QxF%5Zd?}g zYwih~8uz?2!Zy(uTvTB>?Ce@Mob^;sQ@vb-rD-JW^Y}fxMb?ZYjh1^5D%EnewTaa8 zV@u2<vZ<y-&zg2rn9$K7JLN6(%w!Jcjo;wCrj5Wc_rTcquLSWI{!-4&8;F(v1DBx0 zKa=Dmp=<*l(-%s70UQW`<@vRffV3Y-dGxz4UzAhSvt-#HST|`w-1UT$33p+y^|!#` zqW!Ww|H386icnYp)$j#$3NL)F0K>2cFnDTQboa8zJRf7LLmG-@Lx91E+|O2dHattq zZRud=j)NS`4z5024AWI<^v(VZG3sDdk7s#w(g!=`tx$UtJ28gg_-mJ3bvb^v)aSKf z)$JB^#5f$6VG}%Vv+!ujCZ*j8z<^6a)!`LJ6&e=IGN<g_l$AOCtd(Vw%JZ9^(_EnI zSX@HoM_Dm=-BWH{!@&1#N`tjrWds_YlSvI|o*e{>aU-*i-}Wz?p!h^%HXLNCaIG`v zQc5UJ#f`xOU$=k-q%`l|`liekOffnCE)4>4#u#$Ty}MH&jKf@zQ;^dv`~`9EKY9dv zYv!$uQ+S8C>;trVemKGv;+(?f&VAlG@8sazCa3P?=tvqQlI5Ob!LV%5FsuOfaLB{$ zuiqawbP{W;D=SI9aw5_gPDSaQP-UYm&I*Njm33ZT->fHL&K)2#P`<g-z5@Qg??raH z&V_)}(J}LNy87O-vs_M6J)n7JgDs@(oJKYE)9`wTf)ycz*DVt?0;G^%g&RJfIX>D7 zzC@q9D00xmdas_~pTR-ua-@S~ooV-4L6cxP&6)KXtzMvFb)&2ShP!7_T_9!7D>V~~ z_>3qA2y%PU^#5YAz*-O3P#3d`S^rDGB8u)R1vib+&(<3ugK-bOHL~)n6ho)!>AtPf z)%W#;p`iYP{%fs*%Gu`ZEzErcYa|7_<)!}Y9yv%o5JO~pO9vk?IVhY;@7Ona@?TJE z(L}{gU;7I`S<7L>los~;nDdb0-=3;x&yF$o00z8Ut)7~AWD9f;!CgW^Y7D@dT^;Xi z9c-XFvFlR8MkqCWHA9N=TO9X@u7JrHD7$&rs^M3L+4-mvb)Io~Bwy=sn-kF6&44aF zj3Q6)X@1(yx?{`LkaL}?nK;m6D}0<&z6yU9cmdm5`b&V7%*(d$e$&EbDQgyVTCyRB zobG5O0$yn<rtC;zQDr+SJ<UO*1^CQ@K`2wy$CRG(I8T$*=+@LX$Hn;1nC|XFnr9EB zNT%X32U}<zNG3F0_v|8HI}ScaFk2xS)GK#1EUf~Arg0#D@s5++>0NnEv*2Ov@*B># z-_^@tJ>&2I3m%%AHix6fFYwO$2nx1%IEDC-EDCrLK6O)67@0MngL8_ES#jKq=9 zvG@fW`2D3Dhn&d>V5ajNRm|dOee~6J%##7kh?`PbkNyD!5FvY#4Cd@1#Ai`mf3wT! z=bLF<oOkS^{b44FlyT5XJjF2Co~tifbez2uI2^A_Gqs~7k=vSKKT8+mWd>~~gdC>t z>6S(0r{Kn!i;7v1Kg@s<&79*S8sWA{36sDR`cq7xwdglN;oYg7qkp9c@ryIiw9nJf z@VWR;`|<D0LwNVCstzbwtpmR1ec`Og40O<Y4WxwAf&&v5U^Wlde{peX;9rKQJejzp zWHuVrj$W7$H2r$*6azkZ6~CdAsk}tMfXflvbQOl~c9c|3ztk8Bpn!I`+Pt{#bJ?Hs zZZv44AoYJ9yL5KR5(EsZXJ#1|`ebT<w6CSmg=NC`>OLUnW28NVNa(Yu`aEFmv~bJ# z7?ernBLoKkugZ#|D`8}7q8u};R~R0uksL>xEp=Vw5?`T<%Z?WyC=G+;ZSR8^I#J58 z{G$K5Z0Ghje*U~~N#{_So90#Jy3iteD#7x_1iu4SDa>To`p04XR5_%CVMwwXsZbdm z6DwQj-$3G3YlyVr-*S1s3M^PYI%S1zT+EZc>6`=@?$&C(mYO}}&7}|D`^S8wF8Ffh zStNihnLdj)8vQEMD$ir!=E~^diWXh_pIxuS>-r?$!b}zV$RGHR7=>V#T{fyJKDu@$ zJbua+ervK~+!^){4MXc!DCkCzX3cEa1>UoOj+xs#32}*o@nlcIRIY4W4P#%1H7J8M zBap2`e6@WEs#QkGXi2-cJ9okKZX0|KU`it|oJU7$ovh#qZ4-5!>yvD2E@z3V8wGpb zOE}7AHxktt+8dZdwZRQ}QyOdh>m~$@;0H;Z%yP?-0&2sq>4WX4B<jnx5Na&jeC_-Z z3zxsdJn|kwSU(+c9m+biHrgVr$I&0}n0RcfXcg{&?__%(SNn`!R{pg=_E||=(;}c- z6*L)Hrx6f?{S)FkeA<7!kL^N-at>+`TLtw0UcKQ>F5u<#|NLNo?R%{+VooYG>&I*( zX#CX+?l>sFR&_rfAE!|GKU|$tdnHV;M&nFuYhv5x#I|kQww;M>dq=Zl+qP}<eCP6< zKhSsGPgQlT_3Cpg{MuFr56|MR#ZCBZ3u(8nzkr0v&*9%|^kd4kMow+BJG`>LYe>2L z9mD%xSC2^7A(c6qq%G3&`k&y!djLu1AE2%BBMic=_FuIZBi<y0#2W_fzUYUHmqPh9 zbE%2_7jP@cc)L!2;|c}pm*VuenAM5GD1yG3#u{LbBnxwT$Q;nlE;2U@jMU*#cRx)k z9SO9OJeY9xcFLlNsP=nfvbDSW5%6Vheq`$3-hei`Oq(g1G&ja{7|-<txgRYa<DQqu zOnu<y-9}U&{;W-N71sjn&KK*aK;{+u;#Po2Ks6PAaYwo@9^>E9YZJht84Z$2{?U}B zgBSD>uW*kMTW=Hj3ONoX3ovdyao{%?J1bVOVoA0uL^U0#6hkMaon&xsM#`zCiirA( z2JgNT$I!ZzLR3!oO5y086)(1p2JzplH}z4Mk?@E(=Yp3T`_8+SJvCS<b_g19XCi?7 zo9vo`NT{GN`VbjMb>c4P13tU&eN#^<I7WkAZego(D%49y^TCSMi-<kk@8W1G?M1`q zHp*8D*9+34xiSdOM9<)ecx1wL3&#*xn{M0Kr*Ow+)xzj!L6@;kNCiEO>jlmIssY#k zqx`Lq67MXFt`yRK6Oi06NP*9ISyE)=!TZq<%HQ=bT|{#F1y0){O0L(0AwR?a@@Y+n z@5jqOpDv}~0t<ia&hTU=FXouQcJaX4-V<NLm|@jKo9aH{JEC1&x!`e{-MMT4h{=-Q z2addS5}?zQa^AQj1>N!WH@>_vbpPt9XZb@l>%01&g2fBOcDaB**3AM#^e5DIIo|lr z{Kq2u+Tw@mW`b9~GDXVq+j}i=rdKuY-;5WTgP-O4hc=bkk^H282=z*54pN(t-ABZ+ zK^sbVZfQZaKBZr9=-Oijh_MtHBaeI;%rqzJmM<G*=rUeg&i76EJ81(GUxoo!8;-RD zQ1;sT-GOyt<@o6@ll5}}&c*o3Wb_sH-o;I6TC#tYa$+3C4G^6RdAjvZ1GZGsRM$0z zx~EUPBUFd<QHEiPhdL0LEH_ftpDF^@QsAOrnNl*LW4QVv(w9<Q>#%(6b{pL3_e{)S zJS(%NCF@xJC*vZIGQ)3cH^mfb1bl6ph@-J=AZ7H?(KG|?V=H_*bD%@#TFh}c@Q*8L zOyu{k@amW`?W%Mr`)U=2_Qn0Oj}E)5(Ym(`qn5^)WK<?<HT%Pxn7)t14D`O<+R!=) zmBXQwo?CIz7o22#ZE_*8Rk}u?sLp@vburC2r{ZgkC-|Qk!~2h;^kfEyUYEnb&)~1h zp6U_e+uQ*0x*T{(%J;jb!6uB0WJ)w1%5_y!ywvjcy&=H>)fsI)b$$v24~+j>WCJ!| zF_VOmj+g6Oqcz87Te$?80MGRpw98><8D@^=3mm}9i=JJ$GfDY{u*R6}E+oxNpffaK z6=urSL#h!mR>gw=s{kerxQsVdGwUdyvQM_e+hdg>hyL!=T59}7@=FMUk$pI#C)kBZ zlod0DTgb|=_5Mi^ZoiEpeuy=($+63rqwKl4g)&!7F>~?EwPBVC?4=d=7>BgSIfaZl zAa|+>_^u-#y~jLm^^K01f%Z8@l5Xi)l4VZsa}J^%BJk??dRWJYFI~ypd$IAico~e- zM(NLEFU^Tq@4(P4>6p>+yCrpZBiCw3=10kj{VAnG&{+h1;cf81-6>>l9o@ur&dH*3 zKdSaoF+5(PD1Gd$Q8#-%>DWhUKohnULhK|Y@@aBC*?$Vdd7X4VWD~ikeS<q1^Ldk( zH>2xmSR%*YH_jRoO+~%D9iph0l}1zq>L&nJrSAczcA*x8%csPcu9Lt}31{Iw>g+n4 z@Z*ZWOGnLCU)M2kS)Vmg@GuLh&v5gBxJ(=-II0GEkJ#Z%GD7@M7bo}kHM4MRhOU$q zu-Qu?d63dpq_UC9(+}>g8w?gm1@86*xSwKh-;LwcxHV(4S@}5zJd8#=UIBg}^Tkyq zyW8QZB7bga;<>hyaf0~?Y@Xok>=vJHmJ2L(TaYnD_3}=092|Df!2)rS37?hEcMy2! zVBluN$;YVKneP#F1Jd&_1sebFql-PZ7lc8q0o3A(_9Mi_2{@kcw>1xzY?DinwqiNs z&5Pv`zWdh#ljgi$`NG{xXu}?hov+os<sVPhHHXzCMrzhG#4PG|C+Tn;_451$Dcv0L z-&$=km~q8gg&ycWhNqXcRmIH(N(DrIpLdkah8eau=9q~&z0w<I($;7vmaq3-baFjL z5&0&7OcMvoj~PK<1mIA$`q@5deBfBeB!fS-<biFT`w+$f`f39*zl(fy2dPWi#46n4 zPI1Z2@j=32tlz(9t-4=`rndgAI<>Ot1*qK*EW>svvVeqF8Xl@S;emw-OwI$C1ZV_! z50k1_1yb91vEzWNQ)>KiUIU5VouUBfkBWiUK>2eFIcL`zpk35=nTLm=<xOd-AI!R4 z--?c679!;MYiJ^9+tIuh$tk*I3kG{u9xe~P{=U`rKfMU$v5(weyFFX*0{}sv_eb2a z;w_Bz6NR=9yQjsgU7zuxeE;{i8-wX6;HA+Ix`8l)Ttk&{Yw;p0|7*hADI5>R2K>tw z(tguFs^WN3KZQ954&y6`m-t&h+`hd#E88t^n9}spvNrxL5caa6DSJ_!Y~iB0>4)(@ zZ3?nqn=~FhvI7H%(uFr`B}H6NqP=f}-Hq{@QPMtIZZiE4GXrG=s^7x<Z#wj33KLxk z{aw*#v$d2vdyoI?fr8u9ascoPgiDzl=$2OYgEReu<8RM){ZIkkCt7<36hT(Tb*dyl z!RXn{umK|NX|G6J{B5j0JX7`KQGLxo&0-(ssAX{@3`B}WGYmn-M8!B22?j|e%`gCe z@x(0;f;SoWjZk&jjJ>!EoUpbti-ys|;P6W@9F}-P;Vp*mmsX!)Q+Bxw9YmA2ur$_v z+&m>J?&(=O^sDzdN``q^3AuJrG8fR=i5&Uyum@V0NZs&ZeI>9A(nV=yzU?@?vHira zZ_8kZ+1p8_<kJRzaiqSMt+Og3+@<bZ;8-~uD9?6#z@gTG;cOirYLfo5?<Ix7l=+3S zlR_)z*am3L%X{`DU(t-mR1iwce?>QP=nEk;%U=Z2Qck#V$cBlPn)v=@?LeRH-XB2v z*JphdjAwL(M6Kf7a=PAaa2bxWHMM`6e{bCB(Fb*(HK_3xj=xLxM>D=!wExlFAp<iQ zhE^`|LDUSi?FGf+0TLDklxdJ)v%3hNZMa}l%lisWf8X5iFmFXSQrmkB2DWl#X}4b- zcsrx-_e;fPU<4X9VnuXHgZsADVtM$;{|uCR&`uq&(1qcIdtI%A@7N8ZjEVVQ&8txe zBuf!}@u&Kx&VPF-@<7AL(+aE(_mwN5Gq3wRdi3jhXk~yU-M4Z0>~njvW+TvxW028b z7_5C(PaKzS0MckxkZ`-V#o{BIZ7zYTo2}S)bv9uk`Wf+xA5_no8p`ppdKT~=suIj| z_|Ac|9dsU@cv|*r<<}2^OVk!+v#|#6%rfn$`8;=0$;xWSm58O+x)E=5t--<!y=2X? zdtB)i$F#K%d<+tCcPr<BfGIpc_D~Z}TDOPjF;29E$j#a!uWvQC+G16GKc1uV6Un_r zDGaW#roTCwU7us|6HZ!6$kN=hN!utz`{zg?>+b;Ubr1!l0TPz>s0W%G#GP~G0oE4I zm7xzh9A9qUC?1BmUEa`>ZWdJ%E3VZ?@`HZuHn(f#&6}lLdq&%VFX-l~;t05JNjvjp zxkI!(<JX@i0eu=b@{*Y4W!-7=Ph&K53$QiB8QcWI62ge|k@RscuBRFDk56N0+bKs$ z`TJsLxkP(DJ2700&b+1-8OHJ_D-SCTfz4JkdTsqA&!@pI8{C4f`$LiY)BE?Zd7{*q zGXGq-T%4r9h|k@x>r#-*c*R+$@rWm0Y&O=nGv(V+&h`l<l{{q&^xjjMm7WO`9{*VT z8N+W29<Y_sILlmfI7&_Nq%$sLsP}E$mI70Pd&oM{l(kg!(O^&E>b|c#h`c+9&1vW1 z|6rz#Wt`4!rgq@+W-Q*mTjc6aSS4n0&`&mG3{?i&caUy9<kh*}zROuoznk~CRQ~Wc zTQQ>YcVbOqt)ORWD*y+rh{cX*<vki6ejTgByQgHcmgLBwGIX{#{?JYiV6#Gzco5`M z${r`Cn}|m!X2u%_Z^t!VE#I!?oIZ3Z>Uei#>im92yChSr9hqyh72r%QH!8Ht6}GKc zc1ceK>&&*}o$Z(v4iq@POnjE$e(4YsL}GF%icGl*!=Wg(2`wfF#}^1J$F-ljr)UiA z@wga6Q%Ef~F;aK$qrohhY}LPWpH(wYN#+mP1*OyU!J|ouT?(M-`r2jIO8qBkPC^|6 zsULVSPX|s&iWWCxU1~B^<e35l{cm)1Z4fpcmEPG1I==OeWfz`_;4gnzsI+7!Rs*p> zOUx$xW?0xxo^2V!4n#qkejkf_Hjo`zb~~DO+fuE+<#Sqi3|IJT52ed)rvW{@O_Z^& zFXoiixb`#L5$O5=&V{QZ(9upfkI&vQ_O#ZU{)zJNilvy?Q{@!z=s@F1se+W311lLa z!wLLVn>QZav^i1Lv0_;EbQo@df3oP{F3^1SMn{UkzC(X{e3c`sd9s#gN-~fho=#tI zj_VVVO$T**GKu^rw2AKhHzFE>jROWeM?6Zp8A~&vJsq-gg3q|?!e~mFd?fI`{p7GR zBL;CZ*aWSBtv&ql@d2KVtN&$F;QGOl5bMB`Ap^Db^@k1A-1+|hLt!0NN!M#&ARv8E zARt)(cO}@&)78x0#md3{zrEl%)xP)~CV1cj#&Qd4gUkbH+VP@2lA6NOb``8yFZ^66 znRNf;?TZ_jXhE)M2gJ~G^TVetGqxSS=H%e#N?g^Qw#-YrW!OV8)_kKlWt(fvvh~Lx z-VI?Inzosi#S;kPmnDfao7PZHd$X{?Tpuc*V>8zRuygm3DQ9k_m}QfbAE5QObyaxl zfp&T7(5E)~-UaHB05QVzyF^#LuZsXh4BDUwjZL=?220j<jlmSEYK&^{*BgF+cijwk zoCttjEl<M3p`6?7RX~WYbJZ|4VSc53sjJRHMb81eDw3Fb=T0Lp`HNw#=NAV*<Mtj< z_+XEoaL}`A(($B8Zj_UO05wRp5ioli#Dzgg9G2fSTAoR_9TiC5rKR4(pCwhM#~Kaf zTRqoQ{wuERtyv!pk@B9F=r_Y38-JMCOc5bJS^y6zeh($=;c8d*Vf@Q323ZNVRgvWO zOwk>KO280OJ^>)C(FfOd;`mS3{s>@k!#~Y|jEHU=bJbG=;!%P}O%UY*yA(7h50Tul zX^1k(Rd634lxa;3B@9;Gfx;XsCUFj3dkCS?7nJI^;ErPWDzbH1-%F}%KWV9g{~RvL z?$Ib4tj%ruGcy<t6tAXDCXCwhzN-b+k!zepHXB_r(?29m<!XuSQurbj{%MHs2Csi{ zS19qJ0Z+*i%}dH>4r4w?crxuRJCSY&tpI&LPNpQ1N_Q70ic3;K{WqjA;Zu>Duvk6^ zZNTDgX@bx=Jv5mopulIqTzLXYF-`GEmh5E&(R5-hJeVphTe6bMTICVJmT(-8Xziam z_->eNmRHZf8e~Kssy2jca<6EAYo3a0r_`TBH+5lyD5)KVmbS=|M`f?~IO%u+nGPAp zm|5jDEpWU<q0o_j9<o9j8m2b8&0u`EtXYO|E1E;srgCTc*^@AhHX7zFEtVrOW~Ys< zW~;lq8o_;dh#h1}%a!mC;p!dy|1QWwoc96EAwfW-;Xy#q{_kzDu(dKa`Cp<=eItH@ z1KICI1HJ`;t`P9gegCp_3w?@$9*i#dw^ULD0NK)tj+s`8Mr!CzrsqFP$e|90UC^?o zC%v^jpUbhc_zj$uCB00U_Jl5t(qA3zi_Ri(j+J6oni{*wC)>X=IxW>)wbfe9c7yQs z7S&DqQw%E#%MYcR(bZ<|N%R^MZ+vEbzC&yKXTJV-Y`F&0^$gP%;^q3ZN#jl7<ytmo zR_0#R8djUO65DpkH98yC@~FvbDmF64X6H?<Ij%FsN&$K6b_3>~^L(G{ziLayr!3jV zJ>|B2@1t6iTBT!`Jh8-ANc$;0CvHn+DaC-uZX#$xBK0;yWGf}sGPQkHl(^8O4!bo8 zB;9^a9#}kkk>MAhqv$)~O-=TiVf6tWT`?47s^a~L^z8w2cvYd+V$-IB%d%9St<P3U zMZp20@?QI?sVj>D_R|%C9rH3ZDD?VQHBx`#>RjlneqYc3L(y4h3RYHadUBVpyw*}t z|0tKMy%}3}%pnC=Z3DCcs7<vKM=I=Fo3opkr>iCHF6z(wqJX|XJWh?-;w7@22K|TR zwcGAdj`_N+QqvsVlUQv3CG`oCoz~u-q~gg4Y9Bg44*y&1T=s#sc(m84Jx5(JD;~zY zpV!P1a7kZ*2l3hmL2d7vXoIE%{|$}Vd3l4_$>;eOKC~SYA8FfcexSl<Ix5fN)@25r zZr_aQ9T&0D`~Z2AG?T)L*md4B4cuLHpBUU|F=E9Qi*4Y=M1-2Ne>{z@^lD)iO^+mf z7>>)6i>wKknI)keA;xnpOTHc0edYb^P~v;#nb2qG%8a`Q|TrI!CCj&S{lMg&g>~ zv>ex=v)8G9$=Oyl)JI4Xp_vs=ZAb5Xe6@F{!>k|6(qp>H!4ce<G}R{SYKWhUJ$Z{q zamxWwb=_R=E;8r6+gtHn^g=|fvq$eMq*xLVpWo>ZC*e7WaGN$)vcqMd(=Gd|T-39+ zq^WL8f2C4j<H`yEKyrkg-aV6Q#rUv>U!06JGT4*#b9%n5@2ejCHatVbuuW+6V$C;n zb!fk0x=dLEJ$n*%+E;m8MN`#eJ+MJK3A1yT_WT@RlCo16tlS^<aul#m9w_g83B{Q2 z$5XKuMkXdE5X)f6=I}Kbk`<x%kQ};S#yp=d-X70i9Ex|00}dJ3@gY-0JH;Z<YoGb> z-~BHAL;EIX5Xu>(M)>_g-u}QTc%xT035|Ot00*QRn%zHPsOqoS`B^~ui%7+Rc4=uC z0jD_<<pg__O1J`tevysH>P~eR02uHa-bj+p4(`3OgDoYd5pM?V@|Vlw(1EWOp9c5- z0MVZm!u#Dtd=^Kli*Ph#;I{<Cw@K2w{ak8)@PHbhrqj^!Ul9{91iz&%!iPAgl3piu zabv_6K7kD<!Ls!D`vURSCmw8UM;^~x7i>6Ww#e^KD1rsdR_#G7HaV-!dfbp(j|^o7 z1%ps5@wru<UnAQ;o+2iz*b*b=L?aVFeV1vhF$X7hoSU`weO_LkF)S0a)Zv+Dh+9&x z!5XMKeKQ{Qc{`{yUd*{Oq(1}I?^mD!wIb*MHOrM0JxWoPYE7yIw<`b2U6GcI=6+b{ zTbTRYLns-=>FBQGp7qYK6ovz@f48;iNh&KBxjF--I-I&@hRsQ3VmfXcP(YU$Vp)A6 zjtzS`Jf`f|vP%FaX9~~Cz&x0Z{Sk8`V=jODmoqlR&C{}nWrI{m*k!%PqDJT1vpeU! z-A22fH}E2!xWvPb?py<;9bBOM!)0mp>i5>tf8wExX$`HF7dug#pg-J%MdyIf6!x<l zxM$6G8*)6T({|xmE9UVRP#6aoV+qXSIfMWEEdSFh<R<#BK+*V5nD_s<B@0^z<NxKB zG-X`=dzHH%G;B-3sWpu3EWGbxDHiU?Qt*?#lb^|K$Rb1O7SVe_6v>`fJnl${qm=o$ z4^<6hQ)2vlce;1`3={vEU>uo>?p2~rkRK>CEY%oyj_nmIc3KAt5uZa1!eWY>gVIuS z+|Hi1?%wkJ@GB&Lu<t3Tf*$;7r9aaH(`c~7u9c?!2huO&>G^T{e*BJ!sR5VhO4>cg z(iS`+uF@LVPeUyXr%45vnZqH;?y$G+YzV&5(o#mGebfX^LT{h#&1+8-UjPY_S}ns= z4pH2bn!jz?$193)GX`p?I@r*Ql{$B>sNUn#2dBrvQ;zw{S6K^0z{o;VeD+~O(eWv& zC1xR-OC_henh{T07p*|eGOsfLlp7sf@8eaY<B>5xg#`tR-NsN>qp9rz*)7mDf8fC( zf>9p~w`4BYdX}&7QtcD5>tGHFW*?%1wHK<qOI<@|c-7M&lS*04Bl)jTM)!cLa}KKU zMiaEpvI7x~Vapk61#C&{uT3W22-m(*j(DqTa&Y1_RFNW5K#ESYfpcNRbc7O(%2Iy6 zl=X#eha=IqhVxs{aO*=%;svF^GYsoqCYo}LH1;4LeQkmtWojYGRYNGDF~xk$WNuK! z4YNlYq}7d`c@)FlnN_Xj_42t<G++H^_yK(EVUbzr)mj`VqZpAet{=)T%H(M_%)3vz zFj7i%A4|6BOlyOd5x%)&i9+Rgelinp2quW9N$Y}aZO&iiVoW+xMd(A<#>gs8m@HS# z7r_qGgyF{mbV(4|)M&PD9o&i4xY_O}hQEe2b<o&%5-HUm-x64abzbHJes$7zjz}x{ zjSM8%JPQ|m$u`m;hDF@&x`0tJcA0{!p|lR$V(O?Kj$+}DC=8x(|73_1P8L5npWuHp zE9(z|@?gyqgLs%ahpj~ogl>2_X6H7zFAsb{ZX%{`e<sdTZ4=WWqFJ=u=Ic3-+*@@O z;*V6Tw`dz(lZbAYfkN8AOr(42m9pIygaib1wlST6Afa|4&@j;_)?<$dU>6Lwf~qAh znCRy^IF@l5&u0OJlEGBOg@>K9LS%`EcKEh;N{jgtv2;Jo=G~M;HPYY9*Mb~WS5UNt z5^(#8(Y_}aWoClErsa`{1XIO^E4dF`T0)`hDD+0-RnD>rZxl-FQWACOJ2s)#2v~>) z(k1&mSZB=)Mw<d44z^HMijqw&!?TMV;kX8^X^dKr!iFJ~G~++j;7|deCb)WvH6`v& zEGDhi*`g`DdUBRkTlN^6DjgdJ4vu*Au-Z09;&lYPTscm@>o+TKs-<JBYDu|(J#*=d z!?s))Db5L+>F)it{?H*XfSR(tqU^LiZ7l3^_M@eqC7-NOdsac!WIoPF^%=@$kRUG# zGRG&c1gDr(^J4<z3z0xcG2GjN%ewzc(;388vf&^2cBdJ)F#u;nf4;%CH1*+@(oWDB zU7oiQW8YqUp_#e|v^>Pt)0*tVYHobJ%of5&QuZ``X*hRV3;}$Jq)xV(r$a@Q-buqi zsX_g7PiZ=(Iw9J7vJ*xF?DmxRc)JD5OS)FfN=&RPTSxyORDfz4GFHisDS2%qM;!g5 zo||&%7*pLs{Mv@gpFPgfgQW>G@fDrV>a(q<8aoqrvFRfxfA_nHLQCV%Ptm=>zSY*N z*w*wkcZp><Y2M_qbrFIA1qR1Y*$<k}M2PB3^q1SVK2B`|Bs34f=!niJ3LYyuwg@&n zj2$Au4`#Nq=2c;S4?CaW?vt?9#nqo?wrqW1=CpXEDH&_qPd-<wu6PkcVHbjs+ouFy zwF`XLFmn)EOh=Izrp@BY0=Tz4!Ptkhd$8=9?k5?S9U~t9(9+4Phj{`g8q^s?%Hrmp zx2`~1OYk(oOMdDB9+dvp_BxW#t@x_G@J86}Z7?SUt*tiKu#R!fv2<rj3E*Z@4fQ1m z^qwP-e2G{34)x2;rmj&&^;Nc2gDW&aHO2CVE-cJ}@~~NoubH^(2%|j69ZP{1(lh!X z^4(Cnd=fUktM&18+*~k!djk<h)4&=f={OI6ouRo@wmgBexy7Z3vG{#S6VhVZM}z>i z$Ni=H|0`IL-#)2lV*e}eK|ue%Im5!uik_8)!OYX_5*XmCI@H1C%i+_+EyckNXZu?y z5JY&cph$-8f}(+W4LNOhI8Bd)tS_3)-b!YGJ5U3xui3_h#kRC|``iwg7URzdY<pP- z+z+Tbrq71{8fOd$RK&AcjEcdPk;QB}{5QjD!3neavE3cu_v5vf;xawS$NDfi`M~$U z$2v2qF4!Kz>Wn`!kYDDs=`a6ta`^ocfd1WN@kyNRL;f|D`GFv_o%1GiP<-*Q!tVF8 zA&2D0`Lh?%{Q|s^dE4<O>yi4_|1RE{sBfQ1`PsUu_dh(Ysfi61!{N`n&BU_*a7h0A zF#6#&#rpV0zzKe7IX1p0`G-{3nFO)AA?!c0&6$*P35>i9efdfd*o=Jpq14@Ch}SV@ zat_}~&N9{Iv|uyEo#(zr_(ivLK%onb1ShlT1KOj)#lW6K`F5NG1zdPM#Dt1$AiYV# z`e@rl9hv%qet!)3SXmF4T6Mjs_*D3@|4X<=*7xyH2O+Ym{%xJ%8?WQ$vTz<z62Vo+ zY`~b34H@8|hXDP=<FMS<J`kpvC(PJ<gXg#x@bAyhPtQ;GkG15VAY^B}bqI?BneIca zV|u<rQZ`kmlsN~-1vwo2a(qnNtg9StCBw5_^RQ){;CzR>KXQfnCjLz&zuV$w=(MQu zup}O2%*RxM*D+&edgf)?8vmIe6v$mL)z-w8t+L&Nh$vXHr)ltf|LY(SYR0MHgn?bv z#O0A~=Al8*_1lVGf40M#6sqOb8BTWs3|JQk1tzBdQ%;0)Ao7X>Zp@F~329~_YwPu< zrEQWt5SXoxbBO+?3&4Oy&j^y-D!hWkG+fA<1&3Vz5XFF0Z%g>5gQIN)*fJn<F~5?q zK?zLJ4)wa+!r(BO$emjKRhmK5RyM4?oA)05wdXs^x9$=aq0RA-Nh^xsTb84=r2J2L zT-dijr1?Nm#T$CWsN}OW{~_)#Wa&xJBQRe-81WVl*Q+A={&$ij(FfGyiE!tJjDeJd z>4|tbd7%Jupw?Z?<J-SSoWHi@v$Cg&Q1eO-yy7Y#Gj<V;KkEtPKh#(d*d|14x``4z zBgQu;TP+CVWHxZeO?}fU7hJ8Hd>O|SA?M@4eD91kJ(GP6Z2Ekj`9@9%c4o}JOmqQr z6b$xy%86K~$=&pXd|rZI_AFA;DjZmvTvk$e=uxK1g!~AmEM5g$zZ2TRt|ZkG`=b;h zlKSNlA!np8kx>6+7N8CN+2F>`;FEv%!dslp(!=?J@dwFC>yv}xip<Ckgv4!j&)}LG zLc!9gWbg!Y>=fnWI`j8l&KZQkZCGtsmE)ZvMX=O@5OeG*vl0qkhAQCy{o(GJB6?|4 z^2333o5SZ%nQkyFEPUoaU3=uXC2ubXyXStoa|CGU=|`|*Hu2e=feq+jI`+Djj}$8_ zw3*jjFr+(CaCAn_)c~E-j)#N|e%AnVx|OW%c=_Od-U(D_BNCbf0ed}Wzy6*bn_FWd zqBbheM#OUyN1%;JZxhA3?aeUnaqr0r%dqAK`wL$h{tD(1_jll;w1gcXL_PNv%Gm2W z+YRBQiQ^P{eT@1j90&r71dO(G%|WP@S#wr7{lgIk4(JGVK(J#uy)T&BhtC1?KBsfR zN06czI7Vt<>*<qmU?CovA0|~iV0rhXIK2879)j3(FZjEW-lIsDczI`=Xy3t#51xDT z@miL`4))iN&MD6*CVTw8hG)gR6LSmqR6|E`Vcut@{U7IEfZnJa4y|AfGD%RduP3|n zsF9*VT>gO3ymQSg?P!jP6IeK)XweaW-7xH3JKEvz<mlvRPyFaGBX0&>gF5+paqV~@ zjtQB?wL#%X^KqX_YhupZYu!GuN(bat7hCq-q5k(ne*yJC*1tgF`3yKi*GgvQ3eFNH z78o_$i=bu{x7~BEv(cs1D);>D&~mu@J-428hFA7qBeOQ2eCWtWV(COsbOXtQGiRr| z4pwM^lq}i|W|Eck=}m_ff~6sS#>{ccJ;n}<Gm<P_ai({xsraCIyi=?3SCC#HYk$r9 z0`+-a?Lhx&w_#2GNhPF0zK#I1D7-AK7421fC=7yR*FQb&czmBgMggx;MQ#_Cn||bQ zAHaSox<3O|W@RMpVaR}{hrbJ>iprtN5#VIeDwqBpO~YuFW$jHc2AQbJ<2hmgm^6F@ zDaluO6>LAVg=)fX$4iOe2<SgAKW^mKnorj$+ie+S@k7DOJ{vz)NL_)&1R>PbD~IuM z2s;ErMUPZ94ENei!@`;I!b>2g6|j+vUH2xa4*$w<n(VDrz{BB6RpPoMN!h-sD^wU} zpOPC`RoKuPD0IM83}wWfDqeVyhihORV;Mj@KEciM__I*ZB#JrhV1Ic5&BtRdWCvcg zX#$tR({~s2D!V#Ie6rvm>`Tds;&{I=_`c@KVMZm<vdu}1D%NOg-Y~ymox5Au6Z*VZ z<?LIqd6~-TZ8^pEi<Vg~t7<U3H0n_7(3yt2$d`-szHrRa|2Pb9qTTYmdIqc*Ar-?m z%|U2(?3XpU1WCGb+BHs+eM%D2S>OjwL36>M@nVTGgSbrIAT759^K_rXHNs9pb2L=A z4m$gKifsNzTMosX>XCzDgJv&^`UMOks5Q9-C9)3h3K-mtx-l@l;9AR_8Ljd5=UgKR zoRcS=3#I!jiB^7VXIHlJq<FoIU@><lqFx&hpnBxIUfwlyIDJ3c`@9-V<u~=j#fDwE z{*ZHVB`>o!dpT8-?-6p(6{>XhRQ_AU1!zAQvVb!cstma=@`gMEZT@tmuQiD;u6q&) zK|Gpbv^TA3kIhD@TcXi}4g$c@kC&evFEx4ojcGL}RXRWb?KqO8CZ=q1&>Y1Mr(>7A zsdxS4)F!Ld&J$x1=mhKapVG&BQ29Sz0Tfr;S{$#GBdgH$(5E#=H_`RU%^P%(oQm1z zL5$qiX(0iw0eots%GDFZDKpKnTW5wPE2MQ3#VSi_oMv(hFkWM~)YAWpEfvGnl4GLo zWC|~(O<R#ct8nocCW;S!EdLv6mwlYnDbcE~9S@2S+SMe8f&D+(Jon0Vv<#Z14Pk_f z6Vw(gQ3+2SY{8G~89aE7`LGwGr?mGXCKQ1fNUP&MV1kM(yD4pc8Bc5HS%4MVqFiR& ztov-auX#K|d`#D~iCylDjS2|m1tQt5!z6xd7PNvlZV;EWjXvgjCs?=(PjJl|8Ul;E zzBfksiov~!b%_ctD185%*!-KfCWOG!d0@~oiM0@$89UVQ@tq@O-biwp8Y5WRCkBx^ zKz14|=QHs>Nhym777E#eN-5-%yK0K|9B&<(7ezNKgH8;d56*~R{acn%Y#xnxqc_@{ zz`!kee#|7d=QD(Z?_XF(EM=;|lzXHs1oJEHwBag6E>ceNF(g#USx7|SFYd8e2l*7F z>XiTV(BIKA(6?y_2KXQQcIBFt1&Kl(<~o{k3m1vd1t`Xj#dTK9HETjP&UF+z>}y~L zmn)7XTP}&ME-9gk2aUN8?~9!oK>5Thsn#_oRr%%>twSO)l|AyeD>wDn(KHPsu{u?o z`iX%^-#3BS(e$cIH^_StpDkT4;@epIOS(LU%qkj!D?Dgz%x!8c?s#dHRPz`m-+dd) zP(jGVTN`%Qwg18fG^(1Ab3;3j+&Yc9f*y<f;4_uADNVexw6P*k)1#o}>}iC`w0}#R zn7JBfR~}+gSDTim>N_{n1xkixTE`SNd3JsROeC|wJ!Mp+EDB{Bx|})Ly0ltnu^#y@ zKw{SE#1^6^&MhOdoTF$FiC(yLMN;5!spQPx?m63&-|kOiyag<4v0oL08WrO=jymwn zLoQ=U#X$W;B2E#6X)v2w6)`WJzlYg-(-nE#FQC-Z)sT+P3;Fm{>my(vXLaF~{8|2z zjiP;_UGTpu<SOX6xD}U>dKUv3C;~3?)!=GyqK>^J6oIO}$a8QZ&bE8u?-+VgQc1j? z?$#^*rb}xQ{|#v*TQN+23snWlqk{J0pwfp}l!d3+n<&e>HbpfS)NLh&?Q6<+tZsMV znMsHQdW~ri{1-xdjI<zO51v(vF1e)5o~_DWCF7NRHLA_o8k;hlQgfvubgWUEvOwhl z*PAIxej~ZXjDt#vI?9&Jpm^p@7ZI@vdeVu$R;5}i6C@2k2Tvk2CQpdQdwzj<$Adc# zS@NvtMx+;VxqGhi90E0h1CagI@xJK~x^XuFDVrUsEjfXLj=L1xo=~sc8TR*>i?TH7 zJmY@0lQxP$McN8<l+}xmEzz_#7z)G@2V|u+<O-w|vM_Ib9YTg0>prOb(#_lpw>AT! z3hR4;(%9S9SeZ9cUDSw)=LA?4Q&nf56UHA2sNUE*I}ZYDbMIu>49mPWHjn#LeNF6_ zJs(-!#m+gt%jY@*mLphrH#TP$yd`>0*XQD#MZfvMs2He#v!8u9dvI3(*z@V#Q*_Gy z1M?sq3VrADlgsYZ(K+P@*)4Nj(?PN`cT5<5b8%gR^Vb5<!Tt)^gegg^Y~TL}<lc6r z>Xh8PSR4d;*vv`4;)d7nS;F}01=Z8eZS2w_8r+@g0s$4P=0VCe9`Pyk(=1aMZ7W0B z3?NEi%lrEBo7wu<QQvWUH$J(+s!vwjkW5;_E7sg^w~e)ECT&*L0tfAJmRA0=iKn*j zpI7*J!84e<blb3OQXbn7?;NnQR}k<{U=596E!IG`(foyWkS8a4i#kI2p(^=Ba<ej_ zgx$!d_Y=@T<{lx7!lGqFqL}+(Dj2^xS>s?Z<pPFTJF~({#!3*+Ot#qQUO3ETf=jTB z6!_syS7Mmr)NbWS)}uplUlol;hHVzjDQq>Fwr$W_EyyZI6O8i#UYttdOb_<!y0BXe z%O8Kr64!f3j9<4*AXKFvjjP&L)};QkGdHsn>><GH;A4j2^?sr5j<~<|#AvO-rkJN9 zwz$fPSGpa3+RRjv#=8n!53)KSJ9Z2cJ%#fnY}tJk0ffBmrz@JDpI(V^gNw(k!gA{+ z7+1rim2^!CX*1PR{8gK^zI_92CJkc}&~U<4nI$vCjtTC(UscFUitk3m(V$mAvBDEg z+oFaxSe&l)Y@b8bu4<j}VV3L}kevox$%o8SM!Xf_hnM<c0ZWkDR)7;)I63@I#9j#t zFE~P!IUMDTnig8&mQ6WG9oMB3vcs&q>|Y4UTSF1vDL|215O_Eo)UQ>6N%+vtBu(() zZw(f81FeFY3nO?Dh%Y4)Nj65HCn=4tzV-zOWcc%D)J)vL?b=YcfzgZs`a$z4qOZJ! z$g3>}+lU+Kvv?mv$@4oIv6_$yyfe*~{Q}PZWi1Rt!HU6LX-a_CfiM1L;aw*+8d66d zB&H?^#5Iw<V)nsDHPK-^`?IR9&EFW0zr8ja{_wjjJ-%PnnNYIfZ_vq<v>)W277h)o zotKO%uju(v6-)d|r0bF=<NS}WB;u}2lt*(%lC6(#*^0%Xzu@#HNql=-n1BnKm=tVq z-<6M@TrB$2zCzY3a9oe<aNPD9Fl_PmjB-LSsiIWYu4E+hXX%EAOWvnFCVUm&R`%}} zv4tB2c;Idk<SFg-?~;qBGZnQ?K6s6Cs;_vOrFHf#VM5Irh$f<Xw}JkVm?$fdB#ExA z?|j%HAJK}VfD{QTr`!m9X&0mjE%*#G3O>|S$YgFF&_|+BS+Oe%a7X;%)?9xWgtIM( zM$-8{8GaJ&`<=c#k?&2}07%Io!1Za0S1Q3HH>SIYCq`;b>HRE9NSe8>SX#QbZ(*__ zhVvoGbwaz@?-L)(We7H=g@Sy_P@3BB|GHGQ1?N^4Eb}o-Osx`ol*KS>zdG%ikhf$O zM7u?(lW0rW3~{N-MLNg%r@%s-s($CvF?}9lXtG<}=4Z&?Efnc0bqA^JU>a~<P~(&G zV<mi0nXoNgZ*rNYx;D|~$S>i==68ne!*V_j{ZPSr6nG1AS6No7-tr)6#Z%;#OXi)> zkSihx(qL~*PYYx$;4xG3NP)@C^LFFvK`AGFvBpe);5K5lTZQ5m%ttj4agJaf2~Oop zU&Xb^Mhx`DG)#hKQ)_P)>m|_vSN&y4Zq<U7bzGCF=6doUlB`u@g|jie^yhgRw_dw^ z0wEu3%?bPojg)3HXqPzVGo-gAA>dh1&nhUjm?>p#^q0c{kFJ1j8vk80ki!yq)K7M6 z<?3a<zO-Oc9DGhiEBEmy{c{NYiZAf>I}>$CN8!N7KjA8CRlS7fm*t6^tI53yBMdOR z-o2%Z%raoqhsbr%k$n!L4y&E`7DGY=zO8bKq87*xikv>(P&3OG-Juq{sn{8yuc@@q z$bl;Pg7Az^J`{tk1X<|@O}+<Qce})Qh7-;iB5C$>93bXnf%J5Q@M0Xose<&V2R2K) z3yD)GC;_hqXTK9+gEKh-5shYqU#<;vCp+ztF6Q}bSYI0Cw?lH*x<H$R`C+Hhuazp4 zI`s;J*~+V=$Ac2FANS^cf9-{B`$%-ZZT}(N3D?J~J8QhbY@vk}PgeGJ+3PyGkGtn% z%71jC&^d@VdIB*f4QGHMB}WuUPy*)flL+8_--NObhB$=Mgrf0qKN5zJxgh~+I7v>2 z^gZkvQ!zdqYBZOjfj^V5B`fHo(q1`f&TTC<N6y8nbIxA1sT<B-#n`@@l7NVi`fX_B z$wu`&&Adnm`6Y?!6@lQM(wDNNo6qgc_6i5O4!ykP`*x!szDmB#Rx`2-Cd+Jc4k$-F za8DRe$3MiNw-ykZ^ibP<FU7{Ya=rmX=#ah>#=9WhoKZpiulfv7-?Ru_(3QmKV#m%g zK1dx;!et`V*`({il3uOzbf_Z3a96_P#f-ra4y=DKmZ18LcmE__YY6j!A_JGKcnSyA zV-%DUV~ls1b<bnG2Ft&PjgX-Y3eA!sBQ3Z;Vbs)&Zz-83TJgtk;7O>9)+$wcww2_0 z@up`VzHUurw9g;-V`mHu4>Tc}b8TxJznWgie<8AfG84UP!0(^;W;iK#G>$nBTcR4Z z6zI+$E^0I;1X;TZ!6mCE`!9lPwqd{0Be~x-<a9h(AtPENlfwA8v)m2Xp49RIFucF~ zdSTYzHI2mJb&<?WvVSnpdbGmW3^v=iuI&fi!-H2%J*Xm$`{Zuim=?gx%5ZXJ=Z(nc zVC-TJYT+AF`ix5Qlt!xBe$kLvk@A6{HHE0&#kZ9}dT*_|-?_;n5Vx56)!ojHt!9Wn z;v^Yopub`ZcwA#!)n^lmV066D>rN!pqUGZngMXtippFotwDk<{_t1Y^f>voaN|X{& zHQq?Mq^-UT?ZPE;^j0~{&0#t!ofHmQ?lv8<IFJ0Aew;Q|Wf<(GPiL2#`OBEOlK2~S z8+QpE<56LWZJinT6QR(QrBY7<ZYP7uj4e!v2Hw*T9Aeu)NRuyoA;=jXY1RD(d`8O4 z*ZA06UHZgGVL@+X+^#}W>tLdYr*H6_!&jh8k3-m-o5Jm5l5@qT{JEiWLsF*UMw^<2 z8@>d9;-d*80F3AN+i^Dq##3=q#(E`it3_@gBK?Ab3=tD_Xtnd8y)|(d)~zW=L2c8W zxg0jiM~#%br`eqCi^LMtTX6eEE_Pd6>7kLA945Sk22BFhiDyq(lZE2551pczgT(({ z#Gah77v=pI>^x8w?x-A(N#zQ}Ud6LGBv5pkbh2Ny5qcJjyy&nQ-s~sqF9ul~26@ej z-`yC^tnKr_=0D&I<%I`U!1WhsB^KTcCG)-oNp`1Jzf1~2s1n{i4c$>COg`XKvBVr; zTlpfgRjL#VsSw=Q=eA^exYiJHdWv%oA#@9_w?nXAf<$}f4<4d#aEHaQuh<fbBC4QM z1VLxwcV@9kT9|j)W{o8xj$u8WiJ6FyV{cpco1Rhh<9=^`*(W4C2O<=T9n+>?o<GD2 z86SSpQ;=RvEnk+-ffKI`^~aAx7*oAyn!6#HEJir)Wd2(+&S&&uAMOg}=Y@aBoeT4* z5AsY|IP;XbW;7M^WWmgxfLM;Vflz0=y8de{Fa2k=-c1uoas+aZ`uHksiWWX(U+%h5 z-_Ta#>Q`YOeSFP91|BvyxkWwC#h+M@MD&bn)a<_Zuyq;L$b*w{B!#PTEfVX)|Lxm( zZDXEhB@0OmEsiEiOqXi^%9E)D5~BUHe{?615YUY%;jk>Dh*&VX|M>lP8Dc=E`_FT1 zCdYGT3$lOvS6N~;k?CbKa)qnLd_oMWvU;A4MUrwi;ABmSuj=DW<7<^WBfC27MeG5+ z3}_|fZVRyqBfAaKupYV(;Et*eZ9k^`op-9R8+{*~LSgB18v<KF_HS_C8YbIuBevF7 zT^tJ;)jR760o83IY8$B#7$A|d1W8gE&$+m<tt-5fV6Cn35g!#MZ$FP9Z_oS*ga|O` zGr<48?wlK|4PpBMkDHjI@q;ieN2sk&yugB~W-}6d%l-CMj3r_%MA<t<2XB99gKO1k zwS?vqt>wxWJMrN1l1FJlw6G5Elsa|9bR?MO#vz!#_^r9QryKYYNe1^|7h{MhQF6A5 z>+_&v{2RP-$_;EnJR}Z1;_n0Tc44PCB1`Yy6t!vl!qU{M6Xd>VaV1RlluT8ZsCk)f zH554p$~e-MA@&v*6scKSZ)**WrBqQ#4b5>fR~&2i1=pghG`L9%`h$bNfHldbj8{oE zoV8B3j4r<z2*2<>O?r4~76++gFR%-eyIFj~>0CyWT<n^Hpk3i{EOwNV;sDG~2cE^b z3I?h<*})fdGFh>7O%9y%d^861(O`iFvZ7Ph>FM_Q_<BmPHJ22tF_c6-5N0YymW@%C zUgqturHTZ3551?n{1Xygf_dUI4L}6{8+W({0!VBOJL}-3n1cBx?x<71kP|{sJ*aF- zH-sanVJw~*p<skw&1f&_dPWea#0I{{BR4SFiN_MXF&8+u8fe2kq{y&3a!>~V^raRd zm6N4gJF>5H?4Bl;&w+;zQdk<}ESq6#g|nlUn@#@RV&KeJARXS<J<v2!@;ZZ`WXl=p zAw%awGB~w!Y>aTS!q4<&I9PqNRc5R1^CDH2LtqxY$0=jv`*}`7@rlsFvjGUAnbglh zK6`)v@_|HZUXd|+erGhDGT<A+&T4;EWZxOHW(hQvT`eY7?H%26(yKl<m6Y4>aHJH) zl)@5Y^0nfga2kprwP?wKo@EaqMjSX<25L+)wFe7^sqa7y%tex0a?5nCSzBQsI=bO^ z@P1P}w{`1lhvteqOv+tOEn00Q^5ZqHJbg2C?1JXP9aH`s<DAM{iDWvTm6g?tsO8h9 z58F*XThK=cob2!k67mYRf@KPHEjyW7d%BCkz`0#LhK<>tjkfGq(I2c6*X4#MD`9x2 zayM29{Y2X^FNws_%u+gLMm^50%%0~U9r#|ZHj3A+j@2$lqxy4Ty4eMhLj;6v5!NTf zJ=fN?Un$r>p;V1A??+Qs$hZxO)O9aaNP&i_z0|5V-!=mZ3;iMA+Uv|0@%}sJzqGQt z?(PQt1`MMP0poK=tKZA-nZuv$kR3EJbVqR`cE`r=)e0atrRK`ir+X(%m#9!VpSa9i zD1TI2$y;Kp^0>5&hV??u;l^hh7Lhx%;qGWhlPPNpqbcdDs*$+1G2q;#)b9xqHpiV5 zD~YkUFE=|g+Kmt47ioHy=HdIhKstQrU{}Z$Z&}c<OVDs&zr5i#K%H!zTHw4rvcLA8 zcCP+9C`z|A1Ghi_>od*F=W%4oCLntD{OO?&(gwgPITkJ)%r<tPkIb!ni?>P3$56bB z3FWFxtkd4KQ~lrXmZ+$Sn)wNo$%QTuCr{c1cXwC$&6ynqeaWKvrFVi#w)y`1$UkmI z*sVInuc1-LTRi-aGC~4bv(MOD;=~hC*e47TO<)VQ{O#9n_yl!ki>);mA>#O!eihoG z+(@>`{1Y)@-BVU0CPnL-gIww5p04!{EfeEg%qCOR%MDOkED)Oz)ZPaLiuH6jp-qpL z&u#t<+YKb6Ed|B?Q>=S^a%L*fD79PavFcbmw-mzQqtB@q-<Ra}EDM<49vJfgk)MMf z&9oj|a%FTiN^%8{zEkTQ%#?g+s1l&JARou^w*7TgrTxwtY4@UooBzjF*GV@^<HGwB z>U~BtQ5)+84{!0<UV{2PneAiL@Gu4an9caI;Y1oE6wfgWL&|l5QyNX4Lwstf*m8Nw z1qXXiuG2ycQgy<(1(L!Wk`vB#Cxvfe|FlQ{0>Z>l6X%qGn)E}6P*;>J&D^=<NVND$ zccK)1?Tr@HO`X@VIf0HYwvSF==Hz)kf<gGq{@n_4W7g4ioa7KLln5>Dn%26MJFAS2 z{e)Jc6>7AiX3yxlj`E6j*p?a+`p}i}&zTw?a7c!;ICOx3E@#qw*Si+2s@2<yF8uf& z7ONK_uQC@`p6>R&HtwU57rM9Rk6X2bod8l?W$$p{eb@)s7UFRZX*haCsGC@1z?weY z5+%<f+*HP=#imL_Zl{bMro!XVM9DZGvQml8<phLRPWE<4hEcgfgnWWLfD^9C?RRqU zfs+i06h~Rtv}i55UFW!EFVy35E_P&kU$<FW3njE6A1PHINXT!Ts0+R=Pc5RTpZ(S4 zoS^AmXD1)X)xD>qb|(G%Csf+&7+It{1C73P?a4<3yYBf+nQRLRbVQd@7Ttz7bW1dZ zrz>gD5V5a)+9Iz}wi3h};n<KQh#~XfrZ7%PErF|+ggg*q#X9i)b7TMl=W*b*d!8^y zgI=F&Xlk7O)uZJ*<rA%V3xZu=J~G!?7I^GRoXNv3IezvK6Boec*=m%=nZXaTjQ7Vi zD>-{}*(o3t2#$`T-HQxRNcWt_`N|VaFFV+Vj^YkCO%e}8<l$!3iHTo+WwoR)XHD?y z<V$c1Pmq4|mKaU(b<McSPE6A6b()iPGh&;P5X8l8j{9pG(KF<T%yPOZwnNEQpSaCt zMog*TxS++87Oc-4ul|YQ;b~8F_cvG_T+hkXEmm%WW6H^QVCwt&2%r*Tz^!{+X;jV^ zf`~wIcef{41z+^ntToJMM>yu2bIJTZjRr1Wc+C>8!qiy==X(3qQrU5<+BI^V(yuD^ zV=jKt4Y}hE5m`zGnYlm+JzK5qVxDfTAIjE9FX4c3o=fuCtKtk_<qAI_iRk`4tOQvn zPI?X}QrDQ#E(m+<xKuE+&y|>Yb?`Zi&Qhzr)fCNJuN@Pq#U2V?vAEhU;!+D<p5=_G zBv$~=&ep;k0tq|WJV%5SXk|0VIG{wl=h<lz*N$NfU;ylr5)nPz?F~lY5mnzdGCcCs z&27@>|5ikmJ?hMcz`Q`sBW2z=>Yo@dC+RkvrULyFlB4?FsiwDl<0*=3@G2gcT_*vF zSLT#1^!Eu`L5iVxLfP{dI)Y9H+lZvw&(KeA?RPfxPm!xgpC2{?_KT4#Q7o;NIWr+O zpHokMb)k-?78g2<YarBp5|lcE5ST2z&0t58yarNpoB4q`zC^onhU0*;_!*loj@{mK z=zTrk{6O4g@6)V<Fp88!tgg-~cy!nKIW!-CkEVP)`d$bA%R`T6!)*y$@v)bV<|n6Y zZSi>%oV6Q~3ui=ySt2FCcork#H>24?8m^A6Oc;$)eBG&a`Hb))!=nqhtm_IK2i)rP z8$MR4s!y($iGW*B;bp$&1fNi#0Hk-U){gpoUyi6zZ_xTi>6qPS?$ta*fOH6OjZPqn z_oB9J9C0Bxtz=!AB)&Mg*|SL%4DesJDGTeb@b-iI_mOqFS~S|+p$-<em07so&l`bJ zGWJPy<h0}u#uCk5!1P>Xqcz<Q#ktoC!kz{>%PDiM57(FCi;Ym;1Zh?shAp}ymdJmI z3sY$@mJ?KL;heD{PBv4eakH2|HQQ&iNVN+i-q_4Pc%WYn0-)h2FGc1nJAg@C&t4|E zyy@rV5pW}941R~%6m!5tFc8;t;QZ5vkjp>Mt}DcU;9ZZ~wz7++Z)VO;W5k8j-eGi| zh|w5oM=gA-F5RNfH}T2F_xN)7qy_6v>k&*qCIEDXeZwWbL1WqGlKo2SS=uiPczpRk z0A)a$zhJMMw!`ZePo;)up}EcNdWF6DUHjo30*mr6hJ)QOQFNwq@Qo(hPE6eO%FHsZ zGj%sS)6q^#{q;;tO_-c2GvIax*ys5XyKPr&Ci*DT-vIm9qALfQaE)&>=N2^Jlu`uX zpi2ytAWUQWwH91g`%N!G`=wb5<)ujq&63PjjG^}Pc&KInc=qH4e2(LpIqmh4zD9!q zS7<_&c|JECdIuy}SloAnMAR)j?kR6EM?SP<MnYRG|M{Q)`6^Cz%*Q^j@U7P|W1H2` zYH{8t4~Cwc2El_IixVJjsXW+FpB$LH)T_2<eW4(|jK=8(Udw3&++W9hxNtGVCbZT- zDl)#)(b?4B7W@K0JAxRI9|%h~ho1lPGSc4>aj(&FWaGrbh|?W<It$bN`S;V}cbE_= zZ!?w$!txpD%MIpGFb-LuHaFCafNtiv@fc`PwsRhchggu;zL8`fWb)7l%aOb)5&-eB z0Bl!<0TnTz0_?TzF05uCVvw?1mYAkl+P0@+vC(m;ALU?FK1M-7t=mo5T~VPUz&`M# zLDRvgSMSBnU=Nh@OSZFn1N$b=;4>7+#$@A((1ZEP(BzHgmL=Ix%gL5Q`B721Jb7a_ zM&v`pXZfv`sIi0N${fd=4&mAz8uv5Kpm7gE*@;5=Xdg_5&t{-av6Fe_EnX*0Q?{<< zq)B9BBj}@oKc9Z@eN;I*=tq614rI}bgQ((xC<hQ#?r{_`*S_1qn3w`a$U0r|7j>OT zO7qemUPP@Mfz-u~gh4|#09`w}5J>TuX!J)!?tu#S4~*y=AaFb|JScIb_rP?RcB}xX zZ+KXq-kFM@*l$|SCMc-5E-tweq9t0Q3}2DQj|GtcBzjI6j-#tzA93=diP6KDHw_GE zw$#}%D(v#V=}zEdz6UU^4yet7V_43H*?b?`FX7(j@l*$%BCzj&b~5@`{TOQot0X+X z6c2nheY#DfS8$VJodI3mdfE4C+~(TX2@JfM^&Hr`cpk(>fdCm_V3ZBdnINx)%Ja|~ zI|UV<x(nB$9_Q8dX8STKJ{f~5TAIIrB9G$|g#2Y&cA!fPpx3duw-T78tM~tKR~0kv z6sl!CP|SC_=7Vt%`t5FgY@#=|Ridx-TygJ0^!0!)>uzg#8WM#H$22I-u-FmX@EK?U zm6a`^2A+g*(_G!42`kOrJQUE>OF99y&T_PrIQnhSF8wC8+#D*mgw$U^IS;NOx0bC@ z=a)I1_sAE?Mfx7@_wEByXjx*M#ycI64Fgd27ThpcfEyp>(_bCN1`2}nZut@^=jnJf zCCkmKM~E8L^+G~q>5}SklvL5(_97f(F}Qq~tssu9Ur%|5F@d#l6*57`=a5?6t<k5_ zkP*OYq9~L}LnDkgm2m+M6w7j64ES&u@FWy{;!EU-Gr@CWpb{cqZN)i%V<Q>5_>wZ4 z^WemU8!xq>batb%h}s5`&ubeRM>u30scbCOdBja0?n7m@zR^QUkt?+K1}fL3h{4Zr zlPeWD(;x=_j6T*`RO(N%Upc?)JhYFL3%k16+q|o%0JRp-bd^|Yvt<ogQf^tJnq4O# z+8L!Rr4$LEIje0+ZeD9^>m*F*)f12#nn7aaqJ(K}-I0rFpJ<F@N6?<YIC%u||G<t= zr(v8&doRh&xXl)w56FK0H)Q4L9JC1Yw+-pJJXFG5)NldSW?Z(7^0*uhR7STzT)R^G zav}4|^<SZ0=HQo#5e7CfjJ3<3d<~;OFKd^+Us^Q{3U4G&zKl-h?NYrxSALK@xnB=W zf)H3MLtg-TdodUNc^PxCee#v70Nx)3C}IHGUM!Cu8jaug1+&hc4C@&yAfuB!c^E=B zA&I)_KLY@H@)&$G)x5CNO%)b(A`y~VVVIx#zhJse=-}H(A!((pdC-VS_Gb|*8SLq) zpx$VA&~jF1Xp6hkC7@%%wym)pKo!zBk_ISb0tzq|(-Fwt5C<J>F+UoehS8w8Yt@3> z>7_9s_u7ULzbWX*A|yE<aI;T)m;4Z$i~5=y1N+AYUKtw*j|M^wBWOLYqm@pKi8ST$ zIPN5s^T}{K!vhMy2B%_?5Ic$vq7l@@04`7<YDjhe*U+k8K{^}i+Jl;O2cGNmlKGB7 zX|7K#rV*q{nDM51sf#(cakV(*Jv&98@@kRyNoPG6GC0?^pqOds1;&`i&gAKHZRI-9 z)3(4|n@4jndfnQ@gnQ+bKH)a?;)H9aPxK`?K2*7ul%khCeUz<Q_guwq5ddvwa!Kw< zEGlV50e~h&Ehtmog*MFG*)mmkKbz#%6Sa4>6ObT~7CfR6z5bx|k(2W#-KphFFI{*_ zUx&(VT>a5l&uW2rR)cH=qXCV5j{b0Tq2T{p)$#wK>h_b#s(1XqRjuU&Af6o(NYtz4 zV7;UddUUE*WSIk9_K3b=Fapqu03G%1BWO(ov~m&B!92uIC|Q^SdU_%~8|vSVdUzHq zp!W~JNHDlB;NU*-sis|nK9B*A=)*99sOqd-xue&~;o8p@E3}|M?@TfcTcn*<pTyp0 zt<+#Hg)nxBx@BF*lW0nncRYD7x=eIdHlhdx!TP-~5;Vc4l(CxBLYyYdwE7Eu`GdI3 zYUNs7pxKF(1K-+)wQQwxWW6T`1yL%rpdHWyT%q_P6cR{#^FB|myXi}~S`l^%iP0Zp z))TCUmp0<IEm$SLrMT8xi;QunSBKP!tk|WvjaAD=JJ-*7>7S5&YPFoFu{)RYnre!s zduct;d#!B%YT5zucqX6uQ*T9utB>)9g?@OP@kV{SUuZmnJuiHcSjrXyr~#460(4~n z<pv8QmGktFQ4cN9Ltj%CD$zrq>LI5dI;)2&^w3c~RHcUw=%JORIFuOiYm9*I>b{Vi zleaX2w3y->qX%pHr01hs>6kwE>7(@T7xXyh*sx_S<elxK7cZl$Gh=kgx=mw3#jGsi zWGF<7jVWY0hrUABW4YAzv8Evhu;JSfWupe)X6lb7NAQ~j`tVz9H4z1FJ?=skAvHFJ zKVmYs@fCdUGS5LyZQRWQ7CrC+3s_k|DMbj#iww038AzI_lp-J}Whtdr_JIdB3w9z; zvLbdOA9bc;#;5Odf?<wOEU(VWyAnJn25=VD8Q6_dL=5~9iS?NixM7Uh>4YKtL;!{< zHL@@(kFh;=rq0(4U;5EyHsP|$=&yU(;?E<Etu;v6tbo!XMyk7#VxcNY-KReuq3#7& zQ+LKtlDelNb$>c^Ep_AKQX2iq5ZVbzix~G1(Ji@}(&yfQlIw&}xq<0m8%5%x`spQc zAHO^*t93%8SrE`D0D;H$+uiivCnT1*$G5oze@d$>)>?O|!*v<YtlGL->tY?QOI#V0 z<Tq&RtlByr&xF>5TrqbD<J@%1?P#^;;~|z}S3ep+eP{sL!cnWZ&lR8TGPgAMv-O%j zG^$3<A))uUm#*)|8OTg3&9%FqkSEave??^umyX#s#}Tdf7HG<Dr<6q}v!q!#M|}j= z+-`$3QLX29Tg1Q*k?fZWO82mutyW@TO81w_krem_2(>Q$E9MSAkFIS`IL}LFx~e_t zIG=^9MuJ5@i~!_3-HBTwm1eX$e7bii9ynVVsxqkAWNB_;>~6=9x|H8C&4;JnXo-II z1kAf=wQ?jMYQ?RV$4Ipq9Wth(L&iiBQMzZ4lab51>-95NoyO+#C96Nh<Ef!-Aa-XT z0>VO)nFF=9RST^`bRtMpU&tk}>fXFDS)IK(E~O{>DJmq#v|&YkvX5)P-V|`JgZa%k z@~*U^Fi6MsK}DO?^aVUbWg|4xZ=~-#*%p{V3@p$ix}18C0QYSlkETOlDjJ+aXoQG? zGMs4EfdKoX6|@e|>-j*zKDwhgd3`~aey05G57>GpyD{aUeGZ-j=Q>hLuPZ}q+Nw*C z>l&9sIgLXpD2A4flprQu<9Fy~07qnVoD*;?*--4I@1w)~7Y<{G-}vf+xn*4A15ile zks3Gk-oe)Lponp{0UeEMy@+UvZJ^N&a2_9Bcl$M{-k`$}S6o~0r|r;D0CexQKzyP- zmV5)(I2TIt(c*>rNx|Fv{Rt13Gma0W0%b^(X81YADGRP(dD`uC4j^6Y)^7J`InUzc zgiE5()%A<?zL#<!P?I<oGb7RO^2A2$a(V*@Ykgy92AlUr7L|R815s}bpp3%fP-uR} z=^qAkN#ht4pFl;Jd{Fq8P&u!}_@<3MTC|9r?JwtR9kKOQ`<WY4Y<&vpG<G^Vn?xYB zI9>l?;w;(3&|(Y3I$3O8B38OJGL!<1dzQZQHN@;fB-jzquW@%)>EONeHI~3oatXD# zhMQOg_WF5HQ9HX4Loa<s_m5*GFld;jQ~kNi>)Vy<I6RS$mn`5k{Sb6N-El<U1Higs z!@6#C?WR*R0JhWbA4x9tBkVo^KwqT6GqqJ{CwTXF_dB_R`0$aKqhq~D(h?{2I(f%% z(^pK!diPU=qW=q&&!&a;IrG>kcl0xF&|2sOZEh0<fMdxs_=yu#28qYhb)>As7}-|L zPEUPlJC!&;Rh26~eTW>Y`-Z;=ZiiHr7>|hi%B&u*xbFuh+bLhDLdXpcY?w-#&7{ig zxYU$RmJ7zSj-jTEyOi);$Gc6G_4-xC>E-!{8!dytdCcEsC+-%x@t&d)CzqJ*Pwo+q z7L|EX;g^0o>PEJlj+W0d!0RS<3QSLN>l;Ck;vmj~2%Rx_Lg_XncVNc&#pq5W`cW!_ z?G)R;VND<7vSkZ@GY2Sb^8s(_IS(VAk5um51hq|ML~$aTcD2(N9V`K!Sqrf3jioCf z+x57TxC>=Qds0q%>8h`F^-y1lA>NfcrMxm`&XPAgcDs~K&V1*bS&5j9?>mk*ees>J z*?7otWW8Xw%RGrBb|*5R>tVV{9IeF_Xk{o>Hlu4F;MDsWivU6T0h_Q^sns!<B-Ev= zNENSK62u@Hq$H~mDki0C@p;mC$?;xu!FRgMWXnorwOxP&mOKrU?=t=c5OSQ}{8v&J zC!qPQF8vX7p`6}Xxf&ThT3@;&8QzBBrKLYkh65O0So+gsm|cZ%b7?3UegebOOP@-H zpTux>=}$162H`f;s5Y$j3)<;gb<65#8aA><J55}%TD5W&%t$L5lJgL{%@sp;?<&EE z6CV|G%f{SlL9(#3y>>S*iR7#A4493wpoGnij;0IHbYrzp?})5V#pD!Z8?6Y-pznXh ztc(0cHxfhT`y>7eXJFP-hBCJ<k#b18Kc%)XBF%z70sdAOM&t^*{vs~Evg4>SyNTr? zoSqQHo%o2Z(l)Lnr)eEC8I%rzn4%Aoc7=*ki9$_MVHFtLZD*6qPRV)7a#o*Y{`(-J zw-X=Hi3hRGJMj_CIEby@iI2qArJGLtik&g6wS|@DZlH`a5NmgJ%V{tX9Qu={*<C$o zA#`-3O%p~R!y!S+fW}Fw$`CJ4CHDapy{#@@1@W?z+_ze-KGC^&^>#*Sf_$@1O=|Ud zlEnxr2ZP2p?A7O+CzI;)NLap=YQ;D~bDfW#qg(pefrT*^9hNdf+ql}JE$gn0PKKT( z&1cYSN5Va|2mXRXz|yWpY#ebVu`&_Y33c&mTbR-_NpXx6vE(We*tPuX;7S(sTN>Bl z;68dLDe}$i<ns$Kd4klB-jdk*g)X#pl}=*vBSIp`{o9(mF$~6wpj(31Yy+>j3Yk@- zwQEHfpqszc7Y#(VNKl*D+^uV8ayv=4+_qxo<#wa8$zqfXh|^k{pZe3uQcmeid}Wu; z!dF@;=X?&2-j*}f9q%D%JlNn&?9H*YNSr_HY`qe}z}6x~FC^x{gWm!(sm)Z9zfr(V zD=_W~N@mIFwl1)@ps|<4y<woek92Gem6g%c0Gd|WW(tJmubKIqTnJ62y`O2CmlWY? zS*Q@NazW~U0miwcR5C2~(g1ob;{{?Y`)7WBv5(F?i`-IMtCr^C?Q5EJR4>63y~|5I z=;d~%yk%i&t#qs3;Gq}Kumx+JBbRzTZrXhFHx#<p-)4*gQ>5`CF8sf$vGVAP$Ut-O zlT)q-!|uhA)!JGRCcySsKi$Hhav2opy*;`JC)E~@E$mg($lu5^b0@A&10xAiI?4i< zz^fC0d0H0Ek}bBd-4*}+Eb-}ZC93QtT3YawB(#}YQ|?lincJp|d)wWW^z{$*4xON- z;c-(C?bYTsljbtF8Y-azs4j3$x=m@0bMmiRhVrG<mZ5a{mrxSlahJv+twPJhKrf(y zV<+(?>9VOZdU0v=BbI=Rxa=5hI^F|>2wF6Q?OeI7E1FVS*0OM=bP2J&ZXjX+O%Qjy z&7n#|OYtn2Zu+8Gwy^CSGy`w%bHz{g2D_y3ceBb<R^9~->XN_0w!j!l%NULVpm1+V zy0kcWPAU}-hTQ->o4((zH!`cu1kKYMr=^XyG@3>CB|waj07=WtmAzi{bvPxZb)<0E zW0=9xo6Xots9%AwN<OC<M)tqV>;@V8v;=iOLP3vZ_CO=>nb*@gZ7p+?L2F<q61`e9 z7X}w^If1qn=gLM^j+13^)TBM0P;)=cK$l?``Y)D3t&7&*L#q41)LMTRiA6q53Gt#M z(sa9<7QD;!U&lr1hD3Jbu+NJHbX`dnP_+xM^iqrPdM_|p(baL(PhsaeKn(E*mU#tN zkZtGC9YelZdl!ADBy(pfLg-E?`ofkH+azcBQ<m?-glMW>0vJ_6oPW{XO3%vl1H2NJ zbgr?_kg}c5HTGQjlK%P|DS8=-@_0Ojot~31r`zZ8sIGqPUDXwXUb)3h?|Fx5y?7(d zOb?j<G0@BV0SebPP(sFO?Yjs8T0vdhr{(+_t&;ZWN+p&e@z8)Lw4B{+VbgI@44?;6 z@pLHz{Wpg2F;LjybVFVAqqiC31G;9fmh&RyV2(*ppVvqKL$`Vp3FsJ_>^5XDm>hsM z8}W3MTg%yxi!ta7g%@t22zBm4ud9*!P%KR0R33>j#_{-GU;2sjkAK9QksX~<R<K=4 zA3U)O9UY>pyf}_p&M~Z0j@#szmU9G!XrI1Ng73rZjaRv7Ibnoz_1j#1wm!$8oObX& zC^?!LyeOxUj!3s9vrlE7*Msk>MOZ<7!-`R*1^u8!y7OdmNdiSbJ29|XaIkY6O?gy- z)WpdF1fiKH6MkpWDapguL_hoihQD~Q!oVxt&icA`y~Rfiwk~_>Cg>S`-Wt`<mlW`W z5q7IoL7PE|;6Cb7JwpDHU51?S?@HbWX<%1KB`%OsB8lsxC@G6W&f5Y#Qo*m-1yU1! zg^HV$5`8mNreQ6Gk@is8@W|Jdk*|2-Yh(u<S8QzOKqa;~F3MKN&<2ZsLrsdB3)IXk zOcpjOf`-mE+SUzI>BA?`!)fGhq6^0p{!LLY9t5oJqaW>K?%MX{Rx$VsC}RzASzkpn zca0;m;dWqN5o*fxdAxM@@0pcIEhlh5Ze+{N@JTp*<6YmhXJiPuZgUK6oJT)CjxI<e zwSP~q9pJ^lW121lR;|0z`(1QVGU?cxIvGPVm^ou$Cgc8bwYkRQ^ZE^;YHN*0tut%u zcr6E+6*5}wb!IVGub(Y&9F-2JhUlwFsqjx?5DzUNzu_?z$B_7B1H7?WCx6G9)q7vk z75y65q|NM75bG$jB<?QykG;%yO1R2XY7QPE{kslQ%v^poaSzckFJ8Br8J6e5AY0(u zjLwwg4Bkry?>^E#xEkV*kPdtsPevER_ezMtYuy0mWbesyCqFxRCbLWKAG}EV0Llsw z6$O^TPmCv<vK;`oQD_n!0J|Z5X(1#`eW1W<I|p9^e3=K|A3USH&yhFCX>u0psXt`l zlsPSURDj)w>h(cgh?y0yBwcpDyQZe`<wr-(Wh8GFh2mDLa~KCy6wC+n3!vxOCX;n$ zWq26u&j$(?D3^yp=>2WO&7lPwLMwl7A(?8GS$Ul2<YUZ>fs_k0<yMYkx2$5o3W4a$ ztDj<QrX0>~K!;r9$1)zb0htS+WMlV8RtdHvbo?F-dblxHTL<)D(bie%Lfw6_j=?}P z)Rg_mx$Vo?EtWTEKgiR5kgNS*F3m{*f=0N^>+_J$a9+2a!Ua3+<O=4!{~7s;MEnNY zFdqdFq;^5NrhURTU43|qOry{5<Z9^8YB-MB`OC=K0^$A|&=alnmBfWJhXlN+atG?t z)80f~x(C<z9YxH~b(Wu}tKUxSJ$UIunOD2HCf8JMcoR1gdD?J#bbk&CQHHz4AL8nP z$45$6GY>Nq_2`m36Zf{J)9*)<D^~~hBK_?|;SaN-oE;pHc#s9?)#r}p;gPRQP$?6> zz!O0~HB{<;xua(S-a~&0`DVYl-k!?5X>*XU@9Ixz>wr-2<B0WVNAW}t{fNC9Nc)PY z)k~)$7(IS;)Z@9H85u8Q$MDD4`Z<)Ijq9va5sltsNFg%bdT91gBW@e@?!&`jy4$cA z{HZ}dmDt0&p$(T#c{=H|zH8>8w==hSS2z0i{wt~gdXL|YnsIJgQZr6PAL=46{WM+g zd6@OCC*|=fFo07?2VVQtL+=DR@1dXIex9ova+^~aapH|fRWP%eYy*|5Y##Aq##O;l z_hY@x{A<hnWHyIhCf)RP{k&Up#BXNGX*Va|I%Wv4P|xVmjJMfYzUX-99OyJ?bk#{l z7R^0imjqu&^;`FLp68`6{*8@}7(9hH;<(=cySBMoUORfAW2g%|%oJ_Fyf~B4LLEqI z)CVg11BS^r5daI`n;?V*Uh2>*l4ihYY<Sa43o%Up(lt8X^x-#fW$+k8_2SV8$Ul)D z>>7Kz<a=H0bP4H<o=Pm+p$6+Xx?!%r+jeR>I-OhA=TQ~F5?8lj(R5r_a^^1+e^YG% z0rnMMnV89L3&WF(<P2WGM?+V1a|#S8tK)<9mcolb+{V9n=#gLRPS2gAehgr~1G(&6 z3y<$~S&c`c<H$0h&~4s!8GiwwDP0L$LD!9r*rYH!peJ>i1?OrX87_PbC?X#DQY6P8 z?c(wJhV6z5Bq5kHvhP-_<6vHh!PAi73FX~NCaBB$i8rn;i;-phFue^NGRRWoGJlV9 zdC>-=f6;^FUfyx9Am4@CXD!O*{PmN`8>ge8B`N&i>6t6{R}81ivjKsblcRZ|d%8zb zez70@S|HJciM2ebGZT+MR`8@cZmjNCALP-bg6I8$>Jb1f+$kATYh6tF$e`Bsi@~SR z_eG9DOk{}nF9Mppx8Cu=h7|IFu{x&bg6xiWA?97j`%*pLFZTo9@dH729Ar2T<*%Pa zj-LKv@ZFgb;Jd`g%QF$FTccA#_ja@RS9EMKiQ)SLo|PhyyLr5#kd;X87SyEzbaK>) z24-_Vm{^YY6PrcVeIfHnQVY-m?mq$aQg{mRbSxF*Rc+8It<~aiq!m7}6X&!vi=3QI z-eBE&ItrDhPiEh&cPsW+q~}I&U_ch=)-h1EJcR$i!k>i#4DWQ%%Hpa?t(YGNwMrAj z;6<D-H#6;9Utl6xoAKao(QCL(i^qW?ABx5*^B+-n@YH~X!qQomMA_+Xfdz@vq9-aZ zwjSn^<wERmRk{9IWodb=oRia)Rs1lEQ8o#h{0Q<bOpoufD3~R$KH`-ib4&v=Cpk#( zg-1e5#$BihRatA?^z%ZdT;eHw2I@#f*bTh$UBSw@W0%CvG7GyfUM)ow+4|$oP4ETg z8)ou>@zy6VP{Nk)gspC^2=n>IN)tyXyHsnFl8U)3dahlJ`39^;2H$wN3@^gFO14(w zsf<oP-^k^&#c>N>Pk4r<;Q6ib+6IenY-^)GSC$Hzx=`K1YpGZTskDH~OgfT#x-~V7 zi3QNOe_#QlGio%3%Y)(OOQikLFyrFDeB@%Fe^=~5)hVb>UI`2L$o+nv3^AiC@~LQi z%-o10nm`79H*m2B4-bTX#;pS(uq^Jlys@0TQFuJkYYr{8lqpp)O=-P==bu75;_y-} z@ct5{r!(G%K{wyoLg51gsaVh5@=>s@K}SwS&y&!7X0?h}%Y@K9@FA#Wyt4XVE10{= zYyXP$(pFjCc4Rmb2;&KXrRB0QeG|_}3|R8B!BaEc0%;$6PQa{7Gc-LcKHTAWudoIr z+N8*5B6;H)iPlf<i^DW^x8tkOW_z5>P^&Fq0E<6b2B`z>Am;E;xA82f;7>W&S=o5x z5)U#krd(RI!Q@|5i_7s1yrV&o%XRs7DS!PG<g-|4iGc~Y9Vp<g(*@iNCDJ`M@fSO; zk#YA4P@0M#JlQI!kAb3YDSXRN9mfS3@kcKqBR0qJ$d1O}7g};_T+x`gYan&~p}Zlr z&H@4w^VeC_T0y;+M~QN;08dA)Ap6>uq=6KffKnulSG4@~c`eNoP>LKMD@8&TJ1WTW zXg*7`gzmdWcmx>I5S`?63tQWYhbnH1tAe`35C{3T3|F4iyW(oaZL!`G)OW(Y#prJw z!o7Kr<u^ddOAYG1@z6?J97ZZK%rAx610s}R)};CYR~!a_2}e1O$;kxh9LIel6Us17 zC~twtlT69}&K{jmma+-O^mjWOCKTxJjZD~X6rfa;x3a}3$5kDlkqWE(L*}o@W7w7G z_6&LNg{P31*`QlZN#Shb5uv<<aDMA`)<s`p&)HeGzJ=Y&Wb)GPF^P|jbnDVF-RiQa zMztb0&W;d{61a6I69Cl$h$LewN*E<FN%^o3CTO5e&)q<SUSD&j@|Je`3#B@yMYDkH zls7cn!0FF$n$BW!?=0vA9-cU6FN@6{&U{bKP};3(o!~grL>*`3tz;S&{6D~)1(>t) ziYS;w0yidSALP6>ku&|Ow6l<QR?eX>;BkU8D$|&8Ju4m62zn<wT6nKTHIQ<PQmjcI ztJ4^g<rZQAk)vD&y@zaPJw!I|sF+=i_#BsSV2)3E$5mAjdlJuV%@rp<#_cL4!bd+v zY4c6aU$UdZrp<m!9-k-}3ianVfZXg_9P9$Q2_O$#;z>p!=sjO0$N|`W3sQt*Pz*3T z@E+cAk07rEUSibPd>uKCj1muRE(V%Y>n_Y**;=8(->@j#Nc9Dn_-AHD=K=TVVB6W0 zs6)@3JS;*EITJTbsxQpEmrp1PF{no%|HP}0@lYZ8Clm}~AjH&$BxT+sr~pud0BVhp zz^h)T%*^2kP$d#)^X!)9Ois>Zqz7E{Wx8Vwk;c<Ew^pFi03cbT1e*Rh>Rh4MS`!4y zl%msLq~8I8EZ8Mwsu}8%ame%_3*|oJN#tvYx((R6pJay~GpGxLUGfyiG@NIlyFu4t z`hc9K%)u!A9{A8*{3ww#A8VL<m7^NiDS5Q!pr)}inu)tM&K_WTb7p(=u7OIkBHiJo zM-JgO#Tj~dF1m!=_Zl8lj$WU*1E)C^N&;f8%!6q+1Jv~h+74Ut)GcN<d9cHRC(xj? z9YmM>9^6C5d%|I$p9#Z+JdM6}Ah~y^9~SlMDByO28LwHC%vczhythLM?OvMsf^N@w z*{=6k+n60Vd52xqS^L6>S-ihz3N)<v#<540h|BD?4XD8dALH#F#q2pBo_5*7xTn_y z)?tTyJ*_yv4A&bEj4Uj&Zu;G8NgR6*nwYWOERfDfEH#w4$i<}pzJal`ZFxb;xf4U` zp1Dwb>+{#cvt=j+cPI?<e3*m=PvWM+b@UvR2pG+$ufKM6Rg3kidds06=AASSF9p_D zkRG0_-!%=N?|i0Pb%E!B8Hs72B8_hm13U0w1Hq+t=UQ8ry~-L2<^cxc(-Ai@X$#WS zQ2xhwR;@d6C}kDE100K$gupp5;Kl<{Ip<L?e4h0dE5H_3gC*EsE{pi&U8#6kNyW!_ zOBc2;0Ji0~@xWLnVXd}>TP|hb=135WCD19#reaRYX>%`VUDn@P{WadM<4?g`mZJBH z2P1C!-UZ!qypx2m&cdU{Y759}#}V<#mr&J82?d=W;~i(TWUl_}C$Yqhd*vEKBs$e^ z@aRBb+K+(=@%k3AKQ&a{U*k7~LI_ji*7jht61nwNMBM>lC1mh(A=X;A7jYy(Y!u<3 z`*g=4?6@274n3BcgpiPo5&NDJ)?G+k;`SW8YwiHHpA!RknslU0z+p_G9j^YYs|r4W zcjO&FNQ1cjI0UpHmanmL**b5DLE=kN<eB0=o2_e&G7McEDKA$TGAZgFY@a^N3Bda` z7DwmI0W)}wgLRS^Y{Yt4p(zPGr5pTN%iStVr?G;uzz&8-F~eg%yWzuPXZ49sTmpl- z_j>ew&u*Kb!?ZpiE+E-zg;?C1ZAAJ)5&%*L`g|RURp&xB5I}K3+=)q0S2a*qz7c<- zM5iPY!f53stcojSv=Itc!P8M~S#KxLlrW6&**3nc<#L8>(edlxvYh(RwptP&+YYdi zp1^TUhsYVdl)^JOD)VquJbH}IC8MKp7sD4J46JF6c5(ZiEDkFzWG!(3PdtGq)qC++ zk<J*v@?!8LF2i7xs#C@`se(1B<nJ}9l03sw^|2K9jV~)(qd>DJDy&&4{;U;i)Lf@i zVb!N3UTai~)47e&%rLfZ&p+P2ZyCPXz6T9S(jL>kMc6+4%|+Ir%?R?%h9I9-UDC9A zY)gsW7HEWF4}KWmVok}`+hFW4Fn-aW&;nzJ-h$mA_L^Qt*TKeR_>*&?z9{f(D1_w} zM%Z1HZW3{O8}aB}f^p9{J`e*xOE4L0E@?09aEAg#nECH9uw*vwK|sd`TaQM~`r4CD z`4F>mZ0mJ~W_^%>SGp~NIzpHge||yRgCN@ckz#Z7&QxB)qBuS8)#WP(FpiVgDhC*h zbdx`|-p)8ww$k72O>TG5KkUVsD7q-Yy$5meHhOD<h?u;0N}|q7EyYuq?OZ^cSpGcB z|4;C#<g;CRGhv7nG9qeN!S0Bvr)QpLC+IAVeK=hQ_OdNx+;y8u7wUQG>=AU5#w$$Z zog*7?GieSYSxkraB;gYGKkU(+ak|*AAcgYS798o*?>-}$;=v`i^2&z>>2)`?7wA`; z5aU3_eBK~U9Nl}lIi}y$<?4w}q|c62L0{N|m7;EO?IJl3=&)ZvQVQ6eBbG)>4BEDP z&q&)Q(EIj`ZPR~Xo6b4fN7^)n-aG=p78vQ?SM<i5&>K^7bz?+mOg3vwhnudQtzX_j z(grF_(3o2hm+o22?KGz+aU>=|4KBQly{^Yz*CS1)Z@$8gajF7+`IQm${!RmD?@2W9 z-)4_oZ=;{D#or;xqfM`jEQ>N_;_~m4%c6c<lyqE_r_iO>z`U!&L{sgu(1c{Pkh!$? z(T<-ZQvIPy&0Z@=c~y3ourWj2YZ<7>n8wR}_;X9p?!vE@l8&*PfFru+$Yo5+w6WLm zgWZKb381#&kJsRKrUieF119|5PeHCE?`N1!U;6!3yO%frK6yJs808S;<y)smyV#cK zkUYJ0I+d=@aOHQpCWSxF#`Zfe(2M_)*zXkN9N;&fhHmh?GV~vY!Jo}inyngI;T^Kr zCbkOB#djW+X51rRj7}K|3in8<TD4XF0#Puw<~kjx#UO407SF)j(X9r#D71;Wd=EEG z54kS5i7PJd<=phd!G!CspjF51a(w+?@dt3?yTLeb=k%)O2l1z;VulTOhBljq)n+S{ zF;g$Y%F5V2rVOiHwn7;$GdW&ZZN>BIeCv!T-@4MI71zb^FhD<Up8DO(*>B!J2YG&X z)sF1>-zIisM}bL4bTv6r_?B`hWpj0CQv!wQV^K)|CJN9D>u!UT*E)mtL7C);|HkF2 z0n43)-XVCLJ9}&`SN-CR3!PQRD^%E4{O3P&93FSf1u`G~!4~V7Bivrx1OLiCEr1qK zvB!hH`HibTbLu~A=+Sce5~s`5QUr<SjPVTVOvNZXX9pv<WftDv;j-LaoGS@V$5DAe z=>pQQ7DlQZE^D*Fsk*E?1I&RWMGX8J3A0@cyoe-%9woRl#eSA4Ulxc7f91xNPl_%u zk1~5*0s4hl!Qeqo;{U|F4K+DmcRvvWPeH_%a(zEz5Xx`5BUG_SD8-*B-Z+8&2w0mO zcC<@*o!qfwpgD|lQ*#d<Cu*0{J2~tlB`m0}ev}{m_PTyCun-SRXmY>4b&bDvk*}Y$ z`3U7kQ6F<?(E*qX-@D`p7~qbh`qA=1ml>;;Zm`$oi2-)>wmMII>fg~<LCyot8Jn|r z2c{q0;!14CAo})DMS24LiS#&#JJJta?C&%o`bvioo#LkVd~|IKNFSaE0KhWl(=u8| zatvpAJosx?yvGwY>4+ep2OG!cebp87>PNI8Fa3?~R#e+t%Z8?3t?NUX$VSJix`eBS z3Z+thKHKlRfajXg2Aqjw?8+Ad=a}e6F9YaI95=c!pKbR+pF<1YCPkEWDD<{F*)7aF z2#Oi#-3Ph1lq#|Ajm6N&WUstB6M7}?7?S?nnZ|mhll2OoxVffRV)&cE0Qd?t*5jk| zf1=-iE603nbo;Nak+%&*=RoI#T+oVKw+}l<zCc4W@QkV|_W{;}A50yX4cTc34-7`9 zB)f9d%R$Sb%>DsdlG3p+pZzT^Bf0tjGqc^5i%zgX7S$1Yq#OOfQG=jAduHU4$<a$? ze*6sjD9wdWO)g;ATvZ#Li&t_T&i{K}5;ZlWjJ~rKSWoBnOVG?a(ecPOQ0Zm7?$vT) zNj5J+!03W&9Kc$22e8&8|KfED$iJOjf`9R6+!_Do0#T$fqR1WP-+UZg3*%q&DF5ar z`4@j*Y)i>DtxwaoZd@>ycTdguChxktzcI#Vg6E`1L;NDQpYzbAJJ<;OJc-|dGq9TQ z01XnDhmB86CwC9+x~x-qRJIKub1>wAyz{PV3I57hS>mTFnP#}y0i!q_iP{20ZN|pX zN2lpODwqo_cwR+97()>-YB~LEj~7zYy!6T6u+z|?M=p#E|Fb{+JH!8zpW^Tru;Ks4 z*iU5s5P5%Z?7fNepWAS*-oVp|zrl-M1e(p>W@=(@3myJ%d|T-Nd*{+G@O?Y|lm+wY zU)Z~VzQ^8k>2da+M?2YjK7F0N7tnp|okxGe-o^Ca*}H`P^1l&7r?$aKpJq`NbUS-j z(Exidp_|#;O(phzfUafl<#aWBucRy4dlh|vy;svE?A=H!*n2H4VefTx0eeey9(!-1 z1?;_<<|R<riwpKN8)Nt40xUJMPrRk#|7q`A0HV6CMbCVI5eH|CsHmu8L}P+6B&Y#K znn4)E#L+<n<SOb2gD~>TaE_l;bZ{VLIGIMxrzTC4m|ty^rs-|sCutH83;yaSnuJ7~ zV8Trf9hzVzfC=Hewe~(U%%E8BYwqoR_jPc&&)MI#KWFc?_Fj7}q4ziVh;rt_U&$j* z%ED*l@lkyIkUXNL1K|XDMBy%>fjmBokNe0Y+W!__CXagwW&Im0d*-SDg@)`LK3E?_ zG&8_FQ285je^#jvS|s_bCq5fg`Z?x_($#tN8I;LZK2@y`S|+8ro93d`2Q8O;rcs}8 zeb7qDXB72`&<CxNd}P!oQXiBr`F#Bf@zLpn3MHRE6Q2!H`Z>iCHpgG_!v?4gA`puL zu6(6h|J}w3LgKFo+31R)^nTM`uaw+8o{*=?+6d3b{OP#ytaAPm4rNcjsvA)oIzJVN zLB$g8GEkq|+6bY0FA`U1?eCK3jeuJ}*b0*PHT>{MXCYH34@C`xhh&<Ul~JBcD9UqG z1b=6PtS*=YHOVy3E2ApD;u~PTT;;!?3$tPX>3ow^8h)zYN)_%6sMMujdMow5mvTPF zXKM9l$>SM9_9D$23PkRFsMjQ@muH;sRkg&A=9Sk*K$UqyuWEq&w3(6QT;9G31^Ffk zU;T2R9kzR~UeQKBK7ikmUk2cp?!zy}+vww<(a#Xc@YICHfrcI@xcv%fxW@IW6Ot)# zRnH+JvN?~JC&;*2(5TZBEHZ9dXd64RLC_{7$+>ahIWobb;Iz&LrSp(7w2ga@7h~%i zcTA{1)9S33HTE1L5@!*0a_B3_=1b@xNOYm+5E7E?3k5s`VE!k;w+ZwABjo?KvqA2u z_2Pp%F_8U2#eJ13zJWiZXwvt?7t^cRjud6p6=Ionvez=}nCvX)mm2368h!t&)tqY8 z>fH93<9#MgM>n*~ou4V3S5)@fF25*7J=V6<!0h0g-^5U7yV9<9wki}y#HgCy9R@~> za(7`kxSP;b!GE&>mIF-1<_)P!mDMhg)uqZI-`WLoXOqI&OmaWr%N@q0FD{8Cb2iDH z&2o(O(f|%L4h&qxuvvzowf=dW2j>VtJ-`8g*8uhcJPWXUCt893X`3tM;Wlsua0PHX z!0iCH6WmU4yTI)Nw-?-AaQndRb1RX*VHBN;Ua2r%#7g%8sCF5c$XzIh4DEQdaR*}P z|4eHy`QUfy-y+Z)-nee|&OSWamO3G7pcBHrzx-k!l<Rl|%kB9HS~}(tQeSVMT%mmu zjeSzRi}VRb-tj0r9{^|ts7qB$JyW|t;rxoU-q)n{{@pKY#7&Ab&{tnUOwtRreld6W z#e+x#efE{Y`8A@f*^aje0`r~?&OCq=fJFey09FFz18jVR^i3qRbtJeE;6{KO4sJNO zT5z@Cs=-x*s{&UAt`b~jVBgR-+5!LX2G|Smhe!PSCRG7g`}GBR59|kjzkt5;`~Gii zzU4(S(W<=@?Im}r=r_}*r{kd!!~?nu_{8iiph|`Ck<gu|fShaQMhZdCd$(%%X8uFZ zy+G)=O?~O)M!;z1BB9tI;wVa+qQY6T(DNM9;HQWw0LeBs-AHn$#3&uQ?@<MKW*-XA z*uo2AaP!IoDV!%owA9G8O1oH*!c))D9lEOLd^j}mAGDvodW+8f9ND5<{#@V|UF#mY z>vQD#TXfuX;ZB;t*g+XQLo;w56Zu1)6=tDa8@Q1d86ZdfD?<8dUB(Np%vR5M;piUU zcHWsibUW_?(ctCX@giDQjTiXLR$<n2(x%sMw7yL*YHN>3+Xx4r$0gsSawXwTLYQ-* zTGgBsfkB>;@S=1lg+mZ{;f&2Eshk!i<C6L9MrCCS@`Ln_n=^3-IY@2M)clk|fub(F zDfW~k?Wn1~Z9v6F*JYw&1KI3w8D1w`bO7q4jA}#w=P?`c1E6%M=V{{ksN{Jw^?aRp z?v^~m4&cq$XNjm78(#Pn&E710vmgDR0{=buA5bn!;wNG>c7a*QIDpsA@r~~kQV$TV zR=q%O&8!jG8H9@%=Qj1G+thATN4iaB7C!{9;BI4=j2l*E(xSdqPyC)oX}&RLL2-bd z#7#rhJbmyGxo0;G9Ay^1*iQq2J?JCh;vB4|a8mNu`tc7C!SBX7B?9pJ#>p*{oLA&q z)y^vlE_@G~#q`V|jw_73Ob}juCh$OX?la!AS1K-S#;@Z2XUOg3Ts&F+)O)hbJ`;Gd z-1oHaWI4mDYB<iO6ux=MD<K?CZt9?fFgu*D=yQHG3{~eTc+PjmjN<JmFRRV)iIFKU zBD2gl36DKP^zERO0oMlkHoi#i#L5M+)^{2`*i1!t&<>zWWm&As7Al;58zp3aeVAx4 zQQ5`_ufSstjRIUNJsJD2uu;J&-A1KLG7{#qR6#66@rFK|nVJKlrZdox#;>cqZ^U@U zfGrIhLrqzXW*CF(jW%Lw15ImO!+3>FA(YgKBAuV%o698P^ShrQmV||@n;9n8dntXe zy#HO~DneRc>=EJS8Y1tn<;^pe^5&?eXd4#|7+fXpkCzxyqO_T2TYurRPYk}hV0NcO zDe2vMh&2Q6F5s;Nkxg)JiJB?0!Fo1o=7!tdvp4YS-@6t?sqxyvmftHGZY;gGkn($# zu#k}+P#3jlKcX#NmX|Ir#MbBY<h^RM5^><Pe7c%ns*X=raY3YNjTz~0Jqo?;87@8W zSk`?iSF+NzUY(h4UY?Viv*M7F5l{Q(E8Htn;coV{YH}2dH-qr5mfRJi@8M<&B~Jy) zczpA7@)<ZPdl|nS*!C9OMXwBp1+X$)zU3(VAGNKKH+5vxO+q_ATV>9J)G+s0-2K(; zYqY7%0$Rd@IMg`zPIB>OU!!Kfa=x<_C*PpD$qPKqj_+>gf}N%axhKf+T{NcvPu>^~ z6XiqqN&BbO^T|V$=HYl5u@iEe<GUDkShF!4ZL)c0*M-d6#D>jVPP|b4yk`nLpm{J) zsIyngje_Xh2og&<Z#k!2fJOWc(ZTspjD4?%3)k#BuGz0%+})sLRhoB>JKJMC6M7mH zP#$|{-El{|#c^dE_-|A=+jY){qk2<##W+A(6>sdb-@+;N$2LrXS0yn<Je4;_EZM8# zbVNV00+<+FEIcdt+&;~3bHf!MxpMok>ij!+^J=e>o3K~LB|2N>?69gz)Z5_LI1FkT z9nbY`m@b@nQWU$55i+V!hlQr<6FnO6k=vN%FqtWuh{y^W_LIBf(4STG<n{%0AaCsR zM0n%G4C>o~+y6iY`6lJ~AT*TDg%oa@00T~D7GC~dy4-Xk@b?4oD_g>b=2sqldI)}H z?=J{#{KC_eUzvgK0q|=BP(6Kv{0ip&_xTlq!;t)nlm`#aCV+B)LVz^@%K^*)X;1%9 z{0bJvi&*Jb01g10c>2GCUx|6v$FH<LGbFz<`x(+F7<oquJQo7&c;@f$D;WF6_!W}x ze~Mp`@@@khIsm!=`T&&Rtp*4OxaHX&ieI5^WPtzE0G0z3Kl=mmE56OK>@4AJrDOrc zyoYcE{Xm^{J8;)e#tnD&%elyILyC+Y1Ej?+luwfJy@E?g4X&|~Swf|f9x<yfk|X9& z%5l)6ge>7Bl+L+|;mBzMG948PsIvvj<9PoJ$Rt9sQOyrXWtBbdClqk&<CNtX@wop1 z`cJRsIGD!?!|=spfeb_GV>c`m5Ty*{B}O2Ha9q+h<k1NHW7j(*?|)3<7f7=VG&G;8 z-s@y1?NzbkaclYayG608K;1*sLgcuD(G+*8a@C-F(S&FN!Zm)*Yq+1d#F@xWN@DuC zAmKAus`lUuIY5GS2NtLDEVro>#mr2qbm)(8+8^tjiI`Z<eLQeXamqz9%*wI_p*$E$ zg{jP0;%Mzfq9l{ZwS<w}uZZk(S?<ivrDlwnE{;}{Tv>MkD#4(#9O^B&7vCI&S&|#^ zpAWh?tiQ~Tj?dMy+PF!mJsa=Z2E`sNaH(SJkwPb|Yo~DT$KLC}++-Rlq(HN81Vr;! zuZ^1Uj^Pb&&Awo>@cCisIJgp(a@W2>CJ@=yY4IlQ7G3On@wqC^V~3VPccf?8hLJ0~ z9fTW(*gy`Mw0e@nu8UhGV<+$qd?D9=t>i8*IU{J#!R~$h5%0}oe`IhBCJ<Fcq$FJK zRFJhz7Fe351|xai^a&<-8Pjw9l3@bB^)KCxm#>dZsP8#F^$34>8q+C?`XlyGz9HvP zo^dIo8gEDLvWD@r`z)$t*VJ#xp`SoSIvL?)XnVy)G%&`U^I#m$kra!eGIDN`Q(#yv z+C1h)W!SnrstnsV9z}+&TO1vMOh$++G8k5K&lur}T|Rz!&n~ZEkI%pq-C)%p&&uAi zLLWwO$lx3Bi@)TaM+H<vB*TME-3Iue=AdkNj916m#OUL!b|I@;I0P0>buhHAXS6VC z0E-Fm=!&2k8wU2)ai)k6#GQ1eXxr&GQ+RLh-z+uKHE!rD8W1@yN_b}{k-~jpXW;ez znLB;_oSc`8)9k=`su=>j61jX&fQdy(*-z~G_*E)yF7RBvyQy*pd>=nx-cWN;(zb>| zIby2HJE_DFae+2=BFUUe`AYMsJ0(tSriOBG+WE;&<Oa_J9#G1GpNW3<cCN0fJ4J?R zCCfq)g|A^Xn4OZyw1{S(h6{B+qjz!1)gcts1Hbs)ly`Miwm3zD#*J4(_}On`ws?Mq zcOGz`NJ)Hxh+?@;jT43Ax>KQTS30+<7%m<#?8MAt&nH7u5WmQQwji4TSa6Ul_ku?O zt%208FoOuGTmTlxy-J-yD~_466EbK`oJ|JLcD}NO=USnFH*isDBniG~f@sbWVl+jx zp+6W}vo%Q33EZ}`vQ6YRFKCYzsV!0Aj$NWx={jq1tKSZ=-N}!vIz%dUsAB9O`<>2u z10?eNx#7zoS7jR=3#XhHCpTR5c34x2N-4`0n!cyas=U_X(eN<dvmP$=JSGkpFi;OH z1=Kohp;C*&5h~QxDUR-=l3m2eS11MxYtRH5Jtn<>gWoafY=4n-nEfJL#ui|WGF-;f zJd@=zUVy=p4c%`#;i_zPRi4uu)tc(nWX}oh2)Io`I;zN?NGCORm9tWiam!JuC{Aa% z-E$xDGV<JoX5%>=`M}iTOxGezf17AzN!9mkT~XCf&aN}uDRZT>>pKKu!|*T=6mino z_3hcfXkLJ%cqFY7&+@3m19;kY6l^sMn^5#0qWjCFpiEn3TYP03+u~NvMR9~Sq4a*T zYmkLXk^Qp+WVi9TC-k4P6S1Jk42*#iS#<S-;5Dw?R^YKF;%j{6IW8RO2wyCM4?8c* zCKLJ|mWB+V6Ae+!1CjL2c%i&i_~Q=p-L!g!!-y2wAl`J^B}4Q!o+q*nt!`_*?`ZpN z7W*t<Jy4;rn?}(v;pp&&oc52epirvh8{+jnd_|<)tilhJ>qQm{tt@F9+Cx0S?w=!J zS)eHk23V|x|FU%O->MkNNYoNE5|xccqE>@fS%CrmD>cJ^8`i*oTgxF}9U6`*L&H%U z(QwqZayL08_L`4+o`*91EJ#JVD!Tv;qKQV$H$K51K{KDnqK`pM&<Qjx#h)4eA$Kni zi}Fe5#ceK=pufb9ioS%G<!=#v7NJZ+%~5tEpNn_Z6lbH)xH3BwEz!XLcJf>YU)c!} zF28`LrZV)WxH&x^IUBStQ=7LX+91rNQh*1f&TNBkAllewUYbrUebEv;<9*G>p8-bT z@{2s+t00-8rai1;7uh8uOL-{08KJopC}OCkYL9ZYn(Ft79222$y6mEeLP4{Hg?yk8 z<e56JauOe9fjbG?+MmFA0naSi<Ak@5=d>GU2%&?L@47lU-{e^%(NYtE+{h+ksS0v4 z0i&gO?VRYLUYdOj(v4<e0p7lVdUk5|g;1Y4MALwFfoRgQDxl(&`cC#w(VdX{LI2%V zLZK4&K0cmPag&9@y1-r3P8Y$DRLXNpJf~(aR8?y6ZR6Qhx$W&xOx6HZw2x9nt598# z*=$q5ze32xP`HTfheuvSl|n$AHWC6ji=Ts>2Qn~70T6Bcd&((gJmBNinVg84#V`$O z5hKzmdD*DrJ${Z3JlG7ONkO)R?xitmx>*C!)s=vVSq>0w*PdI<Le>E?|7;k?2Rr7) zC2}LNiOoW(!l&}g*`!26f81Hh)$p+D#>qTgz}>Xqa=R0n#1<laxr3-IcX54WLs|a` zZYMWE6HdeMF{@p1RQv3!wWI}Merw;3t86T9RO_2?_XTKAA}s`O$Dj>`a8cS-Zeo|4 zg;!C>PVWL6tUQy7=?1C-@*gYwvDT{@L3pzk1=Ml=ybUI+Y_o8<l^U~a^6I`-{X|lb zOUsONaaXAb33lPq6(Y=g*l+2Iz-d*D8mfEBh=vVf+e!aP#WMI(y*qs2xPqYmxalt< z(JkQiUKn5H)n4svl@aY8RVT=PpE9ByH%=wZ(p2L#-`M^XK|^pJpn2YTO^w%YNTh{N z<8@zc?)Oc`ekKRV%h!M6rSMVtbzhV5d!O=ar8~3NrdXPe2W(klIYC&cB03+V@C2p| z=Z{{QW}mT_9j4i5y3)|98r~3~{2IR%zx}NYm|%t<WlhK!R;u?W{r=zf>5zw?9@<tH z!rl^E&rSeOK(N1cHp!gLvV<?~!3m#ll*_+JXojaocxp;$1-`sp#+`{hn$XG)L(M*- zUEcE%->|~R+v6l8%{yC4v01f9qI07HS*iB72!V-n(i;y3PAZ8H4lyUyk|b*OPg!J2 z(x2QgUf47!F+&r3?%|DHDDE5%sH96@H_(MRr+DT<yP_X}s!)a$O}QHRI^h>eqE=kr z$Y}>nX&PsJ|B%Ao-r3`OFHhxFgblM(HlK)}H)@j$fe~z_t2z#Cn`q9;63^mcX%o8) zwVK~vOPBLL@JNO*uGef6#k(;UjGVb{V93qFMajf_<;Zxhk0pB7E@C<;!P%_DLbyHB z42g7EH%6$(2%b)IRIn&YJNyXlwsXVaUD<Q-ke12lxhSb&%8v?H(5H)vvnwFT%V&8) z7CPb>HrP;el>25O4D9HJG~cQ-)1SP<bH!MZ|Cql7R5X0r@ri5ju4bG~b^wJK;d?U! z-7`9ha`WouAPgqVd!W!VdK01LO6}I^(8zqFP(~*hSc4<<A8wrlAOBKe1@g<Mb6lAb zo|~L7vsZowgA0XJoZpIDy7(~6#(71qslI~W|0zxNC32bEpg+QW0L(;uB?=RcKs6ht zNGJ*xn-4WLPhz>5TC_O6yq$y0^rtlsm&j4Oqjsy(rtq{=+B4E?=ZdXEG;akWRBmrY zQ&w){SL}y%W?A)n?CHAU2`alX;n;@X84S>foZxvozA|EK9L7fLPlooJ<kSEbruv$u z5`b!`8wLqg3CA=K0%0c7#1}m$slX-@kJ=32_5q6z@JjSK{im905ys%VNZHn$-)f+; z%9l}AdA2)cf=b`Kag;C}br&DTBhCR?%@_93lT3e_wv}2oLX|w4>b;OHD(xYI{Q^?5 zk@N_77lYT2@GFP_s?vu|&3X36Tj%?gKUXS$jPMdFJ?^U!*?$WV37&El3UnV2BHoEI z+$4K%x$Ic<I!6$qlDttw?w}=Gc;++_jBXVkM>TE6mYnuC$W|S2!j=AF(WKw0Sac+Q zyu&UNHUZcM;3k1n(sPll8EfV?qA>J@EEF!i9V4|k4@aQ&tVhW?AV!FQ2yG;Snkf0j z2qNlkT2O<!o7UrrC439W@kJ1JKub6Rin)#)t3rc~$PmUt{A^)l4LQ$la$Ar1Nb{SE zt|4_ASwy5x`AnGQbVT-)3Z4?F(>3JOGU8fNr+!oPM}>fJCQi|3ubQHpeN*&JRe`hY zla3*#=tl=l(I3DR{k|hGaV|~lxsMo3*TUK`8fV|7(kyxx(aWy&+#{C5BHD@GOT7~{ z5QbOCB#U$O1mVXH@4@$tPS+Co<(Yz36jVYyv8bU&g9ChUoib!zB0I6Vo*n0<pg!W8 zqJuC&L$AE21!<{)cbHGfG@s3*vDs5FPE+GU*kR5FrNJ4`a6MTDo6;=gY^VD0VR}Z* zx3*!z$Ixk>5oRF|Z%v}cdeqvE>fJfdlwjW2=eLlCQ?X4~ZWmN{qVUkRz=jOp=Gzx4 z&EjLSp$wpuGi-@j!dL~h-tMaG021DS3}bA4+-e!o-P*ectDp~xL_#!Fm;*iaJn?Dd z)?nvF#ZM$8X`~Q)g&fh}D~#OcZE3Hv()iq7P0enqdhCuW6xE<vu%EahXnJlG1cj3z z9Sv%9MbP$lah-ta>(OZ9xKCJ%s#SaS-{ovs8b66$?4JFOI9E_Z!{tCB+ytUp2wK7w zK?qPjRf(^i3*560#82WniPpz^Dr`1owxq0gTNNcD8`(_HVuI&q3@Spcl=pn<ULe;u zYaW^lX^0+IjT1Lu%r>QzHrbn2Q+*SzESY_7^#RvNRM}xtxyF%7VjFGZxjvgLi|EfX z<QU9Cxr1uhg63Wcbn9!9f3|SxeQAubVN~XG&K642ntJ)>=q81+qc+0O^U;K(J!hsK zNr#nj2Hic^I89xmu)ESr8)gev9JERBT%b?zILIMI4z#JUtGy6OV(@+6=L;WjM!%%p zQMxFHOh*zqMi;cN;J8f95`OiX5AT~HAS+ui3`V&6#}wgaNwOu^e-<HE<{rr>rQ(f3 zZidjdC2*V;Z@Fr=07Td<p6kNh$OM$k7f{JoPL3x@v+qoI%3Twc?07?+HsLJ$BhCJ! zntkszTvQD|7H?8>!_zzyHT%!RXR6sSLxE<W3c?Fu4rvA#!$)8-W4&DFh`>UxzN2@S z_l_RW$L{&!ibk)B)BGr)66$~w%HUgosOFb><!af{b)hH|dz?L0eUwd?gl#>;TeA7a zhR?NG!&~^!cTq1Y-@y089#?cKt~f7=s3P@LY?Jelvg#sgN#!D^5oM`o(UEbgsxOeW z;0~`^y#jS}&+kiUWaq+E^mW4L>@C%8?3XCH+sKXvuM6N63|{9vkFQ!yah~4~>A?A( zI(_Jf(@x_KEur5s$v*j6m_yQj9N0IfAMni~y14P|r@Tq6KhC!BGWdGli;G}SW~46_ zMrjCdIneQuuw>xTlC6Ka%h=({Y}0qbbSyp~?SDVue^OQp1S^()d5cOvha8pNBE0_q z?xG8CJ>WxzY;-64kZDg3k`C{(uiDA4OH-mQiE!aznhWPE&SR_kmaz6_S8k{NtfpE8 zxpX(kH8rA=u1j~<8KUI%r+aIS{hD{`(`?EdHZqMH!5`{5y;lbF{%8HJOfA|SgHH;z zC({6KiZGRyHS7WJJV-x{otx=eHk&_mMsS(5`UblK2vp>T$8RCTDo)*#gfp9cJnu*3 zQ6;rbAvxE~AZ9nWpaKhxD`mtClxR4tbuAk)lh-Itb|)#*Shj9qkmE`yTa3q9>uOcJ z#vq!s&Bjh7otsid1ck=s_Opw5P2Hjq(=cK(M*NXCqNB2329f17^0ZK(8ZhQ`j5!Wt zhWllyps}WhX5h{%-Uj1C#M!~(=$RMk{rMl`@?sM7$2AX?EAZZ&R`Zi}=ocb0b-Gi6 zmEDX(Q;m8fp<JN7#~=xPoDJhmU5@xrF36!$dK3=bcYJOa%;btjSFYA&?9{htoG8f& zEMuK)-gr&*tMD=}j8)evl9Qlu$sIh1pQb-jG1i?VbHs&mp-C9hqzLtJ(C(fR(WtdC zl&yCg#X!8h2gLAX1lpTn@1Yl#)7WrFr5MT{Y*K{rA$2CPc2RJUXPQ2@iwh<J&)Q@* z5m+(kqZXn@UQ4`{5I-6By6~3#0z79M&4<w18?cUYPf(o<aOWGNja}FQP)AJ-))3ne zcNy-h8(w{MQ*d%STDky6K(p^C&@R2oZKI%Y`-uBA`-U4F2U{nhw24qRO0(~n<{cNl z0v8r0Y}x2t8$1sr0Y9Tuw0I1@0TY!Bba!of(3W9!qj*j2vJumgQP-*WZF+Kai|3}E zmM3horGyshKTB!`OjUGl*BP?24x_Tm#z-m$I>=qDPH4Q@UZs^&HsblYsRQQzF1=BW z_fRq)Alu3v&fb1a4KE}8)$XJ&KQ{I#EUb?;D1Zp*bS)Ya<7t9XF#<+Kf%E#qLL@z} z)$CUlIIqCS_z<_0omawGO@V88a<ahyo!|aC89SZMhJJlR#Uyu{oa7qjtOpujYYQc3 z_Bf1)UMHhgE)5hpUa}i%psXMRCDS`lW)wIpdqdfOw}mY)a4B%G^x|N_hb!<fjSp!` z37#J6xeW(T2#s7rMo&Ms@ssb7Hm3e6nn|*62%+*<PXw=Vvm=z<!8n9Q$UUk8o*}WK z$=%L&V!V)GXA4?I_R~1dcRE?g;Q?ZM5z@%LC7PO?e&jql+E?}y^KEFP%cd>t#a%$2 z^OJEfa&+dtjq{(mQBPBV=J6>)Bq>0U`{L1Ex;pk+G7i1cu_4Mh#8VlEgM=$EX(t>_ zf(iU2OLBXi^%>KB%`8m*obG0z5JX&{W`wO*{4^tMWqs9tkmPf%W39iil1xO==YE@m zF|ZzW8?_EJAn(d;t<CLkHlD`G8JK8xm@BuX$tY?)q0L5=6=Z62MYpllENH@rjVv!! zRBD&VIPC${cvy3U8`;yq7(y5>DBjr0Djg=#ffm>l(T#XISx=N<u?y1JS!wKa;cNvt zM;;*x`ziu%@845FZ|~z~l`FH?Gp@Tq#i}4@26FzY*@%`R4S3wt%NxUOTC_8BH^6NG z69KeN!NBc_uk0n1ey3-WG@W}!OS8X6Ev*@Njk*)QsW%~GX6m7XxM`qoAg1iM>Dd@q z|7Yr(*~y8x2?NY7q)22SCryn38o1fmK{C4o9+dbn9Ue$I6B7}0R+GpCgR@3|NK>Ps z31sveZicxKr@&@*3?HTfavJDfQv^(dArOLb_8Qoms!Uz*q^vSQb!Cjx)T#UxiXO0v zVU=Bbb>485Cmix6>abqgt7Su|uU2^eA~6QmD{|uno88;cCOZz82#7&u0z6kq#2tN{ z<*5F3k?U|9Ps7XyoOCaaxetjsYLP1edJ^p<)lWSF^K3MX9T_{V%G!&g8IwaQNPCTh zv-!D0-FfKu&Z6h<M``Ha-j7@1?W~d^W>iNTP&a5Jm-2TrKwD<J?<bocZB!IWf0=tt zSbaa%7Nu}K&%;6hE15|&c!uE;fJ0M-vF8f2KS8Z3{AoO=|2BvZCpH3e8d`&MU>S5A zm7%uStHQ}SzC6mIbJUu?cUZqqt2K#K(PDQ4Ec?HMkpV3vXYaSkou|ZXDCT*UWIj;P zH*@2J56VTcDh`!8u_g#@|40<uzlHA>*X%yCIJY*pPuTU1mo*>nsO%fh0WT~(0V~y9 z;n`r484S)wpqu6jsVeXL@4Jm6AP@rxyo+DrLB;?Btx}8E^;)Mkb3wyQT90Cw5j7)D zZPquiDTz3|*jp1B12{Lso1DJM>6?-vc65{sH?hgsFY}DWuU!V?oQ#8E;3xMeVEX7W zYVrHjRKJ0GKaHZnl`Cj!_L60<_aGTK4T<>SYO42>4+*D&jrs;nO*M(r0n6fpn~7|& ze8UJJ05-%pdxJDJ1*q}z9b<p2n5L<o4lik%nx)`08wIf+9r6{nk0;8)NMppEAS=x9 zLu_*f@wf#%yw)8x)j!2nR*=ohxxyV?q=`uYN0tmZyB-FJrsg-0YgMK2^;_>UTn^T} z{Q~2|6OY01cKL&A$>D=i^Aj|_CY68SxKzHTI$0#tJ$66!1T>(inw^Mp5HY7BOhfUp z#D4gX8wU|T{SZHe7fPi&l6+HpK2$9c>&iuD*yIppdGLUiGnDWreUL<oNu)uZC!l!{ zb!kchw4<BN?vzAQX%zDCrguPkMQ?m%$F}n@$d3$2s^D-Z!YWa9s=G}6j*Hu3R71r; zYE|3NuC2cq;`nS^=&@Q=T<-VW6!-#E>;z174H+1vL#5*@>6F5sB7<oQnN&9TK4NKF zu_<s?srnLU8Y(0ZNsk-{sIZ@xkZ<_f<-ja4S2*=CZbR<=4&u$_Px@7Y%qA}72uT61 zExa(|3d%p0NCG+CF0K_%`Be05aH24*#Jg0}g@0$UkA1YmnvGgG40N%^CDRQnu&b9I z9~v)s*XEnZ(eed-KRZu2Sd220o_Axr<GEHgI-a}0PK0$ECp=SIfDns2MMY}EwF$pC zPu6nCe0Yi1o>qD~9tCqMz|mS9cm({{^*$W$#RK3^2zF>owoeig7q$?s_~CeN+d^h= zsENuZ7czrzHtyp)g-Seo;CcnFjO?oNO{)fW>4;jy*z>6R<~vR&{Kxu07Q4h(e)~lk zQI~T8k24$D_j%kDI|W?!@hscQY#|&-5ZfI<lL(<|a#96f8@1tcnJTEaC1eYUUrPoy zFLM>y!onx1wKxUtMg6seZa%9CCYoyeiVN8;1Cy04tZy8&sq@<+f)(BJX=xY~x|4>w zH_D-Eo=|cC-?TvvMVUH9+pH|1aJXc`cV-4|JK_C>9HMQ%gRG;JV(Syu^h*?5XZu+a z&?h|p1VuRrQBEk4!cnOQk@tF=M$0k_2M!HFs;^K&xlc&POnMcSy*a`L8$CnrfT=dR zN6`sXM8{;*%iSf$K-KJnbJ<68K?_Dg?l7qq8fQtDvZ}JH6;f6n_Dm9VHtcUL56lgx zcBwG(qu+b$f^WqoMD{L+*uzDXR+LcXAp_QY$SHJo?0Jd52Xf1m+a)~Sgx2>2GAFw- zQ4I^5Lncq4QXgnSEkaX|;dFgPWRr+Uh&H-&!nc~*CTN&#Di{h6{sEreLUJer&CJcF zlC#v}LLaP`V}-mT-)_V5B5WP<brZ$hSPB}9z;njl8gWbLHl_ZuUCB3k&_Dwn_`)kM zd*?`Y?h{!0rr>R7Yq~d{;w1t{C8Ux(Aij<9p@4eEW6u*_R=A9<92dk57d|NT5+dX} zXP4(~{de2$-vY%}tj`#r?YI5Wf1N_RHR$_uyr>3Q$3O|xjB45w&;e5qxiY(O61-K| z=*wQ%Rybf$!4(X+PUX7Dc}_Pyy@IY3Fw^jWqCO(LQTs>Uz0xeASoLNs7)#I!qYM3* zB994=-N^Q#blVlaIFTIWV6l=-PPJJGDwJf)Ck%b*wb>`hiej-uRvY8G!|9HfT#BuZ zsY{BI*Jo??ZB}aDsjvDHNv$)zRo@|b!<xYb4|YDdNX$$}7wDHs=mO=E=vb(9@S*NS zcShBXbbMCjI3}wd>A5A)ce~@5+#@(F%59#ofe^<OM-A@wb0LJq$!)|gn8wtj9(Duc zXE~9GxWd%?mx92l*Iq!rHQSiwo=`q4A0--9#Qcf$eH79Ij%@fYfXjl(a5Neu)@~gG zRLEAKRh66?STPwYvIbrzPWVLu*@bf!1kSL-3w$%|t1vE!Q89O#EN&bd)Wqoc26*>m z*-}<zxsAIs%)+^akPEk)C%chIIbLR?-Kp^5@u&UP#?K}<d=?zHa-@<AUYrKAZ7Y0w z51}f^s{XrTfh=>P$!fl7eSMI#URmHW9@Ffv$5Z@uh4d8v1fC&iiDoyTWQ-@=X-fB& z7^N$>cWXReca~`C0n^-dW@YywEvKp-3Da4KC#ZIu6F4VhZ<4cF8PD}@IR=@;<%;Y~ z$SL+c97E22MWvGO_b6<N)%p)B)sR9Z&QAh-JZ&%y;vS=5vtpCEjTd0O+l^{<P?-{) zkva)Ip(Z>89lj!Wg6|b}Vhy0i!?J~YtSC9K+*zpt4kAN%AsvlGB6)(x2@`Qk>;jN0 zD57aZ_6J^+m|bp%Cm7Nwxe)aG0M$@mz{A=PV4fKv9M1PnPk6c2Z@M)2$q|@PC=RC2 zcQ(NS=C15~@x_7{U8ZwHoWx~n<xSx)*yJwb5xy5%%Ov3WYHo)s_wXu@)-2rhh=|6J z(WWFHk^@Ui2P`%&?u2lx0B?b|LjMGV?^K{bVK~k9;Umn;_urho1IR}_nuN;1u=&Hs z-eV;o6vlA()8%B{TDtYImPn8s+(m?*7UZ}pPsitW;7Lt~@WL)6GtrATp2K_0Hdshu zQbtT`QL4QOMn;H?4<?xInMaS}l7)_kMe%v*Z4O{9&c)l}!ruxA>Fk=6<BDjv%8B%m zD}t{)!iVs4kz}|8=%==45`AE8KwZqJQ}LaSD~asnEFoeSxisG9UL=!|lH9XZE>m0G zh=k+Z1ysdoYVkzJEtj#kJ2uG^xLX{X6p7pv7*S^7&pS!d7N9GG_%KZCGPWoh9C3;4 zN#58JZEWMYbBbP9WxZ!IX^dAOfti@Zn=6bBk~C?vCa7-wB<|0O%F`$t7H5@ugojR) zA^LbE11a#M&T&l=9$)M0ou{#_p$TXYwHFai=rGyLc-_o5;bGbdbC$5}%|T0k;~Gjh z+%1d)lyFqQ;PA{f16Rm1-c$<*r*ivJeZB)auoKcW1?y6C_z>t1AU}oLRbuTVJ|;f* z9MyG<BH+*nr=pLf)AmsuNzW3xA>ZiAHpp7h!&jd3%;k;sP*?G8C|CyNo;f(E+|j;r z*Q1D@gl_y~t|>nEFt?7cJdJIdohAHiaLV(mNy@@CpBoqmmme4u{uT|#fjJ2VCPevk z|DY(lX%s~dOp5RY3i=pMQ9CKMc9JwKagX=@eC(Nt^T<(X2U0&BLT)~xeqadotzH%T zrxn8eX+D7ki87B8K3PNd`wp)OTqPE*@vRb>Jx28vT>8(FB{fdsb;fvko!_oO2GO|& zi5kz0y;|<(y)t%Ew^1!;BZO^haHQaNkYHKk+x<A>zu+L*2NQ_f1XD$yaAARDH;<bk z+_5HbP1(QtDkYJz^`84-k?zDp%W)__CfMXi1!0_QufoU0*>xi|`wnUL^>(M+JyFR{ zNva!}aF!jd+4n8V<~7F~)!b-zl89zt!{T%MJPPztxJ-RX31_*+)d5;5jeXZSvGmg_ z8lOw`xj!kBWPUpYW`R%T=kx(8tC<{MsG$%|bqO&@La-*bsF91&e@C>Ca<hcVs{`BP zm#eO74=VC84U%RRX!dDDla`#-o>|bHBA=*)8nMZBW1&(((AJ*i4Hs1q>%D^E$MD3K zzq9}%6zI#fb~XHe)5hQeMR~YqE<BI1$H4y)8*c-j@t!EnemsMhcPCBMvSE;eYa(un z>_6&JX!ak&Ja`UQ3kVq|8r2j79|A@`Q(bqH7l-Tt9B5R6LK;CKji8W5P)H*vq!AR- zZU_a;=Oj0!0KS@GD1BYy0dg{M?2v_SLcOz9o`wOP-U0LFRdR$=uW>iaE5C`HX1(*M z__tS`4YHn(oL|f8jOy><tyvZq!r}qHoNw-1eH1mT4*os$EyElDI0?`O&<!vGh{Py> zc>v1*3IWOiwgc<{cn;uofF^(s0NMch0JMFO4!{7g3cwDq9pI+`PXfFI@D9KS0IdKW z0Q~^!?-?cnU^+kyfB_&2U@d?h;7Nej0ZssX0ni69rXR`zxC>wrz)Ao+z(WAL0bT;w z2har20?+}_2XK?fFgF9t21o^14qyY=08kC^D8R1)-UK)X&;sxmfIfgIAf;mf3;;{X z=5XMzBf`LZmSkY^?=vv{%YhhPWAKID_ZtKAi*bgl(iB*VimmxNwoJFq%Id6}idbD< zS-w?QU@t4tmD|hmtQ8frLjB|A*{v4V>K~??R>8nOCb^6&&exTeVLsM8^aVdlDS8wX zmFDZro7uv$QWD6qmbJxJh=Mu>rcNm*A+sQaA@9C)W#!gV66^MgJbO_&JF9&2MkvQ_ z1Vqgg1BNMKDwsT`jIlFT_?yM#GsW=7Ff*7^h9l3nlDf_)<%)~xBOU|<V-so_MKBXA z*D8%hV-Wu4#4u(OSr=zs9-?CIj)}=Ohd?EDxV|&0HHB;7$1t19H^EN@F_;iWr2<C< zfB4GmostBdoJ7iz$rZ|=;1JcY(BbN^5gP5tn?{9?9y2y#-1rHR6DLj9O}Tk$)U@fh z%((To=$W_Ax+CV!yJBb0nR|C!e1d*n;*ahzB+XAwF{Um^TX^q%i%g4`nA4YLEX&Nw zUY_%BD^}*NTD``yHZR{=u&%Jkw!XNew5<Godj-pF*tlu)13%tUxpf=a)-{%5mzv9p zN?EHN#{y%7@v|8IU&O>RcR`D#z|$gvZ;CZAZfbEws@-ZuH^a(iS&BLGyuj}{skpc- z57XMYQnskXs<YbdWp*9IghA&nTeKu2gZkhrld*8|0>4)#Wr-<i;o<?GrE_CqXNQF* zmFg_z<;6vL7Pbh6OrfPhS7L!-X#szhwU(5#I24P^EHESst-55Lx9sAgwRVerv#tp0 zY`0tU*y7EzLe0fiONA8%b}4JgV@V3X+;6GSRdD6yWp)U$T1s>UfP6`r-3ocYV+n~f zi(*Uhiwz6CU6(X~1_ybYG8QiK`*PUAq6(d*qQY9Tws^BHpR*U0uG5u5RvWA|R#9mY zTVyFNdVpjfx(wsPH-acxA*F6Dw+`NQo69)6Kd!TM3t1gREh(#Dp|0z#kULh#Zmr;o z;d3d_<ynf0u`p;U#Oe0DvXXN0>CU(#uh@R8u7E4eBW+6Xv<x6sTEW`6JQgYs|43j; zak0r#MC*?Az6<M3KJU^pZe5|SqTG^aCCvo`z)~F0VE*lO=b-lT)!j-vZ|O4H-fSTt zT~?ZBops~w;l(Wm%fOrvzkvesrSQArFq|tTvrZrig;q;B#TMh;eVsaPEGiq+Zv*M( z4w<fk&A(2%Ihd}TgW7K>va_6}c%Xx@CrLz%H+#tZSC^IIw0#FO6wcmcV)f;JXMAA2 z$$W}^T?X&@)(u5@esQHXvTiDe?*>K;wv7L`igE596sH7+T@hOdYeGJbg7t&r58W<O zqI?T$f#_kh%Ljk-cI*9|wE_#mk+M|!$e|)IJCzib;zCq}{f)z&E9EM%0XJHHz)v3P z5EDOS9jv9$Yh|S+)>0N?W8AnQ<67+NIE+}~%a?pl1u%)R_`#Oroa;jiv%u+%j$no{ z73JB>D#{92T~-mPWpZ@1uRRvgNe|<NLhM<yW-;?%eO_mWs+C$G0#~}ev}|MPkDy#B zi4nVLN@%E=MoZ91^Z;-w^~0s-iSVqHo*(yncEhtudj6^3^TU46JN%w^`aSRRdw#_4 zIoRQN&{5@p1zGW+<H7BY@Sq@Ak!xyd0HK%|huKjJtLuzg;>_6&SZ`rbHk<M4jc$gc z)&Z#)Se6S53stI+P37eq%gY1S<A427x7^^r8NR=(!>;~I14`+7f7RFc3ye|a_b0o- zKmYXG{r==P_~%Wl`)4=*|A61seOmb6JpyC{e>eII7y+_@Klu&*4UB+)^zZN0AOFJP z&;QLo?1rl>)jRP0M(aCJ@4-GY!Z13jwmYk99{fqItB!xj{nLkc?A-OpqmMoQv)xZT z`SYiK@$@s#?s@L{7hZhnmwSKp>z7~o&8xqC?RWqF``6#txBtMwH{bfh+wZ(v-*Bk$ z@E@C+j~qRA{KTJ5o;rQzy|d@u|KP)xk3K$s;m@CZ+IsP`&)fdvi!X)tzj!+S`qkH+ zm;QFS>znSL-YegJ*Y|zD_zyEgLo+-##1Q?n>;KO#|G%6e9XkAfMEj?uC6tsT;I09~ z<il^K&ICUlK5T{`V=~>5pMS?@LQ9!V43lIcJTdTbgdJuUmu>JpF9B`|A2Y1wtk*M% zTgO$f40A76O!BxFXk~Ph%I!tCCt<SK^YHq9s&%cMlW4YkEv4iU%EA0GU(6Hp!hA3f zNVggD!1S0F(=Ztpmb2$uNFJ&7BJ#AXkh51ve%aRiQmgc`jH6GcvQpxa!AY)##k80X z<6}IGgW(J?`O+RsHn3u48#7o!7^8n?h1I@ftqpj9g##2b?s!1hB1;9El!siUxvZQk zCw}yuX2X~uN6R|v{IX3+OlF30Y3yCIQWh;DI6={X0U!eS09uG0X&<OE)EpWB+5wsa zS_K*h+6bBoS_~Twe#uJ~FUedM#moYp7vH`6Nwe0HY{0)HpSUZbtj)kxlq@YPW9jOc z_7AMActCi%%Yc%o3=_vNuN5)Ovrk+*E=n7rdroq_?-wEr0pUjmh5un{V0f)x__xyx zOg{oV*MoabddBdF{NfePF)+n*4A;eDls+*0^q}yIgThY?3SXaS@YVJ1M8lBfbpGi2 zcuX}69d1f8Fhxn%PoKNs`glg)cm4D~Uwr-WKbr^Y*5UWuGAQ0NO9#SUUOIGpSaSl) z^Ur7a3Ij8F#n9oo5M~(^UOy=R1FHhV{rfd-wSif^`ug=fXd5~`y2pyIpZ?_L>!<&u z>iXgDZVwC}+@G&McK!6G-PaFq+jD*VSG*J$KKT2bvX_SAFZY**A<Mb&>h<yHJ#_tg z{`{DMS$V}*6f*`lv0IsI{{D5g@{gUZER`*=mRju=)|yOr%#vAqv2la76xNI;2xIXS zA{n>Ky(bZ+%4|y!n_6biC@Ni7Y^5tC^B9v%&P=3euuT3|kzr;1GEK9T<`)C~@D1i_ zD$D1Jt*J%D*2R_*E5!boG2(7~vb~5c%Ci(_Sjqk%!*t0PSuGo^SNVTCkPFQ?8|FJ@ zMzIxWiks!qs-BdeZznhh$@~vf$}w$nSxE^bTvSvF#m~bOu=Lwmt{fNpB&HLwr#UB= zao8F^qH*%6C$uc)f;CvSx!lUU3zSW<mAwklyOqnlyLi49{52_`v)iGSy`E{x%+f-V zbG~s?9uQlQ7&0dZ6qA*J%aFkz$QM?mSl4pv)>-Xls4jNhmokY)AzNTDn&fF#OF22@ zV4fq-^gv@J!NiPJX8tH&h&_NCoYwq>rFnL12^j?q{{BFPc>OalZBnwCVZyOxmKaU= z+zQxaS&EDD$(R8Oi20FnncrE;JbaT*Q|`fM--$~iz7Z6=u<iY@f7P$OmXRIRg+Sx{ zOqmUBO~w$@Enie-$(ObWVKlu7ID0q02lYr&X?{j|Q7P@z`(#+4abSltgT+$}7{2vn z>|YhYEE*z3HdC$4F3Pti7h3Gg%1pRpJbyE5We#0C9~iAKkba<F4Z~QJS#)olv_Os` zowM3Eo2_<2c$VhTK?uEV!?s>ll($|Ql`mgCmY{Jm$XF%h-?Ae3zADH#g(v1o#ZtC7 zvvea+sm!kk21~89J63rykb0+@ekJt#g`R!f?;Sooz<ItbwV10Y#JuNo1qD_+jO{Pv zi;_*2a#~I3iOC9ITP!Q{HV`BD$AY#n&~FRh@N0r}$$>r)r=5&xatK2|QRYh=Cs?}g zDDP!bqYUVE;AoiS;<5^9c3>W&qea3$iFwkmHcL3RoMTBH17c+}!T9C*ee;{8Sq=+L zVlo(*M9M98tFN|Mfj)qB3*zY4|5+A$5gt?|G4~mlE;cR#z97FCn5I(2QW)1{Ff;Gd zH2F&k==*f}0GERGgPGks_aw1U&{~eQRwP|}ef-z&pZ}|mPV%`je~||5)p7A&(bZB9 zf#LEW5VwE*{`dbDe_?p*cjMko`3vyZIChFZ1Ns^O<vkst|M&UgI7JyX@0e6bE}o&` zbx)KCL{UIAtb$_vApj^(s*>Dck{c?84fhKhBc(-GBju}={6+%YBmw$Qk^JXK?@7{o zvh;42(kzwyGbA@#%0EXcyIAtajTIdLOti$dy<NgJSc>nEaITWv?NYc?3a^&(!3%dN ziu1JezDL661*yDWO8)yL{7y>YA4=g7A+#;LZRTxrf0y}B`VSTUpN&6M`2XIYcE}$M z*A4mmr=tCX{f0htpy5MrivM%*{vm(=zmEaw_y71%C>#xRm|UrP0T!$^+c$5YBKg1c zDRuX}NZqPuaF++TldTTo?uGab&wu>9ZisxV`l)M>+&6A8ev;(wgZQVOYkO`y^B>O% z&#f3b|E+t-6Y6S8|9I8MI%f69wvX?+I{w*~Pg<`q%$-|l%HqG$J-cKn{J(1M-Z4Ju z2Yr_@SL2HIp}oICkAdm@+Q5`wGBCA~NzCr?RIw?#*w>=;!?m?nFp#zM1h}|nKMO9d z;VN+PBfjvZfvm-^fQ$4+Ex4n=T?sDIG*RG=1Gn!B12Z1n!{AN;_aShRR>%i;61XYg zP6oI2KMaJH*b6R>v)9@T#0r-d+)ao)xOjHe`MH6?ucsAU9BdcB#m&$Y;I7(zV}SG* z(ovW%*2&9WVEfph?{{A|FpmQ40C)(X7N8oy0k8?69H0<jC4d<q4PYKX9KdXV7=W1o zGXSChbO4b65dh%;S^zbG5}@~Q&?f-G-)Q_+a9aRQ0~`kU1HfwlF919X@D#uffGq&! z0K=36eU5!P3)>X>{GnU_K5UbIX_9rCS%bz8wv#UCk#Worzrp;KqnxJiyhQh>%^Ayv zN_s;-bIL!K{xsA}JBf~Kub=-je&hYpn8&fG2f&#Z#|2vEK*g-*04@WJgo?!gEC#@f zDc&>*45f=VGDI$pK^;$cll*T0c)9Wp024s*{{jN=@5!mi2mKV%&zruu%fRFVtOQur zWw>hm{2x$D0|XQR000O8MuVJ8*bb}oi<tlb044zd6#xJLb7gdOaCC2PY;!MXb!ja& zG%jU$W$e9scvRKZFn%U8lT2=$1Q-Z68DLN}iqY|sFi_`^iJp;(#)^uHij5*xtTZ_X zumUEYiOpm?mA1Ck*0$E_>#fySYq=^W1ag6J35wiQ;(ZSz7(kP7J-@Zqo=GMV`o7=q zdA|QX9x`X2eO-I+wbyO0y-(?F%O$HMNjCU1O-WiMiGM!nfBv@{{sxU*Ge~+neapC2 zmf)6gGw0o3=~__n(0vtmKj<pI`)5CUNOS$<URQ<wGuQn;bNR2o(e>a%_uM-<J3GT2 zuVccUFZ}7gt2VVH{(Q&YY`KTRn_H&9bMJ!LE#>fh_`&O1is^Y*%Y*a`w4~GX_LjNu z{PF$e^RRpZwz3jQy6175G~!KmLn5wInjmGSq)XC=@G@V-wdKQ4j_9&QiicAq$&No# z-&0y(5rZU>s}hA0j~~AG3re<Ji!>>D@a9+~N5=nRkpHKDoszUX<?P9mwR;z9@I3iJ z93bqwt$!XDKr^}Gp1ZZXVgAn-bxIe&-`@WDeDHs=$R>SpITnO58HV*)2Ii}uyg+26 zK0;rmEO?ImK|bIAK~MkRzyAyW)bMP#Lk-V&=cr-Lou`JExLwLj<tF83)%eC0WS^== ztLdo^u#;<W@{YW&cDG0T=@vEeu&I`}@G_WJPnYLlu>9L5X}lVlWeKv*8gtpb^4Kb@ zUy)a2U08K&wr(?<V&_#I8?U=+x|R*~v!=IZt86nn&3_6tsMh`YT}{^6s@WJz@pM5U z+l8vR5ncn{gSExxl2uS>a8jYmMIn{VcdIJX++`|T;-1xH9p6-JkyJL@?F+Cb)!5)t z?o{qjW;eDa{$YRfZc(ehnFEVJW%hRlLw?T&H5_u6QOq8dHOMQ{RdzhostsALn)Ox3 zF4k>LK67@RBh;!NQX?TZl8RvD3AZl=pMJMbjm&fx0BCC1?{@L)bAduEaTiE(&Fc~c zeY54z-*LGAL*Z?r@L(t`23?InK^Sq$)7`F`Evnh7T3f1$X6p_J!c%jKRBuZ~W)t*; zBK25Owb&34_#nX64AtYD@cr46MANw%S1x}d0|9%A^2G)xB~)SpdtX_FZz^k1Sr1>E ziNR)-Js}3n)5aYLF?-fsh40lHaAfalOd9XA;};G$bv4KisO&_f%s~hS-Qe9or#+_1 zjw<1$lDsYx(5l4qg&NM|_d;_u^_o*2>z5#9h6T`smr<nNDX++fS6}F$cDqkrw}lsq z%=VI+FSLNK>J%bkb8HWU#_Pj;UCkDKkf$CJ<)`X>mmc)9j&`%g)CLDxGosp7-j<Gt z*6lH|%IAHxlU2auKlaP=N+L^Bs-&1DQlPv9CZZ`2zN`rgoeRM8H**M#+~o;)pUV;O zR(SzQt}#uMkahq*p8<zq)F#!m>VsMKW8*ARO{?bc>@b~Id<2vm=MAz?>O=PU_~#(L zcR;GA9!GSK8VR}=_#@ZM^Xv$}<L)FX;D;vRXBPg<;U79ADRK)e^6V!7G{Bn$^B|Y$ zJhTr{b~fY%1X~b<x>YRT!)YzVpMnxkYYAX3d*9OvuagkvEL8NhebnJe{J0&l&H36V z_)zEY3L653_|qd1{vf1xH8OxhWkGkDvB?bEe+RXg&b#&@q6M+}rwDG-=}%PqcTw$y ziE2lkrP`3_@WA-CGvn(mh^vAUMg^v>#qI>ysX#dgT=jmevLk@8u)Kni8!SslUdyI# z5*d%Y9xxjq$!~2Bdbce3Dp0-&hJ}w!BRJbWmZVa)5f)XDb@0J*V$DO%qFSgka=*E> zAjoW=1j@HSk>5d)fVGW(ISApO`bnHfn2oe%{MINGTe5us9tGG2LLopP>ZI?+Ta=p> zM2J}_L;%-j_Y%MYBuMOtAIVU#{20*>Wt9XS_OzPL<9m|nQh`{g5r5Xjh)xBnw_#zP zJXWeIoUG+g$tK7S6wAAQQLKrk0?JZJ&kiWd>{C9*fxx2SYfNVMz-#!LG`<TYP`2CX zG4=6$n^jOqpkmGwAH^qjIzSmIwnmRx1l1~lr+^X&RQMlml!o}2Hz2XRMUA|Zh3RZF zpHbVFT{SnU=6cn;t5TL%q=f1<$J7kXHZ@z1Hl;{NF)35T`RGSjHA+|9J%|?YL;(C& zf+U_PY+?2?hzKhVd4>I22-PZC*nc->xfH4BvE#711&J?I*=`{8eBm)%@LUDVb@6Bl zHMSSm77$kK<DF10Qj!wQrY7EYmq8YoO?NQ-f?LH|f_@_VD2ZHn<r)XF*+_{6*>MB$ zuq}vF<9kfgIBf}pZSDXJyJMM4H5wh}R+VM)R7g{eW(UTo#vuz#L680w%?3ZvZJKKZ zEopWHy!$b2={R|8h~$L;%ld>jLl(fhqzp^GHh{20(*jntISn&w7X;V`01jXCB8-D2 z-p{>aB7<xrUkI6Kd}G5(*v5F~hfm_*v~cBwX$D!m!%TEoWnzMn{UEv``w3^zI!1g} z?o#f&>-J;<s50mMqb(B4z6*X8qLI-aY5-8a3>LZS2!?%m!LaJO@n%@<u-0Lcj(PU6 zqpVT&ZkB&n?`_o2<IB&Lq-GL!kwUlxne*)MwDSL&C`m?(8FeC_L6P?pMeaCjk;-_H z&m_d}d)x~+BJ=XDYw~<@&F_djZR1}}fJ{B6c7f4z8t|?hR`w>f;g~%bu{WP@k&MsA zst@d#6|fEkEYF^pVUc3F5Ez|-@(<7s`}2^gYkJ|M`b4Z{B-Y}@CBYihh90}|DHLyo z;#u`wN@0~Yp1(fvY~XGHWzE=XdXMTCAYi3KaD|q#HX`&h-SaSVjuRp~RkjP3nluzT zgOUHjAwd>a2-N3Jnin-<58EwLqwhwfs?0vyYmwGMek9^)t5CIy*}aW&un|Bd%nsX& zAPcvhi*VVq^Pzi?)eWKoh+E+?qcQR8iImuRfk;eSH4;&3v8NT#Z4|VohKE{IV|{^Y zGyuBCEE<S+_VtiE_9gZq;v5W_N+PN?0OUC0oHxk=cwQeLrU0|8$Ds<cp_YJg+|)AR z_q1j&t=XZcHm95h1{pBxvHE}!wdn64rQ6`b&LXeozXXM<YML8WAI;8l&%?>hz8WC~ zRvm4CZncTAAjX_MA4DzHyQg9b3{+<thIcQT417af_1dfS?*cWyUF|-gHXOGSLPW2M z1aouvRM2DPH4o&;u?#gbqri0D_yI`+2#BcPI5t#edzZ>aLk=I5ocmhHJ+UvhfExzo zQ!6&Vsp3ii<z51%Wl_Go=I42`n!hOtp6=*CVBUZ}L(N75)cpSYy;2F*3s5YT<uw&~ z1jpkdBZ2U0Z^k&h_qcsRKIVVF07q>%&h4loh|ruIRC%0hEt7YR2P6x+ePKX|#@;^k z|2KDTf_?$|2aFy^#f|cc9f8%B_`iVsMmt3ND$Y^6_ZXk1X{o{d1~r@m!geWZ2^bw$ z1sbBMdXacZgBPooJ9qBf<;&G@E@D-{Y}LOj1$Z)Qb5*k;V7BO8jq+HZgqh%fp!%3J zT9PUYFn{<4kT7n@fpQ=?-LM<}I-oo}IQ(_OUyr^!_S9UGZ&kT57yh6G{D>kD*o{9_ z2%a2&I`OAR-`-i3<(8r|0V&Vi{~+5_npv;8VG6s}r)iVwfc@3la^=wHI5_5dfLu$1 z6#c7MR)94&s$m;+a6OD|O2FWbigN?2&C~R6S<niy%l3eA#4Po+2UbgBD630r+O^hz zQSXpL4C;(mAL^@qap;R$cdn+#U+-5Ncn;;#eiDzmS>(7e{(4Pc4qrU#GLhqw`0K>p z3}fRlLqvug@haC$#bt{9v2Id5J7BJJDoVN<(zFbit=e435<3k2b5)E;o}lmzc`)KG zOsM=Cy5yoENRQ7smZ*0?l%*n#W<7QkTWE{pZwbqT^%i8Uit%}m(k0n~tX&(TFrTBe zyv)|UJ7{eO8W)_<9w=|TmJQ8OS#b_i9jbMPqf4>MT9&**u^Jtn>eD#To=pMPO4uEJ z2BacdOQlQ!UIhv5JPh6IrvL~(hB7orbCZJMpxaf7vgUdf<Y}HViE<V;3jH7mdGc<$ z`4*v=fplnmQ-GZJWl3<}r)l9F1KH5Cqm&(Eo5C~Q3smoMEhFeXqRT<=dQDzUto0q# zZQ=EB(7Q>`Qj4B)FNbLTGg##Du=Zildq5;The^#M3B%gjp!YM8^xv5D50Qjn?K#mq zw!d(QmPwj$BZ`)XtGrY63jqpk9L%Xze$0!~;OZ1f$WqYP0BC4KfXsMysF6o3F$d<g zDz(E@)Hsh|g~PRbQAOK32{QrgcC<naud`0QSj(O|TT7ohSqFY`G-gvH51{T=I7Hv3 zdJkw92Vn#z20_}&-xe%-f_f)E{%Ug5+xXK|tIAGc%g3?h;VM9IgX-<B2*OBc<AQ8! zyaF79g+K2tyoKLRg<(*%GBy7bwdh$Ii-p&rwt;*VbG7lyAy@2Ts!Pq^kGZI#NtCO% zF1fcZn^HT}?WvFc8gj8sF&hxi1wqh@&|ZV11Awkyh(m+`XD8+jV}@fRgA&uV5GuM! z!Wsu9rfDJ74Va-%<adri9J>dk!nG(=^vM&T!dHw&St&LckYpFX95SvRkF4GSvI(d! zivcwYP?RIB<<2`A`}8smm09B(P-{SrJ}$(5l^sTLuu4#OwR?AfHI$CpS2|%ggn=iN zj@p5mD$v@XyRdY^c8YCQF&2b!TpE)C6bl1ZI;viUSYXDx6r;n6>iyo6LOGv<`qVrC zt?aHJFqkC%;?2GvfYNi-hK8KE-3_LxryOlm8(MRsf9uEVo0L3YU_0cR$56ev{Bo3F zih&3$uO|s?h{|eLQD_Fx-fVj&^51rC7^^}Pca42XIyB<o=^o4iaN5fqkfW&Bp^YL! zQcKygZ^CTp{J{BCy#tfFsD>2XX;7Y&rs6zU7DwfWQjW@xT9SDv!Rj-nEgFHNT)syK z@a(sPfGMxE%`!S1v71q2aCvs{bIE`KYNN3#3-Vf)4MWE5A^{Er!Yi+kBtP37gYs2q z{qoBzN6!MX=%`xaE|jz^ELvbZhv1x22ml|+PcRdLHWB?oXy(9>0dA#?O5j!>S_#>e z4<AXgb?hd!rd9h8=bR?K04;8WBB<m*k!HWU5TJe(p6YZg_!m$kjQQ?D3){Uo1FZ}N zO&}nWE>{3T@S|6dcyDZ&^B?64lmT=Q(Sksi*CtpZGMce<mg#jv(}7J)S+C!MEb2N? zJg-%|8&Fl!KfN|GG<|OMXQn*2`go7Ls9j|i;0ozL<n)asVF2q1tV!_Rg}{M2&7gHh zz_UJ3)2KB7pq~0h70}n%Z8nB>Xy=8xv<Yg%fgA{rg7ENoScY(>2--qjdMy@9%(aW{ z;nx?@l)0`XLG_=fU}Op|fdy(xaS2g1JCgE)$olIoXoxx5Dg?3-AUQs?h0KMf^H4m} z#x|SV`{Nb1wGt)(Qk>f$8^o_hbct5D@I{2@j>Rwtp_LaA0k}mhp5tVuwPMXFST88C z-u)E^ag`QeD|ZRLCbFZFLIt3f;UGc6%F0CCNHN<JC8NnD+mgzv#<aR~P>I>2<v~v$ zg)q<Xk|n@_fd335E}uer?JqXtBYOrs_%i4iG<6%i?}zc^bw!vqW-Miy=7L9T(3v`5 zOq+nsffN(T9*K4Tc?vZqBaXK!k+KxinF8_HrvZH>+K8r`yks`+D`6dMub&;G@#Mo` zJeM2O{*rBxEOO{1L^a#%@C8Et+KG=sux6iJvyDh;cGVbwz;iK%J5h`%0C?rlUq#~W zm^h3Qd&qDdWL*dYupN%?g{twbgUr3E_jE-T-#;0$7NzMav9B;<w#sC_Yck38yb+(_ zH1mC^Hxuh!ClcWGJ5byC8<UYU9o6kYFV~=<quAp~s(2RkHW&vaRs*w<wTWiqAYc}M z=M)-XoarL!I7Yn!QOnULoFNA06fh)s)z59VFUu0+p#Y(9@Gl@i0Y07u1>k8qCp4q< z1*5+J`2n&jUoWcy<RM}d{po3xzab1$W{J**H>6Ph$aG8edP-^|D?3E7_0ee<Bi008 zeNo)dzMCJIhQZDJ`S^3tQ1PsbzyBis+%ZKwy9(p)h1AVQ0R{O_E+WPF>tnsz9m#vb zw5e8q^IU=;n$Fvs05w*X-X=+Ni|k+R1itkXwcI}9LmaxxKZJMH+EiVL+p1coXJ1%| zBC+dMXQp5YH7_}~&{&1kaL}TpIJakC(bH&hm4DZmh|B3shBhjojrVX=V6<N^CWFAZ zqG?&c_;fp8eHoCT(Ku7TyfjXX_`gp;4`*GR$oW|Y<$Mxz;zlRGqc<nRoaX=mU(TPC zG5^CEt4Co%DkPZBSsQ7T9tItqS1A;(fy($2Upz0N$ll{n$^FyfQRx`f3{e1W+X-Cl zS{iHN|He!$Qzgk4TH>BBuLL<+S&dtuez{~*kkz9oxRu{`5X$u+uGZ|+u~-ve7vBRv zv5~CDc!!1r*gK@Gg2*<$715P7$Ly<2G8qXGFTifk3$RL8fPH>fLT~5qO&3Z)bTA<r z*|}!HLY$YUh8MWd=GBirl(L5%rEFY){k*U=|LZQrHn$YTsRKb4m1{ndXb&c=wgkhz z?L|M5AI~Sl=$%=txF_iCkRN*q=d1W6hK)Z#*m%Sy$sv?14X;HT0VIwryliK{+H7tI z@==S3v8+<5UMiJWKG>m80-D#IhcxdTK-xnP;;&pzG;h!vVQJrDI(I=dn_*MpIsjC* zjlVw~6R-BM8*QcKrL==F3En3Kth>mrzJ+Lk>12&CQ6EBP6GY+09Pf`Re;WM}%(|yO zHaEZ?c6km4^39^j3ui*Na@dUTg5FOnek8hAd4=jdR*|K8dn(hEt`eI|zu53fS~~Q~ z+oMg04M*$OV(8hMmOwbw593g3ZC1?f=0<91a>aiWz_?-JgSjdQum|8-slt3ElZ*uY zUgFLn`y)z+oXcp>=HsU0SjeG2AiC9mgI3%60@b@)w*mY^`0FBO4#q5^#!UOq(kxPU zaURNHdU-H1aR-`i%6kIF)RU5)zZ#tY__c#!@WQr}Xi)*iR_r3#Gi)VWY`EABqGD`B zfMuO*E_P#q=3)mvKp2HwnbkA$QgY)PPO+2(FJia_gj)@?Qw0pRfJmCW<|la|;O(s( z4XP?{03udho@X91O{3fmh&loO%5$UvvO(AMJQ%6nAQ>9J$bnU@m{ROqW4gm!oUO8y zT8C<;$SWFR4tZTG|LQ`rlj^o~Yb?dI#%rqCu`D=nF9&N5uwwz%$@co{qNp6P4}Eo8 z%+0(8Fv7UX)ND2T9{oDrpZUmAG!P&A$pr)IQ@VTzs;E?DQ7tQAEGCdGxv?t&3Qt|B zBwB)I&OtfZ+z2h{!}&BAQKRqzJy#^Zc@;Nd$pQdd&H@1KT_>yQ)!%Fvn>bxZrNkyq zON!X{+JjQ>JQRIk1uhP-?WHV=dwYJ?0gst})(H>V^25D9e$P?UEb;6Jc=zfG|2rU` zXWu~4n#{s{<seBad{(IPvI=TrEiQH;yQ59}6o|8mvCZr%&hrH$+0Sk>O}S=`BzV){ zY!a0g0l12{S(}7L=?TH|ddOJ04GlCcpmmK!D|hJw^|MN?q1LKm5W+KpY&~QtgDf!K zg^%jzW9f6S^awJHuSaWmLyuip#Gh)wQeD#vt2Bl08g%x)#In!c7lk!PFG)ka6$a(F zw$fL3v4VSJGu=M?@hc4U$EV0NqD(m;hYqBQT}8B+C~MJ>t(wh>_lO!6<XnEDB^5Vy zI;PHAG+33_ZJaKzd&1EPBVl|h$E*t5q?WH&%UjjR&=yE~DkJARNooL6K&`(xZiBXF zvrUS3ha7qsz%imAxYau1fr}G?SR!d}BJf-y@CRttIA)P+rb5664I4f8$WJbV#Vd!Z zQgH1katO6Dqo-I7ZO0MlDUm~yDdrkEG?4-~Y7ZJcv*geh^mdyz+~~Pm4ms(qTn-^0 zh^jUu$t6<2*ysp&*J~H6Y!(FeYUe8QnlCct_oT|f&w##FhJ+)3eS1%IFqFX2EQ>m5 z<7!OlVW{V@6^5{TLjiOS){(sCo6G>aLn`rhE39cX>TI&V0o#B)IS%Xw8rPwnMAfS7 zACq;MFfMvT`axZNCAAAn<dvm8xGh*8mxTPKtdal0NAs>gAI3nXvxv|QQR+&1;LVS3 zwV`;4XXzO&1(0!@9MgPN8(oUg<|~28kEbi_s2sTnH>lR7V)h4U-0zj2a9S~N-?D8+ z&;4@fFb)3C<j}t<@Q@t(BLx;{_ZmHwa_D=Y4@QqJhuSE5v0SqgDq3|Of_J0YGS^>} ztEGdom;#XN->UhW)%IhtaWFDCB1gWZ5s77(E&jq>4QOZsW;>j}83=_x$_P3XoN$!n zRj8FBy--M)DhYk@@EqF>O@4Q<K#AONq}J~)joqk_WQ1vcER-Ib7GO(h`uT;^5<@75 z7N5j*yTPT|=Z3G0rG&3cjA?W}&NK{_kdc6!s)#9aMH)V`Dl<ys*c6*gvxapHg<qeR zRw}<&(i0mF^9PR{ic2jmhp?@LmGsbicByy$Qb(YBH^Sx+6=zVz71k0~57V>Mp{%31 z%~Xspx=XxAOXTa1`hk(n!R;TIyZ3Mzckdq6I$;wGlB%$+in&$sZhF)Xb!#pl4Xi!@ zYqt9^$aazG1x8QNGOJ>3uC=P>=Gb=h_Q5KY_W*0n{6^Jm#P-u+T>Y|vRux3C^eS(G z9Ll79>CGl2HCYRysGI47d{w9J)0H@oMR5R?>eJ{-wCsE(vhEJD%xvQi;~pqbf3nn~ zED9O~>yD)=>;5i@MG3mp^5YVXCJ=#BYIzstM{32(#tGbC>_;CYkk^Doun8?=xQqQV zQSbNt!1P?^c7>hv)K`CvwiIoQ-`fcS1j{aks=0&e0g*^Wb>CA@(2w-?=))k#1kCZ3 zD>+A%_afavlY`b=U=P<%A*8|K@fXc>&ys6q;27a#UV;PXs7yl)ya?v2YlB70!Iyl} z89;baW4REUqEQxCjKee{_ne7*bY8yZ_UCs)dKR!-=&CQsHUi6a@ejI9lOk{cf*8At z5A7j*b!fxk*VeB<0slJ`fU5nT`XV4Vn(pmc_H&iR{6I*^zo0%vcn6?>uB^h<Zf;YJ zjVXNk)WnL=FJ;1l3RGP?H^}_%d2tY)pyK?u-NcL)?{WPl0zWo^9>9~(+a@-m7ouG_ zZ1;%lP>&C4UosM*)`s@$=D{w?f;<jU1gY~7+GEckpc0%+WrA6u)B&q;HZa|N%`h0m z&yWKGr>k)vGfjWtQ@w2S3Bfl1Mr@NcVMI%OYyQvyv<p7#c3EkQetUe2K4I4d1PN$U z;CG&u55M!ZZ1`QI|DNb{?8&OD=Ia^AMd39oRt1D2C%On05(He)pFyB5jcC=>EA*jN zk6JF%2dPGL3PnY)hvcaqiodis{yRB(CC1+aoD-iwa?isj5ZbZ$1j;%bpNr*?j8EWq zY4Ai2HJi}ZC$HE-{EGKnfqswPCT$#Tfzv)Eh?0Ej_ofL01yK8@9FjvRWS>sXFzS1n ziRd#x%b~Xy=p#y)PRkMqk{tO1M3=Dc=#%g)j%2MshV74N>h|bTN;wkM69va8aq0+@ zjv}2Lx$QI!j;(ulOa^S28Of@`@)5tf9Wz9yh@vh{f!_(*CGeZCjfdZhv?1_YAlKxH z8XQqMUR5+z1T4{0XaRw-O^Y5qMNuiy1E<8`EWn>x_%joK)Drd?^g%FoQf+^1Pu>7P z>Dd)G*UkgJ?<;(pkSV&Ti)<skI_m-uv=`?E!*g7{0`KxTp9anD72uM~*UUoYI`Wei z+zHul$Gw-`B_1>2ZPpzqjy{q?`uy)47GT0{;cN}f<aQ|&4NAK!i%V)BaRiJ^Q)wzr z&nO8$k_8ck@KTfkKT|NK3}S)-qj469+1Do*u4rW0=RyQ<-6igy$e{pDHLPW5TMl{2 z$#b4fEiVXIzh5f>qb$mkgLy=)yqo1ngfzp;Pl9$veL(of3izP{?S4?tPBZ&PNLH*H z!uEF{5Qs3*_MS@R2Y@S8<%LyehCIM*r~AO($m|cHN@zBF8<&ItQO3-H*H{_=gYgP8 z74QCK%T(h>ruG2*p4RRK<yW$3cjChVi-`>~ox!(-2p<TRe~mt7AbbN49b5Xq7a+E~ zfe56c;}M8Vk^-`VBLGvDvj&YXeD4LKWSRoJE-OZ}v=hl>a{v|RCWrULlE+FI)C#0y zzxu$wS*mr+&Qx@m@S3O*dQWSqRWlq_u}7PV9n}gfEE8F@(eV8$z#p^3`?c(EF`du< zOBgQE`{i03(h@RB|Mp*^`7711M_y5H^rYxmn=h7b^jLKp1RZK*MjY13aaiqUaaJq` zw-qL1UbWeZZXb%dK}D;AX_cS20ZrN2!&1>r(e*D>!D3d(kEWXC!c+sQXXT^-d!(S0 zl^6D!0DAXoYg+Y*{DPFT?rU6S5&Iferi>O_x1bMZ+j}JPrK$d=18@gQE}+$+0rOb( z6c)?ckNgd-l^~1cSOjmvXRq^SndxkPOXx0+6v3W-z*V4ie(F&nO?VNeLLy|uC+Coq zfT3AIbh?Yn2~;g>#CMmcm9K`<F&DBNZWq#tsK4+1Wm+=g9i`{tHVOA-G!o*&Vn@<+ z=DvlNQnuT4ns185ubR$p-XyzUR?R-$5m8fk&t;f(E5xqBT4<_Qy-8dLN9Ojk=<lFq zM?pAQ*M&0ro&f7n*%9u`6Wtyegbstkyjdvd=vRk(gXZ?wMA~8I#%0*y*#q;SYB}%p z4_$hV4FzOJ0Is_83q+9sYxhTd4sV8*Z`KE_+l`)!Dvm^ygGNv8qSRHOoJx(=4Sw9( zM-(uQ4N~N*>l@Xl73OcSH41y*A_1(Pu14%%e+eUQQ;qr@as#0BTawZ@C(?&fdhb4r zCn?WMy?MfUd}JOHDd&@4#<y{Tk+K{RIJ}7b;gnuKr!&|^(9!s?vBgAl=RKZY_nk>a z_S?Rfq=hatrMJ9+r2DTNgaf~K%=GVZ4o=9|obsO1Tav6FfKh#$9ewspXly|q@CTPL znqh-SU^am<ndF#;bHVRV?QQykBKv+&sTYpNrc3)Z-TWOjt;pA$RJ<qk`sBu!;OzB5 zfYz<E!_Y-rO$39Ave_2y>g)T(YK^G@6t@Z}w!*r59ijM3914Y?I0{gFr+B~9*ZmJr zoZVO1(?y7UK!NcOvQG&!cOrke?}xy&9Zdi;r5`YFA58%Bz2f~|Uz_Zi-Y5{e*R2?L z)2_Txcu6<FYU(l3)xdOCy-sU%IKL4$U~mD?eVweDCqN+#TYGJOefw85j0K*q$aNO} zQ;-anNA9%Za`KM3Y=}i#dVjF|b6~>`t3|rjnA#y}W!JK-jxHt7&~o@&9^o&UYBoVt zZsWwzC6_?veISBiF5!*#=YP`XRg;MPlq)9sn2uQi?=uYd=aSio&BdN1Zx;S_3i&UJ zWvoH}(Jx_kV}D-+7gO?Z;`g|%Q&aS-x|KW!nzOH9Mfnfs)R@aI;-k?4nBAD;XU)+0 z&p^om=|pD5d7=7;WuxO%xHvDCX3WTQ8CxOWj2xrfLCtFDQ=i#?Z?ex<5Ew=p$5U9b z3;9oJzfrRzgE&WCQ=T`d(n)(qAgV)?fA>lfu*iBc)+Y9Ww7AVV7{14y*XQ@+XNOBX zUx+Ed{xA2KbY{cYW_qW+o@<fh$m1xwlz$6@yUao}!6ogd*Rr9!YdXxt9JY<u?J~{f zkbb9y#+lO;U9K3XE&5Pigwz9=>O|n5erVhs8&y)%r4NHlDKL*CMY1CMyKy^FWzIaR zW#|E@c=awkkAMJ?0wAUdjaOJV6!}h!n>aoZWcL88>h&dQ6fR0B<QvyFhd2m%V*Lgq z6aUdc=b6j^`^b32VbLe5<xM0Dm`y5((?B3!?L;P&1#B;q4;oKf6&FGDzdl3O-IxOc zfp_<k#`snR*>Q0m0Ulp`<*Mb)s<l2~xHq7bu<y+DQ;m!n*MSXPbQ@O8PN?ikwWdoO zWjyMzXfV03Vz<AFDO>px^iVO*Lx=4g)q85m2k{;5Eb2k3>3r!`0UI6=`25VqWwJcl zU*8WIt*t79?wJ$wUX`SQ<3t2TE#I?FIGat&Btyk;o;O00BG--Kd{|=BZCD3l{R!0y z^2bFt?MKtYl2foSY^*8v$Z9+b$s5THp6HRxC&NoK9TS96xs41$d@lSf7v=PeX&Ml# zpLPklg5fIM+B@3QTeK^d69~^fCB@P)^(Q9?53?8UN9jO)C9#|bPRbpPNqhd~d(_CZ z7w{a3b)RZX-7o3694&9qB#0Why!{h|I%|L5!i2H<;^p{Q(IOJ=NjL|WqTku{4z>HR z>TRxcbCo>r2TFKZv|rgxyHa<k@*Bql`qY@J?C-%fYj!L`Gs|C&!zh<IfTEku3tkaS z`yyl7?~kJ@J_22?-x*6|vsta#r@hr|#foFE;!CP{Ns#V>KEHth@(?mnfLsopAP{!Q zp(A1&knKU|mT^j*6av`@?OKxR-6cQ%4yk0fT52s#)+u;okF}RV&lRPrNCMFj7sP4V z_&wyROHs}BXd7#+nj-0623RZKT_{Oag%@i>stRXogGA=a2gOl9bi$c~gE%5KIG%E2 zorTJ)W&_l&M={Gh%yLPc1)$2GI$0YZ&pN5eIvG9r5=HX{7L8nEQN2wIbDBzE@c$cB zhqdU07Rzn2A_h+2f5s@<EEq6fAQ-&~T6}^J{y@O%&mVlaFVs#ttHO>ctdsZb5#Cah z{PK!@N@$67j6N2Ywv#-lR91`hY`VPCcI$*Dq}WK<2_JgBr9k+On_CcqGHiSnIwIhl zvh}Q8S#6`KZUKOaPPVlrBFT{?dYhnusCQ7`_^nsQ9YRrfcYr!kOOu)%IfM)6rT;=X zcg*5%h1xKSoaSeW^I5a_u1YC>fXrCpE|W9`4;sR>Vg-JoV-$!}invD$RHpEdC;;L@ z&|QZ1uUV*C%mJOD2I`89Pi)12;%@s^s0{RK)Wfjae|?Ddybe$;_S+8%9b&o2Kl>2+ zv|I|2>8MQDFNBaF#rF2yqS<*6-VzTlFr9C`h=&ZGg?xgWygo^sclynX!k_0A9D$|q zVoY0j5Q$xe$oKdpOqdM`Ytj=M$JH;A#(}_|MJ|SgG8z`xIt!^j=*H>U!S8EFo6tTr zvNT7D%t%$_m5u)J9X9xLz+cwfqptx)`Y|3m%0E?S8!OP*IAqa}sFBDRsA&!MvCdXh zYXR(5jRTl+_C3Tt|Bos=jm*kjz1xQiDCRH=*l>nHH{AS!B(25jaT|J?g*F!<WkGF< zSr4n(+gR~^o!@<P6O5$`k9XZ1J6~RLiv>`--tS$%Xqb|}J;3U(jRb8A(EsHv7k_v= z9X?8_OAFQO@3X73NV!A<*#blrcC`)EDS;{gk2QW&70pI?JoZmlk)G?5ARoIqiyVJ2 zALK!2AmQ#z2OL==ELGIS?wNY#A}IrlD0BcNUTX4G;c0;osKDAlrS7s?w5+Q1oVw6Z zY!CMxtSQ>ys&p5|K+)Q29I04ZQ?)=km<)4$z-UatQz!a+v8#|9TsH;=;;%}?=Q4Um zEOJ17k?F2jmV$4Cpe|q+1L`r?LrvcIE9lfM&5);!|7NF2<^`O?{+=N5GoR>B^f8^_ z?Mb+UUJZOu8=@Mka8pXcV=zynlWFW{t5MnH-95xE|0*0$acI0_GJz3le&isdI}NL; z4}%5Vj7I?(o%(Ch?EK_Wq-XX|@jzerm#f5Td;epx!U{SK$wJ5|+Cba3N?Q927k_*g zmLxh_C@@s`oQgB5=vmtKfoU2OcOF9h_rz&^Vza&JkXX^C)AxLWCf=A#6JsUDiBtOE zX8W_fIR`<`*ayamllo91vd#9YcpCHBVr$RfhMMp~P2O`y$e?H858|tZe9n&W0D6<` zV?EwRJsZU_JBVY^JUZNc(Z?U5H>JvA0k%;==Xj~8P!64k0;{zxVEqQ&IgDfWifFaT zPvKT3p0utuqZB4@sg<Cu-t{+785-r#*OIW$koJ6OJhF)*uN#dfAEYXL#1_!5mf6C0 zX8DVNxXX`6;-vW8!rAU~wTlX8S+q&=ib8pXYVjUh<jmg&bzV6J0IJHc1*{(g^4s+9 z0kD+9JpFw&a`ic@Pb2ejI0DuUl*X>JRYzZdWuZ+nqBd=`5zW?e6mJ`dc8#%-t86yh zEnS6syRocQHU}Q*T9pfL;j6R!;kk~OHGHQ-jV#LnGPfExNPxaYJ8)>m9Qp=&T(c6l zIa|!=hXZ?dRU3Mv&3_O^cFZGq7T9`FS%X}yG~z#)gWdy$dD<m~w_3Cd<rTT|3dQ2x zz6du<E*+!PSrzLCio=4jrPem@_J!ZzPHEu?eH$L*D7Ai6n*V{m76z{RTkIP`s=1AC zZCal3ZMK$$hJlf5Mc>wnzO5B~TT6YrGfR!!oD+yFIcTF!$t%;4$jwDF$@&x=w}T|B zA4ee%(X|j4@s@V6K~hERZG*4Z<Nb^_a1_u$gaEak+tSFo$#cj%{V%xaK>Aw;Z+_O{ zEw;&_Ct<`^yKp;c_8}6pL4-rg^b+DczZc82MOj5zz67N-?8USGtc^R+tj{=Pu5nZ5 zUt#7>!(!?q<1e5ot>20JNNw66e)3z>MEmi?H+JHh|BJ|NwRAmB4(4)AI@Ho-Z`lh= zPOd?PL6Cyl@6fBQ*cP^D#L$h*5w_bYkQKH|7}$m8wqV45%Rd1jj@y@xP|G*TEB!Na z<|^TkS_|CBT#s2|pNXv1#}Q4I4u@=Y{t=_6*M=;v3wkqsifUuEiOYWJNVR-hU1$XI zPRv!154lLKjC}$teE1&hfMn{qAaiHz5&g9Dq0mn?Jm%PL(LK?L#v{=Ad~`rM7e?Tp zA7JK>G(4QhzkqS)w|s-T35t<1y9b8#TLrz-dMyf|f|Q}2I*atwJIH2dOv^@*TOYdm z6gqJphTmp;_hCV>NQ0j=&<3Hh>Pa+Jd(ckzFvu;HsK9s|v<FpYklh#J?=}i0eYVP& ziy~UJVMY;ZH(o*zhBffwA7M2tuYZmaNjdhA<0->Rxg{z7`-2!Z3gV4jgN;px#6pay zjv^7^?UaY95cMA6eEv56u82d|4SaoFyka%{c@dsPc5Ax}B_QB9BaPK~qYT1zx0hhS z3|z;|kw<2civ?uA8)dwrYdW>TDwDA<8Q2#)FU5Suqdmw8+4YX36c42|yGXWr7q9c^ z(-o0BMF$^5xfxahaJ1^gsM-XFt9A`|&l~Vw(C<B>%o5wfYQ#zMS5a9fvY;GLxiCwL zMKu-!jKEUL97%C>2+g8{j$Vzu?lh`!EG%S4L#>S*l8jcf({D-d2c+NP=m(^D&l~Vw z(C<AN$iY7Z(r?N50gx0o5J<nJb`GIuL$VEPFP2bn{HF$4ZqU0!yBLqwu}%DszyV4j zaclryCeoJg6g*QCu|NAE?qY3+)p(pJUt^L@EAB%brIvOlWS$>G2`#Tz<{89WDg9}D zjpeT<)%*0fDELHJJrPCcAE2xJW;)ZdTV(k7P?FTLeXEdKdhM6y#Es8LQX7b<=ESwn z&{+lut$rqcPLE~J-G%0RQ_D7;m~Ldxgb0(|bj^ce&vW4MhKT)!zaurReh%7iRz@Sj zH&<hqFw|6yn<T|e)!q1j%$IGa%&U5dYd&>}8G;x~acbp+euy4rQhIo8y)ZQ3wx0d3 zA7Ukj7zG*(o`aspqQstqVoReSS(gwno6aWy?^yOSsDSmD&Zeh(4b5sqwX8vZ0Iu+a zwMX-?>>IHyw%v3-PkA>(>@bk`zQc_*=YL_GF~ebot+6!zY?K5nka-@byvh3k@j3sw z*=tF1MARI9(UznsqIE%@%e{gz9Uuwdt{Y&|)F@`2p^CT3;%%0AbBVWk;%%^aTOi(S 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�|&dmFJ$ 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 bg~DC6Ns9zHS|E@S@Mj+gMG!rKm<05H)4!v< literal 0 HcmV?d00001 diff --git a/venv/Lib/site-packages/setuptools.pth b/venv/Lib/site-packages/setuptools.pth new file mode 100644 index 00000000..392ff900 --- /dev/null +++ b/venv/Lib/site-packages/setuptools.pth @@ -0,0 +1 @@ +./setuptools-39.1.0-py3.8.egg diff --git a/venv/Scripts/Activate.ps1 b/venv/Scripts/Activate.ps1 new file mode 100644 index 00000000..b8245b1b --- /dev/null +++ b/venv/Scripts/Activate.ps1 @@ -0,0 +1,241 @@ +<# +.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: +ttps:/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 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 virutal 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 + } +} + +# 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/Scripts/activate b/venv/Scripts/activate new file mode 100644 index 00000000..f32a6115 --- /dev/null +++ b/venv/Scripts/activate @@ -0,0 +1,76 @@ +# 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 + fi + + if [ -n "${_OLD_VIRTUAL_PS1:-}" ] ; then + PS1="${_OLD_VIRTUAL_PS1:-}" + export PS1 + unset _OLD_VIRTUAL_PS1 + fi + + unset VIRTUAL_ENV + if [ ! "${1:-}" = "nondestructive" ] ; then + # Self destruct! + unset -f deactivate + fi +} + +# unset irrelevant variables +deactivate nondestructive + +VIRTUAL_ENV="E:\algorithm018\venv" +export VIRTUAL_ENV + +_OLD_VIRTUAL_PATH="$PATH" +PATH="$VIRTUAL_ENV/Scripts:$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:-}" + if [ "x(venv) " != x ] ; then + PS1="(venv) ${PS1:-}" + else + if [ "`basename \"$VIRTUAL_ENV\"`" = "__" ] ; then + # special case for Aspen magic directories + # see http://www.zetadev.com/software/aspen/ + PS1="[`basename \`dirname \"$VIRTUAL_ENV\"\``] $PS1" + else + PS1="(`basename \"$VIRTUAL_ENV\"`)$PS1" + fi + fi + export PS1 +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 +fi diff --git a/venv/Scripts/activate.bat b/venv/Scripts/activate.bat new file mode 100644 index 00000000..e79ee1e1 --- /dev/null +++ b/venv/Scripts/activate.bat @@ -0,0 +1,33 @@ +@echo off + +rem This file is UTF-8 encoded, so we need to update the current code page while executing it +for /f "tokens=2 delims=:." %%a in ('"%SystemRoot%\System32\chcp.com"') do ( + set _OLD_CODEPAGE=%%a +) +if defined _OLD_CODEPAGE ( + "%SystemRoot%\System32\chcp.com" 65001 > nul +) + +set VIRTUAL_ENV=E:\algorithm018\venv + +if not defined PROMPT set PROMPT=$P$G + +if defined _OLD_VIRTUAL_PROMPT set PROMPT=%_OLD_VIRTUAL_PROMPT% +if defined _OLD_VIRTUAL_PYTHONHOME set PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME% + +set _OLD_VIRTUAL_PROMPT=%PROMPT% +set PROMPT=(venv) %PROMPT% + +if defined PYTHONHOME set _OLD_VIRTUAL_PYTHONHOME=%PYTHONHOME% +set PYTHONHOME= + +if defined _OLD_VIRTUAL_PATH set PATH=%_OLD_VIRTUAL_PATH% +if not defined _OLD_VIRTUAL_PATH set _OLD_VIRTUAL_PATH=%PATH% + +set PATH=%VIRTUAL_ENV%\Scripts;%PATH% + +:END +if defined _OLD_CODEPAGE ( + "%SystemRoot%\System32\chcp.com" %_OLD_CODEPAGE% > nul + set _OLD_CODEPAGE= +) diff --git a/venv/Scripts/deactivate.bat b/venv/Scripts/deactivate.bat new file mode 100644 index 00000000..1205c618 --- /dev/null +++ b/venv/Scripts/deactivate.bat @@ -0,0 +1,21 @@ +@echo off + +if defined _OLD_VIRTUAL_PROMPT ( + set "PROMPT=%_OLD_VIRTUAL_PROMPT%" +) +set _OLD_VIRTUAL_PROMPT= + +if defined _OLD_VIRTUAL_PYTHONHOME ( + set "PYTHONHOME=%_OLD_VIRTUAL_PYTHONHOME%" + set _OLD_VIRTUAL_PYTHONHOME= +) + +if defined _OLD_VIRTUAL_PATH ( + set "PATH=%_OLD_VIRTUAL_PATH%" +) + +set _OLD_VIRTUAL_PATH= + +set VIRTUAL_ENV= + +:END diff --git a/venv/Scripts/easy_install-3.8-script.py b/venv/Scripts/easy_install-3.8-script.py new file mode 100644 index 00000000..dfd63adf --- /dev/null +++ b/venv/Scripts/easy_install-3.8-script.py @@ -0,0 +1,12 @@ +#!E:\algorithm018\venv\Scripts\python.exe +# EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==39.1.0','console_scripts','easy_install-3.8' +__requires__ = 'setuptools==39.1.0' +import re +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) + sys.exit( + load_entry_point('setuptools==39.1.0', 'console_scripts', 'easy_install-3.8')() + ) diff --git a/venv/Scripts/easy_install-3.8.exe b/venv/Scripts/easy_install-3.8.exe new file mode 100644 index 0000000000000000000000000000000000000000..675e6bf3743f3d3011c238657e7128ee9960ef7f GIT binary patch literal 74752 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 &sjKl@1{;unAiW2w^OujNoW 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 literal 0 HcmV?d00001 diff --git a/venv/Scripts/easy_install-script.py b/venv/Scripts/easy_install-script.py new file mode 100644 index 00000000..2d1f5b8c --- /dev/null +++ b/venv/Scripts/easy_install-script.py @@ -0,0 +1,12 @@ +#!E:\algorithm018\venv\Scripts\python.exe +# EASY-INSTALL-ENTRY-SCRIPT: 'setuptools==39.1.0','console_scripts','easy_install' +__requires__ = 'setuptools==39.1.0' +import re +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) + sys.exit( + load_entry_point('setuptools==39.1.0', 'console_scripts', 'easy_install')() + ) diff --git a/venv/Scripts/easy_install.exe b/venv/Scripts/easy_install.exe new file mode 100644 index 0000000000000000000000000000000000000000..675e6bf3743f3d3011c238657e7128ee9960ef7f GIT binary patch literal 74752 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 &sjKl@1{;unAiW2w^OujNoW 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 literal 0 HcmV?d00001 diff --git a/venv/Scripts/pip-script.py b/venv/Scripts/pip-script.py new file mode 100644 index 00000000..c42962ba --- /dev/null +++ b/venv/Scripts/pip-script.py @@ -0,0 +1,12 @@ +#!E:\algorithm018\venv\Scripts\python.exe +# EASY-INSTALL-ENTRY-SCRIPT: 'pip==10.0.1','console_scripts','pip' +__requires__ = 'pip==10.0.1' +import re +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) + sys.exit( + load_entry_point('pip==10.0.1', 'console_scripts', 'pip')() + ) diff --git a/venv/Scripts/pip.exe b/venv/Scripts/pip.exe new file mode 100644 index 0000000000000000000000000000000000000000..675e6bf3743f3d3011c238657e7128ee9960ef7f GIT binary patch literal 74752 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 &sjKl@1{;unAiW2w^OujNoW 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 literal 0 HcmV?d00001 diff --git a/venv/Scripts/pip3-script.py b/venv/Scripts/pip3-script.py new file mode 100644 index 00000000..fe41021d --- /dev/null +++ b/venv/Scripts/pip3-script.py @@ -0,0 +1,12 @@ +#!E:\algorithm018\venv\Scripts\python.exe +# EASY-INSTALL-ENTRY-SCRIPT: 'pip==10.0.1','console_scripts','pip3' +__requires__ = 'pip==10.0.1' +import re +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) + sys.exit( + load_entry_point('pip==10.0.1', 'console_scripts', 'pip3')() + ) diff --git a/venv/Scripts/pip3.8-script.py b/venv/Scripts/pip3.8-script.py new file mode 100644 index 00000000..3a1f0348 --- /dev/null +++ b/venv/Scripts/pip3.8-script.py @@ -0,0 +1,12 @@ +#!E:\algorithm018\venv\Scripts\python.exe +# EASY-INSTALL-ENTRY-SCRIPT: 'pip==10.0.1','console_scripts','pip3.8' +__requires__ = 'pip==10.0.1' +import re +import sys +from pkg_resources import load_entry_point + +if __name__ == '__main__': + sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) + sys.exit( + load_entry_point('pip==10.0.1', 'console_scripts', 'pip3.8')() + ) diff --git a/venv/Scripts/pip3.8.exe b/venv/Scripts/pip3.8.exe new file mode 100644 index 0000000000000000000000000000000000000000..675e6bf3743f3d3011c238657e7128ee9960ef7f GIT binary patch literal 74752 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 &sjKl@1{;unAiW2w^OujNoW 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 literal 0 HcmV?d00001 diff --git a/venv/Scripts/pip3.exe b/venv/Scripts/pip3.exe new file mode 100644 index 0000000000000000000000000000000000000000..675e6bf3743f3d3011c238657e7128ee9960ef7f GIT binary patch literal 74752 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 &sjKl@1{;unAiW2w^OujNoW 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 literal 0 HcmV?d00001 diff --git a/venv/Scripts/python.exe b/venv/Scripts/python.exe new file mode 100644 index 0000000000000000000000000000000000000000..322e101332d1f7daab52cfac9a7bf7b4cbfdfbd4 GIT binary patch literal 518144 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%0D7t%c=7Jv0~h6pT}N~vaRZH~Il9owetDqS;48b_ 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%0D7dnt~Z@5O; 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±Pq?6IcCvRh`*YHBRz{|-NX?{4`^b!>W!X7a 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 ap!MK_o#OLkz(Q$yGr=}RqgDE@>Hh#gsx40d literal 0 HcmV?d00001 diff --git a/venv/Scripts/pythonw.exe b/venv/Scripts/pythonw.exe new file mode 100644 index 0000000000000000000000000000000000000000..709b500f02d02ca9256978074425c96dc7e07726 GIT binary patch literal 517120 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 (|P_Uv^fZZdno*EGIT)SpK< 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�xiSqkX%tLYjFst8lYkh3GG+b=Xb!E;<)hJ#)@w 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 literal 0 HcmV?d00001 diff --git a/venv/pyvenv.cfg b/venv/pyvenv.cfg new file mode 100644 index 00000000..d76136b8 --- /dev/null +++ b/venv/pyvenv.cfg @@ -0,0 +1,3 @@ +home = C:\Users\UPC\anaconda3 +include-system-site-packages = false +version = 3.8.3 diff --git a/week01/CMakeLists.txt b/week01/CMakeLists.txt new file mode 100644 index 00000000..469765d4 --- /dev/null +++ b/week01/CMakeLists.txt @@ -0,0 +1,5 @@ +cmake_minimum_required (VERSION 2.8.11) +project (week01) + +add_executable (move_zeros lc-283_move-zeros.cpp) +#target_link_libraries (move_zeros LINK_PUBLIC week01) \ No newline at end of file diff --git a/week01/NOTE.md b/week01/NOTE.md index 50de3041..ff673aa6 100644 --- a/week01/NOTE.md +++ b/week01/NOTE.md @@ -1 +1,61 @@ -学习笔记 \ No newline at end of file +学习笔记 +#2020.10.19 +##数组 + 时间复杂度 + prepend O(1) + append O(1) + lookup O(1) + insert O(n) + delete O(n) +##链表(单向链表,双向链表,环链表) + 时间复杂度 + prepend O(1) + append O(1) + lookup O(n) + insert O(1) + delete O(1) + +##跳表 +**只能用于元素有序的情况** +对标平衡树和二分查找 +时间复杂度 O(logn) (specific h=log2(n)-1) +维护成本高,每一次增删都需要更新链表 +空间复杂度O(n) +升维思想+空间换时间 +##工程中的应用(拓展) +LRU Cache +Linked list +**HashMap+双向链表** +https://www.jianshu.com/p/b1ab4a170c3c +https://leetcode cn.com/problems/lru cache + +Redis +Skip List +https://redisbook.readthedocs.io/en/latest/internal +datastruct/skiplist.html +https://www.zhihu.com/question/20202931 + +面试时不太会考,以看资料理解为主 +比如 +1)LRU cache 用的啥,巴拉巴拉 +2)Redis 用的是啥 + +**-------------------------------------------** +#实战练习 +**五毒神掌** + +##Array +1.move zeros +要检查输入 +执行代码的时候尝试输入一下特殊的数字 + +#一些疑问 +1. 循环中使用++i和i++有没有区别 +关于i++和++i是先返回再计算还是先计算再返回部分已经理解; +++i可以作为左值也可以理解; +就是好奇,**++i*** 和 **i++**在 +for ( int i, i < n, i++) +for ( int i, i < n, ++i) +有没有区别? + +2. \ No newline at end of file diff --git a/week01/lc-283_move-zeros.cpp b/week01/lc-283_move-zeros.cpp new file mode 100644 index 00000000..bcf8006f --- /dev/null +++ b/week01/lc-283_move-zeros.cpp @@ -0,0 +1,44 @@ +//思路: +//1.loop, count zero +//2. new array, loop +//3.index +//4.swap +//注意审题,面试的时候要向面试官确认数据的一些格式和应用场景 +// Created by UPC on 2020/10/19. + +//c++ +class Solution { + public void moveZeros(vector<int>& nums){ + //做题的时候要检查数据 + if (nums == null || nums.legth <= 1){ + return; + } + int j = 0 ; + for (int i = 0; i < nums.length;++i) { + if(nums[i] != 0){ + nums[j] = nums[i]; + if(i != j){ + num[i] = 0; + } + j++; + } + } + std::cout<<nums<<std::endl; + } +}; + +//c++ +#include <iostream> +#include <vector> +int main( ){ + Solution test; + vector<int> nums(5) + nums.push_back(0); + nums.push_back(1); + nums.push_back(0); + nums.push_back(3); + nums.push_back(12); + std::cout<<nums<<std::endl; + test.moveZeros(nums); + return 0; +} diff --git a/week01/lc-283_movezeros.py b/week01/lc-283_movezeros.py new file mode 100644 index 00000000..f739b727 --- /dev/null +++ b/week01/lc-283_movezeros.py @@ -0,0 +1,6 @@ +class Solution: + def moveZeros(self, nums, List(int)) -> None: + for i in nums[i]: + if i==0: + nums.append(0) + nums.remove(0) diff --git a/week01/lc-waterContainer.cpp b/week01/lc-waterContainer.cpp new file mode 100644 index 00000000..20f4b0f9 --- /dev/null +++ b/week01/lc-waterContainer.cpp @@ -0,0 +1,4 @@ +// +// Created by UPC on 2020/10/19. +// + diff --git a/week01/lc-watercontainer.js b/week01/lc-watercontainer.js new file mode 100644 index 00000000..e69de29b From 68dd4f6306947fbcf31349a8b2d009c4a1ba5cb9 Mon Sep 17 00:00:00 2001 From: Ella2le <1071444737@qq.com> Date: Wed, 21 Oct 2020 07:57:22 +0800 Subject: [PATCH 02/21] add 3sum watercontainer plusone day1+2 --- .idea/vcs.xml | 6 ++++++ week01/3sum.cpp | 4 ++++ week01/plusone.cpp | 4 ++++ week01/reorder_list.cpp | 4 ++++ 4 files changed, 18 insertions(+) create mode 100644 .idea/vcs.xml create mode 100644 week01/3sum.cpp create mode 100644 week01/plusone.cpp create mode 100644 week01/reorder_list.cpp diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 00000000..94a25f7f --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$" vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/week01/3sum.cpp b/week01/3sum.cpp new file mode 100644 index 00000000..10870112 --- /dev/null +++ b/week01/3sum.cpp @@ -0,0 +1,4 @@ +// +// Created by lewang on 10/20/20. +// + diff --git a/week01/plusone.cpp b/week01/plusone.cpp new file mode 100644 index 00000000..10870112 --- /dev/null +++ b/week01/plusone.cpp @@ -0,0 +1,4 @@ +// +// Created by lewang on 10/20/20. +// + diff --git a/week01/reorder_list.cpp b/week01/reorder_list.cpp new file mode 100644 index 00000000..10870112 --- /dev/null +++ b/week01/reorder_list.cpp @@ -0,0 +1,4 @@ +// +// Created by lewang on 10/20/20. +// + From 25600e651ecd9ad84878449142da49ce6890706b Mon Sep 17 00:00:00 2001 From: Ella2le <1071444737@qq.com> Date: Wed, 21 Oct 2020 07:57:37 +0800 Subject: [PATCH 03/21] add 3sum watercontainer plusone day1+2 --- week01/3sum.cpp | 91 +++ week01/CMakeLists.txt | 7 +- week01/cmake-build-debug/CMakeCache.txt | 380 +++++++++++ .../CMakeFiles/3.13.2/CMakeCCompiler.cmake | 73 ++ .../CMakeFiles/3.13.2/CMakeCXXCompiler.cmake | 76 +++ .../3.13.2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 8464 bytes .../3.13.2/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 8472 bytes .../CMakeFiles/3.13.2/CMakeSystem.cmake | 15 + .../3.13.2/CompilerIdC/CMakeCCompilerId.c | 623 +++++++++++++++++ .../CMakeFiles/3.13.2/CompilerIdC/a.out | Bin 0 -> 8616 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 602 +++++++++++++++++ .../CMakeFiles/3.13.2/CompilerIdCXX/a.out | Bin 0 -> 8632 bytes .../CMakeDirectoryInformation.cmake | 16 + .../CMakeFiles/CMakeOutput.log | 625 ++++++++++++++++++ .../CMakeFiles/Makefile.cmake | 50 ++ week01/cmake-build-debug/CMakeFiles/Makefile2 | 113 ++++ .../CMakeFiles/TargetDirectories.txt | 3 + .../CMakeFiles/clion-environment.txt | 3 + .../CMakeFiles/clion-log.txt | 4 + .../CMakeFiles/cmake.check_cache | 1 + .../CMakeFiles/feature_tests.bin | Bin 0 -> 12520 bytes .../CMakeFiles/feature_tests.c | 34 + .../CMakeFiles/feature_tests.cxx | 405 ++++++++++++ .../CMakeFiles/plusone.dir/CXX.includecache | 14 + .../CMakeFiles/plusone.dir/DependInfo.cmake | 20 + .../CMakeFiles/plusone.dir/build.make | 98 +++ .../CMakeFiles/plusone.dir/cmake_clean.cmake | 10 + .../CMakeFiles/plusone.dir/depend.internal | 5 + .../CMakeFiles/plusone.dir/depend.make | 5 + .../CMakeFiles/plusone.dir/flags.make | 10 + .../CMakeFiles/plusone.dir/link.txt | 1 + .../CMakeFiles/plusone.dir/plusone.cpp.o | Bin 0 -> 99616 bytes .../CMakeFiles/plusone.dir/progress.make | 3 + .../CMakeFiles/progress.marks | 1 + week01/cmake-build-debug/Makefile | 178 +++++ week01/cmake-build-debug/cmake_install.cmake | 49 ++ week01/cmake-build-debug/plusone | Bin 0 -> 65112 bytes week01/cmake-build-debug/week01.cbp | 94 +++ week01/lc-waterContainer.cpp | 56 ++ week01/plusone.cpp | 85 +++ week01/reorder_list.cpp | 6 + 41 files changed, 3754 insertions(+), 2 deletions(-) create mode 100644 week01/cmake-build-debug/CMakeCache.txt create mode 100755 week01/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake create mode 100755 week01/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake create mode 100755 week01/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin create mode 100755 week01/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin create mode 100755 week01/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake create mode 100644 week01/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c create mode 100755 week01/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out create mode 100644 week01/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100755 week01/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out create mode 100644 week01/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 week01/cmake-build-debug/CMakeFiles/CMakeOutput.log create mode 100644 week01/cmake-build-debug/CMakeFiles/Makefile.cmake create mode 100644 week01/cmake-build-debug/CMakeFiles/Makefile2 create mode 100644 week01/cmake-build-debug/CMakeFiles/TargetDirectories.txt create mode 100644 week01/cmake-build-debug/CMakeFiles/clion-environment.txt create mode 100644 week01/cmake-build-debug/CMakeFiles/clion-log.txt create mode 100644 week01/cmake-build-debug/CMakeFiles/cmake.check_cache create mode 100755 week01/cmake-build-debug/CMakeFiles/feature_tests.bin create mode 100644 week01/cmake-build-debug/CMakeFiles/feature_tests.c create mode 100644 week01/cmake-build-debug/CMakeFiles/feature_tests.cxx create mode 100644 week01/cmake-build-debug/CMakeFiles/plusone.dir/CXX.includecache create mode 100644 week01/cmake-build-debug/CMakeFiles/plusone.dir/DependInfo.cmake create mode 100644 week01/cmake-build-debug/CMakeFiles/plusone.dir/build.make create mode 100644 week01/cmake-build-debug/CMakeFiles/plusone.dir/cmake_clean.cmake create mode 100644 week01/cmake-build-debug/CMakeFiles/plusone.dir/depend.internal create mode 100644 week01/cmake-build-debug/CMakeFiles/plusone.dir/depend.make create mode 100644 week01/cmake-build-debug/CMakeFiles/plusone.dir/flags.make create mode 100644 week01/cmake-build-debug/CMakeFiles/plusone.dir/link.txt create mode 100644 week01/cmake-build-debug/CMakeFiles/plusone.dir/plusone.cpp.o create mode 100644 week01/cmake-build-debug/CMakeFiles/plusone.dir/progress.make create mode 100644 week01/cmake-build-debug/CMakeFiles/progress.marks create mode 100644 week01/cmake-build-debug/Makefile create mode 100644 week01/cmake-build-debug/cmake_install.cmake create mode 100755 week01/cmake-build-debug/plusone create mode 100644 week01/cmake-build-debug/week01.cbp diff --git a/week01/3sum.cpp b/week01/3sum.cpp index 10870112..05f3b88b 100644 --- a/week01/3sum.cpp +++ b/week01/3sum.cpp @@ -1,4 +1,95 @@ // // Created by lewang on 10/20/20. // +#include <vector> +#include <algorithm> +class Solution { +public: + vector<vector<int>> threeSum(vector<int>& nums) { + vector<vector<int>> res; + sort(nums.begin(), nums.end()); + for(int k = 0; k < nums.size() - 2; k++){ + if(nums[k] > 0) break; + if(k > 0 && nums[k] == nums[k - 1]) continue; + int i = k + 1, j = nums.size() - 1; + while(i < j){ + int sum = nums[k] + nums[i] + nums[j]; + if(sum < 0){ + while(i < j && nums[i] == nums[++i]); + } else if (sum > 0) { + while(i < j && nums[j] == nums[--j]); + } else { + res.push_back({nums[k], nums[i], nums[j]}); + while(i < j && nums[i] == nums[++i]); + while(i < j && nums[j] == nums[--j]); + } + } + } + return res; + } +}; +//Line 1034: Char 9: runtime error: reference binding to null pointer of type 'int' (stl_vector.h) +//SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior /usr/bin/../lib/gcc/x86_64-linux-gnu/9/../../../../include/c++/9/bits/stl_vector.h:1043:9 +/*--------------------------------------------------------------------------------- +排序 + 双指针 + 本题的难点在于如何去除重复解。 + +算法流程: +特判,对于数组长度 nn,如果数组为 nullnull 或者数组长度小于 33,返回 [][]。 +对数组进行排序。 +遍历排序后数组: +若 nums[i]>0nums[i]>0:因为已经排序好,所以后面不可能有三个数加和等于 00,直接返回结果。 +对于重复元素:跳过,避免出现重复解 + 令左指针 L=i+1L=i+1,右指针 R=n-1R=n−1,当 L<RL<R 时,执行循环: +当 nums[i]+nums[L]+nums[R]==0nums[i]+nums[L]+nums[R]==0,执行循环,判断左界和右界是否和下一位置重复,去除重复解。并同时将 L,RL,R 移到下一位置,寻找新的解 + 若和大于 00,说明 nums[R]nums[R] 太大,RR 左移 +若和小于 00,说明 nums[L]nums[L] 太小,LL 右移 +复杂度分析 + 时间复杂度:O\left(n^{2}\right)O(n +2 +),数组排序 O(N \log N)O(NlogN),遍历数组 O\left(n\right)O(n),双指针遍历 O\left(n\right)O(n),总体 O(N \log N)+O\left(n\right)*O\left(n\right)O(NlogN)+O(n)∗O(n),O\left(n^{2}\right)O(n +2 +) +空间复杂度:O(1)O(1) + +作者:wu_yan_zu + 链接:https://leetcode-cn.com/problems/3sum/solution/pai-xu-shuang-zhi-zhen-zhu-xing-jie-shi-python3-by/ +来源:力扣(LeetCode) +著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 + +class Solution: + def threeSum(self, nums: List[int]) -> List[List[int]]: + +n=len(nums) +res=[] +if(not nums or n<3): +return [] +nums.sort() +res=[] +for i in range(n): +if(nums[i]>0): +return res +if(i>0 and nums[i]==nums[i-1]): +continue +L=i+1 +R=n-1 +while(L<R): +if(nums[i]+nums[L]+nums[R]==0): +res.append([nums[i],nums[L],nums[R]]) +while(L<R and nums[L]==nums[L+1]): +L=L+1 +while(L<R and nums[R]==nums[R-1]): +R=R-1 +L=L+1 +R=R-1 +elif(nums[i]+nums[L]+nums[R]>0): +R=R-1 +else: +L=L+1 +return res + + 作者:wu_yan_zu + 链接:https://leetcode-cn.com/problems/3sum/solution/pai-xu-shuang-zhi-zhen-zhu-xing-jie-shi-python3-by/ +来源:力扣(LeetCode) +著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 \ No newline at end of file diff --git a/week01/CMakeLists.txt b/week01/CMakeLists.txt index 469765d4..4bd91eca 100644 --- a/week01/CMakeLists.txt +++ b/week01/CMakeLists.txt @@ -1,5 +1,8 @@ cmake_minimum_required (VERSION 2.8.11) project (week01) -add_executable (move_zeros lc-283_move-zeros.cpp) -#target_link_libraries (move_zeros LINK_PUBLIC week01) \ No newline at end of file +#add_executable (move_zeros lc-283_move-zeros.cpp) +#target_link_libraries (move_zeros LINK_PUBLIC week01) + +add_executable (plusone plusone.cpp) +#target_link_libraries (plusone LINK_PUBLIC week01) \ No newline at end of file diff --git a/week01/cmake-build-debug/CMakeCache.txt b/week01/cmake-build-debug/CMakeCache.txt new file mode 100644 index 00000000..2f713a13 --- /dev/null +++ b/week01/cmake-build-debug/CMakeCache.txt @@ -0,0 +1,380 @@ +# This is the CMakeCache file. +# For build in directory: /home/lewang/algorithm018/week01/cmake-build-debug +# It was generated by CMake: /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Debug + +//Id string of the compiler for the CodeBlocks IDE. Automatically +// detected when left empty +CMAKE_CODEBLOCKS_COMPILER_ID:STRING= + +//The CodeBlocks executable +CMAKE_CODEBLOCKS_EXECUTABLE:FILEPATH=CMAKE_CODEBLOCKS_EXECUTABLE-NOTFOUND + +//Additional command line arguments when CodeBlocks invokes make. +// Enter e.g. -j<some_number> to get parallel builds +CMAKE_CODEBLOCKS_MAKE_ARGUMENTS:STRING=-j12 + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-5 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-5 + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//C compiler +CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-5 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-5 + +//Flags used by the C compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the C compiler during DEBUG builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the C compiler during RELEASE builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=week01 + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Path to a program. +ProcessorCount_cmd_getconf:FILEPATH=/usr/bin/getconf + +//Path to a program. +ProcessorCount_cmd_sysctl:FILEPATH=/sbin/sysctl + +//Value Computed by CMake +week01_BINARY_DIR:STATIC=/home/lewang/algorithm018/week01/cmake-build-debug + +//Value Computed by CMake +week01_SOURCE_DIR:STATIC=/home/lewang/algorithm018/week01 + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/lewang/algorithm018/week01/cmake-build-debug +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=13 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL=CodeBlocks +//CXX compiler system defined macros +CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570815e+308L);__DBL_MIN__;((double)2.22507385850720138309e-308L);__DBL_EPSILON__;((double)2.22044604925031308085e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1;__STDC__;1;__cplusplus;199711L;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__GNUG__;5;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_WEAK__;1;__DEPRECATED;1;__GXX_RTTI;1;__cpp_rtti;199711;__cpp_binary_literals;201304;__cpp_runtime_arrays;198712;__cpp_threadsafe_static_init;200806;__EXCEPTIONS;1;__cpp_exceptions;199711;__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__GLIBCXX_TYPE_INT_N_0;__int128;__GLIBCXX_BITSIZE_INT_N_0;128;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;double(1.79769313486231570815e+308L);__DBL_MIN__;double(2.22507385850720138309e-308L);__DBL_EPSILON__;double(2.22044604925031308085e-16L);__DBL_DENORM_MIN__;double(4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_GNU_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_GNU_SOURCE;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1 +//CXX compiler system include directories +CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/include/c++/5;/usr/include/x86_64-linux-gnu/c++/5;/usr/include/c++/5/backward;/usr/lib/gcc/x86_64-linux-gnu/5/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include +//C compiler system defined macros +CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570815e+308L);__DBL_MIN__;((double)2.22507385850720138309e-308L);__DBL_EPSILON__;((double)2.22044604925031308085e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1 +//C compiler system include directories +CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/lib/gcc/x86_64-linux-gnu/5/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/lewang/algorithm018/week01 +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: ProcessorCount_cmd_getconf +ProcessorCount_cmd_getconf-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: ProcessorCount_cmd_sysctl +ProcessorCount_cmd_sysctl-ADVANCED:INTERNAL=1 + diff --git a/week01/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake b/week01/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake new file mode 100755 index 00000000..17a89374 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake @@ -0,0 +1,73 @@ +set(CMAKE_C_COMPILER "/usr/bin/cc") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "GNU") +set(CMAKE_C_COMPILER_VERSION "5.5.0") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-5") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-5") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCC 1) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/week01/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake b/week01/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake new file mode 100755 index 00000000..51738d56 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake @@ -0,0 +1,76 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "5.5.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "98") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-5") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-5") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/week01/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin b/week01/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..ce01f2ca7e5e788ef02f6a2691b09499318eb750 GIT binary patch literal 8464 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 literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin b/week01/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..40ee06d7308469781ca42b235f55a21909e5cb67 GIT binary patch literal 8472 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 literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake b/week01/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake new file mode 100755 index 00000000..c394a4a4 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-4.15.0-70-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "4.15.0-70-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-4.15.0-70-generic") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "4.15.0-70-generic") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/week01/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c b/week01/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 00000000..bfc6ebbf --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,623 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif +#if defined(__CLASSIC_C__) +/* cv-qualifiers did not exist in K&R C */ +# define const +# define volatile +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__ibmxl__) || (defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800) +# define COMPILER_ID "XL" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__ARMCC_VERSION) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if !defined(__STDC__) +# if (defined(_MSC_VER) && !defined(__clang__)) \ + || (defined(__ibmxl__) || defined(__IBMC__)) +# define C_DIALECT "90" +# else +# define C_DIALECT +# endif +#elif __STDC_VERSION__ >= 201000L +# define C_DIALECT "11" +#elif __STDC_VERSION__ >= 199901L +# define C_DIALECT "99" +#else +# define C_DIALECT "90" +#endif +const char* info_language_dialect_default = + "INFO" ":" "dialect_default[" C_DIALECT "]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/week01/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out b/week01/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out new file mode 100755 index 0000000000000000000000000000000000000000..b6682332a4d6181ed3894fb98c1ca0489587c43f GIT binary patch literal 8616 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 Ih5F_H3$g66L;wH) literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/week01/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 00000000..b728b632 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,602 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__ibmxl__) || (defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800) +# define COMPILER_ID "XL" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__ARMCC_VERSION) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if defined(_MSC_VER) && defined(_MSVC_LANG) +#define CXX_STD _MSVC_LANG +#else +#define CXX_STD __cplusplus +#endif + +const char* info_language_dialect_default = "INFO" ":" "dialect_default[" +#if CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} diff --git a/week01/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out b/week01/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out new file mode 100755 index 0000000000000000000000000000000000000000..4f752d048d3d136555ba6b13b7869c22a3d0b55a GIT binary patch literal 8632 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 PMm|kP+C^q0>XiQ<q>!mv literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake b/week01/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 00000000..f54bedb4 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/lewang/algorithm018/week01") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/lewang/algorithm018/week01/cmake-build-debug") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/week01/cmake-build-debug/CMakeFiles/CMakeOutput.log b/week01/cmake-build-debug/CMakeFiles/CMakeOutput.log new file mode 100644 index 00000000..46dd3bc0 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/CMakeOutput.log @@ -0,0 +1,625 @@ +The system is: Linux - 4.15.0-70-generic - x86_64 +Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. +Compiler: /usr/bin/cc +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" + +The C compiler identification is GNU, found in "/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out" + +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. +Compiler: /usr/bin/c++ +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + +The CXX compiler identification is GNU, found in "/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out" + +Determining if the C compiler works passed with the following output: +Change Dir: /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_fd2bf/fast" +/usr/bin/make -f CMakeFiles/cmTC_fd2bf.dir/build.make CMakeFiles/cmTC_fd2bf.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_fd2bf.dir/testCCompiler.c.o +/usr/bin/cc -o CMakeFiles/cmTC_fd2bf.dir/testCCompiler.c.o -c /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp/testCCompiler.c +Linking C executable cmTC_fd2bf +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_fd2bf.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_fd2bf.dir/testCCompiler.c.o -o cmTC_fd2bf +make[1]: Leaving directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_b7d63/fast" +/usr/bin/make -f CMakeFiles/cmTC_b7d63.dir/build.make CMakeFiles/cmTC_b7d63.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_b7d63.dir/CMakeCCompilerABI.c.o +/usr/bin/cc -o CMakeFiles/cmTC_b7d63.dir/CMakeCCompilerABI.c.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCCompilerABI.c +Linking C executable cmTC_b7d63 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b7d63.dir/link.txt --verbose=1 +/usr/bin/cc -v -rdynamic CMakeFiles/cmTC_b7d63.dir/CMakeCCompilerABI.c.o -o cmTC_b7d63 +Using built-in specs. +COLLECT_GCC=/usr/bin/cc +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_b7d63' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccmwHEXF.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_b7d63 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_b7d63.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o +make[1]: Leaving directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_b7d63/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_b7d63.dir/build.make CMakeFiles/cmTC_b7d63.dir/build] + ignore line: [make[1]: Entering directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp'] + ignore line: [Building C object CMakeFiles/cmTC_b7d63.dir/CMakeCCompilerABI.c.o] + ignore line: [/usr/bin/cc -o CMakeFiles/cmTC_b7d63.dir/CMakeCCompilerABI.c.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCCompilerABI.c] + ignore line: [Linking C executable cmTC_b7d63] + ignore line: [/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b7d63.dir/link.txt --verbose=1] + ignore line: [/usr/bin/cc -v -rdynamic CMakeFiles/cmTC_b7d63.dir/CMakeCCompilerABI.c.o -o cmTC_b7d63 ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_b7d63' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccmwHEXF.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_b7d63 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_b7d63.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccmwHEXF.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_b7d63] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] + arg [CMakeFiles/cmTC_b7d63.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtend.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5] ==> [/usr/lib/gcc/x86_64-linux-gnu/5] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> [/usr/lib] + implicit libs: [gcc;gcc_s;c;gcc;gcc_s] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting C [-std=c11] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_68eb5/fast" +/usr/bin/make -f CMakeFiles/cmTC_68eb5.dir/build.make CMakeFiles/cmTC_68eb5.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_68eb5.dir/feature_tests.c.o +/usr/bin/cc -std=c11 -o CMakeFiles/cmTC_68eb5.dir/feature_tests.c.o -c /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_68eb5 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_68eb5.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_68eb5.dir/feature_tests.c.o -o cmTC_68eb5 +make[1]: Leaving directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:1c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c99] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_c0125/fast" +/usr/bin/make -f CMakeFiles/cmTC_c0125.dir/build.make CMakeFiles/cmTC_c0125.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_c0125.dir/feature_tests.c.o +/usr/bin/cc -std=c99 -o CMakeFiles/cmTC_c0125.dir/feature_tests.c.o -c /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_c0125 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c0125.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_c0125.dir/feature_tests.c.o -o cmTC_c0125 +make[1]: Leaving directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c90] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_aec97/fast" +/usr/bin/make -f CMakeFiles/cmTC_aec97.dir/build.make CMakeFiles/cmTC_aec97.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_aec97.dir/feature_tests.c.o +/usr/bin/cc -std=c90 -o CMakeFiles/cmTC_aec97.dir/feature_tests.c.o -c /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_aec97 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_aec97.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_aec97.dir/feature_tests.c.o -o cmTC_aec97 +make[1]: Leaving directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:0c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:0c_variadic_macros +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_c4072/fast" +/usr/bin/make -f CMakeFiles/cmTC_c4072.dir/build.make CMakeFiles/cmTC_c4072.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_c4072.dir/testCXXCompiler.cxx.o +/usr/bin/c++ -o CMakeFiles/cmTC_c4072.dir/testCXXCompiler.cxx.o -c /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp/testCXXCompiler.cxx +Linking CXX executable cmTC_c4072 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c4072.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_c4072.dir/testCXXCompiler.cxx.o -o cmTC_c4072 +make[1]: Leaving directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_96a6a/fast" +/usr/bin/make -f CMakeFiles/cmTC_96a6a.dir/build.make CMakeFiles/cmTC_96a6a.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_96a6a.dir/CMakeCXXCompilerABI.cpp.o +/usr/bin/c++ -o CMakeFiles/cmTC_96a6a.dir/CMakeCXXCompilerABI.cpp.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXCompilerABI.cpp +Linking CXX executable cmTC_96a6a +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_96a6a.dir/link.txt --verbose=1 +/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_96a6a.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_96a6a +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_96a6a' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccH8UC7N.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_96a6a /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_96a6a.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o +make[1]: Leaving directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_96a6a/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_96a6a.dir/build.make CMakeFiles/cmTC_96a6a.dir/build] + ignore line: [make[1]: Entering directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp'] + ignore line: [Building CXX object CMakeFiles/cmTC_96a6a.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -o CMakeFiles/cmTC_96a6a.dir/CMakeCXXCompilerABI.cpp.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Linking CXX executable cmTC_96a6a] + ignore line: [/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_96a6a.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_96a6a.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_96a6a ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_96a6a' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccH8UC7N.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_96a6a /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_96a6a.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccH8UC7N.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_96a6a] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] + arg [CMakeFiles/cmTC_96a6a.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtend.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5] ==> [/usr/lib/gcc/x86_64-linux-gnu/5] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting CXX [-std=c++1z] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_949b9/fast" +/usr/bin/make -f CMakeFiles/cmTC_949b9.dir/build.make CMakeFiles/cmTC_949b9.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_949b9.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++1z -o CMakeFiles/cmTC_949b9.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_949b9 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_949b9.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_949b9.dir/feature_tests.cxx.o -o cmTC_949b9 +make[1]: Leaving directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++14] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_11ca2/fast" +/usr/bin/make -f CMakeFiles/cmTC_11ca2.dir/build.make CMakeFiles/cmTC_11ca2.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_11ca2.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++14 -o CMakeFiles/cmTC_11ca2.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_11ca2 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_11ca2.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_11ca2.dir/feature_tests.cxx.o -o cmTC_11ca2 +make[1]: Leaving directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++11] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_a5e3c/fast" +/usr/bin/make -f CMakeFiles/cmTC_a5e3c.dir/build.make CMakeFiles/cmTC_a5e3c.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_a5e3c.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++11 -o CMakeFiles/cmTC_a5e3c.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_a5e3c +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a5e3c.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_a5e3c.dir/feature_tests.cxx.o -o cmTC_a5e3c +make[1]: Leaving directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++98] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_150af/fast" +/usr/bin/make -f CMakeFiles/cmTC_150af.dir/build.make CMakeFiles/cmTC_150af.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_150af.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++98 -o CMakeFiles/cmTC_150af.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_150af +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_150af.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_150af.dir/feature_tests.cxx.o -o cmTC_150af +make[1]: Leaving directory '/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:0cxx_alias_templates + Feature record: CXX_FEATURE:0cxx_alignas + Feature record: CXX_FEATURE:0cxx_alignof + Feature record: CXX_FEATURE:0cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:0cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:0cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:0cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:0cxx_default_function_template_args + Feature record: CXX_FEATURE:0cxx_defaulted_functions + Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:0cxx_delegating_constructors + Feature record: CXX_FEATURE:0cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:0cxx_enum_forward_declarations + Feature record: CXX_FEATURE:0cxx_explicit_conversions + Feature record: CXX_FEATURE:0cxx_extended_friend_declarations + Feature record: CXX_FEATURE:0cxx_extern_templates + Feature record: CXX_FEATURE:0cxx_final + Feature record: CXX_FEATURE:0cxx_func_identifier + Feature record: CXX_FEATURE:0cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:0cxx_inheriting_constructors + Feature record: CXX_FEATURE:0cxx_inline_namespaces + Feature record: CXX_FEATURE:0cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:0cxx_local_type_template_args + Feature record: CXX_FEATURE:0cxx_long_long_type + Feature record: CXX_FEATURE:0cxx_noexcept + Feature record: CXX_FEATURE:0cxx_nonstatic_member_init + Feature record: CXX_FEATURE:0cxx_nullptr + Feature record: CXX_FEATURE:0cxx_override + Feature record: CXX_FEATURE:0cxx_range_for + Feature record: CXX_FEATURE:0cxx_raw_string_literals + Feature record: CXX_FEATURE:0cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:0cxx_right_angle_brackets + Feature record: CXX_FEATURE:0cxx_rvalue_references + Feature record: CXX_FEATURE:0cxx_sizeof_member + Feature record: CXX_FEATURE:0cxx_static_assert + Feature record: CXX_FEATURE:0cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:0cxx_thread_local + Feature record: CXX_FEATURE:0cxx_trailing_return_types + Feature record: CXX_FEATURE:0cxx_unicode_literals + Feature record: CXX_FEATURE:0cxx_uniform_initialization + Feature record: CXX_FEATURE:0cxx_unrestricted_unions + Feature record: CXX_FEATURE:0cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:0cxx_variadic_macros + Feature record: CXX_FEATURE:0cxx_variadic_templates diff --git a/week01/cmake-build-debug/CMakeFiles/Makefile.cmake b/week01/cmake-build-debug/CMakeFiles/Makefile.cmake new file mode 100644 index 00000000..c69daeb0 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/Makefile.cmake @@ -0,0 +1,50 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "../CMakeLists.txt" + "CMakeFiles/3.13.2/CMakeCCompiler.cmake" + "CMakeFiles/3.13.2/CMakeCXXCompiler.cmake" + "CMakeFiles/3.13.2/CMakeSystem.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCommonLanguageInclude.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeFindCodeBlocks.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeGenericSystem.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeInitializeConfigs.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeLanguageInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeSystemSpecificInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeSystemSpecificInitialize.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU-C.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU-CXX.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU-C.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU-CXX.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/UnixPaths.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/ProcessorCount.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/plusone.dir/DependInfo.cmake" + ) diff --git a/week01/cmake-build-debug/CMakeFiles/Makefile2 b/week01/cmake-build-debug/CMakeFiles/Makefile2 new file mode 100644 index 00000000..2803d85a --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/Makefile2 @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# The main recursive all target +all: + +.PHONY : all + +# The main recursive preinstall target +preinstall: + +.PHONY : preinstall + +# The main recursive clean target +clean: + +.PHONY : clean + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week01 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week01/cmake-build-debug + +#============================================================================= +# Target rules for target CMakeFiles/plusone.dir + +# All Build rule for target. +CMakeFiles/plusone.dir/all: + $(MAKE) -f CMakeFiles/plusone.dir/build.make CMakeFiles/plusone.dir/depend + $(MAKE) -f CMakeFiles/plusone.dir/build.make CMakeFiles/plusone.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target plusone" +.PHONY : CMakeFiles/plusone.dir/all + +# Include target in all. +all: CMakeFiles/plusone.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/plusone.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/plusone.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/plusone.dir/rule + +# Convenience name for target. +plusone: CMakeFiles/plusone.dir/rule + +.PHONY : plusone + +# clean rule for target. +CMakeFiles/plusone.dir/clean: + $(MAKE) -f CMakeFiles/plusone.dir/build.make CMakeFiles/plusone.dir/clean +.PHONY : CMakeFiles/plusone.dir/clean + +# clean rule for target. +clean: CMakeFiles/plusone.dir/clean + +.PHONY : clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/week01/cmake-build-debug/CMakeFiles/TargetDirectories.txt b/week01/cmake-build-debug/CMakeFiles/TargetDirectories.txt new file mode 100644 index 00000000..3b672675 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/rebuild_cache.dir +/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/plusone.dir +/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/edit_cache.dir diff --git a/week01/cmake-build-debug/CMakeFiles/clion-environment.txt b/week01/cmake-build-debug/CMakeFiles/clion-environment.txt new file mode 100644 index 00000000..270d93c2 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/clion-environment.txt @@ -0,0 +1,3 @@ +ToolSet: 1.0 (local)Options: + +Options: \ No newline at end of file diff --git a/week01/cmake-build-debug/CMakeFiles/clion-log.txt b/week01/cmake-build-debug/CMakeFiles/clion-log.txt new file mode 100644 index 00000000..169449e2 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/clion-log.txt @@ -0,0 +1,4 @@ +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" /home/lewang/algorithm018/week01 +-- Configuring done +-- Generating done +-- Build files have been written to: /home/lewang/algorithm018/week01/cmake-build-debug diff --git a/week01/cmake-build-debug/CMakeFiles/cmake.check_cache b/week01/cmake-build-debug/CMakeFiles/cmake.check_cache new file mode 100644 index 00000000..3dccd731 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/week01/cmake-build-debug/CMakeFiles/feature_tests.bin b/week01/cmake-build-debug/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..c1bade88a09ced4221830cdf30b0fa11360b60ea GIT binary patch literal 12520 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 S*dX~wSGpXhnNd-{{J#MLk8ZjE literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/CMakeFiles/feature_tests.c b/week01/cmake-build-debug/CMakeFiles/feature_tests.c new file mode 100644 index 00000000..83e86dd8 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/feature_tests.c @@ -0,0 +1,34 @@ + + const char features[] = {"\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/week01/cmake-build-debug/CMakeFiles/feature_tests.cxx b/week01/cmake-build-debug/CMakeFiles/feature_tests.cxx new file mode 100644 index 00000000..b93418c6 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/week01/cmake-build-debug/CMakeFiles/plusone.dir/CXX.includecache b/week01/cmake-build-debug/CMakeFiles/plusone.dir/CXX.includecache new file mode 100644 index 00000000..6d39df93 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/plusone.dir/CXX.includecache @@ -0,0 +1,14 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week01/plusone.cpp +vector +- +iostream +- + diff --git a/week01/cmake-build-debug/CMakeFiles/plusone.dir/DependInfo.cmake b/week01/cmake-build-debug/CMakeFiles/plusone.dir/DependInfo.cmake new file mode 100644 index 00000000..dfc49b54 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/plusone.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week01/plusone.cpp" "/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/plusone.dir/plusone.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week01/cmake-build-debug/CMakeFiles/plusone.dir/build.make b/week01/cmake-build-debug/CMakeFiles/plusone.dir/build.make new file mode 100644 index 00000000..d1ab6607 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/plusone.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week01 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week01/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/plusone.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/plusone.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/plusone.dir/flags.make + +CMakeFiles/plusone.dir/plusone.cpp.o: CMakeFiles/plusone.dir/flags.make +CMakeFiles/plusone.dir/plusone.cpp.o: ../plusone.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/plusone.dir/plusone.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/plusone.dir/plusone.cpp.o -c /home/lewang/algorithm018/week01/plusone.cpp + +CMakeFiles/plusone.dir/plusone.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/plusone.dir/plusone.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week01/plusone.cpp > CMakeFiles/plusone.dir/plusone.cpp.i + +CMakeFiles/plusone.dir/plusone.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/plusone.dir/plusone.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week01/plusone.cpp -o CMakeFiles/plusone.dir/plusone.cpp.s + +# Object files for target plusone +plusone_OBJECTS = \ +"CMakeFiles/plusone.dir/plusone.cpp.o" + +# External object files for target plusone +plusone_EXTERNAL_OBJECTS = + +plusone: CMakeFiles/plusone.dir/plusone.cpp.o +plusone: CMakeFiles/plusone.dir/build.make +plusone: CMakeFiles/plusone.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable plusone" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/plusone.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/plusone.dir/build: plusone + +.PHONY : CMakeFiles/plusone.dir/build + +CMakeFiles/plusone.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/plusone.dir/cmake_clean.cmake +.PHONY : CMakeFiles/plusone.dir/clean + +CMakeFiles/plusone.dir/depend: + cd /home/lewang/algorithm018/week01/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week01 /home/lewang/algorithm018/week01 /home/lewang/algorithm018/week01/cmake-build-debug /home/lewang/algorithm018/week01/cmake-build-debug /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/plusone.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/plusone.dir/depend + diff --git a/week01/cmake-build-debug/CMakeFiles/plusone.dir/cmake_clean.cmake b/week01/cmake-build-debug/CMakeFiles/plusone.dir/cmake_clean.cmake new file mode 100644 index 00000000..c6620b53 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/plusone.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/plusone.dir/plusone.cpp.o" + "plusone.pdb" + "plusone" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/plusone.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week01/cmake-build-debug/CMakeFiles/plusone.dir/depend.internal b/week01/cmake-build-debug/CMakeFiles/plusone.dir/depend.internal new file mode 100644 index 00000000..ffe65a2c --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/plusone.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/plusone.dir/plusone.cpp.o + /home/lewang/algorithm018/week01/plusone.cpp diff --git a/week01/cmake-build-debug/CMakeFiles/plusone.dir/depend.make b/week01/cmake-build-debug/CMakeFiles/plusone.dir/depend.make new file mode 100644 index 00000000..ce721731 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/plusone.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/plusone.dir/plusone.cpp.o: ../plusone.cpp + diff --git a/week01/cmake-build-debug/CMakeFiles/plusone.dir/flags.make b/week01/cmake-build-debug/CMakeFiles/plusone.dir/flags.make new file mode 100644 index 00000000..93b364bb --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/plusone.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week01/cmake-build-debug/CMakeFiles/plusone.dir/link.txt b/week01/cmake-build-debug/CMakeFiles/plusone.dir/link.txt new file mode 100644 index 00000000..1957afd0 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/plusone.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/plusone.dir/plusone.cpp.o -o plusone diff --git a/week01/cmake-build-debug/CMakeFiles/plusone.dir/plusone.cpp.o b/week01/cmake-build-debug/CMakeFiles/plusone.dir/plusone.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..c5f6afeda19d8e3b4a54b651d6dfdc5c22cab9ae GIT binary patch literal 99616 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 TFxNgVI~7xwYM}mMGVS*t8qe@( literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/CMakeFiles/plusone.dir/progress.make b/week01/cmake-build-debug/CMakeFiles/plusone.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/plusone.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week01/cmake-build-debug/CMakeFiles/progress.marks b/week01/cmake-build-debug/CMakeFiles/progress.marks new file mode 100644 index 00000000..0cfbf088 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/progress.marks @@ -0,0 +1 @@ +2 diff --git a/week01/cmake-build-debug/Makefile b/week01/cmake-build-debug/Makefile new file mode 100644 index 00000000..2d76782f --- /dev/null +++ b/week01/cmake-build-debug/Makefile @@ -0,0 +1,178 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week01 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week01/cmake-build-debug + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named plusone + +# Build rule for target. +plusone: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 plusone +.PHONY : plusone + +# fast build rule for target. +plusone/fast: + $(MAKE) -f CMakeFiles/plusone.dir/build.make CMakeFiles/plusone.dir/build +.PHONY : plusone/fast + +plusone.o: plusone.cpp.o + +.PHONY : plusone.o + +# target to build an object file +plusone.cpp.o: + $(MAKE) -f CMakeFiles/plusone.dir/build.make CMakeFiles/plusone.dir/plusone.cpp.o +.PHONY : plusone.cpp.o + +plusone.i: plusone.cpp.i + +.PHONY : plusone.i + +# target to preprocess a source file +plusone.cpp.i: + $(MAKE) -f CMakeFiles/plusone.dir/build.make CMakeFiles/plusone.dir/plusone.cpp.i +.PHONY : plusone.cpp.i + +plusone.s: plusone.cpp.s + +.PHONY : plusone.s + +# target to generate assembly for a file +plusone.cpp.s: + $(MAKE) -f CMakeFiles/plusone.dir/build.make CMakeFiles/plusone.dir/plusone.cpp.s +.PHONY : plusone.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... rebuild_cache" + @echo "... plusone" + @echo "... edit_cache" + @echo "... plusone.o" + @echo "... plusone.i" + @echo "... plusone.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/week01/cmake-build-debug/cmake_install.cmake b/week01/cmake-build-debug/cmake_install.cmake new file mode 100644 index 00000000..57eec16a --- /dev/null +++ b/week01/cmake-build-debug/cmake_install.cmake @@ -0,0 +1,49 @@ +# Install script for directory: /home/lewang/algorithm018/week01 + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/lewang/algorithm018/week01/cmake-build-debug/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/week01/cmake-build-debug/plusone b/week01/cmake-build-debug/plusone new file mode 100755 index 0000000000000000000000000000000000000000..d7507b110d35e315897d66aeca7055193f9af94b GIT binary patch literal 65112 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 literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/week01.cbp b/week01/cmake-build-debug/week01.cbp new file mode 100644 index 00000000..34fc8a4a --- /dev/null +++ b/week01/cmake-build-debug/week01.cbp @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="UTF-8"?> +<CodeBlocks_project_file> + <FileVersion major="1" minor="6"/> + <Project> + <Option title="week01"/> + <Option makefile_is_custom="1"/> + <Option compiler="gcc"/> + <Option virtualFolders="CMake Files\;"/> + <Build> + <Target title="all"> + <Option working_dir="/home/lewang/algorithm018/week01/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 all"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="rebuild_cache"> + <Option working_dir="/home/lewang/algorithm018/week01/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 rebuild_cache"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="plusone"> + <Option output="/home/lewang/algorithm018/week01/cmake-build-debug/plusone" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week01/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 plusone"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="plusone/fast"> + <Option output="/home/lewang/algorithm018/week01/cmake-build-debug/plusone" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week01/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 plusone/fast"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="edit_cache"> + <Option working_dir="/home/lewang/algorithm018/week01/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 edit_cache"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + </Build> + <Unit filename="/home/lewang/algorithm018/week01/plusone.cpp"> + <Option target="plusone"/> + </Unit> + <Unit filename="/home/lewang/algorithm018/week01/CMakeLists.txt"> + <Option virtualFolder="CMake Files\"/> + </Unit> + </Project> +</CodeBlocks_project_file> diff --git a/week01/lc-waterContainer.cpp b/week01/lc-waterContainer.cpp index 20f4b0f9..d7a947fc 100644 --- a/week01/lc-waterContainer.cpp +++ b/week01/lc-waterContainer.cpp @@ -1,4 +1,60 @@ // // Created by UPC on 2020/10/19. // +//双指针 +#include <vector> +using namespace std; +class Solution{ +public: + int maxArea(vector<int>& height) { + int l=0,r=height.size()-1; + int res = 0; + while (l < r) { + int area = min(height[l],height[r]) * (r - l); + res = max(res , area); + if(height[l] < height[r]){ + ++l;//l++; + } else{ + --r;//r--也可以 + } + } + return res; + } +}; +//执行用时: +//48 ms +//, 在所有 C++ 提交中击败了 +//13.96% +//的用户 +//内存消耗: +//17.8 MB +//, 在所有 C++ 提交中击败了 +//5.01% +//的用户 +//------------------------------------------------------------------------ +class Solution { +public: + int maxArea(vector<int>& height) { + int l = 0, r = height.size()-1; + int res = 0, area=0; + while (l < r)//<= + { + int h = min(height[l], height[r]); + res = max(res,h*(r-l)); + while (height[l] <= h && l < r) l++; + while (height[r] <= h && l < r) r--; + } + return res; + } +}; +//执行用时: +//32 ms +//, 在所有 C++ 提交中击败了 +//18.49% +//的用户 +//内存消耗: +//17.8 MB +//, 在所有 C++ 提交中击败了 +//5.01% +//的用户 \ No newline at end of file diff --git a/week01/plusone.cpp b/week01/plusone.cpp index 10870112..b4ed44f2 100644 --- a/week01/plusone.cpp +++ b/week01/plusone.cpp @@ -1,4 +1,89 @@ // // Created by lewang on 10/20/20. // +//思路: +//数组末尾加1,然后输出!! 没有考虑清楚各种情况!!! +#include <vector> +#include <iostream> +using namespace std; +class Solution { +public: vector <int> plusOne(vector<int>& digits){ + int len = digits.size(); + for(int i = len - 1; i >= 0; i--) { + digits[i]++; + digits[i] %= 10; + if(digits[i]!=0) + return digits; + } + + digits.insert(digits.begin(),1); + + return digits; + } +}; + + + + +/*Java solution +class Solution { +public int[] plusOne(int[] digits) { + int len = digits.length; + for(int i = len - 1; i >= 0; i--) { + digits[i]++; + digits[i] %= 10; + if(digits[i]!=0) + return digits; + } + digits = new int[len + 1]; + digits[0] = 1; + return digits; + } +} + + 作者:guanpengchn + 链接:https://leetcode-cn.com/problems/plus-one/solution/hua-jie-suan-fa-66-jia-yi-by-guanpengchn/ +来源:力扣(LeetCode) +著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。 +*/ + + + + + +//---------------------------------我的错误解法----------------------------------------------------------- +//class Solution { +//public: +// vector <int> plusOne(vector<int>& digits){ +// vector<int>::iterator it; +// int lastNum = digits.back(); +// lastNum += 1; +// digits.pop_back(); +// digits.push_back(lastNum); +// int size = digits.size(); +// for (int i=size+1; i>0 ; i-- ){ +// cout << digits[i] << ","; +// } +//// it = digits.end(); +//// cout << digits.back() <<endl; +//// int size = digits.size(); +//// int base = 10; +//// int output = 0; +//// for (int i = size; i >=0; i--){ +//// +//// output = output*base+ digits[i]; +//// } +// } +//}; +// +//int main(){ +// Solution test; +// vector<int> a ; +// a.push_back(1); +// a.push_back(2); +// a.push_back(3); +// test.plusOne(a); +// cout << "[MSG] Finish" << endl; +//return 0; +//} diff --git a/week01/reorder_list.cpp b/week01/reorder_list.cpp index 10870112..4ffeb2f1 100644 --- a/week01/reorder_list.cpp +++ b/week01/reorder_list.cpp @@ -1,4 +1,10 @@ // // Created by lewang on 10/20/20. // +#include <list> +class Solution{ +public: + void reorderList(ListNode* head){ + } +}; \ No newline at end of file From 5929d319e4a65116a181e5b86c99d1bd513b0274 Mon Sep 17 00:00:00 2001 From: Ella2le <1071444737@qq.com> Date: Wed, 21 Oct 2020 09:00:17 +0800 Subject: [PATCH 04/21] update note.md --- week01/NOTE.md | 43 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 40 insertions(+), 3 deletions(-) diff --git a/week01/NOTE.md b/week01/NOTE.md index ff673aa6..40255c21 100644 --- a/week01/NOTE.md +++ b/week01/NOTE.md @@ -44,11 +44,47 @@ https://www.zhihu.com/question/20202931 #实战练习 **五毒神掌** -##Array -1.move zeros +##Array + +1. 3sum +排序+双指针 +时间复杂度 O(n<sup>2</sup>) +空间复杂度 +2. plusone +**要考虑清楚问题,弄懂数据的各个不同小问题** +如果+1<10 不用进位 +如果是9,则会=10,需要进位 +如果都是9则还需要在首位多一位1,ex: 999+1=1000 + +3. watercontainer +双指针夹逼 +时间复杂度 O(n<sup>2</sup>) +空间复杂度 +**Note** vector<T>::size() 的返回值是siz_t,是無符號的整形.如果題目是一個空的vector,那麼vector的长度是0, +此时nums.size() -1 就会导致整型下溢,此时在for循环中 +for(int i = 0; i < nums.size()-1; i++) +就是i在和一个非常大的数对比,导致越界. +正确的做法是 +for(int i=0; i < int(nums.size() -1 ); i++) + +4. climbstair +斐波那契数列 +时间复杂度 O(n<sup>2</sup>) +空间复杂度 +f(n) = f(n-1) + f(n-2) +变型问题:不能连续两次走2不 +f(n) = f(n-1) + f(n-3) + +6. move zeros +index + for loop +时间复杂度 O(n<sup>2</sup>) +空间复杂度 要检查输入 -执行代码的时候尝试输入一下特殊的数字 +执行代码的时候尝试输入一下特殊的数字 + + + #一些疑问 1. 循环中使用++i和i++有没有区别 关于i++和++i是先返回再计算还是先计算再返回部分已经理解; @@ -57,5 +93,6 @@ https://www.zhihu.com/question/20202931 for ( int i, i < n, i++) for ( int i, i < n, ++i) 有没有区别? +在leetcode上测试过了,for loop中都可以 2. \ No newline at end of file From 3cb72711ca4df7ce13072b0766b47187240a9c41 Mon Sep 17 00:00:00 2001 From: Ella2le <1071444737@qq.com> Date: Sat, 24 Oct 2020 21:39:11 +0800 Subject: [PATCH 05/21] finish week1 homework --- .idea/leetcode/editor.xml | 17 ++ week01/2sum.cpp | 18 ++ week01/3sum.cpp | 2 +- week01/CMakeLists.txt | 5 +- week01/NOTE.md | 117 +++++++++--- .../CMakeFiles/Makefile.cmake | 2 +- week01/cmake-build-debug/CMakeFiles/Makefile2 | 32 ++-- .../CMakeFiles/TargetDirectories.txt | 2 +- .../CXX.includecache | 14 ++ .../DependInfo.cmake | 20 +++ .../design_circular_deque.dir/build.make | 98 ++++++++++ .../cmake_clean.cmake | 10 ++ .../design_circular_deque.dir/depend.internal | 5 + .../design_circular_deque.dir/depend.make | 5 + .../design_circular_deque.cpp.o | Bin 0 -> 115760 bytes .../design_circular_deque.dir/flags.make | 10 ++ .../design_circular_deque.dir/link.txt | 1 + .../design_circular_deque.dir/progress.make | 3 + .../rotate-array.dir/CXX.includecache | 14 ++ .../rotate-array.dir/DependInfo.cmake | 20 +++ .../CMakeFiles/rotate-array.dir/build.make | 98 ++++++++++ .../rotate-array.dir/cmake_clean.cmake | 10 ++ .../rotate-array.dir/depend.internal | 5 + .../CMakeFiles/rotate-array.dir/depend.make | 5 + .../CMakeFiles/rotate-array.dir/flags.make | 10 ++ .../CMakeFiles/rotate-array.dir/link.txt | 1 + .../CMakeFiles/rotate-array.dir/progress.make | 3 + .../rotate-array.dir/rotate-array.cpp.o | Bin 0 -> 113312 bytes .../trapping_rain_water.dir/CXX.includecache | 16 ++ .../trapping_rain_water.dir/DependInfo.cmake | 20 +++ .../trapping_rain_water.dir/build.make | 98 ++++++++++ .../trapping_rain_water.dir/cmake_clean.cmake | 10 ++ .../trapping_rain_water.dir/depend.internal | 5 + .../trapping_rain_water.dir/depend.make | 5 + .../trapping_rain_water.dir/flags.make | 10 ++ .../trapping_rain_water.dir/link.txt | 1 + .../trapping_rain_water.dir/progress.make | 3 + .../trapping_rain_water.cpp.o | Bin 0 -> 99832 bytes week01/cmake-build-debug/Makefile | 52 +++--- .../cmake-build-debug/design_circular_deque | Bin 0 -> 75368 bytes week01/cmake-build-debug/rotate-array | Bin 0 -> 71032 bytes week01/cmake-build-debug/trapping_rain_water | Bin 0 -> 66304 bytes week01/cmake-build-debug/week01.cbp | 16 +- week01/compare_Queue_PriorityQueue.cpp | 168 ++++++++++++++++++ week01/design_circular_deque.cpp | 111 ++++++++++++ week01/lc-283_movezeros.py | 6 - week01/lc-watercontainer.js | 0 week01/merge_two_sorted_linkedlist.cpp | 108 +++++++++++ .../{lc-283_move-zeros.cpp => move-zeros.cpp} | 0 .../remove-duplicates-from-sorted-array.cpp | 21 +++ week01/reverseLinkedList_recurse.cpp | 52 ++++++ week01/rotate-array.cpp | 144 +++++++++++++++ week01/studyDeque.cpp | 37 ++++ week01/studyQuene.cpp | 32 ++++ week01/studyStack.cpp | 37 ++++ week01/swapPairs.cpp | 67 +++++++ week01/trapping_rain_water.cpp | 166 +++++++++++++++++ ...-waterContainer.cpp => waterContainer.cpp} | 2 +- 58 files changed, 1627 insertions(+), 87 deletions(-) create mode 100644 .idea/leetcode/editor.xml create mode 100644 week01/2sum.cpp create mode 100644 week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/CXX.includecache create mode 100644 week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/DependInfo.cmake create mode 100644 week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/build.make create mode 100644 week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/cmake_clean.cmake create mode 100644 week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/depend.internal create mode 100644 week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/depend.make create mode 100644 week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/design_circular_deque.cpp.o create mode 100644 week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/flags.make create mode 100644 week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/link.txt create mode 100644 week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/progress.make create mode 100644 week01/cmake-build-debug/CMakeFiles/rotate-array.dir/CXX.includecache create mode 100644 week01/cmake-build-debug/CMakeFiles/rotate-array.dir/DependInfo.cmake create mode 100644 week01/cmake-build-debug/CMakeFiles/rotate-array.dir/build.make create mode 100644 week01/cmake-build-debug/CMakeFiles/rotate-array.dir/cmake_clean.cmake create mode 100644 week01/cmake-build-debug/CMakeFiles/rotate-array.dir/depend.internal create mode 100644 week01/cmake-build-debug/CMakeFiles/rotate-array.dir/depend.make create mode 100644 week01/cmake-build-debug/CMakeFiles/rotate-array.dir/flags.make create mode 100644 week01/cmake-build-debug/CMakeFiles/rotate-array.dir/link.txt create mode 100644 week01/cmake-build-debug/CMakeFiles/rotate-array.dir/progress.make create mode 100644 week01/cmake-build-debug/CMakeFiles/rotate-array.dir/rotate-array.cpp.o create mode 100644 week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/CXX.includecache create mode 100644 week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/DependInfo.cmake create mode 100644 week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/build.make create mode 100644 week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/cmake_clean.cmake create mode 100644 week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/depend.internal create mode 100644 week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/depend.make create mode 100644 week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/flags.make create mode 100644 week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/link.txt create mode 100644 week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/progress.make create mode 100644 week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.o create mode 100755 week01/cmake-build-debug/design_circular_deque create mode 100755 week01/cmake-build-debug/rotate-array create mode 100755 week01/cmake-build-debug/trapping_rain_water create mode 100644 week01/compare_Queue_PriorityQueue.cpp create mode 100644 week01/design_circular_deque.cpp delete mode 100644 week01/lc-283_movezeros.py delete mode 100644 week01/lc-watercontainer.js create mode 100644 week01/merge_two_sorted_linkedlist.cpp rename week01/{lc-283_move-zeros.cpp => move-zeros.cpp} (100%) create mode 100644 week01/remove-duplicates-from-sorted-array.cpp create mode 100644 week01/reverseLinkedList_recurse.cpp create mode 100644 week01/rotate-array.cpp create mode 100644 week01/studyDeque.cpp create mode 100644 week01/studyQuene.cpp create mode 100644 week01/studyStack.cpp create mode 100644 week01/swapPairs.cpp create mode 100644 week01/trapping_rain_water.cpp rename week01/{lc-waterContainer.cpp => waterContainer.cpp} (99%) diff --git a/.idea/leetcode/editor.xml b/.idea/leetcode/editor.xml new file mode 100644 index 00000000..b580d140 --- /dev/null +++ b/.idea/leetcode/editor.xml @@ -0,0 +1,17 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="LeetcodeEditor"> + <option name="projectConfig"> + <map> + <entry key="$PROJECT_DIR$/../leetcode/leetcode/editor/cn/[1]两数之和.cpp"> + <value> + <LeetcodeEditor> + <option name="path" value="$PROJECT_DIR$/../leetcode/leetcode/editor/cn/[1]两数之和.cpp" /> + <option name="questionId" value="1" /> + </LeetcodeEditor> + </value> + </entry> + </map> + </option> + </component> +</project> \ No newline at end of file diff --git a/week01/2sum.cpp b/week01/2sum.cpp new file mode 100644 index 00000000..d11ef5c1 --- /dev/null +++ b/week01/2sum.cpp @@ -0,0 +1,18 @@ +// +// Created by lewang on 10/23/20. +// + +class Solution { +public: + vector<int> twoSum(vector<int>& nums, int target) { + unordered_map<int, int> hash; + for (int i = 0; i < nums.size(); i++) { + auto it = hash.find(target - nums[i]); + if(it != hash.end()) { + return {it -> second, i}; + } + hash[nums[i]] = i; + } + return {}; + } +}; \ No newline at end of file diff --git a/week01/3sum.cpp b/week01/3sum.cpp index 05f3b88b..5c5f6033 100644 --- a/week01/3sum.cpp +++ b/week01/3sum.cpp @@ -8,7 +8,7 @@ class Solution { vector<vector<int>> threeSum(vector<int>& nums) { vector<vector<int>> res; sort(nums.begin(), nums.end()); - for(int k = 0; k < nums.size() - 2; k++){ + for(int k = 0; k < int(nums.size() - 2); k++){ if(nums[k] > 0) break; if(k > 0 && nums[k] == nums[k - 1]) continue; int i = k + 1, j = nums.size() - 1; diff --git a/week01/CMakeLists.txt b/week01/CMakeLists.txt index 4bd91eca..1f2ef352 100644 --- a/week01/CMakeLists.txt +++ b/week01/CMakeLists.txt @@ -1,8 +1,9 @@ cmake_minimum_required (VERSION 2.8.11) project (week01) - +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ) #add_executable (move_zeros lc-283_move-zeros.cpp) #target_link_libraries (move_zeros LINK_PUBLIC week01) -add_executable (plusone plusone.cpp) +add_executable (trapping_rain_water trapping_rain_water.cpp) #target_link_libraries (plusone LINK_PUBLIC week01) \ No newline at end of file diff --git a/week01/NOTE.md b/week01/NOTE.md index 40255c21..6b94c770 100644 --- a/week01/NOTE.md +++ b/week01/NOTE.md @@ -1,5 +1,5 @@ 学习笔记 -#2020.10.19 +#2020.10.19 ##数组 时间复杂度 prepend O(1) @@ -22,36 +22,48 @@ 维护成本高,每一次增删都需要更新链表 空间复杂度O(n) 升维思想+空间换时间 -##工程中的应用(拓展) +##工程中的应用(拓展) LRU Cache Linked list **HashMap+双向链表** -https://www.jianshu.com/p/b1ab4a170c3c -https://leetcode cn.com/problems/lru cache - -Redis -Skip List -https://redisbook.readthedocs.io/en/latest/internal -datastruct/skiplist.html -https://www.zhihu.com/question/20202931 +https://www.jianshu.com/p/b1ab4a170c3c +https://leetcode cn.com/problems/lru cache + +Redis +Skip List +https://redisbook.readthedocs.io/en/latest/internaldatastruct/skiplist.html +https://www.zhihu.com/question/20202931 面试时不太会考,以看资料理解为主 比如 1)LRU cache 用的啥,巴拉巴拉 -2)Redis 用的是啥 +2)Redis 用的是啥 -**-------------------------------------------** -#实战练习 +**-------------------------------------------** +#实战练习 **五毒神掌** -##Array +##Array 1. 3sum 排序+双指针 时间复杂度 O(n<sup>2</sup>) 空间复杂度 + +时间复杂度:O(n<sup>2</sup>), +数组排序 O(nlog<sup>n</sup>), +遍历数组 O(n), +双指针遍历 O(n), +总体 +空间复杂度:O(1) + +暴力解法   +哈希表+嵌套循环   +面试的时候简述上面的两种方法,说清楚时间复杂度.载给出最优解 + + 2. plusone -**要考虑清楚问题,弄懂数据的各个不同小问题** +**要考虑清楚问题,弄懂数据的各个不同小问题** 如果+1<10 不用进位 如果是9,则会=10,需要进位 如果都是9则还需要在首位多一位1,ex: 999+1=1000 @@ -65,7 +77,7 @@ https://www.zhihu.com/question/20202931 for(int i = 0; i < nums.size()-1; i++) 就是i在和一个非常大的数对比,导致越界. 正确的做法是 -for(int i=0; i < int(nums.size() -1 ); i++) +for(int i=0; i < int(nums.size() -1 ); i++) 4. climbstair 斐波那契数列 @@ -75,24 +87,79 @@ f(n) = f(n-1) + f(n-2) 变型问题:不能连续两次走2不 f(n) = f(n-1) + f(n-3) -6. move zeros +5. move zeros index + for loop 时间复杂度 O(n<sup>2</sup>) 空间复杂度 要检查输入 -执行代码的时候尝试输入一下特殊的数字 +执行代码的时候尝试输入一下特殊的数字 + +6. 2sum +hash表 iterator的使用 +it-> second +   + +##Linked List +思路比较固定,需要多多联系,熟能生巧,面试前再着重过一遍 +1. reverse linked lists +**a.迭代** +时间复杂度O(n) +空间复杂度O(1) +**b.递归** +时间复杂度O(n) +空间复杂度O(1) + +2. swap-nodes-in-pairs +**a.迭代** +时间复杂度O(n) +空间复杂度O(1) +**b.递归** +时间复杂度O(n) +空间复杂度O(1) + +3. linked-list-cycle + +4. linked-list-cycle-ii + +5. reverse-nodes-in-k-group + +##Stack 栈 + +##Quene 队列 && Deque 双端队列 +类似于滑动窗口的题目通常都是用Deque + + + -#一些疑问 -1. 循环中使用++i和i++有没有区别 -关于i++和++i是先返回再计算还是先计算再返回部分已经理解; -++i可以作为左值也可以理解; -就是好奇,**++i*** 和 **i++**在 +#Homework + +##第三课 +1. remove-duplicates-from-sorted-array √ +2. rotate-array √ +3. merge-two-sorted-lists √ +4. merge-sorted-array +5. two-sum √ +6. move-zeros √ +7. plus-one √ + +##第四课 +1. design-circular-deque √ +2. trapping-rain-water √ + + + + +#一些疑问 +1. 循环中使用++i和i++有没有区别 +关于i++和++i是先返回再计算还是先计算再返回部分已经理解; +++i可以作为左值也可以理解; +就是好奇,**++i** 和 **i++** 在 for ( int i, i < n, i++) for ( int i, i < n, ++i) 有没有区别? -在leetcode上测试过了,for loop中都可以 +在leetcode上测试过了,for loop中都可以 -2. \ No newline at end of file + diff --git a/week01/cmake-build-debug/CMakeFiles/Makefile.cmake b/week01/cmake-build-debug/CMakeFiles/Makefile.cmake index c69daeb0..f2998421 100644 --- a/week01/cmake-build-debug/CMakeFiles/Makefile.cmake +++ b/week01/cmake-build-debug/CMakeFiles/Makefile.cmake @@ -46,5 +46,5 @@ set(CMAKE_MAKEFILE_PRODUCTS # Dependency information for all targets: set(CMAKE_DEPEND_INFO_FILES - "CMakeFiles/plusone.dir/DependInfo.cmake" + "CMakeFiles/trapping_rain_water.dir/DependInfo.cmake" ) diff --git a/week01/cmake-build-debug/CMakeFiles/Makefile2 b/week01/cmake-build-debug/CMakeFiles/Makefile2 index 2803d85a..8cf209e7 100644 --- a/week01/cmake-build-debug/CMakeFiles/Makefile2 +++ b/week01/cmake-build-debug/CMakeFiles/Makefile2 @@ -65,39 +65,39 @@ CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week01 CMAKE_BINARY_DIR = /home/lewang/algorithm018/week01/cmake-build-debug #============================================================================= -# Target rules for target CMakeFiles/plusone.dir +# Target rules for target CMakeFiles/trapping_rain_water.dir # All Build rule for target. -CMakeFiles/plusone.dir/all: - $(MAKE) -f CMakeFiles/plusone.dir/build.make CMakeFiles/plusone.dir/depend - $(MAKE) -f CMakeFiles/plusone.dir/build.make CMakeFiles/plusone.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target plusone" -.PHONY : CMakeFiles/plusone.dir/all +CMakeFiles/trapping_rain_water.dir/all: + $(MAKE) -f CMakeFiles/trapping_rain_water.dir/build.make CMakeFiles/trapping_rain_water.dir/depend + $(MAKE) -f CMakeFiles/trapping_rain_water.dir/build.make CMakeFiles/trapping_rain_water.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target trapping_rain_water" +.PHONY : CMakeFiles/trapping_rain_water.dir/all # Include target in all. -all: CMakeFiles/plusone.dir/all +all: CMakeFiles/trapping_rain_water.dir/all .PHONY : all # Build rule for subdir invocation for target. -CMakeFiles/plusone.dir/rule: cmake_check_build_system +CMakeFiles/trapping_rain_water.dir/rule: cmake_check_build_system $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles 2 - $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/plusone.dir/all + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/trapping_rain_water.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles 0 -.PHONY : CMakeFiles/plusone.dir/rule +.PHONY : CMakeFiles/trapping_rain_water.dir/rule # Convenience name for target. -plusone: CMakeFiles/plusone.dir/rule +trapping_rain_water: CMakeFiles/trapping_rain_water.dir/rule -.PHONY : plusone +.PHONY : trapping_rain_water # clean rule for target. -CMakeFiles/plusone.dir/clean: - $(MAKE) -f CMakeFiles/plusone.dir/build.make CMakeFiles/plusone.dir/clean -.PHONY : CMakeFiles/plusone.dir/clean +CMakeFiles/trapping_rain_water.dir/clean: + $(MAKE) -f CMakeFiles/trapping_rain_water.dir/build.make CMakeFiles/trapping_rain_water.dir/clean +.PHONY : CMakeFiles/trapping_rain_water.dir/clean # clean rule for target. -clean: CMakeFiles/plusone.dir/clean +clean: CMakeFiles/trapping_rain_water.dir/clean .PHONY : clean diff --git a/week01/cmake-build-debug/CMakeFiles/TargetDirectories.txt b/week01/cmake-build-debug/CMakeFiles/TargetDirectories.txt index 3b672675..b5b2cd9d 100644 --- a/week01/cmake-build-debug/CMakeFiles/TargetDirectories.txt +++ b/week01/cmake-build-debug/CMakeFiles/TargetDirectories.txt @@ -1,3 +1,3 @@ /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/rebuild_cache.dir -/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/plusone.dir +/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/edit_cache.dir diff --git a/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/CXX.includecache b/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/CXX.includecache new file mode 100644 index 00000000..ffb5c83e --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/CXX.includecache @@ -0,0 +1,14 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week01/design_circular_deque.cpp +iostream +- +vector +- + diff --git a/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/DependInfo.cmake b/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/DependInfo.cmake new file mode 100644 index 00000000..82f0ec09 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week01/design_circular_deque.cpp" "/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/design_circular_deque.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/build.make b/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/build.make new file mode 100644 index 00000000..8602f6b0 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week01 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week01/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/design_circular_deque.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/design_circular_deque.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/design_circular_deque.dir/flags.make + +CMakeFiles/design_circular_deque.dir/design_circular_deque.cpp.o: CMakeFiles/design_circular_deque.dir/flags.make +CMakeFiles/design_circular_deque.dir/design_circular_deque.cpp.o: ../design_circular_deque.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/design_circular_deque.dir/design_circular_deque.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/design_circular_deque.dir/design_circular_deque.cpp.o -c /home/lewang/algorithm018/week01/design_circular_deque.cpp + +CMakeFiles/design_circular_deque.dir/design_circular_deque.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/design_circular_deque.dir/design_circular_deque.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week01/design_circular_deque.cpp > CMakeFiles/design_circular_deque.dir/design_circular_deque.cpp.i + +CMakeFiles/design_circular_deque.dir/design_circular_deque.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/design_circular_deque.dir/design_circular_deque.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week01/design_circular_deque.cpp -o CMakeFiles/design_circular_deque.dir/design_circular_deque.cpp.s + +# Object files for target design_circular_deque +design_circular_deque_OBJECTS = \ +"CMakeFiles/design_circular_deque.dir/design_circular_deque.cpp.o" + +# External object files for target design_circular_deque +design_circular_deque_EXTERNAL_OBJECTS = + +design_circular_deque: CMakeFiles/design_circular_deque.dir/design_circular_deque.cpp.o +design_circular_deque: CMakeFiles/design_circular_deque.dir/build.make +design_circular_deque: CMakeFiles/design_circular_deque.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable design_circular_deque" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/design_circular_deque.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/design_circular_deque.dir/build: design_circular_deque + +.PHONY : CMakeFiles/design_circular_deque.dir/build + +CMakeFiles/design_circular_deque.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/design_circular_deque.dir/cmake_clean.cmake +.PHONY : CMakeFiles/design_circular_deque.dir/clean + +CMakeFiles/design_circular_deque.dir/depend: + cd /home/lewang/algorithm018/week01/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week01 /home/lewang/algorithm018/week01 /home/lewang/algorithm018/week01/cmake-build-debug /home/lewang/algorithm018/week01/cmake-build-debug /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/design_circular_deque.dir/depend + diff --git a/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/cmake_clean.cmake b/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/cmake_clean.cmake new file mode 100644 index 00000000..4f07953b --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/design_circular_deque.dir/design_circular_deque.cpp.o" + "design_circular_deque.pdb" + "design_circular_deque" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/design_circular_deque.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/depend.internal b/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/depend.internal new file mode 100644 index 00000000..8a682dad --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/design_circular_deque.dir/design_circular_deque.cpp.o + /home/lewang/algorithm018/week01/design_circular_deque.cpp diff --git a/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/depend.make b/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/depend.make new file mode 100644 index 00000000..7addf180 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/design_circular_deque.dir/design_circular_deque.cpp.o: ../design_circular_deque.cpp + diff --git a/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/design_circular_deque.cpp.o b/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/design_circular_deque.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..1d4701e2dc7c45a28f79fd3b7fdedaed30d67d82 GIT binary patch literal 115760 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%0AkyAdx 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 bH+gQi8JZ&AOU3hDrsO_?$U7>}LZSZ!E|og@ literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/flags.make b/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/link.txt b/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/link.txt new file mode 100644 index 00000000..4433acfb --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/design_circular_deque.dir/design_circular_deque.cpp.o -o design_circular_deque diff --git a/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/progress.make b/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/design_circular_deque.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/CXX.includecache b/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/CXX.includecache new file mode 100644 index 00000000..d7a59f8d --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/CXX.includecache @@ -0,0 +1,14 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week01/rotate-array.cpp +iostream +- +vector +- + diff --git a/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/DependInfo.cmake b/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/DependInfo.cmake new file mode 100644 index 00000000..450102ed --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week01/rotate-array.cpp" "/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/rotate-array.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/build.make b/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/build.make new file mode 100644 index 00000000..e260b855 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week01 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week01/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/rotate-array.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/rotate-array.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/rotate-array.dir/flags.make + +CMakeFiles/rotate-array.dir/rotate-array.cpp.o: CMakeFiles/rotate-array.dir/flags.make +CMakeFiles/rotate-array.dir/rotate-array.cpp.o: ../rotate-array.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/rotate-array.dir/rotate-array.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/rotate-array.dir/rotate-array.cpp.o -c /home/lewang/algorithm018/week01/rotate-array.cpp + +CMakeFiles/rotate-array.dir/rotate-array.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/rotate-array.dir/rotate-array.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week01/rotate-array.cpp > CMakeFiles/rotate-array.dir/rotate-array.cpp.i + +CMakeFiles/rotate-array.dir/rotate-array.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/rotate-array.dir/rotate-array.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week01/rotate-array.cpp -o CMakeFiles/rotate-array.dir/rotate-array.cpp.s + +# Object files for target rotate-array +rotate__array_OBJECTS = \ +"CMakeFiles/rotate-array.dir/rotate-array.cpp.o" + +# External object files for target rotate-array +rotate__array_EXTERNAL_OBJECTS = + +rotate-array: CMakeFiles/rotate-array.dir/rotate-array.cpp.o +rotate-array: CMakeFiles/rotate-array.dir/build.make +rotate-array: CMakeFiles/rotate-array.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable rotate-array" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/rotate-array.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/rotate-array.dir/build: rotate-array + +.PHONY : CMakeFiles/rotate-array.dir/build + +CMakeFiles/rotate-array.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/rotate-array.dir/cmake_clean.cmake +.PHONY : CMakeFiles/rotate-array.dir/clean + +CMakeFiles/rotate-array.dir/depend: + cd /home/lewang/algorithm018/week01/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week01 /home/lewang/algorithm018/week01 /home/lewang/algorithm018/week01/cmake-build-debug /home/lewang/algorithm018/week01/cmake-build-debug /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/rotate-array.dir/depend + diff --git a/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/cmake_clean.cmake b/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/cmake_clean.cmake new file mode 100644 index 00000000..1e477a27 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/rotate-array.dir/rotate-array.cpp.o" + "rotate-array.pdb" + "rotate-array" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/rotate-array.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/depend.internal b/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/depend.internal new file mode 100644 index 00000000..cc3b78ed --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/rotate-array.dir/rotate-array.cpp.o + /home/lewang/algorithm018/week01/rotate-array.cpp diff --git a/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/depend.make b/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/depend.make new file mode 100644 index 00000000..cda11f24 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/rotate-array.dir/rotate-array.cpp.o: ../rotate-array.cpp + diff --git a/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/flags.make b/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/link.txt b/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/link.txt new file mode 100644 index 00000000..78fb2c44 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/rotate-array.dir/rotate-array.cpp.o -o rotate-array diff --git a/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/progress.make b/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/rotate-array.cpp.o b/week01/cmake-build-debug/CMakeFiles/rotate-array.dir/rotate-array.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..8c9ec872b9e957de508c80fe055a15a5cfc1e8a3 GIT binary patch literal 113312 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 literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/CXX.includecache b/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/CXX.includecache new file mode 100644 index 00000000..e8fb1530 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/CXX.includecache @@ -0,0 +1,16 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week01/trapping_rain_water.cpp +iostream +- +vector +- +stack +- + diff --git a/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/DependInfo.cmake b/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/DependInfo.cmake new file mode 100644 index 00000000..25877046 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week01/trapping_rain_water.cpp" "/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/build.make b/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/build.make new file mode 100644 index 00000000..e72ff84a --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week01 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week01/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/trapping_rain_water.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/trapping_rain_water.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/trapping_rain_water.dir/flags.make + +CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.o: CMakeFiles/trapping_rain_water.dir/flags.make +CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.o: ../trapping_rain_water.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.o -c /home/lewang/algorithm018/week01/trapping_rain_water.cpp + +CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week01/trapping_rain_water.cpp > CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.i + +CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week01/trapping_rain_water.cpp -o CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.s + +# Object files for target trapping_rain_water +trapping_rain_water_OBJECTS = \ +"CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.o" + +# External object files for target trapping_rain_water +trapping_rain_water_EXTERNAL_OBJECTS = + +trapping_rain_water: CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.o +trapping_rain_water: CMakeFiles/trapping_rain_water.dir/build.make +trapping_rain_water: CMakeFiles/trapping_rain_water.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable trapping_rain_water" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/trapping_rain_water.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/trapping_rain_water.dir/build: trapping_rain_water + +.PHONY : CMakeFiles/trapping_rain_water.dir/build + +CMakeFiles/trapping_rain_water.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/trapping_rain_water.dir/cmake_clean.cmake +.PHONY : CMakeFiles/trapping_rain_water.dir/clean + +CMakeFiles/trapping_rain_water.dir/depend: + cd /home/lewang/algorithm018/week01/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week01 /home/lewang/algorithm018/week01 /home/lewang/algorithm018/week01/cmake-build-debug /home/lewang/algorithm018/week01/cmake-build-debug /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/trapping_rain_water.dir/depend + diff --git a/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/cmake_clean.cmake b/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/cmake_clean.cmake new file mode 100644 index 00000000..b0a2f67a --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.o" + "trapping_rain_water.pdb" + "trapping_rain_water" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/trapping_rain_water.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/depend.internal b/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/depend.internal new file mode 100644 index 00000000..19e8d040 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.o + /home/lewang/algorithm018/week01/trapping_rain_water.cpp diff --git a/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/depend.make b/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/depend.make new file mode 100644 index 00000000..6ff622b6 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.o: ../trapping_rain_water.cpp + diff --git a/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/flags.make b/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/link.txt b/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/link.txt new file mode 100644 index 00000000..cc401ac5 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.o -o trapping_rain_water diff --git a/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/progress.make b/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.o b/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..57d63196ff8aa6ccae6c5bd11dba292c9ec7bf83 GIT binary patch literal 99832 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 literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/Makefile b/week01/cmake-build-debug/Makefile index 2d76782f..3fee4761 100644 --- a/week01/cmake-build-debug/Makefile +++ b/week01/cmake-build-debug/Makefile @@ -111,44 +111,44 @@ depend: .PHONY : depend #============================================================================= -# Target rules for targets named plusone +# Target rules for targets named trapping_rain_water # Build rule for target. -plusone: cmake_check_build_system - $(MAKE) -f CMakeFiles/Makefile2 plusone -.PHONY : plusone +trapping_rain_water: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 trapping_rain_water +.PHONY : trapping_rain_water # fast build rule for target. -plusone/fast: - $(MAKE) -f CMakeFiles/plusone.dir/build.make CMakeFiles/plusone.dir/build -.PHONY : plusone/fast +trapping_rain_water/fast: + $(MAKE) -f CMakeFiles/trapping_rain_water.dir/build.make CMakeFiles/trapping_rain_water.dir/build +.PHONY : trapping_rain_water/fast -plusone.o: plusone.cpp.o +trapping_rain_water.o: trapping_rain_water.cpp.o -.PHONY : plusone.o +.PHONY : trapping_rain_water.o # target to build an object file -plusone.cpp.o: - $(MAKE) -f CMakeFiles/plusone.dir/build.make CMakeFiles/plusone.dir/plusone.cpp.o -.PHONY : plusone.cpp.o +trapping_rain_water.cpp.o: + $(MAKE) -f CMakeFiles/trapping_rain_water.dir/build.make CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.o +.PHONY : trapping_rain_water.cpp.o -plusone.i: plusone.cpp.i +trapping_rain_water.i: trapping_rain_water.cpp.i -.PHONY : plusone.i +.PHONY : trapping_rain_water.i # target to preprocess a source file -plusone.cpp.i: - $(MAKE) -f CMakeFiles/plusone.dir/build.make CMakeFiles/plusone.dir/plusone.cpp.i -.PHONY : plusone.cpp.i +trapping_rain_water.cpp.i: + $(MAKE) -f CMakeFiles/trapping_rain_water.dir/build.make CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.i +.PHONY : trapping_rain_water.cpp.i -plusone.s: plusone.cpp.s +trapping_rain_water.s: trapping_rain_water.cpp.s -.PHONY : plusone.s +.PHONY : trapping_rain_water.s # target to generate assembly for a file -plusone.cpp.s: - $(MAKE) -f CMakeFiles/plusone.dir/build.make CMakeFiles/plusone.dir/plusone.cpp.s -.PHONY : plusone.cpp.s +trapping_rain_water.cpp.s: + $(MAKE) -f CMakeFiles/trapping_rain_water.dir/build.make CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.s +.PHONY : trapping_rain_water.cpp.s # Help Target help: @@ -157,11 +157,11 @@ help: @echo "... clean" @echo "... depend" @echo "... rebuild_cache" - @echo "... plusone" + @echo "... trapping_rain_water" @echo "... edit_cache" - @echo "... plusone.o" - @echo "... plusone.i" - @echo "... plusone.s" + @echo "... trapping_rain_water.o" + @echo "... trapping_rain_water.i" + @echo "... trapping_rain_water.s" .PHONY : help diff --git a/week01/cmake-build-debug/design_circular_deque b/week01/cmake-build-debug/design_circular_deque new file mode 100755 index 0000000000000000000000000000000000000000..6254f534e0bb83159e6cc6b513259f5c6ca4cc0f GIT binary patch literal 75368 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 literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/rotate-array b/week01/cmake-build-debug/rotate-array new file mode 100755 index 0000000000000000000000000000000000000000..5dc1e2a81fd0befee1ab4d604bd759cba435c3d5 GIT binary patch literal 71032 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 literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/trapping_rain_water b/week01/cmake-build-debug/trapping_rain_water new file mode 100755 index 0000000000000000000000000000000000000000..afe4f69dc712dd1098808b002859474cc3651c51 GIT binary patch literal 66304 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 Y^a){#-!FQ`6#soPu#g%NLv-u@3$^*IV*mgE literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/week01.cbp b/week01/cmake-build-debug/week01.cbp index 34fc8a4a..548b1fbc 100644 --- a/week01/cmake-build-debug/week01.cbp +++ b/week01/cmake-build-debug/week01.cbp @@ -27,8 +27,8 @@ <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> </MakeCommands> </Target> - <Target title="plusone"> - <Option output="/home/lewang/algorithm018/week01/cmake-build-debug/plusone" prefix_auto="0" extension_auto="0"/> + <Target title="trapping_rain_water"> + <Option output="/home/lewang/algorithm018/week01/cmake-build-debug/trapping_rain_water" prefix_auto="0" extension_auto="0"/> <Option working_dir="/home/lewang/algorithm018/week01/cmake-build-debug"/> <Option object_output="./"/> <Option type="1"/> @@ -44,14 +44,14 @@ <Add directory="/usr/include"/> </Compiler> <MakeCommands> - <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 plusone"/> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 trapping_rain_water"/> <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> </MakeCommands> </Target> - <Target title="plusone/fast"> - <Option output="/home/lewang/algorithm018/week01/cmake-build-debug/plusone" prefix_auto="0" extension_auto="0"/> + <Target title="trapping_rain_water/fast"> + <Option output="/home/lewang/algorithm018/week01/cmake-build-debug/trapping_rain_water" prefix_auto="0" extension_auto="0"/> <Option working_dir="/home/lewang/algorithm018/week01/cmake-build-debug"/> <Option object_output="./"/> <Option type="1"/> @@ -67,7 +67,7 @@ <Add directory="/usr/include"/> </Compiler> <MakeCommands> - <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 plusone/fast"/> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 trapping_rain_water/fast"/> <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> @@ -84,8 +84,8 @@ </MakeCommands> </Target> </Build> - <Unit filename="/home/lewang/algorithm018/week01/plusone.cpp"> - <Option target="plusone"/> + <Unit filename="/home/lewang/algorithm018/week01/trapping_rain_water.cpp"> + <Option target="trapping_rain_water"/> </Unit> <Unit filename="/home/lewang/algorithm018/week01/CMakeLists.txt"> <Option virtualFolder="CMake Files\"/> diff --git a/week01/compare_Queue_PriorityQueue.cpp b/week01/compare_Queue_PriorityQueue.cpp new file mode 100644 index 00000000..2b8b19a9 --- /dev/null +++ b/week01/compare_Queue_PriorityQueue.cpp @@ -0,0 +1,168 @@ +priority_queue 默认的Container 是vector 多了一个Compare的类 +quene 默认的Container 是Deque + + +Synopsis +#include <compare> +#include <initializer_list> + +namespace std { + template<class T, class Container = deque<T>> class queue; + + template<class T, class Container> + bool operator==(const queue<T, Container>& x, const queue<T, Container>& y); + template<class T, class Container> + bool operator!=(const queue<T, Container>& x, const queue<T, Container>& y); + template<class T, class Container> + bool operator< (const queue<T, Container>& x, const queue<T, Container>& y); + template<class T, class Container> + bool operator> (const queue<T, Container>& x, const queue<T, Container>& y); + template<class T, class Container> + bool operator<=(const queue<T, Container>& x, const queue<T, Container>& y); + template<class T, class Container> + bool operator>=(const queue<T, Container>& x, const queue<T, Container>& y); + template<class T, three_way_comparable Container> + compare_three_way_result_t<Container> + operator<=>(const queue<T, Container>& x, const queue<T, Container>& y); + + template<class T, class Container> + void swap(queue<T, Container>& x, queue<T, Container>& y) + noexcept(noexcept(x.swap(y))); + template<class T, class Container, class Alloc> + struct uses_allocator<queue<T, Container>, Alloc>; + + template<class T, class Container = vector<T>, + class Compare = less<typename Container::value_type>> + class priority_queue; + + template<class T, class Container, class Compare> + void swap(priority_queue<T, Container, Compare>& x, + priority_queue<T, Container, Compare>& y) noexcept(noexcept(x.swap(y))); + template<class T, class Container, class Compare, class Alloc> + struct uses_allocator<priority_queue<T, Container, Compare>, Alloc>; +} +Class template std::queue +namespace std { + template<class T, class Container = deque<T>> + class queue { + public: + using value_type = typename Container::value_type; + using reference = typename Container::reference; + using const_reference = typename Container::const_reference; + using size_type = typename Container::size_type; + using container_type = Container; + + protected: + Container c; + + public: + queue() : queue(Container()) {} + explicit queue(const Container&); + explicit queue(Container&&); + template<class Alloc> explicit queue(const Alloc&); + template<class Alloc> queue(const Container&, const Alloc&); + template<class Alloc> queue(Container&&, const Alloc&); + template<class Alloc> queue(const queue&, const Alloc&); + template<class Alloc> queue(queue&&, const Alloc&); + + [[nodiscard]] bool empty() const { return c.empty(); } + size_type size() const { return c.size(); } + reference front() { return c.front(); } + const_reference front() const { return c.front(); } + reference back() { return c.back(); } + const_reference back() const { return c.back(); } + void push(const value_type& x) { c.push_back(x); } + void push(value_type&& x) { c.push_back(std::move(x)); } + template<class... Args> + decltype(auto) emplace(Args&&... args) + { return c.emplace_back(std::forward<Args>(args)...); } + void pop() { c.pop_front(); } + void swap(queue& q) noexcept(is_nothrow_swappable_v<Container>) + { using std::swap; swap(c, q.c); } + }; + + template<class Container> + queue(Container) -> queue<typename Container::value_type, Container>; + + template<class Container, class Allocator> + queue(Container, Allocator) -> queue<typename Container::value_type, Container>; + + template<class T, class Container> + void swap(queue<T, Container>& x, queue<T, Container>& y) + noexcept(noexcept(x.swap(y))); + + template<class T, class Container, class Alloc> + struct uses_allocator<queue<T, Container>, Alloc> + : uses_allocator<Container, Alloc>::type { }; +} +Class template std::priority_queue +namespace std { + template<class T, class Container = vector<T>, + class Compare = less<typename Container::value_type>> + class priority_queue { + public: + using value_type = typename Container::value_type; + using reference = typename Container::reference; + using const_reference = typename Container::const_reference; + using size_type = typename Container::size_type; + using container_type = Container; + using value_compare = Compare; + + protected: + Container c; + Compare comp; + + public: + priority_queue() : priority_queue(Compare()) {} + explicit priority_queue(const Compare& x) : priority_queue(x, Container()) {} + priority_queue(const Compare& x, const Container&); + priority_queue(const Compare& x, Container&&); + template<class InputIt> + priority_queue(InputIt first, InputIt last, const Compare& x, + const Container&); + template<class InputIt> + priority_queue(InputIt first, InputIt last, + const Compare& x = Compare(), Container&& = Container()); + template<class Alloc> explicit priority_queue(const Alloc&); + template<class Alloc> priority_queue(const Compare&, const Alloc&); + template<class Alloc> priority_queue(const Compare&, const Container&, const Alloc&); + template<class Alloc> priority_queue(const Compare&, Container&&, const Alloc&); + template<class Alloc> priority_queue(const priority_queue&, const Alloc&); + template<class Alloc> priority_queue(priority_queue&&, const Alloc&); + + [[nodiscard]] bool empty() const { return c.empty(); } + size_type size() const { return c.size(); } + const_reference top() const { return c.front(); } + void push(const value_type& x); + void push(value_type&& x); + template<class... Args> void emplace(Args&&... args); + void pop(); + void swap(priority_queue& q) noexcept(is_nothrow_swappable_v<Container> && + is_nothrow_swappable_v<Compare>) + { using std::swap; swap(c, q.c); swap(comp, q.comp); } + }; + + template<class Compare, class Container> + priority_queue(Compare, Container) + -> priority_queue<typename Container::value_type, Container, Compare>; + + template<class InputIt, + class Compare = less<typename iterator_traits<InputIt>::value_type>, + class Container = vector<typename iterator_traits<InputIt>::value_type>> + priority_queue(InputIt, InputIt, Compare = Compare(), Container = Container()) + -> priority_queue<typename iterator_traits<InputIt>::value_type, Container, Compare>; + + template<class Compare, class Container, class Allocator> + priority_queue(Compare, Container, Allocator) + -> priority_queue<typename Container::value_type, Container, Compare>; + + // no equality is provided + + template<class T, class Container, class Compare> + void swap(priority_queue<T, Container, Compare>& x, + priority_queue<T, Container, Compare>& y) noexcept(noexcept(x.swap(y))); + + template<class T, class Container, class Compare, class Alloc> + struct uses_allocator<priority_queue<T, Container, Compare>, Alloc> + : uses_allocator<Container, Alloc>::type { }; +} \ No newline at end of file diff --git a/week01/design_circular_deque.cpp b/week01/design_circular_deque.cpp new file mode 100644 index 00000000..c89c0143 --- /dev/null +++ b/week01/design_circular_deque.cpp @@ -0,0 +1,111 @@ +// +// Created by lewang on 10/24/20. +// +#include <iostream> +#include <vector> +using namespace std; +//leetcode submit region begin(Prohibit modification and deletion) +class MyCircularDeque { +private: + vector<int> arr; + int front; + int rear; + int capacity; + +public: + /** Initialize your data structure here. Set the size of the deque to be k. */ + MyCircularDeque(int k) { + capacity = k + 1; + arr.assign(capacity,0); + + front = 0; + rear = 0; + } + + /** Adds an item at the front of Deque. Return true if the operation is successful. */ + bool insertFront(int value) { + if( isFull() ) { + return false; + } + front = ( front -1 + capacity) % capacity; + arr[front] = value; + return true; + } + + /** Adds an item at the rear of Deque. Return true if the operation is successful. */ + bool insertLast(int value) { + if(isFull()){ + return false; + } + rear = (rear +1) % capacity; + arr[rear] = value; + return true; + } + + + /** Deletes an item from the front of Deque. Return true if the operation is successful. */ + bool deleteFront() { + if(isEmpty()){ + return false; + } + front = (front + 1) % capacity; + return true; + } + + /** Deletes an item from the rear of Deque. Return true if the operation is successful. */ + bool deleteLast() { + if (isEmpty()) { + return false; + } + rear = (rear - 1 + capacity)% capacity; + return true; + } + + /** Get the front item from the deque. */ + int getFront() { + if (isEmpty()) { + return -1; + } + return arr[front]; + } + + + /** Get the last item from the deque. */ + int getRear() { + if(isEmpty()){ + return -1; + } + return arr[(rear -1 + capacity) % capacity]; + } + + /** Checks whether the circular deque is empty or not. */ + bool isEmpty() { + return front == rear; + } + + /** Checks whether the circular deque is full or not. */ + bool isFull() { + return (rear + 1) % capacity == front; + } +}; + + +int main(){ + MyCircularDeque cdq(10); + for(int i=0; i<4; i++){ + cdq.insertFront(i); + } + for(int j=10;j>8;j--){ + cdq.insertLast(j); + } + for(int k=0 ; k<4; k++) { + cout<<cdq.getFront()<<","; + cdq.deleteFront(); + } + cout<<endl; + + cout<<cdq.getRear()<<endl; + + + return 0; +} \ No newline at end of file diff --git a/week01/lc-283_movezeros.py b/week01/lc-283_movezeros.py deleted file mode 100644 index f739b727..00000000 --- a/week01/lc-283_movezeros.py +++ /dev/null @@ -1,6 +0,0 @@ -class Solution: - def moveZeros(self, nums, List(int)) -> None: - for i in nums[i]: - if i==0: - nums.append(0) - nums.remove(0) diff --git a/week01/lc-watercontainer.js b/week01/lc-watercontainer.js deleted file mode 100644 index e69de29b..00000000 diff --git a/week01/merge_two_sorted_linkedlist.cpp b/week01/merge_two_sorted_linkedlist.cpp new file mode 100644 index 00000000..f09b3a8f --- /dev/null +++ b/week01/merge_two_sorted_linkedlist.cpp @@ -0,0 +1,108 @@ +// +// Created by lewang on 10/23/20. +// + +//my violent solution + +class Solution { +public: + ListNode* mergeTwoLists(ListNode* l1, ListNode* l2) { + + ListNode* res; + while(l1 != nullptr || l2!= nullptr){ + ListNode* l1Temp = l1; + ListNode* l2Temp = l2; + + if(l1Temp >= l2Temp ){ + res=l1; + ListNode* temp1; + if(l1Temp->next != nullptr) { + temp1 = l1Temp->next; + l1Temp = temp1; + } + }else { + res=l2Temp; + ListNode* temp2; + if(l1Temp->next != nullptr) { + temp2 = l2Temp->next; + l1Temp = temp2; + } + } + + } + return res; + } +//}; +//7:31 PM info +//Compile Error: +//Time Limit Exceeded +// Your input:[1,2,4] +//[1,3,4] +//stdout: +// + +//官方暴力解法 +class Solution { +public: + ListNode* mergeTwoLists(ListNode* l1,ListNode* l2 ){ + ListNode dummy = ListNode(-1); + ListNode* prev = &dummy; + while(l1 != nullptr && l2 != nullptr){ + if(l1->val < l2 ->val){ + prev->next = l1; + l1 = l1->next; + } else { + prev->next = l2; + l2 = l2->next; + } + prev = prev->next; + } + prev->next = l1 == nullptr ?l2:l1; + + return dummy.next; + } +}; +//time O(n+m) +//sapce O1) +//7:50 PM info +//Success: +//Runtime:8 ms, faster than 86.89% of C++ online submissions. +//Memory Usage:14.7 MB, less than 6.91% of C++ online submissions. + + +//学习条件运算符的写法 Exp1? Expe2 :Expe3 +//prev->next = l1 == nullptr ?l2:l1; +// 等价于 +// if (l1 == nullptr) { +// prev->next = l2; +// }else prev->next = l1; +// +// return dummy.next; +// 8:02 PM info +// Success: +// Runtime:12 ms, faster than 57.31% of C++ online submissions. +// Memory Usage:14.7 MB, less than 8.93% of C++ online submissions +// 8:03 PM info +// Success: +// Runtime:8 ms, faster than 86.89% of C++ online submissions. +// Memory Usage:14.7 MB, less than 8.16% of C++ online submissions. + +//递归 +class Solution { +public: + ListNode* mergeTwoLists(ListNode* l1,ListNode* l2 ){ + if (l1 == nullptr){ + return l2; + }else if (l2 == nullptr){ + return l1; + }else if(l1->val < l2->val){ + l1->next = mergeTwoLists(l1->next, l2); + return l1; + } else { + l2->next = mergeTwoLists(l1, l2->next); + return l2; + } + } +}; +//time O(n+m) +//space O(n+m) \ No newline at end of file diff --git a/week01/lc-283_move-zeros.cpp b/week01/move-zeros.cpp similarity index 100% rename from week01/lc-283_move-zeros.cpp rename to week01/move-zeros.cpp diff --git a/week01/remove-duplicates-from-sorted-array.cpp b/week01/remove-duplicates-from-sorted-array.cpp new file mode 100644 index 00000000..4c5c352d --- /dev/null +++ b/week01/remove-duplicates-from-sorted-array.cpp @@ -0,0 +1,21 @@ +// +// Created by lewang on 10/23/20. +// + +class Solution { +public: + int removeDuplicates(vector<int>& nums) { + if(nums.size()<1){ + return nums.size(); + } + int j = 0; + for(int i = 1; i <nums.size();++i){ +// int temp = nums[i]; + if(nums[i] != nums[j] ){ + j++; + nums[j]=nums[i]; + } + } + return j+1; + } +}; \ No newline at end of file diff --git a/week01/reverseLinkedList_recurse.cpp b/week01/reverseLinkedList_recurse.cpp new file mode 100644 index 00000000..7404916a --- /dev/null +++ b/week01/reverseLinkedList_recurse.cpp @@ -0,0 +1,52 @@ +// +// Created by lewang on 10/22/20. +// +//反转一个单链表。 +// +// 示例: +// +// 输入: 1->2->3->4->5->NULL +//输出: 5->4->3->2->1->NULL +// +// 进阶: +//你可以迭代或递归地反转链表。你能否用两种方法解决这道题? + +//递归 +class Solution { +public: + ListNode* reverseList(ListNode* head) { + if (head == nullptr || head->next == nullptr) { + return head; + } + ListNode* res = reverseList(head->next); + head->next->next = head; + head->next = nullptr; //要注意heda最后必须手动指向空指针,不然链表中可能会产生循环,如果使用的链表的大小是2的话,就会捕捉到此错误 + return res; + } +}; +//10:06 PM info +//Success: +//Runtime:8 ms, faster than 95.52% of C++ online submissions. +//Memory Usage:8.6 MB, less than 6.97% of C++ online submissions. + + +//迭代 +class Solution { +public: + ListNode* reverseList(ListNode* head) { + ListNode* prev = nullptr; + ListNode* curr = head; + while (curr != nullptr) { + ListNode* nextTemp = curr-> next; + curr->next = prev; + prev = curr; + curr = nextTemp; + } + return prev; + } +}; +//10:09 PM info +//Success: +//Runtime:8 ms, faster than 95.52% of C++ online submissions. +//Memory Usage:8.5 MB, less than 12.74% of C++ online submissions. + diff --git a/week01/rotate-array.cpp b/week01/rotate-array.cpp new file mode 100644 index 00000000..ad6677dc --- /dev/null +++ b/week01/rotate-array.cpp @@ -0,0 +1,144 @@ +// +// Created by lewang on 10/23/20. +// + +//1.暴力解法 +//class Solution { +//public: +// void rotate(vector<int>& nums, int k) { +// if(k == 0 || nums.size() == 0) return ; +// int kk= k % (nums.size()); +// vector<int> temp(nums.end() - kk, nums.end()); +// nums.erase(nums.end()-kk,nums.end()); +// for(int j=temp.size()-1; j >= 0;j--){ +// nums.emplace(nums.begin(),temp[j]); +// } +// +// } +//}; +////}; +//1:44 PM info +//Success: +//Runtime:264 ms, faster than 5.43% of C++ online submissions. +//Memory Usage:10.1 MB, less than 5.16% of C++ online submissions. +//2.三次反转 +//class Solution { +//public: +//// template <class BidirectionIteration> +//// void reverse (BidirectionIteration first, BidirectionIteration last){ +//// while ((first != last )&& (first != --last)){ +//// std::iter_swap(first,last); +//// ++first; +//// } +//// } +// void rotate(vector<int>& nums, int k) { +// if( nums.size() == 0 || k==0) return; +// reverse(nums.begin(),nums.end()); +// reverse(nums.begin(),nums.begin()+k%nums.size()); +// reverse(nums.begin()+k%nums.size(),nums.end()); +// } +//};// +//2:08 PM info +//Success: +//Runtime:8 ms, faster than 86.45% of C++ online submissions. +//Memory Usage:9.8 MB, less than 30.77% of C++ online submissions. +//3.环装替代 +//class Solution { +//public: +// +// void rotate(vector<int>& nums, int k) { +// int len = nums.size(); +// if(len == 0 || k == 0 || len == k ) return; +// k = k%len; +// int count = 0; +// for (int start = 0 ;count < len; start++){ +// int cur = start; +// int pre = nums[cur]; +// do{ +// int next = (cur+k) % len; +// int temp = nums[next]; +// //iter_swap(nums.begin()+cur-1,nums.begin()+next-1); +// nums[next] = pre; +// pre = temp; +// cur =next; +// count ++; +// }while(start != cur); +// } +// } +//}; +// +//2:43 PM info +//Success: +//Runtime:4 ms, faster than 98.98% of C++ online submissions. +//Memory Usage:10.1 MB, less than 5.16% of C++ online submissions. +#include <iostream> +#include <vector> +using namespace std; +//class Solution { +//public: +// void rotate(vector<int>& nums, int k) { +// int kk= k % (nums.size()); +// if(nums.size() == k || k == 0 || kk == 0) +// auto it = nums.end(); +// +// vector<int> temp ( nums.end() - kk -1, nums.end()); +// //for (auto&& i:nums) cout<<i<<","; +// nums.emplace(nums.begin(),temp); +// nums.erase(nums.end()-kk,nums.end()); +// //return nums; +// } +//}; +template <class BidirectionIteration> + void reverse (BidirectionIteration first, BidirectionIteration last){ + while ((first != last )&& (first != --last)){ + std::iter_swap(first,last); + ++first; + } + } + +int main(){ + vector<int> nums {1,2,3,4,5,6,7}; + cout<< "nums: "; + for(auto i:nums) cout<<i<<","; + cout << endl; + int k = 3; + + + + + reverse(nums.begin(),nums.end()); + reverse(nums.begin(),nums.begin()+k%nums.size()); + reverse(nums.begin()+k%nums.size(),nums.end()); +// +// int kk= k % (nums.size()); +// vector<int> temp ( nums.end() - kk, nums.end()); +// +// cout<< "temp: "; +// for (auto k:temp) cout<<k<<","; +// cout<<endl; +// +// +// nums.erase(nums.end()-kk,nums.end()); +// for(int j=temp.size()-1; j >= 0;j--){ +// nums.emplace(nums.begin(),temp[j]); +// } +//// for (auto j:temp) nums.emplace(nums.begin(),j); +//// for (auto j:temp) { +//// //int t = temp.back(); +//// temp.emplace(temp.end(), j); +//// +//// } +//// for (auto k:temp) cout<<k<<","; +//// cout<<endl; +// //nums.emplace(nums.begin(),5); + + cout<<"After rotation: "; + for(auto i:nums) cout<<i<<","; + cout << endl; + + //Solution test; + // test.rotate(nums,k); + //for(auto i:nums) cout<<i<<","; + return 0; +} + diff --git a/week01/studyDeque.cpp b/week01/studyDeque.cpp new file mode 100644 index 00000000..5baa9e18 --- /dev/null +++ b/week01/studyDeque.cpp @@ -0,0 +1,37 @@ +// +// Created by lewang on 10/23/20. +// +//定义 +std::deque<int> dq; +std::deque<int> dp(8);//创建一个有8个元素的int型的双端队列,默认初始化value都为0 +std::deque<int> dp(8,50);//创建一个有8个元素的int型双端队列,初始化value为50 +std::deque<int> dp(dp1.begin(), dp1.end())//通过迭代器创建队列 +std::deque<int> dp(dp1)//通过拷贝构造创建 + +//增加元素的操作 +dp.push_back(1); +dp.push_front(2); +dp.emplace(dp.begin(),8);//在队列的指定位置插入位置 +dp.emplace_back(9); +dp.emplace_front(); + + + + +for (int i=1; i<6, i++){ + dp.push_back(i);//1,2,3,4,5 +} + +std::deque<int>::iterator it = dp.begin(); +++it; +dp.insert(it,10)//在队列某一元素前插入一个元素 +//在位置1 前插入一个10, dp 变成1,10,2,3,4,5 + +dp.insert(it,2,20)// +//在位置1前插入2个20, dp 变成1,20,20,10,2,3,4,5 + +it=dp.begin()+2; +std::vector<int> myvector (2,30); +mydeque.insert (it, myvector.begin(),myvector.end()); +//在位置2前插入两个30, dp 变成1, 20, 30,30, 20,10,2,3,4,5 + diff --git a/week01/studyQuene.cpp b/week01/studyQuene.cpp new file mode 100644 index 00000000..72195dae --- /dev/null +++ b/week01/studyQuene.cpp @@ -0,0 +1,32 @@ +// +// Created by lewang on 10/23/20. +// + +//quene +//定义 +std::quene<std::string> words; +//使用拷贝构造函数 +std::quene<std::string> copyWords {words}; +//quenek<T>的底层容器默认是deque<T> 容器, 因此模板类型其实是,stack<typename T, typename Container=deque<T> +//通过制定第二个模板类型参数可以使用任意类型的底层容易,只要它们支持back(), push_back(), pop_back(),empty(),size()等操作 +std::quene<std::string, std::list<std::string>> newWords; +// +//front():返回 queue 中第一个元素的引用。如果 queue 是常量,就返回一个常引用;如果 queue 为空,返回值是未定义的。 +//back():返回 queue 中最后一个元素的引用。如果 queue 是常量,就返回一个常引用;如果 queue 为空,返回值是未定义的。 +//push(const T& obj):在 queue 的尾部添加一个元素的副本。这是通过调用底层容器的成员函数 push_back() 来完成的。 +//push(T&& obj):以移动的方式在 queue 的尾部添加元素。这是通过调用底层容器的具有右值引用参数的成员函数 push_back() 来完成的。 +//pop():删除 queue 中的第一个元素。 +//size():返回 queue 中元素的个数。 +//empty():如果 queue 中没有元素的话,返回 true。 +//emplace():用传给 emplace() 的参数调用 T 的构造函数,在 queue 的尾部生成对象。 +//swap(queue<T> &other_q):将当前 queue 中的元素和参数 queue 中的元素交换。它们需要包含相同类型的元素。也可以调用全局函数模板 swap() 来完成同样的操作。 + + +//priority_quene +//和队列基本一样的操作 top(),empty(), size(), push(), emplace(), pop(), swap +//升序队列 +std::priority_queue <int, std::vector<int>, std::greater<int>> upq; +//降序队列 +std::priority_queue <int, std::vector<int>, std::less<int>> downq; + + diff --git a/week01/studyStack.cpp b/week01/studyStack.cpp new file mode 100644 index 00000000..e859dbca --- /dev/null +++ b/week01/studyStack.cpp @@ -0,0 +1,37 @@ +// +// Created by lewang on 10/23/20. +// + +#include <iostream> +#include <string> + +//define a stack +std::stack<std::string> words; + +//stack容器适配器 +//第一个参数是储存对象的类型,第二个参数是底层容器的类型. +//Stack<T>的底层容器默认是deque<T> 容器, 因此模板类型其实是,stack<typename T, typename Container=deque<T> +//通过制定第二个模板类型参数可以使用任意类型的底层容易,只要它们支持back(), push_back(), pop_back(),empty(),size()等操作 +std::stack<std::string,std::list<std::string>> strContainer; + + +//创建堆栈时不能在初始化列表中用对象来初始化,但是可以用另一个容器来初始化,只要堆栈的底层容器是相同的 +std::list<double> value {1.2,75,3,5}; +std::stack<double,stack::list<double >> myStack(value); +//第二条语句生成了一个包含value的元素副本,myStack. 这里不能在stack够着函数中使用初始化列表,必须使用圆括号, +// 如果没有第二个stack模板类型参数将底层容指定为list,那么会使用默认的底层容器deque,这样就不能用list的内容来初始化stack. + +//stack<T>定义了拷贝构造函数,因此可以直接复制现有的stack容器 +std::stack<double,std::list<double>>copy_stack {myStack}; +//这里可以使用初始化列表{},也可以使用()进行复制 + +//堆栈相关操作 +myStack.top(); +myStack.push(23.33); +myStack.pop(); +myStack.size(); +myStack.empty(); +myStack.emplace(9);//用传入的参数调用构造函数,在栈顶生成对象,此时myStack变成 {1.2,75,3,5,9} +std::list<double> value2 {1,70000,300,400}; +std::stack<double,std::list<double>> myStack2(value2); +myStack.swap(myStack2); diff --git a/week01/swapPairs.cpp b/week01/swapPairs.cpp new file mode 100644 index 00000000..76b463fc --- /dev/null +++ b/week01/swapPairs.cpp @@ -0,0 +1,67 @@ +// +// Created by lewang on 10/22/20. +// +//递归 +class Solution{ +public: + ListNode* swapPair(ListNode* head) { + if (head == nullptr || head->next == nullptr) { + return head; + } + ListNode* newHead = head->next; + head->next = swapPair(newHead->next); + newHead->next =head; + return newHead; + } +}; +//9:59 PM info +//Success: +//Runtime:0 ms, faster than 100.00% of C++ online submissions. +//Memory Usage:7.6 MB, less than 19.47% of C++ online submissions. + + +//迭代 +class Solution { +public: + ListNode* swapPairs(ListNode* head) { + ListNode* dummyHead = new ListNode(0); + dummyHead->next = head; + ListNode* temp = dummyHead; + while(temp->next != nullptr && temp->next->next != nullptr){ + ListNode* node1 = temp->next; + ListNode* node2 = temp->next->next; + temp->next = node2; + node1->next = node2->next; + node2->next = node1; + temp = node1; + } + return dummyHead->next; + } +}; +//9:55 PM info +//Success: +//Runtime:4 ms, faster than 67.60% of C++ online submissions. +//Memory Usage:7.8 MB, less than 5.20% of C++ online submissions. + +class Solution { +public: + ListNode* swapPair(ListNode* head) { + ListNode* temp = head; + while(temp->next != nullptr && temp->next-next != nullptr){ + ListNode* node1 = temp->next; + ListNode* node2 = temp->next->next; + temp->next = node2; + node1->next = node2->next; + node2->next = node1; + temp = node1; + } + return head;//这里return head 不对 + + } +}; +//9:54 PM info +//Wrong Answer: +//input:[1,2,3,4] +//Output:[1,3,2,4] +//Expected:[2,1,4,3] +//stdout: diff --git a/week01/trapping_rain_water.cpp b/week01/trapping_rain_water.cpp new file mode 100644 index 00000000..e6eaf023 --- /dev/null +++ b/week01/trapping_rain_water.cpp @@ -0,0 +1,166 @@ +// +// Created by lewang on 10/24/20. +// + +//按行来求 +//但是在[2,0,2]测试的时候出错了 +//class Solution { +//public: +// int trap(vector<int>& height) { +// int sum = 0; +// int max = getMax(height); +// for (int i = 0; i < max ; ++i) { +// bool isStart = false; +// int temp_sum = 0; +// for (int j = 0; j < height.size();j++) { +// if (isStart && height[j] < i) { +// temp_sum++; +// } +// if (height[j] >= i) { +// sum = sum + temp_sum; +// temp_sum = 0; +// isStart = true; +// } +// } +// } +// return sum; +// } +// +//private: +// int getMax(vector<int>& height) { +// int max = 0; +// for (int i = 0; i < height.size(); ++i) { +// if (height[i] > max) { +// max = height[i]; +// } +// } +// return max; +// } +//}; + +//暴力法,和上面的差不多,时间复杂度都是O(n^2) +//class Solution { +//public: +// int trap(vector<int>& height) { +// int ans = 0; +// int size = height.size(); +// for (int i =1; i < size -1; i++) { +// int max_left = 0, max_right = 0; +// for (int j= i ; j >= 0; j--) { +// max_left = max(max_left,height[j]); +// } +// for (int j = i; j < size; j++) { +// max_right = max(max_right, height[j]); +// } +// ans += min(max_left, max_right) - height[i]; +// } +// return ans; +// } +//}; +//8:00 PM info +//Compile Error: +//Time Limit Exceeded + +//动态编程 +//时间复杂度O(n) +//空间复杂度O(n) +//Success: +//Runtime:32 ms, faster than 5.79% of C++ online submissions. +//Memory Usage:14.3 MB, less than 5.02% of C++ online submissions. +#include <iostream> +#include <vector> +#include <stack> + +using namespace std; + +class Solution { +public: + int trap(vector<int>& height) { + + int ans = 0; + + int size = height.size(); + cout<<"size: " <<size<<endl; + if(size == 0) return 0; + vector<int> leaf_max(size), right_max(size); + leaf_max[0] = height[0]; + for (int i = 1; i < size; ++i) { + leaf_max[i] = max(height[i], leaf_max[i-1]); + cout << leaf_max[i] << ","; + } + cout << endl; + + right_max[size - 1] = height[size - 1]; + for(int i = size -2; i >= 0; i--) { + right_max[i] = max(height[i], right_max[i+1]); + cout << right_max[i] << ","; + } + cout << endl; + for (int i = 1; i < size-1; i++) { + ans += min(leaf_max[i], right_max[i]) - height[i]; + cout<< ans << ","; + } + cout<<endl; + return ans; + } + //栈的应用 + //时间复杂度O(n) + //空间复杂度O(n) + //8:53 PM info + //Success: + //Runtime:16 ms, faster than 9.46% of C++ online submissions. + //Memory Usage:14.5 MB, less than 5.02% of C++ online submissions. + // + int trap2(vector<int>& height) { + int ans = 0, current = 0; + stack<int> st; + while (current < height.size()) { + while (!st.empty() && height[current] > height[st.top()]) { + int top =st.top(); + st.pop(); + if (st.empty()) + break; + int distance = current - st.top() - 1; + int bounded_height = min(height[current], height[st.top()]) - height[top]; + ans += distance * bounded_height; + } + st.push(current++); + } + return ans; + } + //使用双指针 + //时间复杂度O(n) + //空间复杂度O(1) +// +// Success: +// Runtime:8 ms, faster than 57.56% of C++ online submissions. +// Memory Usage:14.3 MB, less than 5.02% of C++ online submissions. + int trap3(vector<int>& height) { + int left = 0, right = height.size() - 1; + int ans = 0; + int left_max = 0, right_max = 0; + while (left < right) { + if(height[left] < height[right]) { + height[left] >= left_max ? (left_max = height[left]) : ans += (left_max - height[left]); + ++left; + } + else { + height[right] >= right_max ? (right_max = height[right]) : ans += (right_max - height[right]); + --right; + } + } + return ans; + } +}; + + + + + +int main() { + vector<int> height = {0,1,0,2,1,0,1,3,2,1,2,1}; + Solution test; + int water = test.trap3(height); + cout << water <<endl; + return 0; +} \ No newline at end of file diff --git a/week01/lc-waterContainer.cpp b/week01/waterContainer.cpp similarity index 99% rename from week01/lc-waterContainer.cpp rename to week01/waterContainer.cpp index d7a947fc..33166d9e 100644 --- a/week01/lc-waterContainer.cpp +++ b/week01/waterContainer.cpp @@ -31,7 +31,7 @@ class Solution{ //, 在所有 C++ 提交中击败了 //5.01% //的用户 -//------------------------------------------------------------------------ +//--------------------------------------------------------------i---------- class Solution { public: From f2f02b2b379c722288418e591ad7d1afd206f2a3 Mon Sep 17 00:00:00 2001 From: Ella2le <1071444737@qq.com> Date: Sun, 25 Oct 2020 20:36:56 +0800 Subject: [PATCH 06/21] do preview --- .idea/markdown-navigator.xml | 91 ++++++++++++++ week01/40_Find_Ksmallest_nums.cpp | 47 +++++++ week01/CMakeLists.txt | 2 +- week01/binary_tree.md | 35 ++++++ week01/binary_tree_inorder_travelsal.cpp | 119 ++++++++++++++++++ week01/bulls_and_cow.cpp | 95 ++++++++++++++ .../cmake-build-debug/40_Find_Ksmallest_nums | Bin 0 -> 124840 bytes .../40_Find_Ksmallest_nums.cpp.o | Bin 0 -> 210832 bytes .../CXX.includecache | 16 +++ .../DependInfo.cmake | 20 +++ .../40_Find_Ksmallest_nums.dir/build.make | 98 +++++++++++++++ .../cmake_clean.cmake | 10 ++ .../depend.internal | 5 + .../40_Find_Ksmallest_nums.dir/depend.make | 5 + .../40_Find_Ksmallest_nums.dir/flags.make | 10 ++ .../40_Find_Ksmallest_nums.dir/link.txt | 1 + .../40_Find_Ksmallest_nums.dir/progress.make | 3 + .../CMakeFiles/Makefile.cmake | 2 +- week01/cmake-build-debug/CMakeFiles/Makefile2 | 32 ++--- .../CMakeFiles/TargetDirectories.txt | 2 +- .../bulls_and_cow.dir/CXX.includecache | 16 +++ .../bulls_and_cow.dir/DependInfo.cmake | 20 +++ .../CMakeFiles/bulls_and_cow.dir/build.make | 98 +++++++++++++++ .../bulls_and_cow.dir/bulls_and_cow.cpp.o | Bin 0 -> 153504 bytes .../bulls_and_cow.dir/cmake_clean.cmake | 10 ++ .../bulls_and_cow.dir/depend.internal | 5 + .../CMakeFiles/bulls_and_cow.dir/depend.make | 5 + .../CMakeFiles/bulls_and_cow.dir/flags.make | 10 ++ .../CMakeFiles/bulls_and_cow.dir/link.txt | 1 + .../bulls_and_cow.dir/progress.make | 3 + .../valid_anagram.dir/CXX.includecache | 16 +++ .../valid_anagram.dir/DependInfo.cmake | 20 +++ .../CMakeFiles/valid_anagram.dir/build.make | 98 +++++++++++++++ .../valid_anagram.dir/cmake_clean.cmake | 10 ++ .../valid_anagram.dir/depend.internal | 5 + .../CMakeFiles/valid_anagram.dir/depend.make | 5 + .../CMakeFiles/valid_anagram.dir/flags.make | 10 ++ .../CMakeFiles/valid_anagram.dir/link.txt | 1 + .../valid_anagram.dir/progress.make | 3 + .../valid_anagram.dir/valid_anagram.cpp.o | Bin 0 -> 130568 bytes week01/cmake-build-debug/Makefile | 52 ++++---- week01/cmake-build-debug/bulls_and_cow | Bin 0 -> 107040 bytes week01/cmake-build-debug/valid_anagram | Bin 0 -> 89896 bytes week01/cmake-build-debug/week01.cbp | 16 +-- week01/valid_anagram.cpp | 55 ++++++++ 45 files changed, 999 insertions(+), 53 deletions(-) create mode 100644 .idea/markdown-navigator.xml create mode 100644 week01/40_Find_Ksmallest_nums.cpp create mode 100644 week01/binary_tree.md create mode 100644 week01/binary_tree_inorder_travelsal.cpp create mode 100644 week01/bulls_and_cow.cpp create mode 100755 week01/cmake-build-debug/40_Find_Ksmallest_nums create mode 100644 week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o create mode 100644 week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/CXX.includecache create mode 100644 week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/DependInfo.cmake create mode 100644 week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/build.make create mode 100644 week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/cmake_clean.cmake create mode 100644 week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/depend.internal create mode 100644 week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/depend.make create mode 100644 week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/flags.make create mode 100644 week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/link.txt create mode 100644 week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/progress.make create mode 100644 week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/CXX.includecache create mode 100644 week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/DependInfo.cmake create mode 100644 week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/build.make create mode 100644 week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/bulls_and_cow.cpp.o create mode 100644 week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/cmake_clean.cmake create mode 100644 week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/depend.internal create mode 100644 week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/depend.make create mode 100644 week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/flags.make create mode 100644 week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/link.txt create mode 100644 week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/progress.make create mode 100644 week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/CXX.includecache create mode 100644 week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/DependInfo.cmake create mode 100644 week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/build.make create mode 100644 week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/cmake_clean.cmake create mode 100644 week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/depend.internal create mode 100644 week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/depend.make create mode 100644 week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/flags.make create mode 100644 week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/link.txt create mode 100644 week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/progress.make create mode 100644 week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o create mode 100755 week01/cmake-build-debug/bulls_and_cow create mode 100755 week01/cmake-build-debug/valid_anagram create mode 100644 week01/valid_anagram.cpp diff --git a/.idea/markdown-navigator.xml b/.idea/markdown-navigator.xml new file mode 100644 index 00000000..79a45289 --- /dev/null +++ b/.idea/markdown-navigator.xml @@ -0,0 +1,91 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="MarkdownProjectSettings" wasCopied="false"> + <PreviewSettings splitEditorLayout="SPLIT" splitEditorPreview="PREVIEW" useGrayscaleRendering="false" zoomFactor="1.25" maxImageWidth="0" showGitHubPageIfSynced="false" allowBrowsingInPreview="false" synchronizePreviewPosition="true" highlightPreviewType="NONE" highlightFadeOut="5" highlightOnTyping="true" synchronizeSourcePosition="true" verticallyAlignSourceAndPreviewSyncPosition="true" showSearchHighlightsInPreview="false" showSelectionInPreview="true" openRemoteLinks="true" replaceUnicodeEmoji="false" lastLayoutSetsDefault="false"> + <PanelProvider> + <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.panel" providerName="Default - Swing" /> + </PanelProvider> + </PreviewSettings> + <ParserSettings gitHubSyntaxChange="false" emojiShortcuts="1" emojiImages="0"> + <PegdownExtensions> + <option name="ABBREVIATIONS" value="false" /> + <option name="ANCHORLINKS" value="true" /> + <option name="ASIDE" value="false" /> + <option name="ATXHEADERSPACE" value="true" /> + <option name="AUTOLINKS" value="false" /> + <option name="DEFINITIONS" value="false" /> + <option name="DEFINITION_BREAK_DOUBLE_BLANK_LINE" value="false" /> + <option name="FENCED_CODE_BLOCKS" value="true" /> + <option name="FOOTNOTES" value="false" /> + <option name="HARDWRAPS" value="false" /> + <option name="HTML_DEEP_PARSER" value="false" /> + <option name="INSERTED" value="false" /> + <option name="QUOTES" value="false" /> + <option name="RELAXEDHRULES" value="true" /> + <option name="SMARTS" value="false" /> + <option name="STRIKETHROUGH" value="true" /> + <option name="SUBSCRIPT" value="false" /> + <option name="SUPERSCRIPT" value="false" /> + <option name="SUPPRESS_HTML_BLOCKS" value="false" /> + <option name="SUPPRESS_INLINE_HTML" value="false" /> + <option name="TABLES" value="true" /> + <option name="TASKLISTITEMS" value="true" /> + <option name="TOC" value="false" /> + <option name="WIKILINKS" value="false" /> + </PegdownExtensions> + <ParserOptions> + <option name="ADMONITION_EXT" value="false" /> + <option name="ATTRIBUTES_EXT" value="false" /> + <option name="COMMONMARK_LISTS" value="true" /> + <option name="DUMMY" value="false" /> + <option name="EMOJI_SHORTCUTS" value="true" /> + <option name="ENUMERATED_REFERENCES_EXT" value="false" /> + <option name="FLEXMARK_FRONT_MATTER" value="false" /> + <option name="GFM_LOOSE_BLANK_LINE_AFTER_ITEM_PARA" value="false" /> + <option name="GFM_TABLE_RENDERING" value="true" /> + <option name="GITBOOK_URL_ENCODING" value="false" /> + <option name="GITHUB_LISTS" value="false" /> + <option name="GITHUB_WIKI_LINKS" value="false" /> + <option name="GITLAB_EXT" value="false" /> + <option name="GITLAB_MATH_EXT" value="false" /> + <option name="GITLAB_MERMAID_EXT" value="false" /> + <option name="HEADER_ID_NON_ASCII_TO_LOWERCASE" value="false" /> + <option name="HEADER_ID_NO_DUPED_DASHES" value="false" /> + <option name="JEKYLL_FRONT_MATTER" value="false" /> + <option name="MACROS_EXT" value="false" /> + <option name="NO_TEXT_ATTRIBUTES" value="false" /> + <option name="PARSE_HTML_ANCHOR_ID" value="false" /> + <option name="PLANTUML_FENCED_CODE" value="false" /> + <option name="PUML_FENCED_CODE" value="false" /> + <option name="SIM_TOC_BLANK_LINE_SPACER" value="true" /> + </ParserOptions> + </ParserSettings> + <HtmlSettings headerTopEnabled="false" headerBottomEnabled="true" bodyTopEnabled="false" bodyBottomEnabled="false" embedUrlContent="false" addPageHeader="true" embedImages="false" embedHttpImages="false" imageUriSerials="false" addDocTypeHtml="true" noParaTags="false" plantUmlConversion="0" mathConversion="-1"> + <GeneratorProvider> + <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.generator" providerName="Default Swing HTML Generator" /> + </GeneratorProvider> + <headerTop /> + <headerBottom><script type = "text/x-mathjax-config"> + MathJax.Hub.Config({text2jax: {inlineMath: [['$', '$'], ['\\(','\\)']]}}); +</script> +<script type = "text/javascript" + src = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MNL-AM_CHTML"> +</script></headerBottom> + <bodyTop /> + <bodyBottom /> + </HtmlSettings> + <CssSettings previewScheme="UI_SCHEME" cssUri="" isCssUriEnabled="false" isCssUriSerial="true" isCssTextEnabled="false" isDynamicPageWidth="true"> + <StylesheetProvider> + <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.css" providerName="Default Swing Stylesheet" /> + </StylesheetProvider> + <ScriptProviders /> + <cssText /> + <cssUriHistory /> + </CssSettings> + <AnnotatorSettings targetHasSpaces="true" linkCaseMismatch="true" wikiCaseMismatch="true" wikiLinkHasDashes="true" notUnderWikiHome="true" targetNotWikiPageExt="true" notUnderSourceWikiHome="true" targetNameHasAnchor="true" targetPathHasAnchor="true" wikiLinkHasSlash="true" wikiLinkHasSubdir="true" wikiLinkHasOnlyAnchor="true" linkTargetsWikiHasExt="true" linkTargetsWikiHasBadExt="true" notUnderSameRepo="true" targetNotUnderVcs="false" linkNeedsExt="true" linkHasBadExt="true" linkTargetNeedsExt="true" linkTargetHasBadExt="true" wikiLinkNotInWiki="true" imageTargetNotInRaw="true" repoRelativeAcrossVcsRoots="true" multipleWikiTargetsMatch="true" unresolvedLinkReference="true" linkIsIgnored="true" anchorIsIgnored="true" anchorIsUnresolved="true" anchorLineReferenceIsUnresolved="true" anchorLineReferenceFormat="true" anchorHasDuplicates="true" abbreviationDuplicates="true" abbreviationNotUsed="true" attributeIdDuplicateDefinition="true" attributeIdNotUsed="true" footnoteDuplicateDefinition="true" footnoteUnresolved="true" footnoteDuplicates="true" footnoteNotUsed="true" macroDuplicateDefinition="true" macroUnresolved="true" macroDuplicates="true" macroNotUsed="true" referenceDuplicateDefinition="true" referenceUnresolved="true" referenceDuplicates="true" referenceNotUsed="true" referenceUnresolvedNumericId="true" enumRefDuplicateDefinition="true" enumRefUnresolved="true" enumRefDuplicates="true" enumRefNotUsed="true" enumRefLinkUnresolved="true" enumRefLinkDuplicates="true" simTocUpdateNeeded="true" simTocTitleSpaceNeeded="true" /> + <HtmlExportSettings updateOnSave="false" parentDir="" targetDir="" cssDir="css" scriptDir="js" plainHtml="false" imageDir="" copyLinkedImages="false" imageUniquifyType="0" targetPathType="2" targetExt="" useTargetExt="false" noCssNoScripts="false" useElementStyleAttribute="false" linkToExportedHtml="true" exportOnSettingsChange="true" regenerateOnProjectOpen="false" linkFormatType="HTTP_ABSOLUTE" /> + <LinkMapSettings> + <textMaps /> + </LinkMapSettings> + </component> +</project> \ No newline at end of file diff --git a/week01/40_Find_Ksmallest_nums.cpp b/week01/40_Find_Ksmallest_nums.cpp new file mode 100644 index 00000000..a160fb97 --- /dev/null +++ b/week01/40_Find_Ksmallest_nums.cpp @@ -0,0 +1,47 @@ +// +// Created by lewang on 10/25/20. +// +#include <iostream> +#include <vector> +#include <algorithm> + +using namespace std; + +class Solution { +public: + //先排序,再依次输出最小的几个 + vector<int> getLeastNumbers(vector<int>& arr, int k) { + int length = arr.size(); + vector<int> res; + int curr = arr[0]; + sort(arr.begin(),arr.end()); + for (int i = 0; i < k; ++i) { + //int temp = min(arr); + int out = arr[i]; + res.push_back(out); + } + return res; + } + //Runtime:88 ms, faster than 59.50% of C++ online submissions. + //Memory Usage:18.9 MB, less than 50.67% of C++ online submissions. + + //---------------------------------------------------------------------- + //堆 + + + //快排思想 + +}; + +int main(){ + vector<int> arr = {1,5,4,3,2,0}; + + vector<int> res; + int k=2; + Solution test; + res = test.getLeastNumbers(arr,k); + for(auto j:res) cout<< j <<","; + cout<<endl; + + return 0; +} \ No newline at end of file diff --git a/week01/CMakeLists.txt b/week01/CMakeLists.txt index 1f2ef352..24f26351 100644 --- a/week01/CMakeLists.txt +++ b/week01/CMakeLists.txt @@ -5,5 +5,5 @@ set(CMAKE_CXX_STANDARD_REQUIRED ) #add_executable (move_zeros lc-283_move-zeros.cpp) #target_link_libraries (move_zeros LINK_PUBLIC week01) -add_executable (trapping_rain_water trapping_rain_water.cpp) +add_executable (40_Find_Ksmallest_nums 40_Find_Ksmallest_nums.cpp) #target_link_libraries (plusone LINK_PUBLIC week01) \ No newline at end of file diff --git a/week01/binary_tree.md b/week01/binary_tree.md new file mode 100644 index 00000000..b6877668 --- /dev/null +++ b/week01/binary_tree.md @@ -0,0 +1,35 @@ +#Binary Tree +二叉树 +每个节点最多只有两个分支的树结构. +通常分支分支被成为"左子树"和"右子树" +二叉树是有序树, 二叉树的分支具有左右次序, 不能随意颠倒. + +##相关术语 +1. 结点: 包含一个数据元素以及若干指向子数分支的信息 +2. 结点的度: 一个结点拥有子树的数目称为该结点的度 +3. 叶子结点: 也称终端节点, 没有子树的结点或者度为零的结点 +4. 分支结点: 也称为非终端结点,度不为零的结点为非终端结点 +5. 树的度: 树中所有结点的度的最大值 +6. 结点的层次: 从根节点开始,假设根节点为第一层,根节点的子节点为第二层以此类推, +如果某一节点位于第L层,则其子节点位于L+1层 +7. 树的深度: 也称为树的高度,树中所有结点的层次的最大值称为树的深度 +8. 有序树: 如果树中各个子树的次序是有先后次序,则称为该树是有序树 +9. 无序树: 如果树中各个子树的次序没有先后次序,则称该树为无序树 +10. 森林: 由m(m>=0)棵互不相交的树构成一片森林,如果把一棵非空的树的根节点删除, +则该树就变成一片森林,森林中的树由原来根节点的各棵子树构成 + +##一些性质 +1. 二叉树的第*i*层至多有2<sup>i-1</sup>(i <= 1)个结点 +2. 深度为h的二叉树中至多含有2<sup>h</sup>-1个节点 +3. 具有n个几点的完全二叉树深度为log<sub>2</sub><sup>x</sup>+1个结点 + +##二叉树的遍历 +- 深度遍历 + - 前序遍历: 根结点 -> 左子树 -> 右子树 + - 中序遍历: 左子树 -> 跟结点 -> 右子树 + - 后序遍历 左子树 -> 右子树 -> 根结点 +- 广度遍历: 按层次遍历(需要堆等数据结构的支撑) + + + + diff --git a/week01/binary_tree_inorder_travelsal.cpp b/week01/binary_tree_inorder_travelsal.cpp new file mode 100644 index 00000000..7c246da9 --- /dev/null +++ b/week01/binary_tree_inorder_travelsal.cpp @@ -0,0 +1,119 @@ +// +// Created by lewang on 10/25/20. +// + +#include <iostream> +#include <vector> +#include <stack> +struct TreeNode{ + int val; + TreeNode *left; + TreeNode *right; + TreeNode() : val(0), left(nullptr), right(nullptr) {} + TreeNode(int x) : val(x), left(nullptr), right(nullptr) {} + TreeNode(int x, TreeNode *left, TreeNode *right) : val(x), left(left),right(right) {} +}; + +*/ +//递归 +class Solution { +public: + void inorder(TreeNode* root, vector<int>& res) { + if (!root) { + return; + } + inorder(root->left, res); + res.push_back(root->val); + inorder(root->right, res); + } + + vector<int> inorderTraversal(TreeNode* root) { + vector<int> res; + inorder(root, res); + return res; + } +// +// Runtime:4 ms, faster than 46.42% of C++ online submissions. +// Memory Usage:8.7 MB, less than 7.75% of C++ online submissions. + + + //--------------------------------------------- + //遍历 + //显式得维护一个栈 + vector<int> inorderTraversal2(TreeNode* root) { + vector<int> res; + stack<TreeNode*> stk; + while (root != nullptr || !stk.empty()) { + while(root != nullptr) { + stk.push(root); + root = root -> left; + } + root = stk.top(); + stk.pop(); + res.push_back(root->val); + root = root -> right; + } + return res; + } +// Success: +// Runtime:0 ms, faster than 100.00% of C++ online submissions. +// Memory Usage:8.6 MB, less than 8.33% of C++ online submissions. + +//------------------------------------------------------------------------- + //Morris中序遍历 + + vector<int> inorderTraversal3(TreeNode* root) { + vector<int> res; + TreeNode *predecessor = nullptr; + + while (root != nullptr) { + if (root->left != nullptr) { + predecessor = root->left; + while(predecessor->right != nullptr && predecessor->right != root) { + predecessor = predecessor->right; + } + + if(predecessor->right == nullptr) { + predecessor->right = root; + root = root->left; + }else { + res.push_back(root->val); + predecessor->right = nullptr; + root = root->right; + } + } else { + res.push_back(root->val); + root = root->right; + } + + } + return res; + } +// Runtime:0 ms, faster than 100.00% of C++ online submissions. +// Memory Usage:8.5 MB, less than 15.76% of C++ online submissions. + + vector<int> inorderTraversal4(TreeNode* root) { + vector<int> result; + stack<pair<TreeNode*, int> > stk; + stk.push((make_pair(root, 0))); + + while(!stk.empty()) { + auto [node, type] = stk.top(); + stk.pop(); + if(node == nullptr) continue; + if(type == 0) { + stk.push(make_pair(node->right, 0)); + stk.push(make_pair(node, 1)); + stk.push(make_pair(node->left, 0)); + } + else result.emplace_back(node->val); + } + + return result; + + } + //Success: + //Runtime:0 ms, faster than 100.00% of C++ online submissions. + //Memory Usage:8.2 MB, less than 24.91% of C++ online submissions. + +}; diff --git a/week01/bulls_and_cow.cpp b/week01/bulls_and_cow.cpp new file mode 100644 index 00000000..0dd8ac4c --- /dev/null +++ b/week01/bulls_and_cow.cpp @@ -0,0 +1,95 @@ +// +// Created by lewang on 10/24/20. +// +#include <iostream> +#include <string> +#include <vector> +using namespace std; +//暴力解法 +//guess.find_first_of (secret) +//对比index +//嵌套循环 +// 时间复杂度O(n^2) +class Solution{ +public: + string getHint(string secret, string guess) { + int size = secret.size(); + int x,y; + string ans = "AB"; + cout<<"secret size" << size <<endl ; + for (int i = 0; i < (2*size -1); i++ ) { + cout<< "now" << i << endl; + if(i < size) { + string str1 = secret.substr(size - i - 1, i + 1); + string str2 = guess.substr(0, i + 1); + int str1_num, str2_num; + str1_num = stoi(str1); + str2_num = stoi(str2); + cout << str1_num << " && " << str2_num << endl; + int flag = str1_num - str2_num; + cout<<flag<<endl; + } else { + string str1 = secret.substr(0, i-size+1); + string str2 = guess.substr(i-size, i-size+1); + int str1_num, str2_num; + str1_num = stoi(str1); + str2_num = stoi(str2); + cout << str1_num << " && " << str2_num << endl; + int flag = str1_num - str2_num; + cout<<flag<<endl; + } + + + } + return ans; + } + string getHint2(string secret, string guess) { + int len = secret.size(); + vector<int> cache(10, 0); +// for(auto i:cache) cout<<i <<"," ; + int x = 0, y = 0; + for (int i = 0; i<len; i++){ + cout << "now " << i<<endl; + char cs = secret[i]; + char cg = guess[i]; + cout << "secret char: " << cs << endl; + cout << "guess char: " << cg <<endl; + + if(cs == cg){ + x++; + } else { + + cout<<cs<<endl; + cout<< cache[cs - '0']<<endl; + cout<< cs - '0'<<endl; + if(cache[cs - '0']++ < 0) { + cout<<"here y++"<<endl; + y++; + } + cout<< cg - '0'<<endl; + if(cache[cg - '0']-- > 0) { + cout<<"here y--"<<endl; + y++; + } + } + } + string res = to_string(x)+'A'+to_string(y)+'B'; + return res; + } +}; + +int main() { + Solution test; + int j=0; + cout<<j; + if(j++ < 0) cout<<j; + cout <<j; + + cout<<"\n----------\n"; + string secret = "1807"; + string guess = "7810"; + string ans; + ans= test.getHint2(secret,guess); + cout << "guess result "<<ans <<endl; + return 0; +} \ No newline at end of file diff --git a/week01/cmake-build-debug/40_Find_Ksmallest_nums b/week01/cmake-build-debug/40_Find_Ksmallest_nums new file mode 100755 index 0000000000000000000000000000000000000000..22ba440befac9a08b4a21fe5769217f8c68aaada GIT binary patch literal 124840 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 z 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 N)5PqKB#1mZ{|{C=vRnWF literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o b/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..86177971ca0b5911bc5f3939e611b8aea71d9c5f GIT binary patch literal 210832 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%0A)3%qoD(Bq{8(5x++n3zbOuInv;z0P$A)*` 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 X!rbr}e`57i{av9|yNM6rrT+f`Ka~12 literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/CXX.includecache b/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/CXX.includecache new file mode 100644 index 00000000..8ac2093f --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/CXX.includecache @@ -0,0 +1,16 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week01/40_Find_Ksmallest_nums.cpp +iostream +- +vector +- +algorithm +- + diff --git a/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/DependInfo.cmake b/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/DependInfo.cmake new file mode 100644 index 00000000..1a285fd9 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week01/40_Find_Ksmallest_nums.cpp" "/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/build.make b/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/build.make new file mode 100644 index 00000000..71e97192 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week01 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week01/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/40_Find_Ksmallest_nums.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/40_Find_Ksmallest_nums.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/40_Find_Ksmallest_nums.dir/flags.make + +CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o: CMakeFiles/40_Find_Ksmallest_nums.dir/flags.make +CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o: ../40_Find_Ksmallest_nums.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o -c /home/lewang/algorithm018/week01/40_Find_Ksmallest_nums.cpp + +CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week01/40_Find_Ksmallest_nums.cpp > CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.i + +CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week01/40_Find_Ksmallest_nums.cpp -o CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.s + +# Object files for target 40_Find_Ksmallest_nums +40_Find_Ksmallest_nums_OBJECTS = \ +"CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o" + +# External object files for target 40_Find_Ksmallest_nums +40_Find_Ksmallest_nums_EXTERNAL_OBJECTS = + +40_Find_Ksmallest_nums: CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o +40_Find_Ksmallest_nums: CMakeFiles/40_Find_Ksmallest_nums.dir/build.make +40_Find_Ksmallest_nums: CMakeFiles/40_Find_Ksmallest_nums.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 40_Find_Ksmallest_nums" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/40_Find_Ksmallest_nums.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/40_Find_Ksmallest_nums.dir/build: 40_Find_Ksmallest_nums + +.PHONY : CMakeFiles/40_Find_Ksmallest_nums.dir/build + +CMakeFiles/40_Find_Ksmallest_nums.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/40_Find_Ksmallest_nums.dir/cmake_clean.cmake +.PHONY : CMakeFiles/40_Find_Ksmallest_nums.dir/clean + +CMakeFiles/40_Find_Ksmallest_nums.dir/depend: + cd /home/lewang/algorithm018/week01/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week01 /home/lewang/algorithm018/week01 /home/lewang/algorithm018/week01/cmake-build-debug /home/lewang/algorithm018/week01/cmake-build-debug /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/40_Find_Ksmallest_nums.dir/depend + diff --git a/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/cmake_clean.cmake b/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/cmake_clean.cmake new file mode 100644 index 00000000..f30afb57 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o" + "40_Find_Ksmallest_nums.pdb" + "40_Find_Ksmallest_nums" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/40_Find_Ksmallest_nums.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/depend.internal b/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/depend.internal new file mode 100644 index 00000000..bb02292d --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o + /home/lewang/algorithm018/week01/40_Find_Ksmallest_nums.cpp diff --git a/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/depend.make b/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/depend.make new file mode 100644 index 00000000..77e54c5d --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o: ../40_Find_Ksmallest_nums.cpp + diff --git a/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/flags.make b/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/link.txt b/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/link.txt new file mode 100644 index 00000000..1c56265a --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o -o 40_Find_Ksmallest_nums diff --git a/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/progress.make b/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week01/cmake-build-debug/CMakeFiles/Makefile.cmake b/week01/cmake-build-debug/CMakeFiles/Makefile.cmake index f2998421..fcd60d16 100644 --- a/week01/cmake-build-debug/CMakeFiles/Makefile.cmake +++ b/week01/cmake-build-debug/CMakeFiles/Makefile.cmake @@ -46,5 +46,5 @@ set(CMAKE_MAKEFILE_PRODUCTS # Dependency information for all targets: set(CMAKE_DEPEND_INFO_FILES - "CMakeFiles/trapping_rain_water.dir/DependInfo.cmake" + "CMakeFiles/40_Find_Ksmallest_nums.dir/DependInfo.cmake" ) diff --git a/week01/cmake-build-debug/CMakeFiles/Makefile2 b/week01/cmake-build-debug/CMakeFiles/Makefile2 index 8cf209e7..e3aac775 100644 --- a/week01/cmake-build-debug/CMakeFiles/Makefile2 +++ b/week01/cmake-build-debug/CMakeFiles/Makefile2 @@ -65,39 +65,39 @@ CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week01 CMAKE_BINARY_DIR = /home/lewang/algorithm018/week01/cmake-build-debug #============================================================================= -# Target rules for target CMakeFiles/trapping_rain_water.dir +# Target rules for target CMakeFiles/40_Find_Ksmallest_nums.dir # All Build rule for target. -CMakeFiles/trapping_rain_water.dir/all: - $(MAKE) -f CMakeFiles/trapping_rain_water.dir/build.make CMakeFiles/trapping_rain_water.dir/depend - $(MAKE) -f CMakeFiles/trapping_rain_water.dir/build.make CMakeFiles/trapping_rain_water.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target trapping_rain_water" -.PHONY : CMakeFiles/trapping_rain_water.dir/all +CMakeFiles/40_Find_Ksmallest_nums.dir/all: + $(MAKE) -f CMakeFiles/40_Find_Ksmallest_nums.dir/build.make CMakeFiles/40_Find_Ksmallest_nums.dir/depend + $(MAKE) -f CMakeFiles/40_Find_Ksmallest_nums.dir/build.make CMakeFiles/40_Find_Ksmallest_nums.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target 40_Find_Ksmallest_nums" +.PHONY : CMakeFiles/40_Find_Ksmallest_nums.dir/all # Include target in all. -all: CMakeFiles/trapping_rain_water.dir/all +all: CMakeFiles/40_Find_Ksmallest_nums.dir/all .PHONY : all # Build rule for subdir invocation for target. -CMakeFiles/trapping_rain_water.dir/rule: cmake_check_build_system +CMakeFiles/40_Find_Ksmallest_nums.dir/rule: cmake_check_build_system $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles 2 - $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/trapping_rain_water.dir/all + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/40_Find_Ksmallest_nums.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles 0 -.PHONY : CMakeFiles/trapping_rain_water.dir/rule +.PHONY : CMakeFiles/40_Find_Ksmallest_nums.dir/rule # Convenience name for target. -trapping_rain_water: CMakeFiles/trapping_rain_water.dir/rule +40_Find_Ksmallest_nums: CMakeFiles/40_Find_Ksmallest_nums.dir/rule -.PHONY : trapping_rain_water +.PHONY : 40_Find_Ksmallest_nums # clean rule for target. -CMakeFiles/trapping_rain_water.dir/clean: - $(MAKE) -f CMakeFiles/trapping_rain_water.dir/build.make CMakeFiles/trapping_rain_water.dir/clean -.PHONY : CMakeFiles/trapping_rain_water.dir/clean +CMakeFiles/40_Find_Ksmallest_nums.dir/clean: + $(MAKE) -f CMakeFiles/40_Find_Ksmallest_nums.dir/build.make CMakeFiles/40_Find_Ksmallest_nums.dir/clean +.PHONY : CMakeFiles/40_Find_Ksmallest_nums.dir/clean # clean rule for target. -clean: CMakeFiles/trapping_rain_water.dir/clean +clean: CMakeFiles/40_Find_Ksmallest_nums.dir/clean .PHONY : clean diff --git a/week01/cmake-build-debug/CMakeFiles/TargetDirectories.txt b/week01/cmake-build-debug/CMakeFiles/TargetDirectories.txt index b5b2cd9d..04e3f979 100644 --- a/week01/cmake-build-debug/CMakeFiles/TargetDirectories.txt +++ b/week01/cmake-build-debug/CMakeFiles/TargetDirectories.txt @@ -1,3 +1,3 @@ /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/rebuild_cache.dir -/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/trapping_rain_water.dir +/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/edit_cache.dir diff --git a/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/CXX.includecache b/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/CXX.includecache new file mode 100644 index 00000000..de0c4326 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/CXX.includecache @@ -0,0 +1,16 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week01/bulls_and_cow.cpp +iostream +- +string +- +vector +- + diff --git a/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/DependInfo.cmake b/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/DependInfo.cmake new file mode 100644 index 00000000..f4f18ed0 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week01/bulls_and_cow.cpp" "/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/bulls_and_cow.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/build.make b/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/build.make new file mode 100644 index 00000000..c3f2b8ae --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week01 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week01/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/bulls_and_cow.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/bulls_and_cow.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/bulls_and_cow.dir/flags.make + +CMakeFiles/bulls_and_cow.dir/bulls_and_cow.cpp.o: CMakeFiles/bulls_and_cow.dir/flags.make +CMakeFiles/bulls_and_cow.dir/bulls_and_cow.cpp.o: ../bulls_and_cow.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/bulls_and_cow.dir/bulls_and_cow.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/bulls_and_cow.dir/bulls_and_cow.cpp.o -c /home/lewang/algorithm018/week01/bulls_and_cow.cpp + +CMakeFiles/bulls_and_cow.dir/bulls_and_cow.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/bulls_and_cow.dir/bulls_and_cow.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week01/bulls_and_cow.cpp > CMakeFiles/bulls_and_cow.dir/bulls_and_cow.cpp.i + +CMakeFiles/bulls_and_cow.dir/bulls_and_cow.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/bulls_and_cow.dir/bulls_and_cow.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week01/bulls_and_cow.cpp -o CMakeFiles/bulls_and_cow.dir/bulls_and_cow.cpp.s + +# Object files for target bulls_and_cow +bulls_and_cow_OBJECTS = \ +"CMakeFiles/bulls_and_cow.dir/bulls_and_cow.cpp.o" + +# External object files for target bulls_and_cow +bulls_and_cow_EXTERNAL_OBJECTS = + +bulls_and_cow: CMakeFiles/bulls_and_cow.dir/bulls_and_cow.cpp.o +bulls_and_cow: CMakeFiles/bulls_and_cow.dir/build.make +bulls_and_cow: CMakeFiles/bulls_and_cow.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable bulls_and_cow" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/bulls_and_cow.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/bulls_and_cow.dir/build: bulls_and_cow + +.PHONY : CMakeFiles/bulls_and_cow.dir/build + +CMakeFiles/bulls_and_cow.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/bulls_and_cow.dir/cmake_clean.cmake +.PHONY : CMakeFiles/bulls_and_cow.dir/clean + +CMakeFiles/bulls_and_cow.dir/depend: + cd /home/lewang/algorithm018/week01/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week01 /home/lewang/algorithm018/week01 /home/lewang/algorithm018/week01/cmake-build-debug /home/lewang/algorithm018/week01/cmake-build-debug /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/bulls_and_cow.dir/depend + diff --git a/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/bulls_and_cow.cpp.o b/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/bulls_and_cow.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a214106bad20b76b899d47388e6abe8d9d9109d8 GIT binary patch literal 153504 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 AzyJUM literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/cmake_clean.cmake b/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/cmake_clean.cmake new file mode 100644 index 00000000..3a434045 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/bulls_and_cow.dir/bulls_and_cow.cpp.o" + "bulls_and_cow.pdb" + "bulls_and_cow" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/bulls_and_cow.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/depend.internal b/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/depend.internal new file mode 100644 index 00000000..8b49e7b9 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/bulls_and_cow.dir/bulls_and_cow.cpp.o + /home/lewang/algorithm018/week01/bulls_and_cow.cpp diff --git a/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/depend.make b/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/depend.make new file mode 100644 index 00000000..d7badce8 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/bulls_and_cow.dir/bulls_and_cow.cpp.o: ../bulls_and_cow.cpp + diff --git a/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/flags.make b/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/link.txt b/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/link.txt new file mode 100644 index 00000000..0ac2c4e6 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/bulls_and_cow.dir/bulls_and_cow.cpp.o -o bulls_and_cow diff --git a/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/progress.make b/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/bulls_and_cow.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/CXX.includecache b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/CXX.includecache new file mode 100644 index 00000000..705f9e65 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/CXX.includecache @@ -0,0 +1,16 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week01/valid_anagram.cpp +iostream +- +string +- +vector +- + diff --git a/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/DependInfo.cmake b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/DependInfo.cmake new file mode 100644 index 00000000..49d79f9e --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week01/valid_anagram.cpp" "/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/build.make b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/build.make new file mode 100644 index 00000000..66e1fc51 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week01 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week01/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/valid_anagram.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/valid_anagram.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/valid_anagram.dir/flags.make + +CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o: CMakeFiles/valid_anagram.dir/flags.make +CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o: ../valid_anagram.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o -c /home/lewang/algorithm018/week01/valid_anagram.cpp + +CMakeFiles/valid_anagram.dir/valid_anagram.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/valid_anagram.dir/valid_anagram.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week01/valid_anagram.cpp > CMakeFiles/valid_anagram.dir/valid_anagram.cpp.i + +CMakeFiles/valid_anagram.dir/valid_anagram.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/valid_anagram.dir/valid_anagram.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week01/valid_anagram.cpp -o CMakeFiles/valid_anagram.dir/valid_anagram.cpp.s + +# Object files for target valid_anagram +valid_anagram_OBJECTS = \ +"CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o" + +# External object files for target valid_anagram +valid_anagram_EXTERNAL_OBJECTS = + +valid_anagram: CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o +valid_anagram: CMakeFiles/valid_anagram.dir/build.make +valid_anagram: CMakeFiles/valid_anagram.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable valid_anagram" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/valid_anagram.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/valid_anagram.dir/build: valid_anagram + +.PHONY : CMakeFiles/valid_anagram.dir/build + +CMakeFiles/valid_anagram.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/valid_anagram.dir/cmake_clean.cmake +.PHONY : CMakeFiles/valid_anagram.dir/clean + +CMakeFiles/valid_anagram.dir/depend: + cd /home/lewang/algorithm018/week01/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week01 /home/lewang/algorithm018/week01 /home/lewang/algorithm018/week01/cmake-build-debug /home/lewang/algorithm018/week01/cmake-build-debug /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/valid_anagram.dir/depend + diff --git a/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/cmake_clean.cmake b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/cmake_clean.cmake new file mode 100644 index 00000000..ccb3c048 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o" + "valid_anagram.pdb" + "valid_anagram" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/valid_anagram.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/depend.internal b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/depend.internal new file mode 100644 index 00000000..4d07c13c --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o + /home/lewang/algorithm018/week01/valid_anagram.cpp diff --git a/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/depend.make b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/depend.make new file mode 100644 index 00000000..fc122066 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o: ../valid_anagram.cpp + diff --git a/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/flags.make b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/link.txt b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/link.txt new file mode 100644 index 00000000..a9188c5e --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o -o valid_anagram diff --git a/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/progress.make b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..3c0af824cac32006a2472c153ced9860e10ea192 GIT binary patch literal 130568 zcmeFad7NBD)joc2_hizUKqea@gg}O{1wt}QCM#J<Cd`n8>|sfunauQLCYg<yo-72y z61EUQf}jFnQ(i<-MCC;Rl|=-61?BZsL=lxuL3n*pK~cc`p68sZd#i7ECz(cne|_&~ zZdcVgr?yk4PMzBBTv)Ske$4kh`}p2WFAQ0z=hglugw7W5Y;UV~p3okL@bP%Z;w9BM zyyK0(9Bzg2SHi6_{t0lajenwXCmDCLai_qYYW&mSo@o5j;m$DrnQ&(r|7_#VfqRni z&xJeB_-o+KH~y31)*62u+*6Ey0o;YgzX<NB#=jWu660SAcbV}ohr7b~R~mPfaZiJL zy78X@_e|qo4R?+4p9S}9<4?jp$N1}wyB2PP@i!VbW!x^f-FR2l?s$E9?Zt234S!?p z&Z48oz*D=U=8einYp=fS>^*z-)b4od4ZytGt8b9t)t8+^=+)#rC@nHV8wr}IH5ctG z-bzr^JX*Ws`7q@hG{2hLGoUL`zD2hOW&Dw)zw)xA6p!S#Y)nx7r4I;t$CI^JQwlt- z*^b9+clOchJXyQr=K_3K!dIijK{8r#6WsAa?aoDSG}cZyKv-6K>2^eT>-^ds-wVoQ zvInJ2A`AIer9=n|`&L{5L5VFOUpZ>S<h3#vKXErovihv=v1x0!zddlr1t0F{d4Kx_ zANoC27hmxHo;{w|b6iIKuRcgCt4(TIp~b)U2a?ct8SN4F&^PV`f6w}!SLSuMoR^wb z=GC{?uj{IB^V;h-)zdXHwf*hp+8r0%UAv>__SzjQKN}UUonf7K)I43gv*xpwOFL?w z*;(`Si8arpOQaFrd^YBJPt`oCWvqG7(mhr4Z3QiQu=eVe--g^g_uUbISUdm@?GvQk zS@Xn+HBXmby&5UPU)%5;GDh(NX)AreyRzn?0EIGTq8={&?pb(i9*Rg%W^dT>>!1v| zL<{jBzWVgrn9TM!>OW>mOoH`5?VZBz^diaTDM#+uwL2c)8N0gH-%;||8>23LG+ng4 z=271ixA43k{#Yf=9ov+2&yJGI9xc7?QKziA>Gz8-R!3#3h@CZ$f~Q71Am412vAyOA z|IHge+Or3w5VM}X53|3#)yJw5G?4bGi0(+A_*S*{`aoWtUagoQu7lD3zWs@2boM=a z{K1#_eeN&z9`GM8`cbj>gW^%12k5aU^?5Glo!94oW8QAR&*$Ub*Zn@%#l2_zJ{QNm zJ^lzl-iTpz0O<i^p#)FrQ|Fxx7h%4MNquH`%S>2$HdP8b_WS5L@7oGNN$eB191+JL z;v3KizlBDCR$RpH_eSl`m2ejU7ASFms9t|7=n(wY2r`3F3?m(8)NX%bjHC3TC6oq3 zfp^v>q~JTDCY<atsv?S$HQdqjjwRl?@}1hpUWwKE&l$xE{I$@6mNxM3g*(|C(At9& zftEqdO|1h^A+_E)8*Ky;WsSYs;~uZw@m%d=@5cg|GGXr=*#35zaFJZtu@cP`GO2dQ zV>a!b#E`;{cAD#sB?&Wf*p>(eq)4h@tfU;&*T%D)lvc>1l1NWcse9_3opAgE>CckN zJSiDQ?HH(aQU?{#Ad*Ms()PA$1D%vJYqR}=cf9n$8j*}y1jYnn7FH}X(hdr`p%zvI zF?8$=dR*@EhsmPNt<+}mD;JfN_8?PQlr(69xB7gG3=Fc*EN||zh8a|#7(p+8vSyE; zr#qYEO__rp6o#z@6IKiS1cx4C;T*<>+9y)b8dNI7i~%bnBzxz3gxKi;C)T`EdL0Lx zKB|UyBCp4Oiyo%=<zt<b0{akiXCX1L{8-X)c=9dSS$t*%J!hcpOOae0b|bkLFv!)s z3(s$1$G=~@{et(sG#mMioh#pkjBjsy->=<X^G4BIuMrrkGlbrUMhl-;*Lz-(1QQ&{ zj6cK&zF2p<(L2)n3np4|0tdX*bci7@>woe}_{F+T^k2UN*y4xE@Y@%!*S~`RPkL_u zR(dz%?Kc`ToDyP6rgC27^_QPjXToIn4;a{g^Zf`PD6lPKK&syJ2sNb3I!QV}0Lf?I z_@%^Zo?V=$8GkpyiGerZci<p``=3&dX`yDg^#1_x)xTmZQ&j)T%R~QZsnCD=sfcQ5 z&g_{T_*cJnWZ+-(CjFXK(<HEUu;jXpznc-<j<??wTYrPSgxF65b4P%c$_^pC|K<E8 zx4s4JcS$i5@jXReWsyGv;zb+XAg?F#Z~*^|_kAKIrWWZ|BKyNo9)?$oB$+DqbHpA8 zOm!w!bNwQ*?U?H>0Cp)UoFd&zB+J_j#O5ISJXYGt;cFz@3G^;YVz?oy=}rK@Y7uU< zA2HhF!2BcwTk<?-?OOKVljL=v-^)Rw75D>5PC<zdfItt%D-1Af`y-J{fIJR}aw4U6 zrT+kUC~^H`;HBrWG7EuTV@af(C7-JUTxMMT4-mRe;4jOhVN@m51P=-lyaj|`$tE@# zA0~9<{P#igTtFvz4nv|||6_#Y9iU3Sht&$nMH#60a={No$Ip$QBKV2`FGUsZYWxL) zUlQPtN4SJPp5hk^zB9nH6O{1B;8zI#+5j(w<d4ChF8KQbJgcUxIv6xw|FZ=D5}NzR zq><wB$FO|8pkD>*k9bwCSFyini?j(k27NUWZz%R*(<!f%`dp!|0Ojm#YHv7m?Y~uM z{FNYBZHYXnM4&ELR42e&ElO3MM!iPy*8+EQfS1B5{$|DB2i*5F@J_9j@*bu9C8*xb zL+NJx9VPEq4E2Cl*&vJ-c8XTkgr8E%380#rN$C*%w-TKWg0_GtkQ+DSmz44nP+c8R zu3__Nc2rW(pPvKn>jD0cN1~mb>^@YYr$F%YfQW2!i9Gaur1UljJ`9MMlS?#Si3VZd z7>QT-(2t_!aiPKMKS}Uw5zC(l{A^28B8{XpXN5Fp0N)tUNS{<1YC_MGbS?n?%78}t zmC~FS(%b?3mjfDMkJ8*1(tIEI=K>nC$dvgzLc<Q}zX|;RSsH`>zM$D3{RGD40eDrt z9hz!y^!jrx1}nBi9}CntqB&f7ivC#`dp=MLgV<WWUkmzF#!dmXA&9N$-wXOAqAvyN zsz~g2!q}e&>Wh)se-C3n4%E|;*fD54&y$M14Ak!<=#mia^@EXuSL>}s8zN{a+9;ro zj-W?|=$Syxi=dAdG$r0Y3#f(&dTfY3AE-+r=!y`1Gf;N~Xzdd-1?@io@RLM|^$_$f z({UCk(TgDXT?UcCFID^p!1*P%O||NcVfG_{DkEA3Jk9=mjX4qE**2!?NX1{G_?5t| zws<3JR|$%vm7fOcJfbCK&G<$^52iSL3aDExT2oh=F9}UCX}$^k<D>}~;2m0@_WC~( zCi6?6U(ZZNNPZfo@)6Jp*m+JWn$v3`%@M#KYiUef-VSq_4b*(1ow~dm#!dp2ip2gf zjJ*x0OCz!SVyH6u;TE9owy|A3Gccri4ESdP8b{9@64Ja5{5t`Sqi2o@Y5E-ig9fki z!qFiWA<a18rvx;P-kTHBECs$PgT@)4l)H;U>I*^n$$&Z-bqt@+3<>WB(Kj*(4b6s- z<{99B70`seLUZj23Eu+|XA(|bReouSK)MbBt}MVi{JJenV=D0T0vd-GUkz!_0=_w* zadh{SA<f0We>$L%kxNR>A5+EWL+Y=B@{xc#%CFyrgfD>T)eJ(D*xy2$4}m`b6Q@x8 z)pAyT4T0@o<nU+^RRn~NY>W{a86oO`KRciiLoaLr<?cqI_Par~J)mUd5+}*4!fbbg z=*t12q~`GXj*#&CAo@)<VV2;1D~$3!$PX;dsC$%~KMbjl0p+A@YQxf3L&C)%YRn`I zxuAS~PpE}w7l88Wfci{w!V$IuVXBx0xC=xN1cZ_ze@y;|38AF;V-Wo^AY_V$rXr;I z3-EC)nrX93u0p7dG+PM$;UGBN5}7nsg$0@n)Iy66`RwYb){r^{%1iT5hmlP#mxb|e zL7Z>qh!<_CTf->Nf&BG6QA`F8gw+28<?un46#-whOioig9Y(1H`TQVCz&*F-zY3|7 zpxly!I$DE2hf%Hr`4{p;F*WE5JI+YPqoDj{4(h1X(OflA{sQs?F*}a5zs>+<@}+{h zAdGSh$Y<w>BGurJm5?yX86fY@5k>kte@vA6Fv=%DepiktqD=T>qMR2-c?9G?4Wa~u zs!)a^hS&e<fck9^7Guuu=)17VrL{H2t{}$Ypq`Q=M%a8B<Axx{5>THL#0cq>rFRJ( zGxfKC=o%8za8TX{g)w&8eM0Sj9#r=RNpj*~`0$Y6nTP)r@Xy-R4El)>{X3xEj-Y=i z=zp**eNc=3cwHmrML|nZj{<6{MTct$(o0NUZ-ms#K)E)c4hA$s__vU7D~NUmgi%&; zLZZtm{+%GYKOkg7xmh0+5<Ux}mjc3Q*2jc|e+5y0OzV~TLDp`v6GG~vKv|tlZE7?x zBwPfdvjW0sL6?Pu8$on=Ko~7(Lr8cVi0%&va~8BSq<$8ZFJ)7kf^H89{|cgFEYWEF zqXoS#Bpd~z@_;Z}P|nOu8`Xm7tbj0QLGKHxH-hr=Y-&@`?}dc7f#|CNVYHzC9TGkb zq89?fXhB~I3I7D5VyqtRrRm=ZsYijbJe%4S)W;0U)*nQt2ZYgr4h#v;1<}O;VYHw} zgoHPN=&J!?PL7s`)K7!*g=}h5(Agp3pFreesL$Q>ON4M1YUPgr(eVM{{Q$Y$gVS0F z8~UO@7euE9gshPjxR7QY@aG3KL1ONxc}qxr11Rs$LoJ1HOY+q)-m{4FLJ*HEGbMQ{ zr1=x@#aNQl`iCWPs9y=GM}cx`9%?PbNb-U0eHcCO<5xVg?@>xdVzh;seG0wa;R9Z( zhBNBG+5d+aqYm7;Nt~;{f})N(@S5+5^U2?cbL|1A5V-4Dajsh=&ZnBix&BgdZn#~X zPd^~eXC4>lvu}uV<ADnp{igBa+<b;OyVK&_dX+f0-y_Z)Pl@xnSH!t9v5@h;Fh-m& zEfVL;ZQ|T}r8xI}UYxJ}K%B3?D$X}P66gMd7cu&OR*Lh$0&%|C|5O6MRVL1Zv&4Dm zY;hjGK%8&iEzWly7w3^z#d++X;yixXVn+YoJaL|A6zBWf#d-2Zah`fmoTq;w&JX@B z&VL=Ugz<h@A<i==i}P$soF8o$=f`)5^V}nF$_`BUuZY{v|47^t|EQ&e5BFJ~vI7tG z$(*tS5BJHIvICFs$&j)Gk2dj+G4YO-crwi|opc!FLFQbE(gg>@-<N_=x~K;&?;Rn2 z6c(E#hkD-ic>66tmL-CPxdKWAVGsiI6^qrajnZXAJPP2G0RlrjVyxgVQ+Nr8SBYH8 zL`D-_dM1DUzXAGD5KS@cxY(|OK##<$<v1;jm=tscP$vfHqbTbdyFt*4fjToluVw5b zi74&lZ!^Mv7tj|3B$9!Wqyv&0fWAE-kyJF3tt9d92kH@v)+Jg+%g&nrKS2H3qDz>k zcNF85Ud3Nof%+@ZACg2EbF^ST#or#5a3E@>7_anfFv%NLI*sliQVjUvS)e(F-qLaq z%52UbSn~<^k0o^A$=8BFXb09ZH))iC=#<z<0#O&<&3OCW0Gu}_xuR3bbX+pIQ9MX@ zD$q9F*Wll0x_5)<zwkbXx8KdV)Aha5T|ghta`=-Mj-@-2+ZhNBdh^jyrp$xhqB4`> z4|<#W{RC1B`ZIs44~J+zh2%?~WgewP2#-sh>kaxVv8?MVQV^*W<66_+Aexwh?9N1D zAVR{rea4JFL-hYJuKch>p3;=i_V)<*nx!$A0fHg@&n%{dbeg@!9ws!u0L|Y?Lr+!? z+!*ydq7Gy1oHV+bM%0{uM)D#XOnJsjIs~jH&2K>Lm6jr?MX44v!{<c`sXJ|C;f*$; z#vY&QXz~V44<eScpo3-yVWl#%`P7l%<EX(EEzk|423MxVsk%^{30H|T@sQ=jO*%@P z$>riqnI_J($Asj>XT+KQb8%+8BF?NUgk<));+%AY0O#H=&b)iXsd+%0lWT;ec8NH3 ztHn8`Nt}iMD<q5F7w6Qt02dDsXX$m~EIXghkcsz*GwB6rvr$7P{~698R(-(JGoUZU zJMc6LwCGkpmKuEo7OAG32ohhkLF_z|`!APa{U2|?2`dp)%=z$n{s({-Ba&crC#aH$ z*d_e+hgp<r7_ao9GL&TK#zv$wYUrlx#o79vINJuVBJko9#JOaSINMi=bLj?gF26yX z9ruZ|^GR{8d0CuKekjhhBTr*0*G(7ahO@-^Y=<~EZ58L{tHs&<6>)BPMx0yU66bdR zbVk492yy=T1WHymH13zopj+fm2e@o#v45Jlef=+qoA6u3?dR_lx5R$}?x=&-UPdG2 zpoYz7&`E6<r|D*K*4-yg^ONGV{7Rhle-dXyUkos#4r(1EPFt-w=dKl}>k4twcZt*U zq&OSj7H4y8HREj=F3$N!iL-5*INKMBb7{Remu(g2imS!B@=kGf{y?0oe=5!=--J^o zt=RV={}&iuCNR+VJN`pxL-jx6Q_rdYai7Z`>i@n^OHlnk^ap^6>i=(_ef?lb=MU2R z{sv*1kF-mQ*5Kz*4q}SdjZ31}XP`?;Ni$56D2ma!D!`N4P2(8BGtoOqQ-UnK(%*nc zvnUrd!`}<gTF#fGju_iKkCin&<xCDKGHA(<^qGOf%Ad!;*q@}sCb8CjU-3`-2hud~ ziLAAOpEwxg+%EzBWT77{{+ax(1MUpG{hG;*<KZhIx%RkWCy~T&1EAZ|s9`V+jet`Z z0Qx)evy0evR+dHZhQTDokVWhl@$=OHTg?s1VPZH5_9<YV4X|U9HDZ!`rCeB^m|Rum z9X#vsgJ-=6ib+hdh~v%hsaIj-pUki?zcKkOlHY{<4wT<A`JFAl7fm6(=c^M_r%0WI zIs?@yQ%9rSCy`GPP?0}X((rt_wStqkdoG+t$VGTIy9MlcaX$;VzX{%0hUS-|=x;{7 z_al*ZvhA^jITHz@%l#YgKgW39bk@oren!my2BJU@A$EN%jy|RSwJ{EO!v(He=l-=I z{50NvTPOq~S;Nm3VfVja!A2p^l6Z6dH_@v8YzfTwe*_}mFJ*pn8dDA4@Hz#>lwhHT zism$@HhaStYbc?(6&f0-q0==~Hm9Q@?G0b8q1lQ{YUm=7>fviO<oOzGGQpSz*PCFG z2HQ+9p}|fQ9H_x=6D-r<CKH^k*`BAt`!sZchE7q^i!@Z^D_5@ZDLRHL*ZHp<D_r>j z9F2T~f?^uFNkc^%x<x~BUCJB&6`#GtpHtu2=?%ZnACG1Qe}}-CQ=d+G!@r>*lhU^| zR5Yih-5dU}1`=~RdceZ(YRItnF%6Yzai8@mnEsr#sde7)=loAG6R&hLGim7Q@`nG9 zg8Vt`_QRjoP|O>3$g-;-CZi5nexW!kWIBDwn%gCmdPtn+pNiA+CY%#JJh9_o_|lUx zYc~dWpVsj}&n3E#%vpqT{#j6G!H+f0i=XcS?L5*J|B}C?2<XK_drVAxDjZFLppuQC zbcU!-Smmm|zvGAgM|{Ro_~SkkSO4CJrJGQum++P>WTC$fU&gRRw2$mUbje+$afhWN z0z9eRG;~;Eq9>AO8LLrx34#a1<Mq{HiQzK?v>ldMFX0J2fz|c`0u|@g0Fq&~eForL z@b<fgIgG~Z#m?ui|206rZ80T{M7vhoGZtm7Hs;ocF^9)%|6^R>UwjWHK*ds&zQo3t z5ulUv_;UIa3SUA0KpE)bu+q?I2v5P=?|SB~2$(Q9{|MkJizvA%#3qSt0VW+_Zx694 zVy^(^x&V6@vE+$7w^_KUlGwiSMY|z*>RqrJw51P#OpAQyo2awFwX=#tm`?m${(c!r zzYEHLFww6wA4T>M$ubYZeD7eq{k|0<w-EUg#261mb%4~mOS7B|;36U<Nkv@9Smyw^ z!6Hh&%QQ=wl9F6PlI=iW6Oho}Fxbn9y#tu9WneWGO<*TUo&fsC0g1!fYlwXXnEws1 zPp||U_c~&E33VV|DR>F7Zt}O0;z*#!TM}&p<=GdArFhf;yTnq+{L^G{FDV*;=?<`@ zR}zux_%}%szXJH{0vh2#pf<uzQ~DAbvxpIf$Dh9%<M^of^DG%0W)J5{qz;Fz3y1Ak z!8l&5KV!vTp+eD9%kfuP661gU3lJvb|J~O^|L>ofAHd)I@6i7TW^U-;x-Rs;E!Lvu z^+!sccIx;?%-wGtkJS&n{r-!Ma0p>>J#Fq^0q}JeRq`D1r3(>OB0Ul7e;I&p2Sl^s zQ%W%);zx*4?*BKyzsn?go~^2B{uXRf@|jBRVLsg-uav3eSIk)PdUVw<18!`9e<j2( z*Z8x6TN2<I-!0P`B}##yCm>=XE>VvXT?K-h0;1hus!Q|*CHg7|9<oF#i?DF9%q_C` z22%Ea0`yCkL~AsHB=JWj38DEb@P37@wbV*!o)2k80Dp8q!}1u;yrD&z2HYtDURr~U zHbe)-n5Ulv!TNwm648u~6#PIml)oML9hOEH?Bgd0dL+@G1L|&~|H#zk=wW<f82d4x zo(f_sdS)2=w?O?ah^={_Ea++`z6Yp27(Y}b6}?2zV~9Q+sH2FMycK;$7<&d#b0e|W zhOyTGwKfvFRnStgtw3EILHC5{n}E7Kg5DM;{vc3~M9^1+=of(cbp(BlpxILX-+=lk zg8o#99#)018n4z{JH#D=_A3FNP82(F2@^9d{-26p3S4~#zQhrWpDEEs5S(v`Oq2gQ z%>D+TZYJ7cyPg;2e8ImTsD}ddXbRehIsEm11n4h_2@9u<);~`C`{@1tpMn1<7tIKv zDI$A@!Du-GuN1(oWSP*!CIL4m6VJ1S@kwDeX8_$ulCUU3QXA%SKG0WWrlO@?9wu`; z@ORl{45wCyNjw77_iYje-4Mq9HBhfbVs8jze*{##I+M@m37W>HKN6_XM2o)GqUj0G z&(r~ZB2aUJ*eWEuB(}c_;CdU=ZGYTAWjk#I?&1LdZm2f?Q}Le$ZnwqjQox7}j42A^ zeqf%k*b??7%|c7~S4lz$x!Lx=nS_#;66!%qAuOH<0~oJ1mZa$DszYVS6~b~5&C4VV zHJ>JXUPyfwD4R2=O%vS^(p(Jut_&Kfk?B-l5<>qj5PU5lq6#<ohZX-MaL-u0K@AqG zH}*2Xf3heMWw$+e@d4IBF;+ze;dO*nyVc8rJ{qWr0h(jHlg5b0WITwS0)k{fL~ccM z8!=M4cq|R73j<0~A;P*5rwX2ZJoZ`OZ?!arYu89&Ngw+rP)`v}4WaqS2ChosZmrd? zK=6B;M#<ag{6>_nX02Gl*dCxuFtlmK2{I%%1|*|_uF4=O5xRp&5x-Zmnh*S{fJO%R zua*I=G!F{Rdf?B?q~XeBI6XWJ0Z(Qmm<!u2rZ1t?DlEgwFP&mn<t9l76l;Ijw7ZdL zuGP9n0k^AlLO+<v4wE&NzX8`5$@TjO`S$`sB_z*StveL>BP@+skAwM$jTlh+Q-PU9 ztbCS)6)~%IOw2zGn6m<`vsx$E9$>ZxSgzL5F7-;;=Y&^&zpp<E{2-><?}0nZtoNH- zr&Z{;4q9pElZ4r5-}ze*?XfW0<CG1J_Ps-GG?5pR+fPrNY6+gF>Vu_=jDODGI55ZJ zmC1WJyB9`KQq2ZgpX=#u1)-ShOe8Si!<B=Q^?>VKxwuif4GAA~V@dRkWdnhbL6P+X zO$;VJYJVPof90kVW~#L*ew!rBZp1XFklEQqa?#Qzbl_w3GZ1}Da&cX_+L2M(+|fr! zWy#C)-Q0!P<nWPn{x`t-hh36=7qFHUo4ojG#KNM{n}?Z}JoM_{Vf_dV55~>l@3SB{ zMS`cSWDk>ZV!&_TLynjUVQ1;(!w0<lPY{hd@O?c8;G6yYnC#~Z(P2l8DmsB0a8%Ja z3YhBOqG{JnH+`^ZMmPs5nnl^vc~a4A3Y_uJq3|02Nt8&PClxJbIsEIfOm!39en$YK zU9w0d&A%7W2Q8-L*bu!+B0dY$3l{Cn4vNkodI>Q8JNWs4B;yddq!~W#*+pns++HNf z5LD%Gyh@S|Ng7BZsZ0WTK1o=@l6fF0;ZBJuYa8kOGl5?p&@h@1n(WRc4I}!OfaXfl zu|(QwxG?9HaxYK&=i!ro0fJ*0<?v~@fQ{-sG4#&jp1VS46FQQ#qEto=eV#jEqlW&D z8(^b`{)zivqlW&O+g_uF{)M|<qlUi6&9G5J|H{3uag8k-y`ir%0Y)4H*(o^;smqTk z(5NJ@|Bf1!<o*vF?(@Lmc24n6IC2hR^ik{Hf?vJO+~84fOB`hCUC#|3^|lRMW4-Oe z;4NK@j71NP+R4NoD#QK<%OaQGq}PwShKL^!I1(}B$6G+ys9pS}deWdMr!e@LOzcgW z!CNwex7(n$#i+aIq3T-ZFLLuq)SR@KFrDR;FJpO$vKL}Kv#~D31j=5FiJp$llF+NM z8>XP`HSk*Oo-puw>~;o*3z-`I{(m6Hd+_!<{A_>^5!73vF8oIU{-H&c97X&H!M`u~ zjX?RY;pY#eDG$*f3VJ)yag?GTUk9zqVIt`L(LjwMS~Azf`^K4vTmhd0)Iy6c5s_0G z-X@0G#3WL{Z?H6`e0s@DlDHJ8Pg=B_#BfPM>Toyk-yjVOS<-@Xn{@Oxnq>0~@IMdI zacER|OJ45)|3R*FjtYxAbT%XiuhiJhYfM<}DZtMqO|(2G2n`#;UjzJFOQT(qG9Y4t zA~<5Q`=n4zWLyr!<e5-1UW>gF240W-JWEWTL0&&$e#OW=Q%rsj@SiQJ<N)GbF}VdO zzyBP_HQs)ML$r#?mxw+dsEP<$#bh|>{W_o)6D^s$V!}S)Hv`pe(QX^7m`D<z0RB2l zlOZOO#63VgV9{<8Dkf5g9|QkO(y$IC*COW(F_CQk0{lONbQ~HL6UpmfG{|VYS?Q>l zNIEA1Kc6(Lv748QiKLSRetoWVR7}_q{&wJZSQ?cM%0MV4W)NunHHcKluM0K*`cU(4 z2%)XPAP_$pJg_O0%`G5>5;ujlg`_aZNn!GxK?>9EfP&Tvofvv^4rNEWDf})>;qGuS z481v15DjhkFnP>8oAI=NV&pJo2)#K|*n!eoPEKAQrVu|XNFns*Oo1nNf)SLPJ{U8( zRRxDzQgFEQRLos9Gs3L927VoEnz<LH-nP?`rFz@XhPQMVO5==`oJ73{kZun-W954U z(gs)C`QJZQcA}D6&@XaFESM6gbjxH<+oWjPQ>cKDss*XuS+uy-JDYPj_0H)GpeJ!B zQ6_e3JU)jEpU2zpe83H2DSY0W0KRJxC6|O)F&+CN^TBu}nzP5Dmg6qOI}X@tQe26s zC0_tUcaGF>+>P)8U{?hcUk@o7m_O5K1NH(^uy7@p1EOZ5mS4=qYk|H!AYmk-GkKlM zlo;=uAo&i-SQ>||rIe~;NF_g|R6?a3_)aCvKcZY1cti!+3Vp2_Z}Gq)2^Fc6P)C76 zKl%mszs0&EXq-NbGW<x7M<V*tuU^+*WZ*oCt8tH%W4Qyp#fn;zkmQdV%0!kXc+C>0 zdEq~x=;%RTfqNhUM-L`iy+erAJdQ3EW23K-47~>MB5xUcIp5{S<0tMd_KS&LQPiiU z9Van`^q@<C67Mm^uUYT0efnS;C3SjX%zHfh)tAI${u<^n<^vAiT8}Xw(mzmXKB9lP z`u|CPnfmw8KZZuVH^!3_RuvlXB``$;F$v7pK#>G$HPA-_OEgd{fzvgR@aJPjbB+c| z{DlZKYv2IcGVj#DKnbKZFxX$d3<qyDFwDOeRlG<82m6;S#YKD#4EL8Iwe1=h>90lL zN(~(CpN#~r)xbEPjrv&)jF-Ue8Yq{*-5RKnz<nC1@`oeNw=^(8%J!%RCi>0D=Lv0< z<NC5G7RQ8%s}dZ@q@`CSsNqZ5x~Gw+$B*=R+<|un)EH3c&truCf>8c=s}lbRV!RvM z0}$U5`C;Q)sy?S6(;|@oP3Uz=h_??)h*LU6eGp^JlL(a`lTj@IrKDA=8A8Pi3li5Y z<UB#~5`&_c%IPLro8Wk}AshFCl!@0Jv^d}z81ZX?YNiu}$*+)tMnnl&Ucw+4!8;d9 zHAbj-LqZu5AyuNIq=}9s5r2@tad1k*RF+CA%Y#(J=Vr)cHLc%C5qbL}i<xf=iZ?O@ zWg?s^T;K%_EukdqvT2hL@al%Pfs2dBDFeLEQ9_UMN(-_|qQ%fNL++L^i0V}a{JBG@ z#^j*VR2l@&OAwLLX;Mn`6(MRP5euh3l9l4m7CdiIWTCz&sL$s@jT5F*wdkcukxkRU z>>FpID&Fz+l<!wbB!bTT4Q4$>mv>ddLK)0<Vt9Qe3v(J1;f<E8)E;KL@RExYM{74X zPE=<QDQLhF!oclf3`wigZ8%HPm)^cC_gEcz)h``J2a2)%SvJ+ZV-KMJ0HryQe$~Tc z2hcxM;i55ACyyOSI6rBF^as(e`g!b7nqy-Weh@{q!Ykc~vMC3D%>whnj?~NmQ)I*} z0t2>64>RaCrp{|UAvav~8b;!EpJ;65*lE(TpCewHSA4=Y)4Xg&E!-mn^Qusok?A*E z{1TvE3Q+Wc+00pU+2+SVz>7s1R|quKUyzD-jhylcT4R3MC&T!LF;%H8PB?n=Yd(zy zUQ&vZX)af=?7Y0><U)`sUzuo~8;NJ%HPDzq9}E&DE0ncbwql=U|3%(Z`wRZ>dGV!! z=Y1(HmGmm7R12g-@*<T~%IfO0fO)aXfMJrM_uau?7Lj+YlnYEyP4wfxZ?U|BrC8D$ z>^&CCn^{?LpR-tA*vg9gcZ=onZ5Y>O)I~lgW4zv_c&B|I^tsF@OMSv#qH?tFqy9XQ z@eNb3WPMqHRS8}eT9x2suQl>3#^%`qUL(JY{g_f#gJ!XxV8GaFi}^h=3^QD<Tb1|( z@T(H9;kQ&wQ0?lA2MSG`gd->OLeAkMr~C;-$gk*d{_>{ID)Xxl-bWe42qzpxb4R^L zZw<W1aC)cEV`&_zcMN;9dXJ+Os@}2e1nND3#ZvE#5IQr2ej<ck9eBqLe|@QmHtvuQ z0`G`Hu&^Ytafcpjz2k?!V+qC|QXD`>j10VoR#|WP*h?&J`3XUV%Etw@C@&AnP(CTB zeEH;{#^qCjYL-t6YEeEfOm}{m!pWhxHuNqH(_J2>up;!X488SXw8jwHF(ar@XDz&o zV*}Z8i;KjOwm+w00&m8Mz*S79zBK+R^y^4bF_V53nTmPz>xfWML%)s!74zxWQJ~^v z`YSZeTKcD`zmERd>OY14TJ<mBfV)Kf3+Z2~{!{5+rv4@LFIT@zPgbaZ1>q~zzncD4 z>R&_uY3fhXf4chX>E}n)P{IcK&s2Yk{?+PlrGJh3+vq<_$BT;dSZH1$l8&lh5KKx^ z7kmWhsst|^iQrY1QC3zZhQcyGXH7y96vKN}g8LC`65QxnWq!HVy(YnnM@th`z(VaK zn&e+Ko#}Y>U8y#&Y6ks9nnBgfS)f@uunLPfxbYd#&!Z$5`WpHZhJJpB($i{?9SKeU zR4OV%znFeYzvMR1<6sANt&fhs2>+_Y%lKW(GVr#NOu2R5En`R35>ev)u?|qeAJ7ki z({QjPu~HNj<MM8k6394KmEu6ln@-A31vZnC_nutf23Ci+pcJUNR>nDl;-#ptK%%Ji z=f^0i*T}7ys-<yqmG`E!^_YbYi&dLsQ-OD>+@zPs$yQ#iDq+s@V<LPe&e*(eB@vvF zq3UyDu<;6(4uQd(z(l=CqVjH56rU1KofzkZExEZHtw)m(w8nUqONR=XxKw>#Ms<z; zl+UYOCDcADv{gN1@D~V_qR@x7p(HD>?_=e711!XA;)=eX`h+*bqG+b$RUIhR@lQ8+ zQ_24jCLBR1Gtv<*v;(ScRVD;@8P+wy)8gDN<L;WXU8Y6pq<nJ2O^RZQ|1^Qzev6h* z<2=g|mfLc<(OcuF9k=U3v`Kdx2l!uSVwMh^fFT(xBH(*pdM1qIYJl+{#$^!GeI^{v zsOv~G<|fg!!^hmt)dq<+<_>y||8rb-NGSX+iq$|g&q08#N^k}*%8u&?vKB+=00ace zOLYPrqJ6yjR2EF+p!&Vo4e*!n2T`~ZBmAg-iaGG&ouY*2)qj(&%X@e(^zQ=YwLFDt z0?#l3Uea?(UlIxAojn)&q9icdLQCjFVOVU<w_5rgFZZdKFljfhH(30&M2qP1$Hcrm zMrq<jz-UjA8Z#rW`j7PUmS7m&E#8;4*2I%gJ2{JB^7yUbUk>o}q4>XtQySLcYccj8 zUORNt{<ScKw-6PI^iiPK1gdqPBX#G^M5()Jw!U#*Qk3$V2D_Fe;*~`gcpZVfz!=ud zB=A6t7aBEFm4wkg?>1@`*%?jkj*+tPzGH||#VGw$hPCS3$QV}JtNse(@<OB*S1WO$ zut+X0hHbYd@te^c(0Jo;O@jN+YZANU_n|T}5bFslzx?Q;$Zsj2vjAO{;D^80B<_cQ zP2wN&TMqMdjlj<qnl*-!SMpXRc=NE7a)GE=svU$V-o#@96KGP!4aj3v;%5Ao(khg? zOuUVS<+UDN*Wj%m#Y~#a$r5k+D2CU945pfXUjA{~VdBk<%KZ)nmeN)%r92$&Cyql@ zSpxR`lG$fr{S{%)KY+h9%KdV{`VmobCMqpIENUqrs}d~WngnmatV!^S3^+KCzu%Ex z-ga4&;IjW3L&@d6RSB+IuSswRV3qkL&8h@1a;!-_HWst$1n+mOF%bHZm(cK1%bEo5 zSe$JjJTnGEWjud*6n;(OGn0u`IDc0e2#>?BO7Pg#ssvA$txELFCVd*5K^vhwYXq_? z!8P<XiQ~@(n<!7K5-$pp;O0Y7bNi&x>U{j&XM*-aye$mU6W{gO3)gpplVn@bu4^wW zUY`y^S6*1WLE_1ZMts+|F4UkbYQ%Sa+XM&FAdBz%k_isd;5{ZdnB0%=y3YiMu&S|L zvs;-kpLQ{3un*DV`9qcV{tHnfHfB2s{PBd^ho4aA<L_RLUe$)8m$T^cUC(W6L&+;N z@Xj_ZX(a_9zUxQZ+UnauT18oj@A~mJuVXvfDb|7{y76{0MS8r_YY^dFChb0lnt;Fi zW?=5b+r_A{UCmwx?>)u7j?nk<1__CWa^#&$a`y=ndjpt1;q78{O$?F|+k?=!b4+6N zbSIPT9_~``lx3Pp!C$5DdM`fOpA5fO$^*frJl0*xYZd1*VfR^Y0{-sgIap@L+r^Ax zyH4*)AQ0QNq-&_SwOwW6&h|QPDhJ{kgzmsARSL?bbz?H_gAOH+zx#=EaJUO^7o)Ro zJv;+$pEBd|cfWlO#_M_`kxU)58>PPe<8rEW*EwFtchD7M!$4JrSIR+;SIRA`O^oe6 z{Y}8%T?@=oyj_ec{N-j_EJ+aFAfd3aHj&(Y!o+R>=2pgJbSAc$cf;a~WA`Hb7+y&w z@CbiOc^&Os#&Vxf0Nw=V&v?6-h7^!@u43L=)D*845S}f<kjr_94PLbQ<wpbRmGWX2 z{vj6fU@Go|t}Tzhdl4v`@OCj(wst>p(c0qHdL6uK6-y&@1>PXfkSXUfy8A3K0e|<G zfcXaAE=Fesnt9^cJ}|iC@pu0O=#TJ<-pOd?!F^0CpGVU8;65ZnF;$d%UILHpGr)NK z-A6Rw_7`4Bj+|oFTTh&7DY4uY&|U<(kqmKrG1%)ppO8M+6Nb1Mp>r-^6e$9Cr8{`9 zF!m{c?#3%zVIylhoJp8h$~$`JUPiC;u=DfrcRvTr%Xqt(3bO0kE$%s9Gq0f8=M3ZV zcYBSvQ-jy7-g*&%Z&Cze=n~DmTV@~2a)0+U#A?Wn*@-jJyjg~rn$EqN>G(o{qIo zrSbT?UqBiG)5Jq7AmE-rsFkJBaB9}@Q93SyBt~8cZuW{(K2rlfFL+7ZC0Nl0ze>s6 ztvqIHADA5S_`8oxIoWIDoR`s5CIr>M3#qY6(9g#!twTL7trI(+Ft4<ct-~bUC(NuJ zm<#cCF%`DXG;zUWUgNWmOx_Xjci#&1gLt!B=L@!Vw)$575M#Va!rvWh@;vaQ-s@Ww zqaT?e*vTNzQ7FgS8RTVNk-&vy63-CZCv2mQNMSE+By1~wTiJHHG<)&e+AvEHLc_ex z6k@w-H!$tucX?(fwyQ&1XWIajz&@qM<L|!D&GQ1&B*sN!@Q_37yP$a%uQUerbO}Sa zk&LQrVgl|HCjA~T#p}=vjL&9xO5Ah2t>1NuV)^Rto()=M<{y0em6_n)AAIHBIk>He zESq__!9GVCkH5PSQLez-LI_KV_+U$?SJcJ>4rq%Dc&34kuyvYK04oyy?l%y7pZx!& z;gRzHm!@MV|6gPZ(#q@)%{-=IpOcKo-+e$cK6Z#VQqFd-s6oqj&ILT>E9K-Na{It= zl*ixwDa78(*>LH?I7)5`3YNBe2%3^wEE5Te+QY*j_8DqC{_byr<_TL=dcabzl!rmK z@_f2|Mg$Q)0!_d{&1r;HCEhk3O1ID4AkHo@B8Vd%mNd{zn#xBpBlcRGk77pdEtZKu z@GoSli9Ion)v;ZTfk}Fl$xZQ|;ROmSifh{dr#psY(xXW8d`9f|bHhsSBHtt=4l<F) z-~D$>>QAH+jqPfch&I&hU7Qi|pdjKU0_PgtcAp3G`^60k;ooP3FZF8<Gq_9rTa4Gg z%>Vp!h0145F8A*>L4NM!QvU}=?2fs@?{7F>?O)+9GX8l(F7-cY{If6hA2!|#FZ2Iw zycb=x?F#=R6W9Yp^}H}UW_i(tSNgLIjQ?5-&xQEXnSb<vA^qb64jr)a;6eVtgTa!i zempU)|B3zmAutLM7+?cMF$DVex4}L`GJ?e;y}BV&`eQZdKu_anFfrbrb%+Am2TVVt z5vlg;1Jde4pq}W#MS)>Kj4C8>z`=f)%Yk8PxRMYCW*t)1e>##VJw}okc%aFBP?#2u za7FWGorbu;x*;qQ!9xRZpY{PE_#hW-X@_M38U0`v#OMSLcY!RgW_3su++YwRTtwZF zFvg*RV6#Z!Ld3{&u#P-DOg)E#C5KP**ha$v9hC^YW#a8a=n+9S{n;co_t7pm%;HEF z>=x>%Y=lkf=xh`l9-qsIBSV~zbQ_X@F(`h5^*F9VJR>0o#}5IuN&>d(ry3dYyc68S zmC@q_Bx0+LNA8aw??LhcrZJoHAgXC(?4GFHQt&DREcl`fz{+qS=6#sx1S4O4SlH^! zY(t(+L}{fo_`p(;bd$Ovw%<%1gPO2@Q^eB;UsM%OvFA+_&w==w2)mkAZF<n_`cz4u zoMCu}63jY;m6{n88<n!fo)wmpRh#WbA`J^L2S8yDQ?kI5vM5o)xj_~pG1%{Q0Tg$9 z^+7@H1FBIfw)Xre4f%I6+7|-L>}#t{lQRCu5?oHQ0Jfpl?Gy{rJQhfkibm3Q#-aI; zKTLm7So|sdS@Tna_CsLtQC|Q4GokOWPge>rCaFV=vS}Z{=*xV+PSnBjBcM>qL9oI^ zNnm@<O&g0oOo3u>T2N86iMHD5!=Zi82udq(tiT0?h^K_BQM^Q`?$!)6X`Xc=n1fZS zlT0`nq$N?Y8+QzHs5dPL7*+4ugG}igIB+#eZl-}Xw^UGoJ_=|G0ay5FH}YVeRiPg2 zaR1~XgZ#mLXAf^2^68TV-O@)|u=<b~>bM>O5%jtt3~mUUi^10Z7+?nX#bOcQ4q1DU zD+;d3o5VYqVOf9GlbtpvOd`hnl|$MGM2gbY$E%clyG=2qSEd<_s*-Kf<JRCaS_Ay! z4J-F7<)+NE4bf&sWS_OA*<xa$$e4YFc`%8sVJ@a3=Nkf0li&i5bo6WsDNRNf8lIuJ zB)G^QkG@}hNCsOj_Q#`64iE=4ea2%yVSl4pQth2ADO@VPcF{4g0|12|O679vho-s0 z`q8<sw0<-cx)V$QxZDA9pQ#EAKz3o%0_@64zVLdBFs`vg0%%#_QxBv$<B5i&`Po$$ z8_6z|*l?}&7}r{l7HnrXHf&8s8$QE&jB6+U7HlVnHq74XKGE<57YYCPNI06Fovm52 zXgFH_BQ2qE?c~XVjlF4u-ju+n9y_<N;1SkiTw`el&?r9x#Q*dBKMs5h4)9+U#Jr6~ zSpM-pfc@{|L2`Kg^5%}VRC#M^Q+@lo^7__w9bGNy=C+E;Ddn3|sSOpCUU^S<S9wc& zLu*fCs=Q(B*z$?xYg^LYx!|eI=^Wrp(B>(Vl9Q^(wYIePY#z6+y=NauHm270tkV=) zTh^AZYiKCXN@1cc-ac|-vCGq2I#ZFtXC;_bKdjW$x3)AU>)Y$sb=9|xZ@_m8!Mys` z){chybVt|tW~%${bZc^Bsv!usr#2;BlDLvIbhLM;yLuYZVXU6^miCr(3-UNG)u>>J zm`r!oqtGEC8)$8PcPfOmq*GliLXzO5)J~Bt9mpkB-^Oi6;944z2)DGavr*}9+GKKT z*woNm-$hciFbdezLOKj<sm%?k&U8yhd$Kcas>wV|!6X7AW|Xr5|IC>;Lzo!()0z@5 zplCtsZRwydtaVqiwWV9)bZ_ZSr`nRKuC5L#5b7ay({iJr%%71BtJ4h)WIo7H8^T3o zK#c*qvn$n@YHDduH6}Yc4IA5g+EQKMM!;G$ON7~`p)6}PXQ$c#2uULnhaV&U^tC-L zt?6+s?K9a+H=+7THZQteGTFAaJB_beT0kV2OwO-cSfjMyPfG{9{b2S7Kxr8OVcM(M zB-3q5ZW|lq%5vnNZrAt*&=ZAdLfS0qhw!w49h*A3C<|zEZ74-1PfiBXV6tHWQ5J27 zakg|oDnzmD3Z3;WMq;p75g0!4{(j<=*I$3#ixv6BmlWU815d0tcEVtB9~N-B_~FED z;!B(&&N@NH$_E$YyZ|G{#tQwd2*+j)i5)*=AszgkAU>rzQqzo|n>Zyt=-TZY;~P#V zB0l{2cykQ);qXLL>;ULOw{+wDhqP!~BEMKdu_;3lGhQ4!j!D9uG6Zg);>0N^z={VG z!((-&0K|$DgNy(9VB*uSJ&%xI+*DLj96#t<WVs=BoIm}P1Tw=nnjL2R-SZ!cm1co2 z_ANN>Qr{l)6PG5|CGJVA!%ZHfm4Ur0?tlB$#4b%P19Mfe|8Q(5BNVyG{RrPlh{dzO zKMTMaiGbP^H3NK^?<W={$`jo=%XF*nfBWJY-LWHw<S5pz5<fBf)x;++(?Vn<`wp(~ z#)?_CK5mgeh1_N(%5y~ch3EezHfcx>%mcpvZsOtB!5OJ*MmAqzdOaw*po-nBUInu^ z#tz9U0-Efvi3*L7(Uu>u1j9(5k;PrU|DH%gni3)c-KY4BSd4^y-3+%E`H2~^5rk(H z<SmqO-XfGyqGYh+|JWwkE%;mj&dA`+I0`7~XNbYu9`h9;%*gi_$akhPAcOuD(9cY) zJM%AEpoCk8+lu|foY?3gipq#4Ez0gzlo8{`7-Vxm7Wl(H{=2)tuz2w$WLxn@{$BH) z1)6X_H_zvNBPyF3x;xi)ZSY#5vNn3j<;m{mj!m5%9E*}?p1NRpdU7(^uz7Q3Wo4B+ zAl5Z3PghoQ{4--hT|>?Cdi>N>udQ#`P=ll-_9Pu}>RNzo0kRu|wIX|;^5m{mXKQ^! zs-~@N$%2NqtbuSk3O!TuotjL-N|JJ;`0X8CZS}25J2KTF@~OSgy{4wKwWife_O$nO zry8rgWZmLqcm2jxl3zkjB6Tm>)Y6)2@9<!lq}TQ|u_VjW5e7`^!k3j>+6!gDl;k1| z@-SM!1E%j(bV7#Z1ZK~xMlR`&q&5=A|Mre_lK;e_E44Az1;fX3#7nm&yYY!`v_1_7 z8bKU;SutaZrM#w1EsZG}3`C*65vG#&Wn!cqe?l1s!)epB;R!c@z^apWDw|n0)5|C_ z+B2Q(L_s=}Yquo3JJHf!Saw=!O)aTb@|pwmlw{glmr8GH@Fusm;&d{CO`Rw_njzU% zzd701vJOUIWkptHrw6hzZCZ9Un4ztK5&UV>T*04C3R5F3omiU!o|#osQlO$z*(A*= z(=B@2sV06bsi~ZRmTl<h+#<5jU9+TN`NSmtyyVFX7oRj|VKUj>vo=`=zTsox$yN2O zJ!oO*0UYq47_aDrwA&7)Qe9b<TqQ=kSedqW&#SU>9g+IE)iui&EU!#@l4w~^dw0t^ z*q3E!$GuB&LrrBxW6BC43NBJ#fL5B=1&g+krKnCy8ogHlT8RnZ8vAu`TX0fKdv~fU zUDGB-fW2)i<=I|n6sbs(=}M~2plNfmyK*YD0r~(MD4a5(1sdwncUsb0*q_;1*{_=F zyVDb@q<3`IQ+s9Tj$BHzFdf;}R@34&QOU5AR!(A$|Gum?qIYB7(CBqQp*6L3VCvYl z4sWWSxk5}LayYS}3rfujX>XeltuTj^*JLwPVHd<<Ndp?QP=Qc!sxDBR>X+9*EFe^N z2CQ>I48SU$(XqK&#Gk|FGWNq{Q)~S?D5FJ5nbjm4>(ljKOShRPVia4KZbqMPh16i6 zgIb;6mNrq69ZgNzs=e<7<Qa<~T<dH}HK6q{4#~K|$-QZ{-Zl(J#nzU#7WA$*&iB$C zjh>{L6hkJ}g{oxEV3QEe)VfrcnhX*JicWix?T0dog@cw+<)(<0lO=^N*cFmfeS5lY z?ZUMcH8l+z*FwM~NmvVupmI|U8<Li#g{Y3o3Ej<Dc-WA{VBUmEa#Tl4b@6m7Gk~~b zwC=`wM*X^!*U_nK8#)SSm2&#pj*iw7%CMG_nu$T0x?UDQq`x|9;!JcN*fXuk_PQlt zZOw`#<Yq-ha@m3vke_v39X*{`3-KsF8&u?a+iDPoJR)p*)w~qA*s+CegdrKfq7L($ zJPkG4r%*mvwds!5R*3W*U41gm7SRV8))>@9&JLAfvqloAX2(H;1WYG)3u8xR1=_N) zr5i?!SjaH++OY!D6f`WY8k*0AB|p(M8*?be)>M5L72~30OIs(Zusq3s+JbeC7HbwZ z85NLhqm=;l>a;|z0i-}H8}kQcfGF@h{jAdVGnBWJ16-=Bz1}cB(nMADPzw}@?oKIo z@3q#X`fl1QR9)mn8wMLAPC4YIC7k0>Z!YdkwYPP^a&Az=-%GkuJ=3hmu?8|a!(}r= z5khsLccT%wlnawr7CSk^K#w#%qP3%aU4|`XI|+1xT`nz5SezP@bw<@dcX5WNovgrd zYZCr@4Ts=7eNBrSX+dPTSO%>e^Qo52Xx#2pS{LU;i5Uip`1DpMg~Mc_hUVmkj<!x% zASx{xrcZU|08^(^;>yX8sqR!O%;_XnjA^DDV;Qn7ofbx%PBK~l+@_$gsKT^K<-}w% zV+p!)LPjuyxVId#qS4j>+e@b7>=RrxV83Pig=(P+1&NHiFw*MN7&z)uH82ikrk2{= z+0mYYu~;FtOSaXfJs6V|oq8@$@*hDVBjMl2l14;sGdA2LGl^8YvDaK_2qtJ)7TARC zAhRyOChKit(msV6hR!01&NM8eWI2F=y@?P_!~7(n>~V|;XM4S^U@#Y=F_<Yb=nc`O zg}Nn$O+{2PP$S34fqsQ42CH^bwY6a*%4SkmO4g`gq_$A?b+oPZ+Iw1Cv6EwC^tQS| zlQ>-?XFV4*V0KzlvwUju)a8?ssJ8}BvW*g1Z>y|Kol8Sj>^JC)mgQBJGUt2|43T9y z>fXSvwaa&++H0oRS!vC(<rPURvu%{wqp-|Q<_eg7Pd1|;^N%V!F)!=@4tt}?OT+H- zlC|~SCuM1r%G^4%sshP&c6D^tucIjpHQK$YzEjN^HIJdJ+Uwh(pU^#FFE=_0HNw?u z(ZEX@tZeqa{|4>d)&?!93T0n9c@mU8rt+qNxK=v1io*a+S=qZ&d^pcH>GoC@Ct;-r zR<$f2F6Uw(wrycvG_`b*=g#ytY<I4-(R@mC8Wm1BVRto=lS0_kRo`Hi+&o#1E3kOM z=xLUCQR_yX1u(&Uf{TUajAbIqE+#Ery1ApLyS}}#n~RE?K(F~_mu<xOb5<2OpO#97 z!(GlkU6}4_<P@L@0#WFKp_O7xi0d2I_jIS-wNtf_WRBFtrcHNjP)8=L>^iz20J-3B zU0F4yFy>8c>gs5xOlRyV^u9x3u|wET35clcYU${@rlD(`g%vgEv-_{3!{IfZf0i;) z1|JwUP<st6uyR_OS{krGCL8sE64qr1k?=_U!Ug|*6|4m&at$)l*}RjPB->lL2g{+l z%v>c|-?MqTtQZ6n-Qxq_*uXaqnRDC4&RH-t$(XUJE!74SoedLqmMUoSh;0aZuE}7E z0lN`0S`(x^11U#{tsyyGJXjf!T>)o|3XK&Srgn+Casn4j1I9x(*K#q%<Gj7TwX<0k z4#QIB8gH=2RYjXUW4w{obu&-g=ympBV**S6)-;y6Tn_0CN95kNkG19s7>p~iu7i~Y zuI<6p!la`~7UkMJ{DV)7k`35<+0wSwE@MRG5u*|<BgnqaHXK$(HlP}G0}2}4+7w=n z6+etEcFDv^D#s`fuJ2{0RM2Fva)K~I#y)bP;LU{zx~SZhS_{VNPLRi~7Oa!#aJ%24 z-x`R1MrX-6vJ|+!Vr8xn$%!zGCQ_THQ*W#|SmQFM@hJjZS?QeYAyWz|L~ij_wI7kz zshvID&Df&ChV){rW3dPJwxj7Rq8jU-veFMVzNNhZN2503#2;p)jX0APY-eegFC-Vc zEFwl{50*%}8jS5*2#2b|4sJSk&P}G{XL8iv+|;!{bFc!Xt#cvw%wcqMomdS?EQM=R z<k8T1cD0~!p{<&`u*t(Q-xIxGSev3y!QdTgoxO}m-FdoYZatNMHbT+JJ@<kM8<~5_ zya+3ZSX!19M2?7tZ;=^GRq9;Sr@_qr+-2E_N^Yr{T;JG;32rxMi^1lEr{k9H0LWC& zu0^UXVOJl`QA@iBsRjX>rM`7j{g&=z>f9b#f?b}5@rnO4ZFh+6dU8|C<`hll<=DG7 zh6T13T52}R*1|GOK(W1$X9;KuO;&Sugj;xI4*wr@L0uX~g6^BTW&jpkyIOdTcZ=89 z(gXtyBca(D!8C`BV3@y;#Wm4$P4%tjTq%!MoQLHtVXj?t2xYD^tA#QqGMvOTZR&2Q zZx=hgDcyo8tVloXDelb&HORAR1(S;BEDB<ivpIq>oO09TwXN-9_hn1yYDgjKsgkq0 zmhSaE?G5SthCQ2Er^Co&U(;vZbdzdEh5+bq?l)#xD;NhNM_4|_Ium9%!Vw;_$yErL zk&Cq37!y%emkMf??6Vw>QJu?9;871*Rhok17aLkSH_4PTYa%tJvjgXD^yrrEoo?*F z;cdHtY7Z%xjm<{mwqji+^DNQ6kJn@#6Z#h)vcdAtX0B+6rj6*y$>#i%D8F-iS}-74 z;sV6Dx<LiBJ%u%=7Mug)9#LUEZ8AFqHxie~a?zCK9j!e)K0Y<rzN{(0a;cFMK4e6s zOJHs%`zian#ZZp9Yvla?Hq51hL-B^oxeg(q*NG{Ec5sy4zpl@TSpjPRTl=zpp-VAY zHJubJ%Wu=;Xr{>f(BZ-$XpE+G3VX<?1H>c3LuW;kE3lk8In$;B#A%YA5KxWRdo#6w z^$T5_?0r_cQLU?T*nG=u;;ivZmoar;VK1ghgJYTmYo@s*D>w;9jjPQWX&N&d%Pdz8 zOO30B(2W`9i?ZJl*<AIJc}@XM>@04I`Kd=Zkx<TUWLu5M9+{EgoO3MnI(BRw?zUyv zUtOtndRo;UjzX?E(+Hum$HOgyu9kJpX<SRe2?3LPM6p)2rmX?GEwD(~F>$sSDiQ0< zwAgU2l&i;@L~o~IcFSm=>O{x7TrAb2Q3bS{V+duav)nS3y*9)H1Ib`*2y&Tk5`Z<1 ztVsYignMvG(jIv|x2K~(4sywgCBYzLRdetAegSF*yI6B{TZ)GVblpnNCxqvZg(s12 zY!0mKtHH7BCF`ED)LfWsO{EerM?4y!6}Qz<OkucV`#>b#(Fgn6=9%k(Qomk{yg4cn zOjRMe5gr*Gf#m|;`+^mrOL#^?BE;Fp$gEMSdmQ13cDs|GmEZpMLenTXYlv-ZZlbRB z+OR42FW8R}6=zptnl@q1)}F@6Jxoxf0SglVXZ0m})~$z~vRHwFpkb`CMFVHIPO$x< zU4Gw2hbr!55^Kk6SrbR@a+ywrF3EJ_h%T38^q2xRw!Lt@NEd{utg(1sH6=J+#9h7= zu5pIP9o>V3<XX6bZqMUW9_`^rZ5WsibvUY}hsKw*$azWXB??>(=V%*)*)FZBH0GOT zwWt8KT{+oV-Zcx|(wEwpjg_4I+8Fl1gvsu~oc1(UbWwWg+rbGd*y)r6onS(<=RFwe zYz1it!)3q5O0ups)g)cEfJ)lKiRN^f7{fTNpzNN4>l(t_YHBpQWspmh^VlG!UV1Gg zIR7W3d5(F7JsOlJv4}+H)})XSobNIF_uSUwsw+2;<kVf0Y^-SIdaF*IwO|;S(aFE8 z+W$K)eo!}I>l{a(>=|IGM4|h-Q|#e>TB^<!4AZ~%!=w`ps?zG(<GB<}VSCq|-0{u0 zoNZSO(Wk-UyvG&`+YZQH>~6!=?M6A*K+U4Qx!8!7-m9ujR^nu9R?O69YuIMbIB*by zb6G6JQOEB?BNxUnoMAK_HZ;DeA?%(drch=HOQ*9`8M46I&Tj`~>}L|C<~ru2+<-(n zn6Gz00&%NdggoEfB`y=1WAwP4($K;yb9xWZtQq5YNO<enOD^t7qc>8W<Is-bUvK-Q zwI^6T+{+Oj_ueSQk{J3Jwsp-Ey3JY1wo9&V%SGmN4K?oSGOFIn12<#Lp|9g`iloK% z)`&$_ZPqB|R>{9lKJ1C;Zf(*gd>{ZPEzzXuj-FQTk?RR#wK5`8GrOz+li#R_2tj3) zdqq%|#w4L=Rn5|%d(h|PQ&*PF9XqzNvTWk`iQ_BEswyfcS5{P3l#Odk_q3;GtV?0E zY-vESzN?{m2EG_EZc=sGxOHXYux~a4Cj}(#xF($IY}hak+v#b!QU)xJjo{F;bBviM z5Rz4%Iiraxi_on;D|ekH;9L{+qdhw$=cQ-DqVMDl&2Z7&Zq?=(%dnElqeo5kJ*_w{ zpl6nict$v5Wq6;~nod;qGB_3>`CL~v$8gCa9P7gTrKcS_p~16<yI8y4cFY3idCRBZ zVjV3m(<V8O7;>8{*ve7sLQEEX-+|Hgp<W9#c-2(bvyovAd)e-5tC<4Xkqe~Qj|%J& zshByMN9lq*Vf28O)vXY;?EVbDa;y*IZ?I5eHrd1w&6xnoA8cVDlL{W!<28U}y<W|6 z*@g{v9CU=$oNQ^TJH5LL^Z>Qs1RTC8Qr}gF%R4m?20fLuB3Xko*wl74IBzPKdpKd^ zK$m4C2J3Eip8yPyD(rpdiDo?S9_qoIoL1MrZ$BV+P2|czrm*F)MY%d?_nc+v1p7Q@ zH!kZulFW~Ap-gYMA|#vZ?G2rB4Kv($DZs|hy<fRJ*__&}t8$qBi){9~n`dt(VVqb# zIiCom+B(x)pjcs^yO*?+-N9}5=(R&TC0K@2_6?jv@-V54FM0Y3)o$j6HZCzQO1AaL z;eR`A!{UtGLc(pOZoR^&sYY~jC6CWZX9>@(%K0Vs>U`(7%%yYZTDRI0ff!S!!)@|z z+`}_EFOs_)knc=3bR#QVb;LndF*cz!GNf;Bw<H?#-IDkiD!t9Mwz4}q8pfHo*YHyd zDDUz#^<^%r-e{r74MEw?ufleIQztKs^7tQgJS-Ndd$uP=C|ME;E)uQ_=y>e40Z81k zvb&EWF%j-!lLiBby|B>R0gi`E%&@Mjq0!M^<*B#H%3Q(T3N~vfB2RLnBCpcOniA1i zNp5MZ-$Jg*s(IF0My3#DA0$9gHhSAKF8(k|c7xkHjKbvJR#;mBgNA;A3WEYx8q5lh zF}u)R?6J&(q!!oav1*OaeVE0Jy;mI8yct;$hxZrErv}2aS$Q;1F!XZYLpnil5E_>u z?9Gba@`rM!x(l|MN?HzUQ%CslRHZvxL5^7m6$&(j<W%{(jt-p?7h)Igx3Q~NS73}{ zd6DO7p!RV%vc78zM$n9<w|%UNf;02lF^knp#sv(XdZSN|cET9SX_aE%rFScR!RN>d z(-MVQ*D$a(yNDu0YPO3&X>6j>z^6u<nq=zBO*oh!da23Vn92O!3NsqROw{3EUG8J7 z#>t#rPLAry2iVj0W{xh7nn6RC&Sc!Ihvk6T4nDbvF9vX38PyDIT{)gE_g`_UQ8Zbe zZqCC;p@KjXJ?$IXJ2tf^!CaI8mW<i0%y-_rv7-m(^-L;eGny5&Zbi#PYGFrMYUbWH z2==d?u^QiOP$iSGGDt0)^<5gk%(<{|LX_+9P=QzP+Ul^P1uGFJVt9|ao$ZIQA1uQs zXOi|iJ?45VZ82=JaFMscF2qGdytlU?<m5}{$Bgoxo~+K;6y<c9wjGWZ$hGZUmPc?! zu&~}Q=O-ecvI@6jRQe0i&4p<d)}au|<C<G$|J5^0=uwyxn=TkxYqGNee8$JDMn&3L z&dISo?0zhdGeB$S-BUqsjolr|W|-hu*eR?k=F>nNoH5mqW41in<*9jCSQ`f-(m<W7 z2RI8WUG$QIDqtvdF_1+(b89+P)>vrZT&Y8jVKmjZw92}8ZW9DagPglto^!DjYdZV$ z%>jIDt=_qHu6Gu5nww@NQEXo5A-U#eF332_D94nXS3q)1$@lr8F?=5&yj`Dn6Hlba zDL~dLv2%7Bt!k|pte&D0W(@}e2-Z3`;8Yr6_?B6q0HNbP_Obr#iw{N^I9K4|9A`;M zXRmoaVS~cu+{=|?%N*I{N>pL;I?*l?$Sm$(D*9qRBUub0{ImvM{UAU=3e5c!6!hP| z4jAK1e+~(kMdpa1Ak4)=5GNcn`2m$YCkWl0JjD4J_sg-u2P?pQ^h;0V_1=`Qx_NQ9 z0@zz?BznG0Cit0KNusZMo35R7$l5korE}>*hRFR}`h%X?k3(GhnxhrA7pUKuEJ&h* zdAz-dEvq&axz=oQebOnpLUe|#b$twBv~nb>sldV0J@}+!vi%x#fkS+*qad6T;<yw} zbF}ufwR48Vb%sJS$lQfCdbuEJmo>}abct?!;VUIx<ja_L4{YpM*etT<BFvWU39kI8 zWe_pIf*uN0iX{!Rp_O-1oN*ULF4co+LB=z<p@xqtn9l|j$hqL`JBq9pWM^wnbTeo# z#(;bI2-ViFC1AB7T<__vy0KTvv8WYXALIlEnw+1N!_B6t8Izd$t}aZu?HM}xN)5K$ zg9T??4#0U97^u1%iLcx-Tp_a__j;F{sxdRra1!vb3}k#Ii%iY<dYlSIBw5>Ou`=9( ze>}`HSGJkQjWePIEgbpQpd5`blGa-$hf4`zPBTKU%;5`|mgs7a>3$e0WbaAO0MJb1 z)}yQ<*wHd4H}s$snu6bxSBl<N&oY!NPFZ}zL1c4P7)3%&BNJ6UaOhZ~Ii%m7UAMba z@)ZO$1x|mYn)Jl5D1c}?o3B~8JBFxQ_WGjkRm<^BRV4dZrZaO|nK@JW*u{0Rf6U>Q z-ty4Bk)(ylw|JLhOS!!P+br02NO6^jTSYuT9ZG|o74g<~!)nH4bzA0lh;wl+yur1f zEL09khmymTg&Qps<>WoMs@Jlj7p^k?PsLtO_++gDiHVAHKd`CI=L-H^TkxIoF&;Pd zy==d?1h;M3X6`bQy+X<p^!t#=VEVgX@+;dxa>daOoxPP-NkI>htLejOx2(k$VyL3@ z(woi4<T%7<e#Bh%R!oELa{`PemVaatNRYYSnpd;SNB&R%o=}~jPPIA{8OPC0S+is< zdGu=?Xh`|os-5(kHQL@X*{W4l@NJpj4|h-V?1ywLLH%;9gUDuk#)yfQ;QnRs4Uc`L zZS4o1vDDQ7m@|wGCfMU>kl$dxiGzJ`)DK5J_Re7$bWwk7eBuIjJJ!*#4rjjCJHMlA zQ+-$C$2*gUt93X+#GWU6+}yC|u`8B}^W<E^nYo5wuPu6ZooSyJ3>(_&H>Ae#-@r7E z)33&8k9W7s<r9dWuDU}8^_)LXxF8?{G?$uiQmc%oTI3(%B-8clGDDs@0I4nBTdB)F zCE@k}q!#I${09S=MdL$my!euF@mE@l|K5ii4Z>2VFXc|DfYV#}R|PzSE8^YT%G$~H zepV6kmnm)$i=#fzcdA=x1NG+SFa)Da20(jAdq1?E9%+r7|A5#~x@9~*w;SKM_jvVI znH4E~aDhYiCSXwLQI9;wAdE`R+RK++Df4O8O%1XQ@^5T;Jxr_zyl4;VWd*E7$((Ax z#?9P{v3K{eaGoqDORMDazd2VKTE<ygFIQhEa79I~yJQSn|I)+_w{q)q+2#zt^<Tpe zI`HDEvpnA04w~chO}e}N@6jakL4Vrw`fuCt<(pvcMC-b-Mb4O~Jh{VyQ4VuNdlw#q z=0>CDoU%nM2K=8A{?~|!`Y${nu+I4eCswW|EASMAY)+c&3bD=Xsc#(+d)<6lA0Wfm zecg`{ESG!D!4c2BYL#H}XqrN|t_xZ{43>uEn2IN>_}JwLx2~MV$ZEoH0*2mzRUG|_ zITb({Yo7)`{wt1-mhCOw*g%XN(37v8Fzqbefe%pOJJ?xjm-}8V-HrULW#p4H=8H4f z=aBPg%!)Rc`9fkr+;e0itTE<{8AoLK!RP26mYuj4B8b6}Tx?CqN2ilbxMR8BT-R@n z3D*nCT@14tr-gGKAh4#;RQcyG!AGLA&KEn^v*g=E*e}C+lc<m7IATmoS4LrMP6jvI z!)3DQxzox@XI~D7R$!*cs4w<+9TN8JZ8jaHdfSUR+tXvJHOsg{O&dsr$aGh;lO`5e zo{=H2|9Rd_W=&XQY{!4b^qR2tX1*j6F-Z2?IMdY!eDe&QU|kzNs>^@+#IMt-Ko(Z% zU{ia)MNGe&B_hU^O`PKD;YVh0x<c*zjAO*X?xh^Wk&pE9ZmRToJNkGWII)t~)WO-0 z`92fV;^AC-w%B~6ek0d4Qurzz50v5)k5mI_3+I3$wn6w|73`m#8XQ`z!=d=f2@LXD zlQ|q8y*rSvXXm=SD7hQsE7F`{2QEnI$ZnSCJu^E3XEQ#|QosVLISc`d!Y+OmkVwXG zP>60R<R}Yn@k7THHYf*!pDx`*KA#WW5t-q6N$dsKbIn}d!%?oTb#h9L|8+z^cgxe> z@}Cn_C-;6!7IP=rjWsvDu#Aecq~YNh?g)kF3&`gE)HJ9h*CsLsXRM}0_Oa~;R_mH_ zo<Zk{E*{siD^%eijP6)qGvwN)lTCloqmj-7l^K5QME{>rmE`LTz`3l(!e$Zp4>)!o zzqezBY|q<k3c9R^e-^;TbZ&03<h_@WLi$PWB^>HXyJdzRAK|tA)>UD>YoaVZ7P=q- zp~hHi|DOqWLUkS7s%SD22SG587ZzsTdAIAR8Q;Lpyws!D<z#$tZJBHv*N#DYtUPL; zx*ao|*P8#(9DZK`pSKVGU0ZPRs{j@299q+QgH6uYn(G#>#pWM+0xq5Ke<*RJ6SG(U zTUppeCSW2|vw5@H(7}gHO&9LHK<dBhfI4*Uyr|GbBue&EoU^=z9$VqpBe=v7eAPz3 z?CAbSyr@#hYT58$7r%>vJ=x`EVw;?cb(0m*__>ryp;J+#RiL_a?rrh9WFU6Ie`F{~ zRnTG$?nh&jP(N^~veR3Q7N{MaD^hRR8y<y-vi(Xt>&5d6vLK*R)7z4T|Gx)=Hl)~^ zguOmly}zqny3p$=b5H+?W+B>KzI|c;eGq3A_OnDVD4hTQMz{>lI$>?7$1!sK8m^ha z$^=}#u1U)!<3G1+M0|{5x??wD6+v!@!kEAZT0g!LzzzaNZD$Wbg+u?1u$Orwsi_I4 zJ(|PaS!uAy_eRXo?E*xrGV@rDu9Fpzj;b{k$s9W%*su)#{SOYcZ*E9+${~-Awd--C zUDg+{105X|%zjmHVbqf}WM-6kX|SOFZog@S@lwvN;7b7<D1)ygME1_mS0Dx(({gp# z+`W)|t1x5Ad4x<x8198B)+|`*$uj=8zzN}h3$#PE4tVX{3+wgbe=nE)3+aFMi+hE{ zb^hyh??+8^7>)o@0l{LC>gVX#$y*<?`eObw7?zb~km`NT`7G}6nAhI_jijz~Wc(jV z88q#>7iR0C#yTT+Uh^y!6<`9_;K~b4OBvntLss^K{$A#D^4z)8%Eqi*i_hux=oc%- zRaW&#u=2RbCoB+iq>1gHw`Acm&)+<-@6Ci9dguXt6W98lcN7AA`K05XS47X80Ru0O z%{{QVW_vuoJ`PHySx6k77ZERmt`>AZ@`Y}wl6d}klACYyVL5DB4keAvW0gb`+;kH+ z7oKH&#^Be(&B!0+jGd$DlmYjyp_><_yD-e_ZbMT>*Op~<h=1DP`@8u0A^weh;1l2x zpL})stihiRnyk942<!5wp<5EAi!Bf$@-%H|YT*y+5}O;~uQ&JsF1{|T%l!s_yo*nT z_@5elor{mn3(|kr;LpgwYb98|p)n#nZz6vzuRFu^s|~)=#kYp|6$XEdi?0vy>3!g@ zH~0x|{Pr;Z{RThY#kYj`pBj9=^1W;DrEdIF!uUhculVG{R~vjj{;x3jBbkWh-`QdM z?6-Wz@yFtuL;Upyf0B#8AjIEq@KaoTcZmO~!Asw^=`RlP?;89FH~z{HKU4(V^X9tv zZ6Ute;Pc7n3WLule`$k1$W4EVrcY3=hay|#{b^4wTs+W-nb^1|5|{}@DDEAb1tTEt zjmd%!0mOIUrt5f=J>N;k!kIwaJC07)6Zghu!3c<ZC**;Pgk<63UU?RbfVd|TpM{Hi z(vxz)rHAK$Ps)N35cekMfr}(&;o{!3EEoZC&yF0K=(smC6JSDdZ+0H|oIG%m+$>z& ztI2{95cf{b0~ZO-!o|G>Sug_P-l9D4#d+XM^T3zqfv?O1UzG=bS{}G){w!SFTb%_X zAnu)&2cFCWug?Qtn+M*Q2cF7;&j2Kb{!W{Qk8Png_z6GC=yuU9Lc#Jk8DFLo_nI>S z0X;32>?iJR$OZxu_n3S36Zbl@fq=xlbMwHv^1yrYz&B>WFBXVlf`h$A{6_IR@SDYN z6tV;Vw)p!v5cU2{oW5D`zY8Rh1wTyMsb3a+fxt_$;GF^&D=q^^+t-Z98SuviZmrl5 z^%H>~5&|4w+)F#5&>M$F&-KJ1S-GA#S~AxYR|_!<75B3FNusz{oJFhfY(6VIo6ic* z=Ci`H`K<74J}dkHI$2NLJ1`4IK-?2cAPW~)3n~YEU>1ykxHl*dd~hB(N9XJ(?q$mZ zsp6ii6~cINZ&(;`d~xq!Clq?)-taKs_~KqZc@s;^p;T{NXB#=-w8FEWxOZ4K5RkZc zcpmtuJn*tS@FViTN9TbbnFap`y3lCH{z;oIQim>dL@d;AR)SN2=aPo4dEgHMK3Xkj z$y?@Y@I5K;(EhO+{PzM6?IlakIY6#_$D_Qt;8XIz+w;Kh$^(Bn5B$%0;2#1$T4!QX z-!l32yn~>!M>}@iJOdvOc&_r#$OB)JhY#l?y}^!MZO7YF^Q5yn4}5nX_!slQf1d|_ z1XO3PdW{7<mpn`ncxcC3O}9qi+49gL@X)@s^j8Z!TdwXEcxc~pU4YO32t2f7YZdJI zQ1PQ3yLX9!A0hD2KA&gc(*!=-guFn*wh4Sr06*UNt`T^4eZMa7?0P*f@X&6z{h|m% z&S)<iUM29kLB7`RY7}@)0JoOq4Fb>R&qD$~IiR0td~XUooEKRB^n;=p9awo@FvFQA z@C89S#~9xlfoGTV8i9xQxuw5V;GunPTjB=-UmB#(`5vDS1s>YxRx*yq&^y{&sYLiK zHNG<hzA6iTvB0y-vrFKi-EQ0W5rJFodft&H#s3rd>LC4b#y15+{%9{d-*W^W+VdwF z`fC8s)xT~K`q0j|l5xMl>w|pli2K_->HIwpe2=8FHb}>glrzu)M|+I{+_vcF1)d7v z*7EoP;JM2GGU3p1(dUnO=!;?c<VwfGw@V}cm5L|37FJHp@$Y4^EDjXD<{JF(nQD9v zmEVonk1M(@SXDoH;o_6#EJT!^waGeM=h4fVvQ0U6qB+tadzLm3Jvsp@UIGlx++>}t zm}g>!d-6HH<+mR+Hl6)D2DC3~Eq3@{4T95(JiTXcEA1<h@H~>7ah%Anhv~^9%Rm4k zCy{bi9%TBV$A9I&Mw@rqc<h6Z$N#L}yg7+4N_Tg(L$cCak{fY3+qC=Q`SX`!Gi$}1 zlNQz#dbrH~iw16|$@Tn7dlV+JuQRtYA}S(S0d;Tp!p+Anf`7+}p3vG|2l0q}6aZg0 zOjl0Ovx6NtErJil*EQf2BtD|0hbDU)i<`gfch$Jk-dfkNe>sB5`0t<g+DJ!hcg>Rd z%a(U6*Z&BLt7YB%uO-}?i*U_;(<2KpPdK--eG`wpE=zS|BODvu^09Fo*V}+2qb+(f zS<Z_V%x1J2DhvtLqcvz^{FkGTlNyrJk1+RsJ1@wW?2>;WqY}p(7U11pRg9sL2=)ZV z-Xd6<EWXc;{EP5>3Q6g#LWnl&UOwGRAqZ7VhC;HHh^7`6Hh08I9*@BhxZrFS5C00& z_Wj>#_r@d$$38h9G+LfYg(apI-Dgb#O)b=cAcm>93=5&6p(`B?ov$>xztEh&O;oD| z%^c>KQ4W4iE^<#wI(u$%!?J=uN=)tK{u5$*BV;dGh6NE$*{`@WhA4Fb$PkfFIOQB@ zaGFc5`GPdxxv%VRugJe3L6!Iai$11N3ON^;V;Ghin(r-}am)_id#Oj{{Mx?MP)4<R zTTYtfUvUTp3GJh&23E%2=)(HQ*M*a3Hnz%5a;QQ5P+rb&E8%?qUK0)eCjzwvxQVe| z|J6DEe~q4{AfkN}`62RE@GS<!{{Q122uL<{_ErpdlKsEFq-7(=bwyo8KIw?AYCrv~ z|Hn#+_`N~%-+pCEVds%pw(z)S^5GtRPBaq^PCc+B5UlXpc?{_<z-#H3!Ow^AZFnu* z&ak5Ccas>8P2bLgwklZCanrxbfxGG7;=nJ2-{$*`Jn&}?ocT68^uKZFFLK~-<$-@- z;7q5}p|?x$tnbARyu?QU&+&L!cU#Vb44m{_)wl3t9QZ{Jd}1E>*$&+0Pm2TJ?4+~R zfxGmdaNusfx8#A}n+N`#Jn*L-xLclQ9rzZfoF5oC`Ai;J{@5)I!oK3b`;rh3oqO?G z`T-8yP3Is3XS;mWp+C&PNqe6Iw>#a0Z*btYzeM2;py9*hTJhTQY$p&8;ca*={F4OY zA-o;0g@2PkJWRg>uZ91FKs-_Sn+le6T>1Q?fs_7Ryf&Tp9D4TmkBlDp$iPX@)o)AR z*J&>|ok0d3mGhAfy({Mvoc49gImMyxaq^wz(7WY4*`asKxzvHX>8v*JXgQl4dbgYx z8aUf!qf?%%9JpKlPde$i`QB*Y(R}Z8=-qs6KZ@r2mXohrp1(S9w>-8Vu^rv=^kKqy zqUEt`PNa9sbDW`%mZ#c*yZKHv@Myks4Lq9fsSdrH?>Z-ax4xgr1OJ=@cgynyCw-R> zUo-G%dA{w?yXE<wlRo9pbeBE<<-py1f9#~=%I9w!xLck#4Ln*Nd-f~ZE{Db0imEp@ z!L|K#mIHV7$tecTbX+}rhC}bB)0l_8#eutedngNoht=4Q*OteHU*^EAUM2k%4ty^B zd<ef1uT5tKfp`etf!D(AN^i7YZoWGmdb|G3bUxw0XTZ-Vn!cOPrNG;Kj}mI7-{rt3 zJMilqc&!7!)`8oV`Dppw@?7uG*X2pa?!dDAZha>?^q+RpInsfD#(|G=;5X)h-{io@ zJM=d@@Uaejw*z<6r!8ms>B4Vy;MQJcy>55l$HLEt@H_C@bliMD=fK_ey3>JMzLEd` z;lSPW?{eUlp80;kfm?ZII(Iwp>G1O*{EK*PIo))=<iM-o=fm{x!E5PVIsCE%hgTjB z1B_$O6BR4iD}h^K{B#a5e!{Eqo@lnb21Vc>7zP{^fv-770f#tnTV{fecHk3?pUy-F z&U{;_gz(IkUr)+O_~WY;urLBYV3-2Vj=&!=6<QyGTYBnbKDNGpHH^7R!2$f1lN3PN z<74SN>NU)^<744RH);4k)d}Dy8wNZUfp?v!fd8+yJAt#Y?EeQo_K|JuJ7dN&#x_ID z*fNV@?1Rb9nZ=mZ7&C*hR7fQ}67}#TMH><+iqaEGcq&V@P`1eOq$HIn%kRF<_w(iQ zan4io`oI47t8wPM&-YsI>%Q*mzRx++0rI(n1dfp>qQfqd_n#)9*CSe=$(S&7ou>ZV z1c|R~28gq%|2R^f*C#*ZE8dK}Nn`Oa@(sD-(d28eAN!H(XSsDfruE6kM5604^&S`q zS(HydjL%u*+g(y0U8iY28_*9gP`u{9io7TG%U1I1r6m84$fGd9A0gNHljKFvuB+s~ z43YeAlF#oiUfmqz&Zg};Z%)F_rq?g(^TWm4QvAOo#5<BVA1^+D{1_&lA>>6eC4Mq_ z|1|N3$m7e1FC>2s$Mq8O>rEwoJ^3@3uihpfalgbLBtKYA{4jYI#_eVDRaGVa8u|MH z;+3)f(SFwWn&e}<NPJuJKO2a5B9Fp}eI)s)(h{%hF)jBo#6L>$WwGD?L2f=zV77JS z2h5_++1?`W)KL60@{enXA0nTVFa9%mEA;;r@{KJdzM?rXI-9m@De6;$d@tsQQ1YY6 zl0KY#D(2z-<QhMO{6d1{GoD=I3&>wbd!8iM_$B1KF&^F^Uy6BnGx;F&!+!FQa5Ddj zyfX6niTtGqY1d`);280`CFD{2e@ahz-jIAU=A%gRPsd7pEO{d8V?MuRHqBq-lgWQW z{icy?{KMp3F%LgWuJJFDM`2#wNv`pG$bauH_5O`q<FAp2<M^tN^#!-LF?r2s$-gVP z=HH8ax1YpklWY70@=;jOna^37jqCF?d5j5gwhiQ(|GVVp>q-0}a*aPuJ_Y0UI(f?= z$;W(-%WPWDnYHD4UGinM#2b>|(^Wi@T;pTO$6+2zA=mgU@{?HbK2EOj3&@>6z2x53 zl56}%@|k%48TnkC-w%;LnlAZYB-i-g$#XDYRl_*de*O~c(zfK~>q`E8$ai5;A5VTd zP~x-5H9n90$L110m;6nfXBU!RA0zRvl56}M<bLQM^SL;)X?xd($@Bf>emGvvkyq^_ z@jsClYa(6>=V#47t(<sy@>W<!H74)cUgBGje-I}gL;g;%cyIE@v0p}$S3$iq$p<u* zd>$r$73;J)<n_$WBxiep{7iT8)#MG(Z@b7felPiDtS8Tszl`(X1@de>FKRm8*|h)7 z=UL5GntXCw@do6+ST_cdXXt!F-W20DmV7L(cSev`Pm^+!$!lT%P9@)n_3cdZM{u5f zo?PQ!A>TYe%KZ=dPX*#Xkk`cetu*$(dHG)FXE)Yee&kIse+H3jd@J(a6Q$hl<S%y< z?@L~3s`wakjUP*n(}m9?<e|8Zn@7IYU-Dl~uJP;1>!IKFkZb(s<VSEF`ZKx4Um@>@ z_Es$`_0s;Yh2y9Wc}gpZYfrB65#*!dB|ep0<Fm>8*O&MO<Ql)2d>_v58_6|(3;ByU zuN@`V`0vO&l$ZJx!ThTIQ+KeqFZo6@c%7{Qd2yUyg2-#5e`3frzBl<nT#u)dYkUrQ z!6>QEVsedtj{F3kZzI?EUE~+gU*C~y{CV;}D@c9Hp<lH>HNFaYgP{^1N*;^;4=2AG zBk?YBjUPjv+g##jk!$>1@-~>~*OF`eM)q*Y{{%bgf0n#UC5bPOe$xKY{Hv0GkNX&5 z<Qjh;c{b+f6mpHvBL5~)>NB5wMS}R#<Qp)*Y$DhA_sLIUe*T7B<4=+o&yaG9`^lsB zPw0K}ybO8DF!B229r3&|`BJRM`jBgUJo&~*$^Q{@jh{!3=K5?V*Z8gEHz!E`XUH}F zNAh~Ok5m)w(EibQfARx3pLQqL_`c-dc9i-|A=mgB<WKjK_*LW@|2p}?rV{@RxyGL) zzuH3L%j3A=_EshDf^}mgx#k~B-m<dfpHHswQ^^yuC4MEj#;+rvJznC!AfF6BLOvV) zUkdfo_IAU1wLE!e^nZKu`*B=Ekbe**^+_bJ*jGG_d_{HfC&=H#b=g13k78Z)I{8`L zw|SeqMXuz(m%LcA_!s0)4HW;8e0!MqujCz4#miQaNA1tPcmu66`60~L9mq94l6=V! z$v2r?<1@&YV1k%OuJMb=U&T81E%Gqzm-oo^KA_%T*Y;}sX^Q`}H~I(j3ddI_pOGi= zZOJwNPUMHjO8hADy?DPVg*>B=#6L!^@$<<q<9@<h<Qo4Tc}kq*e~et?Pm_OyH&jbi zlXTiYDd>mt<bL-{TnM?whmp@|C-I}mH9m!W8P?B_k!$>X@|C#0SWmtxTFTu-{!(l4 z!{i!&f_yiwFG^uNYX4|_dGbLy=pS;8*KwrzydE#{Ln*!l>X|^E-%sLal570q<nPs% z`1Rx(zlnS*?oS>j*Z33UQ&S}WqBsw0yIdHzrODsH_-jTUfqrXEz7OZ4e&iZIh`j0m zsm}xC8b6D?Z8M2~i(KR1Bd>+^++lK!KS6!~^K+@1QjYeI#+N4_g7MdZyv_tkA5C5w z<EJ-y^dN~JPX2tXcs$01)~CuiaTodc0`W}pev`!~k!$<|<e%X>?rHLd4JDtY<ll}E zUq@aZ>w%5r4X_^AMV^oKz#j5MjKlB9wf^6epU3(72D!!;$2_Y2xdHXBORn*O<Wq1S z>_o2dQRI6u4u_NLeey)|(V^0x50Y#AEb^a%Bz^_?G0dwg$(sdA{5Eo3N9`nUf%`ni z$-9-2d`^=u$2hr8-W}_@Vwi8V|BLjOd>WBA#QG_O{Piq}??C=5=G$)Mf3}nO{^X}B ziH{(!F-<&)JQVk17m^2I{(p{K%Uw;b<!&VZ4EeuH{x973_?|oq{d<Xg8SaBzC9jO@ z#}YViX#YP~RNCuDUMoPnHo4wEX+Yj1LgKrSuWKMag1i;(hvbv%e5>a-t>+=EXO>XB z-v57|{Nwgg?wjPgzI})MKq-m;l6(o~rK99O^pyBN$o2ZA2-Zhh|7%$9)+5*cY(zd7 z>)|N!<3*(09^~iI-bC^U92aTi+cPAespQpgoX#YF1;^tG@~ya^|0?+psOKBxUpAI< zx0AQUyz#QXysrJ0fcbVk`8${gwvhjV`s^j2gZR(M_rcGRYy1WBU|g4#!noFY_G|9r z-pY}uwiG{z<4NN`#eO+KuAg)Jfn4W}E9CmQzT%kIHGln_n;&@<^nV?4{ajxVdHteN z|5oJVaX+LxxyJV;zliaZNj?epIdjQx;CP=)uJ7M1B!30#idV_M!+3s!{J$7iJJ>U& zz5B^^o%S{P{dlhL4{QHNpr5~|_;1mlKapo(o%ScWelD>Tjt|Yh%V4QzWpdq*^~rbP zyw;3dKi?Qe9*^tF&g7l2-WW!%@d@PDM@l{O$@P8SDdeTFu2@K}@B1$ye>zz5f1A8% zg82930lwmYkaxp*TtDEe{an4Q#FuO&kLsy74$G2n?jmuO$Y)~yuR%Vejl|a@e*^bh z8<Ot}llWlr)SBX<<k83{oE+1bPZ#o0ST}bgPe!}?kT1@Va^uNUF~1EbKb0%-iR8u7 z#Z$>QOcKu~54=}=68R!r2Tdmr#D1JhJ`C%nrQ}ICURIDFDIw*qBu~ciyO#Xno)W)- zd?WVbJLE5*Kev)k#__(J{282YJ|p+Tb;J?!x8kHeKakHKBYuhe2-eS6$p64~*$wjl z;=WmN%zt{kl*PPPj{GqCryBXpp;Dg)<P|1}hmz-x7Y`%fgyXa`c@oao(d1ikAD|EU zt6e4kLFB(+e~l*JgZk%?x5T<<8oB24F!?7qUKW#AZYA}3j{GakCmYGHpq|^wOW}Aw zNxpW3<bQ*F2acn%P2_dmzp-QFc@TLZ`netXSD3G2$TLyTc=8n7uSq74A1CGJlK+Tt zIfHy4)};%`7h%6VPkyqx<iD1D6~^-x@?Ds(J|=I8_^-&n!147x`PUt#+$-eq3F0Mj z9@hT<IYzt+`S$kWQRErj#52jaxWp%ucf|fZOMW~|;xCfxeXy(KdLOJ<Q%R@wuTx8& zS0Mie>-nnWA7Xt{i~JMRzZH2P=7EmnFJu0XB(FV1>eG{4^B+jQAXVZglE07j+{5I$ z&VPbj*ZE7yb)CPGT-Wm($aNjKm0Z{7JIS+f9yvy?@u$gWVjeCUeCK}D^?Yga)zu^} zfLzz}P00s#lK4n+UC+mo-^BWDIQf6Eo=+v$_5679X_%L0k?Zx~9P&?ao$?&H#=k_a z@5ld}T(2KLB>%Re^usaoFM5c7Pd*Ie{2KWOIFI-?lXUku4`vB9KTV!jAzy-ZxIek( z-<W)4rsUI}T;sct@4~!2m|WvWlJ9OS`A;CPfb+ss@*i=&UPOKv&li*bhUc%5>v6Y< zJQwrNF7gUEKOQ94<NX-<zI<udcjOcO#s4JN_#!y3>VAB_gv8e%*Y~6Aksri-+m?I_ z`ne<d{>qYnUviC)Cx0L7!13f7KZ!gK^Y#<u8viu;?9Ni3H_0`AGx?ed62G5Z<G&=o zfaC50xyJuW{s#6_#THVI?w1W2^1M2EAKW)=MV?Sc;@gsc9xL9Td_|V{VDjh`@qBXg zcT3GSg*-39%|6eP>pZ!J`~%!q`IcPIUq6!TaipK4(f-lzZ<fG)GIjm_W<_$nA5xcG z?_)G2*Y9bzCD-q1Mw07!vk$o*zeC9%DkuHsB2UM<I*(lAr;z{JNAg)huJO;4e~SAT z|0dV?9pvM&KKy}P<9{LVUtH=_7S|cNUo>8?Kh&QnFY(R2#J3@D7%K7o$u<8W<S*lW z=ZWMR{{Z<<xDHxMuItwq$Zrmj`fMTB_uaOWzZ@m;$H+DQH2HC?<BNt!I_)=&FHPPn zN#Yul>-z;Q$bTLz@x913egJtG?w@3m>wUId^0cv%{~U6Sf0DfNeG<Q({QY2Y{XDhy z!z%RGS&H9<{dj>~zh7Mv<4E(-_;TduOn|dBBG>QNG$)^h<EtyV#`hv`g6phga{WF| z2KjDW7tJKs@8dj9?uYf;3Ud8E&MNW%tk<`Z>-TYXk?Z%|j+5(s+B4)sr8|9Ykn4J0 zKZm0G<w>kd>tda*uHTnwNM65}6wsMm<GYeyt0eJB<of-Zbn-7T-X0)7h;`H~^3nYz z|7Xed`!6q&SBsGNE#&%robBZ6x=Z}m<of-WZ^_qSzP&-N@g;EFXg?pt@fbk97VC<p z<VjeU#**(TEA`AIpYJC=n_Ryy^8~qXvc#_>*Z6hh-7wB}lI!<n_K;V`eS_2F8vg_N zh`v&v;+Pk;-}LjJWypieNW9*M=J;TW|1nzPqsaC99X-hNGbBEVT;tQp|AY19Omh9a z`s3ukHj@08k?ZI4UnD<_1O6j&jsKMVUzw8s1#*r5jl2c!cU8yrhxVt&*CVfq^Fa*x ziUcXQH~Ax2-=vdkd=7cl(UQ+Xa{ZjlzsT3%I`mC){XX40<d-mh_K+XPdH-|r|3pZA zE|IUr_4`%w;i!Kl++WoGOh}Y`YLNHGcxXp{4fAAY^2);{p9Jz!80V?v#jt;;lb^u4 z<uUSWqa^?5$%kXUdxiX3q{QzgUs^$YANliB#m|xJ-v_urJ{R|e%HV#d_NT^IB!9A} z<llz;wQ=Gd$e$T3KA2qNN0CqNE%CF+^?GeS`4o(+MdXukpK}@c7RlacHMw4Yy+y9? zN9+9t?H|3K+C%aBe)M5-y^cFguJ13OC-=p3-*Bn0maFmQ$pf*@4<OfdP7rw*uJ0nq zb=}*IyxC-_$7u2gn~BdMKa2Mr{z+aL_l;MO>vi;N<a!;wi98bfeLML~taJ8|Yq^KW zwcJzWTJ8mME%yp}49*M1+uymrMq?aSAkW2lx+-}Z=7At`EjN^WNfjxt6Ztb{z&KkJ zc}{?MFLJ&AKbE{T)-(C!jiMx<8RVMJ9CCdh;aTzkT#vs?uHVDlMt%zCh5wLixkt$d zW4=2@{>?zC|3z}m=PJ3@zc$uidOQYTeHB1n9sM6puK5fj@7Go8lSuwO?t^8M>v(v8 z{GWKgW)}Hc+*f>(JRIX#|2~tpOY8X_#ZU2-dhR7ZlOTSWywzaw<K%G|hv&%Cn@jw! z<V`S6Zj$TYqicxsu+~4LnB>!*{NFhL#*piL-k)6Ohmqv^Ika?goi`?s>wUi&<PQ{; zdOk)Tih3?3*Z39W>oDHlB`-c)^4~_TpYuLU9*FU9oIE{P^0`K?@kQ~zmiGTW{Up9V zd406E5%~s;|L)}azFQyi85j?l<a(Vxp8PwsYYF)ojOUlgPY#p%zfN8O_cPxmFHs=z zACVuxJhPv?BI;ie$EEh$r98=}DR~*(-;N{K`_jY7b=;02*Ks?ZT*v=3avjf)k?VL~ zOrC@D(K7PK>PWlRlQ+Qgx5<NWU+!b_-y<ZS{p1yEiytNrM}HnCzcfJN&yg>|`Q-w6 zE4+{VJ9z}=vFqfE2TA@V?~}({`!`pfmnENr^GH?l)&3G+o4jwjcti4Db;U!-w*-mD zkn6g-ANgfm$BrQX1lLU&<hs6^M6Tm!7P*ekC&?S)I${aAe%|pla*f|WKC_av_fzs# zwZspScdjmep8Ov}#4nNGx-RV^uj~HZe7`)eNPcFtcvEtX4<UaX@qNf^pg!^BNhKx! zEOL#{BmW)i<OSq<pKURDFs?^7lI!0^*+M=F<LwZ6d-VTt@^+XfuaVD0dy7R#`?R00 z_mJoQ<k85#3Hja}iSJ4tjnDt|BJYXyUoyF_yRyj7V4XRUJPYIIVRAi=o+Q`f=s9vd zj@FRtakQCSkBhD3OE5niB-i+_$>-p_^$WQkM}LqnjPY@Al_KR)_m>_=HOZ$XN?a(p z9v9){<wi(+9J$61CjS@iujZ5MaWR!VeVXLIh+N~JA>WlE@ter?IC`IaBCe;tA=l&R zBzZ}H$^Ry~9!Djk<aO=m&*Z63Ah{k#!Q}tK`0q}x$5CJMzzI@7Cb=F*x#VHEuRe!d zkE2E8dK~Gv)^@GLalM-24-}R9Y$Vt9*jDo9nCCwxUyl12Uy$oM?KpXL%s=PJwLX{0 zwLV3n@7!NnpR(jypX%gVp9bW|CP}_6$hAJ<<XWF-a;;Baa;?u$a;;A?c^00JBiD8H z6mnfxKSHkcTtKet>ZRmbpO?ua`b+=3L9X?Ak6i1si(Kn-fL!Zylw9j`mOKpSxnIb& zJ~zm<KBc?fIexT0RminI^~tq9P08;cCHb}`*ZM?|Ykhi=YkdZhYkd;QwLY2T9dO=U zNUqmA%gA-USVgYq%?;#w{qiBXUcdZ@d}IabpCjaY{c@5#6YJ;8<a+&bjl2QY)g^HL z)Ok;@U&@fTXd(5fLax^@wa8cCx-5`fuV0#y9}brMTa#bH^-DPU@7Q0F<a+(mo&4#c zl7AfeMED4Dy?)Wp`)L2@^~+R>zdBj+e~etOb9J4f`RMprM)7*Ryo&tRxFXka^**`Y zx7k7dE{^lB$Tj{b`68FJ>o;<}&+{kwmLd{gxtly{d-c9eP4ZLu64#bo<2#b?Z6NW3 z$?F#tA4z@>uE!rF*ZVxP$j1jtJ}b!eKF><>Mrjhihy0b1;s?mvp`PE8zZWa<`h806 zxBWH6uTcC=#NQ;ZQ$ylQ;&Tw1&pZC&<;Yhih*u%shWjBk$@Tlijmb-4KeiyxO_BUt zlYfA6?<1d$bxcq41o$BGoh2pzB=WOZUyUcPSRnBQ<cnL2KT1Bfp7>(&{&?T;1@eVh z|Lf;awEv&S{P`}$e~~QtA0|J9`#Gn{UyPUdi{x$b{7>>N2@+ot<3;OJ1M^-b^2?<p zz8?8gcwZox{3p!w?Z_X;bN&BaXt|H}lKlHp{O{<uVdQZYB|eq>AA`m7$;)7!JcAvd zbC^$_igqm}Z;yFw75PZahi{P&!FBEj<h_v3KJuNoKX8P+9qvc{m;4&``(^U7Q=}h? zq21cgHHwS-k#{ix&Q_OvG4c&2pVCI+!^kg|5bsJ}2kW~2<bm)}<iYSv@|qYY1>_;< z&qv8?W=nk*k!PbH){z&%{o5Vnr!XE)kSAh3^zA9-Xg_!9EYHi4uf111h&;Egcwh1$ zoEOr`-@~|lgnWgbr^xmHOSg%<IPPP7NZzuc)aSqCf2N7+-ygcid1{)p9P5Wx*gxtS zn4gD{cfz=uKz={^e=hlWoX=h(Z-wiZ-Q-1aem_P28|L%Un5VU#^Wja&f5g1mmprkL z^g}jzSU>T{$?KxuULw!NJpVEIE9jr^$g?9Q{~P4JF+bEmy|i7&QUBKD!<tJzy~$T& z{LCaTfpIvW{Ot(I=Na;vxQ=**d??mGZ<3$HbNyb6)_({3^J9wNgLZvMz69e?^V593 zM*m-+_~V&U|3AnR&<|zteu(BX&R^mikk3Uv5#*l_lXw^TaE#jr$;b4R_|@cR%Zh(U zzCB1>zqhCL`~&xwZc=;^tOM(zUp3wru7A%)eKOL=Q2Z%e*QAi&s4w-IMV^HD>KXDz z82|5*ugQ>nz9xSO^XDJr$+$14e-~ftzb-=Z35}CS^-*{pOI{>Q;`(~=G2{~M{J(m= z_$>1997!?9i@!kLxSGVT^5WabAMYvgJH7ZR@+Md>-5~$cbd<CC<9?O)TWpSaBl5ji z4|FI05Xappa=-SH&v^2gb;KVekH)xqg#6pC5<ic82FB-V@@kmp*OL#!yzv%!AB?Lr z<cB9pxj&P?iFxuG`B3CjYJjBE{@e|(M4mic;_8xLN)itu{~7Q5v>`v2A@TRI4-xM{ zegX4FJb8$(#JkA9z&xBmo)sbS6UdXWzowHvT2A8Ul4rWa|4F{Gh4>2cp}6jQjr?^y z-$b5<dHw_PnmF$EkT<9z<sKq$gY)t!@(YzD{sMWm1o5ln!wSTU50pn8CuIWUc?I$> z!o_Qmf0!lSh}?CbcnJ9^tlK-1e}i$-jr>v6vp;zw^uq{p{r{<?lAjwU^~ojI<NN{g zit!RZn|waT&m!`@<t2VOc{GmSmE`*V!E59g{yv+@tD^sRkRQSL*-zfi>`-SrLLSvr z{2X~1%!j{{kHEO`L4W8tNehvD%92lw60bqtXN-75^2jFQA>>hLS10mT9V9-MJOSe& zo_zKF5}!aGpD&(8es6?$0r{43;<Lzy^%P$~{v^%|&yvr@yuFJ2i3G`KBl#p8U)#tB zV_oto`7&H*9VXv_@%amRR6QxTIQmKVZ!?UyX!6IfAA6I(j(IYL{CC9Xk^5GZa;K4N zK2MXc#eRR0`~&poYvh{GN8|%rOS${WcchD7Cg0asyz(G<)c%>7D$i?q@fPIst4Mql zdA+jYgUMYuuV;~8!#wr|`4NnhUE~cDB>$7-&!Hc#lefox2mOAMwzo3YZJn`>Q@@@h z`Hv#Mf_}>(Z-I6AH1bFszw^mI!-Tkwd~j(gcMthHSnvHn9*gxrQJiPA{xdpBJ^|!) zD~op~A5cwv2)PUUWh{9(`e7dVi<nQ=kQYb0J|Yi6J}1fVMLW-v>;J#!ck<PKQvc#Z z<x%?~r>8uxKt9@Eyc&6L%s&C-Tf!v1C3$p&cn9(^Sa(e({{+YNEb^^gB%f!=-)t}b z26=o*@m=H-YKk8vf2ctG68XX?abN6b?YEh@Zf#1ww7SIiAYX**_hj-;7+15&1F>#g zNqz*+cab+jfBr~br>WGZ7}on*|DiapYm)osN_->o^@#6CzN3}I_aWcZM?8uA9OlDm z<Xf@7=96ziKfFvne2nD(G5Prp;$M(=!hH8V`N577KON^!?Vo*!pG!Uh$L|XAGMKNn zkiUiF`U~;^oR_~RUr|-+<A?iLTAyAC;&sT6nE+=CAlJW-7J>WRMVuI2W19HkaLqrU zy-^>ZS>%;4k1Qg;jB)k?`5NT&2Kgb(58KG~dt3X+w@;G#9EEHB7YX|m#dz2H_eXqL zxQWM9;!e?-;`RTJl0mNh@Bn%9&QkCUEB`X6i+R{U@tV(j<WU$uACu3WD4FfG^2ZWE zUPzD!ZLj8Em0aJ~izKgIN7Bc@P5<DM#{I$*aL#`Txz_&`^6ruDY<ymYoBT1v-7g%l zyn<WgpC92|ZuLZYojsVmVl#<r2{+~9ROfy{zc0)Aq*FfHu1Vy{m}jP1`C|#|&i{3a z*Zs1YT=V~gykaG(|2`{!ko$!qN%A_^zZLmx9A9nVMVw?<%D6L_K=E472g$Xb^T<Ps zOFb4?`C}?~zp&YIOkr+6Ncm{F7sz$omclyG)W4b(>HaqW&i&BFimz_P_oR6JzS{`$ z;wU78yf!Awr^vPbZ<2S%{O~s1)W3#RpEH)%w7ke@dBW}ThnswAS@9jc#HU&DwXOJv zC|>(vHo1Ne?iq6Z-r|eo+HYs!rk<E$+@;^3crCY7id0V9tNBzV*Zyx!uKgcJ{v-xn zJlxc$t`z0|cb4V#EPtNz(fr@H;_F-SWicO^{QWHtgloIBz0JwBpYJ2ren=x<mmq~q zhnsR6SmiFJcrAA;xwh*oa{c>^-&pwvSoxR1^{y#5(DI&^H?%wjuKl3p&a>hhS@ADY zyw?9Ua_zVG$+h1uS@}1%@-LSrPq;q!!cDuHSn=@`ujP&**K%i(>pZs1%0I};e>25v z|LnEmv1E6rI!*EVdGZV7-AqHAt!TPDny10?tNY)YaP0^EK5PKFw)b9gZSMebZEqrZ zd(4M9aIKHdeKRQjL)?E^YQ^K!?ymov6tC_5fV|&eY4lDjpP~+ZgZ?>6@hvd_pC|Xl zVE>c+dNIlWCgtDI6yj`^GvrbGd24TZ9tbzpC?Vwjw~gh+EsvypdbN=kdy_|?LkE+O z!1x$Lo{8%X{rfccIN9Fo{9MJl^dX9$5Gm!(CGUqtmj3;C&F6<s60d&;T|E;gv9**> zTim~Tm;AcF<g=6f0Q&uF@-dj~OG+~L|8Kn&em4)gCN%wzUFCk&-~F$Tk8xl8ZXQDL zyK#G+A7Qz@K9959URNhrZm)-PEVtLg(=FFJ8(Ltwz5ZNoxxH>&Z@Ik=+-AAGe%o)k zy?#4kxxF5{Xt}-aa(ATjn&~%t{o`lA+028^0p_{C<@P#9KW}ATw%0QeR=mC5h_l>2 z?<ZJppZ9Ytx6kj>E%!GS#J0fl28zz(a?9=W=6cKR^X4|o?epe-%kA^y3Cr#C+C|Il z^Op{8^Ky_?Pd^NL<4rC1w>;SL5X<d(SVK%c2yv4hJL>K6q8}0%*BC=OHq`Smulk!8 zoz1v?+-Y0Xbxee~qb1%x9>d8sKEiVQIE^L8^x_j|xqbW&A@7Rk36|T(bsD)pp66Ju zePyVCT>E0W<@P)<n_S};SZ>b`OUSi<mRoMm8>`51TgGR-<@S8CnLG~9w^?q_GrP%S z@qEAK_WW~*T=&fh%k6pT9J!A5i<Z~G@8;nOc@KTf3_xcy5B5CfOFq;c<(zjcx97JS z<ZTh}Z@KOh^HLCbDB?pbx97ufa-BOOEVt*$SaOYzv)rCPhmd1=;*(&xJ+G#bw?zGO zEcb_*hXQhK?{v!>Sn;#T_1Ifrd4Ltagk0m7TW-(WtH^cythd~r&o`56UfV3U=lR{_ zEl}6}mg_z-FC8L}Li`EK?eoGp@^Hjov^)rA9<GqzI<_&do0skLh%dR0b^E-deP;5n zVZ|GdHt1~j`N%%+=;xG8xyJQ)e;A8q<G#+1ZVj-=Hjbj)FD<ZK=ScIyO3Ur@$orPt z=L`M+2$}q~E+(JLR=kcW<K;@4e`VhAlV9EcHniNH&pTRf&)Wkmx98^^%Wv%~r-Xl4 zZqK)?Ew|^@ZI;{f=hv3o^W?9V+w-AcDQTqX9~}!unptkoZ_$?9^VkT>?fELta(iBS z)^dCP*=V`HsR*`xmN!sz9?w`FVEJ{+^_Vs<>;K2nwAY>onqyEJZ)5_ob+x>)qVt$w zc@xX0S{`KiLd)&rakb_4are39_VJ}zntD#rC(fgeF>?&1Tds95jx61;>O5_{v=y)C zf8*vyH$6`pyGPM^T!7z=+sEm8%kATIzvcFEdf0N4zqVP=?<Rly_$^{Oz}d7u9p$M{ z9n0<Gx|8L8h&2x*EVqyAX_ni^^|O|1pPPJMw%pXei$Q1GVYz+0@3Gv(_i{)3_~`s^ z+GWoJI&T}d=K-B>job4;tN~{;5B5BeX1P5N%(mQ~2Ub~b&jY(Hx95R#mfQ1yZ!vdu z-1V{NfgsE6c_7wue@W{8H_h?}me004!17g=2U@<{a(f;)XSqEO_~QI!nrF`gL6+O| zK&<6@44UH8EVt)@*_H=e^;~7S9uwx}-Ikj=>3y?v<a)o$r)A#cvH6Kf&SQSAJf`Vy zxhYwRE%Q?f@_ky4PRvjAX_=Il=hHHGoIJVpYD?F!zTpGMWlhLWAD7)eJufmlF*P@F zY)s#Q`C%?sazR08XlU!C#Ju!mmy>gPc5090f%&1K$!UqXuKe7@^!&UY$uR>Hoqu9t z2DWwiv`kG-cBK>~r{v_joEl}N{C_XNX_PkAl;zYVJtn$!%tTM#)r04^o0yWEKQ6aN zx;v>!J9a>?^Z~sFhB(c+GjEQS{7f&qi{_Wp3u4ClxOakixxLGknmxhYr){!RCb<%` zvc@GRx=TidHKYF(>9Gl+tzCoMjc_@;Dn(mzThqtpWECQzbb+V#-_Fu5$Ya*jt)bzr zKCUt8Sy`_1?DYKf#H{owDejKG-9gU4^4yO0PSVtrd{=zV?M~wzJTO1p)iuQ#qvIy` zh)Yk8nHcXH80s3}?9=!VSIk{I(o0FV$~Qgcbc5$n;3aXGQ_bYul*IfL=U5q+o0#e} z@b4Df#z{Lm1w$ewCN7;)4$N<Tugf(d`*!Dzmfp;EB|7aL>$KS2V5hMIdc~vRt-0ZM zb`tuCtB3>0Y5Lvc-%HCwo!Z~3JJsBoNkZG*8tXb~$gvh0VzqgIGvGY6JH%6~-EF?J z$uy8K7+i@H3VQTT3XO?zj;hhO21ty%@ok(I{+)wPMnb5E{_xha@LSzsn#Eo6zYg#_ z`sA+uaC)<KYtI8gS{d3_U&Z*4o-$q4#-*c!cKQFR&h3Vbjq62|>cISV?jt(;f9{Q5 z|1<lsi3P4aGZ);Iw=>pU&Qy_-E0bDWx;ZI@hPwLRws==eXdCm?Orx&+$vG)816$wT zr%rf?>(0X@#-4^lU9OaDbCPnUkLfWaFV~&DD?QJZmz<cDnA^iSj$)j%;KanN2`Nqo z#<X*xjCRtK1Mj_EmZ@8atA|zH-bo=bPV#~7>c`xkP0b<fO3ckooQ&NtIwfgBsxvK) z8Rwj<-M=R$CFQ1Qhk$Yuvr|*dDcqdx#5_<|dUlHD;!K7b?yLY>b{*`b9n;b|3l$W& za#C{h#$`LRaQ<Z1#1NmB$>YY3P04l^3)$oHQ(AWKdw+|({KVu;q)$n6jd4~5PR^;h z<0j--OPT+tUvr&{7khoKnML3iUDFph&(oYAEQ4-6dP^UN^m>hA(uWr!{Rj`~+ZQ6e zsjJ!S@;f-s|8D*B-Kp<PZ?1*@Zu;p+?{u$wGwq+~{QTYYvnAQBYfF>9Qz6nX@Q}W9 zA<{2Fdb|JbD@6L2Jft_*ZhyD^>pi58C`9`AJft^$`ghCUjr8{Zn_GzV`#qFDuMp{v zct{^vi1g<?q+eKw^uKyY|5PE;``|j<9zXvqMEbHG(l0JV`Whb6M-?J{Ll5bnDMb1Z z59yZ{BE8;MvHS1YLZpvH`S$o-R*3X*9@0k_BK;5#?O$Gq^rJnbUr~tkIUdr#P>A$; zpUUokGpGIC`D3<+@?R-L`lpcI-hV3#kzVho+4X<55b0NWD1S{M(y#ZB{<T7+-|V6P z%>7sHe}BhJC~m_$zsaWe2lah;b!4kg-Jh*6c}Cn4`K3k+i44JgD|7yB==|vZsDXHM z&&ot14C>>fpOd-;_=U@F?zqX*TY8S?=jML1F>|lV-n4xCo}+o4)0=a;v67U5{v9Lz zT!Kk!HVX66HCY6`5Q_;g2=51({xkRGxc?S8=B_`bpNIDu?0d3K=w0<U=P6I^e*x+H znMBsc?JwhiF>e1Qq_^+Qnrx_=J|&&R?(st}<g}HNbex#>oA)%i{efP}FOR^#D!-nW z@@IP}zm<pbJ9;TU80BX;Y3z-f>C?_j`O8s$0ur0{o3YC6PxVs%QwZ#e^!mW%CwVE~ zT`?z7EE1aX+c-a5{-a*X*S`npkM#P$<(u~>od50`KUYvt8BK^sPQTAfdi_4+U!}j{ zCA}ZseEO^LbJa=jY5c~T9qVlN_zicSbN_`o4Kk5@{4_`Tqf92&#_ezIfT!{kP<{f^ zn*C?4-?;o#FXhic`Fb6SZ0<UKlf0C_4dsVe<(um-E`Ony^1nv;v05-5o$x!he|RbX zqKER$T+QY0^iqC+dGpKJ?DzJ}b1uKQbK>!||3Z*H*d($x85OtTrkDErhuuAXBAsMh ze{+8IRQ@oO-{W>s?%%ln&7Aa}#!tA1@}oVJKh{h6FQNRQe^Gv#m-6F0lpo`v{MBB{ zzk%}gb5U9iZvRVO%1`r9es>S$pYl?E8%#WA&bBw+|Hr(PKixz5W?%CDZ|dwkPy2r~ z%D3MWH1*)}8#?Jd?f)en%J1c&{N7&5pW~%`?*Hyy%3trH{5~GaPxVs%dX#U@S@y=| zCwVD<w}<l0T8R69nV0fUq5PJ1;m+^e|4Y1-f5Jog{XLZbjhFH(;=<*x#^0A-%D>{F z{DB_Iui>J&nI8ly865!E^<;zpIz@1H7c?{b&9jvZwMBk^Zmd-&`lX(*-^el(Ap9 z)YLwI5BAXh^<K)Khw=kWqpgjK@mb@g{2&kIo4J(7-+3?PzmD?Fn%UmC|Ic_SKf*)# z!<~${{4UOgqo@8qg7Ty6!kyo_{T-b2p89_X%8x~Qvwj)r{BZdNUdpeB5Am2am%VZO z^SqS59Oc{V7nhR}m%q$Q`GZh?6}xcfcW(dZUeaeE{a;;w?(<Ur{T}vTl85@&aIVul z?Y~(lKbq>#{Wr@?`dvuR>nBeCmXqGZIH$oownIp-{jD$RbA4Rzq<4=W4Z!0$5A7f0 zyr${&xZa8SQ*xgZDF1B6ov(2Hw|gny2Y-lp$UI4J#&4SQ!{s0FQvNQJz}YHk0(pAZ z{CV0-`oq&DK^zS@uKx)y^&j$)L?&RznCfIYKUy8_zpGx#Z~Cy5&+{sm|ErhsH}96n z1<v?3n<;;+^TXwrb%66U@#&A4f1S@^Y65wBS8OTgbx-3b)?8RRTddXoan5tiPTOAt z<?B4*PUQU4Z@&C?WSWXRYF+g)2<eN_ehM)+R-8@Clhk)V4|D=N&7TVnNP4ZO>Azen zKlPqo>K~5sy{%ug{sWO->!*)nkY1nbqo&j6X-H4a_es<A&iTpSobWrgWCuL$zg1|z zzj@KwO#99Ihnim7Z|cKkJLHq*CpBH-XP)`^Om=?KoF7haE>n5#a>)6TwWP0%^Pt<D Xf4Kb>9rKia_m>hmSqnr4oc{j+B(;-L literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/Makefile b/week01/cmake-build-debug/Makefile index 3fee4761..25447047 100644 --- a/week01/cmake-build-debug/Makefile +++ b/week01/cmake-build-debug/Makefile @@ -111,44 +111,44 @@ depend: .PHONY : depend #============================================================================= -# Target rules for targets named trapping_rain_water +# Target rules for targets named 40_Find_Ksmallest_nums # Build rule for target. -trapping_rain_water: cmake_check_build_system - $(MAKE) -f CMakeFiles/Makefile2 trapping_rain_water -.PHONY : trapping_rain_water +40_Find_Ksmallest_nums: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 40_Find_Ksmallest_nums +.PHONY : 40_Find_Ksmallest_nums # fast build rule for target. -trapping_rain_water/fast: - $(MAKE) -f CMakeFiles/trapping_rain_water.dir/build.make CMakeFiles/trapping_rain_water.dir/build -.PHONY : trapping_rain_water/fast +40_Find_Ksmallest_nums/fast: + $(MAKE) -f CMakeFiles/40_Find_Ksmallest_nums.dir/build.make CMakeFiles/40_Find_Ksmallest_nums.dir/build +.PHONY : 40_Find_Ksmallest_nums/fast -trapping_rain_water.o: trapping_rain_water.cpp.o +40_Find_Ksmallest_nums.o: 40_Find_Ksmallest_nums.cpp.o -.PHONY : trapping_rain_water.o +.PHONY : 40_Find_Ksmallest_nums.o # target to build an object file -trapping_rain_water.cpp.o: - $(MAKE) -f CMakeFiles/trapping_rain_water.dir/build.make CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.o -.PHONY : trapping_rain_water.cpp.o +40_Find_Ksmallest_nums.cpp.o: + $(MAKE) -f CMakeFiles/40_Find_Ksmallest_nums.dir/build.make CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o +.PHONY : 40_Find_Ksmallest_nums.cpp.o -trapping_rain_water.i: trapping_rain_water.cpp.i +40_Find_Ksmallest_nums.i: 40_Find_Ksmallest_nums.cpp.i -.PHONY : trapping_rain_water.i +.PHONY : 40_Find_Ksmallest_nums.i # target to preprocess a source file -trapping_rain_water.cpp.i: - $(MAKE) -f CMakeFiles/trapping_rain_water.dir/build.make CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.i -.PHONY : trapping_rain_water.cpp.i +40_Find_Ksmallest_nums.cpp.i: + $(MAKE) -f CMakeFiles/40_Find_Ksmallest_nums.dir/build.make CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.i +.PHONY : 40_Find_Ksmallest_nums.cpp.i -trapping_rain_water.s: trapping_rain_water.cpp.s +40_Find_Ksmallest_nums.s: 40_Find_Ksmallest_nums.cpp.s -.PHONY : trapping_rain_water.s +.PHONY : 40_Find_Ksmallest_nums.s # target to generate assembly for a file -trapping_rain_water.cpp.s: - $(MAKE) -f CMakeFiles/trapping_rain_water.dir/build.make CMakeFiles/trapping_rain_water.dir/trapping_rain_water.cpp.s -.PHONY : trapping_rain_water.cpp.s +40_Find_Ksmallest_nums.cpp.s: + $(MAKE) -f CMakeFiles/40_Find_Ksmallest_nums.dir/build.make CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.s +.PHONY : 40_Find_Ksmallest_nums.cpp.s # Help Target help: @@ -157,11 +157,11 @@ help: @echo "... clean" @echo "... depend" @echo "... rebuild_cache" - @echo "... trapping_rain_water" + @echo "... 40_Find_Ksmallest_nums" @echo "... edit_cache" - @echo "... trapping_rain_water.o" - @echo "... trapping_rain_water.i" - @echo "... trapping_rain_water.s" + @echo "... 40_Find_Ksmallest_nums.o" + @echo "... 40_Find_Ksmallest_nums.i" + @echo "... 40_Find_Ksmallest_nums.s" .PHONY : help diff --git a/week01/cmake-build-debug/bulls_and_cow b/week01/cmake-build-debug/bulls_and_cow new file mode 100755 index 0000000000000000000000000000000000000000..d970a592997b45c06dba6724d291429fa0e0bc34 GIT binary patch literal 107040 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 literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/valid_anagram b/week01/cmake-build-debug/valid_anagram new file mode 100755 index 0000000000000000000000000000000000000000..8740bb3d13dbadbadece3d150024d0f391c04837 GIT binary patch literal 89896 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 H*XaKMc3^#V literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/week01.cbp b/week01/cmake-build-debug/week01.cbp index 548b1fbc..6444ecd8 100644 --- a/week01/cmake-build-debug/week01.cbp +++ b/week01/cmake-build-debug/week01.cbp @@ -27,8 +27,8 @@ <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> </MakeCommands> </Target> - <Target title="trapping_rain_water"> - <Option output="/home/lewang/algorithm018/week01/cmake-build-debug/trapping_rain_water" prefix_auto="0" extension_auto="0"/> + <Target title="40_Find_Ksmallest_nums"> + <Option output="/home/lewang/algorithm018/week01/cmake-build-debug/40_Find_Ksmallest_nums" prefix_auto="0" extension_auto="0"/> <Option working_dir="/home/lewang/algorithm018/week01/cmake-build-debug"/> <Option object_output="./"/> <Option type="1"/> @@ -44,14 +44,14 @@ <Add directory="/usr/include"/> </Compiler> <MakeCommands> - <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 trapping_rain_water"/> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 40_Find_Ksmallest_nums"/> <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> </MakeCommands> </Target> - <Target title="trapping_rain_water/fast"> - <Option output="/home/lewang/algorithm018/week01/cmake-build-debug/trapping_rain_water" prefix_auto="0" extension_auto="0"/> + <Target title="40_Find_Ksmallest_nums/fast"> + <Option output="/home/lewang/algorithm018/week01/cmake-build-debug/40_Find_Ksmallest_nums" prefix_auto="0" extension_auto="0"/> <Option working_dir="/home/lewang/algorithm018/week01/cmake-build-debug"/> <Option object_output="./"/> <Option type="1"/> @@ -67,7 +67,7 @@ <Add directory="/usr/include"/> </Compiler> <MakeCommands> - <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 trapping_rain_water/fast"/> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 40_Find_Ksmallest_nums/fast"/> <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> @@ -84,8 +84,8 @@ </MakeCommands> </Target> </Build> - <Unit filename="/home/lewang/algorithm018/week01/trapping_rain_water.cpp"> - <Option target="trapping_rain_water"/> + <Unit filename="/home/lewang/algorithm018/week01/40_Find_Ksmallest_nums.cpp"> + <Option target="40_Find_Ksmallest_nums"/> </Unit> <Unit filename="/home/lewang/algorithm018/week01/CMakeLists.txt"> <Option virtualFolder="CMake Files\"/> diff --git a/week01/valid_anagram.cpp b/week01/valid_anagram.cpp new file mode 100644 index 00000000..e3bed68a --- /dev/null +++ b/week01/valid_anagram.cpp @@ -0,0 +1,55 @@ +// +// Created by lewang on 10/25/20. +// +//Success: +//Runtime:4 ms, faster than 99.31% of C++ online submissions. +//Memory Usage:7.4 MB, less than 16.16% of C++ online submissions. +#include <iostream> +#include <string> +#include <vector> +using namespace std; + +class Solution { +public: + bool isAnagram(string s, string t) { + int s_len = s.size(); + int t_len = t.size(); + if(s_len != t_len) return false; + char s_char ;//= s[0]; + char t_char ;//= t[0]; + int size=0; + vector<int> cache (26,0); + for (int i = 0; i < s_len; ++i) { + s_char = s[i]; + t_char = t[i]; + cout << s_char <<" "<< t_char<< endl; + cout << s_char - 'a' <<" "<< t_char - 'a'<< endl; + cout << cache[s_char - 'a'] <<endl; + if(cache[s_char-'a']++ < 0) { + size++; + } + cout << cache[s_char - 'a'] <<endl; + cout << cache[t_char - 'a'] <<endl; + if(cache[t_char-'a']-- > 0) { + size++; + } + cout << cache[t_char - 'a'] <<endl; + cout << "size: " << size <<endl; + } + if(size == s_len) { + return true; + } else { + return false; + } + + } +}; + +int main() { + string s = "anagram"; + string t = "nawaram"; + Solution test; + bool ans = test.isAnagram(s,t); + cout << ans <<endl; + return 0; +} \ No newline at end of file From 30406604fd78d116e8da6e230fba9c90c7db3e4a Mon Sep 17 00:00:00 2001 From: Ella22le <1071444737@qq.com> Date: Thu, 29 Oct 2020 16:46:28 +0800 Subject: [PATCH 07/21] update week02 note --- .idea/algorithm018.iml | 16 +++ .idea/encodings.xml | 4 + .idea/misc.xml | 6 + .idea/modules.xml | 8 ++ .idea/workspace.xml | 245 +++++++++++++++++++++++++++++++++++++++++ week02/NOTE.md | 245 ++++++++++++++++++++++++++++++++++++++++- 6 files changed, 523 insertions(+), 1 deletion(-) create mode 100644 .idea/algorithm018.iml create mode 100644 .idea/encodings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/workspace.xml diff --git a/.idea/algorithm018.iml b/.idea/algorithm018.iml new file mode 100644 index 00000000..2bc2d3d7 --- /dev/null +++ b/.idea/algorithm018.iml @@ -0,0 +1,16 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module type="CPP_MODULE" version="4"> + <component name="FacetManager"> + <facet type="Python" name="Python facet"> + <configuration sdkName="" /> + </facet> + </component> + <component name="NewModuleRootManager"> + <content url="file://$MODULE_DIR$"> + <excludeFolder url="file://$MODULE_DIR$/venv" /> + </content> + <orderEntry type="inheritedJdk" /> + <orderEntry type="sourceFolder" forTests="false" /> + <orderEntry type="library" name="Python 3.7 (algorithm018) interpreter library" level="application" /> + </component> +</module> \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 00000000..15a15b21 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="Encoding" addBOMForNewFiles="with NO BOM" /> +</project> \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..28a804d8 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="JavaScriptSettings"> + <option name="languageLevel" value="ES6" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 00000000..5915613b --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/.idea/algorithm018.iml" filepath="$PROJECT_DIR$/.idea/algorithm018.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 00000000..8228088c --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,245 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="CMakeRunConfigurationManager" shouldGenerate="true" shouldDeleteObsolete="true"> + <generated /> + </component> + <component name="CMakeSettings"> + <configurations> + <configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" /> + </configurations> + </component> + <component name="ChangeListManager"> + <list default="true" id="492ccc1f-36c5-4028-af63-9f3db3eaf736" name="Default Changelist" comment=""> + <change afterPath="$PROJECT_DIR$/week01/CMakeLists.txt" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/week01/lc-283_move-zeros.cpp" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/week01/lc-283_movezeros.py" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week01/NOTE.md" beforeDir="false" afterPath="$PROJECT_DIR$/week01/NOTE.md" afterDir="false" /> + </list> + <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> + <option name="SHOW_DIALOG" value="false" /> + <option name="HIGHLIGHT_CONFLICTS" value="true" /> + <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> + <option name="LAST_RESOLUTION" value="IGNORE" /> + </component> + <component name="FileEditorManager"> + <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/week01/NOTE.md"> + <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> + <state split_layout="SPLIT"> + <first_editor relative-caret-position="586"> + <caret line="45" selection-start-line="45" selection-end-line="45" /> + </first_editor> + <second_editor /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/week01/lc-283_move-zeros.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="76"> + <caret line="4" column="8" lean-forward="true" selection-start-line="4" selection-start-column="8" selection-end-line="4" selection-end-column="8" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/week01/lc-283_movezeros.py"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="114"> + <caret line="6" lean-forward="true" selection-start-line="6" selection-end-line="6" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/week01/CMakeLists.txt"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="38"> + <caret line="2" selection-start-line="2" selection-end-line="2" /> + </state> + </provider> + </entry> + </file> + </leaf> + </component> + <component name="FileTemplateManagerImpl"> + <option name="RECENT_TEMPLATES"> + <list> + <option value="CMakeLists.txt" /> + <option value="Python Script" /> + </list> + </option> + </component> + <component name="Git.Settings"> + <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> + </component> + <component name="IdeDocumentHistory"> + <option name="CHANGED_PATHS"> + <list> + <option value="$PROJECT_DIR$/week01/CMakeLists.txt" /> + <option value="$PROJECT_DIR$/week01/NOTE.md" /> + <option value="$PROJECT_DIR$/week01/lc-283_movezeros.py" /> + <option value="$PROJECT_DIR$/week01/lc-283_move-zeros.cpp" /> + </list> + </option> + </component> + <component name="JsFlowSettings"> + <service-enabled>true</service-enabled> + <exe-path /> + <other-services-enabled>true</other-services-enabled> + <auto-save>true</auto-save> + </component> + <component name="ProjectFrameBounds" extendedState="6"> + <option name="x" value="266" /> + <option name="y" value="-8" /> + <option name="width" value="1072" /> + <option name="height" value="1005" /> + </component> + <component name="ProjectLevelVcsManager"> + <ConfirmationsSetting value="2" id="Add" /> + </component> + <component name="ProjectView"> + <navigator proportions="" version="1"> + <foldersAlwaysOnTop value="true" /> + </navigator> + <panes> + <pane id="Scope" /> + <pane id="ProjectPane"> + <subPane> + <expand> + <path> + <item name="algorithm018" type="b2602c69:ProjectViewProjectNode" /> + <item name="algorithm018" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="algorithm018" type="b2602c69:ProjectViewProjectNode" /> + <item name="algorithm018" type="462c0819:PsiDirectoryNode" /> + <item name="week01" type="462c0819:PsiDirectoryNode" /> + </path> + </expand> + <select /> + </subPane> + </pane> + </panes> + </component> + <component name="PropertiesComponent"> + <property name="WebServerToolWindowFactoryState" value="false" /> + <property name="last_opened_file_path" value="$PROJECT_DIR$" /> + <property name="node.js.detected.package.stylelint" value="true" /> + <property name="node.js.detected.package.tslint" value="true" /> + <property name="node.js.path.for.package.stylelint" value="project" /> + <property name="node.js.path.for.package.tslint" value="project" /> + <property name="node.js.selected.package.stylelint" value="" /> + <property name="node.js.selected.package.tslint" value="" /> + <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> + <property name="nodejs_npm_path_reset_for_default_project" value="true" /> + <property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" /> + </component> + <component name="RunDashboard"> + <option name="ruleStates"> + <list> + <RuleState> + <option name="name" value="ConfigurationTypeDashboardGroupingRule" /> + </RuleState> + <RuleState> + <option name="name" value="StatusDashboardGroupingRule" /> + </RuleState> + </list> + </option> + </component> + <component name="SvnConfiguration"> + <configuration /> + </component> + <component name="TaskManager"> + <task active="true" id="Default" summary="Default task"> + <changelist id="492ccc1f-36c5-4028-af63-9f3db3eaf736" name="Default Changelist" comment="" /> + <created>1603111084520</created> + <option name="number" value="Default" /> + <option name="presentableId" value="Default" /> + <updated>1603111084520</updated> + <workItem from="1603111085881" duration="1392000" /> + <workItem from="1603112514728" duration="7750000" /> + </task> + <servers /> + </component> + <component name="TimeTrackingManager"> + <option name="totallyTimeSpent" value="9142000" /> + </component> + <component name="ToolWindowManager"> + <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" /> + <editor active="true" /> + <layout> + <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.07089552" /> + <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> + <window_info id="Favorites" order="2" side_tool="true" /> + <window_info anchor="bottom" id="Inspection Results" weight="0.329718" /> + <window_info anchor="bottom" id="Message" order="0" /> + <window_info anchor="bottom" id="Find" order="1" /> + <window_info anchor="bottom" id="Run" order="2" /> + <window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> + <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> + <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> + <window_info anchor="bottom" id="TODO" order="6" /> + <window_info anchor="bottom" id="Database Changes" order="7" /> + <window_info anchor="bottom" id="Version Control" order="8" /> + <window_info anchor="bottom" id="Terminal" order="9" /> + <window_info anchor="bottom" id="Event Log" order="10" side_tool="true" /> + <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> + <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> + <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> + <window_info anchor="right" id="Database" order="3" /> + </layout> + </component> + <component name="TypeScriptGeneratedFilesManager"> + <option name="version" value="1" /> + </component> + <component name="XSLT-Support.FileAssociations.UIState"> + <expand> + <path> + <item name="algorithm018" type="b2602c69:ProjectViewProjectNode" /> + <item name="algorithm018" type="462c0819:PsiDirectoryNode" /> + </path> + </expand> + <select /> + </component> + <component name="editorHistoryManager"> + <entry file="file://$PROJECT_DIR$/week01/CMakeLists.txt"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="38"> + <caret line="2" selection-start-line="2" selection-end-line="2" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/NOTE.md"> + <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> + <state split_layout="SPLIT"> + <first_editor relative-caret-position="586"> + <caret line="45" selection-start-line="45" selection-end-line="45" /> + </first_editor> + <second_editor /> + </state> + </provider> + <provider editor-type-id="text-editor"> + <state relative-caret-position="342"> + <caret line="18" column="6" selection-start-line="18" selection-start-column="6" selection-end-line="18" selection-end-column="6" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/lc-283_movezeros.py"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="114"> + <caret line="6" lean-forward="true" selection-start-line="6" selection-end-line="6" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/lc-283_move-zeros.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="76"> + <caret line="4" column="8" lean-forward="true" selection-start-line="4" selection-start-column="8" selection-end-line="4" selection-end-column="8" /> + </state> + </provider> + </entry> + </component> +</project> \ No newline at end of file diff --git a/week02/NOTE.md b/week02/NOTE.md index 50de3041..845c9611 100644 --- a/week02/NOTE.md +++ b/week02/NOTE.md @@ -1 +1,244 @@ -学习笔记 \ No newline at end of file +学习笔记 + +# 哈希表 + +哈希表(Hash table,也叫散列表),是根据关键码值(Key value)而直接进行访问的数据结构。也就是说,它通过把关键码值映射到表中一个位置来访问记录,以加快查找的速度。这个映射函数叫做 ** 散列函数 **,存放记录的数组叫做散列表。 + +## 哈希碰撞 (Hask Collisions) +解决方法 + - 拉链法 (链地址法 + - 散列法 (开放地址法 + +|search|insertion|deletion| +|---------|---------|---------| +|O(1)|O(1)|O(1)| + +在c++STL中,map 对应的数据结构是 **红黑树**。红黑树是一种近似于平衡的二叉查找树,里面的数据是有序的。在红黑树上做查找操作的时间复杂度为 O(logN)。而 unordered_map 对应 哈希表,哈希表的特点就是查找效率高,时间复杂度为常数级别 O(1), 而额外空间复杂度则要高出许多。所以对于需要高效率查询的情况,使用 unordered_map 容器。而如果对内存大小比较敏感或者数据存储要求有序的话,则可以用 map 容器 + +map是键值对 + +set只有单个不重复元素 + +##Todo 学习 +**unordered_map** +底层实现hashmap的get() pop()函数 +**map** + +**set** +hastset +concurrentset +skiplistset..... + +## 实战练习 + +### 1. 有效的字母异位词 + +### 2. 字母异位词分组 + +### 3. 两数之和 +三数之和 +四数之和 + +# 树,二叉树&二叉搜索树 +## 节点的定义 +```c++ +struct TreeNode{ + int val; + TreeNode* left; + TreeNode* right; + TreeNode(int x): val(x), left(NULL),right(NULL) {} +} +``` +## 二叉树 +每个节点最多只有两个分支的树结构. +通常分支分支被成为"左子树"和"右子树" +二叉树是有序树, 二叉树的分支具有左右次序, 不能随意颠倒. + +### 相关术语 + +1. 结点: 包含一个数据元素以及若干指向子数分支的信息 +2. 结点的度: 一个结点拥有子树的数目称为该结点的度 +3. 叶子结点: 也称终端节点, 没有子树的结点或者度为零的结点 +4. 分支结点: 也称为非终端结点,度不为零的结点为非终端结点 +5. 树的度: 树中所有结点的度的最大值 +6. 结点的层次: 从根节点开始,假设根节点为第一层,根节点的子节点为第二层以此类推, + 如果某一节点位于第L层,则其子节点位于L+1层 +7. 树的深度: 也称为树的高度,树中所有结点的层次的最大值称为树的深度 +8. 有序树: 如果树中各个子树的次序是有先后次序,则称为该树是有序树 +9. 无序树: 如果树中各个子树的次序没有先后次序,则称该树为无序树 +10. 森林: 由m(m>=0)棵互不相交的树构成一片森林,如果把一棵非空的树的根节点删除, + 则该树就变成一片森林,森林中的树由原来根节点的各棵子树构成 + +### 一些性质 + +1. 二叉树的第*i*层至多有2<sup>i-1</sup>(i <= 1)个结点 +2. 深度为h的二叉树中至多含有2<sup>h</sup>-1个节点 +3. 具有n个几点的完全二叉树深度为log<sub>2</sub><sup>x</sup>+1个结点 + +### 二叉树的遍历 + +- 深度遍历 + - 前序遍历(pre-order): 根结点 -> 左子树 -> 右子树 + - 中序遍历(in-order): 左子树 -> 跟结点 -> 右子树 + - 后序遍历(post-order): 左子树 -> 右子树 -> 根结点 +- 广度遍历: 按层次遍历(需要堆等数据结构的支撑) + +多用递归实现 +实例(c++) + + +## 二叉搜索树 +二叉搜索树,也称二叉排序树,有序二叉树(ordered binary tree),排序二叉树(sorted binary tree), 是指一棵空树或者具有下列性质的二叉树: +1.左子树上的**所有结点**的值均小于它的根结点的值; +2.右子树上的**所有结点**的值均大于它的根结点的值; +3.以此类推:左,右子树叶分别为二叉搜索树 + + 中序遍历是升序遍历??? + +|查询|插入|删除| +|------|------|------| +|O(logn)|O(logn)|O(logn)| + + 删除,需要找新的结点替代被删除的结点,保持树的结构,右子树第一个大于需要替换掉的结点... + +## 实战训练 +**Todo** +c++ 的前中后序遍历的实现 + +### 1.preorder + +### 2. inorder + +### 3. postorder + + + +# 堆(Heap) &二叉堆(Binary Heap) +堆: 可以迅速找到一堆数中的最大或者最小值的数据结构。 +将根结点最大的堆叫做大顶堆或大根堆,根结点最小的堆叫做小顶堆或小根堆 + +常见的堆有二叉堆,斐波那契堆 (不同的具体实现,[参考wiki](https://en.wikipedia.org/wiki/Heap_(data_structure)) + +|Operation| find-max|delete-max|insert|increase-key|meld| +|-----|-----|-----|-----|-----|-----|-----| +|Binary|Θ(1)|Θ(log n)|O(log n)|O(log n)|Θ(n)| +|Leftist|Θ(1)|Θ(log n)|Θ(log n)|O(log n)|Θ(log n)| +|Binomial|Θ(1)|Θ(log n)|Θ(1)|Θ(log n)|O(log n)[c]| +|Fibonacci|Θ(1)|O(log n)|Θ(1)|Θ(1)[b]|Θ(1)| +|Pairing|Θ(1)|O(log n)|Θ(1)|o(log n)|Θ(1)| +|Brodal|Θ(1)|O(log n)|Θ(1)|Θ(1)|Θ(1)| +|Rank-pairing|Θ(1)|O(log n)|Θ(1)|Θ(1)[b]|Θ(1)| +|Strict Fibonacci|Θ(1)|O(log n)|Θ(1)|Θ(1)|Θ(1)| +|2-3 heap|O(log n)|O(log n)|O(log n)|Θ(1)| ?| + +insert :先插入左/右的末尾,然后根据堆的定义将其向上浮动 + +delete: 删除堆顶,把堆尾元素放入堆顶,和更大的子儿子进行换位。 + +**Note** 二叉堆是堆的一种常见且简单的实现,但并不是最优的实现。(在实际工程中可以直接调用priority_quene) + +可以看一下c++中heap的源码实现 + + + +## 实战训练 + +### 面试题40. 最小的K个数 + +1. 排序,取前k个数, nlogn + +2. 堆,nlogk +3. 快排 quick-sort + +堆的实现 + +heap 小顶堆 + +### 滑动窗口的最小值 + +1. 双端队列 +2. heap (priority——query) + +### 前k个高频元素 + +1. hash map+大顶堆 + + + +# 图 + +## 图的属性和分类 + +现在算法面试中用的比价少 + +有点有边 + +- Graph(V,E) + +- V - vertex : 点 + + 1. 度(入度和出度) 连了多少个边 + 2. 点与点之间:连通与否 + + + +- E - edge :边 + 1. 有向和无向(单行线) + 2. 权重(边长) + + + +DFS代码 (Depth-First-Search) 深度优先搜索 + + 递归写法 + +``` +visited = set() //和树中最大的区别 +``` + +BFS (Breadth-First-Search) 宽度优先搜索 + + + + ## 图的高级算法 (有兴趣自学) + + + +## 参考链接 + +- 连通图个数:[ https://leetcode-cn.com/problems/number-of-islands/](https://leetcode-cn.com/problems/number-of-islands/) +- 拓扑排序(Topological Sorting):[ https://zhuanlan.zhihu.com/p/34871092](https://zhuanlan.zhihu.com/p/34871092) +- 最短路径(Shortest Path):Dijkstra https://www.bilibili.com/video/av25829980?from=search&seid=13391343514095937158 +- 最小生成树(Minimum Spanning Tree):[ https://www.bilibili.com/video/av84820276?from=search&seid=17476598104352152051](https://www.bilibili.com/video/av84820276?from=search&seid=17476598104352152051) + + + +# 本周作业 + +### 简单: + +- 写一个关于 HashMap 的小总结。 + 说明:对于不熟悉 Java 语言的同学,此项作业可选做。 +- [有效的字母异位词](https://leetcode-cn.com/problems/valid-anagram/description/)(亚马逊、Facebook、谷歌在半年内面试中考过) +- [两数之和](https://leetcode-cn.com/problems/two-sum/description/)(近半年内,亚马逊考查此题达到 216 次、字节跳动 147 次、谷歌 104 次,Facebook、苹果、微软、腾讯也在近半年内面试常考) +- [N 叉树的前序遍历](https://leetcode-cn.com/problems/n-ary-tree-preorder-traversal/description/)(亚马逊在半年内面试中考过) +- HeapSort :自学 https://www.geeksforgeeks.org/heap-sort/ + +### 中等: + +- [字母异位词分组](https://leetcode-cn.com/problems/group-anagrams/)(亚马逊在半年内面试中常考) +- [二叉树的中序遍历](https://leetcode-cn.com/problems/binary-tree-inorder-traversal/)(亚马逊、字节跳动、微软在半年内面试中考过) +- [二叉树的前序遍历](https://leetcode-cn.com/problems/binary-tree-preorder-traversal/)(字节跳动、谷歌、腾讯在半年内面试中考过) +- [N 叉树的层序遍历](https://leetcode-cn.com/problems/n-ary-tree-level-order-traversal/)(亚马逊在半年内面试中考过) +- [丑数](https://leetcode-cn.com/problems/chou-shu-lcof/)(字节跳动在半年内面试中考过) +- [前 K 个高频元素](https://leetcode-cn.com/problems/top-k-frequent-elements/)(亚马逊在半年内面试中常考) + +## 下周预习 + +### 预习题目: + +- [爬楼梯](https://leetcode-cn.com/problems/climbing-stairs/) +- [括号生成](https://leetcode-cn.com/problems/generate-parentheses/) +- [Pow(x, n)](https://leetcode-cn.com/problems/powx-n/) +- [子集](https://leetcode-cn.com/problems/subsets/) +- [N 皇后](https://leetcode-cn.com/problems/n-queens/) \ No newline at end of file From 0489ecce320dfc8b6535e90235e8ab34bd1ad96a Mon Sep 17 00:00:00 2001 From: Ella2le <1071444737@qq.com> Date: Sat, 31 Oct 2020 15:56:10 +0800 Subject: [PATCH 08/21] some homework --- week01/2sum.cpp | 16 +- week01/CMakeLists.txt | 2 +- week01/NOTE.md | 14 +- week01/cmake-build-debug/2sum | Bin 0 -> 237944 bytes .../cmake-build-debug/40_Find_Ksmallest_nums | Bin 124840 -> 124840 bytes .../CMakeFiles/2sum.dir/2sum.cpp.o | Bin 0 -> 370536 bytes .../CMakeFiles/2sum.dir/CXX.includecache | 16 + .../CMakeFiles/2sum.dir/DependInfo.cmake | 20 + .../CMakeFiles/2sum.dir/build.make | 98 +++ .../CMakeFiles/2sum.dir/cmake_clean.cmake | 10 + .../CMakeFiles/2sum.dir/depend.internal | 5 + .../CMakeFiles/2sum.dir/depend.make | 5 + .../CMakeFiles/2sum.dir/flags.make | 10 + .../CMakeFiles/2sum.dir/link.txt | 1 + .../CMakeFiles/2sum.dir/progress.make | 3 + .../40_Find_Ksmallest_nums.cpp.o | Bin 210832 -> 210832 bytes .../CMakeFiles/Makefile.cmake | 2 +- week01/cmake-build-debug/CMakeFiles/Makefile2 | 32 +- .../CMakeFiles/TargetDirectories.txt | 2 +- .../valid_anagram.dir/CXX.includecache | 2 + .../valid_anagram.dir/valid_anagram.cpp.o | Bin 130568 -> 131672 bytes week01/cmake-build-debug/Makefile | 52 +- week01/cmake-build-debug/valid_anagram | Bin 89896 -> 90648 bytes week01/cmake-build-debug/week01.cbp | 16 +- week01/valid_anagram.cpp | 26 + week02/CMakeLists.txt | 8 + week02/Joffer59-maxSlidingwindow.cpp | 96 +++ week02/cmake-build-debug/CMakeCache.txt | 380 +++++++++++ .../CMakeFiles/3.13.2/CMakeCCompiler.cmake | 73 ++ .../CMakeFiles/3.13.2/CMakeCXXCompiler.cmake | 76 +++ .../3.13.2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 8464 bytes .../3.13.2/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 8472 bytes .../CMakeFiles/3.13.2/CMakeSystem.cmake | 15 + .../3.13.2/CompilerIdC/CMakeCCompilerId.c | 623 +++++++++++++++++ .../CMakeFiles/3.13.2/CompilerIdC/a.out | Bin 0 -> 8616 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 602 +++++++++++++++++ .../CMakeFiles/3.13.2/CompilerIdCXX/a.out | Bin 0 -> 8632 bytes .../CMakeDirectoryInformation.cmake | 16 + .../CMakeFiles/CMakeOutput.log | 625 ++++++++++++++++++ .../CXX.includecache | 16 + .../DependInfo.cmake | 20 + .../Joffer59-maxSlidingwindow.cpp.o | Bin 0 -> 230704 bytes .../Joffer59-maxSlidingwindow.dir/build.make | 98 +++ .../cmake_clean.cmake | 10 + .../depend.internal | 5 + .../Joffer59-maxSlidingwindow.dir/depend.make | 5 + .../Joffer59-maxSlidingwindow.dir/flags.make | 10 + .../Joffer59-maxSlidingwindow.dir/link.txt | 1 + .../progress.make | 3 + .../CMakeFiles/Makefile.cmake | 50 ++ week02/cmake-build-debug/CMakeFiles/Makefile2 | 113 ++++ .../CMakeFiles/TargetDirectories.txt | 3 + .../CMakeFiles/clion-environment.txt | 3 + .../CMakeFiles/clion-log.txt | 4 + .../CMakeFiles/cmake.check_cache | 1 + .../CMakeFiles/feature_tests.bin | Bin 0 -> 12520 bytes .../CMakeFiles/feature_tests.c | 34 + .../CMakeFiles/feature_tests.cxx | 405 ++++++++++++ .../groupAnagrams.dir/CXX.includecache | 22 + .../groupAnagrams.dir/DependInfo.cmake | 20 + .../CMakeFiles/groupAnagrams.dir/build.make | 98 +++ .../groupAnagrams.dir/cmake_clean.cmake | 10 + .../groupAnagrams.dir/depend.internal | 5 + .../CMakeFiles/groupAnagrams.dir/depend.make | 5 + .../CMakeFiles/groupAnagrams.dir/flags.make | 10 + .../groupAnagrams.dir/groupAnagrams.cpp.o | Bin 0 -> 192880 bytes .../CMakeFiles/groupAnagrams.dir/link.txt | 1 + .../groupAnagrams.dir/progress.make | 3 + .../CXX.includecache | 16 + .../DependInfo.cmake | 20 + .../intersection_of_2_arr.dir/build.make | 98 +++ .../cmake_clean.cmake | 10 + .../intersection_of_2_arr.dir/depend.internal | 5 + .../intersection_of_2_arr.dir/depend.make | 5 + .../intersection_of_2_arr.dir/flags.make | 10 + .../intersection_of_2_arr.cpp.o | Bin 0 -> 409480 bytes .../intersection_of_2_arr_2.cpp.o | Bin 0 -> 154520 bytes .../intersection_of_2_arr.dir/link.txt | 1 + .../intersection_of_2_arr.dir/progress.make | 3 + .../CMakeFiles/progress.marks | 1 + .../CXX.includecache | 18 + .../DependInfo.cmake | 20 + .../removeOuterParentheses.dir/build.make | 98 +++ .../cmake_clean.cmake | 10 + .../depend.internal | 5 + .../removeOuterParentheses.dir/depend.make | 5 + .../removeOuterParentheses.dir/flags.make | 10 + .../removeOuterParentheses.dir/link.txt | 1 + .../removeOuterParentheses.dir/progress.make | 3 + .../removeOuterParentheses.cpp.o | Bin 0 -> 189936 bytes .../uniqueOccurences.dir/CXX.includecache | 18 + .../uniqueOccurences.dir/DependInfo.cmake | 20 + .../uniqueOccurences.dir/build.make | 98 +++ .../uniqueOccurences.dir/cmake_clean.cmake | 10 + .../uniqueOccurences.dir/depend.internal | 5 + .../uniqueOccurences.dir/depend.make | 5 + .../uniqueOccurences.dir/flags.make | 10 + .../CMakeFiles/uniqueOccurences.dir/link.txt | 1 + .../uniqueOccurences.dir/progress.make | 3 + .../uniqueOccurences.cpp.o | Bin 0 -> 533104 bytes .../Joffer59-maxSlidingwindow | Bin 0 -> 137016 bytes week02/cmake-build-debug/Makefile | 178 +++++ week02/cmake-build-debug/cmake_install.cmake | 49 ++ week02/cmake-build-debug/groupAnagrams | Bin 0 -> 137008 bytes .../cmake-build-debug/intersection_of_2_arr | Bin 0 -> 259488 bytes .../cmake-build-debug/removeOuterParentheses | Bin 0 -> 122720 bytes week02/cmake-build-debug/uniqueOccurences | Bin 0 -> 347304 bytes week02/cmake-build-debug/week02.cbp | 94 +++ week02/groupAnagrams.cpp | 55 ++ week02/intersection_of_2_arr.cpp | 42 ++ week02/intersection_of_2_arr_2.cpp | 91 +++ week02/removeOuterParentheses.cpp | 63 ++ week02/uniqueOccurences.cpp | 32 + 113 files changed, 4853 insertions(+), 61 deletions(-) create mode 100755 week01/cmake-build-debug/2sum create mode 100644 week01/cmake-build-debug/CMakeFiles/2sum.dir/2sum.cpp.o create mode 100644 week01/cmake-build-debug/CMakeFiles/2sum.dir/CXX.includecache create mode 100644 week01/cmake-build-debug/CMakeFiles/2sum.dir/DependInfo.cmake create mode 100644 week01/cmake-build-debug/CMakeFiles/2sum.dir/build.make create mode 100644 week01/cmake-build-debug/CMakeFiles/2sum.dir/cmake_clean.cmake create mode 100644 week01/cmake-build-debug/CMakeFiles/2sum.dir/depend.internal create mode 100644 week01/cmake-build-debug/CMakeFiles/2sum.dir/depend.make create mode 100644 week01/cmake-build-debug/CMakeFiles/2sum.dir/flags.make create mode 100644 week01/cmake-build-debug/CMakeFiles/2sum.dir/link.txt create mode 100644 week01/cmake-build-debug/CMakeFiles/2sum.dir/progress.make create mode 100644 week02/CMakeLists.txt create mode 100644 week02/Joffer59-maxSlidingwindow.cpp create mode 100644 week02/cmake-build-debug/CMakeCache.txt create mode 100755 week02/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake create mode 100755 week02/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake create mode 100755 week02/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin create mode 100755 week02/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin create mode 100755 week02/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake create mode 100644 week02/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c create mode 100755 week02/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out create mode 100644 week02/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100755 week02/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out create mode 100644 week02/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 week02/cmake-build-debug/CMakeFiles/CMakeOutput.log create mode 100644 week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/CXX.includecache create mode 100644 week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/DependInfo.cmake create mode 100644 week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/Joffer59-maxSlidingwindow.cpp.o create mode 100644 week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/build.make create mode 100644 week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/cmake_clean.cmake create mode 100644 week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/depend.internal create mode 100644 week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/depend.make create mode 100644 week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/flags.make create mode 100644 week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/link.txt create mode 100644 week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/progress.make create mode 100644 week02/cmake-build-debug/CMakeFiles/Makefile.cmake create mode 100644 week02/cmake-build-debug/CMakeFiles/Makefile2 create mode 100644 week02/cmake-build-debug/CMakeFiles/TargetDirectories.txt create mode 100644 week02/cmake-build-debug/CMakeFiles/clion-environment.txt create mode 100644 week02/cmake-build-debug/CMakeFiles/clion-log.txt create mode 100644 week02/cmake-build-debug/CMakeFiles/cmake.check_cache create mode 100755 week02/cmake-build-debug/CMakeFiles/feature_tests.bin create mode 100644 week02/cmake-build-debug/CMakeFiles/feature_tests.c create mode 100644 week02/cmake-build-debug/CMakeFiles/feature_tests.cxx create mode 100644 week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/CXX.includecache create mode 100644 week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/DependInfo.cmake create mode 100644 week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/build.make create mode 100644 week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/cmake_clean.cmake create mode 100644 week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/depend.internal create mode 100644 week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/depend.make create mode 100644 week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/flags.make create mode 100644 week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/groupAnagrams.cpp.o create mode 100644 week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/link.txt create mode 100644 week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/progress.make create mode 100644 week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/CXX.includecache create mode 100644 week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/DependInfo.cmake create mode 100644 week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/build.make create mode 100644 week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/cmake_clean.cmake create mode 100644 week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/depend.internal create mode 100644 week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/depend.make create mode 100644 week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/flags.make create mode 100644 week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr.cpp.o create mode 100644 week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr_2.cpp.o create mode 100644 week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/link.txt create mode 100644 week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/progress.make create mode 100644 week02/cmake-build-debug/CMakeFiles/progress.marks create mode 100644 week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/CXX.includecache create mode 100644 week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/DependInfo.cmake create mode 100644 week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/build.make create mode 100644 week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/cmake_clean.cmake create mode 100644 week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/depend.internal create mode 100644 week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/depend.make create mode 100644 week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/flags.make create mode 100644 week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/link.txt create mode 100644 week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/progress.make create mode 100644 week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.o create mode 100644 week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/CXX.includecache create mode 100644 week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/DependInfo.cmake create mode 100644 week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/build.make create mode 100644 week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/cmake_clean.cmake create mode 100644 week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/depend.internal create mode 100644 week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/depend.make create mode 100644 week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/flags.make create mode 100644 week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/link.txt create mode 100644 week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/progress.make create mode 100644 week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/uniqueOccurences.cpp.o create mode 100755 week02/cmake-build-debug/Joffer59-maxSlidingwindow create mode 100644 week02/cmake-build-debug/Makefile create mode 100644 week02/cmake-build-debug/cmake_install.cmake create mode 100755 week02/cmake-build-debug/groupAnagrams create mode 100755 week02/cmake-build-debug/intersection_of_2_arr create mode 100755 week02/cmake-build-debug/removeOuterParentheses create mode 100755 week02/cmake-build-debug/uniqueOccurences create mode 100644 week02/cmake-build-debug/week02.cbp create mode 100644 week02/groupAnagrams.cpp create mode 100644 week02/intersection_of_2_arr.cpp create mode 100644 week02/intersection_of_2_arr_2.cpp create mode 100644 week02/removeOuterParentheses.cpp create mode 100644 week02/uniqueOccurences.cpp diff --git a/week01/2sum.cpp b/week01/2sum.cpp index d11ef5c1..456cd05b 100644 --- a/week01/2sum.cpp +++ b/week01/2sum.cpp @@ -1,6 +1,11 @@ // // Created by lewang on 10/23/20. // +#include <iostream> +#include <unordered_map> +#include <vector> + +using namespace std; class Solution { public: @@ -15,4 +20,13 @@ class Solution { } return {}; } -}; \ No newline at end of file +}; + +int main() { + vector<int> nums {2,7,11,5}; + Solution test; + vector<int> res; + res = test.twoSum(nums,9); + for(auto a:res) cout<< a; + return 0; +} \ No newline at end of file diff --git a/week01/CMakeLists.txt b/week01/CMakeLists.txt index 24f26351..f115ef57 100644 --- a/week01/CMakeLists.txt +++ b/week01/CMakeLists.txt @@ -5,5 +5,5 @@ set(CMAKE_CXX_STANDARD_REQUIRED ) #add_executable (move_zeros lc-283_move-zeros.cpp) #target_link_libraries (move_zeros LINK_PUBLIC week01) -add_executable (40_Find_Ksmallest_nums 40_Find_Ksmallest_nums.cpp) +add_executable (valid_anagram valid_anagram.cpp) #target_link_libraries (plusone LINK_PUBLIC week01) \ No newline at end of file diff --git a/week01/NOTE.md b/week01/NOTE.md index 6b94c770..ece2848e 100644 --- a/week01/NOTE.md +++ b/week01/NOTE.md @@ -1,13 +1,13 @@ 学习笔记 -#2020.10.19 -##数组 +# 2020.10.19 +## 数组 时间复杂度 prepend O(1) append O(1) lookup O(1) insert O(n) delete O(n) -##链表(单向链表,双向链表,环链表) +## 链表(单向链表,双向链表,环链表) 时间复杂度 prepend O(1) append O(1) @@ -15,14 +15,14 @@ insert O(1) delete O(1) -##跳表 +## 跳表 **只能用于元素有序的情况** 对标平衡树和二分查找 时间复杂度 O(logn) (specific h=log2(n)-1) 维护成本高,每一次增删都需要更新链表 空间复杂度O(n) 升维思想+空间换时间 -##工程中的应用(拓展) +## 工程中的应用(拓展) LRU Cache Linked list **HashMap+双向链表** @@ -40,10 +40,10 @@ https://www.zhihu.com/question/20202931 2)Redis 用的是啥 **-------------------------------------------** -#实战练习 +# 实战练习 **五毒神掌** -##Array +## Array 1. 3sum 排序+双指针 diff --git a/week01/cmake-build-debug/2sum b/week01/cmake-build-debug/2sum new file mode 100755 index 0000000000000000000000000000000000000000..bf9f930c33e6a6410706510f52bdb9ae16ffb63f GIT binary patch literal 237944 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�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 T_0%5kf96(szw9;GyA1wcuWn7N literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/40_Find_Ksmallest_nums b/week01/cmake-build-debug/40_Find_Ksmallest_nums index 22ba440befac9a08b4a21fe5769217f8c68aaada..f525549dfadeed4a7b11d63f0db8a12a2b213a2f 100755 GIT binary patch delta 163 zcmZ2+o_)o6_6;peBI`L5vi=_8xubman|(g_8t-|FCv<I|!Ib!nQDyS47Ybgg6?_Z~ z%o9J<6&9ryGq9*bxD)CNvl&=4o>_q8Zqya%*)TA$Xjb}yxYz57q}>_7U?zlOD9mDD z(cYZ$a=iw>K1dJK#GLxoZa^*i+m(bE5Arc8Pk*Ao7{w+%frW)Rb-RlqW6CiAdx<jq delta 163 zcmZ2+o_)o6_6;peB1>#Vm&$9eF;ofkd*ZS0K<Kso)8B5M!Ib!nQEu|D7YbhT6?_Z~ z%o9J<6&9ryGq5N^xD)CNvl&>Fo>_q8Zqya%*)TA$C|CM|xYz57q}>_7U?zlOD9mDD zQQe&Ka=iw>CP)v{#GLxoZa^)X+m(bE5Ard}PJg1n7{#VIfrW)Re!GhzW6CiA8mux= diff --git a/week01/cmake-build-debug/CMakeFiles/2sum.dir/2sum.cpp.o b/week01/cmake-build-debug/CMakeFiles/2sum.dir/2sum.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a460b0c0998e2d59779b05703b888e0c1649f0bb GIT binary patch literal 370536 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 literal 0 HcmV?d00001 diff --git a/week01/cmake-build-debug/CMakeFiles/2sum.dir/CXX.includecache b/week01/cmake-build-debug/CMakeFiles/2sum.dir/CXX.includecache new file mode 100644 index 00000000..db0e9f12 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/2sum.dir/CXX.includecache @@ -0,0 +1,16 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week01/2sum.cpp +iostream +- +unordered_map +- +vector +- + diff --git a/week01/cmake-build-debug/CMakeFiles/2sum.dir/DependInfo.cmake b/week01/cmake-build-debug/CMakeFiles/2sum.dir/DependInfo.cmake new file mode 100644 index 00000000..b3b70f6c --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/2sum.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week01/2sum.cpp" "/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/2sum.dir/2sum.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week01/cmake-build-debug/CMakeFiles/2sum.dir/build.make b/week01/cmake-build-debug/CMakeFiles/2sum.dir/build.make new file mode 100644 index 00000000..99927032 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/2sum.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week01 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week01/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/2sum.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/2sum.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/2sum.dir/flags.make + +CMakeFiles/2sum.dir/2sum.cpp.o: CMakeFiles/2sum.dir/flags.make +CMakeFiles/2sum.dir/2sum.cpp.o: ../2sum.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/2sum.dir/2sum.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/2sum.dir/2sum.cpp.o -c /home/lewang/algorithm018/week01/2sum.cpp + +CMakeFiles/2sum.dir/2sum.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/2sum.dir/2sum.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week01/2sum.cpp > CMakeFiles/2sum.dir/2sum.cpp.i + +CMakeFiles/2sum.dir/2sum.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/2sum.dir/2sum.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week01/2sum.cpp -o CMakeFiles/2sum.dir/2sum.cpp.s + +# Object files for target 2sum +2sum_OBJECTS = \ +"CMakeFiles/2sum.dir/2sum.cpp.o" + +# External object files for target 2sum +2sum_EXTERNAL_OBJECTS = + +2sum: CMakeFiles/2sum.dir/2sum.cpp.o +2sum: CMakeFiles/2sum.dir/build.make +2sum: CMakeFiles/2sum.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 2sum" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/2sum.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/2sum.dir/build: 2sum + +.PHONY : CMakeFiles/2sum.dir/build + +CMakeFiles/2sum.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/2sum.dir/cmake_clean.cmake +.PHONY : CMakeFiles/2sum.dir/clean + +CMakeFiles/2sum.dir/depend: + cd /home/lewang/algorithm018/week01/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week01 /home/lewang/algorithm018/week01 /home/lewang/algorithm018/week01/cmake-build-debug /home/lewang/algorithm018/week01/cmake-build-debug /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/2sum.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/2sum.dir/depend + diff --git a/week01/cmake-build-debug/CMakeFiles/2sum.dir/cmake_clean.cmake b/week01/cmake-build-debug/CMakeFiles/2sum.dir/cmake_clean.cmake new file mode 100644 index 00000000..72be9f57 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/2sum.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/2sum.dir/2sum.cpp.o" + "2sum.pdb" + "2sum" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/2sum.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week01/cmake-build-debug/CMakeFiles/2sum.dir/depend.internal b/week01/cmake-build-debug/CMakeFiles/2sum.dir/depend.internal new file mode 100644 index 00000000..0749a932 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/2sum.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/2sum.dir/2sum.cpp.o + /home/lewang/algorithm018/week01/2sum.cpp diff --git a/week01/cmake-build-debug/CMakeFiles/2sum.dir/depend.make b/week01/cmake-build-debug/CMakeFiles/2sum.dir/depend.make new file mode 100644 index 00000000..1ef30efc --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/2sum.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/2sum.dir/2sum.cpp.o: ../2sum.cpp + diff --git a/week01/cmake-build-debug/CMakeFiles/2sum.dir/flags.make b/week01/cmake-build-debug/CMakeFiles/2sum.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/2sum.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week01/cmake-build-debug/CMakeFiles/2sum.dir/link.txt b/week01/cmake-build-debug/CMakeFiles/2sum.dir/link.txt new file mode 100644 index 00000000..b8534802 --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/2sum.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/2sum.dir/2sum.cpp.o -o 2sum diff --git a/week01/cmake-build-debug/CMakeFiles/2sum.dir/progress.make b/week01/cmake-build-debug/CMakeFiles/2sum.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week01/cmake-build-debug/CMakeFiles/2sum.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o b/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o index 86177971ca0b5911bc5f3939e611b8aea71d9c5f..f5f73464d414a7db1070ec22e0ce2b3c29eddfe4 100644 GIT binary patch delta 118 zcmbR6o@c^)o()?X8C524ZB)=vt>9x|V4nD)uCOSzn1Mwd!ktiGn9abV@yr4wccZR= z0SH($Co?w5GHP#@Z(6UxuMd)AnwV1$meSvRchy6AM&-%-PerjwPheqTPHmPy-7bHc Lal8C!rotQm*N7#G delta 118 zcmbR6o@c^)o()?X8RaH#ZB)>aui#@~V4nD)uCOSzn1MwR!ktiGn9abV^vnVzccZR= z0SH)>Co?w5GOBKtZ(6UxuL+W4nwV1$meSmOchy6AM%l^xPerjQPGDhSj&GJf-7bHc Lal8C!rotQm$?7Fk diff --git a/week01/cmake-build-debug/CMakeFiles/Makefile.cmake b/week01/cmake-build-debug/CMakeFiles/Makefile.cmake index fcd60d16..6c4259e5 100644 --- a/week01/cmake-build-debug/CMakeFiles/Makefile.cmake +++ b/week01/cmake-build-debug/CMakeFiles/Makefile.cmake @@ -46,5 +46,5 @@ set(CMAKE_MAKEFILE_PRODUCTS # Dependency information for all targets: set(CMAKE_DEPEND_INFO_FILES - "CMakeFiles/40_Find_Ksmallest_nums.dir/DependInfo.cmake" + "CMakeFiles/valid_anagram.dir/DependInfo.cmake" ) diff --git a/week01/cmake-build-debug/CMakeFiles/Makefile2 b/week01/cmake-build-debug/CMakeFiles/Makefile2 index e3aac775..ca54248c 100644 --- a/week01/cmake-build-debug/CMakeFiles/Makefile2 +++ b/week01/cmake-build-debug/CMakeFiles/Makefile2 @@ -65,39 +65,39 @@ CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week01 CMAKE_BINARY_DIR = /home/lewang/algorithm018/week01/cmake-build-debug #============================================================================= -# Target rules for target CMakeFiles/40_Find_Ksmallest_nums.dir +# Target rules for target CMakeFiles/valid_anagram.dir # All Build rule for target. -CMakeFiles/40_Find_Ksmallest_nums.dir/all: - $(MAKE) -f CMakeFiles/40_Find_Ksmallest_nums.dir/build.make CMakeFiles/40_Find_Ksmallest_nums.dir/depend - $(MAKE) -f CMakeFiles/40_Find_Ksmallest_nums.dir/build.make CMakeFiles/40_Find_Ksmallest_nums.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target 40_Find_Ksmallest_nums" -.PHONY : CMakeFiles/40_Find_Ksmallest_nums.dir/all +CMakeFiles/valid_anagram.dir/all: + $(MAKE) -f CMakeFiles/valid_anagram.dir/build.make CMakeFiles/valid_anagram.dir/depend + $(MAKE) -f CMakeFiles/valid_anagram.dir/build.make CMakeFiles/valid_anagram.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target valid_anagram" +.PHONY : CMakeFiles/valid_anagram.dir/all # Include target in all. -all: CMakeFiles/40_Find_Ksmallest_nums.dir/all +all: CMakeFiles/valid_anagram.dir/all .PHONY : all # Build rule for subdir invocation for target. -CMakeFiles/40_Find_Ksmallest_nums.dir/rule: cmake_check_build_system +CMakeFiles/valid_anagram.dir/rule: cmake_check_build_system $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles 2 - $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/40_Find_Ksmallest_nums.dir/all + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/valid_anagram.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles 0 -.PHONY : CMakeFiles/40_Find_Ksmallest_nums.dir/rule +.PHONY : CMakeFiles/valid_anagram.dir/rule # Convenience name for target. -40_Find_Ksmallest_nums: CMakeFiles/40_Find_Ksmallest_nums.dir/rule +valid_anagram: CMakeFiles/valid_anagram.dir/rule -.PHONY : 40_Find_Ksmallest_nums +.PHONY : valid_anagram # clean rule for target. -CMakeFiles/40_Find_Ksmallest_nums.dir/clean: - $(MAKE) -f CMakeFiles/40_Find_Ksmallest_nums.dir/build.make CMakeFiles/40_Find_Ksmallest_nums.dir/clean -.PHONY : CMakeFiles/40_Find_Ksmallest_nums.dir/clean +CMakeFiles/valid_anagram.dir/clean: + $(MAKE) -f CMakeFiles/valid_anagram.dir/build.make CMakeFiles/valid_anagram.dir/clean +.PHONY : CMakeFiles/valid_anagram.dir/clean # clean rule for target. -clean: CMakeFiles/40_Find_Ksmallest_nums.dir/clean +clean: CMakeFiles/valid_anagram.dir/clean .PHONY : clean diff --git a/week01/cmake-build-debug/CMakeFiles/TargetDirectories.txt b/week01/cmake-build-debug/CMakeFiles/TargetDirectories.txt index 04e3f979..936bb3e2 100644 --- a/week01/cmake-build-debug/CMakeFiles/TargetDirectories.txt +++ b/week01/cmake-build-debug/CMakeFiles/TargetDirectories.txt @@ -1,3 +1,3 @@ /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/rebuild_cache.dir -/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir +/home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir /home/lewang/algorithm018/week01/cmake-build-debug/CMakeFiles/edit_cache.dir diff --git a/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/CXX.includecache b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/CXX.includecache index 705f9e65..ec26d377 100644 --- a/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/CXX.includecache +++ b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/CXX.includecache @@ -13,4 +13,6 @@ string - vector - +unordered_map +- diff --git a/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o b/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o index 3c0af824cac32006a2472c153ced9860e10ea192..c81de5f88ff0e2b3c698740f303b72af57de8710 100644 GIT binary patch literal 131672 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 literal 130568 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 Xf4Kb>9rKia_m>hmSqnr4oc{j+B(;-L diff --git a/week01/cmake-build-debug/Makefile b/week01/cmake-build-debug/Makefile index 25447047..d68bb3e3 100644 --- a/week01/cmake-build-debug/Makefile +++ b/week01/cmake-build-debug/Makefile @@ -111,44 +111,44 @@ depend: .PHONY : depend #============================================================================= -# Target rules for targets named 40_Find_Ksmallest_nums +# Target rules for targets named valid_anagram # Build rule for target. -40_Find_Ksmallest_nums: cmake_check_build_system - $(MAKE) -f CMakeFiles/Makefile2 40_Find_Ksmallest_nums -.PHONY : 40_Find_Ksmallest_nums +valid_anagram: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 valid_anagram +.PHONY : valid_anagram # fast build rule for target. -40_Find_Ksmallest_nums/fast: - $(MAKE) -f CMakeFiles/40_Find_Ksmallest_nums.dir/build.make CMakeFiles/40_Find_Ksmallest_nums.dir/build -.PHONY : 40_Find_Ksmallest_nums/fast +valid_anagram/fast: + $(MAKE) -f CMakeFiles/valid_anagram.dir/build.make CMakeFiles/valid_anagram.dir/build +.PHONY : valid_anagram/fast -40_Find_Ksmallest_nums.o: 40_Find_Ksmallest_nums.cpp.o +valid_anagram.o: valid_anagram.cpp.o -.PHONY : 40_Find_Ksmallest_nums.o +.PHONY : valid_anagram.o # target to build an object file -40_Find_Ksmallest_nums.cpp.o: - $(MAKE) -f CMakeFiles/40_Find_Ksmallest_nums.dir/build.make CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o -.PHONY : 40_Find_Ksmallest_nums.cpp.o +valid_anagram.cpp.o: + $(MAKE) -f CMakeFiles/valid_anagram.dir/build.make CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o +.PHONY : valid_anagram.cpp.o -40_Find_Ksmallest_nums.i: 40_Find_Ksmallest_nums.cpp.i +valid_anagram.i: valid_anagram.cpp.i -.PHONY : 40_Find_Ksmallest_nums.i +.PHONY : valid_anagram.i # target to preprocess a source file -40_Find_Ksmallest_nums.cpp.i: - $(MAKE) -f CMakeFiles/40_Find_Ksmallest_nums.dir/build.make CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.i -.PHONY : 40_Find_Ksmallest_nums.cpp.i +valid_anagram.cpp.i: + $(MAKE) -f CMakeFiles/valid_anagram.dir/build.make CMakeFiles/valid_anagram.dir/valid_anagram.cpp.i +.PHONY : valid_anagram.cpp.i -40_Find_Ksmallest_nums.s: 40_Find_Ksmallest_nums.cpp.s +valid_anagram.s: valid_anagram.cpp.s -.PHONY : 40_Find_Ksmallest_nums.s +.PHONY : valid_anagram.s # target to generate assembly for a file -40_Find_Ksmallest_nums.cpp.s: - $(MAKE) -f CMakeFiles/40_Find_Ksmallest_nums.dir/build.make CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.s -.PHONY : 40_Find_Ksmallest_nums.cpp.s +valid_anagram.cpp.s: + $(MAKE) -f CMakeFiles/valid_anagram.dir/build.make CMakeFiles/valid_anagram.dir/valid_anagram.cpp.s +.PHONY : valid_anagram.cpp.s # Help Target help: @@ -157,11 +157,11 @@ help: @echo "... clean" @echo "... depend" @echo "... rebuild_cache" - @echo "... 40_Find_Ksmallest_nums" + @echo "... valid_anagram" @echo "... edit_cache" - @echo "... 40_Find_Ksmallest_nums.o" - @echo "... 40_Find_Ksmallest_nums.i" - @echo "... 40_Find_Ksmallest_nums.s" + @echo "... valid_anagram.o" + @echo "... valid_anagram.i" + @echo "... valid_anagram.s" .PHONY : help diff --git a/week01/cmake-build-debug/valid_anagram b/week01/cmake-build-debug/valid_anagram index 8740bb3d13dbadbadece3d150024d0f391c04837..76b65917f757b8f3e8881418f5ba6f40c9e38101 100755 GIT binary patch literal 90648 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 literal 89896 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 H*XaKMc3^#V diff --git a/week01/cmake-build-debug/week01.cbp b/week01/cmake-build-debug/week01.cbp index 6444ecd8..31f9ac2c 100644 --- a/week01/cmake-build-debug/week01.cbp +++ b/week01/cmake-build-debug/week01.cbp @@ -27,8 +27,8 @@ <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> </MakeCommands> </Target> - <Target title="40_Find_Ksmallest_nums"> - <Option output="/home/lewang/algorithm018/week01/cmake-build-debug/40_Find_Ksmallest_nums" prefix_auto="0" extension_auto="0"/> + <Target title="valid_anagram"> + <Option output="/home/lewang/algorithm018/week01/cmake-build-debug/valid_anagram" prefix_auto="0" extension_auto="0"/> <Option working_dir="/home/lewang/algorithm018/week01/cmake-build-debug"/> <Option object_output="./"/> <Option type="1"/> @@ -44,14 +44,14 @@ <Add directory="/usr/include"/> </Compiler> <MakeCommands> - <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 40_Find_Ksmallest_nums"/> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 valid_anagram"/> <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> </MakeCommands> </Target> - <Target title="40_Find_Ksmallest_nums/fast"> - <Option output="/home/lewang/algorithm018/week01/cmake-build-debug/40_Find_Ksmallest_nums" prefix_auto="0" extension_auto="0"/> + <Target title="valid_anagram/fast"> + <Option output="/home/lewang/algorithm018/week01/cmake-build-debug/valid_anagram" prefix_auto="0" extension_auto="0"/> <Option working_dir="/home/lewang/algorithm018/week01/cmake-build-debug"/> <Option object_output="./"/> <Option type="1"/> @@ -67,7 +67,7 @@ <Add directory="/usr/include"/> </Compiler> <MakeCommands> - <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 40_Find_Ksmallest_nums/fast"/> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 valid_anagram/fast"/> <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week01/cmake-build-debug/Makefile" VERBOSE=1 clean"/> @@ -84,8 +84,8 @@ </MakeCommands> </Target> </Build> - <Unit filename="/home/lewang/algorithm018/week01/40_Find_Ksmallest_nums.cpp"> - <Option target="40_Find_Ksmallest_nums"/> + <Unit filename="/home/lewang/algorithm018/week01/valid_anagram.cpp"> + <Option target="valid_anagram"/> </Unit> <Unit filename="/home/lewang/algorithm018/week01/CMakeLists.txt"> <Option virtualFolder="CMake Files\"/> diff --git a/week01/valid_anagram.cpp b/week01/valid_anagram.cpp index e3bed68a..5c96b43f 100644 --- a/week01/valid_anagram.cpp +++ b/week01/valid_anagram.cpp @@ -7,6 +7,8 @@ #include <iostream> #include <string> #include <vector> +#include <unordered_map> + using namespace std; class Solution { @@ -43,6 +45,30 @@ class Solution { } } + + bool isAnagram2(string s, string t){ + if(s.size() != t.size()) return false; + //vector<int> cache; + unordered_map<int,int> cache; + for (int i = 0; i <= s.size()-1; i++) { + char sc = s[i]; + cache[sc - 'a']++; + } + for (int j = 0; j <= t.size()-1; ++j) { + char tc = t[j]; + cache[tc -'a']--; + if(cache[tc - 'a'] == 0){ + cache.erase(tc-'a'); + } + } + if(cache.empty()){ + return true; + }else { + return false; + } + + } + }; int main() { diff --git a/week02/CMakeLists.txt b/week02/CMakeLists.txt new file mode 100644 index 00000000..92a294e5 --- /dev/null +++ b/week02/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required (VERSION 2.8.11) +project (week02) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ) +#add_executable (move_zeros lc-283_move-zeros.cpp) +#target_link_libraries (move_zeros LINK_PUBLIC week01) + +add_executable (removeOuterParentheses removeOuterParentheses.cpp) diff --git a/week02/Joffer59-maxSlidingwindow.cpp b/week02/Joffer59-maxSlidingwindow.cpp new file mode 100644 index 00000000..6bc2ab1d --- /dev/null +++ b/week02/Joffer59-maxSlidingwindow.cpp @@ -0,0 +1,96 @@ +// +// Created by lewang on 10/27/20. +// +//剑指offer 59 -i 滑动窗口的最大值 + +//使用双端队列求解 +//设定双端队列deque实现费严格递减的单调队列,对手就是当前滑动窗口内的最大元素 +//step1-当出 滑动窗口的元素恰好就是单调队列的队头元素,一起出栈 +//step2-让所有小于新加入元素的单调队列元素出队,新元素,入队 +//step3-形成滑动窗口后,取队首元素加入结果 + +#include <iostream> +#include <vector> +#include <deque> +using namespace std; + + +class Solution { +public: + vector<int> maxSlidingWindow(vector<int>& nums, int k) { + int len = nums.size(); + if (len < k || k <= 0) return {};//特殊情况 + + int left = 1 - k; //左边界范围[1-k,n+1-k]??? [0,n-1-k]为什么不是这个呢?? + int right = 0; //右边界范围[0,n-1]???? [k,n-1] + + deque<int> dq; //双端队列 + vector<int> res; + + while (right < len) { + //判断deque的左边界是不是最大的元素 + if(left >= 1 && nums[left -1] == dq[0]){ + dq.pop_front(); + } +// while (!dp.empty() && dp[0] < nums[right]) { +// dp.pop_front();//小于nums[right]的元素出队 +// } + while (!dq.empty() && dq[dq.size()-1] < nums[right] ){ + dq.pop_back(); //小于nums[left]的元素出队 + } + cout << nums[right] << endl; + dq.push_back(nums[right]); + + if(left >= 0){ + res.push_back(dq[0]); + cout<< dq[0] << endl; + } + left++; + right++; + } + return res; + + } + // + vector<int> maxSlidingWindow2(vector<int>& nums, int k) { + vector<int> re; + deque<int> dq; + size_t n= nums.size(); + for(int i = 0; i < n; i++) { + //while为了维护单调队列的对头是当前最大的元素的序号 + while (!dq.empty() && nums[dq.front()] < nums[i]) { + dq.pop_front(); + }//如果当前的单调队列的头小于nums[i],则弹出 + + dq.push_front(i);//把当前的元素的序号插入队头 + cout<< i - dq.back()<<endl; + if (i - dq.back() >= k) + { + cout<<dq.back(); + dq.pop_back();//如果当前的deque的长度超过k,删除已经挪出滑动窗口的数 + // 即Deque有超过3个以上的数,说明最大的这个数已经移除了当前的3的长度的窗口,即使他最大也需要删除他 + } + + if(i >= k -1){ + re.push_back(nums[dq.back()]);//队列的长度达到k,输出当前队列的队尾元素(即最大值)到return的数组中 + } + + } + return re; + + } + + //参考国际网站 + + +}; + +int main(){ + Solution test; + vector<int> nums = {1,3,-1,-3,5,3,6,7}; + int k = 3; + vector<int> res; + res = test.maxSlidingWindow2(nums,k); + for (auto i : res) cout<< i <<"," ; + return 0; +} \ No newline at end of file diff --git a/week02/cmake-build-debug/CMakeCache.txt b/week02/cmake-build-debug/CMakeCache.txt new file mode 100644 index 00000000..edb45e3a --- /dev/null +++ b/week02/cmake-build-debug/CMakeCache.txt @@ -0,0 +1,380 @@ +# This is the CMakeCache file. +# For build in directory: /home/lewang/algorithm018/week02/cmake-build-debug +# It was generated by CMake: /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Debug + +//Id string of the compiler for the CodeBlocks IDE. Automatically +// detected when left empty +CMAKE_CODEBLOCKS_COMPILER_ID:STRING= + +//The CodeBlocks executable +CMAKE_CODEBLOCKS_EXECUTABLE:FILEPATH=CMAKE_CODEBLOCKS_EXECUTABLE-NOTFOUND + +//Additional command line arguments when CodeBlocks invokes make. +// Enter e.g. -j<some_number> to get parallel builds +CMAKE_CODEBLOCKS_MAKE_ARGUMENTS:STRING=-j12 + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-5 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-5 + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//C compiler +CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-5 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-5 + +//Flags used by the C compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the C compiler during DEBUG builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the C compiler during RELEASE builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=week02 + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Path to a program. +ProcessorCount_cmd_getconf:FILEPATH=/usr/bin/getconf + +//Path to a program. +ProcessorCount_cmd_sysctl:FILEPATH=/sbin/sysctl + +//Value Computed by CMake +week02_BINARY_DIR:STATIC=/home/lewang/algorithm018/week02/cmake-build-debug + +//Value Computed by CMake +week02_SOURCE_DIR:STATIC=/home/lewang/algorithm018/week02 + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/lewang/algorithm018/week02/cmake-build-debug +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=13 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL=CodeBlocks +//CXX compiler system defined macros +CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570815e+308L);__DBL_MIN__;((double)2.22507385850720138309e-308L);__DBL_EPSILON__;((double)2.22044604925031308085e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1;__STDC__;1;__cplusplus;199711L;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__GNUG__;5;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_WEAK__;1;__DEPRECATED;1;__GXX_RTTI;1;__cpp_rtti;199711;__cpp_binary_literals;201304;__cpp_runtime_arrays;198712;__cpp_threadsafe_static_init;200806;__EXCEPTIONS;1;__cpp_exceptions;199711;__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__GLIBCXX_TYPE_INT_N_0;__int128;__GLIBCXX_BITSIZE_INT_N_0;128;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;double(1.79769313486231570815e+308L);__DBL_MIN__;double(2.22507385850720138309e-308L);__DBL_EPSILON__;double(2.22044604925031308085e-16L);__DBL_DENORM_MIN__;double(4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_GNU_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_GNU_SOURCE;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1 +//CXX compiler system include directories +CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/include/c++/5;/usr/include/x86_64-linux-gnu/c++/5;/usr/include/c++/5/backward;/usr/lib/gcc/x86_64-linux-gnu/5/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include +//C compiler system defined macros +CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570815e+308L);__DBL_MIN__;((double)2.22507385850720138309e-308L);__DBL_EPSILON__;((double)2.22044604925031308085e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1 +//C compiler system include directories +CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/lib/gcc/x86_64-linux-gnu/5/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/lewang/algorithm018/week02 +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: ProcessorCount_cmd_getconf +ProcessorCount_cmd_getconf-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: ProcessorCount_cmd_sysctl +ProcessorCount_cmd_sysctl-ADVANCED:INTERNAL=1 + diff --git a/week02/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake b/week02/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake new file mode 100755 index 00000000..17a89374 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake @@ -0,0 +1,73 @@ +set(CMAKE_C_COMPILER "/usr/bin/cc") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "GNU") +set(CMAKE_C_COMPILER_VERSION "5.5.0") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-5") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-5") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCC 1) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/week02/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake b/week02/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake new file mode 100755 index 00000000..51738d56 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake @@ -0,0 +1,76 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "5.5.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "98") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-5") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-5") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/week02/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin b/week02/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..ce01f2ca7e5e788ef02f6a2691b09499318eb750 GIT binary patch literal 8464 zcmeHMZ){W76~B%X;y_{>1~dg$UKv%xw!AtS2^lTJj^pq`lhB2vWuoEnVmpbcV^jN? z21Hk+v<Q!;pzXuDRYLo)N^C<DAEqg+)07m{Rr{xO(>D5NQdWi(IuPkPSjHgUIrrV; zJU>5Fw)P`8$~*V|&YyekedpeH@9}e?_SO=IgHds^uP|)+$_>OX7?byk3J^bQVioZG zEL+7EK)aM<2H$TG;2LFCm?r8HxDzPqHI*2Em97$UM9D*>WrAl%PA@c2qKru#Kt1$z zs){#(O1whUXYqsd5JtUOp*Jh^h>i=#h|>6QZ1~?T>{@9H@URd?SuBrT)FW6Qtl-Te z`iKEDqNMj#&_h4(w0MPJm+0?y^CAiViHhN}hvKom#`O=yBen5ZA~Re&+|*dxxL!^t z<$6ADw2!h|I(v9e_`ZcH&R+^`#E}2QD<{|QnYcQ>@Iru9EPMLxmwv5pKpuu5>L5Mt zJ>+8dFJI&;Ev-6I%KV7ot6mKM&7nVD-cu3$(`y&Ld9ZThw-=py^uqW%zrApxzVF>D z=bzrOYR_}uJ$PpHLwDuU_fL#fmyP}X4_DowW?OJxB^%BPz?RtH&jKdd;6J|&K6x8_ z5#VcV?8E@`vU`}<D;03}3Y=N+A91{zRa@{B;1bxe%D)KsV&-8!5pNVvuK>P;Rk70| zprg>nvJd_dr~Tmz9A)e@P%o=4^7BC<zgyS|3Het!zL3pWg7%9-UK0LL%<KRh{qzfb znXuEy<=t$pzy-`0#Ag`8v5~22cvw^WV+k!DI}n8?vedM$rF3;jizNsNr!y!OV`^J> zhZ>2dq64wC9!+(31mnp>v|H<oM_DY<pH$OeC)uw?_Ub97MkAW8fej>vRcH(hB@?0x z73^(;dL))mGwEo=+#U3$gM|cwed#o*Z{4SMiOz#@EuD_04WDd1+S1<E98~M&dbxoQ zo@T5B*5B>^aBborzB8j_R>WWiOV|gZP5UD4XFgGx7W*IJGq@0;xJ0}WPVGsL#QFG| zu|F#3O*nasyeSiodjOSb6HYOTycrX2{w~a#aC3+$BbQyu(Xxv!i779P>m|8KW#pXe zEOo<j4L<}{?txSA^sM$n?e|dYKTZO5SK6{~?NYMuD<glKd91sAwCo)imNHru=44YP zkleDbgU&xat6Pw>=?BnIM$3@&DC=gG>_uf{*1c~TxY3C$aHFC(H`UMOd(UF8{jz8E z^Sn#Yk8%BmK0|*F^(W?>N_Iw>nBJ^7-ca6})2qSQ{lZwKVa(9C+B>xAUJzrM2bGac z|0;)C57^Tym7|+(Kx?`xm&;8n@aTP`Yz6?wN5%e}DFdfRHnYs4OS?eQ@EiL74#?wR zE}_ZXWbY+EaIv0!_Og=AO#L!+6Nhv(bXf^c!h}pf!}HV963;Kj9if|f_;m|>v-j-$ zbQ}*n5qP{U`{zJU0OtOI`@oeRWwaLQ_CWSlTlRYUI+$K~#}l`l)1J9pPI=*qF4etD z^Vy!g(Vo5DlD!(pEqzZJIqOiq{FlrJ7y~<d15XBe1G@t1+2ivaegvVx?TILH<iBD# z7RK5-TeodA?FT!3O}%+s>x=D#^A!S)mClFp+p+-uPu|MqjsP74iu>l9KyiPY1$W;B zit|5>e4svvCoK5A#Ns&6#T>(4$I8lb*KtR=7x7i_KL|ExFGe|gdB)ZX`D&2oYv1i{ zbysioEPBRuh;3f+@aMm@b`9ybU<Kr8O=A=LdJ_I?z*oMP2i)GnCBdo%C4TV8IL{me z{tn<rfwE?|_gG1@yZR+($SsYQHoI$HEK}UR!wVF5(@1%T+n;hb1>C-XyQbMKfgH#; zyIp)=ItS{9z>ax;K$CaN-5Iz$19vt9^xdZKG--)#CI3yX6bw3#iR(`OTt(MEIv1=I z^0YVL`4|hG4{)ErLi}rUxg@q<7K@p_)#pnQHTFfMvw|<KaqK#RQ1E<=rP?5j&VQoG z?-E!a6W@JtEMe8S;X)xl&Kpg*zZ!+?-6z^4_n(~MFU%8%U>oB8&kDz3Yvyg5#~IQ7 zo#6jlw9RK2(Z#1i=>GYs7y~18UfU83Zj@?z`Z5VUBQ?kkvahzTKEs=J>kL4u_tkBv z^VRu2u5Twq7v1a4vQGGh(tWrPcQV~(vv<Ock>aLMzAPUvh4=zSaaD+yGkQOTxQo$y zEyOGG@l%Kw-&>IHgedh=;F%PhtddE#`20P}Bo20L?lau}{5`Eu-kZ-86yl57NeXlm z!wEMyTE`|B`u$9P{TAX&*^D^%7vjqxFCv*CUU#zP`E_V!I&JQs$amV@8x5Rxop~#` z-b&erxp~B>;r``-Q;*e8v`_-~)!ml)$NdZO?^$qJ;MV;T&q5B9pS13`bG&%o4hTE6 z|3Z_O!|-(2%>S!^+l}iCm-nz8;yt>#6|`Y5|2mgn%udk;D&!|QUOYd@w(IvjuD7Hp z9<FdZ_vH5rE(VVq950RsC!eU|cw5f#;<#N0xWgvj(ZKQIxOx<D%tu)B1v>$k$T<@| z&GF(q$TNW3<rj_sZkK=Q0ep$gIz7g5Q-`AZV`0ade|ZgXsaTx-3UIr;%-ew5<z=S9 z2IgO^d7qyMd7p@Lx+7cy+%8{pO~_mGH8%ja^V1FcwH;mq_!^sWUEua@_RnxiPwScf zemM-ekgdTkwY_b7x2m%FJdCOjsbS2-KsH2;B-Md<vQLYv5j~kot6FB5g_A>j<54{t zkvB9pZm<{P86H(jrL_H!chOV(S$|3!imH*!(9nKRF|}08&J>6SJG7^w!60-Ki$_y| z<~DGaCxqal2fD3YfsT+G>TChGjWJNYz!D~VBI%?$s3jthQBqsJ)*0w%3j%5q<LN1Y zAU~>x6k%Fv=>iDyQPjzn_HE69c6D28>-JE$+8t<a4`J6l!SxB#S(YT3-*3({eUfaK zDbZzQ-~Oj;S79=*&?_dV_Ydh>A5cAI&_Sxj5|GK;%j85-kIL}oYISWuv<4Cxxi1rg zRCX-FWNZy;=|Lt(_9wueK_St{Is2libS#-DXsEzTMdKPOFqx<H<h^m7;X@usLPd`b z!;|M0<y4aA3+3pbh_%58=u^wkH-gU4p!%LLh(Qn9P%I1;%sI-CGGsDD{SZX5&070^ zAp9=E63u5h==?^M&h=y)WzFSt(7>$*mOn3a&Lb)boQOF7Q<K#}&8$!7L85E(l19a< zkKgI*aQ3GD>D)+kx6r5i2c7o?%sQchcMZ~?6&0dWV!(K<z$)p}J>qe|@XSy8bPgp- z_Zbl3#X5hx0L8ln>C<_YXpPV#|4EMMQ^3c&3bpB6OH>m2R{sUe@Z5rPO8RtvB1-os z>fbv4=Rp_8B(7cg{65_);mcc4tncp|z%}dBc{)!EwCD5JJeLK$V-|f$eD{cwzhs8m zL|?Y((|42TKP)ed`XzfOEc*1j1X1g8+&cd63w@e@`dx-7{@!6O*8Wcc6I~>I>+gt< zn3bV!?f+*MeY!soby>zw^G0URK?TpKbnm5m#*|1XSmmir6wj$1lRo7WrteT6&#mYp z^-uSKnUB#26<+=dPmEpCr~3{4{yQ$lPw`ED(|h<9=$iYde8d<I3W{Qo{FC&F;_okJ z{rq`RbU^)(0n(%P3{(&!|LJ!_uTZqgi{X$uy9PDHe0jvEkbbQNCw()e*fWdzMgNMJ qIQ-6FALI}1pSV8AceDPH<wmQ;Vx0OV*~Pcf|BdKijsyj@>i-w;HL=40 literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin b/week02/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..40ee06d7308469781ca42b235f55a21909e5cb67 GIT binary patch literal 8472 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 literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake b/week02/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake new file mode 100755 index 00000000..c394a4a4 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-4.15.0-70-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "4.15.0-70-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-4.15.0-70-generic") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "4.15.0-70-generic") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/week02/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c b/week02/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 00000000..bfc6ebbf --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,623 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif +#if defined(__CLASSIC_C__) +/* cv-qualifiers did not exist in K&R C */ +# define const +# define volatile +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__ibmxl__) || (defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800) +# define COMPILER_ID "XL" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__ARMCC_VERSION) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if !defined(__STDC__) +# if (defined(_MSC_VER) && !defined(__clang__)) \ + || (defined(__ibmxl__) || defined(__IBMC__)) +# define C_DIALECT "90" +# else +# define C_DIALECT +# endif +#elif __STDC_VERSION__ >= 201000L +# define C_DIALECT "11" +#elif __STDC_VERSION__ >= 199901L +# define C_DIALECT "99" +#else +# define C_DIALECT "90" +#endif +const char* info_language_dialect_default = + "INFO" ":" "dialect_default[" C_DIALECT "]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/week02/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out b/week02/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out new file mode 100755 index 0000000000000000000000000000000000000000..b6682332a4d6181ed3894fb98c1ca0489587c43f GIT binary patch literal 8616 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 Ih5F_H3$g66L;wH) literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/week02/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 00000000..b728b632 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,602 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__ibmxl__) || (defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800) +# define COMPILER_ID "XL" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__ARMCC_VERSION) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if defined(_MSC_VER) && defined(_MSVC_LANG) +#define CXX_STD _MSVC_LANG +#else +#define CXX_STD __cplusplus +#endif + +const char* info_language_dialect_default = "INFO" ":" "dialect_default[" +#if CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} diff --git a/week02/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out b/week02/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out new file mode 100755 index 0000000000000000000000000000000000000000..4f752d048d3d136555ba6b13b7869c22a3d0b55a GIT binary patch literal 8632 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 PMm|kP+C^q0>XiQ<q>!mv literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake b/week02/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 00000000..a2cdd0b2 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/lewang/algorithm018/week02") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/lewang/algorithm018/week02/cmake-build-debug") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/week02/cmake-build-debug/CMakeFiles/CMakeOutput.log b/week02/cmake-build-debug/CMakeFiles/CMakeOutput.log new file mode 100644 index 00000000..1cfefc95 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/CMakeOutput.log @@ -0,0 +1,625 @@ +The system is: Linux - 4.15.0-70-generic - x86_64 +Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. +Compiler: /usr/bin/cc +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" + +The C compiler identification is GNU, found in "/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out" + +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. +Compiler: /usr/bin/c++ +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + +The CXX compiler identification is GNU, found in "/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out" + +Determining if the C compiler works passed with the following output: +Change Dir: /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_52ef8/fast" +/usr/bin/make -f CMakeFiles/cmTC_52ef8.dir/build.make CMakeFiles/cmTC_52ef8.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_52ef8.dir/testCCompiler.c.o +/usr/bin/cc -o CMakeFiles/cmTC_52ef8.dir/testCCompiler.c.o -c /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp/testCCompiler.c +Linking C executable cmTC_52ef8 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_52ef8.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_52ef8.dir/testCCompiler.c.o -o cmTC_52ef8 +make[1]: Leaving directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_0b8cc/fast" +/usr/bin/make -f CMakeFiles/cmTC_0b8cc.dir/build.make CMakeFiles/cmTC_0b8cc.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_0b8cc.dir/CMakeCCompilerABI.c.o +/usr/bin/cc -o CMakeFiles/cmTC_0b8cc.dir/CMakeCCompilerABI.c.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCCompilerABI.c +Linking C executable cmTC_0b8cc +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_0b8cc.dir/link.txt --verbose=1 +/usr/bin/cc -v -rdynamic CMakeFiles/cmTC_0b8cc.dir/CMakeCCompilerABI.c.o -o cmTC_0b8cc +Using built-in specs. +COLLECT_GCC=/usr/bin/cc +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_0b8cc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccfA1cq8.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_0b8cc /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_0b8cc.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o +make[1]: Leaving directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_0b8cc/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_0b8cc.dir/build.make CMakeFiles/cmTC_0b8cc.dir/build] + ignore line: [make[1]: Entering directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp'] + ignore line: [Building C object CMakeFiles/cmTC_0b8cc.dir/CMakeCCompilerABI.c.o] + ignore line: [/usr/bin/cc -o CMakeFiles/cmTC_0b8cc.dir/CMakeCCompilerABI.c.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCCompilerABI.c] + ignore line: [Linking C executable cmTC_0b8cc] + ignore line: [/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_0b8cc.dir/link.txt --verbose=1] + ignore line: [/usr/bin/cc -v -rdynamic CMakeFiles/cmTC_0b8cc.dir/CMakeCCompilerABI.c.o -o cmTC_0b8cc ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_0b8cc' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccfA1cq8.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_0b8cc /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_0b8cc.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccfA1cq8.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_0b8cc] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] + arg [CMakeFiles/cmTC_0b8cc.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtend.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5] ==> [/usr/lib/gcc/x86_64-linux-gnu/5] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> [/usr/lib] + implicit libs: [gcc;gcc_s;c;gcc;gcc_s] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting C [-std=c11] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_1370e/fast" +/usr/bin/make -f CMakeFiles/cmTC_1370e.dir/build.make CMakeFiles/cmTC_1370e.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_1370e.dir/feature_tests.c.o +/usr/bin/cc -std=c11 -o CMakeFiles/cmTC_1370e.dir/feature_tests.c.o -c /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_1370e +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1370e.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_1370e.dir/feature_tests.c.o -o cmTC_1370e +make[1]: Leaving directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:1c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c99] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_92a96/fast" +/usr/bin/make -f CMakeFiles/cmTC_92a96.dir/build.make CMakeFiles/cmTC_92a96.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_92a96.dir/feature_tests.c.o +/usr/bin/cc -std=c99 -o CMakeFiles/cmTC_92a96.dir/feature_tests.c.o -c /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_92a96 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_92a96.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_92a96.dir/feature_tests.c.o -o cmTC_92a96 +make[1]: Leaving directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c90] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_05268/fast" +/usr/bin/make -f CMakeFiles/cmTC_05268.dir/build.make CMakeFiles/cmTC_05268.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_05268.dir/feature_tests.c.o +/usr/bin/cc -std=c90 -o CMakeFiles/cmTC_05268.dir/feature_tests.c.o -c /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_05268 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_05268.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_05268.dir/feature_tests.c.o -o cmTC_05268 +make[1]: Leaving directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:0c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:0c_variadic_macros +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_ae1c3/fast" +/usr/bin/make -f CMakeFiles/cmTC_ae1c3.dir/build.make CMakeFiles/cmTC_ae1c3.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_ae1c3.dir/testCXXCompiler.cxx.o +/usr/bin/c++ -o CMakeFiles/cmTC_ae1c3.dir/testCXXCompiler.cxx.o -c /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp/testCXXCompiler.cxx +Linking CXX executable cmTC_ae1c3 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ae1c3.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_ae1c3.dir/testCXXCompiler.cxx.o -o cmTC_ae1c3 +make[1]: Leaving directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_45748/fast" +/usr/bin/make -f CMakeFiles/cmTC_45748.dir/build.make CMakeFiles/cmTC_45748.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_45748.dir/CMakeCXXCompilerABI.cpp.o +/usr/bin/c++ -o CMakeFiles/cmTC_45748.dir/CMakeCXXCompilerABI.cpp.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXCompilerABI.cpp +Linking CXX executable cmTC_45748 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_45748.dir/link.txt --verbose=1 +/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_45748.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_45748 +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_45748' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/cc1zD4Ls.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_45748 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_45748.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o +make[1]: Leaving directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_45748/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_45748.dir/build.make CMakeFiles/cmTC_45748.dir/build] + ignore line: [make[1]: Entering directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp'] + ignore line: [Building CXX object CMakeFiles/cmTC_45748.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -o CMakeFiles/cmTC_45748.dir/CMakeCXXCompilerABI.cpp.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Linking CXX executable cmTC_45748] + ignore line: [/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_45748.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_45748.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_45748 ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_45748' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/cc1zD4Ls.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_45748 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_45748.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/cc1zD4Ls.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_45748] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] + arg [CMakeFiles/cmTC_45748.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtend.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5] ==> [/usr/lib/gcc/x86_64-linux-gnu/5] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting CXX [-std=c++1z] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_bf5c8/fast" +/usr/bin/make -f CMakeFiles/cmTC_bf5c8.dir/build.make CMakeFiles/cmTC_bf5c8.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_bf5c8.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++1z -o CMakeFiles/cmTC_bf5c8.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_bf5c8 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_bf5c8.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_bf5c8.dir/feature_tests.cxx.o -o cmTC_bf5c8 +make[1]: Leaving directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++14] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_d1a3b/fast" +/usr/bin/make -f CMakeFiles/cmTC_d1a3b.dir/build.make CMakeFiles/cmTC_d1a3b.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_d1a3b.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++14 -o CMakeFiles/cmTC_d1a3b.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_d1a3b +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d1a3b.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_d1a3b.dir/feature_tests.cxx.o -o cmTC_d1a3b +make[1]: Leaving directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++11] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_7da7e/fast" +/usr/bin/make -f CMakeFiles/cmTC_7da7e.dir/build.make CMakeFiles/cmTC_7da7e.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_7da7e.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++11 -o CMakeFiles/cmTC_7da7e.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_7da7e +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_7da7e.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_7da7e.dir/feature_tests.cxx.o -o cmTC_7da7e +make[1]: Leaving directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++98] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_99dbb/fast" +/usr/bin/make -f CMakeFiles/cmTC_99dbb.dir/build.make CMakeFiles/cmTC_99dbb.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_99dbb.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++98 -o CMakeFiles/cmTC_99dbb.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_99dbb +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_99dbb.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_99dbb.dir/feature_tests.cxx.o -o cmTC_99dbb +make[1]: Leaving directory '/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:0cxx_alias_templates + Feature record: CXX_FEATURE:0cxx_alignas + Feature record: CXX_FEATURE:0cxx_alignof + Feature record: CXX_FEATURE:0cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:0cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:0cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:0cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:0cxx_default_function_template_args + Feature record: CXX_FEATURE:0cxx_defaulted_functions + Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:0cxx_delegating_constructors + Feature record: CXX_FEATURE:0cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:0cxx_enum_forward_declarations + Feature record: CXX_FEATURE:0cxx_explicit_conversions + Feature record: CXX_FEATURE:0cxx_extended_friend_declarations + Feature record: CXX_FEATURE:0cxx_extern_templates + Feature record: CXX_FEATURE:0cxx_final + Feature record: CXX_FEATURE:0cxx_func_identifier + Feature record: CXX_FEATURE:0cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:0cxx_inheriting_constructors + Feature record: CXX_FEATURE:0cxx_inline_namespaces + Feature record: CXX_FEATURE:0cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:0cxx_local_type_template_args + Feature record: CXX_FEATURE:0cxx_long_long_type + Feature record: CXX_FEATURE:0cxx_noexcept + Feature record: CXX_FEATURE:0cxx_nonstatic_member_init + Feature record: CXX_FEATURE:0cxx_nullptr + Feature record: CXX_FEATURE:0cxx_override + Feature record: CXX_FEATURE:0cxx_range_for + Feature record: CXX_FEATURE:0cxx_raw_string_literals + Feature record: CXX_FEATURE:0cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:0cxx_right_angle_brackets + Feature record: CXX_FEATURE:0cxx_rvalue_references + Feature record: CXX_FEATURE:0cxx_sizeof_member + Feature record: CXX_FEATURE:0cxx_static_assert + Feature record: CXX_FEATURE:0cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:0cxx_thread_local + Feature record: CXX_FEATURE:0cxx_trailing_return_types + Feature record: CXX_FEATURE:0cxx_unicode_literals + Feature record: CXX_FEATURE:0cxx_uniform_initialization + Feature record: CXX_FEATURE:0cxx_unrestricted_unions + Feature record: CXX_FEATURE:0cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:0cxx_variadic_macros + Feature record: CXX_FEATURE:0cxx_variadic_templates diff --git a/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/CXX.includecache b/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/CXX.includecache new file mode 100644 index 00000000..b2bec65e --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/CXX.includecache @@ -0,0 +1,16 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week02/Joffer59-maxSlidingwindow.cpp +iostream +- +vector +- +deque +- + diff --git a/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/DependInfo.cmake b/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/DependInfo.cmake new file mode 100644 index 00000000..1077c946 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week02/Joffer59-maxSlidingwindow.cpp" "/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/Joffer59-maxSlidingwindow.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/Joffer59-maxSlidingwindow.cpp.o b/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/Joffer59-maxSlidingwindow.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..4b078e050db05673e9a3c1f392565551e577f682 GIT binary patch literal 230704 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 S+2%j^S3j!hrhd3-|NjLuhf0+I literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/build.make b/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/build.make new file mode 100644 index 00000000..1503a05a --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week02 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week02/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/Joffer59-maxSlidingwindow.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/Joffer59-maxSlidingwindow.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/Joffer59-maxSlidingwindow.dir/flags.make + +CMakeFiles/Joffer59-maxSlidingwindow.dir/Joffer59-maxSlidingwindow.cpp.o: CMakeFiles/Joffer59-maxSlidingwindow.dir/flags.make +CMakeFiles/Joffer59-maxSlidingwindow.dir/Joffer59-maxSlidingwindow.cpp.o: ../Joffer59-maxSlidingwindow.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/Joffer59-maxSlidingwindow.dir/Joffer59-maxSlidingwindow.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/Joffer59-maxSlidingwindow.dir/Joffer59-maxSlidingwindow.cpp.o -c /home/lewang/algorithm018/week02/Joffer59-maxSlidingwindow.cpp + +CMakeFiles/Joffer59-maxSlidingwindow.dir/Joffer59-maxSlidingwindow.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/Joffer59-maxSlidingwindow.dir/Joffer59-maxSlidingwindow.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week02/Joffer59-maxSlidingwindow.cpp > CMakeFiles/Joffer59-maxSlidingwindow.dir/Joffer59-maxSlidingwindow.cpp.i + +CMakeFiles/Joffer59-maxSlidingwindow.dir/Joffer59-maxSlidingwindow.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/Joffer59-maxSlidingwindow.dir/Joffer59-maxSlidingwindow.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week02/Joffer59-maxSlidingwindow.cpp -o CMakeFiles/Joffer59-maxSlidingwindow.dir/Joffer59-maxSlidingwindow.cpp.s + +# Object files for target Joffer59-maxSlidingwindow +Joffer59__maxSlidingwindow_OBJECTS = \ +"CMakeFiles/Joffer59-maxSlidingwindow.dir/Joffer59-maxSlidingwindow.cpp.o" + +# External object files for target Joffer59-maxSlidingwindow +Joffer59__maxSlidingwindow_EXTERNAL_OBJECTS = + +Joffer59-maxSlidingwindow: CMakeFiles/Joffer59-maxSlidingwindow.dir/Joffer59-maxSlidingwindow.cpp.o +Joffer59-maxSlidingwindow: CMakeFiles/Joffer59-maxSlidingwindow.dir/build.make +Joffer59-maxSlidingwindow: CMakeFiles/Joffer59-maxSlidingwindow.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable Joffer59-maxSlidingwindow" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/Joffer59-maxSlidingwindow.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/Joffer59-maxSlidingwindow.dir/build: Joffer59-maxSlidingwindow + +.PHONY : CMakeFiles/Joffer59-maxSlidingwindow.dir/build + +CMakeFiles/Joffer59-maxSlidingwindow.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/Joffer59-maxSlidingwindow.dir/cmake_clean.cmake +.PHONY : CMakeFiles/Joffer59-maxSlidingwindow.dir/clean + +CMakeFiles/Joffer59-maxSlidingwindow.dir/depend: + cd /home/lewang/algorithm018/week02/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week02 /home/lewang/algorithm018/week02 /home/lewang/algorithm018/week02/cmake-build-debug /home/lewang/algorithm018/week02/cmake-build-debug /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/Joffer59-maxSlidingwindow.dir/depend + diff --git a/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/cmake_clean.cmake b/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/cmake_clean.cmake new file mode 100644 index 00000000..728ba9f0 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/Joffer59-maxSlidingwindow.dir/Joffer59-maxSlidingwindow.cpp.o" + "Joffer59-maxSlidingwindow.pdb" + "Joffer59-maxSlidingwindow" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/Joffer59-maxSlidingwindow.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/depend.internal b/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/depend.internal new file mode 100644 index 00000000..67c84521 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/Joffer59-maxSlidingwindow.dir/Joffer59-maxSlidingwindow.cpp.o + /home/lewang/algorithm018/week02/Joffer59-maxSlidingwindow.cpp diff --git a/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/depend.make b/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/depend.make new file mode 100644 index 00000000..36f8e425 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/Joffer59-maxSlidingwindow.dir/Joffer59-maxSlidingwindow.cpp.o: ../Joffer59-maxSlidingwindow.cpp + diff --git a/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/flags.make b/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/link.txt b/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/link.txt new file mode 100644 index 00000000..80fe94b0 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/Joffer59-maxSlidingwindow.dir/Joffer59-maxSlidingwindow.cpp.o -o Joffer59-maxSlidingwindow diff --git a/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/progress.make b/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/Joffer59-maxSlidingwindow.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week02/cmake-build-debug/CMakeFiles/Makefile.cmake b/week02/cmake-build-debug/CMakeFiles/Makefile.cmake new file mode 100644 index 00000000..a5f6419d --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/Makefile.cmake @@ -0,0 +1,50 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "../CMakeLists.txt" + "CMakeFiles/3.13.2/CMakeCCompiler.cmake" + "CMakeFiles/3.13.2/CMakeCXXCompiler.cmake" + "CMakeFiles/3.13.2/CMakeSystem.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCommonLanguageInclude.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeFindCodeBlocks.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeGenericSystem.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeInitializeConfigs.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeLanguageInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeSystemSpecificInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeSystemSpecificInitialize.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU-C.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU-CXX.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU-C.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU-CXX.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/UnixPaths.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/ProcessorCount.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/removeOuterParentheses.dir/DependInfo.cmake" + ) diff --git a/week02/cmake-build-debug/CMakeFiles/Makefile2 b/week02/cmake-build-debug/CMakeFiles/Makefile2 new file mode 100644 index 00000000..bd815ed3 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/Makefile2 @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# The main recursive all target +all: + +.PHONY : all + +# The main recursive preinstall target +preinstall: + +.PHONY : preinstall + +# The main recursive clean target +clean: + +.PHONY : clean + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week02 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week02/cmake-build-debug + +#============================================================================= +# Target rules for target CMakeFiles/removeOuterParentheses.dir + +# All Build rule for target. +CMakeFiles/removeOuterParentheses.dir/all: + $(MAKE) -f CMakeFiles/removeOuterParentheses.dir/build.make CMakeFiles/removeOuterParentheses.dir/depend + $(MAKE) -f CMakeFiles/removeOuterParentheses.dir/build.make CMakeFiles/removeOuterParentheses.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target removeOuterParentheses" +.PHONY : CMakeFiles/removeOuterParentheses.dir/all + +# Include target in all. +all: CMakeFiles/removeOuterParentheses.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/removeOuterParentheses.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/removeOuterParentheses.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/removeOuterParentheses.dir/rule + +# Convenience name for target. +removeOuterParentheses: CMakeFiles/removeOuterParentheses.dir/rule + +.PHONY : removeOuterParentheses + +# clean rule for target. +CMakeFiles/removeOuterParentheses.dir/clean: + $(MAKE) -f CMakeFiles/removeOuterParentheses.dir/build.make CMakeFiles/removeOuterParentheses.dir/clean +.PHONY : CMakeFiles/removeOuterParentheses.dir/clean + +# clean rule for target. +clean: CMakeFiles/removeOuterParentheses.dir/clean + +.PHONY : clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/week02/cmake-build-debug/CMakeFiles/TargetDirectories.txt b/week02/cmake-build-debug/CMakeFiles/TargetDirectories.txt new file mode 100644 index 00000000..ee0862be --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/rebuild_cache.dir +/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir +/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/edit_cache.dir diff --git a/week02/cmake-build-debug/CMakeFiles/clion-environment.txt b/week02/cmake-build-debug/CMakeFiles/clion-environment.txt new file mode 100644 index 00000000..270d93c2 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/clion-environment.txt @@ -0,0 +1,3 @@ +ToolSet: 1.0 (local)Options: + +Options: \ No newline at end of file diff --git a/week02/cmake-build-debug/CMakeFiles/clion-log.txt b/week02/cmake-build-debug/CMakeFiles/clion-log.txt new file mode 100644 index 00000000..2e3a7ebd --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/clion-log.txt @@ -0,0 +1,4 @@ +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" /home/lewang/algorithm018/week02 +-- Configuring done +-- Generating done +-- Build files have been written to: /home/lewang/algorithm018/week02/cmake-build-debug diff --git a/week02/cmake-build-debug/CMakeFiles/cmake.check_cache b/week02/cmake-build-debug/CMakeFiles/cmake.check_cache new file mode 100644 index 00000000..3dccd731 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/week02/cmake-build-debug/CMakeFiles/feature_tests.bin b/week02/cmake-build-debug/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..c1bade88a09ced4221830cdf30b0fa11360b60ea GIT binary patch literal 12520 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 S*dX~wSGpXhnNd-{{J#MLk8ZjE literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/CMakeFiles/feature_tests.c b/week02/cmake-build-debug/CMakeFiles/feature_tests.c new file mode 100644 index 00000000..83e86dd8 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/feature_tests.c @@ -0,0 +1,34 @@ + + const char features[] = {"\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/week02/cmake-build-debug/CMakeFiles/feature_tests.cxx b/week02/cmake-build-debug/CMakeFiles/feature_tests.cxx new file mode 100644 index 00000000..b93418c6 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/CXX.includecache b/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/CXX.includecache new file mode 100644 index 00000000..eb566183 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/CXX.includecache @@ -0,0 +1,22 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week02/groupAnagrams.cpp +iostream +- +vector +- +string +- +string +- +algorithm +- +unordered_map +- + diff --git a/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/DependInfo.cmake b/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/DependInfo.cmake new file mode 100644 index 00000000..b33cb9c7 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week02/groupAnagrams.cpp" "/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/groupAnagrams.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/build.make b/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/build.make new file mode 100644 index 00000000..dd6f4d24 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week02 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week02/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/groupAnagrams.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/groupAnagrams.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/groupAnagrams.dir/flags.make + +CMakeFiles/groupAnagrams.dir/groupAnagrams.cpp.o: CMakeFiles/groupAnagrams.dir/flags.make +CMakeFiles/groupAnagrams.dir/groupAnagrams.cpp.o: ../groupAnagrams.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/groupAnagrams.dir/groupAnagrams.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/groupAnagrams.dir/groupAnagrams.cpp.o -c /home/lewang/algorithm018/week02/groupAnagrams.cpp + +CMakeFiles/groupAnagrams.dir/groupAnagrams.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/groupAnagrams.dir/groupAnagrams.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week02/groupAnagrams.cpp > CMakeFiles/groupAnagrams.dir/groupAnagrams.cpp.i + +CMakeFiles/groupAnagrams.dir/groupAnagrams.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/groupAnagrams.dir/groupAnagrams.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week02/groupAnagrams.cpp -o CMakeFiles/groupAnagrams.dir/groupAnagrams.cpp.s + +# Object files for target groupAnagrams +groupAnagrams_OBJECTS = \ +"CMakeFiles/groupAnagrams.dir/groupAnagrams.cpp.o" + +# External object files for target groupAnagrams +groupAnagrams_EXTERNAL_OBJECTS = + +groupAnagrams: CMakeFiles/groupAnagrams.dir/groupAnagrams.cpp.o +groupAnagrams: CMakeFiles/groupAnagrams.dir/build.make +groupAnagrams: CMakeFiles/groupAnagrams.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable groupAnagrams" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/groupAnagrams.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/groupAnagrams.dir/build: groupAnagrams + +.PHONY : CMakeFiles/groupAnagrams.dir/build + +CMakeFiles/groupAnagrams.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/groupAnagrams.dir/cmake_clean.cmake +.PHONY : CMakeFiles/groupAnagrams.dir/clean + +CMakeFiles/groupAnagrams.dir/depend: + cd /home/lewang/algorithm018/week02/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week02 /home/lewang/algorithm018/week02 /home/lewang/algorithm018/week02/cmake-build-debug /home/lewang/algorithm018/week02/cmake-build-debug /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/groupAnagrams.dir/depend + diff --git a/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/cmake_clean.cmake b/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/cmake_clean.cmake new file mode 100644 index 00000000..680121c3 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/groupAnagrams.dir/groupAnagrams.cpp.o" + "groupAnagrams.pdb" + "groupAnagrams" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/groupAnagrams.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/depend.internal b/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/depend.internal new file mode 100644 index 00000000..984db2b1 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/groupAnagrams.dir/groupAnagrams.cpp.o + /home/lewang/algorithm018/week02/groupAnagrams.cpp diff --git a/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/depend.make b/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/depend.make new file mode 100644 index 00000000..313d8917 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/groupAnagrams.dir/groupAnagrams.cpp.o: ../groupAnagrams.cpp + diff --git a/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/flags.make b/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/groupAnagrams.cpp.o b/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/groupAnagrams.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..05b99189129796844943504848976a79122422a2 GIT binary patch literal 192880 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 Td_{Gi@-)Y49bKP2(Ea}d44H_7 literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/link.txt b/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/link.txt new file mode 100644 index 00000000..f7ed50ff --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/groupAnagrams.dir/groupAnagrams.cpp.o -o groupAnagrams diff --git a/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/progress.make b/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/groupAnagrams.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/CXX.includecache b/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/CXX.includecache new file mode 100644 index 00000000..9c9457a0 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/CXX.includecache @@ -0,0 +1,16 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week02/intersection_of_2_arr.cpp +iostream +- +vector +- +unordered_set +- + diff --git a/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/DependInfo.cmake b/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/DependInfo.cmake new file mode 100644 index 00000000..8f48c751 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week02/intersection_of_2_arr.cpp" "/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/build.make b/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/build.make new file mode 100644 index 00000000..a6eacb3c --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week02 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week02/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/intersection_of_2_arr.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/intersection_of_2_arr.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/intersection_of_2_arr.dir/flags.make + +CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr.cpp.o: CMakeFiles/intersection_of_2_arr.dir/flags.make +CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr.cpp.o: ../intersection_of_2_arr.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr.cpp.o -c /home/lewang/algorithm018/week02/intersection_of_2_arr.cpp + +CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week02/intersection_of_2_arr.cpp > CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr.cpp.i + +CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week02/intersection_of_2_arr.cpp -o CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr.cpp.s + +# Object files for target intersection_of_2_arr +intersection_of_2_arr_OBJECTS = \ +"CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr.cpp.o" + +# External object files for target intersection_of_2_arr +intersection_of_2_arr_EXTERNAL_OBJECTS = + +intersection_of_2_arr: CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr.cpp.o +intersection_of_2_arr: CMakeFiles/intersection_of_2_arr.dir/build.make +intersection_of_2_arr: CMakeFiles/intersection_of_2_arr.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable intersection_of_2_arr" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/intersection_of_2_arr.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/intersection_of_2_arr.dir/build: intersection_of_2_arr + +.PHONY : CMakeFiles/intersection_of_2_arr.dir/build + +CMakeFiles/intersection_of_2_arr.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/intersection_of_2_arr.dir/cmake_clean.cmake +.PHONY : CMakeFiles/intersection_of_2_arr.dir/clean + +CMakeFiles/intersection_of_2_arr.dir/depend: + cd /home/lewang/algorithm018/week02/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week02 /home/lewang/algorithm018/week02 /home/lewang/algorithm018/week02/cmake-build-debug /home/lewang/algorithm018/week02/cmake-build-debug /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/intersection_of_2_arr.dir/depend + diff --git a/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/cmake_clean.cmake b/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/cmake_clean.cmake new file mode 100644 index 00000000..3e759d56 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr.cpp.o" + "intersection_of_2_arr.pdb" + "intersection_of_2_arr" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/intersection_of_2_arr.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/depend.internal b/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/depend.internal new file mode 100644 index 00000000..a6067d22 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr.cpp.o + /home/lewang/algorithm018/week02/intersection_of_2_arr.cpp diff --git a/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/depend.make b/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/depend.make new file mode 100644 index 00000000..6a91e8f0 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr.cpp.o: ../intersection_of_2_arr.cpp + diff --git a/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/flags.make b/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr.cpp.o b/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a3129aaaca4e23672e7eb7230aa22756ea9e54c2 GIT binary patch literal 409480 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�CvZV5D|s1$yr>(8CSG={ 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%0DWXckjeB!vlt!m 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 D$z@FG literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr_2.cpp.o b/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr_2.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..2a0a8ea9145a6e90f489f9c86939e6f9aabfddbc GIT binary patch literal 154520 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 CVnK!g literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/link.txt b/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/link.txt new file mode 100644 index 00000000..1196bf9e --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/intersection_of_2_arr.dir/intersection_of_2_arr.cpp.o -o intersection_of_2_arr diff --git a/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/progress.make b/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/intersection_of_2_arr.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week02/cmake-build-debug/CMakeFiles/progress.marks b/week02/cmake-build-debug/CMakeFiles/progress.marks new file mode 100644 index 00000000..0cfbf088 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/progress.marks @@ -0,0 +1 @@ +2 diff --git a/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/CXX.includecache b/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/CXX.includecache new file mode 100644 index 00000000..7ceaba78 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/CXX.includecache @@ -0,0 +1,18 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week02/removeOuterParentheses.cpp +iostream +- +string +- +vector +- +stack +- + diff --git a/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/DependInfo.cmake b/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/DependInfo.cmake new file mode 100644 index 00000000..9d40a273 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week02/removeOuterParentheses.cpp" "/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/build.make b/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/build.make new file mode 100644 index 00000000..7bfac01d --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week02 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week02/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/removeOuterParentheses.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/removeOuterParentheses.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/removeOuterParentheses.dir/flags.make + +CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.o: CMakeFiles/removeOuterParentheses.dir/flags.make +CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.o: ../removeOuterParentheses.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.o -c /home/lewang/algorithm018/week02/removeOuterParentheses.cpp + +CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week02/removeOuterParentheses.cpp > CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.i + +CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week02/removeOuterParentheses.cpp -o CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.s + +# Object files for target removeOuterParentheses +removeOuterParentheses_OBJECTS = \ +"CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.o" + +# External object files for target removeOuterParentheses +removeOuterParentheses_EXTERNAL_OBJECTS = + +removeOuterParentheses: CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.o +removeOuterParentheses: CMakeFiles/removeOuterParentheses.dir/build.make +removeOuterParentheses: CMakeFiles/removeOuterParentheses.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable removeOuterParentheses" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/removeOuterParentheses.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/removeOuterParentheses.dir/build: removeOuterParentheses + +.PHONY : CMakeFiles/removeOuterParentheses.dir/build + +CMakeFiles/removeOuterParentheses.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/removeOuterParentheses.dir/cmake_clean.cmake +.PHONY : CMakeFiles/removeOuterParentheses.dir/clean + +CMakeFiles/removeOuterParentheses.dir/depend: + cd /home/lewang/algorithm018/week02/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week02 /home/lewang/algorithm018/week02 /home/lewang/algorithm018/week02/cmake-build-debug /home/lewang/algorithm018/week02/cmake-build-debug /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/removeOuterParentheses.dir/depend + diff --git a/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/cmake_clean.cmake b/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/cmake_clean.cmake new file mode 100644 index 00000000..ba15b737 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.o" + "removeOuterParentheses.pdb" + "removeOuterParentheses" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/removeOuterParentheses.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/depend.internal b/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/depend.internal new file mode 100644 index 00000000..062d4fda --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.o + /home/lewang/algorithm018/week02/removeOuterParentheses.cpp diff --git a/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/depend.make b/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/depend.make new file mode 100644 index 00000000..1159c73b --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.o: ../removeOuterParentheses.cpp + diff --git a/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/flags.make b/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/link.txt b/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/link.txt new file mode 100644 index 00000000..0d422cd4 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.o -o removeOuterParentheses diff --git a/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/progress.make b/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.o b/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..9e71e162f356d9d6eed7a7a01d34fbcdbd43c380 GIT binary patch literal 189936 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 literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/CXX.includecache b/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/CXX.includecache new file mode 100644 index 00000000..b9964ecd --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/CXX.includecache @@ -0,0 +1,18 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week02/uniqueOccurences.cpp +iostream +- +vector +- +unordered_map +- +unordered_set +- + diff --git a/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/DependInfo.cmake b/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/DependInfo.cmake new file mode 100644 index 00000000..cc6be967 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week02/uniqueOccurences.cpp" "/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/uniqueOccurences.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/build.make b/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/build.make new file mode 100644 index 00000000..fbfce0eb --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week02 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week02/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/uniqueOccurences.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/uniqueOccurences.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/uniqueOccurences.dir/flags.make + +CMakeFiles/uniqueOccurences.dir/uniqueOccurences.cpp.o: CMakeFiles/uniqueOccurences.dir/flags.make +CMakeFiles/uniqueOccurences.dir/uniqueOccurences.cpp.o: ../uniqueOccurences.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/uniqueOccurences.dir/uniqueOccurences.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/uniqueOccurences.dir/uniqueOccurences.cpp.o -c /home/lewang/algorithm018/week02/uniqueOccurences.cpp + +CMakeFiles/uniqueOccurences.dir/uniqueOccurences.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/uniqueOccurences.dir/uniqueOccurences.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week02/uniqueOccurences.cpp > CMakeFiles/uniqueOccurences.dir/uniqueOccurences.cpp.i + +CMakeFiles/uniqueOccurences.dir/uniqueOccurences.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/uniqueOccurences.dir/uniqueOccurences.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week02/uniqueOccurences.cpp -o CMakeFiles/uniqueOccurences.dir/uniqueOccurences.cpp.s + +# Object files for target uniqueOccurences +uniqueOccurences_OBJECTS = \ +"CMakeFiles/uniqueOccurences.dir/uniqueOccurences.cpp.o" + +# External object files for target uniqueOccurences +uniqueOccurences_EXTERNAL_OBJECTS = + +uniqueOccurences: CMakeFiles/uniqueOccurences.dir/uniqueOccurences.cpp.o +uniqueOccurences: CMakeFiles/uniqueOccurences.dir/build.make +uniqueOccurences: CMakeFiles/uniqueOccurences.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable uniqueOccurences" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/uniqueOccurences.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/uniqueOccurences.dir/build: uniqueOccurences + +.PHONY : CMakeFiles/uniqueOccurences.dir/build + +CMakeFiles/uniqueOccurences.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/uniqueOccurences.dir/cmake_clean.cmake +.PHONY : CMakeFiles/uniqueOccurences.dir/clean + +CMakeFiles/uniqueOccurences.dir/depend: + cd /home/lewang/algorithm018/week02/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week02 /home/lewang/algorithm018/week02 /home/lewang/algorithm018/week02/cmake-build-debug /home/lewang/algorithm018/week02/cmake-build-debug /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/uniqueOccurences.dir/depend + diff --git a/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/cmake_clean.cmake b/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/cmake_clean.cmake new file mode 100644 index 00000000..0f356efd --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/uniqueOccurences.dir/uniqueOccurences.cpp.o" + "uniqueOccurences.pdb" + "uniqueOccurences" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/uniqueOccurences.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/depend.internal b/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/depend.internal new file mode 100644 index 00000000..f59b836e --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/uniqueOccurences.dir/uniqueOccurences.cpp.o + /home/lewang/algorithm018/week02/uniqueOccurences.cpp diff --git a/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/depend.make b/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/depend.make new file mode 100644 index 00000000..f4a1df11 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/uniqueOccurences.dir/uniqueOccurences.cpp.o: ../uniqueOccurences.cpp + diff --git a/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/flags.make b/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/link.txt b/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/link.txt new file mode 100644 index 00000000..4150f3ab --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/uniqueOccurences.dir/uniqueOccurences.cpp.o -o uniqueOccurences diff --git a/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/progress.make b/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/uniqueOccurences.cpp.o b/week02/cmake-build-debug/CMakeFiles/uniqueOccurences.dir/uniqueOccurences.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..8497d6ad916215442fb87540068a8a38071384fa GIT binary patch literal 533104 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⪼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 KgW`vWssI0i$mp>E literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/Joffer59-maxSlidingwindow b/week02/cmake-build-debug/Joffer59-maxSlidingwindow new file mode 100755 index 0000000000000000000000000000000000000000..5980d6af038772f599207a138c280ffc646675d1 GIT binary patch literal 137016 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 literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/Makefile b/week02/cmake-build-debug/Makefile new file mode 100644 index 00000000..6d71d0b3 --- /dev/null +++ b/week02/cmake-build-debug/Makefile @@ -0,0 +1,178 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week02 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week02/cmake-build-debug + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named removeOuterParentheses + +# Build rule for target. +removeOuterParentheses: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 removeOuterParentheses +.PHONY : removeOuterParentheses + +# fast build rule for target. +removeOuterParentheses/fast: + $(MAKE) -f CMakeFiles/removeOuterParentheses.dir/build.make CMakeFiles/removeOuterParentheses.dir/build +.PHONY : removeOuterParentheses/fast + +removeOuterParentheses.o: removeOuterParentheses.cpp.o + +.PHONY : removeOuterParentheses.o + +# target to build an object file +removeOuterParentheses.cpp.o: + $(MAKE) -f CMakeFiles/removeOuterParentheses.dir/build.make CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.o +.PHONY : removeOuterParentheses.cpp.o + +removeOuterParentheses.i: removeOuterParentheses.cpp.i + +.PHONY : removeOuterParentheses.i + +# target to preprocess a source file +removeOuterParentheses.cpp.i: + $(MAKE) -f CMakeFiles/removeOuterParentheses.dir/build.make CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.i +.PHONY : removeOuterParentheses.cpp.i + +removeOuterParentheses.s: removeOuterParentheses.cpp.s + +.PHONY : removeOuterParentheses.s + +# target to generate assembly for a file +removeOuterParentheses.cpp.s: + $(MAKE) -f CMakeFiles/removeOuterParentheses.dir/build.make CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.s +.PHONY : removeOuterParentheses.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... rebuild_cache" + @echo "... removeOuterParentheses" + @echo "... edit_cache" + @echo "... removeOuterParentheses.o" + @echo "... removeOuterParentheses.i" + @echo "... removeOuterParentheses.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/week02/cmake-build-debug/cmake_install.cmake b/week02/cmake-build-debug/cmake_install.cmake new file mode 100644 index 00000000..43885c9e --- /dev/null +++ b/week02/cmake-build-debug/cmake_install.cmake @@ -0,0 +1,49 @@ +# Install script for directory: /home/lewang/algorithm018/week02 + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/lewang/algorithm018/week02/cmake-build-debug/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/week02/cmake-build-debug/groupAnagrams b/week02/cmake-build-debug/groupAnagrams new file mode 100755 index 0000000000000000000000000000000000000000..b9b19419de7a4b417e9b184ad7d45edd7a45a96a GIT binary patch literal 137008 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%0D&mpc1(zk+pXK47d_!5pKZ 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 literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/intersection_of_2_arr b/week02/cmake-build-debug/intersection_of_2_arr new file mode 100755 index 0000000000000000000000000000000000000000..5fab66c054aa17dd43b992daf1ac4544c7410837 GIT binary patch literal 259488 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 literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/removeOuterParentheses b/week02/cmake-build-debug/removeOuterParentheses new file mode 100755 index 0000000000000000000000000000000000000000..d8efbde2f24148c5e64c204fb056d7c20933d5e5 GIT binary patch literal 122720 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%0DCXHJSf`^sD;OB10dqCD23l7RY$DRq}_+ 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 DaLVv~ literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/uniqueOccurences b/week02/cmake-build-debug/uniqueOccurences new file mode 100755 index 0000000000000000000000000000000000000000..316fbe2c00b701fb6a0765abe719f397195207e4 GIT binary patch literal 347304 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%0A}L$-XN1f13kJ5bHK@nu`2*!%wkF?pMdK-3 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 e69v-Xs;WHAT=(wV&`IDg3 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 Pgk#n0MfF3$W$FI`AdtaF literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/week02.cbp b/week02/cmake-build-debug/week02.cbp new file mode 100644 index 00000000..83853934 --- /dev/null +++ b/week02/cmake-build-debug/week02.cbp @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="UTF-8"?> +<CodeBlocks_project_file> + <FileVersion major="1" minor="6"/> + <Project> + <Option title="week02"/> + <Option makefile_is_custom="1"/> + <Option compiler="gcc"/> + <Option virtualFolders="CMake Files\;"/> + <Build> + <Target title="all"> + <Option working_dir="/home/lewang/algorithm018/week02/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 all"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="rebuild_cache"> + <Option working_dir="/home/lewang/algorithm018/week02/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 rebuild_cache"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="removeOuterParentheses"> + <Option output="/home/lewang/algorithm018/week02/cmake-build-debug/removeOuterParentheses" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week02/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 removeOuterParentheses"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="removeOuterParentheses/fast"> + <Option output="/home/lewang/algorithm018/week02/cmake-build-debug/removeOuterParentheses" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week02/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 removeOuterParentheses/fast"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="edit_cache"> + <Option working_dir="/home/lewang/algorithm018/week02/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 edit_cache"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + </Build> + <Unit filename="/home/lewang/algorithm018/week02/removeOuterParentheses.cpp"> + <Option target="removeOuterParentheses"/> + </Unit> + <Unit filename="/home/lewang/algorithm018/week02/CMakeLists.txt"> + <Option virtualFolder="CMake Files\"/> + </Unit> + </Project> +</CodeBlocks_project_file> diff --git a/week02/groupAnagrams.cpp b/week02/groupAnagrams.cpp new file mode 100644 index 00000000..43fbadb2 --- /dev/null +++ b/week02/groupAnagrams.cpp @@ -0,0 +1,55 @@ +// +// Created by lewang on 10/26/20. +// +#include <iostream> +#include <vector> +#include <string> +#include <string> +#include <algorithm> +#include <unordered_map> +using namespace std; + + +class Solution { +public: + vector<vector<string>> groupAnagrams(vector<string>& strs) { + unordered_map<string, vector<string>> m; + for (string s : strs) { + string t = s; + sort(t.begin(), t.end()); + m[t].push_back(s); + } + vector<vector<string>> anagrams; + for (auto p : m) { + anagrams.push_back(p.second); + } + return anagrams; + } + + + string strSort(string s) { + int counter[26] = {0}; + for(char c: s) { + counter[c - 'a']++; + } + string t; + for (int c = 0; c < 26; ++c) { + cout<<counter[c] <<" -> " << c+'a' <<" , " <<string(counter[c],c+'a')<<endl; + t += string(counter[c], c + 'a'); + } + return t; + } +}; + +int main(){ + vector<string> strs {"eat","five","telephone","ate","nat","beauty"}; + Solution test; + string s = "letter"; + string t = test.strSort(s); + cout<<t<<endl; +// sort(strs.begin(),strs.end()); +// for(auto s: strs) cout<<s<<","<<endl; + string tt = string(20,116); + cout << tt; + return 0; +} \ No newline at end of file diff --git a/week02/intersection_of_2_arr.cpp b/week02/intersection_of_2_arr.cpp new file mode 100644 index 00000000..952d8b95 --- /dev/null +++ b/week02/intersection_of_2_arr.cpp @@ -0,0 +1,42 @@ +// +// Created by lewang on 10/26/20. +// +#include <iostream> +#include <vector> +#include <unordered_set> +using namespace std; + +class Solution{ +public: + vector<int> intersect(vector<int>& nums1, vector<int>& nums2) { + if(nums1.empty() || nums2.empty()){ + return vector<int>(); + } + //cout << *(nums1.cbegin()) << endl; + + unordered_set<int> m(nums1.cbegin(),nums1.cend());//Set 不储存重复的树!! + //使用cbegin(),cennd() 而不是begin(),end(),是因为前者更安全 + for (auto n : m) cout << n << ","<< endl; + vector<int> res; + for (auto a : nums2) { + if(m.erase(a) > 0){ + res.push_back(a); + } + } + return res; + } + +}; +//Runtime:4 ms, faster than 99.94% of C++ online submissions. +//Memory Usage:10.6 MB, less than 21.44% of C++ online submissions. +int main(){ + vector<int> nums1 {1,2,3,3,4,4,5}; + vector<int> nums2 {1,1,2,3,4,5,6}; + Solution test; + vector<int> res; + res = test.intersect(nums1,nums2); + cout<<"-------haha-----------" << endl; + for (auto a : res) cout << a << ","; + cout << endl; + return 0; +} \ No newline at end of file diff --git a/week02/intersection_of_2_arr_2.cpp b/week02/intersection_of_2_arr_2.cpp new file mode 100644 index 00000000..8961061a --- /dev/null +++ b/week02/intersection_of_2_arr_2.cpp @@ -0,0 +1,91 @@ +// +// Created by lewang on 10/26/20. +// + +//自己的写法,但是显示内存有问题 +#include <iostream> +#include <vector> +//#include <bits/unordered_map.h> +#include <unordered_map> +#include <unordered_set> +using namespace std; + + +class Solution { +public: + vector<int> intersect(vector<int>& nums1, vector<int>& nums2) { + int len1 = nums1.size(); + int len2 = nums2.size(); + vector<int> res; + vector<int> cache {10,0}; + if(len1 == 0 || len2 == 0) return res; + + for (int i = 0; i < len1; ++i) { + cout << i << endl; + int temp = nums1[i]; + if(cache[temp - 0]++ < 0){ + res.push_back(temp); + } + } + for (int j = 0; j < len2; ++j) { + cout << j << endl; + int temp = nums2[j]; + if(cache[temp - 0]-- > 0){ + res.push_back(temp); + } + } + return res; + } + +//较快的解法 + vector<int> intersect2(vector<int>& nums1, vector<int>& nums2){ + vector<int> res; + unordered_map<int,int> umap; + for (int num : nums1) { + umap.at(num)++; + } + for (int num : nums2) { + if(umap[num] > 0) { + res.push_back(num); + umap[num]--; + } + } + return res; + } + +//Runtime:4 ms, faster than 99.68% of C++ online submissions. +//Memory Usage:10.8 MB, less than 6.65% of C++ online submissions. + +// + vector<int> intersect3(vector<int>& nums1, vector<int>& nums2) { + if(nums1.empty() || nums2.empty()){ + return vector<int>(); + } + unordered_map<int,int> cache; + for(int i : nums1) { + cache[i]++; + } + vector<int> out; + for(int i : nums2) { + if (cache[i]-- > 0){ + out.push_back(i); + } + } + return out; + } +//Success: +//Runtime:12 ms, faster than 72.72% of C++ online submissions. +//Memory Usage:10.7 MB, less than 16.60% of C++ online submissions. +}; + + +int main(){ + vector<int> nums1 {1,2,4,4,6}; + vector<int> nums2 {2,3,4,2,4}; + Solution test; + vector<int> res; + res = test.intersect(nums1,nums2); + for(auto n : res) cout<< n <<','; + + return 0; +} \ No newline at end of file diff --git a/week02/removeOuterParentheses.cpp b/week02/removeOuterParentheses.cpp new file mode 100644 index 00000000..90056eb2 --- /dev/null +++ b/week02/removeOuterParentheses.cpp @@ -0,0 +1,63 @@ +// +// Created by lewang on 10/28/20. +// + +#include <iostream> +#include <string> +#include <vector> +#include <stack> +using namespace std; + +class Solution { +public: + string removeOuterParenteses(string s) { + vector<char> res; + string r; + int level = 0; +// res.push_back(s[0]); + for (int i = 0; i <s.size(); i++){ + char c = s[i]; + if(c == ')') --level; //如果是右括号,当前出去一层括号,level-1 + if(level >= 1) res.push_back(c); + if(c == '(') ++level;//如果是左括号,当前进去一层括号,level+1 + + } + for(auto rec :res){ + + r = r + rec; + } + + return r; + } + //如果要使用栈 + //什么情况下,某个括号要加入结果中? 非外层括号 + //怎么判断是非外层括号? 1.左括号加入前,栈不为空,2.右括号加入并消除括号,栈不为空 + string removeOuterParenteses2(string S) { + stack<char> temp; + string res; + for(auto c : S){ + if(c == '('){ + if (!temp.empty()){ + res = res + c; + } + temp.push(c); + } + if(c == ')'){ + temp.pop(); + if(temp.empty()){ + res = res + c; + } + } + return res; + } + } +}; + +int main() { + string s = "(()())(())"; + Solution test; + string res; + res = test.removeOuterParenteses2(s); + cout<<res<<endl; + return 0; +} \ No newline at end of file diff --git a/week02/uniqueOccurences.cpp b/week02/uniqueOccurences.cpp new file mode 100644 index 00000000..3b2644d5 --- /dev/null +++ b/week02/uniqueOccurences.cpp @@ -0,0 +1,32 @@ +// +// Created by lewang on 10/28/20. +// +#include <iostream> +#include <vector> +#include <unordered_map> +#include <unordered_set> +using namespace std; + +class Solution { +public: + bool uniqueOccurrences(vector<int>& arr) { + unordered_map<int,int> map; + for(const auto& x :arr) { + map[x]++; + } + unordered_set<int> times; + for(const auto& x: map){ + times.insert(x.second); + } + return times.size() == map.size(); + + } +}; + +int main() { + vector<int> arr {1,2};//{1,2,2,1,1,3,5}; + Solution test; + bool res = test.uniqueOccurrences(arr); + cout<<"result: "<<res; + return 0; +} From bf056d3517268e4b5f3db76c635b12ba327b32aa Mon Sep 17 00:00:00 2001 From: Ella2le <1071444737@qq.com> Date: Sat, 31 Oct 2020 16:01:43 +0800 Subject: [PATCH 09/21] do some homework --- .idea/.name | 1 + .idea/algorithm018.iml | 2 + .idea/encodings.xml | 4 + .idea/misc.xml | 9 + .idea/modules.xml | 8 + .idea/workspace.xml | 599 +++++++++++++++++++++++++++++++++++++++++ 6 files changed, 623 insertions(+) create mode 100644 .idea/.name create mode 100644 .idea/algorithm018.iml create mode 100644 .idea/encodings.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/workspace.xml diff --git a/.idea/.name b/.idea/.name new file mode 100644 index 00000000..8bc84b62 --- /dev/null +++ b/.idea/.name @@ -0,0 +1 @@ +week02 \ No newline at end of file diff --git a/.idea/algorithm018.iml b/.idea/algorithm018.iml new file mode 100644 index 00000000..f08604bb --- /dev/null +++ b/.idea/algorithm018.iml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module classpath="CMake" type="CPP_MODULE" version="4" /> \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 00000000..15a15b21 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="Encoding" addBOMForNewFiles="with NO BOM" /> +</project> \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 00000000..a498ded6 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="CMakeWorkspace" PROJECT_DIR="$PROJECT_DIR$/week02"> + <contentRoot DIR="$PROJECT_DIR$" /> + </component> + <component name="JavaScriptSettings"> + <option name="languageLevel" value="ES6" /> + </component> +</project> \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 00000000..5915613b --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/.idea/algorithm018.iml" filepath="$PROJECT_DIR$/.idea/algorithm018.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/.idea/workspace.xml b/.idea/workspace.xml new file mode 100644 index 00000000..e709ef59 --- /dev/null +++ b/.idea/workspace.xml @@ -0,0 +1,599 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="CMakeRunConfigurationManager" shouldGenerate="true" shouldDeleteObsolete="true"> + <generated> + <config projectName="week02" targetName="removeOuterParentheses" /> + </generated> + </component> + <component name="CMakeSettings"> + <configurations> + <configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" /> + </configurations> + </component> + <component name="ChangeListManager"> + <list default="true" id="dcdfbaa2-00ce-4e86-b0d5-267557e9ea82" name="Default Changelist" comment=""> + <change afterPath="$PROJECT_DIR$/week02/CMakeLists.txt" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/week02/Joffer59-maxSlidingwindow.cpp" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/week02/groupAnagrams.cpp" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/week02/intersection_of_2_arr.cpp" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/week02/intersection_of_2_arr_2.cpp" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/week02/removeOuterParentheses.cpp" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/week02/uniqueOccurences.cpp" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week01/2sum.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/week01/2sum.cpp" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week01/CMakeLists.txt" beforeDir="false" afterPath="$PROJECT_DIR$/week01/CMakeLists.txt" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week01/NOTE.md" beforeDir="false" afterPath="$PROJECT_DIR$/week01/NOTE.md" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week01/cmake-build-debug/40_Find_Ksmallest_nums" beforeDir="false" afterPath="$PROJECT_DIR$/week01/cmake-build-debug/40_Find_Ksmallest_nums" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o" beforeDir="false" afterPath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/Makefile.cmake" beforeDir="false" afterPath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/Makefile.cmake" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/Makefile2" beforeDir="false" afterPath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/Makefile2" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/TargetDirectories.txt" beforeDir="false" afterPath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/TargetDirectories.txt" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/CXX.includecache" beforeDir="false" afterPath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/CXX.includecache" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o" beforeDir="false" afterPath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week01/cmake-build-debug/Makefile" beforeDir="false" afterPath="$PROJECT_DIR$/week01/cmake-build-debug/Makefile" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week01/cmake-build-debug/valid_anagram" beforeDir="false" afterPath="$PROJECT_DIR$/week01/cmake-build-debug/valid_anagram" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week01/cmake-build-debug/week01.cbp" beforeDir="false" afterPath="$PROJECT_DIR$/week01/cmake-build-debug/week01.cbp" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week01/valid_anagram.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/week01/valid_anagram.cpp" afterDir="false" /> + </list> + <ignored path="$PROJECT_DIR$/week01/cmake-build-debug/" /> + <ignored path="$PROJECT_DIR$/week02/cmake-build-debug/" /> + <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> + <option name="SHOW_DIALOG" value="false" /> + <option name="HIGHLIGHT_CONFLICTS" value="true" /> + <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> + <option name="LAST_RESOLUTION" value="IGNORE" /> + </component> + <component name="ExecutionTargetManager" SELECTED_TARGET="CMakeBuildProfile:Debug" /> + <component name="FileEditorManager"> + <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/week02/CMakeLists.txt"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="126"> + <caret line="7" column="65" selection-start-line="7" selection-start-column="65" selection-end-line="7" selection-end-column="65" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/week01/NOTE.md"> + <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> + <state split_layout="SPLIT"> + <first_editor relative-caret-position="828"> + <caret line="49" column="2" selection-start-line="49" selection-start-column="2" selection-end-line="49" selection-end-column="2" /> + </first_editor> + <second_editor /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/week02/uniqueOccurences.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="324"> + <caret line="18" column="35" selection-start-line="18" selection-start-column="35" selection-end-line="18" selection-end-column="35" /> + <folding> + <element signature="e#40#59#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/week02/removeOuterParentheses.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="535"> + <caret line="51" column="9" lean-forward="true" selection-start-line="51" selection-start-column="9" selection-end-line="51" selection-end-column="9" /> + <folding> + <element signature="e#41#60#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/week01/binary_tree.md"> + <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> + <state split_layout="FIRST"> + <first_editor relative-caret-position="54"> + <caret line="3" column="5" selection-start-line="3" selection-start-column="5" selection-end-line="3" selection-end-column="5" /> + </first_editor> + <second_editor /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/week02/intersection_of_2_arr.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="450"> + <caret line="25" column="19" selection-start-line="25" selection-start-column="19" selection-end-line="25" selection-end-column="19" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/week02/Joffer59-maxSlidingwindow.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="1224"> + <caret line="68" column="32" selection-start-line="68" selection-start-column="32" selection-end-line="68" selection-end-column="32" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/week02/intersection_of_2_arr_2.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="1386"> + <caret line="77" column="29" selection-start-line="77" selection-start-column="29" selection-end-line="77" selection-end-column="29" /> + </state> + </provider> + </entry> + </file> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/week01/2sum.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="252"> + <caret line="14" column="50" selection-start-line="14" selection-start-column="50" selection-end-line="14" selection-end-column="50" /> + </state> + </provider> + </entry> + </file> + </leaf> + </component> + <component name="FileTemplateManagerImpl"> + <option name="RECENT_TEMPLATES"> + <list> + <option value="CMakeLists.txt" /> + </list> + </option> + </component> + <component name="Git.Settings"> + <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> + </component> + <component name="IdeDocumentHistory"> + <option name="CHANGED_PATHS"> + <list> + <option value="$PROJECT_DIR$/week01/plusone.cpp" /> + <option value="$PROJECT_DIR$/week01/lc-waterContainer.cpp" /> + <option value="$PROJECT_DIR$/week01/reorder_list.cpp" /> + <option value="$PROJECT_DIR$/week01/3sum.cpp" /> + <option value="$PROJECT_DIR$/week01/swapPairs.cpp" /> + <option value="$PROJECT_DIR$/week01/reverseLinkedList_recurse.cpp" /> + <option value="$PROJECT_DIR$/week01/merge_two_sorted_linkedlist.cpp" /> + <option value="$PROJECT_DIR$/week01/waterContainer.cpp" /> + <option value="$PROJECT_DIR$/week01/studyStack.cpp" /> + <option value="$PROJECT_DIR$/week01/studyDeque.cpp" /> + <option value="$PROJECT_DIR$/week01/studyQuene.cpp" /> + <option value="$PROJECT_DIR$/week01/compare_Queue_PriorityQueue.cpp" /> + <option value="$PROJECT_DIR$/week01/remove-duplicates-from-sorted-array.cpp" /> + <option value="$PROJECT_DIR$/week01/rotate-array.cpp" /> + <option value="$PROJECT_DIR$/week01/design_circular_deque.cpp" /> + <option value="$PROJECT_DIR$/week01/trapping_rain_water.cpp" /> + <option value="$PROJECT_DIR$/week01/bulls_and_cow.cpp" /> + <option value="$PROJECT_DIR$/week01/binary_tree.md" /> + <option value="$PROJECT_DIR$/week01/binary_tree_inorder_travelsal.cpp" /> + <option value="$PROJECT_DIR$/week01/40_Find_Ksmallest_nums.cpp" /> + <option value="$PROJECT_DIR$/week01/NOTE.md" /> + <option value="$PROJECT_DIR$/week02/intersection_of_2_arr_2.cpp" /> + <option value="$PROJECT_DIR$/week01/2sum.cpp" /> + <option value="$PROJECT_DIR$/week02/groupAnagrams.cpp" /> + <option value="$PROJECT_DIR$/week01/CMakeLists.txt" /> + <option value="$PROJECT_DIR$/week01/valid_anagram.cpp" /> + <option value="$PROJECT_DIR$/week02/intersection_of_2_arr.cpp" /> + <option value="$PROJECT_DIR$/week02/Joffer59-maxSlidingwindow.cpp" /> + <option value="$PROJECT_DIR$/week02/uniqueOccurences.cpp" /> + <option value="$PROJECT_DIR$/week02/CMakeLists.txt" /> + <option value="$PROJECT_DIR$/week02/removeOuterParentheses.cpp" /> + </list> + </option> + </component> + <component name="JsBowerSettings"> + <node-interpreter value="project" /> + <bower-package value="" /> + <bower.json value="" /> + </component> + <component name="ProjectFrameBounds" extendedState="6"> + <option name="x" value="102" /> + <option name="y" value="169" /> + <option name="width" value="854" /> + <option name="height" value="789" /> + </component> + <component name="ProjectLevelVcsManager"> + <ConfirmationsSetting value="2" id="Add" /> + </component> + <component name="ProjectView"> + <navigator proportions="" version="1"> + <foldersAlwaysOnTop value="true" /> + </navigator> + <panes> + <pane id="ProjectPane"> + <subPane> + <expand> + <path> + <item name="week02" type="b2602c69:ProjectViewProjectNode" /> + <item name="algorithm018" type="462c0819:PsiDirectoryNode" /> + </path> + <path> + <item name="week02" type="b2602c69:ProjectViewProjectNode" /> + <item name="algorithm018" type="462c0819:PsiDirectoryNode" /> + <item name="week02" type="462c0819:PsiDirectoryNode" /> + </path> + </expand> + <select /> + </subPane> + </pane> + <pane id="Scope" /> + </panes> + </component> + <component name="PropertiesComponent"> + <property name="WebServerToolWindowFactoryState" value="false" /> + <property name="last_opened_file_path" value="$PROJECT_DIR$/../leetcode" /> + <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> + <property name="nodejs_npm_path_reset_for_default_project" value="true" /> + <property name="nodejs_package_manager_path" value="npm" /> + <property name="settings.editor.selected.configurable" value="preferences.pluginManager" /> + </component> + <component name="RecentsManager"> + <key name="MoveFile.RECENT_KEYS"> + <recent name="$PROJECT_DIR$/week01/" /> + </key> + </component> + <component name="RunDashboard"> + <option name="ruleStates"> + <list> + <RuleState> + <option name="name" value="ConfigurationTypeDashboardGroupingRule" /> + </RuleState> + <RuleState> + <option name="name" value="StatusDashboardGroupingRule" /> + </RuleState> + </list> + </option> + </component> + <component name="RunManager"> + <configuration name="removeOuterParentheses" type="CMakeRunConfiguration" factoryName="Application" PASS_PARENT_ENVS_2="true" PROJECT_NAME="week02" TARGET_NAME="removeOuterParentheses" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="week02" RUN_TARGET_NAME="removeOuterParentheses"> + <method v="2"> + <option name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" /> + </method> + </configuration> + </component> + <component name="SvnConfiguration"> + <configuration /> + </component> + <component name="TaskManager"> + <task active="true" id="Default" summary="Default task"> + <changelist id="dcdfbaa2-00ce-4e86-b0d5-267557e9ea82" name="Default Changelist" comment="" /> + <created>1603197081186</created> + <option name="number" value="Default" /> + <option name="presentableId" value="Default" /> + <updated>1603197081186</updated> + <workItem from="1603197084454" duration="10678000" /> + <workItem from="1603236886278" duration="754000" /> + <workItem from="1603240240394" duration="1729000" /> + <workItem from="1603272315980" duration="45000" /> + <workItem from="1603272393481" duration="107000" /> + <workItem from="1603272529404" duration="548000" /> + <workItem from="1603280818376" duration="4348000" /> + <workItem from="1603370481625" duration="5570000" /> + <workItem from="1603442780759" duration="14579000" /> + <workItem from="1603498341167" duration="28112000" /> + <workItem from="1603601980908" duration="8310000" /> + <workItem from="1603612488583" duration="229000" /> + <workItem from="1603612732428" duration="977000" /> + <workItem from="1603613726599" duration="1665000" /> + <workItem from="1603622153484" duration="56000" /> + <workItem from="1603622227443" duration="6379000" /> + <workItem from="1603710958928" duration="11679000" /> + <workItem from="1603799405958" duration="9228000" /> + <workItem from="1603884257090" duration="9013000" /> + </task> + <servers /> + </component> + <component name="TimeTrackingManager"> + <option name="totallyTimeSpent" value="114006000" /> + </component> + <component name="ToolWindowManager"> + <frame x="67" y="25" width="1853" height="1055" extended-state="6" /> + <layout> + <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.23997773" /> + <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> + <window_info id="Favorites" order="2" side_tool="true" /> + <window_info anchor="bottom" id="Message" order="0" /> + <window_info anchor="bottom" id="Find" order="1" /> + <window_info anchor="bottom" id="Run" order="2" sideWeight="0.4994432" weight="0.27041942" /> + <window_info anchor="bottom" id="Debug" order="3" weight="0.39955848" /> + <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> + <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> + <window_info anchor="bottom" id="TODO" order="6" /> + <window_info anchor="bottom" id="Database Changes" order="7" /> + <window_info anchor="bottom" id="Messages" order="8" weight="0.32781458" /> + <window_info anchor="bottom" id="Terminal" order="9" /> + <window_info anchor="bottom" id="Event Log" order="10" sideWeight="0.50055677" side_tool="true" weight="0.3082873" /> + <window_info anchor="bottom" id="Version Control" order="11" /> + <window_info anchor="bottom" id="CMake" order="12" /> + <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> + <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> + <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> + <window_info anchor="right" id="Database" order="3" /> + <window_info anchor="right" id="leetcode" order="4" side_tool="true" weight="0.32962137" /> + </layout> + </component> + <component name="TypeScriptGeneratedFilesManager"> + <option name="version" value="1" /> + </component> + <component name="editorHistoryManager"> + <entry file="file://$PROJECT_DIR$/../leetcode/leetcode/editor/cn/[1]两数之和.cpp"> + <provider selected="true" editor-type-id="text-editor" /> + </entry> + <entry file="file://$PROJECT_DIR$/week01/3sum.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="198"> + <caret line="11" column="34" selection-start-line="11" selection-start-column="12" selection-end-line="12" selection-end-column="57" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/plusone.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="18"> + <caret line="20" selection-start-line="20" selection-end-line="20" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/movezeros.py" /> + <entry file="file://$PROJECT_DIR$/week01/merge_two_sorted_linkedlist.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="-453"> + <caret line="43" column="8" lean-forward="true" selection-start-line="43" selection-start-column="8" selection-end-line="43" selection-end-column="8" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/reorder_list.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="126"> + <caret line="7" selection-start-line="7" selection-end-line="7" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/swapPairs.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="252"> + <caret line="14" column="5" selection-start-line="14" selection-start-column="5" selection-end-line="14" selection-end-column="5" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/watercontainer.js" /> + <entry file="file://$PROJECT_DIR$/week01/waterContainer.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="213"> + <caret line="32" column="5" lean-forward="true" selection-start-line="32" selection-start-column="5" selection-end-line="32" selection-end-column="5" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/studyDeque.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="648"> + <caret line="36" selection-start-line="36" selection-end-line="36" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/rotate-array.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="183"> + <caret line="21" column="45" selection-start-line="21" selection-start-column="45" selection-end-line="21" selection-end-column="45" /> + <folding> + <element signature="e#303#322#0" expanded="true" /> + <element signature="e#957#985#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/remove-duplicates-from-sorted-array.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="180"> + <caret line="10" column="18" lean-forward="true" selection-start-line="10" selection-start-column="18" selection-end-line="10" selection-end-column="18" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/reverseLinkedList_recurse.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="432"> + <caret line="24" column="5" selection-start-line="24" selection-start-column="5" selection-end-line="24" selection-end-column="5" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/studyStack.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="216"> + <caret line="13" column="84" selection-start-line="13" selection-start-column="84" selection-end-line="13" selection-end-column="84" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/studyQuene.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="525"> + <caret line="32" selection-start-line="32" selection-end-line="32" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/compare_Queue_PriorityQueue.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="525"> + <caret line="32" selection-start-line="32" selection-end-line="32" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/move-zeros.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="18"> + <caret line="4" column="8" lean-forward="true" selection-start-line="4" selection-start-column="8" selection-end-line="4" selection-end-column="8" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/trapping_rain_water.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="2484"> + <caret line="138" column="48" selection-start-line="138" selection-start-column="48" selection-end-line="138" selection-end-column="48" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/bulls_and_cow.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="391"> + <caret line="54" column="35" selection-start-line="54" selection-start-column="35" selection-end-line="54" selection-end-column="35" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/design_circular_deque.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="1098"> + <caret line="62" selection-start-line="62" selection-end-line="62" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/40_find_k_smallest_nums.cpp" /> + <entry file="file://$PROJECT_DIR$/week01/40_Find_Ksmallest_nums.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="576"> + <caret line="32" selection-start-line="32" selection-end-line="32" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/binary_tree_inorder_travelsal.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="90"> + <caret line="5" column="17" selection-start-line="5" selection-start-column="17" selection-end-line="5" selection-end-column="17" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/CMakeLists.txt"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="126"> + <caret line="7" column="47" selection-start-line="7" selection-start-column="47" selection-end-line="7" selection-end-column="47" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/valid_anagram.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="121"> + <caret line="19" column="30" selection-start-line="19" selection-start-column="30" selection-end-line="19" selection-end-column="30" /> + <folding> + <element signature="e#180#199#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week02/groupAnagrams.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="420"> + <caret line="40" column="5" selection-start-line="40" selection-start-column="5" selection-end-line="40" selection-end-column="5" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/binary_tree.md"> + <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> + <state split_layout="FIRST"> + <first_editor relative-caret-position="54"> + <caret line="3" column="5" selection-start-line="3" selection-start-column="5" selection-end-line="3" selection-end-column="5" /> + </first_editor> + <second_editor /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week02/intersection_of_2_arr.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="450"> + <caret line="25" column="19" selection-start-line="25" selection-start-column="19" selection-end-line="25" selection-end-column="19" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week02/Joffer59-maxSlidingwindow.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="1224"> + <caret line="68" column="32" selection-start-line="68" selection-start-column="32" selection-end-line="68" selection-end-column="32" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week02/intersection_of_2_arr_2.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="1386"> + <caret line="77" column="29" selection-start-line="77" selection-start-column="29" selection-end-line="77" selection-end-column="29" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/2sum.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="252"> + <caret line="14" column="50" selection-start-line="14" selection-start-column="50" selection-end-line="14" selection-end-column="50" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week01/NOTE.md"> + <provider editor-type-id="text-editor"> + <state relative-caret-position="120"> + <caret line="8" column="21" selection-start-line="7" selection-start-column="21" selection-end-line="8" selection-end-column="21" /> + </state> + </provider> + <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> + <state split_layout="SPLIT"> + <first_editor relative-caret-position="828"> + <caret line="49" column="2" selection-start-line="49" selection-start-column="2" selection-end-line="49" selection-end-column="2" /> + </first_editor> + <second_editor /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week02/uniqueOccurences.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="324"> + <caret line="18" column="35" selection-start-line="18" selection-start-column="35" selection-end-line="18" selection-end-column="35" /> + <folding> + <element signature="e#40#59#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week02/CMakeLists.txt"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="126"> + <caret line="7" column="65" selection-start-line="7" selection-start-column="65" selection-end-line="7" selection-end-column="65" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week02/removeOuterParentheses.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="535"> + <caret line="51" column="9" lean-forward="true" selection-start-line="51" selection-start-column="9" selection-end-line="51" selection-end-column="9" /> + <folding> + <element signature="e#41#60#0" expanded="true" /> + </folding> + </state> + </provider> + </entry> + </component> + <component name="masterDetails"> + <states> + <state key="MarkdownNavigator.LinkMap.UI"> + <settings> + <splitter-proportions> + <option name="proportions"> + <list> + <option value="0.2" /> + </list> + </option> + </splitter-proportions> + </settings> + </state> + <state key="ScopeChooserConfigurable.UI"> + <settings> + <splitter-proportions> + <option name="proportions"> + <list> + <option value="0.2" /> + </list> + </option> + </splitter-proportions> + </settings> + </state> + </states> + </component> +</project> \ No newline at end of file From 00f26d5811df4971fbc0685420a13c22555d604a Mon Sep 17 00:00:00 2001 From: Ella2le <1071444737@qq.com> Date: Sun, 1 Nov 2020 19:05:47 +0800 Subject: [PATCH 10/21] do home work --- week01/move-zeros.cpp | 3 + week02/.idea/encodings.xml | 4 + week02/.idea/misc.xml | 7 + week02/.idea/modules.xml | 8 ++ week02/.idea/vcs.xml | 6 + week02/.idea/week02.iml | 2 + week02/.idea/workspace.xml | 121 ++++++++++++++++++ week02/144_preorderTraversal.cpp | 64 +++++++++ week02/1_twosum.cpp | 29 +++++ week02/242_isAnagram.cpp | 41 ++++++ week02/429_levelOrder.cpp | 95 ++++++++++++++ week02/49_UglyNumber.cpp | 68 ++++++++++ week02/49_grouppAnagrams.cpp | 38 ++++++ week02/CMakeLists.txt | 2 +- week02/Hasmap_summary.md | 0 week02/HeapSort.md | 0 week02/cmake-build-debug/242_isAnagram | Bin 0 -> 229312 bytes week02/cmake-build-debug/49_UglyNumber | Bin 0 -> 236064 bytes .../242_isAnagram.dir/242_isAnagram.cpp.o | Bin 0 -> 337808 bytes .../242_isAnagram.dir/CXX.includecache | 16 +++ .../242_isAnagram.dir/DependInfo.cmake | 20 +++ .../CMakeFiles/242_isAnagram.dir/build.make | 98 ++++++++++++++ .../242_isAnagram.dir/cmake_clean.cmake | 10 ++ .../242_isAnagram.dir/depend.internal | 5 + .../CMakeFiles/242_isAnagram.dir/depend.make | 5 + .../CMakeFiles/242_isAnagram.dir/flags.make | 10 ++ .../CMakeFiles/242_isAnagram.dir/link.txt | 1 + .../242_isAnagram.dir/progress.make | 3 + .../49_UglyNumber.dir/49_UglyNumber.cpp.o | Bin 0 -> 352064 bytes .../49_UglyNumber.dir/CXX.includecache | 16 +++ .../49_UglyNumber.dir/DependInfo.cmake | 20 +++ .../CMakeFiles/49_UglyNumber.dir/build.make | 98 ++++++++++++++ .../49_UglyNumber.dir/cmake_clean.cmake | 10 ++ .../49_UglyNumber.dir/depend.internal | 5 + .../CMakeFiles/49_UglyNumber.dir/depend.make | 5 + .../CMakeFiles/49_UglyNumber.dir/flags.make | 10 ++ .../CMakeFiles/49_UglyNumber.dir/link.txt | 1 + .../49_UglyNumber.dir/progress.make | 3 + .../CMakeFiles/Makefile.cmake | 2 +- week02/cmake-build-debug/CMakeFiles/Makefile2 | 32 ++--- .../CMakeFiles/TargetDirectories.txt | 2 +- week02/cmake-build-debug/Makefile | 52 ++++---- week02/cmake-build-debug/week02.cbp | 16 +-- week02/inorderTraversal.cpp | 93 ++++++++++++++ week02/preorder.cpp | 68 ++++++++++ ...54\345\221\250\344\275\234\344\270\232.md" | 39 ++++++ 46 files changed, 1075 insertions(+), 53 deletions(-) create mode 100644 week02/.idea/encodings.xml create mode 100644 week02/.idea/misc.xml create mode 100644 week02/.idea/modules.xml create mode 100644 week02/.idea/vcs.xml create mode 100644 week02/.idea/week02.iml create mode 100644 week02/.idea/workspace.xml create mode 100644 week02/144_preorderTraversal.cpp create mode 100644 week02/1_twosum.cpp create mode 100644 week02/242_isAnagram.cpp create mode 100644 week02/429_levelOrder.cpp create mode 100644 week02/49_UglyNumber.cpp create mode 100644 week02/49_grouppAnagrams.cpp create mode 100644 week02/Hasmap_summary.md create mode 100644 week02/HeapSort.md create mode 100755 week02/cmake-build-debug/242_isAnagram create mode 100755 week02/cmake-build-debug/49_UglyNumber create mode 100644 week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o create mode 100644 week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/CXX.includecache create mode 100644 week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/DependInfo.cmake create mode 100644 week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/build.make create mode 100644 week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/cmake_clean.cmake create mode 100644 week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/depend.internal create mode 100644 week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/depend.make create mode 100644 week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/flags.make create mode 100644 week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/link.txt create mode 100644 week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/progress.make create mode 100644 week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.o create mode 100644 week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/CXX.includecache create mode 100644 week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/DependInfo.cmake create mode 100644 week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/build.make create mode 100644 week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/cmake_clean.cmake create mode 100644 week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/depend.internal create mode 100644 week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/depend.make create mode 100644 week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/flags.make create mode 100644 week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/link.txt create mode 100644 week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/progress.make create mode 100644 week02/inorderTraversal.cpp create mode 100644 week02/preorder.cpp create mode 100644 "week02/\346\234\254\345\221\250\344\275\234\344\270\232.md" diff --git a/week01/move-zeros.cpp b/week01/move-zeros.cpp index bcf8006f..83a28d6f 100644 --- a/week01/move-zeros.cpp +++ b/week01/move-zeros.cpp @@ -25,6 +25,9 @@ class Solution { } std::cout<<nums<<std::endl; } + // + + }; //c++ diff --git a/week02/.idea/encodings.xml b/week02/.idea/encodings.xml new file mode 100644 index 00000000..15a15b21 --- /dev/null +++ b/week02/.idea/encodings.xml @@ -0,0 +1,4 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="Encoding" addBOMForNewFiles="with NO BOM" /> +</project> \ No newline at end of file diff --git a/week02/.idea/misc.xml b/week02/.idea/misc.xml new file mode 100644 index 00000000..8822db8f --- /dev/null +++ b/week02/.idea/misc.xml @@ -0,0 +1,7 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="CMakeWorkspace" PROJECT_DIR="$PROJECT_DIR$" /> + <component name="JavaScriptSettings"> + <option name="languageLevel" value="ES6" /> + </component> +</project> \ No newline at end of file diff --git a/week02/.idea/modules.xml b/week02/.idea/modules.xml new file mode 100644 index 00000000..b7822b3b --- /dev/null +++ b/week02/.idea/modules.xml @@ -0,0 +1,8 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="ProjectModuleManager"> + <modules> + <module fileurl="file://$PROJECT_DIR$/.idea/week02.iml" filepath="$PROJECT_DIR$/.idea/week02.iml" /> + </modules> + </component> +</project> \ No newline at end of file diff --git a/week02/.idea/vcs.xml b/week02/.idea/vcs.xml new file mode 100644 index 00000000..6c0b8635 --- /dev/null +++ b/week02/.idea/vcs.xml @@ -0,0 +1,6 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="VcsDirectoryMappings"> + <mapping directory="$PROJECT_DIR$/.." vcs="Git" /> + </component> +</project> \ No newline at end of file diff --git a/week02/.idea/week02.iml b/week02/.idea/week02.iml new file mode 100644 index 00000000..f08604bb --- /dev/null +++ b/week02/.idea/week02.iml @@ -0,0 +1,2 @@ +<?xml version="1.0" encoding="UTF-8"?> +<module classpath="CMake" type="CPP_MODULE" version="4" /> \ No newline at end of file diff --git a/week02/.idea/workspace.xml b/week02/.idea/workspace.xml new file mode 100644 index 00000000..c902f2ad --- /dev/null +++ b/week02/.idea/workspace.xml @@ -0,0 +1,121 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project version="4"> + <component name="CMakeRunConfigurationManager" shouldGenerate="true" shouldDeleteObsolete="true"> + <generated> + <config projectName="week02" targetName="removeOuterParentheses" /> + </generated> + </component> + <component name="CMakeSettings"> + <configurations> + <configuration PROFILE_NAME="Debug" CONFIG_NAME="Debug" /> + </configurations> + </component> + <component name="ChangeListManager"> + <list default="true" id="756def29-c7b7-4e9b-bc5a-1c60b5e926bf" name="Default Changelist" comment=""> + <change beforePath="$PROJECT_DIR$/../.idea/.name" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../.idea/algorithm018.iml" beforeDir="false" afterPath="$PROJECT_DIR$/../.idea/algorithm018.iml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../.idea/leetcode/editor.xml" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../.idea/markdown-navigator.xml" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/../.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../.idea/misc.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/../.idea/workspace.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/../week01/move-zeros.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/../week01/move-zeros.cpp" afterDir="false" /> + </list> + <ignored path="$PROJECT_DIR$/cmake-build-debug/" /> + <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> + <option name="SHOW_DIALOG" value="false" /> + <option name="HIGHLIGHT_CONFLICTS" value="true" /> + <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> + <option name="LAST_RESOLUTION" value="IGNORE" /> + </component> + <component name="ExecutionTargetManager" SELECTED_TARGET="CMakeBuildProfile:Debug" /> + <component name="Git.Settings"> + <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$/.." /> + </component> + <component name="ProjectFrameBounds" extendedState="6"> + <option name="x" value="102" /> + <option name="y" value="169" /> + <option name="width" value="854" /> + <option name="height" value="789" /> + </component> + <component name="ProjectLevelVcsManager" settingsEditedManually="true" /> + <component name="ProjectView"> + <navigator proportions="" version="1"> + <foldersAlwaysOnTop value="true" /> + </navigator> + <panes> + <pane id="Scope" /> + <pane id="ProjectPane" /> + </panes> + </component> + <component name="PropertiesComponent"> + <property name="WebServerToolWindowFactoryState" value="false" /> + <property name="last_opened_file_path" value="$USER_HOME$/leetcode" /> + <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> + <property name="nodejs_npm_path_reset_for_default_project" value="true" /> + </component> + <component name="RunDashboard"> + <option name="ruleStates"> + <list> + <RuleState> + <option name="name" value="ConfigurationTypeDashboardGroupingRule" /> + </RuleState> + <RuleState> + <option name="name" value="StatusDashboardGroupingRule" /> + </RuleState> + </list> + </option> + </component> + <component name="RunManager"> + <configuration name="removeOuterParentheses" type="CMakeRunConfiguration" factoryName="Application" PASS_PARENT_ENVS_2="true" PROJECT_NAME="week02" TARGET_NAME="removeOuterParentheses" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="week02" RUN_TARGET_NAME="removeOuterParentheses"> + <method v="2"> + <option name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" /> + </method> + </configuration> + </component> + <component name="SvnConfiguration"> + <configuration /> + </component> + <component name="TaskManager"> + <task active="true" id="Default" summary="Default task"> + <changelist id="756def29-c7b7-4e9b-bc5a-1c60b5e926bf" name="Default Changelist" comment="" /> + <created>1604195948406</created> + <option name="number" value="Default" /> + <option name="presentableId" value="Default" /> + <updated>1604195948406</updated> + <workItem from="1604195950268" duration="978000" /> + </task> + <servers /> + </component> + <component name="TimeTrackingManager"> + <option name="totallyTimeSpent" value="978000" /> + </component> + <component name="ToolWindowManager"> + <frame x="67" y="25" width="1853" height="1055" extended-state="6" /> + <editor active="true" /> + <layout> + <window_info id="Favorites" side_tool="true" /> + <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.25" /> + <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> + <window_info anchor="bottom" id="Database Changes" /> + <window_info anchor="bottom" id="Version Control" /> + <window_info anchor="bottom" id="Terminal" /> + <window_info anchor="bottom" id="Event Log" side_tool="true" /> + <window_info anchor="bottom" id="CMake" /> + <window_info anchor="bottom" id="Message" order="0" /> + <window_info anchor="bottom" id="Find" order="1" /> + <window_info anchor="bottom" id="Run" order="2" /> + <window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> + <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> + <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> + <window_info anchor="bottom" id="TODO" order="6" /> + <window_info anchor="right" id="leetcode" side_tool="true" /> + <window_info anchor="right" id="Database" /> + <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> + <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> + <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> + </layout> + </component> + <component name="TypeScriptGeneratedFilesManager"> + <option name="version" value="1" /> + </component> +</project> \ No newline at end of file diff --git a/week02/144_preorderTraversal.cpp b/week02/144_preorderTraversal.cpp new file mode 100644 index 00000000..7f8493fa --- /dev/null +++ b/week02/144_preorderTraversal.cpp @@ -0,0 +1,64 @@ +// +// Created by lewang on 11/1/20. +// +//二叉树的前序遍历,根,左,右 +//和二叉树的中序遍历基本类似,注意往res.push_back的顺序 +#include <iostream> +#include <vector> + +using namespace std; + +struct TreeNode{ + int val; + TreeNode* left; + TreeNode* right; + TreeNode() : val(0), left(nullptr),right(nullptr){} + TreeNode(int x):val(x),left(nullptr),right(nullptr){} + TreeNode(int x, TreeNode* left, TreeNode* right): val(x),left(left),right(right){} +}; + +class Solution{ +private: + void preorder(TreeNode* root, vector<int>& res){ + if(root == nullptr){ + return; + } + res.push_back(root->val);//左边遍历完,把root压进去 + preorder(root->let,res);//中序遍历先对左边的进行遍历 + preorder(root->right,res)//再对右边进行遍历 + } +public: + //recursion + vector<int> preorderTraversal(TreeNode* root) { + vector<int> res; + preorder(root,res); + return res; + } + //stack-iteration + vector<int> preorderTraversal(TreeNode* root) { + vector<int> res; + if(root == nullptr){ + return res; + } + stack(TreeNode* ) stack; + TreeNode* node = root; + while(node != nullptr || !stack.empty()) { + while (node != nullptr){ + res.push_back(node->val); + stack.push(node); + node = node->left; + } + node = stack.top(); + stack.pop(); + node = root->right; + } + return res; + } +}; + +int main(){ + + + return 0; + +} diff --git a/week02/1_twosum.cpp b/week02/1_twosum.cpp new file mode 100644 index 00000000..aa03e38e --- /dev/null +++ b/week02/1_twosum.cpp @@ -0,0 +1,29 @@ +// +// Created by lewang on 11/1/20. +// + +#include <iostream> +#include <vector> +#include <unordered_map> +using namespace std; + +class Solution { + vector<int> twoSum<vector<int> & nums, int target) { + unordered_map<int,int> map; + for (int i = 0; i < nums.size() ; ++i) { + auto NeedNum = map.find(target - nums[i]);//在map中寻找想要的key,即target - nums[i] + if(NeedNum != map.end()){ //如果找到了就返回 + return(it->second,i); + } + //如果没找到就把这个数和他对应的index放到map中 + map[num[i]] = i;//map的Key是nums的值,value是这个值在nums中的index + } + return {}; + } + +}; + +int main(){ + + return 0; +} \ No newline at end of file diff --git a/week02/242_isAnagram.cpp b/week02/242_isAnagram.cpp new file mode 100644 index 00000000..8e80b998 --- /dev/null +++ b/week02/242_isAnagram.cpp @@ -0,0 +1,41 @@ +// +// Created by lewang on 11/1/20. +// +#include <iostream> +#include <string> +#include <unordered_map> + +using namespace std; + +class Solution { +public: + bool isAnagram(string s,string t){ + if(s.size() != t.size()) return false; + unordered_map<int,int> cache; + for (int i = 0; i < s.size(); i++) { + char sc = s[i];//如果map中有就计数加一 + cache[sc - 'a']++; + } + for(int j = 0; j <t.size(); j++) { + char tc = t[j]; + cache[tc - 'a'] --;//如果map中有就计数减一 + if(cache[tc -'a'] == 0){ + cache.erase(tc -'a');//如果map中对应字符计数为空 就将他删除 + } + } + if(cache.empty()){ + return true; //如果map为空了,则s和t刚好抵消了 + }else{ + return false; + } + } +}; + +int main(){ + string s = "anagram"; + string t = "nawaram"; + Solution test; + bool ans = test.isAnagram(s,t); + cout << ans <<endl; + return 0; +} \ No newline at end of file diff --git a/week02/429_levelOrder.cpp b/week02/429_levelOrder.cpp new file mode 100644 index 00000000..f7f6a1f7 --- /dev/null +++ b/week02/429_levelOrder.cpp @@ -0,0 +1,95 @@ +// +// Created by lewang on 11/1/20. +// +//N叉树的层序遍历 重点掌握广度优先搜索!!! && 深度优搜索 +#include <iostream> +#include <vector> +#include <stack> +using namespace std; + +class Node { +public: + int val; + vector<Node*> children; + Node() {} + Node(int _val){ + val = _val; + } + Node(int _val, vector<Node*> _children){ + val = _val; + children = _children; + } +}; + +class Solution { +//recursion +private: + vector<vector<int>> res; + void traverseNode(Node node,int level) { + if(res.size() <= level) { + res.add(new vector<int>) + } + res[level].push_back(node.val); + for(Node child: node.children){ + traverseNode(child,level+1); + } + } +public: + vector<vector<int>> levelOrder(Node* root){ + if(root != nullptr) traverseNode(root,0); + return res; + } + +//breath first search BFS 广度优先搜索 + vector<vector<int>> levelOrder1(Node* root) { + vector<vector<int>> res; + if(!root) { + return res; + } + + quene<Node*> q{{root}}; + + while(!q.empty()){ + int size = q.size(); + vector<int> level; + while(size--){ + auto cur = q.front(); + q.pop(); + level.push_back(cur->val); + for(const auto& child : cur->children){ + q.push(child); + } + } + res.push_back(level); + + } + + return res; + } + +//Deepth First Search DFS 深度优先搜索 + vector<vector<int>> levelOrder2(Node* root) { + vector<vector<int>> res; + if(!root) { + return res; + } + dfs(root,res,0); + return res; + } + +private: + void dfs(Node* root, vector<vector<int>>& res, int level) { + if(!root) { + return; + } + if(res.size() == level) { + res.push_back(vector<int>()); + } + res[level].push_back(root->val); + for(const auto& child: root->children) { + dfs(child,res,levle+1); + } + } + +}; + diff --git a/week02/49_UglyNumber.cpp b/week02/49_UglyNumber.cpp new file mode 100644 index 00000000..fe9b6b75 --- /dev/null +++ b/week02/49_UglyNumber.cpp @@ -0,0 +1,68 @@ +// +// Created by lewang on 11/1/20. +// + +#include <iostream> +#include <vector> +#include <unordered_map> +using namespace std; + +class Solution { +public: +//1. 暴力法 时间超标 + int nthUglyNumber(int n) { + if(n<=6) return n; + int j=7,i=7; + + unordered_map<int,int> ugly {{1,1},{2,2},{3,3},{4,4},{5,5},{6,6}}; + + while(i<=n){ + if(j%2==0 && ugly.find(j/2)!=ugly.end()){ + ugly.emplace(j,i); + i++; + j++; + continue; + }else if(j%3 == 0 && ugly.find(j/3)!=ugly.end()){ + ugly[j]=i; + j++; + i++; + continue; + }else if(j%5 == 0 && ugly.find(j/5)!=ugly.end()){ + ugly[j]=i; + j++; + i++; + continue; + } + j++; + + } + return j-1; + } + + // + int nthUglyNumber2(int n){ + int a= 0,b=0,c=0; + //int[] dp =new int[n]; + vector<int> dp; + dp[0] = 1; + for(int i =1; i < n; i++){ + int n2 = dp[a]*2,n3 = dp[b] * 3, n5 = dp[c] = dp[c] * 5; + dp[i] = min(min(n2,n3),n5); + if(dp[i] == n2) a++; + if(dp[i] == n3) b++; + if(dp[i] == n5) c++; + } + return dp[n-1]; + } + + + +}; + +int main(){ + Solution test; + int n = 11; + int res = test.nthUglyNumber(n); + cout<<"res:"<<res; + return 0; +} \ No newline at end of file diff --git a/week02/49_grouppAnagrams.cpp b/week02/49_grouppAnagrams.cpp new file mode 100644 index 00000000..d4f47e27 --- /dev/null +++ b/week02/49_grouppAnagrams.cpp @@ -0,0 +1,38 @@ +// +// Created by lewang on 11/1/20. +// + +//给定一个字符串数组,将字母异位词,组合在一起.字母异位词指字母相同,但排列不同的字符串. + +#include <iostream> +#include <vector> +#include <string> + +using namesapce std; + +class Solution{ +public: + vector<vector<string>> groupAnagrams(vector<string>& strs) { + string sorted_str; + unordered_map<string,vector<string>> map; + //将排好序的words作为map的key,因为如果是异位词,排序后大家长一样的 + for (auto t:strs) { + sorted_str = t; + sort(sorted_str.begin(),sorted_str.end()); + map[sorted_str].push_back(t) + } + vector<vector<string>> res; + + for(auto t : map){ + res.push_back(t.second); + } + return res; + } + +}; + +int main(){ + + + return 0; +} \ No newline at end of file diff --git a/week02/CMakeLists.txt b/week02/CMakeLists.txt index 92a294e5..61e807c0 100644 --- a/week02/CMakeLists.txt +++ b/week02/CMakeLists.txt @@ -5,4 +5,4 @@ set(CMAKE_CXX_STANDARD_REQUIRED ) #add_executable (move_zeros lc-283_move-zeros.cpp) #target_link_libraries (move_zeros LINK_PUBLIC week01) -add_executable (removeOuterParentheses removeOuterParentheses.cpp) +add_executable (49_UglyNumber 49_UglyNumber.cpp) diff --git a/week02/Hasmap_summary.md b/week02/Hasmap_summary.md new file mode 100644 index 00000000..e69de29b diff --git a/week02/HeapSort.md b/week02/HeapSort.md new file mode 100644 index 00000000..e69de29b diff --git a/week02/cmake-build-debug/242_isAnagram b/week02/cmake-build-debug/242_isAnagram new file mode 100755 index 0000000000000000000000000000000000000000..772f9218142697ec3955cf58bd2e267710a483b5 GIT binary patch literal 229312 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%0AOE8}CRE<H-5mHHeaeO%&K+S44~DAH3zn!PAN z-sx2wp~(M-NGtq;pW*l_4y4T@t>6!cbb!EruESptX+?h1YEG!614a5qQ9eeb6?qaw zI!)l0h_q7wdR=<2NZ%*u2RzFkl;CxgNGtqvMS6swe_Nyni?r_={-Dr@h_oVaZyi2a zmmVq7io8WS{48DiK^^^Ck!~mCIiSNkb!o$MoUpH;j~D5EBJIDHKZJ{PN0C<iMTST# z@)n4+Vvid|TG7YbBCY6GuvNi|UD&K=DYN`hS6MPOn~b*%$ca=*_=BO?ku7zUE=<Hi zWD`bP^Uo(-hoUXf5tg8VBk=6?{GC`C1l>syh4&j4{PlSd(|%AP3o*=u4a%P|5--Yt z^8L0PD<H!7U7U-*Qln!w;BU2qO7;&7nzk8vjZ;gIH~kDq8;?MXf@V;z)MzX|e;1Ti zLZnR&3`f45)F%fJ*5`>=kWs|!!>9WjcrK=Fb0AF|flYgyN6w(wyTE1R?RXsi6P0Xq zYZ#t0W)a6msq{ReoIMYkis#$zWX~%T@H{ddMde1%K8WX0GbYjVq)a^D@eM3aZd6Rq zqfgOu(`SfgLU$Q|Bk#wb`@RpArD;gg&)j@3qEW2<QqU?GchDRf3H0HPr&TO#Y%^AN z{%AjZe+#10Hz(-xMZShbNHv@FJ&G=TKa(Rr27*o?GUfug<b8ZSFC3Y_;HIS_FB$Ym z3zU5FZBm2*(+qAd600=moet3Os&8Ni9e{~-$2Lp<0cD@>xL1;*X5)7Xzz!!0E>g_r zK(4Pmz(u0ZMNd<Un<2Cxui>RpAbWYL89&+s`eB7c3R(_}4ca>U2wr9(bAy5q#Wr66 z_Q0@Cc-08Zhi+KEr_ftc&@;r~yMfWNbQ0)))<e?lGe0!%`;{GV-~tl)8&LqaP#Z)3 zxCkCI7|0GlbR{HfUBDlxA$WQZ6fnrr$NWHM3eck!5+<i#&UDZ<-vgQ;fBE<j96kqr zo;wZcffELQ@f8?0mvek&cEa-s5WZBGSPI^>9CX*qv)XXYzYCfgm5$ZfqFVw;+Q|dZ zb!UO{n?F<3!WGzJ`2yg($`@fzfuN~_U(g@;IQijU-~v=U6P0PV#Tx2>!SbOEc;Tnw zJHoE~=#Rwl!{m{lpv@|t27w>_5%>)GmP0s5q2ig4^he-F%BLIQMVgAIrg2rZ?0zHa zA0uzh!ohcR_XkA7#G^k_^B-OY`c8RGtt5R7)Q`BiU5BDCrRKfhr-CNQD{jCl*NY!> zbD6!X>$t9(+uj8A-E!mR&;_XDaqFn1kcAL5=pOkA=u;j6f;$u<={km*FW(N4<jKgs zM?rCy$BRBFuipfGC2)_ccqS~zKQ3Q@dyqE*_pTdW(`runqWu0dpgamH`uUiv*)B?L z#c#=(a8R<ZH%_YJ=HyJ#Or6XtbH>&3%qaW=6fvOc?@p;9Iw<eB1a@@zZIVjFIFa3G zEB;*Wgpbh5b3jF3Q{xp|sC#&I7vz!cfnNpOD=Pj+bi0<xMY#|myIc)|PgEjOo0dp2 zENTZ%XFzaKC8C-HQ5p4J7sFB~I5qWwIpAjE_>yT!q3>Wk26Z<)9EbG)O3B@Tk5_2? zSSN9sF@~=&B{G`ZfzMWH*qG!rxd#7rg63Y}7pOFBTydHihMzmhoX^w1uTyE5dN|ES z!%tYevbx>{zDA`X6-l8P)TXx#6)*)Fkn$<ue^O`!`d!1B{WwcWXtNnU5I1*kt#S&o zrJ((Wp3P-m`X-<{6Pl(giK9O@bl)yY4*)7fEgjk#gCOX*AsI8kP-30~)Lm+6j{eSY zDH*T42|X96g|5=kU7+o=hS@iX($4_(ysI=r|8Dpgvmh(I6R5qe(g)k4Zi6xXULo3- zKz-*z-!T?wKcfxPKWjJbc6#IH?GCk&<jsuKF^qWxP;Fi4C=xBqXfGA$zCb0p(C<Br z(rt~AYx#U2j{z#ng?^Ui_nVEUeiP`KK+SQXTVba<DAM>cER@EJ{5VigtLTvMDJb37 zcmxrlyam~N2*siYb#zIbXs~fOT&VmR2)=bAl0t5VLkJpf{4g5$KY^3cUf!pn%P0`Y zHV%c0Wz~lQMe5+13HcQY4Vr0elZiszkR7j-<UTUwJQhenbBu>DG0G!=yF<ZCp}(F1 zYN7G71U_5I4xnZbnoXslpWrd*F=GwPHi*pO5u~3~(40G`dBK<m7wJtjuK~Z4XjBDA ztuh@_&^yN3-h$0hpijE9VI+r)PWW-g<u9P=7o!?3q2IScFMMMR&lfbUfxk(ikvRH{ z@r@;-mUy5B5Sq88FctadjK^UhtOh$!Ij+(SebKlKN@7jD52(4W(xYjf@iCRR7UTK} zpw=p-g`Z(Gfu{9`gb&#PJpGE5w}JZ^MsuC1?=nGi68N(!4fivQrk&{%i=grKM?iy{ z^Wi>ZANjpV)9<$kn$Ez-sWja0F`5L^rWQix;lNLDqj60;QYfPyVmgedf_bj{LHUqM zt<E}vaFnS{xgexNwVT`s1<hTiojU~${TTO{O5++8yw(!ah4F&$pCFPNyR|jsPU^Wz z)5GWjxjAqa70>l`mI8{WOs%lwV3PL)K1rqFx?nULOx>}5Vl-ob&sAx-?`AZ6OiyBj zGMd@IFH>pQ%*7<9KT;^8K5TmBprGCW%6C+1jlLM+w<gnLg7654zIG!N%ziU{{=A^M z2)ut2MGYE#F=oxY_O=m(Z9zn*X|=X7KMc0f-YXXoE1O@Efgh{VkZ<Mv&a@Z8sHb>+ z03Rk7gQ`@eWFaFrH%7G3D{+yib|r}Dht96yDaHUJeA-L8C<xyL(HC_IwT8!vZ1q}z zMG#Xv{b0H=LVFEwjW!we`(C?m6x8iN*}X2c6v_y{_S(KrNHPpW+3tiIy)x>5dNs!Q zW;(kUlocxVDAE}>w!!2G8hiiJS=7G<L|arsjeRh}>%Hgn5WVmLh>og+#8C=mG?CuU z-Gb&<;EjPw(^;*IFk}-=o$=lS-#{mYfFN8Ul0rZH8mL>n;}tvX0aS{DcIjF452Mca zzP*poN)9OL<g7;7tPOf=XXWO3w}h8xo%96CyjD*+O;52RPkQ@)B8t?2{G^8>q8VGf z1C)Nf1j>-6bp_M(8LMEg_mUZ+f+&y=P>ZPA)3*GW_wuI&wH=hx>!H@S;1};GY*(;G zF9!K@9*T$-`1oWRg=NqW>W|h#t#3iR&%+Bv1;2v4agfqzR|{N=FW%jQeOlioinIfH zd_6^2Gw6?EAwKgWM3LJ;UR+NRHs0xvD3a+jc7-Ui2;^((DZ-oy{SifG_<Yz!6nO{a zhtwh}p&xT7!Hb`O)mHexoS16QfY7^{(r|SYY5Y|12W00D`y`_vbw)U-<LW8l>b~HA z&>XqcXO0)|kW^5QQ%kt$LgNy^d5upFCN!#9o(`f1iI4&ZzWP=rl0qg}K)unYKT$pd zs`V;M5=#pG3Xx0D8$MI_BD{e5<!a#fE8L{e7}{sr?eiT5G(&$2)EO80xF2MG-{;1k z@Z(3S!7CWMKe$B@bJPdu&wK`k3Q^kt)l)&U<+p3ZOQDR~>GO_5P^W=%yh^POaY6W- z&k6*Ro2k}&Kvb?0YE;EIn$1sQo??WnL9|&VBoE2zmqI@!L7SVOe_0Uj2hry$p{8m^ z*v{PPTS0gpM2!#ya^<U4YuUz_E29N<8&Jm9r55!kncp-E!XY3UqY`QaJ&3hTP@4Hs z#9*7L=~F;7UnSHC$_TT}f3+2aPl0H&N~jl<QBO8MzEM!`2j%B=sijaxSZYqVQ4pR7 zkvHOf-hPdsvp<BOi_M>R;2ThK1c<t-gc?B^;WOq5%3{R^qA@C=UQkB8(fs=vQU4TB z&aX=?g)+ij<|!`<!lyvAK_%1(dUpp1deBT`pJ{Y2h>oa)8bKN1SLTCv3c{a3<lRzf zx?WI5eb(Gw>Cp&KcCAY-g)&0fmmD>#-v*+QDxpTuQRwraK;N6;SQz2mAeyZbY6NA3 zt$i0^Y%;<XAljf3>IG%gU43UOZ1;llNL^|vlo7`JZk?#KA4GD9(teGgpRa?UslFHC z6#9{khJvW0N=PD!;n5RT6qM!r(T{xRP3{k(p(-J@ND5^%rM}LO1<gd@XR0(RGcjv2 z>L+|(yG~|%dGb<FZuUT}bv>-y2H%Q3qL%$Ab3`piDie}a`$l0|N1HkF&%k?Mr?lTC ziH7<s-$=~gj5-38Jv~r!b%d>jUnMnO-}O8;*00CI<J%<Z4GSs{AVoH<gatGkM2}K< z^Uq@eB7)<$qC`Y+c{~FZlObwE@PqRicxV*^l^-zh@b?TX4nzPF5&X!_3@jPQz|t%R zmQ82i(RmCkf02R5Y8Y7YGXsx@-9yD!_F&-2Aq-R%F!1z3239@G!0PuIc<wX<F9c$p z5)r&El7aPu8Q3_1ftMFC@X8tnHf?8M^HBy~J;%V7CUEu<!LJ=)VC&Zmyl%LUGT&&; zz?<<5Y`cqrx8^bM&Kd@G>|kK$2?logU{;F=-hC4T?+##K&u9j!XELyNB?JH1#=v{W z7<m6z2KM>QqT>78GjL!410Q5FP%{U>5^R>AWzbjN&Y++C9fKh<$zus_C6jV2!QnEg z#S+|FCWTmn+lq4SM7f(-Ipb$2)S~<KFbUJ=cr>>d+!D_|eJhYXq%V42YEAhqhJ6r+ zmn5z5%QW1+O=e@HF>KI6^j(YLmq7R&FfS=sDd@*rfJnRPcYGWSnR`@3vo)iD$ap9i zzxo6J&w==wkip<7-M}gv^_c}*p}!&bFSQuQjQ;r?#z)gI?0@3sa)i1H+P{SGawJf_ zRdgF<3BFmWyMP`B)F>6*mP+49yQeKCSKcK_HzO?<0e!DZ!Ybe-jy-1t$x@)JR1(JJ zh6$LGTHG`7O>o!@)H@2AZ_(aB0aJ_nhQ9#xM?f7{(0){>)aGqWz%3S*cN9BN=YhUR zBup`Fcjp27$U-P4jwB33t2jmq7z-sy5iNQVZ2COnspjunK-2DYC5Crb5PH4&8H)H@ z7vcG)K5%~i1Jgm!^vnHtw9$L9W}E17(8^ADQv#wQ+|zLTjs#9>Z_k*_-kx=^+o!Mx z@a+k-*Rm|e_ZvKW;M)vSh5w*SBe6*YqW5su;PxF`KVMl2co^u8T@fwGmXw=qXn&hX zFNXwkXnAUT1Z2*?RgzksCTG@k!7q3`Lq4z*?FO{`rTh?rpm3PxLa_I%q&fmjNO#V; zTWWd!A6U{-TW=)_LUM}E`3|Y&AL9|95VF`E*^=CMOM`rVCU>@v5_%bxWq(K_sU_{1 zw)B%{XTa2v@v=fAwWKJqWfR$Q6#FMA^s$2RBRXDv%f}a>bPM^H?)Z8VXnrRedeGKD zfqBbt`MIu~=6Wivr(r5+C!fXp3PL5QG^{RCgVZvQl-EU03&G2CWZXeCt3WIT1R&XR z9w{_dj*dh>AU(q+<Sm~A6DPMvLDJG=N<m(_OHSbgsbwGeFy<{P*!APpAdi=C^x<hv zB{f~r4z^i+W(uq|B(l>S0#Q8}h)!f6W(Wh_jxo^vI|h3E!a&?#4D_1IK<|eb=(B=> zTb^a0-=I?B86V3);z*X+KZ}8+0tT$p85n40B(`P@B!@FFr~?Bj8yU%vHyId8M`|NN zh8<*J_y|Ul){nq--3l1!{`g!<^>`Ja=|b#>G~X-TkH>jf0s7xY25lPE2o`M4xuG>S zscy-I!sQ#jeGcw+#sJuz{G|o^|G0h6gM-8|GyDGl%%8~hMj?jbZ-Sz}egg&P{EQ(b zw@^^r!$<*dfIcF0%1!eKOudbPd$uxg-^UEh{)vG(rujrtdL09EyD%_+Bm-r|43w8K z@Zf3&9(sp?$}bpLT+6^x%LBw^c{Bqn`ZDl%Dg!GgGw{Si3_Q7>fvVjMJpBy=mmYvD zmQbS{fXLSpYLaV_Z3*?3Lop^Sp+52?2F-F;27TqB4Eo6r07kSLPwxRDT4nVqBakzY zfeCg7COR0%UC2Nl9VLxub?2)L-1R;K`DYlI<iC(`cei7pXfOkgI~gdUBc&0orfg(j z+8zd`A7fyqlY#p#F;E&<PLy-oGBB?n0}l*mU_mYe<rNH6EN9@MmjI%_yaBz~<PG`L z8zm`*4tX?rOQt@IA=ljG9hv-G44pP<vQwtLj~F`S(d1p3BEgu0l>feb5JnS2$4r_W zlxeKD{9^+0zn6P7m8IXne*k#<?L}>Vt?(q!7vwnj0z%*EhV}~}nidy`g~>1#5-n8m zL@jvGd!Q!m3`MX}V!E1W4xkDt;0qA7%&SH5u7+D5!Ja45yHs?{ZLz?7&e|BJ#-L3f zJ&%zxil&ry#oO`cE(G|d$d0lU7}oW08?1v@CSb<zPOX-G=EdN-*B{`?PuGNXqgKm4 z=djKR>m3AgGduGV)`QUpJ!V3F-#HFRN(SzB+`gSK2l{oylOK^wH!zaKoBslvNysQx zXrvqIby?WJ(_UCkAX6^KpN9z>4Gz+c^a3+%aHkSXS%iHae>SMtSb9MjHf&p|z*YmZ zU&Xe!TUkgh1<*c_*CS|@Y=~~!R+74H#n#_6?9X2S@g*v733`;mhGUK+-x(GH?XZ`= zUX`Q}L+<S;<^35brDo4;!fAorYIHp*r56xZ+`e(tU{<F43n&xZ1E<?5KYa-bNdZ)C z5Bsgr()InqukSY&skliuV~(H_;XNC-!vbS8x>WAj0excVxe7C#sps#1Leo7rAhZbV zIsGOK*q+aB!4_OkKTP?vdM(E!BFVkVo&$eFuh=F4rd|<{Niz3(e;PnwFMmuGlBL&; zYXRbWcE#kev1bAZ2lb*QwMp*nmk$gqt@rdj^b_0K`}-teCY^<AniMygXqbS7V@bfF zC@J^654nb(#+4*si?2z*NA4v7voldu@7z;@q0>(=+#9Mg+<U*m@Udrz;T?$Pq@LTT zV|ungy@sBjRDhy4eJ7MjWg9D)7+?TGst7!qdXU<7d_YWkEe37R_R+*7=oT>Py|joI zmu`6xYK-fEF!*PPD~I21kh?>T{r+r=Lr|H9J#+DVduwnSZ=g9hgs8&D7)C=Oax)NK zhugP5*<t)yLX9<ix*U8uD%oOANcam%5AQGMqgUlbJGwD^fIJ*TvK&D5_0P`9lERaD zmLc(32o;{fQ>Om8In$)@VLW9{d<A_Sp21Uri8E0+d?Zg<`WI$7r0_d<Dn79>Y#`ju zQ?rsDhb@GU=P5}}TJ#(WP7p~$QV(=o_?;qYO1go>og|Xxqyw;(@W~<>m_*@4c(F)Y zlG?#`!l#O4d}1_gD0~J_ZcI!f#`p5nprlo>jPO}JWs(yj{)yy+GMSE?_zpTbe6c*S zJ=01GK;m`i@$jWQ%aC{!Js-Y;r%Z`sVHx31@RXEr)(YH9GK~_sf9B-LQus#sWzK0C zK>tifjugI$XBiUvbOH5No-*~%E0Dt9<Oy^C!V;+PZJr8DoCu2z-@#Lsgx1HA+Aot~ z%KgXZOq9ZF<QA|UL~4IhC0Qj!Qus$aOYTpeC;Tu^8Kj7av<#R@L_~Tr0~u^ZA2Iq) zmdcsSKra0nA|fJh6TmGN3r>K6d)<u#$*WXGtpWMp0B!BO0M27_dw95PC}<m%nB5VZ z%WyGa^YK8#({Bn;(tyNbkj}`C<)rnH%_K6(>mL@FcfkH%z-yr7)n*J;wjYN%k?J^S zEmEy->i8%;q1?K+*GstsZ@Cp%uM5fa+^;{L&9s_p-ETGO>Vc&1hiH-?&64nvW@Jb{ z*P*{#_Y0$E$#yf<(P*$?7LxH3ESOb>8ajT8JO>p%LWPgx52lZoQ;D*~Wc<O1*Hc~Z z>4$n>g0q&5<NR)h<EH0r30MK3;A>QP^dl(N?AupCoxKl(;Qb9a0tCcYxY??TbmJS2 z7?5jekm(L0Z3!bM(n|^%>4uXDEq(A6nrZy{R@CaVc_hl5{DwpfqI~0bjlYL5K=sD$ z%MfOUIQ2m<cvmIUk71<fpUG<&UzK+O5fgzx)%Y5VBVxQQV78S%cW#dS*V%J0%`wJp za%dusiJ{C>xHk~f?@3izc=9X6AE`SrezO(qf{_1Qf-EV3Bu-vI)0T0M9K8*u8)$q_ zZr&M3Gv6How&!Hhsv)KIAtcVr`=+2!N(=lo{>Cad$1LfJ#5XL_oXQ*b$!)=}Z6}1* zxP8x(6s%lu8)8x;FSp_N0a)089!ezVK_Uf@g+&@amj7tUmu(Y(xm&@q1)3DRcQi;o zm7jf!lav9yL`PE64vP6w?iYhe50b9~dWRbcU+d9qECnaUgWq@ZbP#)i=u_NZD8y3p z8h>C<%T^yr`W3mq6NXwN4Pls{<X^p!16A=h5(jAXAT;W=2F4{D4_Sd6`YnbIO&HS9 za`<chWPMERDoD}C&?ecq-}o+QBbUI!BxCazFX3;EaV@5%NysjyI@VMG)zbb0Fh`7r zU1%CIDuD5Og<+=m2j-a3R)B-P$as!0Zxg12edr_}pD+`rDuzy5rqmxm=>QTmdZSE2 z?>7#EON^ut#3ji)uOK)D&0n~EcN14dl9ztKJA7ocL?OTT7)D4El84O&WJD3>Fkw_l zWF`q!p_Sx=&Jbc88^8OFhe!yrPL~jEp~#uYo`c)>7^_OC;}y*EUm;^9Rpn$DAw(Cv zW24`3Z6VA#!l*(Rm=IKjR)`D`Mi0OgA{+Bf1yK-!bR!ufNjd<+OU9V#i0+ItP1J;h zcj4IZWjQh_L&AbLkeJI#8iGqOF&XbSO*<?}f1+GZ43&Pkeg7aqLcYN`FfK6dg9L^Q zWRD`0^q`7bXv#PTR3Wm<6qFzJx*sXrj~eXfP2{0|<N+#8%P|%BfYPuEe_o;@RFNOe z1yX2RI6~tRQ{yds>=^a{|Ct+&AC=`JjZ-f-MMMhfb3mDp;2ix?D<=#H1|sCcbnt%4 zR0FFtgoCP!N*P3y#8(O#hl8NTXH1Xa5Qw2a2-4k&h^G{iWdWz>OjciT$^}6&5s^;( zLI@u^<P+dGm{vW)?ccBn_{9n%fquml)0hte!;3(@tgw(mJHhK1Up4&*CZs~cdqCB= zN;C9U)8O^oa1Ez``pH!~no7TE`aXplo52k0Xo8z}XDCCzZ90LFfGo~%6HuKA&AK#f z-~XfSJ;0+X+V=4?=VW(JHoztX5CS3s(jg@DDyR{Vh*SkE2_--%*+{a04UjHDAc&xd zG!e0&*b9nSv0wpFu{T6T?1~Nbf8Wo{IlD=GzxTU-*Z<oqb29U^d1mIBdS>P{*ZpsU z50bF@)CWECqw~;wq4u@N>z`%OlHkd<XpjxA1I-Jx%y*wRO@@`-1se%dou=v~$PA9` ziQMSa{sF8>)>76gfNo$^TbN0;PGYCgT=9G<0Xu<th}iAK`tipbCM)tzJ2V1}FuOkb zWi|rCF+^^^A8ks!{<TDVdIEB6ppqL>me&Zh{|W1Y05kw5+)6N}{{87f3;>;p=}e4Y z|8$SbC=%=6K}3-K(W_Kqaxj9L6{K!fd%{ugRy~eqagYNUnUg!02AP*K-*!rZtb-k- zKF$f!>N-euoExN-cHpGdSs+3?@DPTxBv`)_;N#IyIoAfy?hOAW^j{YoNdHjMtPP%i z7VPp?@@@!r3n2Mc2WSPC+!F)_wK4b+%Ga(BaCZ;&Z*?`yY_c-8Fd4T7uUe%`*B%C* zN#r{NXsNK_wal^p5`$EVyMj}GKnz!bYKb4iAdz-#I;7nnoKi!Vg1s5|+dOGjhM*q` z_JFalDC|8zJ@1LI{s+TsQ2YX}xJLo~4;I>hudp)OB2n3k&^NlyK*dZA{?!{G-5L&7 zVOWkM>n6@f)$kJJEf38&7pkuC*IvWCy;$x16)T`9@G)@7wN`@tJi&}nM<G52=v)sI z&LFzh5R5CG0`=>?7+L{!1Kb9ZG!pD{XpNjgl|0w7G68)E?(sOb*DheEspAfoH$Z+6 zn0JYlh-(S9RPitcZSY69zdWp-x5ul|cPmU49W?EFzq0;-4&HTUD;iZ|Ud&I-i>0a< z4Ta8&GR2`}?V4ku*0ri#s<I{`8>hh~w~@RMOu3r=9Nq;3y3E6bvx(M>tJMR;@frlE zJAHIl$qdP=8&xB;!To@G2JS_Y$eH6>l2tdWeGcaKfPMn^MI0-cu~}V{f!&J`_75-t zBune1vueA#zaEyJfH@hM79RG0lU0K!qqQ3R9*QHo`yf{P_JL=>f6@!XkP{sOFO}## zEdxv{kFHhh)56DQ;2}-k|Hg<Lv|pnaY!VvP$SBmZ>@4W5oKx+lU173?96+|QuSBhP zbl2X_W?gi&F=yJhFrXWvY`X-34u5t5q@#T?SZZ-+vNOQ$^}S^cM`ddRR2R79(Fla| z@vtH%kQ7Zf*8T%gl5RL?@_f1pq#J_G$<7saDW*fDm;vn7K7~jUiskmJ7~@O@#SOsT zLW=1Kn7CYoJ3YM?o#d^S^(X>Ql7PzmTgB%JV9pspd0o^0ss*S64LR!dn}R{{;cesv zBsP1<7H04^duBH;gYT3Kw)=8j)w$Q6gKV_>N&|hLeUAjBg}&e3B>`!QAGSYYAmfTx z!SjTDJrtdVgxD*Qhil-HXERx~xMR}UYfnL&Ga1mk;U4v{;RPg#oQbfed(EDAsbvjD z_$|02KHbIeY2w-<?`=DOH+DV&8bBH(rtm9+A*<7UXoMOj;YB0h4LsccVdh%d3&%4z zCpxK^JqBAsC9Bhh`50lQ;TRAU*i0o}LXrO;D)H}AnR^FOv8~S6P)twu?s7UdS2Ee_ z1XvHa<fSZu+A<Zq-#KtMT6sW66SEQ+JyWdx(^V+q$D9)zakVH=m-%R!w{`mKKCEEu z#acMvD?Qx*VREeq^E$h=&GfmU9X(L#rJbl2Vmnc5$p=vPq|m5=x~)1D_%?9KYnY<- zOmO5c2<Y_3OiUgZV>JuN{v;^A;s3Un5-Q^NP$0qyO?I%Up63ngi2=d8s73K1UgJM8 z1BPOsQ@KM_+#BNkf|maP0RI3J{!lPxh*yBc?ZW`ngShZfVmjUNH@w$logJV~a3V^t ze^wg)G5W;e-@_0e;Kd!O&X3i5!M?eWV}+)qK*{6Rl%iAZ^!Zkd6Mna>#SnZgh1W#~ zY^5(50g~T;tcO|;_N_qNQ3?517rYB(kNXr5dx>mF&RP#+EaWH^JAp<P*pGnuoLG^o zu>mz7Q#tm~e*xn_G0p3b0;~u}<k_3?P|hWx-+Ci!nHKaEG6WqL`UWZOPz?=*Gd{#r zcbGRF*vX-pL*aiBX>z88nAi?3dNrpg)D*gP2yB7BIP@m^!rGTXd#5DS|4Yn(p}-O< zAy<%SOlhbDW7qY7-sWM#?U_D}j)l&zgZnRmdfrEOmgIkU8{)VsG#o1Q1mHuU4|^n5 zEx}$LT8O<+X8?Nw7#oR8?oZxGHiEVPc?|+~hC=8#>jTw{Xet&SM4H-}Zvp*y=;#^@ zje*Lkh^|!!V@&6T(4RQBHyrdA13k$nk?LOi_Z*NM45eL;`9Dz0d^8#KJham+<c@`^ zbu*CLJpyfVwMJuM!?`K+6jo=c(mOzZ3pex^^o0xzdu$sXd1LV4+NIH+!0<kpeOM0K zHyE-DLqrsu72%76>|G-{!fUIF(a-2I&Qz>kxjzhmwpq#rr&YTFQtfn5)6c~)0EB12 zCD))#jgEzY?xIpBVjBcd7kTJ^pQUjq8sQ+ziZEjWts0=7G|DgUgBrqPL5&Jzbt!Zz zy2(ZpI687`-jxdf)KOnx1r)-cU<4<)hNTh3L(qM^4&cWgB5cFR!!90%WKJPSeggV$ zpQJ_{JC_!a1_c_xiR5rCV$-?i+i1gE7(izr+yU6$K85gWifw0KtSLqSo9|PIjG7Y~ zLHDQUBXdfCneAgKk+a7vSxti{TVBLj5w7?JxYFx3%I|}sGP%O_Z_DHgXO2lGSHArU zZvY|n4N7LK;pNJcXqJxvc-%wiDVZ#!Xx=&RT?HOYTx!7yZ<wuv5is|@H?RW-m~0>W zJsU=oD>dL{OEUo2;XZ}%n_OA(kEWOc><phmWSCq@>W@_+U{?EBO0;S>giWL@P8#|b zW;;Obha1`pkB8xg&7n;WKMP*1@>eILtZDaQvHQB}6)<0yv^xZ=Oh^8;g%j>yeC`qN zp$0YD7Xs#dT9}b{!RG|OqQxGdfpd*M%(oI@zB|yx#e$IHVkuaWHGNPP{g$A~bPL{u z!1mEg0rs|H<Xr&&RDh?$C9h`c%vOx`un4sX&~gtGUMFb16{7`);ObVOc6w;t4rEPV z4a=Cz6&>{=Q1a4)RaS(D*}Fk0j(?L#38hw@38lJ}P^lD-RNW$ydkP*!A*<>jNry|` zM|Pv&A`3lib3n5_jF#S5EBF%TaO!NJhInYL;K(yR0>Zsil>nZ0A!cLlbQzBGB@Q#o z8dYzLrZCtihL~g=W}UVIcR*K_G=p>YPA4N{+d!#%5O|OgeU2X4YS6W#S%>QFdH5n* z8jkFH?;(4>YI_!XUMAj>mkUYb)mdmJNpk|gYQQFMLWU>QicYoCVEm}_Cj;4p1l`f{ zv9OEv+H-_DWvhjVpjuxy7Ze=|n?u$a;<pAbfV{xW-++!3a7>j(Y-9orWl;S_dg7*+ zjU^+J9!|&3yTBbBgSY1-&Qk3;)xbYaGVqThHvHqT$5KHy*;X36*1+EL;m@6M2;OdL z0?gLx%iS7*cB%|=RPKyfz;stHLJ2pG9dqFMbI4KiPk4K%&j3%&{c$=1J%y-lZVVY4 z=%qLZYLq*-D*`#{UXZm<W8WWmoJNy!=LUH9P!E;DRjj~EOq;f=z{^aOl50f*`&i^E z<%M>jd4;)#{gt1=e~2#_(zv)4_<|EsnJxvg6sJq7FQ-d^Y{lu4>dO_aKu5J#0$kDx zbXIRLQ0wSH1p2E27#fT7W%R6X!6i>cK7=JRG)b;{XuBr)7U-Wn606qb9H0$Wdq<&O zf~VTqD0aByS<Fc3%mc&JT}U5=wF0J-hYd4FE$PeydFm+?+yJ0P`DijE(o9kxq2Hbc ze2GV6)!H=)(bsTpe;54$=*xgvL#*g85!4!jo-lB!`VGS!lH3jS10IQ0`?Rls{l+Oe z6$`9@9wLUihZpd1Pa~=*G}V)u{{piE{zOF@?hVo}hXU_AJLbX~`eBC-oX&&VUtftB zu2wBSMEU_8<Y6kU+9xb#EJf5-WC$|3t}riEXT5{Mngq@wkK3T?J2TP1tN8%m<)I|g z{)==i_^hN=pMd)*aPITDS2A{uADv`B1^g$#9rN+b7=yn&=?~hY>JLMN(-}wpup~hX zS&_64&6R2fg3dmX<gO6alO%3d$L|8sKoFeo6D8ocspSWNp90)MAJ6jD>0IN-8M)Zc zwnx;fL&38V^t*i?HV_FJ6lath5dwppA1}nH8RFF2;Q7?&lU&g>&#A*l4b7jx2M2g5 zmz>cw`<0b}jh>Wq3h=Fb8d)T$dz3cucvA9g;7<qc91pJ>{<;$y0smssxqX1o18%a1 z4^yPRdLi(s3a_`UIY_UX5BxPAjX@t#r=6m#WkhcQYCF-a7W(Riz)@BDh2ee*sJ%Y7 z+{_U8RxNuOLu+z>4Ac>yJA=0)1b$Rk{$$Yq02MgL6Q04_5dz0m(&q-<5U8ecG&gJo z{!nkO#eyS>PxS)o%s86o`~!chznAF7MqLEd*f^S}&H}c5@@eQRsoE7lT^&br+gl)L zKaGY_gs%f?Qyl$DO$bl1_oHc~m8eI7dNPi_j17HFdoYgG3-=+QK8&N!dk*M2_DLrh z;lBd)R~-Ee6P96LjxD&tU1y+WoeG!G6lE-BU(nEAg<V=g(;fI6pJodSC(;d?$;}&q z#&+AAEbB&UIu1ldB$TF!yrvXe+6#{un#I7csz{^dw6!OmtgLO6b0_c*ktW_g>f-Kb zKl~EL0i<~i_;)MP=rZqSw|d>s`~>{pm1v~k``F*1ZxT5t<zoB;mk?J*3wAeW*=HB) zH~y*z@O?cRE8}C>bKpF?1Pc<|kr`?<Q29Q(uAu)+N}m8!4B)v$Nsf?OpAHP91RhQ| zc6}r8TYVbIUO8$Qs2}K!f)nF@0{9n5BRQgJ9%A3wI&f!eQ%s)#f2<PCH|K$7U?8WV zvR)VteFEpA;fK@uXgNYNA<!G${VSwt34BM=B*ewnuz^Xo`=Yig`&{5h`ZVmY^sCyy zRQnY4J1lzpQsA%lX&6_y6eVY6G{Yk>KkzmhZC);FuLIFNJ|TI-3Do22fI4PBU8MU? z`vp*b@SmvbHn|(r8w35WfZQKJWe@TaD{@8Cy6@u3nZWMAqhAAm5(wH<CDL7b#tt+9 zfwuzpqqPuKb3i$wA~oSw#_jikux0SN-*utdMIf4Ak&uZG>#Vw^H>d{(U&fe^4Wqpt zlw5|?#X=g%Dns3W7pT7tK62b->`S10*QdUxk;yMBLkNSR(`#spuzv!PbDk%bBLK-* zLwF$AYnq9_0f@4ELdhv6%f!!P^?}{NpV5m*Gky*zNBGpVPkr=0@TJ`)qBKnr@R#{C zWHU6!>>YoZrfC)MH~Tc&7$vUWp*wFjaXke5^F9sZ3QL4?3rk>H=$CI`vG0N46OYKM zTXrk-y)yKE22jTVR_II<nxxuw(I*6M54{z{9($lptAI9xDWN$KdSeLoKL9_VB8?tQ zEnz&XLW{0OLk;}2iZl<bK$;_k(D+|o^Zftx%ED@vj6#iYeJ8M+WAth{t)Q_vMKd0X znbSF(^QLdWme6YFY-^2mB&eDS!a8ut$CpD<nevcIPUp~*WJTTvS#}ppk5sj%L)U?J zG^aOiwP!;U5x6j^+TPGb2QiDN_I&6Bgj_TQDgZVBNUPJiVE*z`yzD?|HeB*7WS2Fl z5e7&U?+*GI>gb39_rDL_Yn;w`VcJAQQKRoA7_rILZl+C?Thj;ZNiY8fO1I!#44K+b zi2<U_5r|{xbJbx8ILf$Mmjh*{wdaoq)!&4INig9oLF;Ml$#(#KGEgl%bcK0$*~dWl z1u8!8rf@Uw4)m*zXltC#<xr#fl~pvCS#DYj<YSH8jnE^z4(7<*ug?WiZ@)gLPu?DV zF6#WZefhUz<?trN`XO9+G;A$=KYaea{I{3kwF&?>qKKozw~@x%m;aWntj0c`)JBHc zm!FSTib8vmCSS~X1%lqb{JS2)jW!5h=%ec-O+wkFp(Dp~E}$*)Mik2mfUH?w3rOWP zORXBy8?Ll)S?AF=A?sv&atY>piL&A>+CZ3bmdV{wP$#?BQIr^R_Zf6%UhdMeyxcvy z^1tWq*`HwN9AfPW8R0*{5Ke>7&)sh^K_)uC0y-QZjhDO4N1*HX@uW5~OzxhZ4Yh$^ zM;b+gjC=zkFLy@)!tkR$TB-vRVnw*rF!*~cZVw)b*?3ZFQ)~ebj#cQT(l}2Ej;A*? zw*$NdA3}g7bNApBj@tCxJvcQ-{Co)<oW}R9Duuhlf<@f&rRVX%sEj{lejhBBk*pk{ z2wo=LfE<qqUe4xNrEu;Zyh28SDVNZHrHroR;?m$%>`_$XSK9-=U=hZz>RM#Zb#Td# z(X1{O%<`R6fw>LPr#wt}8hqhBwC?Bm*e6C<55UN2d}QIF#ojdnt%*8}@ON+`Hhh58 z8hy`?bs^h1A0`E-(T9lEQ9pE3V{kVHs;!TfxHR{Z@16v7U!aEgXbRW*Xqp#43W25o z_?S<_7!qmT$#@uATm$@epXL=blmD7bE%uYTFh2D-$oKgyk|_!5eLm?y(0mO1FBNGd z;}Qsed-nnmCgaf%PUk{A{sh9mdo#PTL6rM1gmJMliwp+U__b(=kXTg!@?xJw3P96@ z)#z6Y%{9QU_GzRPG)-Og=@W)#2k?*hG}O_`;H)Zms%nZg9G1J<5B%GtIn08TyVrs( z)OB~6IobC>9gm|qqYJiG=Z-^1P437@EQi1uZdS@*wn|Gi=ypJLjH7u(C)iUR*=bq5 z$bBwQ!-y99l?hBRM|D9}8$k3_pr*&UITsBMP%|Gf=rW+neY8w%f<x7rjg%IC2T(hS z7U3Fwp_)6#aK8xDYd*KkWP^F?`r8cpOQ61uqqz?txKo|`B+8PtFof)@38zc{D6=l2 zptD@?6g;4gJYtgA9z=b7LMAIL)N;dB@F&#}t&17~f_$GymlKC@!GJvjwkUaZ8So2y z8Vb@w!C=@<nq_Ei27bFwLpDQG-#(OYisUKa_xUv6i{`%|$K~3mU|W0V2_x(%i2m>i zMRSQ&#*D!(_Kmfnd1N%oA5LeoEM)|9>@(4ss8#@X@=#&gwUxm=vB5z$Hb`4+e$*h~ zhm%GdALs1B;dc5`3@3@622@EL%@e%A33ds_N0KGWfLcp5OE@e^ktttrvVH4~rW|(y zzsnP0XgK8y&a(f&!mk+dLEt~CM8oM^aG`x1lT?}V{RX^qVa2$F<{JBVkjj*=0r1U9 z!_=6#xFslflU)<lmY;l3eSjZWNsiELv~PaQ(2NH@>eHM6o5h<5gLl~j>lu>8K(F#i zB<Vu3)4n7Z!xgr6cL4n$N#fc>sv}o3xbzWx#O_wjSi~D3ddDNQGPv{+e8N6>$e_7K z_FEjyrH|nA_O_@&r(J|W9h{Da`Dw}0NANX!_nn5O6Yza}8eLG*7QAEMh9lA=Sk|L} zA5R)7Of5%f4%;8210O@0tAJnP%h5E_Dtu|b`?;an4E$XcX>{HH$v%N4GKuRs;9n<A zJT6W1x7`)(gT(a}@IP0SqZ<j^8N1EURKFODqi~67=c-3A?0i^TZ+%f&z<2RztPJjb z38p$1$IPP0V4%+T(RBq~*BP@9shtAw45CEKeKU}=GARo-ak%|kl>xWL$4hR=t((Di z&YxR>zZ1BJD&jABr9B3;SUFHH0P%*0)I)WDg5|%sIhk9LxjFgdV;Cp%b%fkiqQ{E$ zdLbnpIfjZHK>LwB@?D6ncDCCZgC_lYr=KhDRkQEzp)olL7<pkC_zhbURpa}v<dAC> zO1SYuTN}a4L$-|{<{8^G?iFqP$e{%=vW?JzFuXl^8v+|Y!Sw{q_EenhX&yAyY|nh? zu@PovUptR_v<|-F>(NFw6I+3w_hTxRGU3NOjQ573w@bNhA*v9rBYzYANpm`*27u>p zxa6gA#FPgcA}a7SfD=S`C9!$JR<yIOWn}`>-N&wp^G4r9Ej$;Pkv?{P92=W~DZmt9 zuJExub`?&=!^(M~09q~o0|FS`YLJAtkXIwh_wCS#9Yp9TTP*{}^reHbWB}knxCWVc zMZ%X*T5owdJcw6|axQ5#sF8-11IQfoE&3n6EJ7(W+p-7tWljxKqsL(CNC@^mi9Q#q zC(%eyq0{ma?{+GrF_*~Eabiv<=5AtYKaRztlzjE#8yEoqItniN0b<S*%y^YwipB%b zSsq5`ZN8wVs!3?PmjSibM<>XQs!^-34Hl?}eDq@!UW+>uQnspks6W*3RiNMTNkoDs zxl=v;h$i^~=o3DPNRfjIDbK0f(K6d<$cP4TqP<S`dD~t>b{DF?Sc&Zh)LA6)^P8y* zSIX}(wb35vH}qEIR}@eGyI`ws%4=%zSmZMyxP<A7&mi`o+BP47C6KwC(e7co>Iv$Q zI(IElw*Y*%htjz=R`8#y)vSrn0Qahof1dnW^kKCdcA`E5?pq(vO)&aK>y%UNGycIw zFaT5tYH?GtL?0FzGWtwuVb9xXXj%i`*{2aXGC)W<%RY8LWDErEd>>D-R=qFhAc-HT zE1m`Za^M!i4K2c21_Q%n=YWn<GO(W&;Rc56jZHvat$A=8h;-A_LRakU>*o@a8QkMz z+8fL(>wv-h_LgzrF{k}yYnD0T&#lG(ZS`Of%K05gZU7nKLr6gQ2Za3jZR!si-KPRN z{5fg7`Rz#DVU_RWDa^<)^V^wdjVSbT(tOA~ioAlLH^05|PmDbfzR^ef%RN?h$FG?9 z*1;!$)Y;NT{8of}KeGQ>s&nmqAKfCz?6k5kF__~C7}+F}U2m@znL0i$a!nub1TvYQ zk^CM&=-2mSxZ%TpeV?%U6c~hNS)~?UL{hF(rB2~Xa_M#Gu>xn`MS?YJNWkJqy^*Dn zV;_Zg`y2DHNeq}}aN)zukp|Z(eb~hcH0vUwAC8OWvXO|E^`pQWXaFGkhq!1iWEjy? z(Vjm8%oh|LD)&T_!isRsAp3jF516H?Xo9^g<z^!*XWkmrhJrWG!i48$5CSi;vf0yh zFsBuI$>iK;(dE&2hkFz>>Tt#u%9!4Y6z`^KiWwdS$-~{Zg5soe8=-z2aNfHfy$p(K zBS?m_?YI#hT|IQul5^%;6tx2z>$oEHlqX7-hxPzs<@|~fTyk!67!RxFXC4K`hAkx1 z%E?S3MJNY@H-rNdOp<5`;j@Jz)D;w&2hdrufSP+0EXDBMfLJ--L@481Y<*;pKft44 zAl&~RQk=dUnR{LMC4J0xHYnmo^Djq}W#EvL%!n87Pu3A{^28=Y9BoXB23KJz6Ulqp zqo5UptFvfxrja7^uWTh0hyR75?nhMqyM@?#2z`SSO$IO!KK6vK{LQ=jY2|x>;(t_L zwt1a2za<K>tE14E(mbYt3+u&&mAc;H17Q=UAB}bf$C=IolnpsHRp1Z<SO<{qK*G|J zj@tthX>=Z|zOvHZIu{#rt}R5o<GWsrO4X|ao;$!&@D)1kv~vzM!^QJ6Pr*yfmLCC% zgX|n`O!(q$M0-`zj~c`?*_N~QP4wO$@19{<t>tq*pERufi30;TrPgn^&P9~9l)2Q* zmP^fAH|>ZKLDN&hZMbXklyKXvjj+^qehO+~xck~d$mjl>a4%w&e9I?%ItO_w<s8<F zJ{-B}&+LTzauldPvlBjpLp#-YDH@0Hd4r&sx)C~TgiAgQjHNL{+y{WUAJE+%CVW)T z*YpSD`RS->iq`vqht?zECJV5gH9V^P1H7RDM*V^ZzYLiCJ($DO7}6vcAA25C0g~{* zYZIU3G9lsJFX3^ki;R>WKo2AdH4F~`i9QJ5m>0Z+r!7K(DOiCO^=TNn5L!*x9fU7k zv>$bd(JcnewWOm)x~1XuG*+Y+uz?;uLDH<thahM^17o^o-Psm5ABA~$vmWA|u^rIU zhg}Wm6UX4~L#S+MmOl2BjJJ3l&?y;5{#nd_KV&T7zaM$`&nX!{@#>#bGJfHWK&NCJ zUyOfk#~049GCqsobvhZ_PKM$i&ovKhUjm70o;Pd?7@Ftt5*+;FWjFZ8J8gmoP#5)E zmgW<`hF_Zf=975KO&SfMd7%TcG}=n@$-L!8M)=LA9V~;FA6{x+^e()S;fOeA#%6@e zY~<Brjj;cRx}0D(wfO+H+kAQbtr-7^g5U^$jE6PxXVk^!<zrE|IM|)|7+z{MUtJ5W zrv%^q4A`|@Ve=B~n}XoFi_%Om6HCy|Z*GbL671V(@tSWMh-Eeg13eEg>DvcPfuh{i z*Zg+gz$1Nwlvw=co&NK`!kDkcA)B9vnzW^fvRb@n%Y?`7%gIrT&+H)>aAO4(>1}b? zo+ttKk1am8FJhqXIbj68uzw$iz#WKjCtNa9Wz`eZ*Y=IbLG>KKuY0KQB;qr8NUX(g z_A{{gD}Yj8;qe`5N(9YQVl7VC58Z(oIMMD@ECRzBG>?h3z+s+LysrekY7SIeq9yVS zL5G~<-O)&q`)r_wcxZi4EaNK1P|azG^oWSbz!!TomPV&Lfqq8BH9)QQ&_=}DOnzPG z%a2VOb^!kfX_$s^5n{G7_#J~54V<xP_avJAz`yUy(KHt_FB&;KCn@Uw0=$JnNtE*# z)otoryT-_=2Yge~FvTXW?Ud8PX?m%V!#BnKE6Le<FXXgwZafoZ&YT+q{6vo?KIv^R z@f*yapoZ1|k>1)&Hb>)TA`@KSOqL{?$%aHTxh~O6rZhr)`w`dMjPD%8?wd)iJApa| z@UI>!JeYXTOx~=Ho);*Uiq@?TT=MyXHf9p5t*m>9&IGDc9Bs_x(K>j|$;1u<YB<pn zxo0Np#$von?rA{H^3WB{<iI8)q8#|O9*u7%H*7Q_b^^7_LsvADwy3C*hJ(O=L>i_c zd_7|J&1CVzCYs-XcaY(tsi84u@?N=#s{!!MNs}PQn8`+rG9<-)fFD>%jxm!Qv`&)j z@xVtb$uVYf51MHfgjxdpa*sxv32h*5CV`xhAZs@MGY~Z|9gH@9V!Y*_EG_@)w&)M0 z2=qR*iOr_^oq#Mh1zxF+wxZei(~AEeB)oyf(hA)4r06j5|3$*PBB3dI6m(^`Q-bcw z#<SDXU72|Qb5|xy8G$!CQ->~J$0baOcZTBq&l04C4lMdxB(y~}Hafhp%-2D@|5-vV zw8f^|ULt{8+>L}+;u6IBpC$16LMw14d(d$A>=M%p>JgK4li}03%qHDrxKA;?>>$E@ zIZ~FsF?<Hcoi+7fsSq{eIq2~+T=G1?4PwY(jPgDN@GB1yULsgMRC@S9EQ0_Onr_(i zNGV;9l#-_5er{kJ0^5=l%fT964~V5HE`AWBf^vlW06Wm9xJ@YZIO#gvvPKzWft^kY zDi^*25Isz)sfS5l&&H|%(AWDUWD+_nU5}FbVCjZ@cY)+Sl2IG0CSR+EXa0a8;THfZ z<YdJ+>x5Q*v#yo+w>RrGA4PQyU->&M{A7ws6c^{x9sQa<h(E&84-~DIa$HdQZ{^5I zlqpAE*I>$#6Dd=U55Q~6aeZ5i01@eRaLJDW?v>-`XtK5ec&~>D?-8sn$9!y^e-@b6 zJZyz>+}{xs7+{XT{XmN6!5SV9pI46i%dl97u!{tw!)c1BQ0Q{35!5nT0o$DvR4#lb zC@PfWSajs)0)4Sh!ia^=E63Nq#CA~tOF?ou$*7IaQCTO5@N`DtN_5U{_2C!AEGw8f z1O#$mu==Q;^w$jDZCTYX9Gi);ASCRelxiz{#3keUVi_F34?RR!t|(4F=P$60iJ;Zy zy~w`+`=>{NySa&+xS}0S*kD*$6A{;iORh<|=?>JXKJ70|AZRt2Ky)HfBGt%CUoXJO z2FP3>hWeZ`BwW)6G9o<d7-3fs;qW7{_cyVbN6;Y32)IJs=j_(l%=h%_y3ZM|v6*yu zjm<Pi-G2%Z?q#I)0QYRB+6CAP2jJ%(B7BNqwaskL#riie4ipf!3N|zJMx03mHUrqx zNO2li!#4op*-WcbV5$iB1h$_~af?uBoB6e+mT?KNMWmo|;hCVQU^AINVlO1n<vs}` z7CO&n&Z})%<l7FCyGcfEw9Uu@P(-#n6*h9N#Xz_)HE9dVvM?zr7nW7%Cf!#D|5B57 z;GbNO+wu_mkU}@K9TNild-pvQ$Jf~9P`8!Eiv>fUq6^htE7W%j_I?XEDfB7!QM3}< zaYNh}sr{*lDzpQlCcA0NVOy<hQOFdxO^v<Pu?q<PYDsO<X5fGI3=C!4)Fit4CKzv< zbYiU#8-O+unWKfeqYG(M>jJ=&tf}m&=%)Pyg&nI<1)l?HQBt6=sMJb(5#rm_9teEe z%kZ`h?x1(}Qp;)=cop72JEY@K<}bX&HS{3rMCNfFhl5Tb^G{Af+z@x?WuBlvHT2v( z`2V86Zs@r~@c&JJqtG*x;s1yJ7P*&?fZvj<QrqYLb3Ot}0$p>nvk<T)&?k4#5CoDW z&_6eFHUa?&49>mieguLN7@51}6$D(xPv7R}9!3#lhE*y8lXCAQrkbL{#koaj<TFzx zP?~$v-3ZiFb)f95+^nMr)KR05#JRagx*%|p%0cfuFSprG2-H<|AZ>nb<O&2DsAdQ( z$*oTTr>RpRU}bKhgFsuw2H}R>Vg}ktU{mf)1~MhEJ$E((?Io}?cOe7W>Jt>oBe}c} zFSCQ_wkLN$GXy%RHi+k0D=i!O-#)~mD6~Uw&Oyy*a-uHBClQuwv5g@_Rs+TB0(tGf z9?BM<RS(d&Z9>-*$_Ln<AxCxwa6j8m14I{=2gQ0+F92GY6nFzOqT(2qC9^&kLHvL~ zm^e*W`~*>d+T;ve4yZg#L@5A7NL&0|6U5d_s9KXs)FF>myaMYES!W4~-yzT_O1ac3 zzWE8TO%ohHPEY}tQxCX9q7%PZpw*ea8d;k4p+Jit84Z62$=+K@!69&%nH^>j8Ntsc z6bDX4{4IovA34w&QHiv8$SR0xDur`|M0`NNG5m{&l)kWqtRW($4s1kA5np126k9xl zId();<OdWIGjsK0kaA2={HTJUtl}*<13E}@p~#mlVof%^vK9n0g<vTO2$l!3aPFDF zISy@rpJWKrqw}hGIdlGeVSA1!DHP#l5Xt)kc~!igWw2SO_!WoBRK=UA-8jMXI|e%C zzII^|RlJWH?hvB(B=R*h_+A$Se~I7+`gqNH0Q<tSZWq*qN~rJAhGeysOlPB_zk4LM zd8;lT){T-M{{+<-+V?gRiJ>!otArPgXHBLV@^ce$rL2;ky@8oe48K5;h&h}B%mozk zb0uk8DQy>1&hJzt@Dz`~9+)#7qB;;ID#WvhFy!`&_*Ysw&FY#RqBnFq#tPZGGY#E< z`jaiSIw{n$6Z|RE%?;g?4u3WJtA*~{27h(>Q$s(02Y(IvYlUt<4!^V*bwjOs!JkTa zgV6UFoMxxd-zantQ}XOuoJ_O`wX6epZJKI(oI!ymB^%#^{vT3dese=oW|b@iSylm) z!Y^>dvsG#s@^(AW(<q%^=7{HpK|gyB&=--r&%baNFPsbX1yZsF#7pstPqNJvFH5mx z`57R6l3;%ABOZ}eyz)3Omnlv*H~A>~klBp6cnb+;E6!*6Z4k{X1SRTupxz<X$HdT+ zfG)n5oOj_(41~eOQM%<VbOQlkifgR_*}aOx1b%0vGFeFr0J9cTcYc2)Ar^wrG|mOO zk+eD&5zo476(9QtP+Oo^63SfA56!h78=<m-iYl-FH>n*Df<Hy@kN+FqrnN={|Gtlx zTBYT$WV10)DkQ&!B2lBE+3*C|N(CH--Ugh*L0{HpKB;F552Ks5oHsBk&U%hdV$b%m z4B;INTgp56WO%%fr7~8|e2h4<Ugwk8c|KP2zWgn)zw^oPtv)s(A-_ZWthtIy3446J z6o0WoIO|dMG5*o%>?O)CUkktDr=JAb9u>ksfvzf9=oXCUqV6U2X><HuOH7_K24M_8 zQ@}BK7AkvhbJBDKO`&ohU(SEQ-TY?<UWYM8xLzD}`C*W#%g=a3Wbm09%6|?tse$g$ z$H}=D%Zy$4O^t?4yZ!(o#K+G^#9V%C1JdQGA^fC7+C$KzLsJfP(zexw_q5*h#?X>= zXvW2fwAU_xw>gJJX&vxdrb7$X=(N<WfVSlLGi@`DMs;Y-N`QTx@V22^X^kTw=q1pF z7)N&KEzmn}fOnZd7afQ9TJb&t9Xi(C&e&!m;*Rxp)7uHLb<8+O?=6U;WBsG_ZikYc z>fTQ;x2ATg_aePDp-!iakHiZdI@SM$-tHOLVbEIAHWS;pJGYSpz0(5FwvvkBJK@a~ z9lDXWvm|~7X}d^@50SR3By$*PyGtq@^n#tw61lBA!h5zzIB^xc{luGo0N(!MwMjcf z<hCO1Fp=;lX@`rqCTT~Aw{IBUF~Zh|-thu$ik$2mwU9Asi;<I^i&Nk&v{SdCO)gAI zosTyOfiFOl-=)J%3t)y<VK~#J3)@Rvo{avnOIP~c(AIC@?@fPds4qq{UCyGvZs<Yu zEM0QwZxp(Wyl2zjB2=5a{pfEW+C<*|^mh%t*a-ds^!Ew<wgdii=<gqTr6qU=vcnx5 z+E0Hj{X;_g+Q2`E{-L2eR)T&o{lh|aUWb1u{li23ku_b0(?23~ekS}E(tmzv*=G1J zqW^->3zU;b|H#lb${9ods8CJH8At!<&{>pIK>vlIp_C&NpNm3EC}$es7h5F{p?T|a zIhE#DK%_p)$k3Yg;67lk+5>3R<@Z9;wqX}k*G9CJsQWg+m&IHPiOIk_>hf(`%;js! zsChny%!#>;Pvx|&TaUV^Va*q!9BzUx-Fi}vb@}vyX;!yh^e0(q^+3_Bw+)&psol;T zeIXL+)1O64F!VX}yLd$eif(6TYx;AW{fK*QeELBj&-LlgqaXCmLD6mSSkQDB+63E; zPIETEA9c6lc?EUg2S;QQt!L83=?{}Z8u3?&;sf*t@$br$uILZs2%G=N%QxSepyXv3 zQMUqiv`LEq<k-O~Nofk;BvSIzB?icg6uM1ea`+(=4J_``0lH;5oICNmCUJ%IXr0|o zcoj9diZ2qo4RM&O{Pc+~Jw{;_cfT8wXUZ!veh$TmE`>>V8|E-uw-U;j<zW?{{2dt9 zI^=%RW6-0MVidmBZHo-pJ|arGe}7J36{}vruM^gP{slk#+B(4ZaQMv?`S@1lbj+E} ztek4|Yb?4)nI3ovkmsaVpPfYiUd6AogxUI7B`aaB-D1q($pnfj^r38M$t9l=zmtjM zM_l4~Excrz1M~xIPxx_{%IM-k7nxLDlJl&Gw~F6y52jls6Alx~h;$F9#{s7u0e*wd z1RpP5b8!iC{Q`%^$#=sEFMCU#*$S>=+Gi#)+EjkQf>^f~2;|G-%KDWwI}V;#*u(Or zauxJiCjN?jNF84`$I({F5z3v-4t{e*%#_sb^~a$heIDS@6CYqLvH{lttkAxD;6IrQ zAgDg$0qWk6taFt+0UECh6kd!*GjkIc8bbBZMP+WL*9xUy3-lH)Ik=(Ske9iQc9n|q zc?axKmy>sCjkt6m%P@rQ2Tq{;FpfaevFQo1_83IXW~Z!y_ZNE<uwg#H!bO;pPd)~G zFJs`xb2O^>HLPXz_*Lre(l~S<7S4P8F3?RrwB*XKK)a6u_@NymVAXa2KM)h-cXtf* z0~A<~_e8)E4;rQq%24g%on-4M6^|e2(RM=7T0qH{s4P9cr25T>7Tc9#FTP_GFpF%O z6F=rtxvEHtOP(arxAgN%KXG=W-lw&JzDuW?coOPbP8F=;UL%43Sn#*{c>19Jo%k1# zG$f%L?QyTo3iP~3Wffn?lzk`}!Y>Kw7^k0h0MNq%Exwl&eI@OGlY(``n*9=nZ9PIx zDptcqU#n!pjexAAM*QrM0Ul(5ts;;gA&RHWn*H)5U>>shQ6e4b?BNa+Y^?ZwBArBu zskmP&fSZXf*H%F3mQgC|tg<9X+sKS5*&6`;4)X3GxfZggI`DHOi{#@&@v@7#{3uY& z<yV7ZF1Js_+%@uKPZxCuBDG?_Cm>DiHv;JClDQ-5k@^AnW9}dF%tR{`a|xd*G%-WT z&+0_ox0>?F59CB>9Z~mCGjzfI@4(7%GZ_h8k2TR=?emrqSAb`PgTs=$@yep-Myk93 zFulCNk7rmVpQHWi)rE7W4L*in*RV>yAf_Yz{Dy`pjhz&96IuDvP6HzxGDc_>QJ3GK zh`Q(F8Ixz!<(+(3O_S$-dDd=A2=5w;xqOKlbH~fGybsf?;e0j>xh<hcQuWWUb{`6l zMB{Oqi)s?8wlfbi3h=0YfF%<V9*qo>2W2-0Bqq5ObNNCx>aKz8sLO4JC>!`=;*Yv~ zp%ioZN-%1k+?gM9d7W0&<vmVOmlxQ_+~?%^l013qcue3?_cei>*NzbG^N$H6>hhxd zn4~-A9uz-sCWn2%A9Z;NIa)n|zb1a(4j*-S(RNJW7*7Bm6CJ>X5kbu5@c~E^dS2Ru zeC^C9uhd0)<>_`Igm*c`T;7~J)8&1+F_$;nMqOUf8*@A38FgEVpLe@PU0yjFb$RDg z)aCV@F}Dq#7~x4=_X&jlm`i`u<!hsu%U5tw^W?_gn0sI_A-uT}W!sZa4JTx#DFq%3 zpUTlbU+74E2!V$$Y@#k-K}B8O1sQdDe`VC=-BD4O_ddm3UJE(X__GCK0}>T@)NLk| zyqzlM@;GqJ<$2+#%d4c2Q^N^qn?pZOTtwZ*@Xr)~%;haZC@rDkg*h<;=WQb~S6eJ^ zu8O(SB!xV#5p$oy@IU50FVC0dS?v<a)L1^FE+H|O2i;;W4~@m#>Y$wI^1xWk<>?~S z5m<ZF{Y%oqOA4WzJb5=_%+(OyTNriQ;TdxYkGe6zYB=9?#oXSglTmj}jDA9*E?<7d z+@h7JplrsX?gT*+Jkw=+5aG_)sLNvrF#*I}9^sg2AR5li^D&p_6{0TvGvyg|xzRP| zE*?vW_Uk9NQ$vGseD)hpF1|R5y2q&py)l<3ieoO19LL-(Ac+Y{Oh~Y1FIw_#9oC=a z$*sdNmwS${Ru^52s(<y=FK{O!Qjm;c6@NALKTEBjQI3@k`J#$lK54$n%PR&sN$v7{ zYk_he2K(aQSK~;SVU75#cM7YfoitD0K#*ynYJ#fWs!B{RgZxXlMQQ+=1o{x;V$~Y6 zV_OFGcKLWK!mpJrQH@dk?Gqpgt-|F)!od8nma1<69PvDwa3jBtuTE=_c7iKYWQ1&J zvKVrP8p_5#<p@yChtrzS2kK?2>FZeVcwF%-Hb}=Z)daGgClo(uW8>gw<fy2Y)&{|~ z;JF7*t480o$hylde2|8tMk~T^w=7jlfXIT?mKqh<MDwTC9|GoUxH3gih`vm17SDKS z{S>0uP$mCTuEV?sPHRmc(-`3gZ5AqiFlMJ=sjnkJEWJU*?+|GgswoNOkkt83@s2kZ zSkz@3y<Ba=)5*6>z%Uz5r;R=<LLp1lSUgvw@7QM|O7SDQ4VZi3$`rY&*Ag`fjlI1G z!I$B*F#7PS=~_%G6v^)zfm_k4X#F!Vf5Vk2a#L8;<rnUjt1s}hv+de2$3}2kD1BCh z3`<oK{L@mE^>Y;s2LLk+u1t|z3uPCyT;<?tPqHTi9D~zB>BH-AJXfeuc;+`icnKVS z@%-HY%yzgkMQ)w!&zS6o5qug>3!~49JS)j2d3(49RfK&F=r3?(iriX5c7rPwzp#Xl zG}+a!$5a7MOQp|>kYlO(6HnNI)zwIimrP$!4TLLG<kl)qLRV^!Mz8=*3!~49ye}$} z{E}3hBdVg}a$s(ND^ujw!cIpoY~P09eQ;VBeHi2{XXcUov~*;k5!L}H{?vLND)=0( zOp#lsm-j#}R~zt5nqi*+IJCwSN}m-W!&3D%o}ICjvbsugdG9`NgG3|X3*|^)rK)xo zgyt)ID6kj9X;ta7BIH=1`rsKof~EZ`>0SiPO1LsbZk_Hgv*6o^;2m&U7=8E%uB4mf zLowcbyo#_lfcXHfOp#j)`#KxGV+j5Vr-jjnxr7KK`B#_$b6+!m&GkQIVxzTaYT?Qh zxhZU=+TI1`a;k0j1iT-dmPelz84Y<$6*<~3LKq`>{^I6R49w+lWs2Nd9&e$?h5Gg~ zK-R)(dGuM4*&>e|pS_1cN)>r~fO!e7Op%-NqAoAZT&b2)>O{x>6!350v{d@62su`$ z*YO;W57E>$Qsecm&JAb);K~%awU)fM9rwZ8*?{+g)AH!EBE0Q=sUpXt+pr#7Mav1m z@OtzzMQ*JnFY{cfvU)(O8?u)GejS{aN*_Lchv!l?1J8E~v3OZU>f^vX4_BthO{q)N z%aCWkiQva@S{Qv+gcqQ%P$Yk+8n)_GNpkXy*xv$IrpT?6%v;d$`5gN+z`Mi6<z1tS z-a?(b43bwUvc+a#>p~TwmjE*fu1ryc*02a;LVG5H^Wd~Z`m9JRj6hc?lHc?!=0;V7 z-3iQtaAk_zT0>r+jVsFSy@0$A7nfH-L$bNgqvll+YOTXm1+Gj{gw}9aKltha*c47n zq|b`*y0#UH<l`Sj%`?L81BySj{#;-#fGbnv*1|3u0pA1!FNM>>=)>ofMHtDS9F3hV zOGQRP+rJK&t#D<E+!VH4@%VFato<MWFTusdRY<LHp^*83VgBNF{VkY&gDX=ML7C+W z?=-A!hVp%-In?^PH(?JkobK7_bIO;@nU7tDp=zAoC6&*e6P&L~{orr2gR4{&ZDObf z$J$Q$ra9NCK$(^|N&mBMf}GW=&<e@RU8nqpIoGQeh6V#@`K?wZ<E&6Bm#v-hRdcX2 zQcW`?5BMaLv3|u7vs1nvB32vx0v}%r5w*04>mUL*+9Q=~R653Zp~hr<-O#@0r})hE z)D7ut!t^=iug_l1<Tcfy?`N-4Pu>IW(>R}X%3lR`OcAJ?aqjDszcw3{?{`eQ?4giz zF`O<O`m6}=Q(mDMLopUE=dmZnufF~V!&wB(N;tItcxuDRMz3OTMDPK)xUdQ(O`e5# z&A{aX{^Al30rM#wIsrVj#8v}9!Y{oBZ}uc=3s0!a<oO4)ipPw^cz4<gOgsu$rYM3E zXS#bZQ(3Ecc<>uTUqkd@Wr%{-KQhRHf2oyRKp<HoD^U{ViZ@5d4esD-?{lsO(S2~* z_E=lMaswnxv4R_IVmPXd@FIzF#rr|pph)<`KudmV{o5e=<=;fivV!$(VnhV5ZYWp0 zE{30J;4ee}gZ>#Cpg)|}f<96FFj$tT%S#aK30OZkT{!fiR!dLN7XBw|VP<Wlrub5e zfw>$G{U4r`xI}Sht9=cE8{p!?5=wfhB2UZTu<xsi#HWGT2Un&jf)dNs^XH)fHI#*Z z+{b|b15T%iMX#wxos9$1hPtg!ov{(=hpSB8vkL~7NF{&O{o2zXl-qr3js=|Z?Q?XY zIpb}j*d*MDQk;Zt+1>$wUEY74+Mf^1B>U6O3=by0$Z`s8o}a^{h~Z+(nQY%L^eA<H zPAKZW3G%4>9iHWi7YefP;BScjhvIt&48Ou9sy|Ze6F6oQgXpXX?-wjrXP$$%MMgv; zUqpjV5Dce9&?go!6@&{FZ)%qNY(ZWVjz6{jyiKV5a1~j~6~7}PS3-gcy^H+R`l~kK zBp;lnW-o{&Q%7XM<Do%_2RdG_o`Z+K*7~2dP94Ua*4bky(72W>-b~F4S@?@b@Zlzm znKpY7m=a&6?%akw26=K{II4k;5MkcO#ffOSx+W9TdDKw;I_iH&TpLI_$CpN*QFjVI z*m$0Vk)?mYlp^EtC|A4;bh?p~?aL_z<rZH~t4)++>Njo*CB|qq&O(?MWKt_rRJ;;& zs}VWS7r7TqwYPW))gnhOQ?<fKXw23L8@x<i+W_yLV>T&ad`vi^m|>#mvrd&i0s2`s zOG=8G))8}W9LrXYN1(qm5yxA(5fCM<96J@$%H<L${5%G|MDgMZdpf+=!1)&^=!#Cz zP0(W!?z319zZF@EIAkGcg&GaO_>VDJHPN>8)4K<lH{g6}Wr`6XQha+&Jo$*2_c+*J zBk0_cK&m4qXuUe;N(|1idjkP0!kZjS%#?ivHZiooN(X<Ki^xx{?+(&)6UCJ&#vn2O z;>XN;5bP-+yBba|JYYbd=+^NQakIkR2;oKWA!1(qU}C5Ii>BiJc$L_91M@bVh-5&E zEK?K@9YkW8x?Do}EH>UaQfB0&Ng7yBovpgG#^T};`lYnCK!Xh`1#IgLL%cWW1R~l? zsg-h}Vn8@}=SIxEABkP7cmVz(!xy)Y7)ZrFxU}cl2Z6%RL-0$~TEu8y1Mg<I#L{^& z6QvVX1fyqxfEDU;_<QoqgNdn|pQM+7;hQh?19(DwnYvCqw1ih_3C9pT0T(ZTFoPJL zh-fnR!VAK`jp$~+=+kb+%pVSuK+uTj<KoFje(_j;(^Z-_-d2==Tn=)NgGUz<%I1JG zPZ7h;*IVu68Hbf>BA&QT)LsefO>kOA`Y`OqbE%q*=gUvxeY=S(-lskb%&Tx^irmcD zCF-_P_&z}JOE@izJ}bg??iGsUS#?mmjIj8?DGhC7eYi43ZVFqjX7ofA`q6F!a2Gf& zjy@|=SHzKFzyZ8;HR8OMTCL9qW-?rvA~(gYR99y~TvKIV3CLnNEss7la_HVxC~_P} zZ+}-6^>zZoOAk=Z@ua+%%R})ocPE}}6>m`3Yq;W8_$O$^3d!nOA%PSS;r$7CQzHDl zS>eqp{5@_n{9ID@_z4t#-mWmyyl47Kq<jV`pH-1^wI_wIq&z7EiWJ_!fZ-fE${!8q zr3yKMpIZMUaGBd-QNLjD!9eA6P4OO-!;Xy#Ur71|Wb+icIPjRKI*RWG__~R2<s5XR zM}G$T<`8q;DSt$UC+K@On4Y!ICeeU{kTI6CIn=us$sV4Aa$-hGy@~KHiE=e!5R7TH z*7qu3?@JKVQ*c^6_P?C-n0~2sko}TVz7l}_`RI6B2iezgp0!MIp(@ZOI2-2WV5+rF z&6x*4W{}dT={mKf2LSDZd^u;A_d)9o(sIRbhJK1!7=I`0f5^Wh;QHCugFeafMyU7Y zieC@2)@a&zgIDi%ECa!5)oJWxDObFZI>S(#e~6$TDDU>E^+2QlJatbavPr`^#R_~M zBngz&qrSjTl3omP*6EJ==b#z&ty5b|k+@%jx+Bilqr$)m$qvz+9rHrPtNC{tC2IPK zeFKqv;_K3Clh%Bp;zxy_Hq>c8wYmcZ38&LZpG3g(YUL^fYdmOJ-tbvEf~eGI;joP* zV#aMd#de(Xoh-8-fx2I;%ZzPdMh}P?+2!XU0r#W4w_~i#Uo-s=nYkLW@AKuG1ej4< ze{a+V?IuCHR}J?LpZfqfo80Lo$kR@<<HKY8%ow#Z>b@Cbp0m;zbq|Gj0!s>I<ZfWz z35|u-Q(csOdkm9r&@sg=<xE62#E(!93u!4kGGSJRnkL4dT7M}hw^yc~rwH;#efYF@ z2+Z-p@M`@*at_$_!18L00uLD3`?YAueg#5$-{mD;XPg;N2Nnj*D3A$<F)j>{5~Dy< z`4$EAKoiEfgT{AFz!=~4suoI^za{#gr6(nUYXhvEv=(n{%CFIFHN^4!8Hac-^|jKY z{7L9I|H80gx1nxjM6308gOVzav1%Mu3?KqsRtWRvB=(&VUe2^u@d}$Sjf5J$gfGD) zjXmEHvzeWaYhef!!{+JBC2Hpx2nJv@wc-3btaV33P&fk*E5Z*|MffeL73v!ZI1hU_ zj+^*kHS$yIb3vL1=Zh&*l#JNQR75-+f$;NIb`gT};o=b`OmbH!N_iC<pz5HZ<S*VU z-v-RRaAk@jn2>VC?<Hm%%7&T&Hn1P~kKih{TN@PbqaJLir~1_ScQda>B-}@RG9Z<E z7gHW-Hpz`u7V}DL9*IO%xmm$KPZbCj&E913^qHrk@UU$_E{=w+RO&T0s6OZ|A2&+1 z^ObrETqa6<!$xF@2_VWOn^$U?ic-X|HVI6RXcFa$SJEFf5>3;9OgRD}weRsV#Wc^_ zssgJ+x?=QMrug0tVN#0LrcdEF>F3>~)ywd;><%j4c%(C$uVh#(G1nPS)8ySr>kUs0 zpJzVk#WZ=A+ZzE8D5gniYgKtmyz;2R`8;q{Z%<mR?np(p785HXC^zOdfC?KFFK2qB zirV#d{?B(BEmj<LN3J8CFET1SPRbQO$9KSpjJMb4f^;&RpE8{#1VI9mIm>d!M<tk# z_c!oFsOUnK+#c((Mqav~ORGWf0Gt+M8q|5J=5or*pQlXQh|=a4FRHEAjK_TbgW$FA z_4svZdz0bKUNdNh7@JKa)*n@rA1k-hz}ON_S5f--<{4`+V^qdUL=mZl=L$vn54`~G zP3-a97z#`QT$!RMWI&m!FP?lT?3{<KL^o?qFY$*-3xWRwPA6ColOFMgNe9g^X(s?O zEI25`0&jV#$O;@Z!=z2<!@4{I6aF;FtH{x|W9`I5hOqqBsUK=#4d8tdimFRPDS^3M zxk2OO_TB70uk}pbPQMrf?`PYfc#HiS!w^sSr6BU#5>tOqwh09*!>GTwxgG^CO*k8b z4eC|I{dkqQw<N?(zr@W8+?FVQkHCHsu-D-HCRdjhLE(dVSdrEsHZAvU04zUhS#OzW z;w^XZe!TIA^Tm`YN|rKvQ9Nw9`GEwx1;~2A#UrZFa#PB-GE7=b9QAc>qUjj}%oMmX zMG;KM29-Y?`{Xuil6F4jBf$I39s}`gOR{-Weqyu7JMv{!h}ZD1Re!a`mP8{l-rO98 zkY%bjK6B$7au|?&d<i8`uD)xJcEE7N3qA4xhRtvlsvfAjcfgA*Lw%vIaW7C_;ZxIR zItMI>-5Q)L;lWJOIEMM1JG1J9ImWHQ{!*X&SdlZ}G2<G3Vdq&B50WH5wf<H}dd82Z z)h0;@<-+(U*?JU`k6hsQjDM(-3*Up&<ih(71Ck3z5ox(fFGUoP#~(Uq`Kk4_AH?=b zIGqbz*ai#Ru_E06#TyKy8RBIDEP^HKzDwad2Mi<Nw1v=TMR?`KQbkc`pFjkgbOb5- zAB<x*FiYUd6uGI_62<#E?6nBq1s4~VU~bs=0#qIjbq%T_@pWL{g~PrVJSnkU)s0~( z$xz0N`VZjUhrC2`aX?ewHyxvUL;azz={cZW2Ip6BnTirxd9a`}jp=6-#at`Kk$zTt z&O<k=@XUFNk~kBbr^>~*623L!TQUdPR(W#CYbS<o*19zDRoVrHPvEMQ65^Z2%O|9i zba8P}mmj>DVWh<TwpTrj79LJZ@!DQvTzAUYfYSwkF1Jqcg0sMm&;+z!D1I{-zB{DN z5G(o*O$L6a%q!5qUa$6<IDa;puT$S*j2F1yaO9iW-vfpN!|Ao^S{Of<75R(T=f|L@ zZ^;a>#3H+qwM$f!(-C|Xup@BVZ0IwcR|owG<46s(7E9HWK;&P7KF7omH;M?lkH&Ci zilQLCOdS$WK6-0@HLBJvTB%L?A8hyxkk5sSXCT<j6n~HDZS$AuH19FJEqY_=hMw|z zV>F7qDe?g$J+9D$kX(5%znDNtItTL$6|a7I)o@09y*>kx^=N{{#tjp^#xAe)x}yz> zmrj0ACH_t#VR*5{oq}Y-WMVOa5<joySfcJm{jvuDHXKf8J$+V$w_Yq&-QhoTE`|z5 zc)a>w1<Yc&GDU7mT%veohrI^DJK^HODpY^+oY@X9p||SP#wET6%sX&piXtenTouj0 zu?9ogL^Gh+eh2=P$Gl>rzVTd{HjhehsKu){*v73@^AKMLBc+BfB^MI>9)<zQmM>wE z8`Q;}@qIYMfi6^jYW>5)F}(pAfDQo$z_Co-*jvJnOE{mk4_!#dz*7<)IZw{xqB7}f z2?Q6c(3e<|rtn1WLVTtJS%QvgwTU#tkMs!S{0yf}KzCHkni6z^cUPgVwF{L1PE*Gx z^zUV2r@5h??aMv`l*N^(Wzvl?;|)pGL{U%i8_YbuKdhD)<(!RHm%m#2ABtrqByI4e z(I+{|n{pN^-fA=2u+;Ebo&nK*pT%p)m#Ec!!Td824IfAI*$biX5J>oLw6-o{!(W}u zw;@-;kW#Km;v(mIbqcy`1h`gdMOaN%D8|zIRg46T4kLUWE`*S|UNq;!lMqdrq7ty8 zGWEB3V4V&~P@ZKfRXi@rf?uB9Z3GYW1#bd=H(Z6*#k9`D%o{s){k#x1d7Ea7XU$LG zl-47m_GS_&nabL`P#r!KoBj-Eyn57q0;L0|<E0NQjCYoWFDMU`u-NHk3=fttCZU@= zOB8clt88Rqk1A@-1G!&o7!Y+@p^Vq6lD1e%ufp*_A_oJ)aUWtUSD*L9O98_XH~Du! z^aY$w0DZ#J5WN=Ws0ECQSL9Bw5>@lvCeL`u7+XB-TgW9)_>V!*TJ<>QsB^1uP6p9` zoTFY&tcal84T`t#F0Z2X!yp<|zma!s{nao&ZnA2y2p+y+G_%v2N#_eISDymC-3V*u z+s@}CdNLt3Ixi~COG$yY4xf(_y?E#Et5x*M1<`-H)0b9(*J52A5{XiLEw({TgQPF3 zNLpJ#lDr~X1dy&TM%0-OsYKKPh+3ldvnn3~EVRc|<;Q#;^AY!b0Q}2G+~ak8y*i8~ ztQ0IQLdJSo&qAOY0tsJsk1)Q-hv@58;H`sYJ+T21-==f4xBiDlYAl#m!bziY7Cc&e zqsjRI{EH?SNkAYHg-wOx$uCpii3bhC3Gtv|P++#p*&gH|KE7MvZ=e2$sCVvx_bJb; zz13aaAUH3W#aymE%i`@zX7RS4S=`-c7I*vWQJeFMEC+KMT(0gwHLA8<N7T@duMy&E z=f~$&qYdih;n*8ts9}8aQ|qUIlDf#^B?CyV)(wl7dddbv<CG0M7SOd0HxlC2b|siL z`0>#vX2841%2hw~<h-SWzxZtB84!Ktvn2H7oUP~%96h-=TUn@h^BGS7@)vI^lb^<Q z<Z!x<co8pDyqjycp^kS`T|k-RQ`0AE@^Y>%>Q(fUcP`Qq4AB2jatlGUShYO>BW}s6 zY?n`6tPY|#@q&}ATT~LV=4ZoN+h^UXGV#in2O(}%yem7|8ISiH{N1YdN;qqOBNIL# z;Q}9jSi%!bc$>;O86z<$Xl+wB!~5<6EXv=ewijZ7@Cr0)_|4j`?nkissn`kj&p&gv zsaK<x_1s~+p}1Y87Gr*#hD{;rb~O}!2Sd-Z(zmJA@Lzog40fB^1Me%Z;gXTt)UWV9 zx{^|7->&RS@q)WEWCGC*{w2@o=osbPId`bD0Gl*c;zYEJ_p`yMSv@e!vs9Wotwwr^ zQ=@*35htao)RT~X-IU{YPwA1O(xC<dHM~HQjX+9@7Yw9V2nHKi1Jb*qqYqWLG>;Ct z?bPY@G@z(P&wAq_H8}v%j`h$$(1W(4j?a+|0o6`Y@mQ+IrNOG=fz#_{r}Tt~NHY<U zTHVB+7MF$nLzUxZn$i=21JbDy!L@vFpr}S1Tssl$(blO5B>PE;AhHu!HxWpEbyW2# zgU1;}Mj~QBdYq%aAXqG-TpZCL6IsVRJXw1hB1;-}w^&AX0X@a_y^X{hAoNr}niLj^ z7klGGa6F18iQq(~npQ=4qE4%dV!=1Fp)E_Td165l&;shaOh?Q1;%NXoXq66XZ3!42 zb~84DU5Sapbw;-pkeID5Jm!A8b`~tp&ooAZo7jvonnK3*NNu+?yeuD!e9;+zHzB^6 z2Pm|Iv9AD??N~9|c%F6Al8S0{tmhSa=ZYZgctDCoW9$J*lBzTy-K$&Oa7T6x=0SJy z1TfeWPY|0_#8VxshOCY{`Mv#`8OWA;d%DSAXn8s`K>Oh*4GH&>);FFOCjX2?Cel!W zGXaz=q$Ce`RuxKUnBzx*-1BO{*_DCVMYnjKLNnPvt~2u$*=Y(JqRy$zMdKNm7^zk+ zHx6RUbFR;ZL^9to=7Tvw8K&gCidfH72Qy-3(GbBWn2WBgL!mA*nmP{4l(uF#6X2kS z8=+BNp`G6zXvTDbCLkOmXy1NPblHqb1Yq8ElGluieO;JtiOC}uE{dlPn;(7cjct1R zU!oB-wYdG|B~tgSx9$wnz~uXI$sr#;MyCXq>LwCUo=-BaBht(yv1l8Fu`9y^u(Y+6 z6?h=h;JXke2rJYq6QxFq6m24wH7TCRuE-$VWYZKG&>LM6-u*=2#VU8Y=?{ve6s9UQ zKw9i+ry{>IK~Q8^T<l#X3#(>vJRzPfURoDsH{Dl3w89Z^pHNc9axO&)x$!P2mTF|q z=pn^E^9&Q7<;xOQ+zQhSF<g!mNxjzn-xalux>s`Cah1eoDwM9gvwZ~u8ZajgSgcTc zsnT5K^=mvE>Jvy!OH(yNed?|~LkQ<7_Ng|KIv+ky5r!93V5`8i5U76m$OYw$PdAbl zksn3du^zb>OGuYL!%KvvQHri4*Z8ztm};l8(u-<T5{H-9R+cEX%oBwYpr~sZHd(?` zWYmQbdBRsz61YaEbfrfa@CeHV;>ByoR;jpAGPdhf3PwFOL(J9H#F?@p?s|jck%o94 z4=_1n1g=ep#bnhD2`QkQ8$G!uh3h;WO!y{`UQBg;LVj@X<`OhGNIzPD4GB@1*f;uU zCSVg39)UsIW)F(mumwyGS_7RAhV2&B4uzQj#D)q{idC1L6o<SWt$tD<+r(ES9nfu_ zA3e@?&yQ~CcFzwr@9_K~Sa>U#xoz!D!thu9i2<9!4`4Wz87rBdSy(h~YHWN#=D60a zGdtnl<I14Sv4y22R_3JWw1Uj31vAGKP0SoKbz*dSVd<o4?X$XO&MYXH(mwm&7z<{V zRs_%L+BvUt$F@@oi(<3dPArP)I86jqBOYHcHa1a9m|8eCbK<yhnN=io^7Q{NF)<OD zrI!^KASsD4RS~FDn?Qo*tY9XyYeKAOTxnsnXw1~SNn=VTwVQ-&wdgAyGj?i0UU774 z;ke5*w4`)uo=0AZP6uN}(dpw0rWcIQn>MCcgR(nj=M|RpEgCa%`j~0$#uZ~#5ud1; zIyE|OOlfqwrkNI<QJ{U$DK8O;;w_C8Pc5LLOlDr`^f4?q1jkG*oLGdI#>OU0D4-zF z3ag>f0%N6xQwvKkBSUfN^a`lLXi4exf-%#G8#|_?a9ke3g+&uJqxMgjIbH|H%^Wvr z%yg2%pvFauCKQqmMp-axTtPAOFAwq!EhsC*G_Is{JnuawHxsVYLnsVDpd^UWS6Eb7 zT8N}wUNAjxYGH}+lw4L)S}-lIVEXi^XaL3Yps>j@XvUl&Gs~xVOrcRDR#H$>Au~~~ zq$n&cn9jTx8F^wnT5rfjdMQXu6hKtKVw7gVghJ+Yw75hQ7R9C&Oh<m{!T_vl)&r6l zm*zt%Aq##~;GSb+g;Pu078c2}%uHlYUMVo>Tl4a!jV&o1Q;NdYfJ(u<yt4=7=4cf1 zuP_R4GFCf%pcEB=7(Ad9W8)xsnkM%W3vyi~h`+Q*^BX{{GDHi~#isqpylF`NOxQXA zumP|_5sl32m*<;@iG~V77hO(mJ?((h5RJuj)%I>*aIRMBF*}Gh4M6W+1!oa~4uDBE zz~21{&KH)t%MKCj0PJ0R;2cqEo?XKOdv_c-yBzhiUDE@5_YOEOJL*Ndfd}^P7I2O@ zYQ7!zz~21<&bN-*Wk)=)ciP|i$U>B&AT{yM?K`i9ptn#{Z|~&2ljRW;>g~;AY78-D zc!%H<WDwkS30ivmoCh3F2*KWY^h(tE9`)j6$Zk%xlR)jA4R?O=)h2k8NBxnVsEKz> zyOQif9`()DL5<Hn=u+^`O*@;C5*750KRdSu62ad2W#>pRF-q?kvU5u)k=i>)>@2R4 z2=-0{S5nYB)9dW>OMzLn;2M*IKh{W$(mP-4eBgrvp!QD6I@dU$-i9xrsH7m^-l11# zK21}Km|*YRs`H6om?40@L#j@Sa?knPvXfNMKCNbO<1TpZU}@0Z;cgVK`<VQjK3Qmh z_*@VwC<qmd8LHq8dfbQB{xrk6bR>zLw6`4G5$2@16YOf#lJR;+MV(XCV<y@*HAS?9 z?5?#CaDsMA0`b3VI{pWO?m0ns;P6M?y7qtw0Cv!=8T|WEcg^9q5K_SjNohgn)Rjpg zC(mxFdY<DlIv3G-r$e3J{nQie9r4t4Tk?uo>z&hdb|tIbyG*T02Esd#=^VCD2iX=# zmV2iyoecr?likPzdnYKJbx8o%_Q2k$Nar>iHC9@KFl2kj8l6{t(<j(Fo9MjhgQ?;I zyjS4QIaWjMc3-rcrbADu=EQmj51lU<#i@*0YVLBw^huKX@vHgnM0cZm_sq}icD3>M zlU;{&WcLpKIbR3VkDudplYx7u`JBJl*3|OA-ibZudpogZ;#Ob&oLv$1^NjgFxve_J zHS~_vIUm}}?d=x2bDP+<r>A#H&RLPH+;qE%7m;`B&G|Y>xxMU$9^5;+=KKu!Om|1D ze3TZ(GV_j?IWPNVmIAPM{LA^lLgCb-D1yDSS<aU>z>;$Wdxxf+51mA?cLvJ2mJNHd zC&WAH<h;w~N=lfTcn6s(Y2uwaa=x|E4Yc%xcqfLO&m8rmE*om%oeFYrzw=LaQ&Lw0 z*gL@EJQeX8py~j7M{%5YeY>Y2ct>iSAJ|5mLLmfuCu5vj{AQMV?_FgIGM<A3dnZ~F zl0&d}L?r=C+1~jRXI(_Oj~#J${o=kTb=DmjTwu3NvzyjBd-s_RuC#LNF0h-V&-vBH zMZ(%1$FDXDY_F!=c}Ly5?W{Tr+=;?&_pBK_7xpvJ?d4AUbAg))Mrmajsds3DrMXKQ z146xX8O~h40@CWe0~pRX)zz<%w;6^sbB7x<wnP%|T!iy`g+ACj0D=29PyxgY7>{?z z!MO)XuKC4J?u+hAc9Y0%_iT5v){!#3qYBPmYLnrWg?9$Qc>~Pnd`ael$KC$!q<HGQ zQv=Qe>_h!wg?Bu_xem1_rcHzqd0YFPd1&h|cjw18-Q(`S!~(4-+jhrp%C<JC6p!G@ zV6HQ3p4+^MNj#I|ZNhg>)bQG^8UTB{?VYb!HAH`!fwzU;X{Qzr)U}Z<uD8?O`Nx7) zON&dew>dqbA!d}`PITutg(ziQj=Qtp%+_&v>nP-H1yS|<I(mseTOu4sr+bL&W z9(9u4yPV71MvL6?tA4jryd3v-V>|cy*~x@>8?F=VIRdb^o7(x#Z&nEQ_C`CasIgxr z-u`CiGYfTG8d|2$+otSnNJifI&9}Gv*x7)R8sx5a-*zHUc~-m6cRgWuOm`o*eOvan z3OgUOz4BXdZ#%HFzdCBnSMH_~l&TuV$7gt;-|UHhNh5=(c8}YQ(>J;c--d-{y1fVL z0aGfp^S19gxA|#dF0a{OYU6r#YZ4`?y$!bs)GXPzJnD)Ce%u4gs9NlRvb_zgi6zL4 z^0uKmZ-=~&mtb$Nsq>g$WCVMgN}a7p{Q{(GmmZ7L7QBt1&KK1FWUuhO9iGm6egy1& ztxYDapIYpuCXW6|n=)}{c({rk_8<=&@37etkM_XFEYC0~q|^f+M+85bk<jRx?hAHj zszwrTlcEDo^m_g%#oKo1Y>%kp?!=#V&A<C6bm*Ht-{roz%Prr65!&NU(LAU2$X&a3 z#HRq>4#0$zGS9qid(M3o8bxnwp7R7uu`lfhgTgH_yH#yi%`SI=mdkqLZL{N)C}CLR z?V)r2WDg`JPHJycTqSC6J6okekhdo-VGzWe@iw3(<_y!~Z7Hi{Eq%9I@^kJBEA%0f z!6f&#b~*QPzTnqcZx5GqcLn3}HfuR+(Yy|_3%z3Uwp}^jvq6w9NXq?I6Y0m6T3{MN z_T%1mCudPI#$ss2PNE=MsJCCqIe_uN&$~9eneoAlw;L&;RptE1+iK)|##SKRGiq;> zP^EnEb^=ubd)s}S1-=Eaq`b{MmD)dVrw&KdW+=?|&)a?DtoN;eS?ukjNofC=3ErL< z=i#7dGX#4ZT%4yXfW18<&MM^m>FDn><5ul$>Tve5uRY?vgbLyA%6YPvb2&y7Q{$bc zw;RJbK?VIT#oKm~(2KG3yuB1G)C8mU_DeXGngz0WyC9q+@dBr@dix#X_AxbDG_jF9 zxDJ&!deE@aj$A1kFtD&NXUwpip#z6y<ym>>=3%7=OKJrZqSFiVilXBSuo?r7tn99u zsSEbP&zhB$m6e^iVm4shu+pq7E|8fep#kG^hK<1^r(?;?F~vDUhjq-exQY{<Ij%$t z>iYk+_byPDrFDJi9)_o&3<v@P7fU1v1JkKfukIdu#_8!kGn{@*msO1pByn@<oKsbY zIggriPE~gk?gW)(P!lz%hzZ~%DxxtiHRdVNl}Mu3OLV|Qv*Nujyt#LUm0*N`Tw*TF z{rz9x{`R-`KBxAso_6{qHEa5-{nb9-+53C^AHV-Aj@z9{v)ikkh%XM?@dyBHhXF_+ zaA%h42i3l>wt{yUb@qDARwr)mU#<81{gw<>TaDusSXWz4U7o}zo9*_fvn^kK9`CfA z0yG=lE~bs3(MGqvIXTgJWFMgEWJp)dhCieAdTp8Rb7(0I$<SQ9)0v!F-0$5J#p{z1 zJsG|ynT*x=jr6e=W}e}>27RMjs0TOW+G4!f>2+F@+IWIzu&1HF<V<88{Y#7S+0J%z zzc-OdZu2bHFKjL1DVOll{GjxWSf?dyf;znxFw;|5_%|#7+q&y6dIGv!0JJqmCw{$0 z|K!lxQ-yaf*uA#qciok|gbrhKN#A0((}Vff-p4arMu+ik$$9DQP3xm>zk?0Kb0AQ6 z_9j{q0mB9GJhk2IjXQ5x&;}4=2an7RuX4L4&5|_B(yU0cN|@wixZjJg69iP|<CyG$ zmH0tgeuHUK8;e$rS8i{w-j#hV+heP*$9NGds7FiwUVh+%2*>|QbJUh4WdQ!vJqy^f zL^sNkfaCEd_VeDg`g&{qe5)T#`g_}5AmF^yvv~I`i_D*I^_vfO?j-cMeW#dG;%{m8 z_Ay|Ur>iaF1dKbAxYrr%Om^%2XuJy}z{5D!poK~*lPQ$*DVu>H_*v&OMI(-ITIqZr z=Na=iV#Bt>g{@j0KWA1F(zO;^5<reu#;_~MEhpm`mMSLZ%PFHv152E|@1oEn;slv} zh%Y>$r@vG0ub*d<4Qf_)gVdIo>GYc8Nj%)H(<bTDVpbUHM8A18PF~V`6HvjNvksDp z!;j_1y7Tr4x!Cc+a1wX$R2%2@xVgERH6o_tB6w%Zh<w>;Io=v=b#}S~SudXroLOm{ zyVR|pyU+&-KZpP7pxl#HKBtXyXZJ40)Ugut?=@V2lP$%KLA!G`)|(z0?_FNRU+SA@ zaT{GN(N)E1uN~(V-0qIBgfwHij1`aMA||fg9q$dtx>+migw+u}QXTY$*ELzSns<si zTf=y_)7$He8W*~Y0ZZpIwFcq^I*sXE23;ir<3@r!L5$&s@#^D5s6?7NNzbx5ImzP6 zcs$%Lb!gWw#~Yh##3r^L27!yggd*K*{EC4nbC!q-S;g3Xiu+;X?L+P{{zRXtut4-W z?dGIu+q>-XU|KiC(vd0iFZ`v5t+x@Di>#yQAM}Zdf*#1Sl^veA7MZ1uYvHolyVATi zj#*Nnv(2Y7N@$mCeEJIn-BELgWaoZ&fPeX5L~)~iHG0&Sn=4LTZP`0+Oq+1n`>-aC zTYJ~4y)M|GaOs$&__4h8=5gNhSlpus!b@BGt%t#2Tf_aq#8&$V1D<8&K<T!;tvi!T z(@u92r-bBZKD9+0jZb}|f4Grv^l8U)UWB>=fwM)Ewh!$HIZ<mh&p6Jz$K&JJ;=$2u zfR|Q~*y{B*6W+~uygR(IH^kYegGKVrcDK`O(?t`G9C$+G|LwTd+-tVT(?ZBWIB`!^ zk!h8t`4QTdr00_Oz%t+YCud%}SL;2Upt1z1wuUFgCa@_Vj_9E`iQVpwhF6$1L_O$d zf%KlIx*?mTtkMyV;S^D;@DMJMKANkiddH5{WO}|COHgfRLvO;gy|L45N2YS7ziSCF zLE671-tG;X6TlLUb{(rgJOw9nZ#d`x7+GYQ$$QilM9+|SlOZ93gMfUb8Hg+%@hbe! z&Mut+4pt>rnkRmd;B%3b8XD7+T8={w9Ct>OwBkbW#d6H6lg1aWqyCaFFY|ZK)NDl0 zfsVsm|KZLxoZ0I*SwO#tfu?8bMpJxYI%mLsFGEL;`|YOka%EXeL9@#Sx!qsi03Rw^ zzm@!B_#oz?058%%<tS13ehfEr4eKi`k#8{2$om{KJQa~sibqE!MGcOiuqK?nEd3=_ z5yB=^64g$<Gao$AdTK#bO(21TStzvTP)j`m8D4GmI!$5)+haJa$`&sBYD-Ple}Nhe zXy?5hlr5NXP`$LfWeN<a%d9GROfL#q7nJRiO5rRoOgbc>4&e0}Ju)7Sz-2FbGQ*}2 zSrIQ7r*04T;eHxC$8{8Ogb~O-6q)d*KVY>r+E`g}8v?u&$MUH#<jRZj0OBU8goK5F zS+(D`Kc1+(M=azBn-o+VpU)yv&_e5dHa*}UQZ{1JGf#*JhEHH!z^DZXC$QsEm$6R_ zr}heduE6lHOmGd8jH5pDrOgv~ri*cZpBQws&48^Ou_H_dowkk5RaULMh4Be@LZ$q5 zdypsy1Mp7wP8~x71M3MkoP1nlGDwRU<AC5&nN=TFs*?o-e}kS+^n~7a%!)t62w-!% zEEQCJA^Z;4^IjUevCLbsz?;_ZNx$Y@FehhtO>7Z#2F21QujdvrPkP3A(EVPP^273n zWr<8jcnuT-{(WmW?7czkh5Lgs``NS22M;BXyKF<)%HZrjXfc^ij8U?ERYa3xY!;N8 zS$@GZ6R|oO<Db*?&wcdIar$SK{xO8Gw&rYNo)VBcY4wvlf#jRsfX(e3K0R5g?R7h? z&Xw+1Pq}!mC%`Ts-#Wg%L3nSyen61q`sMiS-X$QpdI)9+RCt54I4_&=KB5c|H$k8B znS)P*TD=B6RbqUs*Uw&V^_D>v7%Z)~ddJmF)BxbTy+`=*C54Qz=qrpHAc{e3W{ve( zQc-QuePRd#NtQ@E*hNf0A^Ebq9%qbg1h5RRqP#b;8-qI7I_)d}B}KdA3ds_K!hT3L zLUXhu?^E_+kE=DiK1&}y-+~y<JLEy|)yBGB-WNyP{mFK(xigN&9c;UHjAuar2L)VE z+z1rHiN?PSVVXoh%qhYE)ePzx^|_nOfV%8)b1dcrw$T!!BzT(M(i4rZqr}E!4n_e4 z$Q*QF<=IivUv@_KF62uit$O;|m!QfANC2dh&JL^v-8xPhge`mmJLeiGU^~8o$T1+l z6vyK>?mUn^cBvpJ9P3S!jzfNbj01k0Cu0Ol0MoMOVA9xP7za$k879PnYzArA{T=wq z^2Z$&ZOSC6h*Sn`j06ksq^XUby%F5`b9*<mica%dpv7$s`+Ln1Gq?(pPl(hLDg!zD ziVEptR`emlj5<8Qj-SejYVD7RyI#W%>u(Kv(e{-tR4dp!jBuCT`G6lWQ<GsAc(NC$ zN8iRi9eU<>v2A_73j@mhzGP;nxP5?D&{&<SCQw#OU<rI1g($M5!Y8ZjYp?0X#iq^b zAad%lwxn&$#d#$bokoePp^AZ(N#*zb0pbeVaBU&x?8MTkhL@D5RD$#p4|b|vbx$j{ zPo|&dMniXGMA&7sl(N(})q5S{un;FUp*?N0O`*JJ#0rjo8?wEbITuJSkK*&4Yhrd3 zgS(IeZ!z@spQ<Jo@Nq~-D<m?Xpnnp98b;~CevcGT?2EnO9(Y6xm{tzv7`4RuN_c^& zr^`#Smnu-{72ghhh%G(Kj6v#{XQ4H_Fk5fL-GDp*nc|YhRf(qMn}g0YTf5>#3C2Y* zTuK%zDa(e=J!DXiCc9mhkv$PF7`7!Ky}6KKf%qja@4+kX@*WcoqP8<smDa%)X3-Q= z-|uj~q$?Z-lBYynz;e;l<VaTi3;mUPy>-wxP2X+P8%^t23a_?h2|{;zFL~$2OLg(i zEqH6llkjkot)O!=Crmmp0TiDmpUJ9(!XRD-`GfYIEKRaI4&_XW4?;T+d?S`)p8a~X z)g3fPY>O&>%vs7kJ8h7MtTIS!bZ@X3<^^&UB8>ujUrc}SPp(EaD=5=NLL)JrJ=Q{z zB4f;|=;7Z;R%(-B<wy315D&-;YfDL60BEoH-m~PUfV;_Lj1&Y;o52+_P&A?3w>y&a zfUXyHz#M`iM{AX#VAgwa1e0BJgI(J|!{AOOZbI<d>s*DbU$`Ip(W5Eth0IDw$gl-v z3gHFN{!rDI=u_av2B*p5vsBZ)4!_Cs_#p5sz#^9@wMd+p<>y90sEI<yAs0Z}DDVR= z&;$*!#=8%7E%7TM#Z<RZF0MK2<a^dmVRFzvtNOsGQzt9@)mYGS%DbDGDM*XHUUd}& zS|#~Z<ikp2<f5<H<?kAe$gF=6H3d*J6zV3!Ag9>k=_BnDVnH{u&10+CMgkvtPM>V% zVQUq=VtVA4L<wHR;Ij>T4<t-{<LS{3<Tm`f1Xq1H_hO?!EC(b3Z?6t;3or)&isbO3 zv$&YVxir{8nS9om>y!M;@kTgga6tvZ5pWqmDfuGXD!>Tn64xxkZ3fQxY^K0OB%vzd zR0J|;@k#dpZDDWq1hOTkSlGXJhjaoiHc9;$cLW?M1UVEkITReC_j+iU3+2&2<smI0 z8smNZDH{cYmCmX-L_Z6Vd^TSt>~jk8I!=(+0&rHKKHW_rD^0od5`tj?RKk%dhZB@f z(%24$U5$V7CY%5wv7yq|xFfru!3|LEAoA{ZNQ<R!D~nvMipR-pK%JrgC_WIKf4B{A z5IMZ#2${I{08b0ne;8!87!uWxCl?CjLXR+e8|Sw+&Z`eqx_^_*Q!oy|gAVz`gw0o* z4$uLR4a5@iWX@6{Nvh?I<w-UGj`dt;Es;-c2RJyt0lvMYCa-ysMc@EHK{CWW0qFN8 zT|Ql;jliW$bUjsfmQ+ORZ#H!OGvX>cH_*YPmFHcTf<LY!yL7>K#k#r^ts&Xsk&H*i z?V*Mn$|km`9Ww6nDI#%<L@`*oC?}uA8Zrkh4#s?qlA=7o#CiLcr9S2tmTv@OYe2Pg z?9{M68Pwr=3A#a)Q>Yj7QXxVCTg{`yhoM%mL-e;uJBVB+LK1OVw2${eAX%{BZzloZ znsdGM3E3syQAJG0Vyi*%#Z^veRCS@!+$G^D1j(y|^ofb3El*%vp`hYzihLnzJ3^2! zwq3RLStFJK<XMO<#gz<uCbRn<rL7)r=_aQ7Tm`|zJc=~;eIGG6c}!T413h$x5a7>2 zNCR_sfddov%OUA^-Gy`Jk~s2xdMGkBZ0%2W7u^A_W+ASQvXnJzI7b{e0tenPc_S)t zb1|K|={34k6xc+LaKe4(1c|c@1^2U%;)4*Z3?p!v)t|9wL1W<8mnk7>-0ko6LK!!a zU@1;us>iH&;;{2u5=fWOK-w%3d}7IKgQq*$P@aQ67zPVCP^HS!_SH^*Z*t9jJQ+SG zivW(f_&fs(I|4n^;6?aUf})J~)O#cOW(rZgSx*YfG2qc}+ehAvU1Mc5y&OL(@mt_O zxD;bFQ#P^CJUJ@;3T+`-Uo6|499EH#5_1W73u$zXjc)xC)T<giyV8yn1m&%e>H{ka zdz9g%nAck3Sx260KqT@<z~^)b5mMN)RstIEgqBd<r;Xw}Rd}~nRqZ(^#XV#(<^WjY zs_l+4I#a$tQV86HZFOHT4k9sRf|-+Dl7*8A<Ye8{qtMq+9q9KZ7l$|a5%8$mVzOXR zW7hb=Hz(qF2`6}xqc#AKgBEize+)^Fd<_~8VXvF81widGMgGg)2mdyIbCGCi3}bu* z|2|225+>#V{zma5``y;V5cB|HKAK84p&QTffP(0RRf=ms5MDdpMmQ`-J_@2pAPvkf zBp(B^Blek`PT`yLvZoCRg0@uTG%p&m8triI;XVd_1Nc;DxvYq==I5W7Bl2L16*m5n zHHL5lpLE%iZZ1)uy|OsOjgmi+;umrQBnViEK}O)=4UZi-z{CB0^Gv*17v!EkP+d0k zV`7S_=qyu{d4l0t97Va&?h%PASjs=Hb~2sRiRFi^4WEFkLc=G^k_h#No3W6=Xej>L z70)-bNd~7WPMDJ)kuNQbIy>>WN&dcY2G?|8nkMCN#t=`82_>Guz>#D3QUNC3kepm3 z#UAck6K%fGSo1$ZA~IkYo_SZd#u1KYEwC0tkTAv8r8$8#iLKIRKy7cIjhbZf;7Iv) zcLxPKYKyG&Nya;&E%~M(xYm;_j=g?`78KP$*y)_!BSVrrTOL{aZ=OhKz)E>yd7WZp zfO}^mh9SCQiup`3Fff3}$$ZTSr(x4He4Mrsi(TloGGDI_nva*wI;PWpcJXE$Wkzr* zP;27QSbj+}M6qHDBVd&39C%f7jrA?K$D#X2W9&Mtn&HCiYHP}Oi0k0Zw!2q5?TF$# zd6%bguOg|}BLXD)viQp|0rAm{_nSDisf^r*i_`?x{xSTf#^l(b8!H#ao+W(LQ+gW* z=V1lq<X%Blsg9T%EW$Qwcd2X<1y8DJma}z$3(G?|0cIKmEuw<sv3Pk(kwK2=S6aw1 z*;j|MvVy;$EMk^nvYR_0$nKhW2yehR!YKfeHc{Yq4lUzPA7N9f`P-A{inhTTn+Hw# zX^iUxZ$3Dj+z;nPm@d?r%l1`u8Pn#5&fhMvFv5X($uj<C4t&d<KCm;l#%W7uu%iJ^ zrG2P4bsIUpi-*n;=eUskXly>h^2wQiIZkN&vcx#2_?N1l>`U=!PMEWc=%x`KXT9a@ z4Fi-~%MqMs+x&DzT6Iq+C}1c!GAR$^>f5!J7kNXp-HE0a3=44u$0wi|$WV#+ux*m0 z{BSlpNaz&9-aJV`%=76)ifx>Z3um}u%u>=n!fZQoIgF0L-Iyj?6wPa2cWRb3UAMA3 zp!v8IM%|9qdKyCfBw=WXRu%e!4BMXRiGAxR3uv9ZqlprkCubLMm?f^A7xYUUf7C?x z@FWI=Z?GpMp~P&KB=kJBn03x_jM61*7A13?OB{kpBpFgq(GCEZill{;=-|p8QUXsn z>e2vK$+yft0k*Fe0Btg-={H9YOU$E3<8NxuBf)3LfFk)dEoT{U*{G!+(%!os7VTJ? zigwHstpfp(?0qPwc+iE&DSl4<0)>y**NM$x57jG&gOko_g))7W73S&=`kxnKz_BFc zQ!IMV(bOK1Fq3>dWv3UeOt4uaPb?(;O|W-FDwF#b@*rcOJ0mc+#JmrJ;;cAKy4m8G zYsE3QFeG#4G|g(qacf!jF`3tL4NI4FHz)B9)4Uw}D6yGo7E*Xl$^+8AO=RmSZoIw3 zjo1GKvdD!FKb3QsCRvcmPL{bp<*MaLym)m%(ekio{kkOaj+PQ20$BFhamZcL0`=NR z79@9it3?bzP8X%V*_fpni^@dIL;O4bC!9-lPc#>XxIAjkirl&qew7K+I_aGGZX+|i zjVO_#Wc4CN7-RtD4QL2#@cA+Mt6QxWtR@rInHYtPRri87m7&y_33+)Z-XBt4AxWDO z`peGuj#XgoHyM#V9%c8N&$@FcHS4>kZpwlOcz#KN1OToy5m@8!bFQc$(dU#1pV<;6 zm71nL`<hW+Ix2HCX4eBc$q4RNNn5(uiIN@H;3{WZEFbG9+;cV2jggipo)9-rMF7#3 zSFbz?`5z%g7N^R^tq3i0sb;2x_hk{4b<2TIPw4hRG1gWi&kAzafqjBewp3vNVfeyc zJ$CO84Xh?nQ}~@500A<#zU-5#S2$-!Y+Y@72~#DaBlQ9|wfUKqbRP?X1!;@dTnZK7 z{0fk&2e`_?C@56HzCq>Bne$`!gq~a;o8;y~$_vga$tPn*4g}G9ExB81B0xqa%gRpT zDf0l+;4CMY#kZD!`PJ>wFiGfd0xQQcEH%z`>jy{}hum~v`++BHG5LY*67Kg1MODgC zUBUv@b%{lnDb`R+861*mdoh77tKXb(N-vLbf$}Nc^14CrO~5yc>E$Bl_4ZtqL#ipf zt#~<Fo^ipeEi^as3Kd>sCQU(0*sJECcr<fct){F}@*6s19(zRiEE^|nW}&U6m8IB0 z564<m@L|5(L~Ci6!a$}5y$xbdkW;aOMpm!)y9VJpNn<X;LLj{qnd5vrt6Fn3?J&ze zYVs5?krJ1;y8v{h0K%c<u>$%cS}9fZAa<vYu|SGYd4@J`LT;v2dFbR<dB89P>riMj z#9j$OO2YIldA4${T$4{qFQ^~qOdZ2(?6~66xoWl*S2$9XWqjcqIQds-n1HZc=PHz1 z#;WUoM`#|#%$old#MnL?OX13=9tET^tr4q4W-hW^gAD{Bm@XqsyVL5C^!ZxN*7Z7l z>wE(RX+RdXnssyFbWxJgAtrD%rt~KK3#CZFiyt-bG`|s}bL3gzkZVe#l4NOX;7^;f z4~@#@J!<040BilQg^0W)i|!H3Q?(oiXV#q@y(s3iGm?>U^+oJiT3zC~rb~(Pph@2) zA1--lwRWK!!=8j_C;ZDATykjOP9dhcv>6jLU=u4g+-vS2IxL1$1xNa*&&MHN0hQMd zr3$g)CFn1S&t(N-i)Qo4K(4T^iF5OOasd7b6)>N3j<;p*>N!2;AgjePuPY-ej*nTZ z)lo*HfJUYdT9}En>s0cbG9_)D3wok3XB}+Pei%-5cO>{oPaxzS8FwG<?jbil9}$uW z3*d!IoZ5ypt%92Z+i6OdF0lEoz~)PmLizo7!YN}1oEDWxJJu(sPAz|dckc2;k&2bQ zQek24Y*t4nK$r?$8S_0Et;(`2U)e)kLFHx!kmR*tenJ>1JwP(aQ;Zdo?HQFg<&oz_ z2U#K=L_@B9gblS^i_<TFgOIa9wZ(IZ*QEw>TN<^im)!}L)mQj?U&iW1k0v;qE?1BP z=D4PGrhLNUp_eYDiI?{XT*eo-&d{Nt0u_kBnj|hI2zfIm=YndqBq^yOFPVgOk+j9d z+|@9dZ2V=-kO~q!Cs>9!cX^PgB7@1Pu1$mHQ~p=$$VR|5G_P)t7%Xd}IH|7A5t!yO z<xyaG@o1VokAqD^f-3&!IDAxR98DJdv|*9c@!zmOv2pj1Oox1HZEal=2a{H^3_L)f zSxMNN%rbe*Iy8*!;#t@$b&RK(47U(yk`C5YbAle*IoYFxx6x75DV(3fM>+VdSPf-< zIvGC@Z^KO#rbSXD`l`N(lPU)<v^9T3?z;0<ZBbePw}&}za9wJkQqF5<!812rOlGFc zNQ!#P9#Rl9*x7Jt2uhAvj4a3_7op^Yb)3TvKz)+Dj!Z{7mY2G&0xwu?X?|}tjLXJP zA?Znihnxt3R^6yV6?F)bVC!Kz*NI&!$9>KK0~S`D-`t_|q|MZO%y?)7$uAKx`@^K) zuza5%D+1SEOTz@U&81W#_X^dsiuE_M<IQ{sONyodO@RVedN_GC-^f3Wl_drXtwRL$ z#PS?K9PqaOG(VnI-;c+Wf^KTxMKLR;RJ-cxj=7VkCdV}Fn=s^;HEK!l>>x*o_<0~_ zDsaE}RJbFV4+bV0Hw&o{f=LEYIV;gerxI=&gYZ@&UMWCIp2~R?xS}s2W6z7!8>H?j zt2bFu37wScc+i?8<Hjmv7`kU~Vt<hM{>BAp&s^S-ayh8?QQ1eYp!}l@*6Dca0|JGC zpkdp#>?4`4AcwG3f`u%-x29N{?N4V2=oH>iMhNm*2Za_nG)?g-vD*lrEj>E|FR(41 zT%Z`sEX@jY<suK<JA|>tk5q%6w|*X^W31Rcq{w_)CH@zb9|g9gtF6u+Cs`kEy{*&2 z1}3qIB}=cK=2WtH{bdcp5Vqk<sJWr>B1bsQCd;ctwHj~*AjMnci-gi9R1O`7xjX7i z_D2YzbfJD_w+DtJ%MSz;&IBmXx@`}9gP_Jv!KJ{$Xs<IG4cUQ@6zVxq5))D?;%xqY zB)+Ff)UYX`WbJK@fMRmkN{15E>2EOGh_Mni*_``1;PMA9T)OY{1>}0)--;Uu&Udv_ ztM3}DAT6JG*Lbi?fu)G7Q7KCil{T=tatEAY95ogE4C9!OWY{Sft>lF!jFz?|V9jkU z!{=m*ViQ^^`;%`_lh?*J%%woHFp>K5@i9!)tqGaTu=n8=JV3ono)SI^<g1DJ55n_s zK0MEkXd5+-!PExLzKBlA6y;j9D%uM6I4k^S3?DpR8mdQUwdhc9!3#6X->=vlMx}99 z-9l)71Mz$&RX!~@Kgech7pn!wOW$e@RYu(~>Asv~h2(ey(@l<5g<X<nm#HUQgSFl< zS0SBd2baT|yZ8w2EU~=e<Cil@*bQ1Xe%2&apB9GrKuL+o!4Vym_P`ud`cm=H$@s;x zww0qQ97Vs!yp-iEo^xWmw|=k*a@p_nIVt)f->ei-V6_kgd3(~O6A8CV<kcauK~q}n zX@sFq%tC0om5v9dSYSLadl_`1oYKJf8ilBd0I9MMS}HYJ$paHd$G{}^#6$<^NDGO9 zM_{4?3GV|EPDy2&dx4~zGuV5VD>HWluELL#iaEr<l_FB}7~o~dW(L8k=x5c)`dL+W zyGBev%CI@WWQ>uI&p<+(Sxek)9xl~+sfe3WavlmeJHfb6L2M>XTpt~buZ&yGftjJ_ zMFz5<D3l@D-X;wZ)32pJg&d`ATu3;<4lR6~;nl<YcBO&PXTfMP2{dJpvV_E}jI7_i zY0!NHC9I(Lvh%?d1#A}YPn0e?lA=G;1CmTzeFs@)JKCd1aT^f`-u&kz%kh+?TGeK@ zf-+Bu=T7=nwexHJhW<ECQ!7@_48%=xfX~aZa*2H)dPAj?wVJb+BOEZzX&)s*pzm7! zJmus*W5K8_5n<uV>bPscY8DRmdZ?mAl@N)j`$-1oW`Qh&&*9RRZoUzeE6JZN;I1sA zNBt3A0<L?GEpzAU=U~W#LC*LwBBqh|b^~6ljdS>&lHh`-Qf_h7l{4Asp|QqQZ=S_% zbcJMFbs&_}1hiQ+oxzc*Bc$vwIk#h9Wn9iH>TaBqm_<FAzC`<4@>46OwF=6j_f)Qe zQwPs*(e|mOy1p~V`cDO|!?_mO8HcN)r{SZN0KjIdq1N3QxT=xmm76M@^8}?LGv{B= z2VW|<31iID(O9gy1BFHQNGxLo>M{^V!kS#JeiG|_dnzt{_jvtNVwRaAN@T644hYac z1qNvzix2@dP=~xfBL-%_AqOhR-jq{=I(rid8nXhrs~Q>-*K?A1%W@zP8=y#((#^nD zN+4z)VV*XY58Qzr!COroyD3(Qq*i8y30<kKX|X+za1OUc*s@24qR!R5;Q-0akw28` zMq=Ly<jx)-6xvKc*fz8!&QIn9Jr9zX$2@{iou)bEr=Ijk%deY20>SLv+!l7vOQpK7 zwL*!6$W@M_eNoJ{56f^)jgXBbFYryqyu=X!EMa$e#XOjfsPFNVfm^{Io;p9OQ9>xz z9FvF1c(xhuqwLeD1w@v1X9fOeDm;*|fjWR8uO^rs(t5hHjkMB;^XEege26d>WU(G{ zQB;R|^It{BhVV8gMjm#R=h~*JQiy`KR+(*zAEm?&Oo+>J1Oqmt06QeVS>ml?oNQh( z)oMlndpgNQ!eyq|ar$-QD4a8z#c>~F$rJLbA%!^(t$Bl2l)Z)7R?ptClw|K1ZtDUc zjZmzK@d#>>!Ix#X3&6=%q)|^A{#7hA&c<0FQ3{DU0%LZ5FtBHWgn)6d=P2x;@(V|= z%@6sIU1f3?5yiZ)r@+5z&_PUI7rFe23S(j{bvs-iz!{<#uHjCu&kY8NAX{|?2S~(8 zzS|(|f#71v%5RjNit8)XG8QT*_&2X$kPZLb)*Swmp*Z18z$3|CGiXscI=>8G*>jA5 zVag8%t2=p9z@X9c?CW{PV^9p}4FFNdFagzrGS@P6K?(!}TT}{PTQP^OFv0gyj{;9A z%tp42fiz?^0Y&kw!{y(DiR5;7gqUnlN%A9+?>GuYktFB`dFD2H#dv414|!#4e<#9r z8>3#Wd}Y~(PmZ!z>)a(huOJGnj#w5D6_13fq-p|2OLVkMK6KA9n9RUz3PwH(H2{}= zuWG;q3xNo>+3W3tx;QGdFUA%UY-N_+Ym_lZvufgz2KoYm3)rw;ZS~w+8p?yjL|mJ} zB`_#EZz$~Cr;=?W=(wZTYBYV>L1a@|qA~xZnHZL-^c8rN^TEa*qWhdG9nAex+<Al8 zL+26MzlppVn%Yx1>`A9}5cqix?>||p<=ERPH<>@HutYTod#=|H)-T6oV7E+7N1#Ah zM3=WH<5U$aSL!WTI#0Gxu>|I-LA&F0qggn<&&7p9gXvrqKO2y5U`*s$NdQ;AOI7NX z%Q)CTY_iE&XakZ(6<g#gpn`PrZPj55tQb8lIYV_JUA-M1T)pmi(m*baWGTHARNk({ z3BO)&zhw#cMh|vN8JA!oCA9y5AQ+qTHL+mq)Uuo)+>Y}P8H|2}^WcTc@~+5tH1k9W ztVQ*;bQvN%o>`RP#!qwrnn9k^{DgA?RtQ){HD-|dd`AIHdBw7f>BQcU%8W{|nE+Mn zGQ77xxxy~JM?HdIpO?DPqYh!3MnPtw9A4Tns^P+(;zl`M|9X-h*rF-^6{o3gg(EDl zzgxd}1}Y-{DYRM2&g4l~TnoxL&mBpn7dR0Ob1~=bdpMJfXYdKlEF>dcXOoJb-S(b{ zf=758NXAE=S*>g|Pv?l;$aH7A`n!U1ci^+vLAs-Z?UX;4<IDL8NO(XX<f$465@CKM z+6Nk1$j1l-aJ9~T(;g!VbO!hcyC<KE>}L710rR+?@}sjEWgCT6b+|fWd$_;V>u4bV zK3Tx{cpz^s<LV&L!%=gmgL)t*>KFPeTK@^wlkT_;&;WNA%LFODo#Z3KJF-kmAFiN` zYEW{R|NfMy&#kLh5#t*QJ{+niJL?W-SH-Qh+Ff_SR?=-LBjWq?2B|YOYNEWLMEYsJ z;{z7|H-AoD5YR4dQaKdy7@QNCgGn31I$KH`q5DIKw%nNI8Ky<&sgWZ=LW&`Tg3N+` z*oUE6P-MKgFytPoEhk}Oxa3uWQfTtSop+{>;}kQ9)JLFj7Wd)1lV1%yPYAB2sku=o zESHlY$|L0mr<8F~P|jDJ&#a`=0~0+<-lVb{fk>=X#41Z{<`K$#)l7g;c%YJsqwzSJ z*^Dw3)|O7VY%H|W-fI<U5qbC<whg4zqTGu#E@jK}rc91MOV-(v!pOo*7#P6g$&gcC z`Jb#j*%pK94;H3MGJ7{UXS;OMn7N8<#W`1zE4HM*!JI<^;b4n2s5eDdZPgRsYc6&i z<e({ZP7>h6f8m?i=73GcegmOsT5)j@K?~q^EJ-nGWX_3Daj;e9_5$Mh^L;4v8oO@# z>48KuFCGP1Bn_{Q0>UYRu*8)y;oLeNq0T9m#H&I?6)K905Q)nzU`_U-4NDN^BXng5 zQ%cufBL~IH`+GeEZ=$58*uCaUzDef-n-ihUPeF79=q=9%DzR?>HY%E<49@FA{Nvzz z@Qc@=fXU*1&+-OUSK<IVCEgTAcyY!q$+jw017QK%?!sMg=%l>`=16$-&dvx4hZ*NV zVD~906(w0?@4D-t*+XQK04kNVwzPj~*4rL-jzbtm#QPpLV|Ko$(q#nf;F;gH4_T2w zCH9Xc#!z0GCr?VG%mQ#<-=J(6h>+_JQCb-$aWYpW0mVl~zy6GzjFY!0E(j(5!-=Rm zMTux7Mb<K*jOvNr8dI2Is{<!I%;#XA#q~MjkY+#N_ev(MAd@xxA3~3PO{Q6Czj}sZ zKs{oaohq3Irjzm~#GLxX8^SpVIqZ(8pHPe>EvR^JT<8o4<r6#}%8XgF;=M>i1n5sn zHl4PnYP5j*LV`G;KLsqY9^kvQ$?2aLAq<i<nQTu=l^OhIE?Q;LeGJ6g#2dmR!$~d$ z$glZkFp=p?>xZTakW%Ya#Ndc|OU_k(D`p*y$dkz24?{;G+qfI3{jF$n+3AA`l!J6H zicd|-$F`y(Lb*E;$PddE>_Gfj{_)Mn2rBS3s}REOMF2g$984%+$KKJ!_I%<8E;gg$ zdpgyc!$XKrW%$L|)skTWM1+!DFA36<K|nBZBe+SiEaK?J4R<wICXvHswlkHo?AG!K zxo$Ddlp&O?>~Ptm;bZjq+e)A(q%yPgNaln~WLbgpdm@+wfXV$?&wApcX?`B+HClS2 zC@G1a05Wm83UJpae4@4%;&`?}46dx#&3DTA_RNXeCPW{#UxwRB_OKvRdXi+EAb27( zX($iT<RAtvt*Y90efrSsjz|{wO@?OPF@-GkH<mBvNc{8x8u2Z~E<Qtbgwm<GfX+ha zi|8y%zGO@_6u!}**&{)Hisl!Qr;Vw7K3GN(&n`mqri_%5aKOn3K1fJh&=wY$827?R zPg0&(5H04FCj2f~*5SNO=#m_pvI$>oS`DXMmzRasM&?)ydd9jXlW0#L2^^|?kQ#Ca z#R`X?$YT@Lf?;4|J3y)-F2W@YZH`29lgv+(cz&Og(O2m=2<n<P=@8*@{wB=ZHlml$ z5$!4pS6dg1IkfheTLk!HUR=tVC6pYa+|#_nW=EUBNSLvK1;#QUQlv078%X#NZMS+u zja&4N)%80hfcwn#A~)X~CdISJWhSSd!n&!_1S1Obb<o5ip#pi-EU|}_g2|Zgh`mNl zAjG=cciy~HoMXuBwK?qVQ({GyXecU5bH_+k4N+N2i>ld@+t`~3xR+c?Oufs`4Dz~x z^TmE4Z-I6wvm7Unp?64S)T9KV`fc;FyIf?r@5?l;g5!361;@E^mXS%hjxN?z{AM!j zZ&lo?8iGXIQ;D0Owli_gn3qkN81oG5-0DkUT>O^7mHxWgtmf)<^_>zpr?UTugDOk= zK%4ipkHiJibBYzGY~fi6A_ci$<YELCJeSF8?`yVQ7)`Epk=v3xDN}DeA>>PRWH@aN z`jnA@Lc+GU5!kj%=9S^74-1|lIP9Ki>M-0`uA8@`$QCK=7$J>A)+pmim>1bFInE$K zz>2I5lKtY{di(u>m%5>3zCBGIM53|POVyO6<ij*eWP-?8N(7uMiHgm_CQ!`_5#fr1 zdaMpzaS+@@6GF(o#(tgZb;&aaxUSRRBg=3lV|Xo{f<a_1Hmq2TBxB^}@I=SH1?w4O zJCep*pEXxkKyK)S>_AGy!y?s9yfYf^?;+SmKI({Uv8!q(`Lge%YF4Ou**mM8%ns5! zC35C6#g$gpnL1cHkK)rXQuN_q&zXjxy_c5zm$B}t#8u_}-k%H}0Gf*!fNMzgT=593 zNmh-zljbZ~=%!9p#a=tke>?YdmXRJ(T0K12xULAfwz$))+%@q{Nkg&1;9T$(Tx@)) z8ImR0uYjD;eNRTRd#|L#**H4h>$STFlFY$FQ3CO57T?Y(s|f@X30fw@BjTu3tX?u3 zAa8~F^p`!c788&t(rhE7B&?L0Ycz3XVca4XlVD_tPpuf2D9@7NIf4bvqb8#Z+~5!d zNU2Q1@z0urb;*w|9%vO<_({wV6=V#sU)Z&{qUv0UkZ^KJDKs21gh|P-mAFVA!V~29 z;TW^a999K+1{NvdZqEEsfk`^7f^rS9zY&KcKs9RiphB_vihH(+X<cbIuSvXuA+B>` zb0v2Y$%kCH3aD5qw$?NgIh^M^yYyF*iq;?i?M!yX{9R1>Q;cnfV$BgEoRG`qk+1Fd zG(@k+fa0enQpZv3Nm8ysp5vwHkcCB5?+gTKm4pl8WITjw2Gzhg1iw=1BbO;BWEC?! z;&i334d!HPv$05E{Mbv}1L;w$MXAl=A`+@8XRdH9osqKK->DH;Lya<I+ib8`rgD4= zzY2mZvcM8c0tw7@9ik;l)DuEB3eeLQm1*0IcRL(%Rer9V|2#8VQ3Q&KgTbH_Q&LY( zQ@N8tEbBnX5DrIm?|cjC^Ca=25IjGT2Q0+05poi`XxcM8V6)w3t;&C63TmXJ^wr(u zW3H=*7(#u5IiU=?62jHOP<Qri>5NXfaK3w@M?GKuq#m`*N!i1W<JX5nsd(gKKP_=( zTO5cUa%~}Eei3;?uwoksaY6-wv{&szuqvN}+mqH1kOwfoFwI|wp~WwXVlkS%z1=4K zC=OB4O$JK<T86A7J6HKrN>LH26!AF~fP~7g2bMvv)*hr}O5ew#82P}F6A?X>ce)D_ zfy0Lvylt{O8eU<r+|KHWR0$rYd*sdJdnvMWSIO8_k<iU+*wK>e1)T9oOc&*CK^TdM z0wq#@ow1Z(R0oP{YLS$Z8ZPBZl4~VU8OSelpX%aTv}E8G&>%Skr)qj1DXf~Dg=(40 z#Lky2(eAie6{L7fJ5AlOQ|XBEIjc{b>*>mBl-Fk+DJlDhGi>C`s=(J!41u5m90tmy zT16Ofe#QR51Ca|1MGZg|;{SUx7Ssbem^%wad@T@3IJKkXJr?1V=hta<-helC_7;`6 zKt|QIs{zWMP+Iap;(*t+(7M;48I~AVS<GaDYq>0`aiP0Zh|96`w+31XbePlIRofs; z+mVzVdA=F0n)LTj^OMH%cfd`J$SyT?f;ig^|Kke&f<<Mx7>Da8=}qTHh2oqV>WKtx zx8BFA<wG?9353Zb889b)mCbboaT%xP5)%AEez20Z6-2E|I6=|)+IZ3t2as}EDiV$1 z2=9>;J0o&j6l9cO$3ECDltaNT@%99RNF`Z1b%GF#6$&4=v@CbH-;f-x681u<5Ie7t zsl|r9GgV;6btA(Z#0@40i9ug7AQiep3m8Hrd?p=AAGH~ex;wiQH|F&CVwNw$@Zxe} zBA2W_VCQx#I8y;bEO3RxR=Y?<)`T!A4SpE!0!@H1KqyZnX{1q@V!w}KGs+anSYZ#G zPW_6#%Bic<a1_bA5XB@NpL6oSAX7ju{gc_&kQvL_g0iw+xWrX!8)=}127*?STwJ^! z$F-9B;7Jl`MT*ocQjN(uN);wRL=O*!R|YX_+um-<lYOc=wI^T3hw>;ig){tUu)l1x zCp9L)+Y6)wh_FU}IWQBev>&R`j2yso;FKkctF)%jLP0aLnQU90Yqx17X)7j<8{}yS zLy1%hVAJj7z(xjnj1(BQY9d)lzFCv&1?E)d!k6%$a_VvMpAf>Gs7~Up)UeFvER@0b z0u*Bg3=d;S0>jS>M(Z#!OnSzkAebyG3A)^g{JWS}Og58gia#q%RG6<6a%A??=yyFx zu&iw1a7gpRslq;%iOq7RRB}O^W$9>1)+|0p`3fdE@tBH=&9Z1N{mHZystu(|iziBi zh-P?qJ3g&movKcIx(>+f6a@#hFcSqQp}Nbk`PV7xI3z1zU7a1Ea~YwW0S7$Dyqt{M zlAp|t_D0+u50S29(C#rVMzW-roQR=A;b|%fV51}x8m5~M=%S<QnIi=7nB7~uW4K~- z;dMvL4wuqIH{=kA>ZE<wUHQ<(Y?<TFDE&zeP0v27n-PN+eQ8EHBsrYMB-l|YIZ=+> zvD7^)(4P+tB=k#io_hjKS%Q`1MDo3q^Msp<6{Z-+fvJ3_KY>ME6^|pxIJKIW_<{ES zn<$7&X0Eo1=*#Blnv0@ubh}#~HBV;tDBj?gSo1uM00iWEy)qo>mzSM+bM9dzTr5^| zM5jn{u}IQ`Bxy9LQ*}$32+AqlKh&G447T&!f(+k<u%~+?h#0Re!N*H*e~>S_)%NC` zShH$1<rG}tKyZ$NS`}reeh5&n0ia$LiK2q6<9u8-ork$_&I`LPQdCF>k$qW~Y>*oy zi-qeHZH+`mx@}93(;D{onj<7F=7cdxi7bigPs6rHFk%%{%mq9gZI6aPO_}qDc)^1d zk>Y@fLJ2{m<Ske}%Yv(o1EwqvBA8($|JNB#xW^6lAB2?y)+8>3Mp>rerV_YxENkA( zb&4C8ZB--$u6VJ{bHr{EG&P115)n+S*Ub$j7bzD>QFp+p*pM$!(VV<sI-%ncBm_Uw z@u<VF*DxKC89sI}Y9b)6=>__bK17mfgDOTzflo?nXSVMd<1sGL-{KOMvX9G>b^{@N zJr83PnQB`R`_gk@PrK9VQs5tl;8pu}BsUZ14mpE?*tLX`XMUN*kf=UYqYti&%|`@S z0!JWtA|(-Rly+x(f%rI=;)*BDo%B_;HE`DYJ|&dJ{$ySsZx1M7B2h~{e~qOq@65sM z71RYc+8>Qzet?OForr2wzC-ewTfVFE-a)o)C4pV;Q!eUL2H-&+4qXf@n6yBtb(~Mi z9PvUTSZbWz8}_=bYl0wN7u9Q~DJ}!Ri4ihomKz>)Mz8~1;qvMbL7RweBkLs_{5soO zrhqtjLLDkA>;&2)F`MC^45rjcWzh}G1cxkhgHETd^A?fYWM^D46&y}E*_S~CHLwvT z2j8!Q-OV|Ep$F)I!5;}{kcv4TIJXv7K~4`u{$U6pk>$k(PG;+7PWPWpug#p;o0fck zza@%gO63>v{4eYXlx3w@OPrfLLz6A92Wg|Ls2=AutQ$3q60F-_#p-*WopH=_(45i$ z0l>*;IBZiEy+>2!U!q+y-)-*?T9Rxgt^KKoxtRB$aUy#+QTg;{bneh7#0ML<L}_s9 z=Iv3l<%LCKlFF_^5aZ0^1-}i%6?}yy0G4u=Qc8(j-VQ80E;xW3t?!){k)jo5t*I^r zvzjGrf*><T>|sszgX$5D;W)m(KiTdzca+=}X^u%&ECSf9koFu+%&J+>)xEi#Q;?LI zNvcBd*58X$S<5LFhl!FRb6z+{*(1Sz*p&VjiAL{lTwpK>YvEYHq0TIk37lu)A-*>| zbIS<*?e6wAmlJPycTl{nwumo8vPUZZtU7jXU~-DzrHqf1Pi$w8g6nWVqj-JPsR*B| zi5P$(^6XQw5E2;q49}MQ<k8(+9oPJmSx*6wW&vBAm^;NmpvXTUhK88$9zcJ|u_W<# z&U6kCR{=QKC8|l;O=PYy><*{unkUAyDO}^fJoX#JSf|!Hu`_dk`F3YC!cKYM!8a|O zdHw5awT0DVtH%}>mKJNrYm2qTg**F`{XysMoz9>$>b7v%9JO}uzItNq&b5_=J9ifD z1oC$`D%taA@7zY@YwO`V!Q&?#<bN9BuRstr2}RZt;Kgv0$_Y_RD>@zWUHC+!;w4Hq z3?{H#A>V$h3#F&K-PN>iqO2AdK%jl*A4;IwZX>mNfxB=0?B!OEQZ&F@7fv0mo^uOE zc*pi0>Qg|hl-j-im}Pvb0Ukn@@~}h-y~2!-qHV5lTTR)7j0A57k%xF3VkDkeG}X|L zx*IC|7}{&bQnJm!6%bSCt=9~Rn80R|-K&awinJo>Ek$x7A}6|nwFd!&ksIjSIFoMx zCoTt8f#y>7C?c_XgVQ!b+^j+D7X@UvJu~&tI=sY5(byUzfkumw&tQAxP#BK4_7ol% z0oXt^`;(+iaR54|`1}t>{PUl+eL~yYen|Sme;<FB^gQRUrrVe6wY7KXwY8`8+S(1h zwsxY|)_y>*Kd9}`2krl^*B{gN_q6?Y+I~*k&ujaHw$Z!gxnHjBE3`eX?FntqXnR)M zSlhR1`-9s4khVXj?PJ>hvbG=5_V={?ciKLoZS>vpJkQnkdD^~2+m~v)tnG@n-=yum z+Md_;g0?%_?rQs;+P+KMAJg_RZGTzYk7zsi9(gWnzgw@rN86v&_Cwl!$6u5Ct^I&r ze^A?hqU}G`_K$-0zw7n?r|ld5x{PP-H|zC=w!NUeqSsfo{Z4J)rR^VS`(Lzu`S;2A zuh8~&-!Ip9X#1D7eTTO1589v8Yis{RufL$}-9I4X-J|U&Xn#Vlt^H%Yw)RVU{bg;x z;cv)zuhsU=+P+2G?+x1b>$SE2P_M21s9sz9CB6Q#wy%DVe4n)s>9w^jy>4s!SG0Yn zwtrXKpVju)gZAI*wYC32udV&8UjJ8ZTS|}G+Wz4W%k%wT+CHIe^j_(|J!pSkudV$T zdTs6R==HzR_NRVC#`&<ezZJB9`F-;DcWC?Gp#6kiTl?cbD);|{w!adzpVDh<zo6IF zzW8s-=f6hVnzl>Yt_ST$^xE40q}SGd``?oBzC+vh2kp=3wYC3PudV%rUR(P`y|(tb z@0anPr|lPm_LU!yzgzo`56ZQ*@6~H-Kcd&x{;pnI`zLz+1#MsOV=|t#-=x>pUexOc zwcQQcU(@T4YWvxseL}CJ$K-qN3)+i%{h+pQ*7hyhPJ(vhZ%6!N?Y>?gX#1c4j{M!) z|EAY}s_lz@T>ftDFX^?lzopmK{-1hn?f<LSU)1*2pOEpMuI=-+y-nNYpgpbE*8ZSg z|B$vn7qq{j*Vf+ulk$DmzD2LC-PLPr|CwI@inh=BkbK_Sm+19Nwf)ARZRoYN->TOS zX*&wqcj~pZ->28seps)q{Vlz=_EUOo?bCirp4ZxY_1fC!eOUf(?Hzh;?Pa~TcA(eR z{=8mW`zv~F?I-kFzU8q0-WuH!op@UI?pvd$MVE8?Z;d9o{ZEhHm)rl0=-pqDH~urD zg;(eGKP!6nJM#LU9W6eZ*Z-X8@!bBeh!)<NcmH#vmwrcH|MQ~7-2ShOe&9Rv?*FRj zvE2UWN0)y(@BZ7Ox90Z0AbLk`{|loJ|6JZUUmZRBqj~)=iXQ*iLgo**MlX&&ncM$0 z(Wi3zUlM&LxBsP4^xJvkzbuL#&+ETETFC8xdFC0Z<JRaE1^xd^LH{cY`oFfIf1#lN z>oWbfpy%n)XP*fF@H}+f5@qKNGl0|bRng<YexNs{{@dP_9_g6&zcuJTi~d`p+oQ#g zFYpKGIp}8-|KF0cj&DaljsI9M&Uf+s+5JF-HSfLt5#N7X)Yg4y-}?#fzdfo2&+~_R ze<!&A3);UO^xujB={f%{Js5r((nQPJ|9S0yvG&vV=RM~G_`@yH3!|rhRBzPgP28Vd z7y5JFI8FM3D0}WEJkHCaX9xTC+qM5T?SD3X96ul6{_J`Aklz2&V4Pn>e-ynaa~^+9 z`@{45yF5<z+<hATuflvz9;5N1=ntfcTA;twZyN7&wf}px-!x6@f6J|Mze%8WGDq5P znyU4meY)Il8nE?$m-ai&SHJgLo+0;}Mq&5ATl-D3wEkb!e$x;h;dzOohn^|pn56T3 z9sh^5-!u{%=U-{RNtU<k{m*}vjAIhuo!b9gEGW&JX)a%-{TH;~Bzzm^XSClWd80Ug zr2VGR)pVS%evXW9n&*P{|0nGa*X5srU)~nIEDHC}KSw`3ry(S^j-S;2@Oi!-H_-j2 zN%Zu4KcM}lvD^Fpw)PvM^EG<^=d|B6gV$*P10aYrzG;*z+J8m+O=D99EE;~L+#jyj zOYV-M1-x&_M;_DrP1CgJ{4eN#0cObfDYhT~d`a&&jluTAYw<yP&T!wpP5VvLeu0kj z!{~pZ{_Z!wtoIv2gK6QP@5P3s@lA5Hee!YbHw_RU=bx9{Cife%VdHeP-w-l;hWBc} zNsh+(eoy;Nf_3BLMd*1<ld}EU*M37x?$qbGj4!h9(k^aB=%jH>gRtlPCGCIj2jy<t z51;3Le+2pcwy(|~|J%?{;~PR@<6O~xL*|xs$UoJ7ljv=p?*pB9A;vKz^Y@i*ti34z zdmlwVeXk*fwog8y{ieZwn~wAAU`%wsX^b|{ufqYMev`oQasC-=ziGbqoWG&{hVU4D z_>}gC^Ki>cWPH=W@%sGpv)XUSo6XOoU==){KOpzLPVfIo^yjVbKhgUQL9}^zCXOPF zW60g2j&ni#4H32bx3u4oTI>Ii_M3)l^Y&l0Kb(gbVxs7KO(T4he(#p{8!}`P;rq4U z5P@TQ{~v4rgO5pv?b}!4!DxKbTyY!!{H*qebo&$9Z-}YA*GnL((l~~Uy<W$;g#NsF z{!zW(G+&#Ck88gnwl@AN@q#pdxIh0Q`t!#B8NEN`r+=vZh6tY2=X~B}8Yio#JOhM< zzSod>d!AM8H_iOKj&nN*3*B!B!G`vKQ2PyOviJSB+8?gV(-&kMLnds!?$>_Pknhm( z-=qD87~B1y)c)u(x$!<}q7z>y<A?j|-P&&!3Og^qp#6rl+CKSx?GNRp&uPCQ9YzNl zuafUIgw>vNp#9;xyhr;D;kWt!wDy}N!N&Q>*XQqt-$g&IOUTFnRQnCVu=o1LSIhmO z+_<Ivh7j8QAJTq9UTsgl<Il-BW+Afv@7MnDegD4QuL%1$>w5h)FammhLsIV1{x4|1 zSww7p*1tjS59#5nUYkEZYv`x(!~O7G+HZ)p?c0B;{o#54lJ*;NX7_JmBhmPw9P+64 zn*{`~&p*GZ{f5M0nfT{+Y<L>S5N)t;{@KueLx%3t{+HiP@0;Kfuh;$$>iyyQ`Xu^o zjr3M-KBxDGa$_F@=H36j=%?p2<jVHRuW7$om~6eC{RX+;EK|RzU;gjWpEv&J^?pN~ zO-{HU0t|ictKTC7tmrrg+Hc6K&F3ey-z+$Gf9IHtV-|tGr{nyA_J`;9);}-zhy3mV z^yfYQcRxV=S=_0m<AmqpuWEnvZg~)!w;$DhLli%z&-vf9-;i+Iho`}~X?{Y!wxj*w z`TDr_8^Ubs_#y}@G>%ymZ2ZgGZx%DWCja~+?KdRW?tjJ-$@$rzm!Y4=H%rj}dW+oi z3J5mbuj^~`@Syga<<Oq<ecEr9JzI+r7MjK}%ZT0og!YGW*GpIB{*XTGYQI^CY@E+% zf4I+A*JK>C2%gthf7x;AH%qF$*Shwb1@kL)9=`5`+;5h3umk=%r~RQG@jmT$mNUKo zceFoT_q!n&(EJ#ZZSVCi?Kh;|*70%lzW_Lu;d{5~bN)xY|GvlM3!kgs`!#pvpNqGm zpT74kdcS?|k7&Ok|MtBf*M76`*!^$*Mj0oR2YyQX&11lx=U-@lDAzsfRQ_{5gnoX` zzacM#?ae<|wLd&xAJqQIV{+dgNE5vn^qKVfP|tl8`e}UgOtAeh(0;S{9n*3Cwf383 z+Roj_z$o+9@mH`uw_&|be0)JikmjquN$xib>F?-Y_qG4SACeBEx4)_VA<pwR@0D>v zz2N7yKg3l&tNrF_@PFw3x%ae;V;06w%hyL|z~Jb;%p!~F<)7b2znyXI;^t5EezT<6 zK6&FA8OJOrwy(Zj`$PHao6pMqW;wF^-=qCzdHoUn@?l->5AmyK-!J{4Jh_B^T9**# zxkv9e&ysJ@@jrw9y!U-EHUP~}c&`5n`bi%6<cDQ|j*j#FdcS!vENTD#8)ckO{`n>C zzwa@*(azC-(EjjzeOdd>qsX55nGG4=JZx;7*Jytz*S%BwLp|{^?Kev~)D!;sr1pn$ z#V?-ApSRyC=>KE%(|no*`7h}Bzj0pr@BMD+u;+i@1?dmZ@Bgj+As_#O_M2t*F&+O; zFXqqB?GH-7c`m$0?|<1P>3{3Hr337bf8MYC<{4u9_T%VZ(0lymkM#Z!@BP*F{CWGm zg8t8<pXSXh-1~a2KmE<pAM)8}Y)HRZj33p9`upg&J>x&;Z|eQ#f$?$u<3HGxaURok zG5Yzm%d-F1e_C#Qn%@6H^wV>O@?=~4Lp<acv_It6pVIyik9`(^3mQMvv)-uv=E2m} z=XvF~$o-)n`T+X#=3!g!H&3G1={SE~`^^Ku=-x-Q-z?`Q4}VhoLpt-GZ_VE)e;fVu zULjrmy!M-?;Pdr)zNGyj4!QYI{`h_L)A*tO`|H|o9yU-<_~&ciEcb`_WK;Xi^UC)B z4{N`9FxdQDcuW2~zqg<tzU`CoWPf}67`ZQ>JF^jAXl!0aF2Z(a)Y<7Ge<{+I_hS?k zA9Ub#8@Gq?PH(t{0NytIqsLT=B%;{QUT4y2A3MIbc0B*47`2<b2*(>Wub~d;WONO= z8Jhi0+}`i^k^Ug|t`PjuMG8yr)}@uDxH~>QXzt)M$69+-(|L1pp>}dFn^Ro=1kd{} zYJ74LY`SyV#dA_fpxm>DfWYC1Qd+IRAC_EBk!{Dt`rry>2$A#(p?%`4OV^8CByoA* z!lnC8U%*H9x8ep|z7b~|$M<iXzF3Dd|5?i8$P;P5!#6#yzfo^^<Jk?Gpd_Kz*>62I z>TDlFGXASqV`SnV4+luJI=L1fAQIy2n;$%Vv2g~UxP0-98$2~X6yWD|;59~wdeBF_ zbpQRE^~>?))AwDd<FQhX&eNRiPr5>`4S4>R$O(Vaa>5_LYnXDvqn;GI{ku?zycCCL zYITml^P)@OC%w_(m@y6n>-sSOlwt9y95+#S?-PWDoz1@I%^n$&eWR(>VzTw&lGqZr zMQ-X8-u6C+4=J!ul&uDlo%$mr(aBbVXiNz<bs2ygl*@J#l^_}j9;tKGvsQvQG_5(# z^mTZR&vc#WMo2MI(UV@Bvm~ioGTKpFab=x33v^?Bc5z1ci6NpDC6N~*6y_y26yo%e zBW=I+Fv4ZKlq!TW`yk<IYC^pNR9;ApTVc-Zc!PtB^D{ajTtA?vXKE-ul|&?_-zz`N zmV;lC7)nlF$(tBsVJjnHDDA#E+5@Xx`q|Eiqp>$Pf8{gZaplufTfoJ?6>;GT!Pyj{ zpGc6JNjcn&bzf>)swOpYITlZHg4jdhyp0WnxM8c;vXwdzx+mdnms}#kWRW$ESW?Yi ziKQQfb)7;6>EX1>2r4j1PNK#+;tmrl6vdnY9rIR=`w%&_5kzZQwF(JVhO-HS_lWWo zj(kW8jaY63ymkli{#e7Jn=|A8a-`O>GM*Dvh(sfqs$_SNnq$nxiQ@0#4>n8KO^9!l z%352vpAX-`z4tzFp>f}thaQTTkF5k!!pXS)$UbXMH(QW(5@5YKk?33$382D(8|UfB zFQ@8;HmDSvDMQe%E+db%5&-NDt__CIq~be^S!B55Aiz<qr-T4|0&JivmKjiz7Nmoe z^JCKexKClhj*gX2HNZM2Hd{=&AE_h;Gx|DB46C->#l;yn&f}Fq52Y*;XcHz?5@*gn z87zMU;#77{Q)xc1I3j&<WOsI}-aM59uqdgtN0tNznmlK#<J1!|D$BKY@4Xji_Vj&? zxOQxrj&1SQnkBJ2UFlE^IZ-Vzt@Q(CuKIicq(Cm--ch0wFCAMtwkkxWY-lwk4Q!#6 zI7Oe1E!AW+V}D%sqb9{tcz?S64LO~2OSC8_X%_FuCWx@4_w*N>n<3IlQRYU@kA~70 zl-{8rC4}fqN{@Xp;817GrQiYlwt}1(y+(_ujU+i1r3<A1sC?uyUITF25YSnt*>3=Y z!m$EnNlj5e!i%{|jYuA$L6Fg<mTZcn;14(baY}>;tr8r{ZZmW@pC}hk<k6}vR6n;T ztgxmjB3WhKe*vYDnlLF#QfrGT#obC`>PZuQZmEIIa)2TNKp_=UNc}xIiT*LT(MORB zos9vdcfgpCJ)=1FuI1OB6ZT<(fiT28nK04F`<*^=`Q#Algo0MiWae>{>Urb4S5Z7y zshQP_!0t=Nb`Lu3Xohq?pmf#8NXn*IuKM&z$exs>NF=mnI!}b}73Q9EDqaHxg28Da zhc@U}ko-*AsBE>J;CM5KlG>b{VmVjwo+T%QIpnR#=~Usvgg}-HZGZlm5{E^ISg72A z^mY?RI5V|ZjNB#g74hGF*tW=q*M@;=4^=7>1_}k#+oKs2qj=LYIi_@8x#{_m&y^LQ zNWo0W1u8mu?51Q^9(Po#BjTmB-mH9*04-%_V}+|J<W5Lg3qb;n7i^k@2YRSPv3iD# zrKsRKXN;&;l*%%l9u@{i!WXPwddeUf67KW~>oY|=iR@l{?8c-ktdY)%46eZJNZbo_ zNXxb_93`v9BK<C@w4%R~#-7z)y|WW&?{>3LIhCV}Z=XeJlXH>}k<R*jCU@Ud5?w|} zG=fz8Ze>Ob^3JgW=W)r}(YfTzBZwE`@<ya`<rd%yQM8P~#4)w&G$$FUeibV9&Hzk@ zMB3&~2e8YD`i1_ApF^<V;qi7{M>MS(Pm`CJ90o@x5GEkCuoPu4?#(eQAdSJeGeTXg zCQ{9&4m2^vo4~_>ahB$!bG18NI1W`wwTxgNEiolAq9%asIcV?@-AId1Z8Jh1&!IE~ z1Umv91LZvrhtLxk!kRdCB~VQPHRs7BryQOpkbp<UHMD>sO-^dslajGMx1JXiQIo7D z#u1OEE;Y#be2yldeh&XJvSetQXc`+}qK$L9BY8i2B{3T39vX`hQr|p_+vtjbz;Nqc zCmN%>ofdFjbaasp+P(F(I4Va!yHbbJ5oxtlN2Fg>NA#>*i8hJxrd066Qs!ng*X5j{ ztvCSD=?cZ$V2ShP<^iqDTqrGk3j!GlcB){{wjCrK=?J=-J3WGc6?64jQdn&<DPRCE z9?GFC)XB}xbV!apHlV4BmRkKevQk#{v2=z9SNbXCQZ{eCu$q#M1ABf6e<*lC5?+#+ z96V3RVQ*Ytzkg$MxEa?o&*fLhoT2ijN;42ct*r2S68xOdEk}u)4b(0U(FNH6$;Qr< ze-30wF_|n)fo3rxRv_#C00<DEnPF{d_lM$rT}CSj&h1*xxxK-*C5V(T<x{3~#<R_< z&KJBZW3`~rxh6+)^otF-cg`*jsF<RZl;Hx4nM~~h&@#$G{^PBOQFZCzc)Qu{C0Mok zDP(0jh3!10$0R}Lxa9dYRi3lM!5hWAF9U7)+|GIO6iBQ|MF#>?Jb^*gWftuk3@$_6 zNDc}K2rSwWicHEzMzm|BL_5AR(Qb2cGD&V-<}j^0=Lb(3ao`H$B~!$al>%|3It0l} zm+)m4Xuv#FA@WXC@#+=qS$_>lVmWsJZ+nUMIMZv6#}w+p;QO2~1ST9(a5LT?bRPkL zO=N;9lTLMr^*t44@MAl)(CCi9i+yiR8fi}EpN!j9t2vGD7}dT}t`C^ej7h~*N_Noj zQK%HbVqFw6-E1pZzJ`;o({O{iGC6|pI%ao-4Qgu39BodPSl|uRR+>OqgxEN$)aOZA z4Q}d47H8DPS|`$Sjus5$N{TyNADK4MN8Gn6gPX3>C(cP}SwjujPm-+RJT_UL+rU@n zW1F6ELy(90Y?fo@SP0K_n*kqK9D|&NGE)W!C%&@9i{ndX&S$}2^n8n8UWt#CMtiJw zg2V{#i)ZjqU#G=9ro32ZAs8&Yi9G5*`i<r<OlZ~a>b-bigDWGInqVOl!kQHuEc);- zxgHcf8KkVG8lSYXJn41M^?U@H8~S5ql_HKdN*sUEyC;~$)VB3wFP7s<SPgcN;WROY zmXJzEv9u|QUMy<Q011<6&WE1LY>CjjWi2M9V9xCFEVFyskNFpqvX2<H(5A)OzGrFT zoivji8v<QSj*p<ek<{zG0Banky`^YWP_zqwOC(P?Fdm|6*YPlD@}`zNlC$EoJMHy! z^8_*=(S4e&0LI+JR&Zi-*xRS@{*x}L0HB@n1+^USo)<N3iLg6Wll=mc^;v3iYB%3t z)drLx2y$hw8c;(vkB>SWMHGf0_#*Ae_(5{Kcje)jz4~X+oaPy36qTGsQF0RCzloQl z$M0tdI%F>KtH?P)_vUs=5V^-YpfHH}q-+X$w(1|y`2jx2w@fOf*ZUjil|v`1T^-fU z#_N~J(t&t=vZe>|`Yd4Pg+>Q%Me){noGTkCPnMdMS*M!mUUJwd>Igyi<!G5xf?DVk zGpm_;((;M!aLismD-EQGA-<B5Uq$3gSTN+#C(RKd?sd0XsNuWMNnGfgab)I&pX8Bd z!B#vP;g~pW$te^fW$yP#?KG_*5hO^NOzTcUtY95p*W5F;)h&dCjjp*W<?x!`@^=mL z_H-sN?iA|)rNV2Hhf4vF*leMm<Os&0a1f$7aMG5V%dEZ3%YKp>W44aqv%J{CoGeNq z=g*N<o~jg!R?>Wi592B9_Q}m14DC=2_ddlZZkE=qP)x#IoNvI~P+6ARbIQI?mD&v~ z$ftQaYjebk7)?OZ14u3iknJJNmeb<Yi_nAs_EFJ>eHwE7g|nhfbz#QbO^7RbY!Vvo z6y^vUx#_o!%Y-^u@;>B^qttzun_In3@J=^->M`D=ZyKO}b{p2~@qV8|xzC(IZU|(~ z187IiKLxVgyf8$L9u@t9GBMWskR6Yso_Gg|5_^*ApgEW{w%Af2%Wrmwz}T6?6>r#P z&x(ob$b1nv_M4_Hgp0iBwlYHd9MLQG{a~ZyRtITy%wHj~O?oD|%37ota}yPWa&!hn z;&9=bIA+ta5g%@;{J2hFE@_v|$`d&MNt!5Ob~rhC!4UA{EDVNdguxK=LRMB=y-ssv z5vPe1wivIEx=7lp6lZVP>$a|8RS=aVn}{tYoDo&erk_=VW+yk!+w&4j`EHdo`FWO6 zSfn@3cg-2wJ1T-rK2_y?kxk>BJ~GY9REDrV$iktp${F6O<k7z=W6$<f=X_}aHTF<F z0YGs~&V%E^aW9HV0y%{IQ7qJ#Qlk@hf$LycOZ?9%4HEO3VyI!({#1J932{?pIJgCv z442NAq{8P@b=MO9-g(5RMOh;<yiC&m`7Uox8l}s+aYx6-*ZP<gw3CsvyY?H&K%>3r z*kCy697E=zJ15N@z1kV<AKTjR_S$!L+tD$)B3vjs*1k5tc+yTr@|OeTV}_k5brIul zqfW0$AJE_SdXwlFC1H+^;n!n3L;QlMJp9WX_1I|0sS1yEb~VrSZX1Kx6-IBh5a!?N z>`h``WEo6SV9OZx``cRhAilWS@3!y@tklslz_HOW<lycjuQvKRTl+h>o$>*pUoN|Y z?V<hN+}av-4(zJe9dzt>OrHI!AJ^pMM`$R2J*CdKeDzkJ+uBzIV{4jy*Gu``pXGi2 zvJPbJg1b|Gd3tb7^-cWGPxSNFqWo9tC;U9hV?<wg;)$U>ztsh|_R};tex4ys^lWXd zLAe7|OG@6~>W5qVK9o?QpJ(EKdUyN$OQ{n-NNbOJ(#hwo&bYOoLSB0RC!D`;!yljU zp5N+`Tl*?~F?)V{Pir5>=fCWI-s+ZH`<Q+?JwH9CJ->EGZ^th*r#7C|H@9|OAK1R% zK5y^;F8%y{I^e=P<rize=zX3(6Mp{t&_}n>^U;shOSkqV((V4GXZ3%m41@pq#qW^6 zTKiW0e*4UA`ir$c6nx(5uUl)+YoE7kYd;Wt-s-el`-^|hJ}Iqzul4?T@Oi7}ZtZjI zMs36Q|7rcat)JDYwKhDz;pcxL_`KDJxAqOT@CD!htHI~3j=Z&ReX)K}8=E)l{ojJm zTfKQ}{~x<i+wl2+AN^Ewf%Z22SY7MKKPK1VeB1Y1`yX)|)sV2yTmAY^>gVk~87<kr z*8e&Dfwq`^-s;?cYR2bnyf5MxJDb$^nU5_{gO;1<HeFadANIZWUhl(g{`W_}y&xa_ zZE5(A`YSc|d24UMhf|+_d_nGhTpBy)a+Q4EuAhYu(^&TYR;TNw_IVoI`&saQr(d6^ z-@h32+vib6FZE-?S^HxBeCj4#)b;y66C5D>oZbKGg3qu1d%5F-zh-wz8-9MV;Pbyj z1>5nn`4#dx`#1djJq4eC&4=aAW5M|eKYva?AI{(9e<pYS3>Cije(cIxsb}xqpuc|k zGqUk+oALZKj?o@}l-vHh^saxc^nN`WlnitG&-N89kL?|~Q~rJH?b7?psEgwN*mGOo U3-C+c=U=`ry{+H_!DaOS16grS*8l(j literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/49_UglyNumber b/week02/cmake-build-debug/49_UglyNumber new file mode 100755 index 0000000000000000000000000000000000000000..f04cffb8612e7119e4adad39c520f76a2ad19a04 GIT binary patch literal 236064 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%0D;<>^G)ANm3F*=n)rCyrexAhV`?(2=-TtJ5vx|l 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 literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o b/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..ded41fc1a2dd0f9595a362a4fde5bc5f73bfb1fc GIT binary patch literal 337808 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 YuNwROb~3#{{K~~q|Bayh{1)>61G;6K%>V!Z literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/CXX.includecache b/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/CXX.includecache new file mode 100644 index 00000000..37f54d2d --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/CXX.includecache @@ -0,0 +1,16 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week02/242_isAnagram.cpp +iostream +- +string +- +unordered_map +- + diff --git a/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/DependInfo.cmake b/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/DependInfo.cmake new file mode 100644 index 00000000..449b5105 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week02/242_isAnagram.cpp" "/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/build.make b/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/build.make new file mode 100644 index 00000000..96249fdd --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week02 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week02/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/242_isAnagram.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/242_isAnagram.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/242_isAnagram.dir/flags.make + +CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o: CMakeFiles/242_isAnagram.dir/flags.make +CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o: ../242_isAnagram.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o -c /home/lewang/algorithm018/week02/242_isAnagram.cpp + +CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week02/242_isAnagram.cpp > CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.i + +CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week02/242_isAnagram.cpp -o CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.s + +# Object files for target 242_isAnagram +242_isAnagram_OBJECTS = \ +"CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o" + +# External object files for target 242_isAnagram +242_isAnagram_EXTERNAL_OBJECTS = + +242_isAnagram: CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o +242_isAnagram: CMakeFiles/242_isAnagram.dir/build.make +242_isAnagram: CMakeFiles/242_isAnagram.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 242_isAnagram" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/242_isAnagram.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/242_isAnagram.dir/build: 242_isAnagram + +.PHONY : CMakeFiles/242_isAnagram.dir/build + +CMakeFiles/242_isAnagram.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/242_isAnagram.dir/cmake_clean.cmake +.PHONY : CMakeFiles/242_isAnagram.dir/clean + +CMakeFiles/242_isAnagram.dir/depend: + cd /home/lewang/algorithm018/week02/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week02 /home/lewang/algorithm018/week02 /home/lewang/algorithm018/week02/cmake-build-debug /home/lewang/algorithm018/week02/cmake-build-debug /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/242_isAnagram.dir/depend + diff --git a/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/cmake_clean.cmake b/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/cmake_clean.cmake new file mode 100644 index 00000000..d228a089 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o" + "242_isAnagram.pdb" + "242_isAnagram" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/242_isAnagram.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/depend.internal b/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/depend.internal new file mode 100644 index 00000000..9077084c --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o + /home/lewang/algorithm018/week02/242_isAnagram.cpp diff --git a/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/depend.make b/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/depend.make new file mode 100644 index 00000000..c9588ee5 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o: ../242_isAnagram.cpp + diff --git a/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/flags.make b/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/link.txt b/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/link.txt new file mode 100644 index 00000000..95fd2043 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o -o 242_isAnagram diff --git a/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/progress.make b/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/242_isAnagram.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.o b/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..d0f373976cbc244c65d56ed87cfe24bf2e69e795 GIT binary patch literal 352064 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�~1nnp-&_fN{b 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£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 literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/CXX.includecache b/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/CXX.includecache new file mode 100644 index 00000000..04c829ac --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/CXX.includecache @@ -0,0 +1,16 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week02/49_UglyNumber.cpp +iostream +- +vector +- +unordered_map +- + diff --git a/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/DependInfo.cmake b/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/DependInfo.cmake new file mode 100644 index 00000000..a6653163 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week02/49_UglyNumber.cpp" "/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/build.make b/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/build.make new file mode 100644 index 00000000..f99c5a62 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week02 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week02/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/49_UglyNumber.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/49_UglyNumber.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/49_UglyNumber.dir/flags.make + +CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.o: CMakeFiles/49_UglyNumber.dir/flags.make +CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.o: ../49_UglyNumber.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.o -c /home/lewang/algorithm018/week02/49_UglyNumber.cpp + +CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week02/49_UglyNumber.cpp > CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.i + +CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week02/49_UglyNumber.cpp -o CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.s + +# Object files for target 49_UglyNumber +49_UglyNumber_OBJECTS = \ +"CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.o" + +# External object files for target 49_UglyNumber +49_UglyNumber_EXTERNAL_OBJECTS = + +49_UglyNumber: CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.o +49_UglyNumber: CMakeFiles/49_UglyNumber.dir/build.make +49_UglyNumber: CMakeFiles/49_UglyNumber.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 49_UglyNumber" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/49_UglyNumber.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/49_UglyNumber.dir/build: 49_UglyNumber + +.PHONY : CMakeFiles/49_UglyNumber.dir/build + +CMakeFiles/49_UglyNumber.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/49_UglyNumber.dir/cmake_clean.cmake +.PHONY : CMakeFiles/49_UglyNumber.dir/clean + +CMakeFiles/49_UglyNumber.dir/depend: + cd /home/lewang/algorithm018/week02/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week02 /home/lewang/algorithm018/week02 /home/lewang/algorithm018/week02/cmake-build-debug /home/lewang/algorithm018/week02/cmake-build-debug /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/49_UglyNumber.dir/depend + diff --git a/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/cmake_clean.cmake b/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/cmake_clean.cmake new file mode 100644 index 00000000..9e53e3df --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.o" + "49_UglyNumber.pdb" + "49_UglyNumber" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/49_UglyNumber.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/depend.internal b/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/depend.internal new file mode 100644 index 00000000..5a9641c3 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.o + /home/lewang/algorithm018/week02/49_UglyNumber.cpp diff --git a/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/depend.make b/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/depend.make new file mode 100644 index 00000000..a05f3ee9 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.o: ../49_UglyNumber.cpp + diff --git a/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/flags.make b/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/link.txt b/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/link.txt new file mode 100644 index 00000000..cfa06362 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.o -o 49_UglyNumber diff --git a/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/progress.make b/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week02/cmake-build-debug/CMakeFiles/Makefile.cmake b/week02/cmake-build-debug/CMakeFiles/Makefile.cmake index a5f6419d..04c8fe9b 100644 --- a/week02/cmake-build-debug/CMakeFiles/Makefile.cmake +++ b/week02/cmake-build-debug/CMakeFiles/Makefile.cmake @@ -46,5 +46,5 @@ set(CMAKE_MAKEFILE_PRODUCTS # Dependency information for all targets: set(CMAKE_DEPEND_INFO_FILES - "CMakeFiles/removeOuterParentheses.dir/DependInfo.cmake" + "CMakeFiles/49_UglyNumber.dir/DependInfo.cmake" ) diff --git a/week02/cmake-build-debug/CMakeFiles/Makefile2 b/week02/cmake-build-debug/CMakeFiles/Makefile2 index bd815ed3..b0c7adb7 100644 --- a/week02/cmake-build-debug/CMakeFiles/Makefile2 +++ b/week02/cmake-build-debug/CMakeFiles/Makefile2 @@ -65,39 +65,39 @@ CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week02 CMAKE_BINARY_DIR = /home/lewang/algorithm018/week02/cmake-build-debug #============================================================================= -# Target rules for target CMakeFiles/removeOuterParentheses.dir +# Target rules for target CMakeFiles/49_UglyNumber.dir # All Build rule for target. -CMakeFiles/removeOuterParentheses.dir/all: - $(MAKE) -f CMakeFiles/removeOuterParentheses.dir/build.make CMakeFiles/removeOuterParentheses.dir/depend - $(MAKE) -f CMakeFiles/removeOuterParentheses.dir/build.make CMakeFiles/removeOuterParentheses.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target removeOuterParentheses" -.PHONY : CMakeFiles/removeOuterParentheses.dir/all +CMakeFiles/49_UglyNumber.dir/all: + $(MAKE) -f CMakeFiles/49_UglyNumber.dir/build.make CMakeFiles/49_UglyNumber.dir/depend + $(MAKE) -f CMakeFiles/49_UglyNumber.dir/build.make CMakeFiles/49_UglyNumber.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target 49_UglyNumber" +.PHONY : CMakeFiles/49_UglyNumber.dir/all # Include target in all. -all: CMakeFiles/removeOuterParentheses.dir/all +all: CMakeFiles/49_UglyNumber.dir/all .PHONY : all # Build rule for subdir invocation for target. -CMakeFiles/removeOuterParentheses.dir/rule: cmake_check_build_system +CMakeFiles/49_UglyNumber.dir/rule: cmake_check_build_system $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles 2 - $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/removeOuterParentheses.dir/all + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/49_UglyNumber.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles 0 -.PHONY : CMakeFiles/removeOuterParentheses.dir/rule +.PHONY : CMakeFiles/49_UglyNumber.dir/rule # Convenience name for target. -removeOuterParentheses: CMakeFiles/removeOuterParentheses.dir/rule +49_UglyNumber: CMakeFiles/49_UglyNumber.dir/rule -.PHONY : removeOuterParentheses +.PHONY : 49_UglyNumber # clean rule for target. -CMakeFiles/removeOuterParentheses.dir/clean: - $(MAKE) -f CMakeFiles/removeOuterParentheses.dir/build.make CMakeFiles/removeOuterParentheses.dir/clean -.PHONY : CMakeFiles/removeOuterParentheses.dir/clean +CMakeFiles/49_UglyNumber.dir/clean: + $(MAKE) -f CMakeFiles/49_UglyNumber.dir/build.make CMakeFiles/49_UglyNumber.dir/clean +.PHONY : CMakeFiles/49_UglyNumber.dir/clean # clean rule for target. -clean: CMakeFiles/removeOuterParentheses.dir/clean +clean: CMakeFiles/49_UglyNumber.dir/clean .PHONY : clean diff --git a/week02/cmake-build-debug/CMakeFiles/TargetDirectories.txt b/week02/cmake-build-debug/CMakeFiles/TargetDirectories.txt index ee0862be..97dda83c 100644 --- a/week02/cmake-build-debug/CMakeFiles/TargetDirectories.txt +++ b/week02/cmake-build-debug/CMakeFiles/TargetDirectories.txt @@ -1,3 +1,3 @@ /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/rebuild_cache.dir -/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/removeOuterParentheses.dir +/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/edit_cache.dir diff --git a/week02/cmake-build-debug/Makefile b/week02/cmake-build-debug/Makefile index 6d71d0b3..3b1bfb1d 100644 --- a/week02/cmake-build-debug/Makefile +++ b/week02/cmake-build-debug/Makefile @@ -111,44 +111,44 @@ depend: .PHONY : depend #============================================================================= -# Target rules for targets named removeOuterParentheses +# Target rules for targets named 49_UglyNumber # Build rule for target. -removeOuterParentheses: cmake_check_build_system - $(MAKE) -f CMakeFiles/Makefile2 removeOuterParentheses -.PHONY : removeOuterParentheses +49_UglyNumber: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 49_UglyNumber +.PHONY : 49_UglyNumber # fast build rule for target. -removeOuterParentheses/fast: - $(MAKE) -f CMakeFiles/removeOuterParentheses.dir/build.make CMakeFiles/removeOuterParentheses.dir/build -.PHONY : removeOuterParentheses/fast +49_UglyNumber/fast: + $(MAKE) -f CMakeFiles/49_UglyNumber.dir/build.make CMakeFiles/49_UglyNumber.dir/build +.PHONY : 49_UglyNumber/fast -removeOuterParentheses.o: removeOuterParentheses.cpp.o +49_UglyNumber.o: 49_UglyNumber.cpp.o -.PHONY : removeOuterParentheses.o +.PHONY : 49_UglyNumber.o # target to build an object file -removeOuterParentheses.cpp.o: - $(MAKE) -f CMakeFiles/removeOuterParentheses.dir/build.make CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.o -.PHONY : removeOuterParentheses.cpp.o +49_UglyNumber.cpp.o: + $(MAKE) -f CMakeFiles/49_UglyNumber.dir/build.make CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.o +.PHONY : 49_UglyNumber.cpp.o -removeOuterParentheses.i: removeOuterParentheses.cpp.i +49_UglyNumber.i: 49_UglyNumber.cpp.i -.PHONY : removeOuterParentheses.i +.PHONY : 49_UglyNumber.i # target to preprocess a source file -removeOuterParentheses.cpp.i: - $(MAKE) -f CMakeFiles/removeOuterParentheses.dir/build.make CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.i -.PHONY : removeOuterParentheses.cpp.i +49_UglyNumber.cpp.i: + $(MAKE) -f CMakeFiles/49_UglyNumber.dir/build.make CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.i +.PHONY : 49_UglyNumber.cpp.i -removeOuterParentheses.s: removeOuterParentheses.cpp.s +49_UglyNumber.s: 49_UglyNumber.cpp.s -.PHONY : removeOuterParentheses.s +.PHONY : 49_UglyNumber.s # target to generate assembly for a file -removeOuterParentheses.cpp.s: - $(MAKE) -f CMakeFiles/removeOuterParentheses.dir/build.make CMakeFiles/removeOuterParentheses.dir/removeOuterParentheses.cpp.s -.PHONY : removeOuterParentheses.cpp.s +49_UglyNumber.cpp.s: + $(MAKE) -f CMakeFiles/49_UglyNumber.dir/build.make CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.s +.PHONY : 49_UglyNumber.cpp.s # Help Target help: @@ -157,11 +157,11 @@ help: @echo "... clean" @echo "... depend" @echo "... rebuild_cache" - @echo "... removeOuterParentheses" + @echo "... 49_UglyNumber" @echo "... edit_cache" - @echo "... removeOuterParentheses.o" - @echo "... removeOuterParentheses.i" - @echo "... removeOuterParentheses.s" + @echo "... 49_UglyNumber.o" + @echo "... 49_UglyNumber.i" + @echo "... 49_UglyNumber.s" .PHONY : help diff --git a/week02/cmake-build-debug/week02.cbp b/week02/cmake-build-debug/week02.cbp index 83853934..8cff286e 100644 --- a/week02/cmake-build-debug/week02.cbp +++ b/week02/cmake-build-debug/week02.cbp @@ -27,8 +27,8 @@ <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 clean"/> </MakeCommands> </Target> - <Target title="removeOuterParentheses"> - <Option output="/home/lewang/algorithm018/week02/cmake-build-debug/removeOuterParentheses" prefix_auto="0" extension_auto="0"/> + <Target title="49_UglyNumber"> + <Option output="/home/lewang/algorithm018/week02/cmake-build-debug/49_UglyNumber" prefix_auto="0" extension_auto="0"/> <Option working_dir="/home/lewang/algorithm018/week02/cmake-build-debug"/> <Option object_output="./"/> <Option type="1"/> @@ -44,14 +44,14 @@ <Add directory="/usr/include"/> </Compiler> <MakeCommands> - <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 removeOuterParentheses"/> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 49_UglyNumber"/> <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 clean"/> <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 clean"/> </MakeCommands> </Target> - <Target title="removeOuterParentheses/fast"> - <Option output="/home/lewang/algorithm018/week02/cmake-build-debug/removeOuterParentheses" prefix_auto="0" extension_auto="0"/> + <Target title="49_UglyNumber/fast"> + <Option output="/home/lewang/algorithm018/week02/cmake-build-debug/49_UglyNumber" prefix_auto="0" extension_auto="0"/> <Option working_dir="/home/lewang/algorithm018/week02/cmake-build-debug"/> <Option object_output="./"/> <Option type="1"/> @@ -67,7 +67,7 @@ <Add directory="/usr/include"/> </Compiler> <MakeCommands> - <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 removeOuterParentheses/fast"/> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 49_UglyNumber/fast"/> <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 clean"/> <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 clean"/> @@ -84,8 +84,8 @@ </MakeCommands> </Target> </Build> - <Unit filename="/home/lewang/algorithm018/week02/removeOuterParentheses.cpp"> - <Option target="removeOuterParentheses"/> + <Unit filename="/home/lewang/algorithm018/week02/49_UglyNumber.cpp"> + <Option target="49_UglyNumber"/> </Unit> <Unit filename="/home/lewang/algorithm018/week02/CMakeLists.txt"> <Option virtualFolder="CMake Files\"/> diff --git a/week02/inorderTraversal.cpp b/week02/inorderTraversal.cpp new file mode 100644 index 00000000..0808132a --- /dev/null +++ b/week02/inorderTraversal.cpp @@ -0,0 +1,93 @@ +// +// Created by lewang on 11/1/20. +// +//二叉树的中序遍历:左,根,右 +#include<iiostream> +#include<vector> + +using namespace std; + +struct TreeNode { + int val; + TreeNode *left; + TreeNode *right; + TreeNode(): val(0), left(nullptr),right(nullptr){} + TreeNode(int x) : val(x),left(nullptr),right(nullptr) {} + TreeNode(int x, TreeNode *left,TreeNode *right) : val(x),left(left),right(right) {} +}; + +class Solution { + +private: + void inorder(TreeNode* root, vector<int>& res){ + if(!root){ + return; + } + inorder(root->let,res);//中序遍历先对左边的进行遍历 + res.push(root->val);//左边遍历完,把root压进去 + inorder(root->right,res)//再对右边进行遍历 + } + +public: + //recursion + vector<int> inorderTraversal(TreeNode* root) { + vector<int> res; + inorder(root,res); + return res; + } + //stack 和迭代最大的区别是显式得维护了一个栈 + vector<int> inorderTraversal2(TreeNode* root){ + vector<int> res; + stack<TreeNode *> stack; + while(root != nullptr || stack.empty()) { + //如果根不为空,且,栈不为空 + while(root != nullptr) { + stack.push(root);//将根压进栈 + root = root->left;将根//将当前的根变成其左结点,走到左边底 + } + //栈是先进后出,所以上面的是从左底开始的 + root = stack.top();//取出顶端的值 + stack.pop();//弹出顶端的值 + res.push_back(root->val);//将取得的结点的值放入结果中 + root = root->right;//将当前的结点的右结点给当前根,如果没有右结点,则root变为空 + } + return res; + } + + //morris algorithm ->不是很懂.... + + vector<int> inorderTraversal3(TreeNode* root) { + vector<int> res; + TreeNode *predecessor = nullptr; + + while(root != nulptr){ + if(root->left != nullptr){ + //如果当前的结点有左结点 + predecessor = root -> left; + + //如果当前的结点有右结点,一直都到最右 + while(predecessor->right != nullptr && predecessor->right != root) { + predecessor = predecessor->right; + } + + //如果当前的结点没有右结点,将右结点走到根 + if(predecessor->right == nullptr){ + predecessor->right = root; + root = root->left; + }else{ //左子树访问完了,需要断开链接 + res.push_back(root->val); + predecessor->right = nullptr; + root = root->right; + } + } else{ + res.push_back(root->val); + root = root->right; + } + } + return res; + } +}; + +int main(){ + +} \ No newline at end of file diff --git a/week02/preorder.cpp b/week02/preorder.cpp new file mode 100644 index 00000000..0e8aa1ae --- /dev/null +++ b/week02/preorder.cpp @@ -0,0 +1,68 @@ +// +// Created by lewang on 11/1/20. +// + +#include <iostream> +#include <vector> +#include <stack> +using namespace std; + +class Node { +public: + int val; + vector<Node* > children; + + Node() {} + + Node(int _val) { + val = _val; + } + Node(int _val, vector<Node*> _children) { + val = _val; + children = _children; + } +}; + +class Solution{ +public: + //recursion + vector<int> res; + vector<int> preorder(Node* root) { + //判断root是否为空,如果为空返回 + if(!root) return res; + //将根节点的值压入结果 + res.push_back(root->val); + //next = root->children + for(auto i : root->childen){ + //遍历root的孩子结点,递归调用preorder + res = preorder(i); + } + return res; + } + //iteration + vector<int> preorder2(Node* root) { + vector<int> res; + if(!root) return res; + + stack<Node*> stack; + stack.push(root); + while(!stack.empty()) { + Node* temp = stack.top(); + stack.pop(); + res.push_back(temp->val); + for (int i = tmp->children.size()-1; i >= 0; --i) { + //栈是后进先出,所以是从孩子结点中的最后一个开始循环 + stack.push(temp->children[i]); + } + } + return res; + } + + + +}; + +int main(){ + + return 0; +} \ No newline at end of file diff --git "a/week02/\346\234\254\345\221\250\344\275\234\344\270\232.md" "b/week02/\346\234\254\345\221\250\344\275\234\344\270\232.md" new file mode 100644 index 00000000..660a09db --- /dev/null +++ "b/week02/\346\234\254\345\221\250\344\275\234\344\270\232.md" @@ -0,0 +1,39 @@ +## 本周作业 + +### 简单: + +- 写一个关于 HashMap 的小总结。 + 说明:对于不熟悉 Java 语言的同学,此项作业可选做。 + +- [有效的字母异位词](https://leetcode-cn.com/problems/valid-anagram/description/) +(亚马逊、Facebook、谷歌在半年内面试中考过)√ +- [两数之和](https://leetcode-cn.com/problems/two-sum/description/) +(近半年内,亚马逊考查此题达到 216 次、字节跳动 147 次、谷歌 104 次, +Facebook、苹果、微软、腾讯也在近半年内面试常考)√ +- [N 叉树的前序遍历](https://leetcode-cn.com/problems/n-ary-tree-preorder-traversal/description/) +(亚马逊在半年内面试中考过)√ +- HeapSort :自学 https://www.geeksforgeeks.org/heap-sort/ + +### 中等: +- [字母异位词分组](https://leetcode-cn.com/problems/group-anagrams/) +(亚马逊在半年内面试中常考)√ +- [二叉树的中序遍历](https://leetcode-cn.com/problems/binary-tree-inorder-traversal/) +(亚马逊、字节跳动、微软在半年内面试中考过)√ +- [二叉树的前序遍历](https://leetcode-cn.com/problems/binary-tree-preorder-traversal/) +(字节跳动、谷歌、腾讯在半年内面试中考过)√ +- [N 叉树的层序遍历](https://leetcode-cn.com/problems/n-ary-tree-level-order-traversal/) +(亚马逊在半年内面试中考过)√ +- [丑数](https://leetcode-cn.com/problems/chou-shu-lcof/) +(字节跳动在半年内面试中考过) +- [前 K 个高频元素](https://leetcode-cn.com/problems/top-k-frequent-elements/) +(亚马逊在半年内面试中常考) + +## 下周预习 + +### 预习题目: + +- [爬楼梯](https://leetcode-cn.com/problems/climbing-stairs/) +- [括号生成](https://leetcode-cn.com/problems/generate-parentheses/) +- [Pow(x, n)](https://leetcode-cn.com/problems/powx-n/) +- [子集](https://leetcode-cn.com/problems/subsets/) +- [N 皇后](https://leetcode-cn.com/problems/n-queens/) \ No newline at end of file From ccb98fe309b4b1faaa84bc588d0ca14ba442974d Mon Sep 17 00:00:00 2001 From: Ella2le <1071444737@qq.com> Date: Sun, 1 Nov 2020 21:09:33 +0800 Subject: [PATCH 11/21] topKFrequent --- .idea/algorithm018.iml | 20 +- .idea/leetcode/editor.xml | 17 - .idea/markdown-navigator.xml | 91 --- .idea/misc.xml | 3 - .idea/workspace.xml | 674 ++++-------------- week02/347_topKFrequent.cpp | 75 ++ week02/CMakeLists.txt | 2 +- week02/cmake-build-debug/347_topKFrequent | Bin 0 -> 363968 bytes .../347_topKFrequent.cpp.o | Bin 0 -> 596568 bytes .../347_topKFrequent.dir/CXX.includecache | 20 + .../347_topKFrequent.dir/DependInfo.cmake | 20 + .../347_topKFrequent.dir/build.make | 98 +++ .../347_topKFrequent.dir/cmake_clean.cmake | 10 + .../347_topKFrequent.dir/depend.internal | 5 + .../347_topKFrequent.dir/depend.make | 5 + .../347_topKFrequent.dir/flags.make | 10 + .../CMakeFiles/347_topKFrequent.dir/link.txt | 1 + .../347_topKFrequent.dir/progress.make | 3 + .../CMakeFiles/Makefile.cmake | 2 +- week02/cmake-build-debug/CMakeFiles/Makefile2 | 32 +- .../CMakeFiles/TargetDirectories.txt | 2 +- week02/cmake-build-debug/Makefile | 52 +- week02/cmake-build-debug/week02.cbp | 16 +- ...54\345\221\250\344\275\234\344\270\232.md" | 2 +- 24 files changed, 457 insertions(+), 703 deletions(-) delete mode 100644 .idea/leetcode/editor.xml delete mode 100644 .idea/markdown-navigator.xml create mode 100644 week02/347_topKFrequent.cpp create mode 100755 week02/cmake-build-debug/347_topKFrequent create mode 100644 week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.o create mode 100644 week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/CXX.includecache create mode 100644 week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/DependInfo.cmake create mode 100644 week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/build.make create mode 100644 week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/cmake_clean.cmake create mode 100644 week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/depend.internal create mode 100644 week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/depend.make create mode 100644 week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/flags.make create mode 100644 week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/link.txt create mode 100644 week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/progress.make diff --git a/.idea/algorithm018.iml b/.idea/algorithm018.iml index ca1bd31e..f08604bb 100644 --- a/.idea/algorithm018.iml +++ b/.idea/algorithm018.iml @@ -1,20 +1,2 @@ <?xml version="1.0" encoding="UTF-8"?> -<<<<<<< HEAD -<module classpath="CMake" type="CPP_MODULE" version="4" /> -======= -<module type="CPP_MODULE" version="4"> - <component name="FacetManager"> - <facet type="Python" name="Python facet"> - <configuration sdkName="" /> - </facet> - </component> - <component name="NewModuleRootManager"> - <content url="file://$MODULE_DIR$"> - <excludeFolder url="file://$MODULE_DIR$/venv" /> - </content> - <orderEntry type="inheritedJdk" /> - <orderEntry type="sourceFolder" forTests="false" /> - <orderEntry type="library" name="Python 3.7 (algorithm018) interpreter library" level="application" /> - </component> -</module> ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a +<module classpath="CMake" type="CPP_MODULE" version="4" /> \ No newline at end of file diff --git a/.idea/leetcode/editor.xml b/.idea/leetcode/editor.xml deleted file mode 100644 index b580d140..00000000 --- a/.idea/leetcode/editor.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="LeetcodeEditor"> - <option name="projectConfig"> - <map> - <entry key="$PROJECT_DIR$/../leetcode/leetcode/editor/cn/[1]两数之和.cpp"> - <value> - <LeetcodeEditor> - <option name="path" value="$PROJECT_DIR$/../leetcode/leetcode/editor/cn/[1]两数之和.cpp" /> - <option name="questionId" value="1" /> - </LeetcodeEditor> - </value> - </entry> - </map> - </option> - </component> -</project> \ No newline at end of file diff --git a/.idea/markdown-navigator.xml b/.idea/markdown-navigator.xml deleted file mode 100644 index 79a45289..00000000 --- a/.idea/markdown-navigator.xml +++ /dev/null @@ -1,91 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="MarkdownProjectSettings" wasCopied="false"> - <PreviewSettings splitEditorLayout="SPLIT" splitEditorPreview="PREVIEW" useGrayscaleRendering="false" zoomFactor="1.25" maxImageWidth="0" showGitHubPageIfSynced="false" allowBrowsingInPreview="false" synchronizePreviewPosition="true" highlightPreviewType="NONE" highlightFadeOut="5" highlightOnTyping="true" synchronizeSourcePosition="true" verticallyAlignSourceAndPreviewSyncPosition="true" showSearchHighlightsInPreview="false" showSelectionInPreview="true" openRemoteLinks="true" replaceUnicodeEmoji="false" lastLayoutSetsDefault="false"> - <PanelProvider> - <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.panel" providerName="Default - Swing" /> - </PanelProvider> - </PreviewSettings> - <ParserSettings gitHubSyntaxChange="false" emojiShortcuts="1" emojiImages="0"> - <PegdownExtensions> - <option name="ABBREVIATIONS" value="false" /> - <option name="ANCHORLINKS" value="true" /> - <option name="ASIDE" value="false" /> - <option name="ATXHEADERSPACE" value="true" /> - <option name="AUTOLINKS" value="false" /> - <option name="DEFINITIONS" value="false" /> - <option name="DEFINITION_BREAK_DOUBLE_BLANK_LINE" value="false" /> - <option name="FENCED_CODE_BLOCKS" value="true" /> - <option name="FOOTNOTES" value="false" /> - <option name="HARDWRAPS" value="false" /> - <option name="HTML_DEEP_PARSER" value="false" /> - <option name="INSERTED" value="false" /> - <option name="QUOTES" value="false" /> - <option name="RELAXEDHRULES" value="true" /> - <option name="SMARTS" value="false" /> - <option name="STRIKETHROUGH" value="true" /> - <option name="SUBSCRIPT" value="false" /> - <option name="SUPERSCRIPT" value="false" /> - <option name="SUPPRESS_HTML_BLOCKS" value="false" /> - <option name="SUPPRESS_INLINE_HTML" value="false" /> - <option name="TABLES" value="true" /> - <option name="TASKLISTITEMS" value="true" /> - <option name="TOC" value="false" /> - <option name="WIKILINKS" value="false" /> - </PegdownExtensions> - <ParserOptions> - <option name="ADMONITION_EXT" value="false" /> - <option name="ATTRIBUTES_EXT" value="false" /> - <option name="COMMONMARK_LISTS" value="true" /> - <option name="DUMMY" value="false" /> - <option name="EMOJI_SHORTCUTS" value="true" /> - <option name="ENUMERATED_REFERENCES_EXT" value="false" /> - <option name="FLEXMARK_FRONT_MATTER" value="false" /> - <option name="GFM_LOOSE_BLANK_LINE_AFTER_ITEM_PARA" value="false" /> - <option name="GFM_TABLE_RENDERING" value="true" /> - <option name="GITBOOK_URL_ENCODING" value="false" /> - <option name="GITHUB_LISTS" value="false" /> - <option name="GITHUB_WIKI_LINKS" value="false" /> - <option name="GITLAB_EXT" value="false" /> - <option name="GITLAB_MATH_EXT" value="false" /> - <option name="GITLAB_MERMAID_EXT" value="false" /> - <option name="HEADER_ID_NON_ASCII_TO_LOWERCASE" value="false" /> - <option name="HEADER_ID_NO_DUPED_DASHES" value="false" /> - <option name="JEKYLL_FRONT_MATTER" value="false" /> - <option name="MACROS_EXT" value="false" /> - <option name="NO_TEXT_ATTRIBUTES" value="false" /> - <option name="PARSE_HTML_ANCHOR_ID" value="false" /> - <option name="PLANTUML_FENCED_CODE" value="false" /> - <option name="PUML_FENCED_CODE" value="false" /> - <option name="SIM_TOC_BLANK_LINE_SPACER" value="true" /> - </ParserOptions> - </ParserSettings> - <HtmlSettings headerTopEnabled="false" headerBottomEnabled="true" bodyTopEnabled="false" bodyBottomEnabled="false" embedUrlContent="false" addPageHeader="true" embedImages="false" embedHttpImages="false" imageUriSerials="false" addDocTypeHtml="true" noParaTags="false" plantUmlConversion="0" mathConversion="-1"> - <GeneratorProvider> - <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.generator" providerName="Default Swing HTML Generator" /> - </GeneratorProvider> - <headerTop /> - <headerBottom><script type = "text/x-mathjax-config"> - MathJax.Hub.Config({text2jax: {inlineMath: [['$', '$'], ['\\(','\\)']]}}); -</script> -<script type = "text/javascript" - src = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.1/MathJax.js?config=TeX-MNL-AM_CHTML"> -</script></headerBottom> - <bodyTop /> - <bodyBottom /> - </HtmlSettings> - <CssSettings previewScheme="UI_SCHEME" cssUri="" isCssUriEnabled="false" isCssUriSerial="true" isCssTextEnabled="false" isDynamicPageWidth="true"> - <StylesheetProvider> - <provider providerId="com.vladsch.idea.multimarkdown.editor.swing.html.css" providerName="Default Swing Stylesheet" /> - </StylesheetProvider> - <ScriptProviders /> - <cssText /> - <cssUriHistory /> - </CssSettings> - <AnnotatorSettings targetHasSpaces="true" linkCaseMismatch="true" wikiCaseMismatch="true" wikiLinkHasDashes="true" notUnderWikiHome="true" targetNotWikiPageExt="true" notUnderSourceWikiHome="true" targetNameHasAnchor="true" targetPathHasAnchor="true" wikiLinkHasSlash="true" wikiLinkHasSubdir="true" wikiLinkHasOnlyAnchor="true" linkTargetsWikiHasExt="true" linkTargetsWikiHasBadExt="true" notUnderSameRepo="true" targetNotUnderVcs="false" linkNeedsExt="true" linkHasBadExt="true" linkTargetNeedsExt="true" linkTargetHasBadExt="true" wikiLinkNotInWiki="true" imageTargetNotInRaw="true" repoRelativeAcrossVcsRoots="true" multipleWikiTargetsMatch="true" unresolvedLinkReference="true" linkIsIgnored="true" anchorIsIgnored="true" anchorIsUnresolved="true" anchorLineReferenceIsUnresolved="true" anchorLineReferenceFormat="true" anchorHasDuplicates="true" abbreviationDuplicates="true" abbreviationNotUsed="true" attributeIdDuplicateDefinition="true" attributeIdNotUsed="true" footnoteDuplicateDefinition="true" footnoteUnresolved="true" footnoteDuplicates="true" footnoteNotUsed="true" macroDuplicateDefinition="true" macroUnresolved="true" macroDuplicates="true" macroNotUsed="true" referenceDuplicateDefinition="true" referenceUnresolved="true" referenceDuplicates="true" referenceNotUsed="true" referenceUnresolvedNumericId="true" enumRefDuplicateDefinition="true" enumRefUnresolved="true" enumRefDuplicates="true" enumRefNotUsed="true" enumRefLinkUnresolved="true" enumRefLinkDuplicates="true" simTocUpdateNeeded="true" simTocTitleSpaceNeeded="true" /> - <HtmlExportSettings updateOnSave="false" parentDir="" targetDir="" cssDir="css" scriptDir="js" plainHtml="false" imageDir="" copyLinkedImages="false" imageUniquifyType="0" targetPathType="2" targetExt="" useTargetExt="false" noCssNoScripts="false" useElementStyleAttribute="false" linkToExportedHtml="true" exportOnSettingsChange="true" regenerateOnProjectOpen="false" linkFormatType="HTTP_ABSOLUTE" /> - <LinkMapSettings> - <textMaps /> - </LinkMapSettings> - </component> -</project> \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml index 281c19c9..a498ded6 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,11 +1,8 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> -<<<<<<< HEAD <component name="CMakeWorkspace" PROJECT_DIR="$PROJECT_DIR$/week02"> <contentRoot DIR="$PROJECT_DIR$" /> </component> -======= ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a <component name="JavaScriptSettings"> <option name="languageLevel" value="ES6" /> </component> diff --git a/.idea/workspace.xml b/.idea/workspace.xml index e9b38672..9037a5cb 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -1,13 +1,9 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> <component name="CMakeRunConfigurationManager" shouldGenerate="true" shouldDeleteObsolete="true"> -<<<<<<< HEAD <generated> - <config projectName="week02" targetName="removeOuterParentheses" /> + <config projectName="week02" targetName="347_topKFrequent" /> </generated> -======= - <generated /> ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a </component> <component name="CMakeSettings"> <configurations> @@ -15,87 +11,48 @@ </configurations> </component> <component name="ChangeListManager"> -<<<<<<< HEAD - <list default="true" id="dcdfbaa2-00ce-4e86-b0d5-267557e9ea82" name="Default Changelist" comment=""> - <change afterPath="$PROJECT_DIR$/week02/CMakeLists.txt" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/week02/Joffer59-maxSlidingwindow.cpp" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/week02/groupAnagrams.cpp" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/week02/intersection_of_2_arr.cpp" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/week02/intersection_of_2_arr_2.cpp" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/week02/removeOuterParentheses.cpp" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/week02/uniqueOccurences.cpp" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week01/2sum.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/week01/2sum.cpp" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week01/CMakeLists.txt" beforeDir="false" afterPath="$PROJECT_DIR$/week01/CMakeLists.txt" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week01/NOTE.md" beforeDir="false" afterPath="$PROJECT_DIR$/week01/NOTE.md" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week01/cmake-build-debug/40_Find_Ksmallest_nums" beforeDir="false" afterPath="$PROJECT_DIR$/week01/cmake-build-debug/40_Find_Ksmallest_nums" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o" beforeDir="false" afterPath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/40_Find_Ksmallest_nums.dir/40_Find_Ksmallest_nums.cpp.o" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/Makefile.cmake" beforeDir="false" afterPath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/Makefile.cmake" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/Makefile2" beforeDir="false" afterPath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/Makefile2" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/TargetDirectories.txt" beforeDir="false" afterPath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/TargetDirectories.txt" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/CXX.includecache" beforeDir="false" afterPath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/CXX.includecache" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o" beforeDir="false" afterPath="$PROJECT_DIR$/week01/cmake-build-debug/CMakeFiles/valid_anagram.dir/valid_anagram.cpp.o" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week01/cmake-build-debug/Makefile" beforeDir="false" afterPath="$PROJECT_DIR$/week01/cmake-build-debug/Makefile" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week01/cmake-build-debug/valid_anagram" beforeDir="false" afterPath="$PROJECT_DIR$/week01/cmake-build-debug/valid_anagram" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week01/cmake-build-debug/week01.cbp" beforeDir="false" afterPath="$PROJECT_DIR$/week01/cmake-build-debug/week01.cbp" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week01/valid_anagram.cpp" beforeDir="false" afterPath="$PROJECT_DIR$/week01/valid_anagram.cpp" afterDir="false" /> + <list default="true" id="74405890-5d28-471b-b0d6-892392ac75d9" name="Default Changelist" comment=""> + <change afterPath="$PROJECT_DIR$/week02/347_topKFrequent.cpp" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/.idea/algorithm018.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/algorithm018.iml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/.idea/leetcode/editor.xml" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/.idea/markdown-navigator.xml" beforeDir="false" /> + <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week02/CMakeLists.txt" beforeDir="false" afterPath="$PROJECT_DIR$/week02/CMakeLists.txt" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week02/cmake-build-debug/CMakeFiles/Makefile.cmake" beforeDir="false" afterPath="$PROJECT_DIR$/week02/cmake-build-debug/CMakeFiles/Makefile.cmake" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week02/cmake-build-debug/CMakeFiles/Makefile2" beforeDir="false" afterPath="$PROJECT_DIR$/week02/cmake-build-debug/CMakeFiles/Makefile2" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week02/cmake-build-debug/CMakeFiles/TargetDirectories.txt" beforeDir="false" afterPath="$PROJECT_DIR$/week02/cmake-build-debug/CMakeFiles/TargetDirectories.txt" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week02/cmake-build-debug/Makefile" beforeDir="false" afterPath="$PROJECT_DIR$/week02/cmake-build-debug/Makefile" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week02/cmake-build-debug/week02.cbp" beforeDir="false" afterPath="$PROJECT_DIR$/week02/cmake-build-debug/week02.cbp" afterDir="false" /> + <change beforePath="$PROJECT_DIR$/week02/本周作业.md" beforeDir="false" afterPath="$PROJECT_DIR$/week02/本周作业.md" afterDir="false" /> </list> - <ignored path="$PROJECT_DIR$/week01/cmake-build-debug/" /> <ignored path="$PROJECT_DIR$/week02/cmake-build-debug/" /> -======= - <list default="true" id="492ccc1f-36c5-4028-af63-9f3db3eaf736" name="Default Changelist" comment=""> - <change afterPath="$PROJECT_DIR$/week01/CMakeLists.txt" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/week01/lc-283_move-zeros.cpp" afterDir="false" /> - <change afterPath="$PROJECT_DIR$/week01/lc-283_movezeros.py" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week01/NOTE.md" beforeDir="false" afterPath="$PROJECT_DIR$/week01/NOTE.md" afterDir="false" /> - </list> ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" /> <option name="SHOW_DIALOG" value="false" /> <option name="HIGHLIGHT_CONFLICTS" value="true" /> <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" /> <option name="LAST_RESOLUTION" value="IGNORE" /> </component> -<<<<<<< HEAD <component name="ExecutionTargetManager" SELECTED_TARGET="CMakeBuildProfile:Debug" /> <component name="FileEditorManager"> - <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> - <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/week02/CMakeLists.txt"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="126"> - <caret line="7" column="65" selection-start-line="7" selection-start-column="65" selection-end-line="7" selection-end-column="65" /> - </state> - </provider> - </entry> - </file> - <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/week01/NOTE.md"> - <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> - <state split_layout="SPLIT"> - <first_editor relative-caret-position="828"> - <caret line="49" column="2" selection-start-line="49" selection-start-column="2" selection-end-line="49" selection-end-column="2" /> -======= - <component name="FileEditorManager"> - <leaf SIDE_TABS_SIZE_LIMIT_KEY="300"> + <leaf SIDE_TABS_SIZE_LIMIT_KEY="375"> <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/week01/NOTE.md"> + <entry file="file://$PROJECT_DIR$/week02/本周作业.md"> <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> <state split_layout="SPLIT"> - <first_editor relative-caret-position="586"> - <caret line="45" selection-start-line="45" selection-end-line="45" /> ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a + <first_editor relative-caret-position="468"> + <caret line="32" column="9" selection-start-line="32" selection-start-column="9" selection-end-line="32" selection-end-column="9" /> </first_editor> <second_editor /> </state> </provider> </entry> </file> -<<<<<<< HEAD - <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/week02/uniqueOccurences.cpp"> + <file pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/week02/347_topKFrequent.cpp"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="324"> - <caret line="18" column="35" selection-start-line="18" selection-start-column="35" selection-end-line="18" selection-end-column="35" /> + <state relative-caret-position="74"> + <caret line="31" column="28" selection-start-line="31" selection-start-column="28" selection-end-line="31" selection-end-column="28" /> <folding> <element signature="e#40#59#0" expanded="true" /> </folding> @@ -103,241 +60,113 @@ </provider> </entry> </file> - <file pinned="false" current-in-tab="true"> - <entry file="file://$PROJECT_DIR$/week02/removeOuterParentheses.cpp"> + <file pinned="false" current-in-tab="false"> + <entry file="file://$PROJECT_DIR$/week02/49_grouppAnagrams.cpp"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="535"> - <caret line="51" column="9" lean-forward="true" selection-start-line="51" selection-start-column="9" selection-end-line="51" selection-end-column="9" /> + <state relative-caret-position="509"> + <caret line="35" selection-start-line="35" selection-end-line="35" /> <folding> - <element signature="e#41#60#0" expanded="true" /> + <element signature="e#88#107#0" expanded="true" /> </folding> </state> </provider> </entry> </file> <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/week01/binary_tree.md"> - <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> - <state split_layout="FIRST"> - <first_editor relative-caret-position="54"> - <caret line="3" column="5" selection-start-line="3" selection-start-column="5" selection-end-line="3" selection-end-column="5" /> - </first_editor> - <second_editor /> -======= - <file pinned="false" current-in-tab="true"> - <entry file="file://$PROJECT_DIR$/week01/lc-283_move-zeros.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="76"> - <caret line="4" column="8" lean-forward="true" selection-start-line="4" selection-start-column="8" selection-end-line="4" selection-end-column="8" /> ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a - </state> - </provider> - </entry> - </file> - <file pinned="false" current-in-tab="false"> -<<<<<<< HEAD - <entry file="file://$PROJECT_DIR$/week02/intersection_of_2_arr.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="450"> - <caret line="25" column="19" selection-start-line="25" selection-start-column="19" selection-end-line="25" selection-end-column="19" /> -======= - <entry file="file://$PROJECT_DIR$/week01/lc-283_movezeros.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="114"> - <caret line="6" lean-forward="true" selection-start-line="6" selection-end-line="6" /> ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a - </state> - </provider> - </entry> - </file> - <file pinned="false" current-in-tab="false"> -<<<<<<< HEAD - <entry file="file://$PROJECT_DIR$/week02/Joffer59-maxSlidingwindow.cpp"> + <entry file="file://$PROJECT_DIR$/week02/CMakeLists.txt"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="1224"> - <caret line="68" column="32" selection-start-line="68" selection-start-column="32" selection-end-line="68" selection-end-column="32" /> + <state relative-caret-position="126"> + <caret line="7" column="32" selection-start-line="7" selection-start-column="32" selection-end-line="7" selection-end-column="32" /> </state> </provider> </entry> </file> <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/week02/intersection_of_2_arr_2.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="1386"> - <caret line="77" column="29" selection-start-line="77" selection-start-column="29" selection-end-line="77" selection-end-column="29" /> + <entry file="file://$PROJECT_DIR$/week02/HeapSort.md"> + <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> + <state split_layout="SPLIT"> + <first_editor /> + <second_editor /> </state> </provider> </entry> </file> <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/week01/2sum.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="252"> - <caret line="14" column="50" selection-start-line="14" selection-start-column="50" selection-end-line="14" selection-end-column="50" /> -======= - <entry file="file://$PROJECT_DIR$/week01/CMakeLists.txt"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="38"> - <caret line="2" selection-start-line="2" selection-end-line="2" /> ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a + <entry file="file://$PROJECT_DIR$/week02/Hasmap_summary.md"> + <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> + <state split_layout="SPLIT"> + <first_editor /> + <second_editor /> </state> </provider> </entry> </file> </leaf> </component> - <component name="FileTemplateManagerImpl"> - <option name="RECENT_TEMPLATES"> - <list> - <option value="CMakeLists.txt" /> -<<<<<<< HEAD -======= - <option value="Python Script" /> ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a - </list> - </option> - </component> <component name="Git.Settings"> <option name="RECENT_GIT_ROOT_PATH" value="$PROJECT_DIR$" /> </component> <component name="IdeDocumentHistory"> <option name="CHANGED_PATHS"> <list> -<<<<<<< HEAD - <option value="$PROJECT_DIR$/week01/plusone.cpp" /> - <option value="$PROJECT_DIR$/week01/lc-waterContainer.cpp" /> - <option value="$PROJECT_DIR$/week01/reorder_list.cpp" /> - <option value="$PROJECT_DIR$/week01/3sum.cpp" /> - <option value="$PROJECT_DIR$/week01/swapPairs.cpp" /> - <option value="$PROJECT_DIR$/week01/reverseLinkedList_recurse.cpp" /> - <option value="$PROJECT_DIR$/week01/merge_two_sorted_linkedlist.cpp" /> - <option value="$PROJECT_DIR$/week01/waterContainer.cpp" /> - <option value="$PROJECT_DIR$/week01/studyStack.cpp" /> - <option value="$PROJECT_DIR$/week01/studyDeque.cpp" /> - <option value="$PROJECT_DIR$/week01/studyQuene.cpp" /> - <option value="$PROJECT_DIR$/week01/compare_Queue_PriorityQueue.cpp" /> - <option value="$PROJECT_DIR$/week01/remove-duplicates-from-sorted-array.cpp" /> - <option value="$PROJECT_DIR$/week01/rotate-array.cpp" /> - <option value="$PROJECT_DIR$/week01/design_circular_deque.cpp" /> - <option value="$PROJECT_DIR$/week01/trapping_rain_water.cpp" /> - <option value="$PROJECT_DIR$/week01/bulls_and_cow.cpp" /> - <option value="$PROJECT_DIR$/week01/binary_tree.md" /> - <option value="$PROJECT_DIR$/week01/binary_tree_inorder_travelsal.cpp" /> - <option value="$PROJECT_DIR$/week01/40_Find_Ksmallest_nums.cpp" /> - <option value="$PROJECT_DIR$/week01/NOTE.md" /> - <option value="$PROJECT_DIR$/week02/intersection_of_2_arr_2.cpp" /> - <option value="$PROJECT_DIR$/week01/2sum.cpp" /> - <option value="$PROJECT_DIR$/week02/groupAnagrams.cpp" /> - <option value="$PROJECT_DIR$/week01/CMakeLists.txt" /> - <option value="$PROJECT_DIR$/week01/valid_anagram.cpp" /> - <option value="$PROJECT_DIR$/week02/intersection_of_2_arr.cpp" /> - <option value="$PROJECT_DIR$/week02/Joffer59-maxSlidingwindow.cpp" /> - <option value="$PROJECT_DIR$/week02/uniqueOccurences.cpp" /> + <option value="$PROJECT_DIR$/week01/move-zeros.cpp" /> + <option value="$PROJECT_DIR$/week02/homework_preview.md" /> + <option value="$PROJECT_DIR$/week02/Homework_Preview.md" /> + <option value="$PROJECT_DIR$/week02/242_isAnagram.cpp" /> + <option value="$PROJECT_DIR$/week02/1_twosum.cpp" /> + <option value="$PROJECT_DIR$/week02/preorder.cpp" /> + <option value="$PROJECT_DIR$/week02/49_grouppAnagrams.cpp" /> + <option value="$PROJECT_DIR$/week02/inorderTraversal.cpp" /> + <option value="$PROJECT_DIR$/week02/144_preorderTraversal.cpp" /> + <option value="$PROJECT_DIR$/week02/429_levelOrder.cpp" /> + <option value="$PROJECT_DIR$/week02/49_UglyNumber.cpp" /> + <option value="$PROJECT_DIR$/week02/本周作业.md" /> <option value="$PROJECT_DIR$/week02/CMakeLists.txt" /> - <option value="$PROJECT_DIR$/week02/removeOuterParentheses.cpp" /> + <option value="$PROJECT_DIR$/week02/347_topKFrequent.cpp" /> </list> </option> </component> - <component name="JsBowerSettings"> - <node-interpreter value="project" /> - <bower-package value="" /> - <bower.json value="" /> - </component> <component name="ProjectFrameBounds" extendedState="6"> <option name="x" value="102" /> <option name="y" value="169" /> <option name="width" value="854" /> <option name="height" value="789" /> -======= - <option value="$PROJECT_DIR$/week01/CMakeLists.txt" /> - <option value="$PROJECT_DIR$/week01/NOTE.md" /> - <option value="$PROJECT_DIR$/week01/lc-283_movezeros.py" /> - <option value="$PROJECT_DIR$/week01/lc-283_move-zeros.cpp" /> - </list> - </option> - </component> - <component name="JsFlowSettings"> - <service-enabled>true</service-enabled> - <exe-path /> - <other-services-enabled>true</other-services-enabled> - <auto-save>true</auto-save> - </component> - <component name="ProjectFrameBounds" extendedState="6"> - <option name="x" value="266" /> - <option name="y" value="-8" /> - <option name="width" value="1072" /> - <option name="height" value="1005" /> ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a - </component> - <component name="ProjectLevelVcsManager"> - <ConfirmationsSetting value="2" id="Add" /> </component> <component name="ProjectView"> <navigator proportions="" version="1"> <foldersAlwaysOnTop value="true" /> </navigator> <panes> -<<<<<<< HEAD -======= - <pane id="Scope" /> ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a <pane id="ProjectPane"> <subPane> <expand> <path> -<<<<<<< HEAD <item name="week02" type="b2602c69:ProjectViewProjectNode" /> <item name="algorithm018" type="462c0819:PsiDirectoryNode" /> </path> <path> <item name="week02" type="b2602c69:ProjectViewProjectNode" /> <item name="algorithm018" type="462c0819:PsiDirectoryNode" /> - <item name="week02" type="462c0819:PsiDirectoryNode" /> -======= - <item name="algorithm018" type="b2602c69:ProjectViewProjectNode" /> - <item name="algorithm018" type="462c0819:PsiDirectoryNode" /> + <item name="week01" type="462c0819:PsiDirectoryNode" /> </path> <path> - <item name="algorithm018" type="b2602c69:ProjectViewProjectNode" /> + <item name="week02" type="b2602c69:ProjectViewProjectNode" /> <item name="algorithm018" type="462c0819:PsiDirectoryNode" /> - <item name="week01" type="462c0819:PsiDirectoryNode" /> ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a + <item name="week02" type="462c0819:PsiDirectoryNode" /> </path> </expand> <select /> </subPane> </pane> -<<<<<<< HEAD <pane id="Scope" /> -======= ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a </panes> </component> <component name="PropertiesComponent"> <property name="WebServerToolWindowFactoryState" value="false" /> -<<<<<<< HEAD - <property name="last_opened_file_path" value="$PROJECT_DIR$/../leetcode" /> - <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> - <property name="nodejs_npm_path_reset_for_default_project" value="true" /> - <property name="nodejs_package_manager_path" value="npm" /> - <property name="settings.editor.selected.configurable" value="preferences.pluginManager" /> - </component> - <component name="RecentsManager"> - <key name="MoveFile.RECENT_KEYS"> - <recent name="$PROJECT_DIR$/week01/" /> - </key> -======= <property name="last_opened_file_path" value="$PROJECT_DIR$" /> - <property name="node.js.detected.package.stylelint" value="true" /> - <property name="node.js.detected.package.tslint" value="true" /> - <property name="node.js.path.for.package.stylelint" value="project" /> - <property name="node.js.path.for.package.tslint" value="project" /> - <property name="node.js.selected.package.stylelint" value="" /> - <property name="node.js.selected.package.tslint" value="" /> <property name="nodejs_interpreter_path.stuck_in_default_project" value="undefined stuck path" /> <property name="nodejs_npm_path_reset_for_default_project" value="true" /> - <property name="settings.editor.selected.configurable" value="com.jetbrains.python.configuration.PyActiveSdkModuleConfigurable" /> ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a + <property name="settings.editor.selected.configurable" value="preferences.pluginManager" /> </component> <component name="RunDashboard"> <option name="ruleStates"> @@ -351,423 +180,232 @@ </list> </option> </component> -<<<<<<< HEAD <component name="RunManager"> - <configuration name="removeOuterParentheses" type="CMakeRunConfiguration" factoryName="Application" PASS_PARENT_ENVS_2="true" PROJECT_NAME="week02" TARGET_NAME="removeOuterParentheses" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="week02" RUN_TARGET_NAME="removeOuterParentheses"> + <configuration name="347_topKFrequent" type="CMakeRunConfiguration" factoryName="Application" PASS_PARENT_ENVS_2="true" PROJECT_NAME="week02" TARGET_NAME="347_topKFrequent" CONFIG_NAME="Debug" RUN_TARGET_PROJECT_NAME="week02" RUN_TARGET_NAME="347_topKFrequent"> <method v="2"> <option name="com.jetbrains.cidr.execution.CidrBuildBeforeRunTaskProvider$BuildBeforeRunTask" enabled="true" /> </method> </configuration> </component> -======= ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a <component name="SvnConfiguration"> <configuration /> </component> <component name="TaskManager"> <task active="true" id="Default" summary="Default task"> -<<<<<<< HEAD - <changelist id="dcdfbaa2-00ce-4e86-b0d5-267557e9ea82" name="Default Changelist" comment="" /> - <created>1603197081186</created> + <changelist id="74405890-5d28-471b-b0d6-892392ac75d9" name="Default Changelist" comment="" /> + <created>1604196033828</created> <option name="number" value="Default" /> <option name="presentableId" value="Default" /> - <updated>1603197081186</updated> - <workItem from="1603197084454" duration="10678000" /> - <workItem from="1603236886278" duration="754000" /> - <workItem from="1603240240394" duration="1729000" /> - <workItem from="1603272315980" duration="45000" /> - <workItem from="1603272393481" duration="107000" /> - <workItem from="1603272529404" duration="548000" /> - <workItem from="1603280818376" duration="4348000" /> - <workItem from="1603370481625" duration="5570000" /> - <workItem from="1603442780759" duration="14579000" /> - <workItem from="1603498341167" duration="28112000" /> - <workItem from="1603601980908" duration="8310000" /> - <workItem from="1603612488583" duration="229000" /> - <workItem from="1603612732428" duration="977000" /> - <workItem from="1603613726599" duration="1665000" /> - <workItem from="1603622153484" duration="56000" /> - <workItem from="1603622227443" duration="6379000" /> - <workItem from="1603710958928" duration="11679000" /> - <workItem from="1603799405958" duration="9228000" /> - <workItem from="1603884257090" duration="9013000" /> -======= - <changelist id="492ccc1f-36c5-4028-af63-9f3db3eaf736" name="Default Changelist" comment="" /> - <created>1603111084520</created> - <option name="number" value="Default" /> - <option name="presentableId" value="Default" /> - <updated>1603111084520</updated> - <workItem from="1603111085881" duration="1392000" /> - <workItem from="1603112514728" duration="7750000" /> ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a + <updated>1604196033828</updated> + <workItem from="1604196035098" duration="1161000" /> + <workItem from="1604198784084" duration="26983000" /> </task> <servers /> </component> <component name="TimeTrackingManager"> -<<<<<<< HEAD - <option name="totallyTimeSpent" value="114006000" /> + <option name="totallyTimeSpent" value="28144000" /> </component> <component name="ToolWindowManager"> <frame x="67" y="25" width="1853" height="1055" extended-state="6" /> - <layout> - <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.23997773" /> - <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> - <window_info id="Favorites" order="2" side_tool="true" /> - <window_info anchor="bottom" id="Message" order="0" /> - <window_info anchor="bottom" id="Find" order="1" /> - <window_info anchor="bottom" id="Run" order="2" sideWeight="0.4994432" weight="0.27041942" /> - <window_info anchor="bottom" id="Debug" order="3" weight="0.39955848" /> -======= - <option name="totallyTimeSpent" value="9142000" /> - </component> - <component name="ToolWindowManager"> - <frame x="-8" y="-8" width="1936" height="1056" extended-state="6" /> <editor active="true" /> <layout> - <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.07089552" /> + <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.25389755" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Favorites" order="2" side_tool="true" /> - <window_info anchor="bottom" id="Inspection Results" weight="0.329718" /> + <window_info anchor="bottom" id="Messages" weight="0.3289183" /> + <window_info anchor="bottom" id="CMake" /> <window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Find" order="1" /> - <window_info anchor="bottom" id="Run" order="2" /> + <window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.21081677" /> <window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> <window_info anchor="bottom" id="TODO" order="6" /> <window_info anchor="bottom" id="Database Changes" order="7" /> -<<<<<<< HEAD - <window_info anchor="bottom" id="Messages" order="8" weight="0.32781458" /> - <window_info anchor="bottom" id="Terminal" order="9" /> - <window_info anchor="bottom" id="Event Log" order="10" sideWeight="0.50055677" side_tool="true" weight="0.3082873" /> - <window_info anchor="bottom" id="Version Control" order="11" /> - <window_info anchor="bottom" id="CMake" order="12" /> -======= <window_info anchor="bottom" id="Version Control" order="8" /> <window_info anchor="bottom" id="Terminal" order="9" /> <window_info anchor="bottom" id="Event Log" order="10" side_tool="true" /> ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a <window_info anchor="right" id="Commander" internal_type="SLIDING" order="0" type="SLIDING" weight="0.4" /> <window_info anchor="right" id="Ant Build" order="1" weight="0.25" /> <window_info anchor="right" content_ui="combo" id="Hierarchy" order="2" weight="0.25" /> - <window_info anchor="right" id="Database" order="3" /> -<<<<<<< HEAD - <window_info anchor="right" id="leetcode" order="4" side_tool="true" weight="0.32962137" /> -======= ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a + <window_info anchor="right" id="leetcode" order="3" side_tool="true" /> + <window_info anchor="right" id="Database" order="4" /> </layout> </component> <component name="TypeScriptGeneratedFilesManager"> <option name="version" value="1" /> </component> -<<<<<<< HEAD <component name="editorHistoryManager"> - <entry file="file://$PROJECT_DIR$/../leetcode/leetcode/editor/cn/[1]两数之和.cpp"> - <provider selected="true" editor-type-id="text-editor" /> - </entry> - <entry file="file://$PROJECT_DIR$/week01/3sum.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="198"> - <caret line="11" column="34" selection-start-line="11" selection-start-column="12" selection-end-line="12" selection-end-column="57" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/week01/plusone.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="18"> - <caret line="20" selection-start-line="20" selection-end-line="20" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/week01/movezeros.py" /> - <entry file="file://$PROJECT_DIR$/week01/merge_two_sorted_linkedlist.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="-453"> - <caret line="43" column="8" lean-forward="true" selection-start-line="43" selection-start-column="8" selection-end-line="43" selection-end-column="8" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/week01/reorder_list.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="126"> - <caret line="7" selection-start-line="7" selection-end-line="7" /> + <entry file="file://$PROJECT_DIR$/week01/binary_tree.md"> + <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> + <state split_layout="SPLIT"> + <first_editor /> + <second_editor /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/week01/swapPairs.cpp"> + <entry file="file://$PROJECT_DIR$/week02/homework_preview.md"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="252"> - <caret line="14" column="5" selection-start-line="14" selection-start-column="5" selection-end-line="14" selection-end-column="5" /> + <state relative-caret-position="342"> + <caret line="19" column="9" lean-forward="true" selection-start-line="19" selection-start-column="9" selection-end-line="19" selection-end-column="9" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/week01/watercontainer.js" /> - <entry file="file://$PROJECT_DIR$/week01/waterContainer.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="213"> - <caret line="32" column="5" lean-forward="true" selection-start-line="32" selection-start-column="5" selection-end-line="32" selection-end-column="5" /> + <entry file="file://$PROJECT_DIR$/week02/Homework_Preview.md"> + <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> + <state split_layout="SPLIT"> + <first_editor relative-caret-position="378"> + <caret line="21" column="9" selection-start-line="21" selection-start-column="9" selection-end-line="21" selection-end-column="9" /> + </first_editor> + <second_editor /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/week01/studyDeque.cpp"> + <entry file="file://$PROJECT_DIR$/week01/move-zeros.cpp"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="648"> - <caret line="36" selection-start-line="36" selection-end-line="36" /> + <state relative-caret-position="504"> + <caret line="28" selection-start-line="28" selection-end-line="28" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/week01/rotate-array.cpp"> + <entry file="file://$PROJECT_DIR$/week02/1_twosum.cpp"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="183"> - <caret line="21" column="45" selection-start-line="21" selection-start-column="45" selection-end-line="21" selection-end-column="45" /> + <state relative-caret-position="414"> + <caret line="23" column="2" lean-forward="true" selection-start-line="23" selection-start-column="2" selection-end-line="23" selection-end-column="2" /> <folding> - <element signature="e#303#322#0" expanded="true" /> - <element signature="e#957#985#0" expanded="true" /> + <element signature="e#40#59#0" expanded="true" /> </folding> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/week01/remove-duplicates-from-sorted-array.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="180"> - <caret line="10" column="18" lean-forward="true" selection-start-line="10" selection-start-column="18" selection-end-line="10" selection-end-column="18" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/week01/reverseLinkedList_recurse.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="432"> - <caret line="24" column="5" selection-start-line="24" selection-start-column="5" selection-end-line="24" selection-end-column="5" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/week01/studyStack.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="216"> - <caret line="13" column="84" selection-start-line="13" selection-start-column="84" selection-end-line="13" selection-end-column="84" /> + <entry file="file://$PROJECT_DIR$/week01/NOTE.md"> + <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> + <state split_layout="SPLIT"> + <first_editor relative-caret-position="-2340" /> + <second_editor /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/week01/studyQuene.cpp"> + <entry file="file://$PROJECT_DIR$/week01/valid_anagram.cpp"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="525"> - <caret line="32" selection-start-line="32" selection-end-line="32" /> + <state relative-caret-position="609"> + <caret line="75" column="2" selection-start-line="74" selection-end-line="78" selection-end-column="23" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/week01/compare_Queue_PriorityQueue.cpp"> + <entry file="file://$PROJECT_DIR$/week02/242_isAnagram.cpp"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="525"> - <caret line="32" selection-start-line="32" selection-end-line="32" /> + <state relative-caret-position="342"> + <caret line="34" column="20" selection-start-line="33" selection-start-column="11" selection-end-line="34" selection-end-column="20" /> + <folding> + <element signature="e#39#58#0" expanded="true" /> + </folding> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/week01/move-zeros.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="18"> - <caret line="4" column="8" lean-forward="true" selection-start-line="4" selection-start-column="8" selection-end-line="4" selection-end-column="8" /> + <entry file="file://$PROJECT_DIR$/week02/HeapSort.md"> + <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> + <state split_layout="SPLIT"> + <first_editor /> + <second_editor /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/week01/trapping_rain_water.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="2484"> - <caret line="138" column="48" selection-start-line="138" selection-start-column="48" selection-end-line="138" selection-end-column="48" /> + <entry file="file://$PROJECT_DIR$/week02/Hasmap_summary.md"> + <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> + <state split_layout="SPLIT"> + <first_editor /> + <second_editor /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/week01/bulls_and_cow.cpp"> + <entry file="file://$PROJECT_DIR$/week02/49_grouppAnagrams.cpp"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="391"> - <caret line="54" column="35" selection-start-line="54" selection-start-column="35" selection-end-line="54" selection-end-column="35" /> + <state relative-caret-position="509"> + <caret line="35" selection-start-line="35" selection-end-line="35" /> + <folding> + <element signature="e#88#107#0" expanded="true" /> + </folding> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/week01/design_circular_deque.cpp"> + <entry file="file://$PROJECT_DIR$/week02/inorderTraversal.cpp"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="1098"> - <caret line="62" selection-start-line="62" selection-end-line="62" /> + <state relative-caret-position="270"> + <caret line="39" column="24" selection-start-line="39" selection-start-column="24" selection-end-line="39" selection-end-column="24" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/week01/40_find_k_smallest_nums.cpp" /> - <entry file="file://$PROJECT_DIR$/week01/40_Find_Ksmallest_nums.cpp"> + <entry file="file://$PROJECT_DIR$/week02/preorder.cpp"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="576"> - <caret line="32" selection-start-line="32" selection-end-line="32" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/week01/binary_tree_inorder_travelsal.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="90"> - <caret line="5" column="17" selection-start-line="5" selection-start-column="17" selection-end-line="5" selection-end-column="17" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/week01/CMakeLists.txt"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="126"> - <caret line="7" column="47" selection-start-line="7" selection-start-column="47" selection-end-line="7" selection-end-column="47" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/week01/valid_anagram.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="121"> - <caret line="19" column="30" selection-start-line="19" selection-start-column="30" selection-end-line="19" selection-end-column="30" /> + <caret line="53" column="20" selection-start-line="53" selection-start-column="20" selection-end-line="53" selection-end-column="20" /> <folding> - <element signature="e#180#199#0" expanded="true" /> + <element signature="e#40#59#0" expanded="true" /> </folding> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/week02/groupAnagrams.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="420"> - <caret line="40" column="5" selection-start-line="40" selection-start-column="5" selection-end-line="40" selection-end-column="5" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/week01/binary_tree.md"> - <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> - <state split_layout="FIRST"> - <first_editor relative-caret-position="54"> - <caret line="3" column="5" selection-start-line="3" selection-start-column="5" selection-end-line="3" selection-end-column="5" /> - </first_editor> - <second_editor /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/week02/intersection_of_2_arr.cpp"> + <entry file="file://$PROJECT_DIR$/week02/429_levelOrder.cpp"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="450"> - <caret line="25" column="19" selection-start-line="25" selection-start-column="19" selection-end-line="25" selection-end-column="19" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/week02/Joffer59-maxSlidingwindow.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="1224"> - <caret line="68" column="32" selection-start-line="68" selection-start-column="32" selection-end-line="68" selection-end-column="32" /> + <state relative-caret-position="522"> + <caret line="29" column="36" selection-start-line="29" selection-start-column="36" selection-end-line="29" selection-end-column="36" /> + <folding> + <element signature="e#50#69#0" expanded="true" /> + </folding> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/week02/intersection_of_2_arr_2.cpp"> + <entry file="file://$PROJECT_DIR$/week02/144_preorderTraversal.cpp"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="1386"> - <caret line="77" column="29" selection-start-line="77" selection-start-column="29" selection-end-line="77" selection-end-column="29" /> + <state relative-caret-position="490"> + <caret line="61" column="13" selection-start-line="61" selection-start-column="13" selection-end-line="61" selection-end-column="13" /> + <folding> + <element signature="e#39#58#0" expanded="true" /> + </folding> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/week01/2sum.cpp"> + <entry file="file://$PROJECT_DIR$/week02/49_UglyNumber.cpp"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="252"> - <caret line="14" column="50" selection-start-line="14" selection-start-column="50" selection-end-line="14" selection-end-column="50" /> -======= - <component name="XSLT-Support.FileAssociations.UIState"> - <expand> - <path> - <item name="algorithm018" type="b2602c69:ProjectViewProjectNode" /> - <item name="algorithm018" type="462c0819:PsiDirectoryNode" /> - </path> - </expand> - <select /> - </component> - <component name="editorHistoryManager"> - <entry file="file://$PROJECT_DIR$/week01/CMakeLists.txt"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="38"> - <caret line="2" selection-start-line="2" selection-end-line="2" /> ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a + <state relative-caret-position="164"> + <caret line="46" column="18" lean-forward="true" selection-start-line="46" selection-start-column="18" selection-end-line="46" selection-end-column="18" /> + <folding> + <element signature="e#40#59#0" expanded="true" /> + </folding> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/week01/NOTE.md"> -<<<<<<< HEAD - <provider editor-type-id="text-editor"> - <state relative-caret-position="120"> - <caret line="8" column="21" selection-start-line="7" selection-start-column="21" selection-end-line="8" selection-end-column="21" /> - </state> - </provider> - <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> - <state split_layout="SPLIT"> - <first_editor relative-caret-position="828"> - <caret line="49" column="2" selection-start-line="49" selection-start-column="2" selection-end-line="49" selection-end-column="2" /> -======= + <entry file="file://$PROJECT_DIR$/week02/本周作业.md"> <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> <state split_layout="SPLIT"> - <first_editor relative-caret-position="586"> - <caret line="45" selection-start-line="45" selection-end-line="45" /> ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a + <first_editor relative-caret-position="468"> + <caret line="32" column="9" selection-start-line="32" selection-start-column="9" selection-end-line="32" selection-end-column="9" /> </first_editor> <second_editor /> </state> </provider> -<<<<<<< HEAD - </entry> - <entry file="file://$PROJECT_DIR$/week02/uniqueOccurences.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="324"> - <caret line="18" column="35" selection-start-line="18" selection-start-column="35" selection-end-line="18" selection-end-column="35" /> - <folding> - <element signature="e#40#59#0" expanded="true" /> - </folding> - </state> - </provider> </entry> <entry file="file://$PROJECT_DIR$/week02/CMakeLists.txt"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="126"> - <caret line="7" column="65" selection-start-line="7" selection-start-column="65" selection-end-line="7" selection-end-column="65" /> + <caret line="7" column="32" selection-start-line="7" selection-start-column="32" selection-end-line="7" selection-end-column="32" /> </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/week02/removeOuterParentheses.cpp"> + <entry file="file://$PROJECT_DIR$/week02/347_topKFrequent.cpp"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="535"> - <caret line="51" column="9" lean-forward="true" selection-start-line="51" selection-start-column="9" selection-end-line="51" selection-end-column="9" /> + <state relative-caret-position="74"> + <caret line="31" column="28" selection-start-line="31" selection-start-column="28" selection-end-line="31" selection-end-column="28" /> <folding> - <element signature="e#41#60#0" expanded="true" /> + <element signature="e#40#59#0" expanded="true" /> </folding> -======= - <provider editor-type-id="text-editor"> - <state relative-caret-position="342"> - <caret line="18" column="6" selection-start-line="18" selection-start-column="6" selection-end-line="18" selection-end-column="6" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/week01/lc-283_movezeros.py"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="114"> - <caret line="6" lean-forward="true" selection-start-line="6" selection-end-line="6" /> - </state> - </provider> - </entry> - <entry file="file://$PROJECT_DIR$/week01/lc-283_move-zeros.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="76"> - <caret line="4" column="8" lean-forward="true" selection-start-line="4" selection-start-column="8" selection-end-line="4" selection-end-column="8" /> ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a </state> </provider> </entry> </component> -<<<<<<< HEAD <component name="masterDetails"> <states> - <state key="MarkdownNavigator.LinkMap.UI"> - <settings> - <splitter-proportions> - <option name="proportions"> - <list> - <option value="0.2" /> - </list> - </option> - </splitter-proportions> - </settings> - </state> <state key="ScopeChooserConfigurable.UI"> <settings> <splitter-proportions> @@ -781,6 +419,4 @@ </state> </states> </component> -======= ->>>>>>> 30406604fd78d116e8da6e230fba9c90c7db3e4a </project> \ No newline at end of file diff --git a/week02/347_topKFrequent.cpp b/week02/347_topKFrequent.cpp new file mode 100644 index 00000000..5f4e3f17 --- /dev/null +++ b/week02/347_topKFrequent.cpp @@ -0,0 +1,75 @@ +// +// Created by lewang on 11/1/20. +// + +#include <iostream> +#include <vector> +#include <unordered_map> +#include <algorithm> +#include <queue> +using namespace std; + +class Solution { +public: + vector<int> topKFrequent(vector<int>&nums,int k) { + unordered_map<int,int> map; + sort(nums.begin(),nums.end()); + vector<int> res; + for (int i = 0; i < nums.size(); ++i) { + map[nums[i]]++; + } + priority_queue<pair<int,int>> pq; + for(auto it = map.begin(); it != map.end(); it++) { + pq.push(make_pair(it->second, it->first)); + if (pq.size() > (int) map.size() - k) { + res.push_back(pq.top().second); + pq.pop(); + } + } + return res; + } + +//看不懂,但是submit可以通过, 学习不来.... + vector<int> topKFrequent2(vector<int>& nums, int k) { + using mapIter = unordered_map<int, size_t>::iterator; + unordered_map<int,size_t> freqCount; // num -> frequency + for(int num : nums){ ++freqCount[num]; } + priority_queue<mapIter, vector<mapIter>, function<bool(mapIter, mapIter)>> topkHeap( + [](mapIter lhs, mapIter rhs) + { + return lhs->second > rhs->second; // build an min-heap! + }, + vector<mapIter>() + ); // frequency -> num + for(mapIter iter = freqCount.begin(); iter != freqCount.end(); ++iter) + { + topkHeap.push(iter); + if(topkHeap.size() > k){ topkHeap.pop(); } // remove the min value currently + } + // now heap hold the elements that elements less than them are all removed. + vector<int> result(k); + for(int i = k-1; i >= 0; --i) + { + mapIter iter = topkHeap.top(); + result[i] = iter->first; + topkHeap.pop(); + } + return result; + } + +}; + +int main(){ + vector<int> nums = {1,1,1,1,1,2,2,2,2,2,2,2,2,2,3,3,3,3}; + int k =2; + Solution test; + vector<int> res; + + res=test.topKFrequent(nums,k); + for(auto i: res){ + cout << i<<endl; + } + + + return 0; +} \ No newline at end of file diff --git a/week02/CMakeLists.txt b/week02/CMakeLists.txt index 61e807c0..9f7079d8 100644 --- a/week02/CMakeLists.txt +++ b/week02/CMakeLists.txt @@ -5,4 +5,4 @@ set(CMAKE_CXX_STANDARD_REQUIRED ) #add_executable (move_zeros lc-283_move-zeros.cpp) #target_link_libraries (move_zeros LINK_PUBLIC week01) -add_executable (49_UglyNumber 49_UglyNumber.cpp) +add_executable (347_topKFrequent 347_topKFrequent.cpp) diff --git a/week02/cmake-build-debug/347_topKFrequent b/week02/cmake-build-debug/347_topKFrequent new file mode 100755 index 0000000000000000000000000000000000000000..bdd54cfa41ce419fb42cf34812d8a15b887ad9de GIT binary patch literal 363968 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 F^b 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 X#K;~<ls&)CrM_eJ>O=WZlC1oHQfo3B literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.o b/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..390871d7770b060d3e1bf8e04bfab008b5b7f6b4 GIT binary patch literal 596568 zcmeFad3+Sb7B<{HSs?=n1TeB05M-BCK@bT-G$@-3?uZDeC@3m%N6~;d#vlqVxT2!C zi;99?(Xa@(qgN4kTo5qo<*HY4<$IoUs;awZ21MU`zwiCy%kS57PS<nl)TvXa*6x{H zRyz2gnD2Y`&-V`Sf;*e)dFu;u-A##bCEi|{turZmB|b=J7<!eV2}7?ow9?RP46QPB zrlHpwI?K@O487ja*`RX_e}kbng5G5Kn?dIq{uV=T1-;Giw}akc_&W`q2YQ#`?*_fc z@bf|MHT->sE->_d&<70vprH>L`Y`AthJO_FF~cteecbR*fIeyXMW9a^{%O#~hF=2u zjNzXJ{fFV7Gjyq;&x5{T_-fE)hF=c40@q4&zY27<;n#q^WcZgsUorfvpsyMJb<j5q zzZUdO!@mXkPs6_r`i|k(8TziF>p|Z${QICE82&@hj|~5@p`U<mF#M;WpBesh&@T+X z(a<kJHyM62=oZ6&WoQlP*M|QF^jpLK3v{dD{|)+`;lBs{!SMe9{n7A08M+PhXT$#j z`m5o8GxT>u{{Y=?crS+jzzcmM2AW~`OwcUDXB(PhXs)5P46O~CXZSd19mCf(G#|9U z@by6J8@>><f#Dm1HZuHfh8BVDZurKAHUVvF_-3HZ4ZjCyvEf^Qwlw^npsftw8gwti zw=uLWXgkBV2kl_^j-Z_kzc*-S!*>DgYWQxT-3{LZbRWa-3)<80y+HRfd~eV`hTk8w zui+0cw4b3Rp#2ShAm{+Y4+JeW{6U}x8@>#5kl_z8^iV?w8#)AZsNsi!4mbQ^pobg& z2t$uFbOh*8hCdqg7{eb6dYs{p2R*^?BSB9z{3y_q3_lw5WW$dE9c%b;pr;uARM685 zKOXdS!=GX31kj0wKNIvU!%qS|+wkWYdaj|94J`*f&+zAiUSRkOK`%1=#h{lMehTQN zhQADSs^KpOy~6MnhE4;WZulz=odJ54;S-=&8@>|s8pBr^IurC-!_PAGI?(G4KO1z8 z;cqbXM$nrKe>3P@!`}jWtKn}0z1{G47<wn@Jj34wdbi>40iAF7dqM9r`~uMX4gY|l z4}v~q_=iCsG5n*Tj~RX;=;MZe0`y74F9Lna@K1v-HvAIMXAJ)==syhq9OzQRKX2#@ zpw)(72D;qvD?nEo{zcGLhF@*y8qk*v|1#(+hJO|GHN(Gd=o_GG4gV(STZaE9=-Y;W z2Xvj`-vwQ7`1cHbAM^vme+c@K;Xelb#PAzHKQ;Vkpr0H53($>*|I*M+hHeJkV)(B> zYYhLjq2GXhYxsYGZZ-VB4gC)Ed&B===zl<eH2hDX+YJA+p}&CsYWUwke>eOehHf|1 z%fLLsi*pHRhT$^}%`!9_G{^9{hSmbDZTLJx<Dhj6U)Rul&;rBP1FdiPLeK_=Z)j*E zLw5r$GW_m_HU@2C_@;(7GqgGA9)>SAv;}BO!|w^&%J8j0_cDAN(6)we2io579Y8x8 zz7y!)hVKm8#qeE0yBWSaXb;2h1G=x_dxG{d{C=Rl4c`ZJf5Z0$J;3n&KuZkYAM`-O z4={8fXsO{30zKI9WuSu$e~6)nf(|zP5JQI=I?T}Fpoba$aL^+Re<bJ#!yg5DwBe5d zJ=XBYfgW%86AT?`=!u}C41W^nXv3du=orwkh93udis4TMJ<agrK~FdQ8K4skKN0jy z!=D8@$?#_zdJgEhhMx>tZus*+&o}%9hF%DIk>M{k^b*i1hQAc_GQ&?b^m5QE3}0dB zG()F@UTOFlpjR0_0eZFJD?zU@e3hXyL9aFZEYRx=e?91I!_NV|!SFX4dK2i)hMx<1 zi{Wntz0L5qgWh5II}M!&dY9qv2EE7d^9{Wh^ghEc0KMPv4}d;s_=i9rHvA)oJ_`Dn z;TM8FZuln*eG+t$;hzG1+VG1FT>|=y;hzQlhvA<ybg7}w8~Orhwc(c;y4=tepeqgk zBIqi^uLfOX_?JLmHvB7~uNwX}(AN$B2IyMDziH@Op#L=d+lIaay3X+Lg046Gd!X+d z{sYht4gV47$A<p|bc5kP1^vwMpM!p3_>G`n8h(?Zn?bi2{wvTL!+#C>jp4sF^k1M` z4gYV@?+pJv=nsbf59p7E{|R)P;eQ7G#qhs^{$}{!4gJH=?S^`pm{WLhUIEQ8d?sj? z;j<0R0nIghEkkP?ng<#;d>upUg612(z|dx(&2fz=OKj{vqW_UclwJPyRVaIGS!HJH zwqVK<rR%#^53Xtr-s``#K9j0StIHCrH#4QIYDD$m#Fv8;{~Db5ba0}kEb$58sbz^b z%M!l?LP3Vr(@)#JowF#_%nM6YRuO^1sby79ok})Th6=9>k^+qiO}~ISDwWubiRqKl zr6MoPE~`>B;j~Vxo_v@~)%sO>iRlxdqf$N-tIDeSvf5hr#PYJrEZ&v@NW5ztVzg@h znj8Kh0@1p{KME(-msJi~KenuUT%0}m;F^-M#0u1?+Deo`#8rpLJa;R8Hq8)7sTG&6 zyb9$W-~WXEBS)@a<Cax?U67daTcUhh#gyOt@@|(;*|vQ<#`t!T8dWt^YxfaiE2m}5 zdPx*L&ul!}@HWqfV@9r^Xu7}i#*LYL);Ya<j~X&++{8%}Mvoac>g3U5&KNbi`~r<{ z>Ih#9ia)#1O}y}h9ZNq}Pb(SzEK5w;_G}5n%PLE^mE|w3F00tuuk7ZscFW5WYs)G& z`^GO2D@&Abh1Aw)%B<ivQT{_^=?`T$2PvX-HMDzPNKO<bMr@|CXNi^lRK6L-1^K?u zuLni2===PF(jRcA=B+NtHL9d1(sn7KvLrXiYs>^PVryAqcrFTd(vC+nyWA#j&~SfE z?ti31YGh-Xjq<;+FOBWta?|<(-u}z}+toa2>~S{y7qM_1{}x|0yo=^55Q2bY*A%{@ z8X;xI88+MMk|K$1@)gy^h-5PeMr683K<k*n!Dok2`PVTS&rBBybr0BMdql<8#Zn$S zw&{<RQn3U-(IwSXlQulljBQ82(6-2kA-8;OcnaLywHo=>+I$?ND@#KI^D+#~8_E*z zmnB|zGL=ZF9I+XLdjlQZvvg>#SlRY?V<%_ZC3JIQ=`ozB5>E{mazhzNqG}*MldY&K zT^N)wopSD$MkS?u?7+(DT7p)5_4KjG$rh><u51h@qG;azR^(q_jTy18m00T}+=N+{ zSdNOrAeT~EP_f)k6jX>-zviwoJIR{ZsJcOB<SH}Qm(B`%ELk>G)r2e?v@oN}Ozu{r z3Ivu+tInUcl)kMph_&FD%;cm*;HD&{w9nNIrQ_C?&bb&h*V_)$*;bfc;I*6RwN6oC zEEJ6Y(`!>3pJ#(um0R+maaKf4sK8lPVdW4;m{~p?S963cAEHZ;2D+qhw%24x{6+#o z(?SJ=)*W_5!AM2qZr|=V9iKHT3(p?1e#`W#Vp;EIdXHp`s>$^3&EiM^fqKVeVb^w( z|Adc?(VZC`B#}V!m3u<gsoo{X1+4b@S$L$hz}Gt`>21HYwcof^Q*3(ttoLI6X1}-R zRb`Z7E3qL1vK*)6 +;cdS%T%DN-wf9hvl9m{wm)&fUfAI4OEipt;G%x^drDcAb_ zpO5)($7<um>T4qc3Fxca6Y!~R@#JW^F{^GLq>RnNGqu|!<<^FNot{~T`;)US#Dg|f z&%9}DemtW^I-B!u@w4zq>lsr(?ZH`iu=Nk#iJsm4{0>>?`ZN73JZHNrC_&fk|ILvV zLz<hD!+dDI;;4#v3-$)vI51+tQ&qY(+*7dr!NPW15Scpmx!EAS9t_M?!*l<VuAPn8 z8n=}rFmPe4uJ}3^og?Ue6)OwSiAvdfbf+`fjL(%Lw>dit{>rSy(U2~zEX!4jz8szo zoO8`=<8)({=kj`Hfx2v4EHt(00u`z;BV+Nm?6X*zZ&#Ie{&X^29lCnjwV#y=wQ;Cj zQ|jsL`HOW?o4JqFDHv02`36kEm|nv3B^?FGS*f?d&>EVf*>L@jEDMd%Xt|okIt4?A z%@oYWRpYi|<72#+rrtYlU4w9G;k;P@+YroN*?!COZ>V-!C4v*>U!-&f)C<B1<_Q)W zs$&E@L}W3Lu63AOD-|*)Slg&?*<k8hE;F1H{!jgi`NlX;cMN~Wdw-tC`4*jBI!s9c zygRw8-q?s^7)QGg`$^UCOcBHWr>0OkgG988B-6LTUJAE^EZl;qNf%pC?*syWMAw`< z^v=%ul*7!@6>(zMt1iXv_t<}mq>V$?B**-+4HyP6vaKw_v`hoF)?JVfy#elnSH43i zR-*&1DN77Vv!q48#P}HMh>@d*q?3qcaE%P4?2nPPZt7s#!gkT1UnZYX*ifV8I~&JW zm2UD;GR(AnonfAKM3?l)k|=pl4;;&ZDeT<JBHRXji9LP=dc1M3+d)G}#$gwT93Zgq z2nR^CW!>Hqt?c+Ty~K{Wq1Mpefv9irB3A>Z?8rJ%(!yJ^)g=X#b<q|ssnYg1?RY`| za?-)rhXG8gR+cD$)j@a_xS^+N#0E^(=q#@HVdZ-a&ekxG(~~aQwOmyL)M1GF-SoYn zizA2-jSftmt!=>kpY^_oKQQtn%&Z-nd0kqvo5a~B4B@hHn@45_oj+vfiD4}52n8>y zl(aDiJL_h2efl^Fb<VWq?yA&q=vspLY+>qDg=F-j$`K1;;`&H?$=(%BF~mSYD<wF= zu?d+Ar(2PE9kX7=l&xO*Ndi}~&pNxys)oFQ*jOt$s`P}>^=MfyZq?>bQMwl41Wl&* zS5#-#6hO(=a7tO_6i%-Dhj-dLp66Y(TOUdbss6NBW!gBwKFY+-|1wUjjXG-vwKio3 z4h~sf%s!gZ-v1x3(~D@7tOwEchugytH093ve0VjUzE;6(&F0wEjffpX(&~hg<S~}9 znP&MWBY<ro>B*i8OWQyN$vu{G71g;`Fey%VrJaM(xC@+$xxKtP+}b>@!bHxO5JTpm zi&wFm+ga35S*>p1GW&?2O=SGGf>;J%{U9rYP;Z`u$1SC6%<{Z4PtUup^3(-^nTVrf zI7d10TG|~@M)Is$QWP0wQzJYa3m70I7;H6n(tHepZL;K-Av>%E9efDdo;zbV2AcNd zQlgi2zxYBQpCr4TGuj%7@}RF`;N{SX?!W;!{J4iFi)c_|byb7uoXkbEDjriTvh-SA zy52|xxe{Edp~y)bmq3vpec$S2krk!uxsDEH;YbEiS$#{EpuUROAyB|}@)QM|R2>45 zmaFQVlQa{H<zNi~>;bW82aiQVs8+rfoEToP<(hD~R!mv%m3LI7X`ErRxqz%`8Iesu z?GU;a1|-{r1{o4g*04{kFcfy00xMSbima>)+z6ItjZ?AB&%cvre|->l8v-5Nz6Kpj z2D@MdghftZopc)8K~hH++5KpLQAdI|>$xDX>{w%ZR?vgo$`gp=?a1YJWRbH2tE=K` zjxz8VR?M=Mm+d@w=X``Q4cp8?GLp>3H6Z|yakx!SFAOl8!2to|a0y%pBDI{27r2q_ zNkKgJ((#hLuMB1_fmxBIjhxkwSb|1)BWz052&_Jm79^A~C0CXrM|3Ns>muk6s##gO z(B+V=Bv5O5aEKgQt<0j;DMw5dE6Yq=p#svPK|3J>Qc4P<Bc1rZV#)>&C(Gg%@ps5Q zvS8CT2<)wS70wFJbZDINt@=bHWnDV0x_oyTCsGHz8b9RpA{Ptcmg6kKp(`*6DeYG9 z7@4C)Xpbsy8H7j9#E2!~$qTO=q?>OlwiRgint~<f60dwu*jkN_j0>X+HxuYFk-mh( z@QR5`uyv%Ik-^3_XiaW75(tS(M2jlIgJC%)jOan;wUDdcGLC2bSnsB^XVtjPp-1id z9)<4T*TdmhzM{h<#h$Cq2|(6A&n;UJN{n^gXroS1d(#Vx-Q1N2?;)UaHBC`9R8MuK z+fP}uZH&MlW=6JQ&1lr;+|a{kf4OG1A#XRDW~?ff+&03v5tzK2<l^kZs0!LA7+SPQ z8Guqk(nfFcrhS9#)!ncWIUBTRA!x~{J<_i@z0nx-0^XZix)oR#7uy`?aAE?p86WGB zV*_%yB4xm<n6k~ATuW={)nxJch-dp-x=}V%qOBRMOz-p1`fz8m){kk2k?5de&YEm= zy0H_(!TqS}yyQN}5z+W3c}24ZbzWmZ?LvXDuEJM`16MlGsuvh8IulN>o}BCQSC-DR z{Gh~(Pz`f*P#u(5iQ9$tR!5k%!7X0LDP27zu^I0k$$^v|%SUp@2n+1cjOGi!WpiT9 z(Nq-`sR{aDsODw5l;T%?fTMT4Ar;VCq^=k=ox{7nc_aOb(R&&K3)Lz|O-I}eZ_f&Q zTc0l9&xh%O&3s9T>q0J_;E~GVMM|*>s2p;CS=EKb{2mgGl0so;Vl4v}tGoQCOV?r@ zax`m=;8g`d--Di6K{*_>ox{V&?5sI#6*L$R6KE_+9x^K#svLo&A%Lkb$RXC36yfBS zr+9!^6NpwZWP-tsPOluvxw5Hl;(OP0cUFpO=5_La)&i$tg5BY$=K6cV|Iv7tk~`E> z(UPGp#eZiklwsEO^l0sL1-I3C%*8(El5HW!!S`E}lEQ<C)x#wi^Vvfw8G@68wyJa! zC(OfLshD&y;qUYS78y$5n>FYRkv%J)B&OMBa#ei?R@M2_?_sp3kw{=v=Ez*JSvDif zzUqf(V`Xo`c3Bf`K%k*87dY%7NLue~ww}Uzg->n5d&b0ScnjKP?3YDG{?kJW4lAq7 zce%NSkabyYEH*ayHC3~)SfcBa7YRu*r+(fhtq~X(ZV9?SctVh7o-i6+K$uxrqtfX& zI|QC!;Tg;RFf9}$8XWe4Wu()h@Ddz6+YJUDw=_?eH`R9CEx^CgS7_u(G29L}b5XMF zvy8Hz-e*g({d7A8!-8ho;Ui>?dsA!i5G$U%MA+<Fi0!(=m1#z3W%^$WaVjdaF^&O$ z2?qSsEeZyAyoJcwGAU#M^eJ6(X%F}*HF)`^(L!cIV^vKlkYNyGeGb2vYS$oq_2mlo zmUIes5dCx!--%7`E1XHuMs_9*HaWTrsYXnsug8||TrEf5DA_>~N!`&E!EUtEy_1Qw z@Te4uvj6kAa<g|^G$sPdZhwQp!#*=w^#b0Z4%RlYMA0k+R_Hyiq<{#Uth4``z{d>M z;I<w1Q16SE@c>%h$cp0*A!QdkAz6v@AghdY(x~W-p`PXOsiBOHp}c)cH=JKTQZiD` zts73M$;91;w8ML7M{7qajzBW+HAJrDfzGX#ZQpGhaj~qtLwiZ7*k)H}8JE{WEvkVR z&CwY?wkt3CJar&UH{~UdBN*#orObIGs)k*;7feGz*vH{9YI4g-hq1lGHVJ1Ec3tF3 zf>4o24j1f5-VjLh#5HBhh~=l*%H=;jqTukd$~-*Yjh<6uHcH=X!pG<ZsLwXkXDfO< zF4ouuM`#7JGcn}COljr@*{V1V1}YH6^6IFA?CchfkW>>S<1TGE**J_FX`IxC3A|6Y zanjMvy|V{h6lR8Bpi6#Qj2y+zTL~U!%9AfF2~rM))6VZ(gC<Q~hm|J3XXNH=G)tsO zOhD5Vm{7hUTvr+KFj2@7=<D3WLOEH#S#)RmwTO-FHBcE@is^_{9oWuJ9~vsq;i^hM z2^SPO!A^ss2-^{OG`%5tKc)IqgcgT}ee)uL6lit0mbJZ}$FxCzwtlRr?t+<gYyO<- z{HLqSrdPZ7cTy(kutWbw?dAN49Ue{zHa;Pf|4yCk5uuH8X?YAm3}sxw8FK&O;Zh~0 zgLp_i^>IUiJqc)wuu6%6_34-6X!_7<g)NPoL5JdL8g{Ko=LIt6C8c33lcOnjboZVM z5!L{DlQM8O%AG7$8~Q?++l*^B9?4@lvvqXOnv&1Ax}+N|LTd(Hneyejzq~A!J{nnz zTmSY#p-a%mB1=H^??O}*kaHmSIiJWrr*uhD{pndea*rM(a;3LWS9(j}8(57akziFg zTE%U*QHrlLmA*<KsQ?U6JnN!8;TXoP&Chmx)!sr)MonvJj1jgQ7Kja|eM~NGO<1P) zTlSULnlU0L4@!9T%r+N&8N5Td9==<f+C!1dNfuEQec1%7;cgluVYBoBr?o;tCN$&L zEKcg7E`lPj5=Q3&d#WijsB@W}<jfpvUY&tK1qg#}aL_hugqty<YGsNEq~rw3^ylCJ z%H{0>t-;8k>n2Q39(v0L*<>M<xdXy{EpKMjmQ%_tRT4Bv6bxn!!Nm?)z8)q*p|%!$ znT`9cH7AMT5XQ+}t8gW_`jQMThB4%BNZyZ>H`Y8XFkH3LZ8g(oMb1rk<|p-_jP5%9 znrF_=_q((sHdRYm>4Xe3Z5X^x7xD05J(I)0r%uvSN*Cd}+eCDl4nPN$%ltefv7s#C z#yRc~x`ba;jfTMvqs#3|dfCA&-MUmqS9yq#Zb=ZDVEfnfcD8bsm)JqZ<*>&+PSCED zNO?r6=`yA0{JZ1!i;Ru7FC;D2Lv7$9Jk;t4ALmu|Zm7i>7g(a%XParJO&$~_cMQaH zUkTt8L{7laj0HP@F$pIMYA#Szo?`~W#7vU*8EocRdJzbqP-L*L1zl&^h73F$&rqqD z=80O2HE6|hxC9G3-C#yGJ0btM_=ewuL1-6a%uQx+YLIycEx`d`Teudy-K7P*8x^Hb zr))-`ckAEZWoW%^RCckQB|MR&%={UDcjnijVmJy}!kHd{cz^OU6<t>XlGQXRhuZs7 z4}tpN1b?P{bxF2+)qa^@ZKSa$9L_@(6cPjtH^&IL<W#&R5?Ksn;ec{Ij^NXX%BpQ` z5SKPSshCTSXmJ=LcCd$);4WRbrIkJ?y}x3E&t>=Y8+Eo}U6ameQP=W|;RcL1e_qf3 zrkQf|hLbcbR`9r_AoMy~_$$^4t~xPxqeZze(v?kRE$1n-!3vG0=@t$g`6R;8FSy@z zhw3S#U{d!CCSsXpQ}&#;k4JWLuoMj>U*t|&;hAk5YZMM24ooab;t`P+YJINm&28`s zGLCEiyKf@pipjR11jmy#fB8)$^D-tf8g*_}pz64J=THs-8J#JG<)eGCdUKh5rD&Jl zM6&N=2iaVQ{NKKbloT`3Q7#%kkw+QacQgFp2Ira3><KVwF4l-ev}ypzbhu4ih^1t8 zW>UI-EhF^w+eADTeDpdx0G}k;(YV0Y!fLTJWRdGJ%nvpE2F|&<8qK7}bms1KS!lkI zlrjOpCE_X9fLh+4e0@#3G!`6xekNr4zpH=py<Ib<p9Rfg)OyTSn{AE4)0_r{h7EX4 zzlyZMdRW^-Izu=<q?I7FvjZcVV2U?Ykl~E2+YV>2c&OvPw3hVB*s9X)I`i0Li@z6x z))m%a5?30Y>6VKr3yPiQkH)5rJ`??Rq;)HnP|<-_Hc1c{>}#p#ghtv9+3V4Qn0ZqV zmUps%M|>iSY<@Wvqt#sKV#9Wj3~=&zCNlpQBOO!OkhRDz`-0?m4^@@Av*w;z5KEoc z+~E=JFR~G6p5KKHDRZww?j6=^Y=9jIQcS1GHq<Oax%>jAZH+D{LwuCdZ8=?e(8p(q zvA_8&(JY>$?dHySx!s7kuw2b&|B9p+AsubaQO>o*mM8RFhE+}0LwTl0<joU1jC7Io znu$g@SqUDiqy%_Pi4jh=kiy9&%J=7z&E9D+)38Xz>!NLuW@6@j+`&q{Gu9;=!W>Sf z202g%(cv6dvDG)n4%=#4rKw}M$SwRC1MT|JfRqJ|H3aTvC$YEk#jZIxM|9ttW8Std zn0dq+Ivc{KE%YR((!;mHZewQqq$xFXxU}RaSDc2|>mw`sGEtJQUNB@$ING^!h%C6Z zB0R_Y5Zc!0P!O&mnz{;Dw5|F^mGCexaEfsb5B1bpP#eN)9!kv&{mzh#^rJ=a{xlpM z?PSs^G`|fwj-818ovadqmX5ZTJ@&Fqoa}VG#=&6^?TV%ulz_+5JT<f<P67Onm@e0j zC~sJ&EWAU@l!(R2b##40o<qpfTl<I!y<ph}w~7iBhF1x8>uo%P@y^ZuYNZSn>P4f$ zPK|26>uI*F^tcXYx$Xw<r>S|$$YL7Fo@pNgCoO@K7TTRI4#jQ`2QAOH<!vvuZs1kp zUdR2supQB(?7>wN(L|*;TZyYizA?CR+(P`g*bBKBN$mkt+4K)4_rQ+rjp6usefZ$S zxA@611+f{c*&S~XB8yEMoY-vjF+%_B%=u5E)cUD}JrtEk4b7{?fjiL|Iiv#CisPP9 zx5mCLTeiA%1FGZUG<Ln0Kka9-G9ox}#2vNr)jg_li*;y{{t?}?z-K&^Egvt^mBR~E z8_61pcs+;OmXZq(Q}iH7GKiANJf%&uCt6>Y;91l*4m349ElbsgN`y*Ii*wgS8N_7i z`YpfxA@5QLeo}j@ac-6iA=<u~tI?oiuv|MfphLKRvh$I}wwd;q|C?9XVrlAR5}JGT zrPU2VXmK)umm=Q>icU;L;XbJo$zOYAZwFRILKeqFoJv-OIx3D;u~jRS{Y2EFGS_*M z-uu_{u^=F15D#wK{r~U5c=~7oEp7)3zMr@j-bdF;Goyu1aoKyMi*CgVX89#8alcjW zx5+)e`2k!u@mniPGWT0PCGtj@?RP1CO_sgr(QZ0Pnua)57;A%hrr6D}3A=1I72?zS z)L9Z|hKh#<12;corV7r}{>rvfM+P(3+nF|P1$Q+4+qpJU$*|J{tvdWf1YP-VB-`~- zjfHTiU}svwX*i{u<CO$?_s%tpY{>LY+PR!`s!}ENWExLOlTT@74wF?e3JWyq)Bd%# zbu6_Hn1e^f7}2@=DCd+Wr>NNWnHJ~cVNQjU`Tp#Bzvd?M{_HMqJ^ys2e|>nRA3V}S zmr1|z-oaA)i_{e`RJe{POAuK;SCxKY)46pJx4}mtxAA~ecHsSwOuV;?FL2qf1-htV zhvnQ~HT*YWWo|XcGYpL)ga$^6a&84eQwEp)p#j9bf5yj2p|8%QiC4y)y02vCLpWkY z-J%ahtL?3hUTf^_;KXN<uN%N6>MU3rIEyn&x>vL+R+h-K(;d!F{Ekp)?o8dc$shzL zx+QfNN#Vf4VF{-ISkp3ML(R;V100x_KnlJ~DjnOc)Pj+22W~|3>;Orf|7B{mVaAy@ zUF)H)At3a9sN|i{&bOc9fF;;c^Do~yrWolcHT9&iY6QyF7m@lO)_-_-v1*=-Y)gL2 zBiT1}H(pHe-Ah`N8;LhpmvoV3GChm;xYGXCkJS~7;o3XWc-ID9()1*=$p3YR#z7yq zZP72%7TeGkh(gYtyml}>{k2fqg}`uqCA<l|AGXYcEjK5I%n46Iy8i=$qe|KLaY>Ke zUCJx(eM;Bl&wN_9LD-Vmr+}2k5rjPLL>ZwT$A^+UoQS5Td)m3ihv>W%QA|PdNHf%_ z(kR4>W>vV-jqtP#--FuH0lkEkvX42h)mpHUDUUhVluwo#g)6vgw(Y<Te`23L-<*e$ z249SI`(spTj;#`(lX3Bg=99<J`c|EBis`<)xMAL$Zg2<<NL&%{SC2Qivbho5j47)M z>Bhyf8r|@x4<L{+7_xUTilWwC?3jhvT))%D4?%Bpy~-?&H*;x>fys0}4l_aF?rw); zPH457CY!7i(~MN<MyTM#)H*9k3i|&7QXHA+LML%nhctyg>)W=vgkNpo&q>)uXD?(& z2T1qMFp_Pr;=7^mhC8l)y(E&9GQV=NXJEUhvKykyqsoz7&OnDP1@m+G{cZQMa74sN z+g@OQ(_zQ6u=povvy@Fi;O!lp>)~OvS{RA}nQORa``bGf+W>9Du?>g0Zk4h>{F70A zhvBE|JjRK1ZT2CQ;}$}?u-j3wNejD*mBsEYH@jz%@PXDPi6M)^vxc4lV8Q<Pz8JMg z4%T<}#i+@6*+jk(0}DcP3MQ$@*PJ-VFw&BwutE)-V4FB}W?n7Po6h(x2gqEJuIMDC zT%e;K8a~uL3rbUWLutNn6M7Vbje#2>A|s*Hiz9P8`@j}68CF>QCVLkYv<-dF{^AUN zsRKVS_!C-P!^kH=JOnRZQ{Kwxrp90E$_>Wm(0AFB&_7>)ahSEMpgnXTW)N`<f?>LY zgIQ=On5HiSBi%JEo+RxTZL}RNp(9cirJHkW7P7jLFCk;G6$uF)Q4%R{MPe`Y=Y!1u zs*j}%UO_`d2c;eM{=YPRnt3cbr-YvI$y}l{>21|^#lEwmqnbi9+b)i^R=30!##+(f z0s>DLLt`>A*+XM31U9^fPI9A}?jaonVUZgj(~ZG9J`PRUXNP*O>mZSCyVC`Xw18WV znD&Td-&wEULu&4Ny=-RDgWP5|3S;<V7Z27<a9e13l%}VKorJ-|PTcH<!32V5s&niy zO+>fzcXCYr*Q*rvqLj*2kNa!V!{@)|!JqtJ1j9QxU}EP^9_w}Us;<=kQ{uJ!D6{29 zJ%DEwm&ETRsho2MN!82qNM>#ja_w(IX0^MEiPsGja{cK-W=|I~=Pn^PEERI&KZV@% ziIAJK?q<HZ?S<TOsE}LF6LQ;iLhe`~WZoJfcYPt`?(IV6x5k(2vx*m#3VHB!ArD_I z<k5SDEUXst_?JSS@a8kalZ}Ne>LKK*p+cTMO~~T5_flj@Um?$&AmrJLh5X|dA<w-i zWa%eDUhwW?hGk8JEblF3#b_ZbFBkISJRz%|7P5MskTpLFd8yF?W`B8KA+HP(^6FS2 zuU#SJ^?5?xcwWfb4?(hvbN%f?Yx#}u=Y4IzztAF|_GA|~@#&oG;^scxl3m=wr$e%f zTbq1)nS5;|Uk+N@Yq2l?MN}@?+!lv^4ZfBn54j#K@6{H57(Y*pdER(jd8eVsxS(|e zJ&d210J*}Vo&tvx;6KOYKfjc0UR@@&IFg^#!2d$Y|1z0(CUkoFOm1-;KYjlHNB)0D z&8El+g77~t^1mjk9g~BMqXf=E4GM56%ztTR^o|j@6%sl-_%h~}9|meMiSTsX`v(I) z+=)m5Dl*xLoDR6$iHH_8@nVYj2|)ZuZel~;FLb2BmkP}Pv&R3CrY5pXuO5LGSM#%y zHt^q+@!ycCWB8A(ycV<hc|B47lQ2cR!tQW|m(`*-X#+~MeB~m@$Sbvl{7+nsnCKUk zjt0LQ`J#g#fq=*sm9aEwl%hk3wT95axQ5`$djgnOH0sDnV$<%UMx7^&=N0n5b6LI5 zfd5myQy_FFu6uFiElID}_X<w|+?aOwd4rWUJ66kSHtJJgO;+K<7Ts*j4@`PJoOEhV z7Lq7xhO|AqX#Q4P)@7SYx2pLbEh6=A^)(v@|E&T4IPyDw9)j%gFJNE%D;inY828P_ zo$a;yktm%tff58&qS=JWUaMa$n23VSncgbqldzyi2ybOx`JhFf%G4GaCaktH2B|9u z<!dYwr<@kAxf_YhkC4eHLMEkz=1!*j4rTUoGDkZZDT{6}_UtV(OgNh|zo9Izur+Sg z6ihw%<NYkc;zdPz2|^b>W;1H;J;t4Niq~p?m$8@{T9vqal`_G-y5tUod+RP&K0wm- zIw9R|6ViQwkbU-jkl4Qch4dUOq}S0xdVee;eYObM{|6y`w+rbvUqnh~3OVozNgS|L z$iOv1O8+V3;FCq9Y@(1s7YI3|Ldf9SLWVRHGPGF8uns~FdrZjTb4m8vXN{13|ML*< zdgecDV?X0??Z|76yU+I1quDdE+MIVZgtFS4KSRjHn}uAO^#~I$-$Te1J%m&Y5;E;X zAy-}{Byo?B%4dYkd|Sx1{}M7Q|50kWzO#@Uh6}m*WFfblDdg6vLT;NU<n|YY-0`uH zc|QobtHEQ`^2cIWmfa@9Uy>lr^gAOtyG^!#h|nDWcA>fcD516dONG|<7lUTCJ^Ai= zBx5ElBpG+UkW;P|a_W2`r#&lV{8}NWZxnLIuR<m?eVq9w?l0u*qlBDuv5?8P2q}M7 z$ax!tT=1ii3*&eVGOO(+MM5s!TS!HTkZB`?Og~G=jLU^wb+eGlr9!IK2)Xtn5FK5Q z3&zRJZYyhH3}<Nb?;+egjw`PRzdO^CNepaZWWLZ*EAzB?ZH#9#A*rKu=4ljVpZo@C z+o)k1ii=C0J&Exz3z_l~)a(_q*jA&C>gKiUm)WjgJs_=_p2-~T_p8SJUcC3^GbW#z z@|i221@c)epC$4+wGHJxUr9_!rjlGG1xkvQXtsrt`4CCU^xKLK{5u?BaNKZNJEly< z-vwa<&#ITVYX<JB!nsFTg=y-&3rZ^Kwq;kORpPRH?OB<cI{3HsWc>EW#{4bF(vf%V zN5_iMJCr{;#sRUDq>toG?)j@A_$scvKhUt=-U4y$1?VH2tZNFdvw#EqJ<y7N7r8me z&y3^7FJyUL$BrB0wI8HOF%=lBcbQ#J8+U=%ewg0nDt4sa73keDdRN@_tTB_l_Q&g; zKIv*dO7Et2lR{6{JI~kKQ_O8lZ%;S3nR+|X+~(@-By(G!x96JMV!b`z+?rx9(%Xe< z;1s<(L`A3S9mX25X{OK6F<!aeZ;Zx(SGL1Bn)wDzGG4hw?=ls;UGI#4AMx2s{H~)X zP4e0=^v9~EK_Fd6PafyBe^Qf-rX_lp*>(JxUi*LOO>Wn-%HhK2_0G6=ncfwvxv%*Q zOuy^N<4*P3uk~MIAztC5EM!diIbQpJYLee|+?iv&_UrU6=4Ev_JpV~__zp*83OQ2t zYaLE#EqCMk2|4XpA>+>kk;v>-*9<jW2z95s>SDq+E4so7GXTq)sBjXoQ?2wKi!jo- z53dJ76_Igk=3>C^!>Vh1^e@OSzo6gvc;=vjHCE-KdBze^%e%OI@YdTGmltG`Lgr2g zXW(62J|u&wLDLDx=9?m$N)3iVTUR8BhG$WTFdPBnpSXgWUc}-knnr9R#jN_*PKB<X z?yg+!bh+BGjiG&X0PooM6`+Riw*-7ID(cvepAX|UZ#Ehw-r-^1H<^M2-F|iKcO7|e zKYsWP4vqZ>w|n!Z!O)nbZDHoQ%zP(4@K47jwLy7i4w<aZzhO4ea<fjltROV??1h_- zxbm)l4uWV1NRQ>`O~2q@i32zqm#q5fo4l`(s$S|76+PFA(Kjj<@=|Wr=dVBjlMmEy zyq6{-mcei0=YxP2;>r_1T#~hg0DpE<661n+`!mtcddlxr&-427CTp?J=}-A3A^sWR z4-lE>WbwEa${HYFD_nUG(N*h_68{1po|`MX6729ivlY@}^<&m5Uy3fsdfC6azUN7M zW&PmOtFaQudRagE#RwozZ+?=(bJeOZ<fgw!y(*U6f<o?PL66f4$)|>{6_^Q20k5FQ zV){zacLZg1KLGNjMP>bOMBZ~Ee*mrpQ$;~o<WmvxTOkGj?;8=(tprOj`ZkI1MbI@A zf=60mufNo$M$prcdL|Lp#ye1ue+hD_O^s6nJbDm_iNd#^1vr4Iobu9fzHRQ;GI|$! z-oRRHs0=Nc|C<~CF&ip2vyA+waMzqkS^N*&*zY1ChD`A$0mA>mjY=b-DUmirb{{o# zqU^;q#94&12?H+g3u&kcyw@^T(h@GBqLxfR@;SKjItAsaC9k17T*LCZ2Z&m-9}?~( z(l26(FP)7=ge@5eL1)CE1~7ur88zbHkogH$UTIL28gVER>LFA7umDjbjz&TUA|r`7 zcf`a977;e$rND>@nV+K}2hulQ#z0yJLfp&HsJ|qWRp^WaFRLPxAr;e`X_7OhA$^%_ z%_qTtM{zB}l{bclbdr2m2^xC|$!`!EA3#?t^aYatuuz<>9;d_OtZ@7+ikFI}St5Q3 zBxAcZ#E_0l3W{@pH!^cXMl9_Ee0W4A&b-=<RO8Ko^ms^K=%mY^vVw&P<k6b&umfe! zhSWVy@?uI-uMxUOg_b~IO;m_FjnD!W`UnD>DMX*dFDI^cJtjCk5%bYPIk?oN3O^w* zJ3*`%&|ZYatqMOSFkKky2dFeD_Y#2_xUmxfjZMn^4}t0X*c3n&Nx7dFm=PDd4ba^# zx6H7de}$>Dk73yRibj=n^%zNDx_Jypk?D(p#6_m*83kFb{C+rkYO<gh-e`eK{&J91 z2UlL+)412LYa_!G6Iui5K(roFSAIx$;ZU?tAq#Z<?<HgySjKrOG8~<a<nyU(2C5ht zj;fGw9gz6!0MY(87YPp$xs!<Ne>xno2xkd~qd^cfMx35KZFf|aws`}YZu{M&Y&uf= z;Mv*qrSj)yGqRPxESpiM{M2klsq)iAsq$B4&uVPbtFmu!{Os&o9Dh^x)38t@{0>eU zUaY*x^Df4fcQ5N>f?uIoNPf&h>H2D%ZZctfujJv>5L<&hA2HuUfThF6<G77K9+dE~ zmhc^tf2Sl1k1r0iJt;WV#~Q(HO>v1fQ`pl2vngWx0O~_n?B7XX3d9E5NrZ~bwHzX) z)pD~A_36|mgZD&|j)ueiV{v1~%wzn#Q>@RA_gjP4*>0qS>spw#j;39@1lbS5<z<Z) z<SV59$0G4*gf-5`3A_+c9h6&$EAQ$69WUs7pdEm8O+qIM%3nAd1Y{UdDOfd67L+k~ zDv)z5swWR=x{(WG94OQB;KKxTm#q3tY^Uj-MG-ds`%o-lq4C1eI?j`kxOC=SX&#Yb zmXHO7uLm8eMeN+BwlO-!zVC&`(3aUd#was4onuA3(XP=gwi)@A?-6?&S=1+kVl;ax z!sudD<w{(6D{vEk2_IhJp}1GMlbzf>NPE=Dy+OIM(UZNbi=D)aK-W46(IgTxMdBUg z*aY-DN_-HMbu{i<&=~&ZqJDL8i7`6FrH-}F?Hd|&TQb|O#5UJ+BFrFn4#r5e8w@ZF zdtYo-Gwa}o#KC4E@ObP8xY67^5o-kpo0}(NU4om%u_Jk-^V3qP_NS<6>=RUJBdfKE zZd1>$7Wf&Y{*Egb<q8`Ah9ZU6BTePr5V<>X-x@OeIJt+BqQd>@f~<E%ZV>Pzoy<U5 z;+#7U>1SB%f9PE6%~LZ*HOB~Y0Spa{_zDJWr4imTB)7yRYg%F4Z2I49;c#2;&*J>7 z`5C?Uu<m_0gK6BxOoOpk<I4M<Euc>2vo6oO1E~)X`5B1rffRmL;H7}pIG9scP~G>C z{)xr@ht>58>1$KJ+??M~zrHj*E1tt~;sD`ylMOb<s!6~v#+A37HOk_8qHr+oU94P( zo0}+b-~UU^gpSw`<rQ+NZmRKG#@)qOF&x$t)@7)}buYCyl6&CF>rcZ`Z`4ya4}Fj@ z6iEEw0MW(E5G0&N<Om|Jo);o%8ZJ?#XOl?_8x}tRS!9fdmD!MP#QTD*?@oZ8COo1r zrv*Q*nayX>MESR_*z-Qbm3KMI)bom;!Fm70-0(espK*o3-wD14umCz5;mVuAoZ5Q6 zPn0Jcdjsh~RP-vEB`A+E1_L>qsN{7W%PU+^>|A?d&cS=awXBPsDaPcCMNKtm#^$ir z%AcO|E#`0KC+4uS%Ac821>2OLlry-@cA0Y}$linj@6w3btU!NUUe;tmYLNP)MdEV< zxLn}cFt{Nu$r!&gsQwgz??pl<z}>Bgan9v}J_PhoAcqlsoOuf`M^Re*LJ>I~P`S+< zUrZT=pA$F%XigMX|E>{uDdZmpyx56IcUKK>i^wa0K5#HI=vEAN=-<}>f3gA^a$3Z# zlAk8EMdS3vHHbNQb4c$m@G)RKK6ol;yu-wJ(KGm{2B)Ko^p?WWC{21%ZdND%1!|+F ztj<2WSBdal{d1OpQPaEoOuG_-*Wt>$07yIp_Z0YEKo411OXG+=fLS@Hz}sA8H7A!f zP_i)jM`S^Dv95~<$8%prA^gD50}-!~u7r7r{=Adww>Et$Z=9&ct_pUY!o^W;9pQ0) ziX+KZ=pDH7mOhC)1tt+V42h#H5U&CnUlE90Mv=*YFLNR<1?W_w*8{oTp>GhC4x9%I zJntRcF9Q04laTx>ai5h~2lP`XAv)B=<&^jV$aaTPBX?3=#g$;X$zwIIkf&dVc4`#k z^RGkm-^(N&oXLkd`9pL1z)gEmS%JO>Q&e}|bSw$8>aM$`yO8IUbn7N}rzoia891mb zvc-llbKTFl$nur{d^ezm-}q^z<G=hm;5VH%)1_~DV3y;*YShE=HBAEkYc{RX`R#{Y zz%z)wy1(<&{~eXcKrQm_!RX};Wm;W*{mU;x@}3roKR~?jBZ#X|Ly0lJF9e1-p*I1m zWGB(oLWNF-!1+<3$Dq#WJR6x*`~Vfd4x+a?@uyg@;=>ew9N2RX|3`oyq4=A?K6N<r zhiy7Rg?@xUb{kXiIF*Ej%2lWd1UfjO);*#^3sk5C0*6{59aAt+<L#CO{M;Ry{V{;g zv?6h-Q7OT?)uKXVW&pq5$w;kKW?dlj5b&p+4DB(V*{r6#0_+2aOKZ^4MyO$oW%^qo z@T(INC0fv)g5QPa@Ef$nBNSX377BM1_z}Y00qsY48MP1N!=<|W1i23fbd1Zb@Bu;Y zvjLs&a;x%#1%8prX92p=<yLsOz|RnV4A4_axsMHUzYgf_q};lZlHA__`aUW5gut|T zJI||+ODm>jmj`eMKwXpIO9Rsm0W>@bo)N&~0iBfu>;8-_<zEG8W)eJGatpiw&?64k z4sn;j{&FP0Mu?p_PHEHPPbvNxu<s&xJQNo1s89}`@zuc<Zt{<V;`aj7k+3wmdS;Wr zoFn{FK!-Y5Mws3DOSp|f>ghxR<1}|(2Jr-|UIBb&I+?~Ia|2}-0DpoqG$35bVv&ih z2KH7IABH`0-F<^%z5@IoiUg*JNLf%yoer1@aD_@yYmW%jbOqj%GBRc=e0-o{IH04f z3OzZhJ0{3|7NGK^+-C&2X9Aj&l=~uq_dvb<M*uyUl=}*S7tI6wDxkMqZVi&_1ok%} z`8%64-2V3{p3@Pbk4v4injKs7Kc#pZV4W<EIS+rkoxx8TFiL@puxOlvgchOR`B7Ae z;F%D*G%6@%sbEf~(|8kv7DNR@V^xztuo^<|L<NJ9Pt{%&NPi2-pCi(yiEapF>Z9T< zaj7e$GW;<9cu)lWo)9?D32_KFxSnqNM*|yaaRb%QV)bI@Ao&UlNhpWgqp1qr1cAFF zLi#r7Zl8*drva^UFz5J?j@_2Yd=UEp0$ZIB{hwUgZcU{R$FlauItEv$Ym~B_-SoLJ z`*^G!@Xl7ocx|Q_OMl1803Acvb<p?=^PmFdW2U=J1Y;8+aDmkkpMrcQl&UC23uChY z-|9q|WJKmVktYGKh={~RPDY%%k4jPR0^j6hWP*P!2O3o78Ik#wIM!@hYmup_1sO4U zx0}?7ogvU0*B}<pn?rcKXz~bK$ogwFGemD}B*f0a)slJGGqnVA`lf=seku>oxctLH z5xZ5a&CK?@(X&49WaH3iX^4Npr?{ps_c<ac|BBCd0hE7Jo+CG>%0^#F6&{2o-{6Y3 zMuzxuaJo@ww9UcwP+S1VpQg-kQIRPD($(Qq7S^$s;8c1jWjfF|h1cU&E$A#T?@xEI z+WC>xOADzdQjbESXw-;Faw;Y6z5^-hZZ(cI)@N~=ubJd~E1WM7RPT#hb6FL?&bWbC zcn@534R7+9ROcdo`WZ;Bg)8q=TCd0@f;2;FTZ_c|5<ZMToht<HWg+uwRUu20eN<81 zvU)unKa30eCSnTX%d2}h6ZGVw?h)j3HT_8P1$9K`D1P3766Uj%i7Z=z;|MH9;&Kbb z&kfK~MBf3j!J!uh=s2R^1Np<Dml55Q>HN!s0aBQ$QUfN|9kQ;{yq;M1&>P^t!j=$I zljo0sCQrrAWEJa5j<fkW9jZ@)BsV{Kl`KcWa)PvZ3IJ}2@~#WO3ke>8#9MI9bD-8; zn&n9(K0`oMDj@sHSCROx1>!eRXCXDIh_u<iaQllB;lOFoD_LwEbj4=4M6<r;AX-!b ze1I3h0QYesA=l0%IuyvU4!xZgXx{6IP5^RA1XUwd<W7oQ3z!>7u|V5EeYSuo!{c$F z+*<}Vnj#*h#2Y|9aVX{W3`C;3?qZ5$d=LB&CnG*^V^K>=NTe2Wo7#}K@=?eQuXLn> zg3dfo7(%FE-$nD#gCrCRdUx%CBu(FkYE62dK}gTl^qwLw6)re{8m0o9g)8rFo_vf3 z7pJ&(!-4}T;?GCIgH}eTgMx#JP|{zHk2OT^=c!5o(+dveCzbgd@bRTX59em3V3<Sy z0FsHyXx^exrTUtO^x@pRlNRsm&O)A@hfGq>yi+&|XG$INCQ#KtXgGvgc)F;qkvECJ zNF+|QfIgIzDMRy0%uWSd=|naL3Z_!Q9Y7v%=&?^DNy0(TLOy|XHPBa_gydI=`<R~+ zp8@^GNr(<De>o-i!dxCN+OF?x$sE~WhAect11iHch@yLg(ed~Q-f9*;uaEP5EH39` zorpA;EtxZ}Muzz|_XL;wNXh-`rAQdTb0yCceMd?1YpS+657+pXTAc6Y#rgJ}9@4NO z<dBA~;1x0y?f5<zN2dcHorUDc`2IP{*@7$YcT_PlzW<KYTx1d?p7E4}WvuX<0%~Jn z?Tm*(#H%xvpMD7-=`TFmQx!Y~hf#crVvVZR3r3yC{_hVVSm#WNM+}?>MOU+&eVARk zY8{<`?m+4T7Kw{?h1I~NfYw-84Lq7<_;t?qze0Kg-qbnAJ=CGIyknS134``H$W%k$ zo`Z3Kv(Mv`y%yy8w-;_Y;>v6C0`8>JbbpkQ<3c(6^s`U$=R>>+E3fCo*<)q3L78)r zSV3jA;P6ndaHY)wcnbw4u{1X}d4;q|3n=QJy8<_|mMA(<czs%|<~JS3XD?F0rqW#p zK#?5l>5Eh12x*~SIS=w#-9SF<_56W+BniTYksy4s1H#86p5KH=yQ(v1^}XOraO>sl z=fA;L>nu0;qDv7(OXQ}vU$P(KK&;4FHP_|n;~$6g0u|a{go^a0ug_<t#d=ffw}n_2 z&HfyNM&c)@ns#U`<-E*RF#Id5l;K}xlN<gudQBTUXFXrBQ;nPW;99Nj>hrOxuQ%O% zK2|k1J^cNHn|=K<-W(v6EAvU%oCo%XWw`R*fgj@H3>6vdM8*L=!-{A;<O~<|1LUay zk|6piZVal2c~o{6kcTZAr$==WpEF7nR0CS;U}gx*oF+0~0RPI$m;&m`rgRhJV|~y^ zaH;)LfZBhyWTr@Kz#XiJDgGN#&=0A@h|u=<H~a|p898-i7#suq+^CG~Gy2nmIr@-n z2Jk8?V@kMO%D)S#FIpt&y|vIw58tC`uW$|ABO`Fm)sor&1UWa_+y-hQmixaTc~A5v zHJ$bT6YZ*apw!9lg`5Li?w?t@;>Rg|46rc{r(+DRyK(;lU{^Vu`QuUrRdTH=xg7$J zI3e+_2n~fcFXt|;;&KSQ=7d7{eTshu>^Fx8_1x~tEPUI!ZHeY-gn?xrT<RMR5E51D zpdcgCVaHJMXVzl$jiJbMtji}}QJEJ-ugIJOe2SA1sfy|A-?{YHoGJ!hgId#m_ zz?NBD2Y$t0QhXh-Pc0s2vASc=`Ao|A5%u+d0nW~#-A+yTQs4~q6@Pa?dk|)~)>Gab z-B3#IUVsj8x#g5M=i4Cn(SSy}+^YP$06q`UB}wp)0el0XTa(~l1ZMO3ivT^F1pgs0 z$0PrrfZj`jV=+|1WB2gC1GFs(&K6jd*XxIMHZHBVTAn8`qr~q5Xx}8bevo?@pb<%M zqX0e=(BvezaR65Vy4k`yj;R671DVHxKj&of*tCTUVVMfH6u|;E;QJ8TNI@BzSU1y( z?E;xUfY&OC$f%x9BGZg|S_1Dx85!S0dU^yh2LV4UDx-S#3uI0QUY<^-B#@a2d~Q0K zfg;0~Mf@j#FR?PF+QS5{$1eCLpm!atz2aBx6<;IyCqm*8N}KF?SztYh>w^ARw%}43 zaj({-iO5LT=mESRWyB*PnGPZ&VRQ`eG3jIu6`6imQ2UnvpFtV1C#2^Tkr_ytdB7h^ zr{^@OGRums1pbDT;e=)CrO!4*W;5_@PKIU0YZwxxta(m_6u28wWAzTiat~L~-0@^- zeI_DvXFo_Dxg%+H{+*&bHXc$JQqqNETr5?g=T&GX1nx-{3U`HdfvL|y^3|v`t6=KX z4m(h7)YwJ{{Sp;q<<)>viscLsqzeb&)CZSZN+ZQpVd-y0S{&OSl7~5IPX6LAV?;I& z9X$~|9YPm5L9PJ8f^P-o&xX+bPLO%ytX8=E=bf~_43e)pX~w51dUK3LOHgkFzSYSv z$;f;yGAzQcH4rO9Tq(hLfK);BbOPSj$*`=r6sT=DQ3U<NA#jWpGL!x#3Qa`v1r`dg z(;g7~8bG&2;P7JVEs<FWygDiqT1;IpGH(O_A}Z62aZ$Jd6>UkcxXlaK%#z~vNPM4M zQvUL*jpm?)?}0R8A^81-yAWKvkuN&<c}z{R@-8alo>w;M`uhpvAT$G46|THd?7gz( zp_Kf70+~#&a429bW2kp|PVIxR(BMsO(aM~UfgG1vv^wW_rWCEp83!fGug<9k7;NPJ zg}eXY%KQB@BqJnrSCs3xOk;bae%u#|!HxRAgDQznST`{)*g)Z2btNPRzJ4ooMYgra zBY8Bgyd}>7%4b<-TU(CQsTPSpAHY{o$e#n~P79~*yO#hGYh>R|<+?L=mh-hKWBK<f zmdh?z(ZP)%s4m5s``|KrhQ8EiG;n$3HCpcTU_|+ypR?CL7*jv4_zHMG-X2`!oSpE6 z5jftQGQ*`9J!hZma7u@D=s7!;K1t*yMoD2d*yfU5&)IqZmV;HXo~<`W-Q;YY?S^Ru z0fm(0cbn95IS5L6!AW)LdHaE3T|t(h8yVjZUK{pqZ<MNDT<SBjtar~x^X-avC!y3Q zamBA<dtU`E;$6b;M&S4*lnHzHCx=rytV6v^rS)KDd?o|3a4c@a-sOE42TK65B3>bn z8sK&FkxQ;u?#UM%Zh|m(EZJI2&K)-b3UnWzdj?l+x<}8Q@La%8<a^mB{me;-RKuSo z>(3#gXOgUBmA_DiX5}xE^@;Kq%PLU$OJpUd{1h4Pr90+Mqc%VD5d3HluDm@L<Msq8 zVWuF>k=n~5@h@2Wc94m8=EpviE}VtL!rS<9KR#6L!;<-UWIV-X?n7yX9~1Z@K+_%E zpRg9q*!KLnfaW_`%F^5~2)qQ)8V6Ik+M_ZriOh$<zjiV#AuRKr$apv^-UFA^JuW-F zbk$U~pGubQ5Fg;Oh;+!jjUsb2@Ci{Faa>4nn+Q&Y&<##7C_g0lhX_6Zp%rNa1GOCJ zz1(b{<X}|R{}AGvTo!2nm8l)bc!N=QUTpigw1UbM1v0IGcXl$e8&#PWBExp~%YYB1 z%n<0&)kSVwfn`s2Dxir;a3_K3KmSTV*CfH+0{C7)4<*6++b@fldnKTk2}}H{X{D08 zn(*g<wj|{q6u>cb3qGAt%Vj5<d$_=&yak{(ghjc+#|ODf03GCVYuV;xie--iG%g8V zD7krj>0b&cL0G(h1YK8n0rIJyw*o5`KxnZOWVPZV-HDBz`@IPIuR`EmClqR@tQf_l zI$MGN>SU<M6jnQsX@K*UJ#eX2%w}Yoh>WyYFW>{5%&}tm1ZTN!AEm(25IWllise#j zCz_PoQ#ATlLf{%Jq-)09Qibk9^1~L2Gp>y>`fdV;AOA(*uTUlwd`C)l4ov<RfWAtC zPZ3xw%ov8{7%r`@R7L%Ny2#L4zYXwilwk?+kjw=lBQ7}<_)+O(ri+Yh`OX4<5oM&o zLwXV-GmvG?27X66J^V>D&l?2`{KdeRr_*z1AoBt6FP+RddX6tV<vtvU`~kQY=E#sa zBC=3K&R|I`0C%KFQ1ilRFjHN`A7aB|n`R#Zq2X50!1_%bfyV<nD+yi|<h}~fYzxaw zV^rw3a74w!z!y82kn`RXJ+IP=wZK21j5wItjGiw<W<6zo0KVPn3CZY|No0!fq-RfD zT5XZhzW;qt*8ac`rc6+l%KQ<ObrSG1qI%SGu?%`n%9;lJ+H^9tMMh3N?g##;l`&P~ zPuAga0k#MJYCx|!So>Cy!2V}Q{)UiPNomu;_EbEE)kz&(p;~DEy%lc>tWy*p$#VJU z_XBW<1$C+3k^nbY?!irWrts^z!f;<D3>VqDR?O|eHB{jsG)^PR`puqr8A@f9-s~yr zQugWPIhI|_mq9dj$sn*&D${}mJ%2LLE;$4K1wY}^m-{mj;=8i^{1?pWb_BZqEyxhh z0T)?*5<V&d$A3jqWchiX!zmrsq03Jyokf{>?5TzCLZ~?yuaPe9dH<M$)#i_U)(epg zDP5d@0ts2@vyy5ot7v3&Gq4*VC&Lcn<sjt{<_Kkp-?#+#;#L;oo@Y{Q;8QmsC9>Ho zL-J5uc^|U4d|Y<3cQR5ZS|t7iVMHU~EBNV8v5-cO1^}MDuNq;Ww~u20=mI+R*?Tpz zuc8X6W*w^3XYcPJaf<~)PZ?F@G7A0%I0wZ@-uOydrs!0nje)dwsCc6;)AiZ=^N`*j z=)q1x@~gysl%vFnK*u`?(V-<Qr^F>dW;m4cru?gk-UH-GTxhCp9z$Hs<O>9G-m-sn zwH>XSzPM1x)+uCrNk77CNH-tj_+fV(g|kg*O!P&}d51GW9b5MZ^7b_(^5NHzTI0S0 zuDs8jjdhQsiUW{1$O7@r0XmB42|!MD=(hnnj_5@|raSZpqI)u(f7jb|6BG@YSa-;~ zb4;JFd+3cfprQ{zOsg{gLwHKZgSuz3iqa5u&t|?~pn4M|zoAl(QLSJ(LE4;oH1<EZ z^0EW)LV_<MM+*RL94M_<_Y#7=kyt`NR4O20bp#Smv_L#gorTn-A`<oI0lwUctjmUo zqE}M$93b-}sA^G>N{TE7yxfU|TsxEKJ3ux#v_37+yw?-`9!SP9#_%}Nu=+bG(g<)1 zE23?nK3hPP;n54|04t&I7-<oYQsO8er#O`Isjnej1bn)a5g*8m!4M9Hox-(fSlLtK z8#bSvEMKOfW%!~EiwAiI+CkX5AZ*8h%;Uv|(2}~JQJ-$1>wZp448QR+1e4*v{3hTx zjlapIZ@GQ0<G*6zM!sfKz<*84P5QTtJRKIzH*7{7i}gRQyrLyAW~f+{tE=^kkUZT& z@#e$}`{7=N%r|WAM8acEs5>~7>?E3W|K+bl@_SLCR#0bj{u6Feaq|tE?;-k!6K~Ig z6*u3oDMZ(9j!SHgcL{Lw4V&)31~{Dg!#0_3*c=0a)0_~MgoVsEY^Fe<$_f1&P7Mp0 zZ`j-ofk&*6#$o|$uivoQ7n=PS0k5?pajB6kvdlMZL}m-{ADoQTN@esLHX>68ho(ii zwC1$OcxJOUStnq99WJdwM;oDrF`DHc4uO$QNR((n`VE^5c-}t`_$5|GS95hcO7?uh zHvqbo@cz^;YfAGC8_B&0(6cVL!UqJo{|V?lms`u$Z`ib<^6vm`bGa4PZ`d>;Tn~pZ zyW!HZ71nRqNbW9x_9ZL<t+0N>Msg1WG$JYYgut{j0ZmSV^=XpSy9&_kB=}OvEy^DT z^h6S@->?z*6+mw$!TJpwwv_)Bpsh);e#1uKT3FQP<I;L-hqz11_FEyjGa=SFPHEHP zPboeS*pU%D9tw+hRA@W|&ay(L$v+lIioXibOv2LS>etXWY!(1|#KE$>GT*RShSXPy z1jcD@{f14=F{t`R;9Jwl=r?SBqD-w5F@NF`1HzRw->_*1tVa|NeZxkI84UPniUg*F zzF{M!oCWxzs1~(WzhNV4W&@vV)fi9dH*7@36M&Xj6$Tz7TNTOuCZKnda_cv2B==T8 zKPKhYZ`g1F>E~nN(hyfTy!9J4a|rJZs0U$bB@Ghu4VytoKGNn4xBor5jT#SZvcnH# z$JYGj8#W1G*IL|s=iv+pdD7(<09kC&I6I3Lq0ZB9*ofd-2yKW8N?9tX->?zEpCMH1 zB->b`F*H``H*7?(C4_oL1sSp7^7Wk_ksc1o<0I0hiS!#bA~PBIw1|w<$oRv2!)7i7 z<~tz{&jvT&uz3d93l=w!`G(EgNdCe?63XHBFyFBG83LK3ZT+QFYq$E;!(XfjP+JFc zjt}Xu->~Tmfy12;>y})a{f5n{kUGanN@>y};cwVf0>9467_aF!Y$zXl5YV%P8GBmJ z3-e&AMv?i3%^MJS-|C2eatv^tEUUmtD8;@5{JRsO(MDvh6KQxdwm!JDBTKzRu0JKr zH*EF;KFG;*p-sV?Z*}z>HY0&gjLOKvT6Hw$Aato&z;DGR8&TfqMpTQw(KWmMKF$k} zc-e~cCPloE-b%BQY{=r|qwse4Mb?yfm;Jpl_MP>8rHjjcqM-NhP@V2w_J$C*@3M=0 z9jeuL*#`qV0axCm^hPIeaf<71xZpqv`je1wo|Q3gs~=2+lKxD5%ptmn6_=LNciE}T ze;6N6I5hMwyPz)vS?f@~%g&XrIZ(+y&mU`+)oy+57@p9ZW0UMl{evLbgkI4%C9|*a z!OEMS9f9nRE3b_8<9=5+&Cc2Q&OG4#C|_Lb9RKHW*a(gBYF+8m;a&_Q4#u1rK81?( zSA1$+>T`YScNS=>FJrXcT<)_WeOV6Ix<QQaA4SgRX~9rha3nuuwWmV2s?a|n@Oe~- z;i)~U*1N7c{%;V9!N$Df0{BCLuL0sW0o205!zQ0K$*c8+z?Tv34XDJy(hF;ugZL3h zK8cW+c@ni3o`XCp^sAbA5d@|?p;IVy(j=Cl?~D1j0GnrVlXZ_6{p3G|<Z27WCon5! zcm4C<0`QRqb-nBws5@oY7{ag}@RL*c+@I-w(LuRIr<n7wqJwkg+YAor7DD*70-L8p z_F#u}%zk!W7&#?`$RSQ4zr<-&cF3L{f+a!<IRiC<1`j8IuL5mAzS&cZRAs{_fSj;3 zbqUW-T2hv2K>=Te3Xsm=iuO*m_3W6<Z?>3Yrv|6|0YHX;2D9I#U!{9DI1QZF0Z><5 zc^?LV%+LdoILre21vSlfCbOLkWTHbq3-X>tbSjWahi(qga-w$tdDNl&(ct)We0cj1 zY%r6bJP%q8k@&aFtH5;@*g!yv9Ka;LNuqvYE=iKU?-kM?;+)(DNB9Sf#~zv~UPg0f zYoO1&n5Qc|5&wZDDRQF3GLb`x{6eI^<T*)@QAiz!E6;ldsRs$7-vqc2snaZ?PScDN zB;(D1?s0HP?^yyb2DIG4*;IajD4#DdEqovFMkgW~ROBHi@;l&MR938uix%mk4fJ*0 zSTkU49WK=l{5YEB>DOVr!VGAVaWA*Q8~*;M!+%Wid{y_hl;}@@s&l9=PJ3m{YOr3R z8A!g~Lh238sxR#N3xGZ0@cPWJxDH7EYG7|Uyoh)yF0Vlg88P^68ovhkk4{E(s7%{H zCLg9Z#w8}oFWi`N28xW|8CY+JQ?1w2D;xl=rrXY*2($r<Zg%Umn=E_Vbzr4~@^r<@ zE}idWmjx&L%Q>y8h83J+BpcI$e*HZ1^<^1F9kb=jYNqg|Upa*@@c+E17SSzQ7R_^7 z@WRh)=)9r@U$Q-{r{$OX{MA5B-}wta8OVPSuJ{nRA>M>TfpiM<#ahCrN8orqW%RgS zU--G&;gk;R&}RZvI-kf9^mO4*sGb&~&jfhC!ogBSRwQuLCV<va<h??EUCWGuZL+f` zSh#IA+b}?iLx_B@%Z;499nw*LIMg&|)04&l5QjG%%~>GmC^GxV3u8{nWg#VUAni=z z53{SqZL?*_-VbJZx%F0Mti)(4D~Nh8WypgbT|v})L+*41QSYscJMo;v+`Jt|-phCs z3baGk`yhi_{oheo#zaK>v2?F=$a<eBRD|R`Efik_LG4iWHVMuIe}CWyQf3shOJAy2 zBk%`=j|Vh53I3PBuM@rq(9|UOdx6J6oj(`QorJ|URsM^>bdkRV&<YFd4{EAR3=NDi zmnuF4{+X3A_SF(tRQw7k8$OW|!Yb+oGJ61TPZ?G*z6>QBJq?3m1^^%G^n_%Z26|2f zeoi_)#etqm;5Vkz(?(>(r;h=DHmXO$KJ?@dUk&>h5*kDY=HA9BsgM=cL8AHiOia8I zsLjvd8-x;`WURoA2RMPb91CPlZGJxlyaFISaK+DNi%ZG!8>3eBD3|jLzGo<^<%L5d zaN}GjFqdz>g;bvb<XWnp<5W|^E9`+;Q?oal{j$y8?ABQ`?f7=v?O??g{y0?7hrfWZ z?Mkxxa^3F_hjh#q&l&x1A2`V>T}NGFUbA<h)T<3-Z(MOH!<9CGn64q5_7fmx2OU|D z?MESY;Th)yU04v;g?Z<?@LgE8xh@<+-piN+1<@{Cjlx#p%6pm48p@Jv7ybarUs@=B zKDbC1W`e&RA6a-xl(&}I!(I3e!p#A-N`kcuUq`qvpaDs+cHwnU=br%RWWr)wxC_%o z{>6Z<v~alpX%`k1cLKlH%0#-bsCXXGOBN2R&@L=8p8@}dGOS{J8cL3IVJRjXeyxW~ zEDg(O7ZyG3f$u|^WIfu2MbA*+$EMSxU08g24)7^aJrYh55GIKF=iUVg+lA#6ppZtG zIQ{S|pgOsKT;byM6V%Lm0?0aCJBm~L{{o6SWM`ghi|ClWcwgkTy`T($YG1c#UZfWk z0O^5Ce#S%l93@hEL99>gGKdvJDSjh8M#6q3;{m&({tO7S%Kt{OMK>;a1-YcxH6F-J z^hq_6#6fg`^HiL7`XP=BnP8oiKiO8}V@_AvnZ-%(LglZx<lmsEP7aVxhwof*gwwH( z6$lLoO@Q>nr4<mnDB*P2fhcyie>KF4S)G_Z_u08CGz5@s*<Z>g>!O$^Qw9GA+6T0a zj2c~gFb&{F<#zzm5WI<BwK6KfC+mBZ8wuXT*HA*V=QWVUI+rEGRivwEgf@Lbudf-% z!};MXF8{FlB$FX54&vA;fvM3c-mE>2BHzA@xz85M!_K&zc!nf4y^3RRE5ZG4TwWLm zNu2dMHa%8?KS>nlhpspC@5^B^@$*8Kh)HX%L~39cZ_WSlnZpcyZH8!@@lOA%&j1$D zl%j=_;Y^!>Q7LYwyMll56JLUKwW;9+;?8+C2e$@d6VD~$yweZfY7q@NmwRvSQU+;& zhV7(?jPs4=ofZ*t<$@1!0E$df0ah_C_0&eaR$MvG>ZJ3;YzA98pE5lzj@A4}NdB8r z^6$7QE@HKxwHX5ElM9D8-`fAsnk}#Jmmno9!JXkBR)S0Z_|zncYTOrJV5-ige|!}s zw28%#0YIgmY~rA0O)(PA_iVxv)GA?%hnu~xw8>3Yi))jaGawf<J8#3La~62U>Xe{5 z>MLtl!%M(<*%u}^GhOe3P;Ab*$`&HcA|IlRfOhl78Z>n7Ayy-AB)?<0?+pI2RdQ!& zSVM!R+Uz^3qtrI2XcJ6aczXl8x&=0;%n|Ox7`U5wkfzjx<(z?1<uvn5D2f{$6=PZX zXi>=~)k%)@3W?N%tc;8Fq)3(FLjqie$@~i>8&fa&v#gRU)bZN=fI}~2k{ZbH8yZbJ zh~Blkq*J@vfs!M3v8m*aDiE@wGrht!eJf-VE4Vd??}n6cFn$8xA7mwX6L0W~m1sJf zI{2TlE{23mh{3@dx5nadX&&Y@L)#n7w8mQM0wy(rgKm-(!9g79WXGM)SJp-;ZlsUE z5pTynU~&9m-g@XdQcv0_Kh>+h*DFm~PoLUxanKiXF2ICgs?Po*+c=2I%dIR$T&5r@ zC8x`-Q5gz?`!jv-9&6Sa&!7~3sGn*tq~WV9%03{diinbCm?`m)2)$^twL>~kX_l>h zljA7Ce%4@$G0=4}U7GRqNIlh<$0o9R8x)pxwMt&fN#Hfom($O&IikHwACzf?UY<?$ z4_Lt+MQG5)BwNEPWd!)(&$3BiH)RR=L;2b0Qd8ZXmJ<{v4Vyp4_2<KODSt2&#O{u< zSSp;6l2wX{ewf8dkrcQnCCA_yXl=<s&h$r_aE`C<d+Q)CF}9K+!;f&t{A^K~wE~gm zG|&wBg!*1)T*Mn`WykQODwyw-ljV$rUEYV(#J%uDsDL3!FK31xn2CH4Sa;hZBi%*+ zN1^K_rnaoNj87}IkV#(h_#_fMI{4B`@B|`$3;m(NqZ4q^)IW)ZAb4~(8~SG%q-BC! zF-+EY+ao1cQj<#q#9B*0^OWKCa0Xo{tH>A^OCLeRZ8UsoBr0`GXhF+#oi)u^#(h(* z%afZ{c2jKV$PCMbAyziB{gOD7bwhL?rt2KF_jRcfN2m(uC>n*=+d0Y<jT$yc#*^fc zLq|ZFfY^NZN+$dx^`QBrCpVOt;yY`WtGJsfIMj<P*c9rDV5X3HAZQ~UP8(ifdXAvM zw5#=KEcM{Vx)<c4PF8ot4vWEaQmG3dlGHTxfaH?FI{IOvdN8wZgxoF2F23bW{G3)O zTHMm~c1mzgeZv;8qdAp1)vN}+GMJ0|JikJ|Og%p75!eyL!_Tt@xEwtqIR;U1ZzP%D zqm(Bfp>E7b84p<M8HtqSje2ry+=*Ng8|>*pY)HQkI=|-9PQpWo<+dz0Z<&@@B#lKU z$EJl^LW|gG_-Sxm!io+<R;kHOf~&S0i<5$jfLF-pIboxD<Z!-K>nfLG^y0A5_^mGV z8P+B6OH%lRBb0u5-xiVV7Y$+_TKsNBoGN3*4ClJO)Bl?5#EN<cX3}?@0LCG|_>W-` ze;dCFCLbo)rH2!l0kL2pk?p)RLg67)^o*ii<uwk8zekZ`zNR6H<y=fX5ZL}Rga%kc zcGZLR_I0+mz@U-N_LHeIZy28<`Q8}bWE{!QzK}0`7OmZYcY9Ygt&1N%A-hLkejW&T ztlS<_nTO+0vK`w^Mk@ZJ3m<5YV@iW5nKLwr|FhPEHW;y?{v9Yp*iSQCetI(mvWmBD zUx1BXvF|sApR<c&et%Gr_gnQ$*n>2`HKVW(^ZM=i$yWIp3Z!N(s>$SS!?$6B3BzgV z&LxIw=xH_dK~hu$2h6;0@J&|LAe$9)c;*k_f?PEmY&A@=8r&c)HWW041{rsG>ui|B zO=&GA_~*zeNNwTE`S}bqt;Chr3UftVP<S4a(t}ywZ-D-8%X1qFGMYy=pZw4|i3;p> zpu(Rq)fJow6?_fRZh-pY%4?rg@byGl@F_sg!zHeA1#`C4JW{ZPyGTd@r!ceMg`b?A zWN7tEc*~Z&AKLT?MFCmIuz{8(0Ts+azkhDar*?IZX1$pb^lKKP#g(rTg+b9W-%zY$ zL`?Qrg)F&H#<{He9r<oxR{c&K@YH*qd(J?f-B?cN-p|gnY@dMb_sIP=wS=i+1|!1D zYO`+f!z5pJevIVbhY0y@l#uT)74o0kh5Wb}q}kZ<=Xq^DM^=v+*P-NiZ)lefYtY!D zt8ICw23DLNSaC*>I>8xKOoL37#vb=~G_(n8xb5#~*gK@5=f_S%Z~mH!dbm%(rgf_< z6Kum2SK4g7Uz}&zJ^`Cn1OMT<^+V5-0}T~VIt>AvR>OU;)@hg@Xt*lS5U^=AaE>(^ zx{TsaSZ8$^#UJ$s;g5HN@He`f@L$mAK-}fjJHX4B+~qX>YPYfzyDqZqnLWW4z5;8c zV{`$dKmFSf>h;I2Wj5*}BT{E32IoW4UAtVzEYjo2beR*q<;W63Z;9SY2MhAfv#2&z zm-`<?fok&u{Oxd=C#8!>XW@q0_@jRBF|bfX>-S}6RJI?dcV$bs7*Mu92U%qg<hrm9 zi>*J5pS7#-d>2>V2&5a}Famobac>L6j}OqJi1r6E*rK7YO4UD>=qsqj7@%iTVl=YG zKShdu0j>T>O02{EbfB}G#Mgnu7)nsb0-%d2LF3}pNYVfQUWWqpC-U=U!0$T|W)eA5 z*4Y$czJEjHCyLP;Q_b@UwuBeE;gYY0($j-%s;+spXjwGTb0(|IHbar^*l^ZBHq>y1 zjNARFG`HUR82@?EDBjfjAV#I;-#XUYAa~~R?`N?&hhth`RD1P4kA>dt_#*aHfNYFC z$eT_grr(<I--A7$;L1CDF_MQ0R1+ide?anf3&qbTUMl!D!5;+V7hQ|>E3UjN0{Az9 z7ZdIYsBaRiYn7`Y?;i!|1j16dD$mJa8Jyq!azIlp9DZyY7a3787x<l4#@JUFs8|AM zg@wZ^^jqIjhYx{oq73U0=UW0sPt%|n56zIri<X9Eii5IR0q;ziWIe3{J!Qa;NT;W5 zpl1T`^V8|+C^Bpae-`i?t&C2Lj1KAa@}g!#dQk_7`n}J_nxg>|B0Zlku4-z@dyeh@ ziDM7k2)2%78^+H}jAONN<<%hF0MhfDA+fCm;{Og%>G^$t9Awdyp8p~$F%sx$l=ul* z;~yX;-1FDs{xYCfJBcp?i7_;cI_?7cI3;LY{8^-=^!$~8-*zI*By!=N&wMoy`8UOA zjj87OEM_lwu>_a&eD@1cOiliUC^aJ8FGQ(3Wi&Ve8BYzX3v%gbAn$?|@`t)@JFb{* zTP!?+^BBGX4Xj_nf4r@1e;&mvdtfuLp>})~g}#L=Z%?F$+i@cjw^|_HE<lf>_6!tW z7nfv9X~!z$YYnsuB|0N({2ru)+wo@H9}M(xC-G<?A?-*V<AGjC2^tr_0x2o&cn#p& zoCq_CT(}*X?@5R}Lor&T9+lUZ3i&JJjaZ}H-H*I=4weJ=apbARl--YglDs%;_v4xJ zGc;_cmU3!Q;6wuT{~z|=JU*-9`X9e@pDY)MY)@DOmng0%I|3s6qAZFisJPT5KnM|% zCqf<qE`Y=Zr9=ZJT76Vp>jJG>S{2-Dt@~12*J`bMtsiaO?V`W;`^?OpdvAia-{0r^ z{fo(KZqA%J=ggTiXV!b4d%?LoqGS|(!>-wp_+86+-GGT<C~`+y3X@sMOn!#s7-XEl z%rhxhb5=8xUQ>gNI%Z0tI`ed9vY)O)MiVoIQzm@vDg3r)nggd)P7N&O>j$vp;R_k? z?|A)h8UFR=Ya_IG46J+`a504sT*x;rXt4Swj4~Rm*$goK6iSRNfOy8+9pd$i3L*=j zfke7nng90}K)0blt>`U$??ZS{pvOXaYEs*y>&W?+8PeD=$TI>F&~;q+NNv~g+;?g0 z1U_9G={_A=Fv%izcmnun_t^)?0XC!PIhT7ptvdlZN7>v~-RCLPVm@*+q<9gmMQ;IP zTv`@DFCl$Ca+^Ym|8W%3eJJB*<lapRDp&LnFs-`JlgNH8Bq5W~nX<&q$oDBoz9t#9 zG1ZiDtN1b;S|En+#?WQajE1ZpkT(q^Cq>C*okXnpDUxXD4rpA%rRlff0_durxCM}u zVIGEi%Wr{mg=?P3!*K8Tce$K*{mo4Dqe@-On&)XK@d9FpZMgLpU-Ntb^k+7!=t1U3 z*F0AvOBG>n+!e9IlP+7Yd2VC&LC6}E$kuC~=RvQgA!{bHrSRyQhx>h1g{(T89bK^K zHIIl`kNl06Cbs4g5u1^9m(7lf&}$y4!*j@gjWn!75g$8`t$C!F&yoKfX{c$GMz49K zte$9{K8UU4=rxbX8HM~KNRyPK*E}Mp4Ec-NlB3r=YzTEO@-MP9x_i?hWX*Hc9Ms@Y zM30N+N3L`}Bag%zpLyF~aT){-AYGSt{EJ=UUH@DrVs7#|%K8V(8+Z@sX9$y78h64j ztrwzX6%Av4)J=W^E;R)ChmvNz%hqo4J7yn?tT~Bn?IuTnUY(AtdS*-EQ8!_SP?sR< zN}C;RW9=p)Vk`2uS(=!eh=>=E^@h!kiqLK%b@&STK8z`KD7qUZ$J|7U>5csTNJCAd zG}=w1tg*<S)|MRYCL(7Z@@v|XquoU0T!8!yZOPGY!iG?{A^#3bqrHPZ;M^olk4sZt zcebhOI<hx**?O>#uB&)=$xIAqhv0bLAT$%hCV-KNVV@ix0!Qp{6YwVE7?v;^$SF3X zXtT>bp1CI@XMxRaH8H%4nw*W?wWPQctVRC>COR?v4e4u;duvEh0LW0t#6TGj0rxy9 zs9e#jz_gke-a+=~Aqkm;E;=!guLF$L1yQuo^Q}C)o#v};_h5~>%;aiF&NPkzp;$h) zJ1M&LISA*)FkB}L+<L9~Zx}dk{lYTD#)6^~{)!TKF(ph0ReHxV>`0{&FnL`{Lx%6w z->cMaUfEf04OHgoe}Vp|k>W0cUgi;7Wq|X~@Spf!&%qu)mMrT}4MyQSgXe-$zjtV` zEG|2Hm3bm+q5g8pkYWm{3WmyR@om7T<qhrf1pY5#fkV48TZ3ul>N19QlCvTyV`%Yh zz~_03d636geFQEkuTm9ILQP(NRZX3C{h{5iL6%hOkOFm$0f*)94N&Uz^6)RN+hocZ z{-rBp_&?vg-qvIIzX*4hvWNeha8C_?OSnYC-w{4w92FSuDJBN$gp$Mvo$w_wPABpt zF-0fxB{5Sc3M4T{CjvF{cF!x*iS}w75({;rNWLFfs}r3iQKu7KRqZW!HMdT5S6epW zd_pIBsB3U|xke{?s>30zK__-o$0M;;C-zlmLck?D(ND2aFV~6wlGvmZ10->?P7IX9 z?K&}79Ri-abz+F<_MlE2qE10MkLXqzQOKsK^u<Fm!M05p@Yo8O;5P)>y0sp{p}VO| z0lx{Po&hxWC7;+YiRA@sJs?i!eeUmeEuI)bERqYwTB^N)t<1{@harAf1Wh6_^E927 z^G~0grNqj`6jT93nzWi~v{0RAd80~BlB{dPEJ``uuvJUmeQoBwEIPel^SmWg_s};4 zs|y_>M*fZz4{XAPCNE+VhA0XRaez?uy$*R|hy<w?wU0E>I1=#!0f*yX+DSP^q|}B| z1d0|&v0B!9qGA(Clg9i=vVLl_48shu!egOq5gRpAy%4-Z0;1(&O_)m22fkw-foRhm zFKm0FGYVGoGKuQV0IgQ{TA`ZU29?gAC;6u_U+foZS0th|(H0@Ph(w`=(fm^-|Hd#s z!g`BjJ=j)OKQTH-lOnl@IZXqzZ!ASsyhF>WmUn~IkL8=3)9AXrm=h{xavGR3w5^;I zC~Zbt(zdha3*$Vx_7hXgS|2hw6A=e%_qh?fg}Q2Q#K=N|GG>l!M;#2@p0J)nM#|bk z&mkkFBNb`-T}Y$H;gKB)7i+xC4SGx-*_rs=G`<UAJwA^t<{g&<G`<^Mb)c8t2;H;= z-=M;yp_tgoAS-ByQ;3vi7YmZkWLH!AnU+TzIFfw|nXYJqTU+b|Y1s#uFD)yOn9VdV zi_^+IK=hwt1sTs>p?F8`A7K_D7@H;QQdTP7^y`hPYyE^kOMQh@BbnoBC)t{Fv!cNm z9j6}DDuaBKVhXrJaj|et8)Uka3#j|1cqw8eT}p|JI=^B*`>qk{3--lOsI$E0Do|AU z%N<JXAo<;Y8mn8R)J~E=EX<c)70I729r7sVvuHce)CqdNLmxsr9103OJ*=@gGV19= zs6&5ab2o*#lxcErv$^+&xm3pFK4)|P80JQJzp=S|f<iY^vLdS$@3->F3fG9n#`h@R zRhB!;VqP|V8}0j`DhC;(lVHgTsX!(e;`91Z3SR?~>oTJ21)Y^^r2++M_*>OV6)<7e zYL&kDQkwS-GeJ4>Gr>K$rez7*SxTtvEHnc58U79^^ZJY^BrY5D!oO@V4cCmhYRu^c zW~q1BK3wj|0`RbXFAu@}cn4Qw_usO~f(OW$LiG+ikgHHla1c9z1`noM8XWDgV;uI! z4!b@CNA>h?F>IrD?HPi-`iEfeNfsR4bC(d@wND84Iy3}(A8o-g2ZePTb8uLpG5x|? zj2RH>FlJa-`7y)88jl$fR&&hAuohz`Ik|^B2}d|^iUW^va%VXSvmGd31QnZ&DR*r1 z9YN-#utK#J04x2@Y=X)>`6sLNvav(HKv!u;{Mg|fFAY3`u%0Q#jv=gPhq03g>ltC} zWWstD7<)KjJqwIIg782sa|+=R8lFmcoQ9_no}%IDoN#Aq_(;OXXm|$UV>LXJ@GK1< zOL(@1XA?e7!zU9yUc;vlK0(8!gy(3uobZVno=5m34Ob98S;MmZIYq<O#Q#Xo7h}($ z(w%U0ujfuqcHVMCZ|vE<fXxJt-D=!%TnT+86AS`+MO85VFjAd>gh(Afin-nyODd|p z@uLanY3Cn5W-w@~I**@7`U^t(No-$3Kbde~=ntQ(>5n2kA8XO_XK?s2^hXo6^fNbr zW;BV%@0)rCa3=UYu4ht*4*<xCfIb$G8DacP8JfRk7B8UB+k#)K>>(nKli`QFdjhEm zWOf=~!Rd1-kzyo`Tu92P3FIPH=hP6XOC6NrzGyA6yi=ktoJaIR{9$TxHlODie@u#2 zy`Gemu18QUq~2$9-IEYKD@C*Zo>-QwfB2{wE=y6wCze6V(u4Z=>tq?$>1SY&Nu9Nd z=3gPK1KP-6DV91cHIsR)m9BzRM(VLj2p0QuNk9ekc4Yi-WUkiizg4T5%P~c};`l5L zd<BuB3L&%&E39pOJ1h4<EME)P*;_eEywOIsw!|({ozHE)F~W^vgyNs0P!^=;EjPQ5 zzgin1%$EsQ3p^o3=j0<=k!P;7Dz)@aKD8BfmB)zWGhD8EQT3nZyvb*~+Ri?+1hwNc zUoP92WhJNW=i@n5ohS5W8+-}0be{>kagT4{-FdiSy3d3?$humQdiWJGfc6}|iH8Wn zH~d<H2ELBR33>n>eiNIuGuo#eaG8J`a~WfJEFecL#402NyVzpWx|2_wLCsdO(1~C8 z7b3Ta7qDEn$u#%G-?D@o!mL^${!04pwgmPY!9Evar4=SVMFH=ING;%XalwBku&;@L z?sphHiU>g&s;$|EO2->T0`U`y)++0=KA`%?Gh2LDMhMM$zE5{LlUa$bA~n|R9}~VJ z#;&Dn8Jl&jnNLF9%c+9V?oG-6Lzqtp>c576X;+6ke0HEOEtTPYLkv=Mr;)9D>cn>h zt4kj*b?;9K*4;E)VQL&PQd3=tOQ_Lt3FHPMGZv}IS3-z4@mKyiM2i(PW^Z-5#psfB z`TL13_r<cL=jhQ&W~+(UP>$AP3$=Wm<f5(?vPw+!HL<SkaPZNdhT_A?vg(+$U%1qm zJh0a<m{)>pnyW7nKIs~Aj|EPjALIejIg^KTQ*vUM)5+xwC0xTCXRS$Bl9i7RYGj&g zvNRhg8}QN0OwiPcSN;e$E7wf0sxvVoy70<xMQ4JGy7H>_Aq^je%m!We<$79Uc+D$n ze;`y0XmV9ll-`QFe1wZS@_HDkl@DA8X2?&*^_T>yZ$Y<gK#EMjN@s%&19+W2kXJrB zm<_&?>!d-1`BYxkP;T2qE<W;=4fudw##~90362x`euJs$-neEBhHxgBirh@lWhn74 z35~{3lWfpuKVIwQS^}DSqoIaR7aHBDe0(4i@ZApCfN)meOu$D^vH>3+%9ty^MUf4T z98Sy)BY54`m6(xfUdPI{U1!3?XM#zBc|>0^OlAd>2_6>=+b0`LE#~z};UYd0jP1ee z48czlcttm2E))#$s5|gk(IFc=F7OoS18GA4j9j~7WX}XWdlFAfHsCkIaF~f}HaH*G z`e3@ip9+5IZp5F5YbIDOaIib!k$dvWubgLse*w-0X9|Xolfb7+h#{O6I1}&zlWf3; zbu#A4*G)mU$;1>0{dIEHcw*|s@|oaT&@ATSpO1dX^iT*MKH8B9_^?VQ_$jC}!6|$3 z`V+a9<C+bQ=tC(QK1VRe>`fZtGeK4;ZxnpN5v1oA@-o2zhw?gdDls<*%x{c9GT{1v za5ms~wb8~x!%swK4W8fE&6=Kd66mu5KPQQ{5lVg#EgOuM>jb$r97~xxm)A@{Og7-B zow5Nxlavk41-?GuCz7%Ozo(N4_(V%KIQuSidfu_g1e;)ntf1i%vx(tHFwg}=7{3jY z4fwc9HuzeuPf9MI1VK@9C4DB~V+PrP4~1mRl{A@v-$=*?TaTwA{B#03tY8Rd0=_gq z6YzTx*?^xfs5cnifrj&($m=U|{b(+8HJ(@O<^}VDz<hsbCg58ovw?=csUTd2Ykk1i zU}69fniHh~kCf}VyOQfNxjq043<kJf>Qyg8N+#gTBQwE*1-$Z2k(q#Rkjw<U?U@Z8 zy&Hz)y|PTe+vHh6r}?OACg95qvjN}jSZ`pBNi8Iv?>o!{gzM#+2_^!Q4fr0vdIJ-a z3HbPbCMaCXEAO*{<{p&F+py^SQmRJt&1~?yMa1*hP8oS8RaW3^z~;^dpVSb~Ta54* ziXn)0o5CwUM2M4$46hnbl1#vRk=cOvbu;G5_d`LjQ0nTRQp;SvK_?p!K1Z#F#x@if zK;_n`i`&Ha+J<RK@wX6u6Yl*e{`$fO$2~4V#n-jiu)hIRt{PP5s?yRL5ASB-+~zke z^v+YvPo2XnS41{+HGs-(7U6uF8}#RczZT>q^_$AP3p6|0!UfEc5>)Qb!m4Q(Hpo3D zGOblFwsYjJB()uPQV}l{p@dN4MUu#qt)1UA-%E4VuuffuvD_aFlF^7i78<sSw_f!D zA{x4zgvym8XAxqfA|q?RR{aZdY`{<^LFLvV{~koG2_aBlET!b%t6pZ=O=Tv1pL$2q zbG-Cz@S1h%d`vn1)8Kg*QL9Gi5}57`FaIey*Y(nOfOfsQ9~sebph>7)$9wV0Tf|01 zQ7FDqy(GYVXg$mt4dfP7x$z)B8c}Oah;>Zgg_72)8cPS3-eD<qAleYJP)%3SPt+N# zNmCg-m=kW3>V|86nSToywj%1f5%SU$vR++II1;dulb~|1Bj<g@Mn!JwwN5<)mHaP} zRQFk7guHa8UqUNI@@Q~c_XX8Z#70GK3d48+muga1;F>qspN`Dq5w(Vd@bWfX*Q=3) zBf)973ON@dHY##!p^u2ruPJn)zX|Bu5VcT3UYZOW)Ww7&!D;$?<h+5{sK~9WJtqz5 ze~|ndQ41sFrTa;>NgfSO*k1SJxlY7JMQ*Jj*EAc|K4_@?Un+kha%UiFsf4^VIo7K| zgd@S#yB;~`AT}y;YZYIoikBdHC88Ea$V*Qa6-gcqPQ^!%^9*96BDWT{wHVOrNPd8* zg%R@7RU(Y!(J;g$RIbYda8<-cMQ&Z+b|b_QaV=Qp4@Tx_L@kt%mnOq{wHM(?aMfLa zoLWQ-0=R0ST-I$=4HR0Y{I$SuMAT9Vd1-QNP|FBMf~)tv$axg8QIT8M`$s(h{Q=20 z5w$QvUit#5H_4;H32XNth!7hUxwWveo`CiSvLB)rMhG*N2qSqkxKaOj<dh*cDsofU zM)eiS%HPZPmjH7%qLxR<OaB`3)+=&EgR|dF4|?A1h>eQeTHfs4A@3&Ne;Amj5w$!* zUiy8JM~-N4^1fuwLzG8u%EMX<@;0hhD77->_e5?VL@kw&mnO#sRX{iroC%La&hdzi ziriYu$M%4{8&dv4V3s0kd4#<5H=-puqQPmIL(WZzjf&h_%dvY>%hkB%2ZjFqz(0<t zr4sVe<XEpZ6OIHY^;6{h3$am=n^M=QUL}A!JdB525VbHuUV8kmSY?t&gRAmbP)$W_ zROHrGURVO<o=*8E15=CW<Y{QzCdk^L$QBJw=%vWH8nIDPgx2uBy#Q@N@@_;ehY)Vc ziiRYQ1}E&#$oVT`qawG~@U^|6;i-lGzk%uc>!`e#hGdHdCv+H?#vwK;iqIN9aTuVZ zfjlXcNXSe7Su`YhG~8(tD%XIV^@xp%+*;V*rUJ?#`BOx#6d^C&2TRQjisaGYG<yy? zuOc=oa#L87;@2C4x&B|t^hi`(thVHe1}AeLF!e`lR1~32_#jsEc*Vaz4*26jp$?Kp zPV@cu8x(n?!AV|;9KM0CQBe*hW3#=0Yfiqt&xVc$K$Sox&r@?*&t+kq*ZxQ%$(p95 zY;dCR^DTciIR4ac3_pJcX!(g0e!l5%o#Gey{1V_M3bFb4o;DTt7?+~h<z9!2m`!*E z;3<GT*=wXJd4mdwhy;xC5>)OC<g_4$pY>~0EDQ=Xs=fl0HL76(%<-BP-$iHxmiQ7> z?p+apH_XruFo=HrAlKQ@tXMJIZ<@k1v@2F0N_t#G!xr^17HBry<7-IeIz5U94-xfh zj!>%U!IgSBT-5PyN#DKle6<LtM?4WqHEmsanW`?Y^@=)i=bLKUwCXaoq++R8)P<)t zc}<V4EVxY7o{mppaMPD+TD|IWWy`HHz$K7-nX2-Nx@wufU+MiMB+4@o2<p6|?%Wop znqFQBd-K35y(=zP2uV>Na@+8_VN<!P-(pFjDfXdGsiwa{XVhR{UE0elP40d??@Bej zgj}h?{+jxdRZf{}jCj$uujc>b%A822CaI<mOzK)G>CIT`_EmJS+Tm!O<xr{tQTr7k zFMWs%6jV1FTyNQooL?a}Dst0h*Qr}5>^Dfhis*#JdNz5Y!AblUIl*I;ND*4%wWC4X z1IU9BwH!C1nX#KZ(cqR(Gm&!=Vxyu6N^DX8+~3hoF(5hu^4B72S0m&%VLNj@tk|Ls zJ;1RX8M15v(e_p>&5Cd1wBeMHT0L$a(d9vl-Z$ZeoJ^o^B+}zx%D<q+{LWzNji@V5 zt<ak(DH@ys$0BDcVxuCXHsC?1u0IFKYD6a|)+FSKhDj!&a!ts&60uQH1SPIjnFAf| zej(*{<Ufw64M>R8>4#vzwd%CKj-@1I`4~h+PgoXh^M!hQ-mydKc^UvauNHOn(T*EP z2`YCmIH!f&oR3f-xfglCl|FOGo#uy`*Qx0zB6%usRfxLoguFCA4z@uZO*j&qNjD%T zhuEmdtxd|01p2oj`5>Yb7BeY%qQRN;9pvx@tBr~xD6u|RzJRj~-^^-*n<Wl>(##UW zpsJZADu@*O61h(CD>VLS;N~J~JvjMszrEaRccmhliKSk<oT@~^OV0*lnqQ*9j7UTz zTx4LCy97C#5gQeSqenEVBLtY)sAdZ=1?_X2?GxbZ74klX{8tgRLzwmfwf<g_CUeyP z0A=u0k~$lF*@u>S1XmmOHh{{V3VKQLG<_n`>u$zHPdxdP6!VQwtnl(Dt9g=!Pp}}l zw5X%43ShKurgCdR@N-11J0aA)L2mo_O|!3(0XBb`;^;3<wi0%1QR#>*EZili-0#8t zRw#>*G~7jCsSjR}hUdF>ZEy|0_tU1~`6D^o@I(qfku9pC!t$BN&XH8PBS2JvsMV(@ zKz(hNcK=k&@tbCP=>?*-9}!_IpmG<1=<-kmAu07FVW~dSmFigT1JRQq3n5|Qm)cv@ zUTv20HxPXrve;5u)b9>*1uQn8%I)zCUgM0Ys}&h9mU|tWQp}OY__>VP=S2!UE)-D? zBEFe8W*M}@XVMOQqp=MgL!MhfFUvemskR-6l<E<=PJJ>E$@_tO98q^bLSDKO*&Ec) z2}gn(Up__7zYwwi!Icu%sRIT9>hP@Rl^{A{vGIjG(cmOb0@DmcY=Us5#I@?Np^g^k zBob7v2Ki?pYGV+R8r_UGUaM}6uyhSst_9K0Td}mL_afB8Lh5Hh`FetS4k}o{Iq4&0 zba~EJkgdrPYO&Wbt9Z1|M7h^-nIa87uDq3Yq_Ak%W)dnl5>zK3HY&=+l!}8f0I8<i zS2d~>GW@1-aKoC&<X;ss*CYQ%#HeG*dKHfKpkfZVb+7OEu;SfNzv%=oy&XDb<vvNX zD!Iz(H7XSR9av?Aiv0*i&-VEF4ztlSP5PKr-t$bOXWohoxvW)uuY(OG22i;JK{*^z zYfMO*j;~EvtN1nv8@hxnr-10RkcE)2@GT1K)IA%JT*+KS?P!Fs!^0|Yy~+@dgboH) zxjT__FJhx2Hzlr9{BgVgB$96;I$;t2U9ZR!4NhX-@9?WC#70FCl-Qz1+vyW5uG#v7 zY80Y20+)rF`ni!#az6vA+$o?utrhh;#n*E9E0EEIsCA@0>3>yTm%sW%duhH7V!a}N zG`LZI8*-jTY*Z8lJsMSm0A<)V@jd7^{MZ0kz`PJy5sH`aCWl!H-c+cUhQ>MY#&n&Y zY4U$sXzz$Lsc#3tVn_R<A@5j3T?Ys0&2P1IAeI>oZrC^zIp-l_s>f9~<fg%ZE=BSh zL@kz(mtH5rNFEJN*kj1~9b%&*w-$ER5I}!M@=HV~OhaZRPo8L)X%Z^e>-TsGGGe2m z2ufV5rb0a%I);>!Ky@sl_6q7t>So2a&D+p7q`n!HVGos2p4%wB#Y|tyZVT>svaCUo z3mq5VngYQ(#qY5B_X76<qOK4j?#CB;#fx4B?4|jgHrbS~S6hgP1UHAOKj6U+#70GN zD7sNSDnJ>E;it>|KFB=`Q5Qq#YFUmH&sXD+z_}pq0ZBO<6eUH&ekOrkD00q1Y*dsd z<@6JP<t#xL^VcDHJ)$m$kSXV7bu$w9ag8g7lA^(t^E`6iL2Oi%C*?E?P=;PT&pHfv zeW?T&FL^KGH~NUW{my=ngZRy>^uj)Wy3Z``>#q^x=Fjk}fWUZf7G+2KgCG@yDD!K) z{F%PKZ8wMMS}*??KO^*IUi$H0^2X#oAkPG2aBWiO9WNc}d{A78sH^TE-I3nHNU%X= zksl4<m!NWwAm<sxMnyTOGAz3P34mTl@&iOImJk{XPO(9eJQ|#^E-zsNh=}ul&}d<) zIe_{CITq0g(~#*%<cS8?k>(+%8WHC^xKiR;_1y7})^()y$iEU%Hw5)1b+h7E7;JDI z>F=PFj>NmZ(vkQOfbBU%f;*l>M<SPWq`N_|PJPR5TK>y;<p-j!5VvU@i!l`+t%$a} zmM_5?4HyI^sNCV8IuWr^Q51@8RGkE%)A3{IHcT;q%B?{D1&F$?ER$NbD1P_c2D|80 zxu1gam#wIq6+bs&!vq7UT=6T$GJG;XOvJYU>Tw)jogg+`1cYfb&UafO-zVjr?-uoE zo`sk&%luclp%6a-QLC<JL8`vz7)xtDb%><O%>`v`8`Mpa9o7M%>`Op-bx2K!E|6Y+ zH`V!Li7Q}_kmc7PdOl<!BrNCriY)vjwGFPlz64S6tF{K(__C8nn_r(|j;!nX<>+R$ zDPrS?!%~|-B&LnoSi4)dyNOIS-MuQFzTKwpVSB*D#T3`=-lI;lCv@E&T_%OkL?7X| z+--2<+a1V%08tyCkkob*R9&mCjI=;k!>e-dfaueZg^;lPK@7w%joWZk$kO9Ay!8h$ zS_+S2mkqSE_$5zBeIY30uT47<82#Eb4x{B>_bxt(P%hK8OzWAhY?A`qpc*B24*J@@ zTXEsJZj0(Lz?Jq<I9xvr(r$mmxf3&)&;@B#xvHn(uT?!RSMMORL6MfLa!(J~J+4qA zAr}L-N$1qr`!YSpq^~mRDO!zY#SgC7U_o?Xh;8ivrjs3*=wy9O+IF(Okxs_1qT4Xi z04nzri05ZmbhV6&V&8ZNd}WPF)mskCA0f|MpqGJ=iv+uGBvRU2uN=O@a?t-0IQ6<6 z@CbQnzFBX*dLKE_;8w|fK{XT++Z-cto#JZ&{fR)%LDZwC6Dt$LdPSaSa1zf#&iRPA z363ju#I}G7z-A;jBWj6UP;p^{z1b>az4T>Jb%P>nG`K$U2jqN!*r+H8f*aK}0+hk2 z#zvf~#qi^{_Zz4LqO|DNP1f#u%Wsy%9aH(tf#>K}?wDuNQySDWdCc(i8lYoAzIHM0 zB!1oBDfwtv-g1<62V&G~^_l}i(9iOj#WhER;zz|HSo>zj+w*xQ&z+_01=p(jOPqA) z2rq*Dolv^nd978u9OkIq_>lJ}+y+F{y4dldMP<bpn&XI2^TD888dCEnB)SfJHP$}& z7T$$H1qO0=3=T4kx&rwR8VW2dThwOj?x1l6Y=rQK!UD`DOIy6KR6Q#Nl<5MI9*1Fw zGiS5nD=BP{vpFPGuJfCwQ90g7g=j%7uFG{PW`}cOm+MpABpuxlH!FS#$%eNKpmKM= zY2<O6B!c;PmjIDn)y1-l;)tY+>~x7i+-?y~h2-Ok(@-?ojg~Xwa#N}{Vy7$3)@&T7 zCw_>@hPw=)ay|Z>)GngbEW>Z_0?fAZj0Ur<2I!FMFl+kzLE0ch-66TrL;qtD(J;m& zRPH$Blp;1NGO}a0sC$Pv+CxIhRmi^$QM;bmI&tKxMK9>Vv7o7p$r>chvKm#sEK+6H z>py`UF+W?{tozQ;vy5E^nk0vTZ;PEiLqmN!p?&)yYJCV9=U(LHUy?Ui(r}J>Sjd|> z>e=y54)m3vawmZDyiktmQuNtHUg2V&Ij9)Z^O*jt@!@m_G+>L`Z-Ns!JrsE>n7&Sk zGy_v%*4N#@3`|Iq(%b??5z9;w=18e<x!(gN$*jO4GXdX}w^6-;YtM%Z{cdmLBoI+I zHz6<mZwOqkQiLPH4dzpkGYhd%ky{Vu?`;G$7s+ZwEsPLee2z}ML6JNfdYgpGwIF8` zVxuBAg*B<)l;EL-PyIW9xEE22<7y9*NE;1y&{4TJk@F#9qaq_EZB$=&hopU!|1V$) z-?5?yd1=0Laf2d9G&s!$f{I@jYgFW>yllXC!e@h5ab2VMl`<RLczh-}WMU?(nV63x zk^<7>0Az!2grA=;v%&FixBPqz*YXo7{Hp=fo1aOfad^E(ecPrK^{&x^zo@WMh!iRO z%vp>2YHwRQe#osfta4*P^m9a6axsy7F{bV>oD4XSU90l1EX;zeL6J*OWLpKg98=mo z0$pMkWcgPW(&`)|%@+D<Gf9lQPBb94+{?eVaQ$8+yK5ENiH1z`Yi{WWMenC3IK9sf z^?m~-jepN}XHF%lrpwJZTX;|bJ58$T5{F<%Of{{wh=U8>7sXbu(gSbdfC5URrUo&v zfWI)2`FMA9q!!g3D%#M?04lctTy>!yc8ju3bv+);4ajIj)E>>vKRl4s(clKxJCSoQ zSri%Bbn8_0Y(P&U`6i;4<DhMuASnGusJB6pF&dm>w|gH%h&Ti_Vq4TitjBF|WA+eG zl_KgkH@kGY6UXeUS);bb>=HYNLEwHysLJs}dE#;0uG=v?zI8uCC(GdCOT@YP{XH98 z7kLAcq>FK1Z=Ab=NO5kx*?;&1BtHeN-3Qi8RG*7WthySB_0nDMrlH;jRW!J*_+U^? zMr>4+1nC$G1mHo|3zq>k8@Y=Sbwdyek9JQ-0-uXO5ox~qZoQ(UXxQB(RPGAoY(d0* zPh6#(Qw8ApF5mlagLFzHRPHV0i#55u)YeoDW~<4SLd0<28g7-l>@S8X+{p4Nf4vgu zHd^*AZut@-?DD1C7)5fdP)Ac@xABUbSq)EAa{%j}(rt=54FzE~P0zr8gPf|Ez<N=4 zbb~!oO%QAu4`^Q86$CdSeLteMDDRHaqBvYDSLecvXfM_x8k~#0g`6)C8x^I99d8$) z3>)TMdN`&o22{CjAL8LhMD5{(#EJM4-WJ7|yV~G-_!JQFdyJZevm9Bn!H>mdFN;{- zxoi{Y!*eS;9uq00QCf?to@>j(xNbm|`wjB`j5w7TCiJT}b>U{Oc)jXzN`oR5&oaDp z3k=nw_`XIPDh!}<1%Jg^H=-6m$gCY|ye<c%_%=2f;`mO<wdyk@ZE!Z53MRgmEh>Tr zc;rehQu+2b8zve6zj6S5*!u;zYL0b1tj(DnU7Oz_X)M23j$E1*zjI-OSOW=_`>Pck z=?Is*j=;}o+E5uz78iY#><C<#hYck9@ux55Oy{h`8PC~z86TeUnDou|%;#*LPI4+V z{3|I7{YF20)onG|(G$={XPs=7!;;E?Dt9Z?yBkp(SRedML38kRl{UEMco~%Mh17(^ zsm9+!C*b?<ZE&s8=YMb;7cqX4Lu~Ybh5LIniXQK~*6a24%<EOx`UXXAI1U;|pWh7V zZ%gq!Xdpr5mV#<4qOJ&^+u``4H*_5v^Z67Gk86lnicvZLflWl*Y^L0f8_nLDmbxOc zsjwiPe}M46hXq7771%}mRPQ1<h8C<aD&ZfRMgs0rd~CcR+%JXzf4Zs1MSL$$SKKVX zd-XMGvjFdPkV%^zR<DB<<w_^wF-)`iS>zzija6Gg6q=s~z{%O}KCx&$rg3t%yFEG6 zM`ddj-zsZEi2+pZ6)?SzsIAONhz`)KrbTM~d`MmWNz(T@svA%JD?J_U8c&Wh$&V8K z;3G316jOM&Pa<cVpB;-*=;F<4yY*|(xa$7``BHs$m9YB6Myqev1L-U7qBFla$kYP= zPBEa$y$q%=5OwvrV}%GhEhhR3W^hnUuR>d_Q#U|@-|lbN^C0Reh79J+=_F#k^iq&+ zQ2zjDG`JyWDyU9DY*dtl!Wvat0J_@hh|%X7ewEvVd>K`?ZnC!Sy@YURYnvPg89$B4 zuvNyn)!!pBL>L`Y1})xJH166%X|W3v=`xe<Y2CR&Q6Sq$ZZx*22D_())<Z+hhk<Ak zqP8v}F=vyQGld5A=KxoWsLjb^G|t#K!V479_VJ3Tgd@TE!cUO184=F`;wtu>D*)}u z&;HtQtN~Q+Q{;;YTt~%ceu)id5v0G8w5gz}<?+I%1)=37sN8O!qDc{TE%oNc4pjNK z%N~UTm0q>v|3Y>#FrC@1Y?bYb-*hy_=)NP3Q2cXMJPWd~2<4kY0^K5oQ|v((Jp8VR zc3X@fmD>i+4xc5p)9m@bFT4+n6+4XLWbO}z9QfQYn*VYkUxN#Ejry+?-hr(P)ooV% zDzXhHh6SF1!bFqsz$<d3)L@Q~?9&71nzR`ZJDry}aymaeVro|Wz_Jate_;;)zT%dP zIJYkCw89|lx)ca%7oMDUI@2gH4hH21KWvz50F~?Tx#t~-sGD0Kn#wadSOk@%_zqi+ z-}UAJdw$y4hK`|(`QVq%7kR+Gf=D>9C(p(=D}LYEhB4vlqstfHW8H&H?ZPv{gAHPn zJv2PnR@WUG;s{j&{jtjHG|(ErQIr}A?E;++DZDj9AGsGBY<R(Q5j~p>rOIvmK0POx zGVH<PL|dkI%T5zpYk7>3Y_yzgIA&4<e%i@~{szF24m2>6L!QqBY-{GmJfEL>!dS#~ zjn_TTe^}CZZi2U!)~HFgsUWRWC~@~MjqN#hHkh#xzn#@{d>K4uzwTC#=mV#t!8aXI zdyGCU<XPw5-5m9(u#`ohye>)IpolUW&-3yx%{!}@X?vo6X`WuNV7$_6s;|d8+0Tcv ze+wZazOtI=p~Q$NJTKoI4$>$%e>^Xrl$c}8P;-91K7X`_gBRxO!@)A=C|IdVU?bIf zh3oTqE<%^aftgIg-6BI&uTZNWp`1mbR{B-}*C6{ZG9>udH>AE9l%`!jR7{w5MLT|| zdV@vgn4>Uitx^7&PJ(Sx?0>-|y^k+#;AFqVYd?TU>3#fg3LcCYj^ua1b^6*gI*Ii( zMO0BSE;#OlC!`Mp2YwO@;%L~@Byigwq$ftjG%89)X;=jSPlea1fF&+O@@zy`kcPHx zg0u~aQli0~%Up|`+Ys?1I9yqgX7#%x9PMHQ;_0q$So`B@JwBW)3zNTqBY9G1EZoH> zx$!f(ANvAojOoDKj~yhrxUn@%fN>4#FaR8IVV7USE{PMkW_4PmQC(+U4=z(=p3j77 zR1}%#r*xw-UplL9WOP<Ga*KL!lB?!rVKwiBkUt~pPN#1VnPIx{(n9U(<BV%xT1ZOK zI<3#=3eng$I7cn`2c8E&)H3-)SsFSU^n-QRsD0XWwxdBW&h{r5&hFlcBx{<|)~EtI z#-K>&rW=qa{e_J$0GDcdIlWsgb43K@;uR850aIi|g<eK~{0s`DvVY?%dv+{xBk4ks zcqvGl);+khk%ND3O|t7hJ#QFdSTk)Bq98#pp!4S+Cdo1{{UIc$spwj@GBW6)00}Br z2Flflu_3ZSo%u`3D{D|@w1YmgCm1IDbDPCY;C&|K*R5^udR%J<Hq+YInqg@QI^EFO zDByK4et@XE8c#&g)hI0*dYgpG75xi807b;3PoSZ})+v7X#orgmk%(H3gQWAO`Ms0% zij2|FArw0gIn{`bigGBnSsg#i(YnsE4f$bbVFJWVOK0IXe9Sx{ouv>W(0@JI2CY$* z*1sUwdY#IB1tH>L+%(}S3tS=70vw&D9uHK(zwrPRqOKs1pv~r|lvpqQG59tp3X2Aq zSONw@P@Ra_s3-{~;P*fRaPF)`2{xQ!06ac{{1!y*7%UQOc7w(Y8SOtu!RypbJYl>Q zxQ7t6j)ZQI#goeNV8=`EgE3>hx)S(kaLw=`a{i6js3=Kv+$sP&13!mi!(0QX-0t7v z$wx%3WBgdGBs>;tR%f1RdGRh~U&AW*7jTO0xj`17^?6ccm;J2XM~CM{&+7A}@Vw|b zoxa?jA3dkflP(F<X5VejlYYl9YGOP$$rtqT61&EdKFIhQ%60zET9eONnG@9^YRTQG z!FomYqrnY3L&0|hVxyuIv80bA8*HuOr?YIZE~#>r$j>5bOWNbnX7#5?KRDE|;p_sG z;W>cJWVZmL&p1v0=;D(IWt;xd#W%+SX8w9Za_7J=cuHUnKd-b+i;_MHSKeJc<y9a` zK};kMQ#pUg^F%|D*`P=pf1c<G$PIT=J#y+#C>LE*FROc8Wzu+_h-a{C6~BjLgEP@Z z5PLad)Y&)!?TN*g|5Ie#kEorWka7MWYv<>;i18*6;G@Ag|NF@K2V$e5Bx$lc1fcWt zYsNN=FaVYlN_le-<1S36(;89<2-4G*+Mv&f%50LHGCJ{BLwJQ#hST9=k$&PTemO{G zy5THnCsHCI-An%n0FJGXvkICS4@s4~4|%U5YK0z!alt|fwfGzgGh_^*(bp+{@W=lc zxB@)*tIbF#yff1Q2|VZtJEr-ynf2;VppAyzO#;t9g7gT)Mn!pI%&$#hEvoTA$0Vjh z68;bJETY!b{#J2~`Y>XVgTeyt0i{@k^E&HO?)k3~X{t9D$@?W)hQ%2Axm=pnGXq@N zZe8uAl$}*Rgy)JB_8M7N>-`bLaDRjy*I7=&lu(~ZV3N9ULnHv-=|ma$y+U&yv21HR zs2gD)6te%)vXd*66E?Y?y?gag%tj3p={C-&C=mTkpHZz<{A#NWZt8m*L>_)T9iFFZ z+w1dd<0W0s(z<it;y2N3a8eG0gu|^A=lom)gud4GEHn1N&Dx>b{&8SfjHum=Kg-h7 z=`Lpx>!nA-U>g+0MuS^~H6!O{#70F);$Wo$@FwWrr7N8iv9#+-Z-Ywgx(F_8x>5y^ zkm03?Y*yDtIJ2gFl{+loaMB>!<=Wp)BpQ~<xnBF*$4S!6DDCgDrW3hx!Hdm6lHR(B zo&C{BIqk!8R)IiVfJ6<7NzrXGfHmra2v14K^L&&?4=}w?B0o6e$+8CZc^>hsXz|%b z0{#sOg^enRC=fcM7Sn5ymO3Y%oN1Dab&aR!DYe&f{j;nLd}qO6SCngwQ&7}th}!Y= zDJd6!QzMG)87g*<RV;FPIm0Iw)zp2W`wahnNu!?Txj@|q<QTJA^@eNM;HK+Oz``b6 z;_Y!WVX^n=;tPA&J`OJDej^J_ui-}0%(uJy#Ddk#x4Zj#zsLdTSG4xBHp^ZFCR;XP zDf?2Cy-r<oI2vj#aF-)WL%5ANQAJnb;-&8fvDt{%5)lc`cF!W`EyPd^UI~OGN^4Xb z1mIG4HB0<Ek_Cb7n=DB8(rud{d4r;qXy|PcD%TfGLlGMlMX(~x>ZOSN`iGR~fXbLH z&u7A!Ezhq7OLQ5(R?=9;uay>A67h`(Ly5b#Gj(h0==Gce{X;E#=(fhB%_g{0gQO#8 zr40q<Xw)6>*jvHo6z+T@LQdgsiKxVtHiOD7{~ndPov*Y?W~UaW&1rDA3&OYSwWwK_ zXpy{HHB|0$i2oJhh0+}H!`K7D!`No^T12^Srs-5}VEeZ0rMq#b8Co})0?Iv`EYqW$ zP0FA*&+BxwCN@Jrr=yMK(DvO|I=$~Spvqm-X34tycA94nH%)i$G~cAn6xXT3r0pSk zg*`4sar_*b4Wq*1KDNbiXcF&_Jl#4W#cT}Vy7(>=Q=ds16KD8y&rFbiA=iMvKi>*B zPj4UzJ9bdsDTpGOmIwjeF3f}ci^TA%Z_HLUiDmECC>GD>MhtdjSc3=K6t6Y*uk*D? zQ-d&V{3uLMf%pp|;$I2H4=hS*e<U`OragL!y(2wi*FxsHn+ChdiMZc%q&Xqq-82yI zJ>Rw7SqwWW2`V=e<t;<h_K7bxs`*iR^!*0K57BeQv_>sSJ1K7FxE>O;j`=UAn2>RE z2o6nJ)co#_!wvF}f#}7sTz3@x^PZ0SWCN<)m!KTFi`9}4wBeA2$6RkLI8@RznZ}9q zjRi%Jf#YJPaVP1<f;*sx+{(TUfH{`FZM-X|Us%qmkaSj9PUJDz8n1AnuMd&SV1*ea zj@wz`7H}FX{4vFZSYZ~Xn-;~7P1`WR04nzkh&~U?<L`;V!j4_zb)C0n1Cy}+L7NHi zXW@Ux*yE=<Dz78rkHw1#dFj8RJFQm~6%B4bH5^pq5%EiJT&Wj+M2}U6KNHCcL?=u` zGQF%<<cS6+@j~QmL~K+PL5XYB&ng{l7Xzx?1IX8dRdFL>vC7BT<TR@u3mt>=jlYA4 zjfao?ovfG;j?ZOVbUiry{7%Z-9Z{<q`Gsdj5$&Z5FgI;bUxGCn4h>a098@PF;`eX3 zLOg!|CIF}1JF8H{LL`?X>LU2#&LSrDGn_d8CL9TFF>)<(wj$#E8&?s%M1V4Q0YB$% z!y5*GcO!p9=g1mHcJ{<355sjYWs~#HD2-a{b*<;hh7aoKhgv9!PmMOH(E?opXo5g% zS3&>egQzPaj_HPlN-(TP)CEQy6XjL&OXuR4+C%wMy5*6h@2oM6%58y!L%Uch`f*l! zL%Q%bIs4|pM7TKAqgLUTLj9u&^NZBNpB3t!XMVw2c)Q#i#)itR2R=8(G!lMcILb_V ztKoq2;9g9dL)Zf7d9i4o|Hl*);&l6C#8{`kZbpUA0PZ|Q?GfBip~o!(A{t!(xCJ@C zKy1VdQnj!a#SdcJ;B5T@^1ngUwvO-As`*)LvGqd&a1fX=8>pbG^7cg3+VH5@ZrO<S z(s$w*V}qjDXmD;i1ym;^HY!RIH|;6_w`@n((oS0=6O<d|T0kXRwnxy%=z(~pTLqC~ zFCv@OixJMODPQG2ww&C3lCvCpG$Jv!>G7fc?Vm|9+_KqyYMOH8(xM*0jAw(Jmiwla zcRZp@_~8L20c}>EzoHy7^UJevaG-dSvvPZ^E^Lr)hy-5sYbEpa$}nAJ&M)Ep{0g}Z zSRPBj%kRMSF=G5=kl5&foo;V20Q<78v3Wj?+?dEvb)E^esHSpTO7xaPx>$L$5p_lR zpdD8TdiKNPXhTjU;`^RYGsl4_V6Qo@fFTA{xjG1M3JZulKplTR?VCue!$l>iTsy3C zrBPV3IKa1@>n?}q({#nn!U@l(8AF)-gG}1&8Ss1><;tYaN2S-O(HProa9(jTh~TV) zJRa2n7%Tvt4e#CiBXi-kOyaeBe=L(^8T<?q<<g>x?FIs}4>a;s?mSTb0#RF>5X8{n z%e{g%>TWHE=@m@hCu!`Mrl1j>@Mbk=pw&2fll~KslNXQD?dLNg9qXX2bbw1DYdE)x zDDJMjk%(HI$Qq8T2)%TRts+v@=nGT9P>!ev5JKi?@lUC(i=kKgM07d43K<#E;AZKI zkaHDcqoOD%*{Eg-P=;<)9chk1hF|4^9>y192Wz@N^;)El)55b1o&2G*jCHCrY~uHT z<oywKZD@ibCcX5@u-kgYf}^2RsM1X2%tOTc?{Jk`>?HtevC$5DAa{$z2aqq0ymeFL zc+k}1WFjFZo;1hIy-v|5GCX>`E@B~P)XyPXM%Ty_0T&P{PQWJu)~a!ser<3S*}JFm z#v+Dy)U`KotpHy7IEI(A>>)_AdZf+r>qNrrT95CrClj7XxPVA0pPw9Gr@G`&!?nO| zMAQZ+gg4oW$E+Y632sWf7dek2;;;i(N?fP-IdcCGNPdXuglTBoCdgT@$P*1tV#i%k zVMM$H*+^_r{J6LcZjv1Vs#6iQRj9ACN;N+*E|V-jE6$a6vwAOLo^Omeyr`g;Y5H() z=^iP=PYsCW!b}fZA;LcNgx?;R?f7U)#BUGy{E~(zs$T-u%N6|g;612{`6>Mb{u|^} z#RR5<>%<xcd!)J_Sp5uCvwG($TXVekC)9eL)w-=scWH{*sI*qPOId26q@$beX4P}G z6a1S{@Ml(V%pBVFyZu#fg~O+Cb#k1^{Ycv?eB;1J#xlhe-t7|_#@q?~>}AnsHavgz z#ZHS71FBrQxAOKv)J<#O^wg|otaj96L+Tn(O79JICO}s&$6G$Nl4dz#lY9X9jEFGT zU2ljA(+2eSHD^gYZ@VhOW!HZAiSKU8y^K$_R>laLCx;1cx9?koeP%F3+`I}ui98r9 zmlicAvN}2>tn?I=ScfQOaV`uC)kb5UTOA#-LXviMbc8kv&PAxWJQTP_ebwe7`Zf?~ z?QsskgbW+U{E~~p&DLzt>ex`T?z@K^L-LsbhmkNOzqh2zI2&T4KQzBY(s<1v?=zu$ zFataMq51qh9v4dK^(ZRcjTim&*}r?5lJL)#uX2+iXBMKaygp9gb8sJYYm0g*D9;J0 z-BHEN2=&UaLf3-w*#xy5Rp8e@m*-`nnp6C8^ROI$7LnWN%9c)mq{@8)N&gO|5fY0I zKz-M#4#Oa9-#wIfG@>k4O91E}Kg^;uJ&H27=>EL$^+Xru@mHBw%P3NOVIF^6>7_X_ zY*0Q(qv1G{P`Mu?=MF?E<^lkbV(_2{5b&QyH9!E2$3q3cOEAX^5Wu<@j&!1@hk~C+ z{wIjKE%XC3vX;V;%PjM2dG5-)p#S*ag0SPBcB0_Yxrj+G{T!BT>lNih18c^ha>GG2 z4Y5&C1Z;?X50V)4q1fL}(PX?z#}Jm&kiQ&JD`sC@(yY>ATFv2ZTK*E0X4UqgVghAo z_r$}1`q7s%eQ&>6y}nv=^Xj$>-+)O<4;RY(77S&`O-r*rMn`IQj$?OgtJ6vhJGnwR zvX<a&K;5Ts(~{X?9}ClECcmd$hc_q+gsb9?25h@ly&741I{&;FL{}kdBM}n+EQdEW ztH;`0K79)!(XXvV;K_Q`7cQT4vW?}_Q4u4!_5P3c;sOXSw&p6VXX(*XJx+PLZvHdo zM+Nq9)~4;@>@)T^FxXBsM8w-#sN4n-A732}AW|yL)lsv$F~Zs2*DZwyj`lW{4riV4 z*_v=T<_u_N$7e~#LmZpd&(gSOXLNe4&3}$UQcdTEX)~K%si;6V^K8vHlayy`IIlq6 zPb2DL&Xs_dxj<cU9m>^nWBc2QL?>sGcUP~LWVlr)rF?paPm-HSq8oh824}@*!KmxC z`%8Li;Z)gejiro^)cJiPb~EkRD>A{3h;X^Suo7GoDQ?}(==|br;nFAK5XYEbCRvBD zY3mR+ZO)zi<9&Ar_2dywUAM}-8U;UvsJjCpGYnv3IA1+4X_?NjF`Tbnlr%Pm?Jz6I zge8|Xs=kL4?(7!q6Hb*cr<f40+X!CVi0;}J$H*uL6T;CO94%_-UXH`fjHMu|M${D` zBrF$TzQLyhm$0bi5tBRRwt!ST=3O*DU4(D?CsO#A09d02+3^@9JI=o$Pnw9UeF5l7 z+Cg?ZgSjGta+}o^k;0wUqxUuK{r%6CUPZc47=9Vs*_ptdj4cAuTEwt6+7^i?N=d=l zBdzs%woSc$2clg$emlLmERhL>13M15N2Ew3O7VcZS*Zr6l&j(H`$Z+mBwPfPo`j94 zi78Tvs68+gVQ<Ct!KuKlM--lMA<t}<(&4FNfsikF8?BBP^wVzPaJ7se#h2z$Mwr-u zMA3<8&Z0`TX`1DwulWU+5PKsl8pfD}%6)*G?)w`}o<KrtZ#4NM5N&9Jw~8YJmBM+t z0A-CTD*#p-YXrcget`g7WLzp9q|1CNEP5D<Js(jwW#X4nkC~qug};n?!u+)8h^wS3 z`A?aj9!=3dC&+(Veyqf~5swi>Rs*iNeu1*sDsqOygtW>gnMnUfY^+stz2IdKy%%ao zNLUKs6FB#4F*U)z31Ou=9H6{Gh`Lgdb7LO+=;PwpvCpHN`Nx4_4x(;hLgBGbJxA;G z6KG0&2?`m};Hq{GaxO*0CqQtOhM6Wn8LTlh;=FD+{to%lEU~4D?%}-_=><u6?4y(6 zv5#K%w0eZ4Sye@fatnY{4>St^E*x4f0Q7Rgj`z=)C%Ei*?-l^f>Y9jnSNTgJUTVVi zg_(}_wZBzF{U45S%`x^<xqpLeB2%1>pw$l6CtDNi6Pvc`Z4K8a&B{O5NXNg~rm0je z*Ecd-ik_`k8SSw_)TZxtmR@Cqd+;CpMYvvN++bH3D=DjuUxYWS`!G}3u)6_N?lGvR zi{AZDZsI>~siicZu}4zn`X3Zoff!4V^=bC-sKU2tYoM`aKDYDr6#r<LiT$WWeN*B} z*~5S;Hv^@df~dQYo$i{|rFK~kO1H-U2`Ejk{!lRi(M-#OiTb%1ObC1~X03WH(q)Uo z^6m%IQ(<|8q?f;lfuUKgix^@{$TIri@98{~bZ;?dEWJ!}oHlZ=$?QB_=jnA{uOr+Z zVs^xToO>^|WwD=x?yWlw*J$+-F6Z8V1Xt+ZO5B@^tYq)A?rVFWP21M9=_yz#^p2Rq zjgdjW(0^Xio<ODUiYVo(G6uBCp4uzYQ(tY9tIl#oR*Ajr@9R+3zaw03eET18g$CGh z|Gps6zirwY-~!vf^|a&v*t|zQgTtLc7jhox9y#0@5PHbI{grnNqEwgtN&xm%?bghL zn`x&|!*$Oqv&rKn7mHBVLe}jqs_s%F9RHk2&jjU#j56L366ZbhS5)oRoMV{~s`fJw z{XS%goVs#~(ub{)DJm=9K*dwJ=Q&vigtAHom@3kX+3l8lT_)raYr5eIugk=|eI<=< z$YSNPR!uzJ$twxvO#|f|L|q-ugsjdQRS_xO`QCa^hMQ@wZ~0R_BE<%LXnd{8kCf9T zEay%TJs6flNLZf3FoB1FB85!~S$YhV!UlQVxy!=s8?foShAg|*OHVU>`FfR})}YA1 z^@zSv*sR`)^dHxNQ$S_MU)QPciKyUw`XSJUKE2~kZGF~uYMcIHpI)Q(t1}hGKWFIw zaZ0|#UPxm#tFj1fMQEp4gIZ4#*+eh1X{%8-(aTmUJ4vinBQI@BqopY29K^WauT`H% zT)sHe=~__!JftQh&3&gd_csw+9~!d!14PniBc44hk66rg^mKUk@VxINjq{j@XZNXg z3OkS6XRz`HBWi^Si3+8n!ewn*@+uI88~%%>gZtKUwry?tKe6O{TuYkZ6uS?lJQ*rx zyTXmJrKY$$IPsF7A=X`s2I|v=#oBvqa-nxqjJ2C75U-yWJijS?v)T*CD(zBMnVZ!q ziF9Qmy&{&rMfJ)vytk+&22{7IV=y2ytVURVn>xiLzx(dHRkx_rMLKi8&1$j%hpNr$ z0s~J<-=ZEj@VHyl7Y1B)t2%g{W?a2`<z_Y9B)&sNO_;#~5ms$cD{MXr)#aWvS+nPP zs*BpUW4c4CWABc~_2{BH_drKFRHcHE9S-ZD(pVK7>ZLj|fu9_V^a%6>Ha`f#0s-@h zEd-;`k}>d+=+ME+X}61!Gc`Q|vfB4oV|UfWH62IoI&atcX)<-l_ok+Y?uzXq0nghd zPNs=EMv+s~qYQ7SD0*-Qi|!mnPffdwF0C`H8eLmw&4)JW{Y0ta?qOAMWac9=3L1A$ z$Lia|)pzW!%<nnCO9iact^)<w4OZxt2D7#i-c7$7q|-LLMN1#GEA6toprlc1I<m?{ z?h(@EJLI1IJs6gh2I+YvNjiKATBB+@4ux*os(V8}h{pTD;(2&~7F<Az#+$SAq>@w9 zwpsT(09>rf{sQEC-T?v>;3)_JcEP%so}g7eD0GVa!Qx&A8#CokO=~mtiz@3HtAA^> z=M69o0p`I_VPI4iS*h0`AjKLiz#<2?qJ-i@v;p=&TMZ3M>p<`HyhEZ0YyV+MB)%ha z!5R)IBceGpFy1NdYR<O9FO^NpqvXS)<l3QeS2pygd@_u7b@jY4A%kgT-GpPK)zZ}; z=TLO5@li(G@)MFs{1Od53TL1JCuz5&fhR`^qh0CnXol;}N3fDK-xSG@IHlHiDy#+9 zVD+XAkghddh8P)4j?7aXI*6l5{f}~;j;hRvmdIwcUH9mCQO<*AMme-MV!i7IAx()p zj-ddweYBFZ*tRLGKW1ySZ5KFhAXKNNj@Jal<Bf4)^L5akJ|~L6kBWQP;X<l+QreSo z0N!x2Ycjm0C#j;X=Z|y-d$6nHsbDqEJ_5z!ZI(`!MwErMgXcKLa$O~S^lm7s$QsZM zcWdu?^DKhK&|P%CMUe(SZ7@mnLd~*3h9Hrm$0g6J+y~VggIUJ&7Ip%NPY<Qhyez0j z+W)j3CP`;lWVD77c;BQ_Q)O<b-V1gf0M;5KEWrDHDU4LLp`AnxN;$nJdg78$7s2BN z-yxw?k%V<<nZV6d+0I7hvcsgg>nE7>@=%trdftltP{J9;=D@Lso!QN(dlnZNXFGG# zIxKBvs6f6(ta6A86oz9Gtyb3E@ileT-#a4RMRhG4*YmOoF!&nPUquk4Z%~{sebo3| zK-LGCJ`cps$)`FwWINvyLwOQk5F-wYB<b2nq4U$wgUAcX55E|?E4eR{ly)Ab@fLmP zS<*pw_8*6|JT~mF2Bm8{>Jmb6c*xotB#K;YMWNLw>Jp}nXY=ba6wHFGaC~?%Ca^{8 zx6u;jTf$4NAk>)KDrZT<(h@<<PaEWA3O>%_jh!x69k6cdT1XrG#K8PmtuwVXv=MM6 z1(<%t`s5^S4R@8zHMPAuQhR(b$`)>NH>tH4HlYm0ifcods$2(Ej>7`(dW(fW-e6@( zg>Qt4DGV9f@J6|t;9xN%zRzIv8@nqP2wWTwg%48mTLh|+IsaA*W0Jqk!kGCtTNoN{ zv2Y=}!)_4Z<3Co1a<!MkG}0zL$cTj>O79<|#ykHL>B#LQ$w}sSPteOAD}p;P0uxN~ z+uzbzGT1#9{@eWjmVQXAG%TYN>7=}5I%&Toe=?oqPv$4nN&5dbedm8!pQL<yXkf)8 z(<5w#`JYLo?Ps(tIw?PyPPRwnkXS_6+YnY><gpS#CFR)zA4|`9CmKqk3Bda%(my0G zX%Dl{45iqUA&W?+ll|prOKASvlYNU$mbb`enEy%nKa|EHbSxYfOSwZMi%!}jnYITJ zmOk0vhuIACe_JA5l}L|Dq)QU%WO>Q{lT0V&_e;o2+WW_e{A7KTX`BznLbAR3#&X@! zuSF;QGnw{dr!m<2T1N9fnf`C}8I+LsL;Y_;f__#aeRv{$Kq77L6Ipb!{D*CZ`Jc2$ z(!Y*M&>xyef0VG_vPAyKL^|1iNq<VFllrwJ<UN{5C*>#Wb3}qZnU?e82+dm&m>>?# zV_{4zh3$DFoz#D5B7blqJw1_5+9T<Y2PNo}`AK{HQ2O*ld!C(0C&#~J{gdVYkUf(6 zB<G{#_%St6-)|G?q`i~lSyKOG`D+sLDiZ0WyrjP*^{Y(SFWH}eNZv<@@{{xV>_mRD z{w0b0=M(89eRBR!)@N>le^4Tw^zWqnV-xf*B+^OxEs6XS6X{P9>7;(i_8pUGkER5F z|3o^uUQhZ@az0JkH%XtIuaf%hnJ7QmpOWi~q`sFW_><))%S)z{^vU)}C*&vnGpTQK z{7UMZv~SX%lm3{Lmu&Cd{J4V2`XuZ7L-SdZK3RTpy`H2`jt|N4Z11?bUUEE7`b%>C zknDd+dnVJ#_Dt%VP3Y4;kuFK3ljSGnCH*<s9!Y(Y`APnyfAvr3^I#%9Kaoz3=lHE+ zEZiAOxnCq%^k@s1|H=94l|+7@L^^4oWPMLg&?nc^N&X25`lNp*(_Iqu$?}u^A=y4} zB>0o{%O>oZ)HkV5l0R8ql0WI6N&6?~t7Lykj#oc4pC;uWn5ci!e#!Po<|q40vVSJq zJISA<Pv$4>n@lI|{Y|1i$@%OziTsj8dTb({)F-)KPp$`(?VDU5B;_U3D--1xC(_3y z($f>^q&<`4@qau1Cd*H@XVRaN^|wF2uxe&3VE!lRllDmZSF*j6{K<4uUNS$KPSPj) zZ!$lbPVOI`O4K(=pDh2s?Qco@C*{vcly4tYwdmyhz1(J)|9d3TN&iXuM{<4pL;57^ zpQKNwlm0Lup<j|dY0u>OLP>%@sZVl#NuC!b%S-B)l$V^Zlle(|Cg-oDK1q4W{6zJ3 zCU;t3rv-LeV5bFkT41LIc3NPk1$J6srv-LeV5bFkT41LIc3NPk1$J6srv-LeV5bFk zT41LIc3R;7nFa9UO8kD|NBQ{CvHEAnU2s*r^Ny$nWS1@(P*pQ;adv*ifO!WUG~kc{ zbF1o>dad!^fQ6ariUEr&>dR{?2b3?a%q*#@TUb4C(1-!`6%~sH4sL^IK*jR9IC}Yr zVWq={_FG(4lU?4gvL^feWe%8MF*jSOB`mI*JD_sjyaBBw9AfqVfs$CS0d*^CD-yM9 zC9stN@H?#~74s_=RMk|>FU{00?Z1$=TUxiclxCP)zO+JPYAWjaJCOz1nt63qnVRy& zr3=fKF4TF1>dNOXt|+a|EUucj!pX4Y2|At3)?}8<uR!Ug)#bI0=k#nv))ZQuS!N(A zR9jxPM3W5}I=r+lQ#<|eB^98qsp~(lw$@8|Uisq1nR(@P8AC><Wfk*cY1T>$sj8`} zt14eybw<UK(#2Iv>sUQ<RMk~1aWYVESi*_LugFO>FH^I$Zb^1tot9OXtzBGU1uU$v z)e*+hx+Udk9!+S}shc;CW@d|-Y%)WcN;bpX?1BXqtb-{mTjO+{ujND)EoCc}($uDq zY+cpjs=5_cA6p?!Ctjk3)YdJDDOZ(2ohr(!$vCfm-oo-FgesQLtEgq0mx5k1qBFq& z3#uxSM9&jX23P<#FvVofTUs~2sz!`Ek5<%XA{I_B1(6^lx~^DSS5aMBv1Ca`3WhqO zvMIBE9#tn{c4@`ZSfjv{VW(YCZ%hPsz@)FqR#z;kn&<R_T@y_smY$D(fWiv#wA0*d z)#AE-RW)*3z8)1QWlIP6`DSVL+@*Epb!az@NF+;351)GEWSxZ?R?*qod7eXxU4g^{ zW!i&E>#8-mZ5fbjqoMq|8qIGI*(62_(uUPAT(=r^tw-Mi0<EJ>tusrHpy%p_GsRFr z=%TIL&uWKEjnTPy3j^$^Lu#O!=KC0EqqqmXHjvL*WS$?TT^*=3{+<w!mx`j#QEHoC z&<cG%(J7+yqSW}v=w`o===>=9Jq6hvTcNk7)aO1vx0;}SGNm5(cWZ@yFQpp%_N~w# zr_^@8Q!DhJJQOJk#x%ia;<jn(nBIddaSV&v7~&nsh@rQptdJPml^8=`&<?Wqr`iQk zOMMZl9Yg=g|8F$8Y8O!VZe@~9d2K3qV}6_H_X^r9^7_IysW0f*CVB^ze=2N+m`y(I z*k+Nhhv>qnsV+=`8m}vX34<uUfvzbI5kvnuY|M61>c5AUZ68HH>A~5=?RS9g5T(9Q zsbI9f4^@fbH~RP%%wPPWY26w{QJ!6tzkk<vxBCaD-}U@Fzu@WufA2IPRp9sQD*u;m zlnno1CjA1Ese+(?0pt<kPfPp#(!pnhf0b$%tVt~^Nu9AR)p^@qsjNRhrOv>M(^Fl7 z1=<*~!uM96YH|J;UDkFA-^9zky!fM}hys6xE<30MHsv4KCFqe_KIg7f(Tk~izrO+y zEC~9)NS1;Hd3zS5dR>xNlv>~)s76f-XpUW?RsJSyf*4wc7-_Ir`)+Ti?%!^@cE_lg z>+;mLcl~}8AH#1I{2<~xMd_d02d$85_fGJcZiX1szm&RP8z_dpDW&dxJ7{VnXMH|A zV~<vaUsQl$sF>)O*IkjXKJ&Y^qW(`xjXB;sp+CmF_llGX76y;|hja-l{dTQN-|j;x z8Fyn!Js+ZD-S5}Fy3g-UAu;r4zIx}qE!(HJk@W!tNi+W^y8Z*Y4uq})(|Qz-Rpd2} z;;l8^9BLY)#)p0H+b*+R+ygEtRG$Y&2AhIOeS^Vz^pEl3tGe%_{OwwS9Vi|1%^!5x z&QVW$f}^)ILk#^W(K2(z(9d}4G5^3;zVW%Q{C&E<7Yy`A76*q1r)jgqyz>E=vg-%a z{r!ul`@JZjOH_+z3slg}Kd2S{yL@$Su-9~Lw;0D)^l8z%Yg7;vG;?SS{f7`8>#rYm zRQIEK_erDE%ETMXeV;A4S1X-9%r_ns>#;X>Qo*30D!3~6BKVoMT&(_3%nb1{^glh6 zAp=PaeYH~eo-=x>-zVKh=HJ4Om5x?@BS!SG!2n&6;%Lr?EJQpthJM>eN0-hML%)== z=vbe6EKhy<mxiD+xF-17GJkM4zkfHw9n<{(aXsT@vqI8fG4y{h_;!n$>nluwz5Kq# zdQ}*6i9cfkf7c&DpNQfAB6#uNn9+Vk7izsO#D~|n>s4f2(L$?#OrN{Zu>DgV-@!2O z(%b$a-P#z+-3T93>zi=>87t>itdrjL2eTI4qZPj-k86T`iSH4`x1jHK54HrA=fCau zFTUXIx4udh&3QYxboH1eexGhzwg=awGIP$&`Ue+dJrGo;R;)>N`BYmkR*{?Wo}~6c z|KN%3{(x?6^pUNF>fT^9rUmJXI~eO?{rU&Hd#v8yde*aJ=r!%xaVmrD!KH5n7oV?7 zk5O#tfWhlMe{eb&fDX1_r~7rA#s;L@3heSL)&zg^fo{D8*xpHfzO3Q1pzqK&2A((I zfMYP0tnSmsz;|sShe~O@*Z|as0cgz!!4u2SBqs%*1@ES^Yf`(+(fgwq<?lMG;HcmU zti=3&J^BS({35n^til*C(MIXEOu<nmYuhL`0Ab?!5>r6y9n8h;RFL-jwCXi~6@Qb3 zNz7)S179C($u^y+>)$i#j1P6PBmAyW^sC|c8tZ_6=gL~Ph%xl_|A$NHm`}O|cTDyb zXozj^1>3&}9+yRCFsI;Lzh4)BpW?&spP0%9qk^92VqjnOmEXCQMQ$!aBYubpWKj2W zWdVz&^{B1|N5L5?(KD+5d2TQOjM8ASLRW{YjvcpSY?a_vurY=$|5@|K?BEu9F;VLk zdfR?!J;TJhik(5D?T6RiT=K3jE8*Cfaj&mF{m9?D8|r@^I-ozKcv))2oW7~{qx!V5 zx_dL6(qh)RiJedu3o)PhD4Z8#^>OVQ8wKHEUj#?Jjm7J@epob!o5!m4(*kT!{KMI( zF}z!<#L%uIN9}Og4(x!10=svExYX6MwUIqn9!|va3g}{|q#J^jr~0GQdT@%h#ci_B zka;VngHtUwtbU2Yru+R{4GZfr4o-Uy1H-*`w-uC76}jedPgPhjz2KcT29%qW`U2Ui zfa?0eG+grwO!w{;tv}|7U~TYtaH5_+V)Iij&yL@*N~|l0ED~eR^C7%>+DE}PSgX9{ zkL;%RQacbCvlm?YbBy)ZfK}Q#miY>&kzr<V>>XA9@333f5AK;BWc3<1R<jn=Y?;4n zE2Dl*ak3GQm2yGo$}xrifMwVR7_)m&PRz-Fj&Y~!`=7yfPxyU0-7o8K87N|7>u)(w z$O1gZ`~sM#eL&`ldxI&#LfwS1X=4pYj>g2YMYl{W?<-6x)8401CKvm7&6kY0u|~Q^ zI>$t69qVjv@Q4Y#RRjjIy)Ou+6<~u@A2j&;r-LuwrU#{#1#`Ylbt-9NdV2`0{of~1 z!J2|#;oHH~SM-W0X2%AZd&Cg2N$eBOBhuzE`)uXemn@-U=#7}!vbynNR$haSaz@aQ z-SqQd%R*6Q8?GsAlJL)V*&|cS*980bF})xr_g@{+N>W@*X)H58(~TFiVSja=*&@Y; z`0qURsop-s&~D_9$>!qkCI2WkPz)b2RIG|k^q3EEh_gAhA}BdOXgd2Fze6jhyd$(* zOk+31?iTGoFupm$ilH}fx!l_LZ=;j8F$Y}T4n~p|jOlwdnq)?BY4B326I5Q_|K08P z;Z!QP*Z;mlpV+AAHjz6r&<;E)*00|{cgNzpt+iER)QMW=b5EVy#*`E3Rk4BZ84P?^ zzu(Xhy!@^|uJ}aE4P2DBn*;At1)rifz3Z11-y7`pcJPJn8!_*@Gh9r>rpq^>gYmPN z0sb#+8)8F8xU!BKWSuewi6Wa&ZF8u(19yv^b>673U>zMav~|8<*C_FI@doVuwadkB zM7*lh1HpjGwv6MtY^+X~qF<N;!5vK!G2g@VZ-%8EpkrMe)MjrUGlLszW9XkN^(oI9 z2LvZ#+LeiA_o!8$#OH|gLOeFvVH$ie*h^=`>VV^h)GooOnb;)o?oQl-aAecPV?OjW zr*=69*&|x?Ps5%cqjn2{9Z<)t@!ySuk?}4zBdy+rGi0zux)3Io${-8S58ir3FDqjG z?>y|7yJ4Rj{CS9;En|%zSt!PecpA%x`e0d*#Tj+~RCW#kY?pC*9SlpI(LcxrL;B(} zsGmLLi7~&0X>UT1y=UNdUV^5|U_fdaXB~yjx^9S=5)Xw(Zc&3D$c5hlY_*t!Uz^XJ z`?TN*G`QR=ixquYNA(z%rVZP%zS%$B@T;MiNaWBX=Brq3qjO3d$3~l%3av-P(A&b9 zBZj^K&2TQ3DciLku_69_I??W}=AhTY0%H2S1%1W@l_!0sjT6gzCOj{Uq1_A+J2Asf z$DE<Y(64fnDbrRA{jrZ}OU_VZXdDoKs)v?Xkz9(~8y_ci4IcA{v3@a<h+$*qxVaOC zx6049H~j1~tYkO6yFGY(d(d=U@NRH#s%A~9+nnv&x3sa;*@3xsV3J7Tu}=5@cL<6) zCHFql{o$y16q|E9rI<PN=4A-Y6q|Ve-)~-Glg(=w%6QAlFW}}U^(ij-vTu?tQ9IK` zW4BPx!6-6X--?M1e>djY^-!$h35SmL_BRSG%l8h|F?qP_ZswdA5B9;q7`=~)O(VF! zZdPeADQ@QaPpEg`Wv=7JWJjDYHvHnyAm|#N8sP5DL6K7fS@Xw@6Ap!WF)`deF8GMs zj&65{=dLl%*w!;PVt$25aJQhVzhALlV8$|U2p3o}^jlbhFL>V{k;b-@!&ubYaYF`u zpoCr>8xMCddftgM&7bM9B1V2E@3YI86hr^4?ZNgkY;R`xRV*}Scew*mM09KjJHH)n z5n$|>B}8l}`W?o+&$nNTiAz=lF=5WlV%^m(wPL>izqFomHQ14F$6Ds;l)_GD8s;4{ z|HXXS?Z0B~!$tV!$Rhl>){F2Hi|>E?p5T4mt}&T*QI^I6b#xnxvKP51le_&fMSs$^ zXFUhcnsl^Xki`ZWxeJv3PyK2K?sjfiY^)MH*yiD&xUFp-2K4XW=Ea=tF5bOvJ-a^K zHhKd*c`Qt6ZjZ&B|F=9ic@Jxw%FlxBlOGtJIs<34i}eXe%=g^58}n4Rq>cIY|H5z_ zYuZ*m7|Y$kkn#&mAq#OY>m_~s8S_t0t99RVq<Ex%oIX;-v5qX~V!MJj&|0!}j;V1! zmYeNhz7w;!TZI8jx_ivpc#go_`-<7t_3M}schFCN4b_k0G<qIqR5>a4{r$QG0~hK8 za#^Fs6#LKY6RY8W*Tr_w^Ug;DOghT+yy$>FjB|T$_Pf|78x?MA7X3bFdMLnxvL_|Q z=B7^zBgdk#Zt2FW7{iBLC(9{$>>T59*c#{Vlpiw>9YA-$n4x18j&tn5pm=(~_)PGU zogrd2dCwg@?7%r<_4s9=f?~aiiQ(T1>lahFt>W9}D?Mq(thzx%_%Lz!aPQQav+9QO zf#RuERg)*z)=pmLEzZ<bmdJ(AtCr$H$=VgA!Zf#h-lF>QCG$(mN8y>@ii1l)&{to_ zcp_bknhsgzvnC%qeb%5-uk@%=JXDQ`c`FuVmQ<A1Wad{8S5aNNxO`qkDP@+HXP1w{ z<C!BzQj<}TDniGU7^#B>mmV*VFN1n%#ngz#v&yHUjLDN7MHS>u8jNZ{pXsyehUo{5 zcffO0>AZy%D1UK9&E)Et)8~0hDwb6&!9&FMQQ=XgrFek7bl&piBS+#JnVBWkc;GwC z)YTWobun6XL4?mr6Nj4c55`1d(BKgsAC}G3&s(akHlnn2ennk*)#5=TN{`CSFI|GC z?<?fF@~WE3iL6YfRzHi~kJ4cBM484?hlbh?8s19VsWV}Yu&E=K8C*&$4u%!k{#9uI z^7*9;%K5msw-ir>%hSf%nuCVKo>hm>KqQ}fpIS9}R^13Zgbwr6Wtf6UQyRSiEi{C5 z@^m(zq1Fxbzo9T%TAqk6t*odUH88svR-Re6#4DYO$JgPz)wR-I+PxN6EM3~RqiI)* zI7}640KKc0Pp<Y>)-I{yFCkWx$}{<1>10+E=}3E9&n=NB;<f*pc5<!|^YJKU$rwXx zJpt}Et70*ne$Y~M2H~^T6^Al7+BBMuu(xug)+J1;SWuo_T&MkQzBpWKqM1vosw+yD zR7msb-!-%*niBr<K|ka_YC-wpr5GU0KaLitq5PBPnm<T;zU`jI+JlBHUAUyGW)XY{ zgGL>l1Z_Kii2gTJ|2ssp4jNcGr2?KRL&A~O12NoG9XWU4<jE6<f)9_B*JZMc<E2=S zghSeaW9a<yx^mFNdGv$+GVo<<mdY;>IKU;l=+M#`7{bCqAm-*QUv!X;#1YYT1NH*x z%aMU{ZnYUF2bN;!nTuhvZSO?I^#JjIs?0JEgD;0}Enj}7F-k^_sWr9#A9-H_SZP(= z|CpenB7*yZ8b-xo8JJ`;8x9D}1PBbwI2jNXeY_+undf99%PfkBbyu{wRBffzTKA%* z)~dDCQkROBTCG@@;##*_tom2$Qq=$Nch0%@yWeu&%Os$ZJ|&a<?tR~Km$RR9=jXUr znCelRo0uMLAvK}S3AJ(V%dh_U!W_knzV-+eAuYxzbDt?;?wg*U-QB;Pj3CS1usoAa z$wns+Pc-&4S2G1+WVL1qC1Z!%E04k0)h}v{&*Q0|bU{K<*5*=H(#P)KDoZ3?YWl8W zIaVwbtg7vUYjG=KqIrg7s~24+v^^u}>trM~DM(goD_omo@q)oRmT}zZMH(7uEBjTj z27bSHO}%0p%au1I_ttGW5EkgRp&rm=-70NI4H854GT3pX;bh@)IQbf~<oo+K8lh{F zmkI-hxZ#ZywrCTi60*e17}8RhSi-E9$*H;BGgJHO6g)WlDtNR;aZ}B|i5stKrv%QJ z6LBg#8pk}(UoQvq<{KI#BQsd@6nWO$8VPI37RUP5<ZN?hu0LI&l}x%N0?p3BK9U4{ zWv{I3WEwEz6*L*k14MeZITzMoPfwDAG%(!10Yh7FPK}aI7FKDeD`xV?F{f6KrfrL* zk&4-Ujp_cKgBwI<M7|=Jcy2>i4HvdkVW9gbCLqMrpM-tJWiYTaY&a~`{_T{2*UvO% zfy^|KUDli&ZVv3K_xEx6VT)tfaaRZeOOSQe4K>GFCgNnzmpn({K0=51s2hwtV_U5g z;yiFJrU^TA`>y)V>SxB2+C%H$$8Fl%lkEHE&{TbQa~$I1z_!+!0)Y`Ku)aP>(Fp?| zs9U^Jk5Vs4QDArrp<Y22Ja~E~BxD2Duq}d3oQA=<O}4S7Mh6aNKkmS&$wsUX?U~E6 zAw^Q+X!*OoRYeo47G64=aS1|-=G2NT9hYIx+Iqb)^0fKcIm|?3dLX^~!mqqmuDq5~ zdjB}4>Vm;F^>uY-s$!P%vMy<}a$xPgcUOHExXfAgT|M<(y%^X!L>=(VOr=WX*i2Ye zy`?rhBdfVKKaE8+4E;-m17&H_Th?DD=!m>8E1Ow*l3S@OG;Gv#=<qel3~QT{Bb4^| zB2n3S@>BS|lteFlxYCJe^@|*sOnM(?gt@Gi2|0jC!)5~+9IQ{zOiee&nAeCzPg#t3 ztid{SFrkD^PH-zsH1;FcbGSuiaC*vQ#EzFIr;iuiiPx45H;5<M*Eld+7x5l*vos}> zs<qA+x6j5A<nuO2;dX$UkdCZtnWz_D9i*>k-AIdxwj_nZh5PYje7GW=tfKwLQmdVx z9Gi!5iIiO=eK(Q$s?2T?+B5j_iQQ3+rP7TRj(;HFK}(;V752|tj<#lys$3r!*`Hrr zL6hjiKtPm*w!SdFt890|m?P+aq=K93=QpM+$RBq)HW+E$9VWw7bLNFfcS7BJ8>H;q z^f_}#5K44!bLTCU=k@ds%@6Ns&VgCXPm1QI)}}=p41y6SW1#lXo2XJ?K8E+GC}VPu zE`vC0ziHluH2|a5e#qIweEUd7ZJ+7ZiKuWQ*c^I#l00hC8FJatR&#uWe>9NIpP#o1 z(%Cm`v{PoV`2N4En#Veh)@59HG>L(rQsU=|$zGsB;Stqdy7jD&V;Lx!67iljBTZ{+ zV&y|tZb2y<1X)$Zf+W3`(+sPq8m49(+6n9eGgI@^u)^uXx!Mfq25yyCva2jYLM_L4 zi`{Q&GUi5(8O?JTL*(@rEs4Gm*eledVsN3xK`9gyMNWUh6!BHS_F-;Wz<QLOxwl3} zBMkI*;Q|ZdieMg?xL_yaqb5wbjX5B<W_EyDV#U-Ukw;FNT&EX8SH6xyeH0ecIjoU^ zk^Y|bR9p9h5KK=^LaFUp(;uV<7L}k_f!&HH8=S)oC46(bF*AoU98;4W#ls4X2Qyj} z1|zTR@84A)++_cU7+B-n>XOfF)~9h@o=-EluJgDFH`E7&eGcHRnQi}fpYzcS$Hh!L zj|f83Q`5JX^qrHgAzKfgN%6Y2r+EMrO~((+pxQP`4F^iVNaV>W!TSwsTWXBlf<h&` zX#S+_T+G&~T^a_#`ou`%K=xX}&|6*+(0X$8dtpLRpJ&<X^G#dQRAB?b{c*X@X0JXv zq%Z~aPSxl3P4VqWjj^?JMP7Q==Kfrd$)l#MORBe*LMRIWsf5YGFtbxLbGQEn<{H~1 zYpg9rD-3>HQ=QIzj^9>`n&>#n)geW2U}=P1ed<6J#|);o!1Xc@p6Qu%%*jCeG<iqv z6>K}u+9+ZX42%iS(<uuorHO{?hM~kzk)-Ciwihx*wDIuP$(<LcNe-wcxisU@@HjLi zJR=ElZFClOwXh0DKzgy)o(`@-eoG0L#)9^|Gv`jy0T0t)w7sH-Id7u)R5h9Et~@b% zf$cl_xvkXGGE2nX#<*UZtjNDfVP3#L^VOed%;0?o#H^s});!AUN*;h_zTGtQnwX5k zV=5s#RtAO)4g&RD6XkqnCs7-V_f3eeFE6bTc_}4knVcloaD_sZ31@dt?W0sL0+Bdb z@E{^Gn4B+qQl*(3mZS5rGNL$3QC9p@BUAIJGKN=xg-l+VYo#OM2_p$ZXr@$A)mKFp zh9!r!>0TpKTMpE}XFbVCL0fgUL&^)qMU1Ua;b_Y2N1*xK#sjK*?A-}U4a?J9&j!$+ z=GY9FgSdkmlXC+@vTSN;xi+rB)Y4E*f}taxU!R0(Nn<9h`&h?fPSo{-^*lE<Zl2C1 z7_A{I;lbgi$XA0KfE~4;>P=4_KWLk;lelg)eT{}Q(bRJ)1J&E(vEyWE7yJ-w>4Ol1 z!;;7-9(ViTMtT*YXMhXaShf#uA@3dqH`_OC&$jq@1~sg#6T=F}EiRx$9Zfb|>K&s! z2Gf|MKdA{xiCnJP$dkC<>Y%LiW{(ed5aI|!729BO4X-&Xj1Y2tV^(LZXvl1tz+a$Y z;j*L@W}(e`NQ8|F)}Wxvg(|=)v>Vh-y=RG_P*58?iYSp-s}Gc+Lp>JkfQ`J1^%3hF z!2yOWsFMfty&X%!mSiO-kku|b5SqqNYos*;<2@u!N}ti7+fXY7CM=8dp*}C0w<cV1 zXle>VeksO*2GzvDUXZHv61cI@GI$xyR;&*kd_KBrb1Kks;1(EpQol{4erNE<nMw!o z+dBRxPBUop&<2DAPBceajY$n)frYvwQ$A>QUbO*L>8W=rk?o+m;4QX>t-d5DEiQzY zUSCfgrAxZtIs^jF9S95|th{6e2LhBc`-<u|2>VHE4n;ya1}Ps+iRtk803JA%A^W%P z8XjK@E+8J!{^9ZHe1$J$bebNv?ZW7Ud-aKf2c|5GpxDug0`#nj-<V3&{5EeE-No?3 z>;+%tCdDg(w!%b2m2zR0i$$&^Swn+$imB66Vn)oU-$ZL*NA+c?W*1#maHHd5749TV zz($%$Y8rP0mTjW>X(TBlV)uf!5MxS@&1Ci*7c`sx@2X8ZabIu6zC2%LMCu$^pV^>R zja=0zW2=dnlsZ5Uk{hLQDMqNUH{i2epfRj^?%UWJBXQ!Y%0wc>_<+L{ZMectG`2CQ zY`4D>YqTM3KQk0idYh<?PRxytH^#8&>mVf9<J8kAyXx|c5^SC&2V#;4M@kjR!UqsA zNUMAe0d>&%a6#0dozil`n`uNbRXT~y5txSS5aheLTjXc!nOJE>1JT%&oVcA2;zr2o zI27Uio2%HoQI%+5=*XYax6R@lQl+sFjnJ1wBS0D*zy;a{BM9j(OwYQ}nJIB1X2Ols zj^6Aq88Kjsa|cum6a_KvjNz=ApE%usy>R~*O!(9y#t<XZ>IWmm*ooDC_5d8>BlUeK zfnJ9p1;v?_*De=5m@aZzM~zty6}aA6?R8hiu}GZT)TkPCLRcys^wHcXn+RJctmak6 z{g#bb6*e$#q+K(uy(oKr5tXT3i2a%^1*qnYR!S41S+l4o=R3!4m(913U(np&Vn8F^ zj%s(96~lVazH%X7pe2-UI59#7V7V&AVPLs}b<WQ)WaB`6_Q1ptB!<y_Eu>b!!ZgYs z7ULH-R=SN%qhrLNP^peFiFh7HI`r3a&U`+dyr&T=s!zm1D0}e3rC4MM`QgfsEoO(; zLL`vvx9|!^x(_mtlDc_uuCUGXm#!F{#vt~CM#RxIuw3>$<=!BdOwmptu1F{^x!U@$ zS|R6$ie$;20*gRTz10u?4qI0r*Tqgq=!h)Ckj_t{BK=5jer#>p`phjHNT?W!$!|My zpei9mY-t-{3F8&|-I!Yh#L`1fcP=+zPMB<G@r7YHtX`~@oV}Nep=v=zA)a>(!3;|< z$607-YNP&5hqN$8V>h#p;3Q*gcGYfN7rYs0>>%PsEsTOwCQ2lcdQsx79OGn@#(2R& z*tSMVTC0|?(wLm2Boq|{3S<hN5+S4bA)cbZuew$JI<IL?&jR^L)X?olV@VvmOcba- z!Lk#b>c8V^j0&@TG;VC<kIeMJ(DuPP;%J)C77?N}IX_NoBUU>#3T|-ZUX{~@;`9hv z;S`vBt@A)TF(#amPz?CLom?5^kcgNIRw0rO_KSaYcHiu9V^Zu1*<x;9R;>gN?L3dM zf36<f4|`E<*n(&A(rSj4wYE@7)G1acT48e%gs?8Ix-AW)H%eL;MxJSxkhQb-s(SJ& zJ#>1UUQY(TDg|)Om@2sBs6?`7gB?eg7dY$O?pDFv&{I%vlW(h&q0_Y&EE@!gW<tWm zEjA1?;WSLOyQYPMk<fRrstxZQ66!cUrq<QCvW>KGym6HZXVAp9iN5~+;k^^8;wO&C z-!zdInj2_eCs`dYSa2`{k&s>f3-OSV0<z4iUmHF!B<R_&ksB9?YoA5`OJIiP9gFlB zF1bvkutFR|vLy=}Ajkdn<;4X=3KpH>mVKqnb6`8{^T>*nD6{&6Y8c54Dk9&*wZN9! z#lVX-G;awp(Qb>#2sz=ZXF*w#cw|^p89p7gM}}1E3n{TFED(GHE2~QW0;7V-=?b-$ zz(q3Im=Ok^ynA7AI~j7b0OSfGSQ0#Gu#BQnN?AKZG0;#*O&XhDqsEX;%-8jwHJu}j z0bW*B6AVT%pTDJ9{MeB7X)%Go+&3$>|K#!=9#GfPAmbHlm(5R6z(UH%5dM+)6j=%d zw{9P|YyXa6WYLRnGrJjxD6>>tyHMh+V!$5UD!309F4R-x2TqN`_%b!q7z6vkZ-}%U zMyolg@fTe14Rjk}XcEpL<KJtHUWCPyj9%bEF;YlaN)?G#TD4A`t^Ibvq6jB!RdkSi zI9xd=Ab82xQWbj(9Nzz`OitMi;0nm=&;WbHt~K}f?-1dma_1mnJ*TKM<OPRe4Z-Mu zngj4-Olq`n<|x$In!YwURz0>W`?>a@?@`?Yt%38!0$M?;D8j{J5lA)d5zPs{vGus+ z$kar=F+3bnI2Z_1pKFZuV@UNoP_+7yw}mPNFfJk~4T*TVi(}1zyv;y)tP`0;8J=<_ zpK6&fjX-57Q7n^J>giD}Tk2hec+BYVYHv35MUjf^Au%?@kZ4sn)`Au0wMNwxlT_nI z&ae(eE>I7(eyrmn-3ikN36mr<Q$2!N&ZtGtk{qLJ5h*0nWx;L2dxT^LJ~3_v`o`ao z>MD6`os(Q6^H?7Za>2ieOLSt4NgSp!B5Y>iUvhgjT!6vZ_FH_2O_1iX;L9AJVM$~W zNMyvlW@a=-IpaFuHx{F1j$6)M%4$GT^8+b^O~a!Q^s@IP2=xfE;T#M#MsSFzj6U{b zeMy;i?P;V2@r)vd2k8a4;~6t!P*d=;m(fpkgdI1beZvksje<HH^<)$(w9^IDfkE!- zURa%3kU|I1=90cc#9}fETH;swmE_|HP=SPv>^u+2x6#%EVoslMSPR&4@yyCKm;luJ zfVL{t0`ht)=DaA_q_bzqwK;XRAl@B}?40>YX-Y&K?(Qk>;*j@89i+f$Qj4`U#jTX* zQ)$otQ)OOqj=f~^xDlE2yIyT0+;+mJD`^pgf=%M|qii?OvaI;MlGwGYzIA##9nB@b zRNkGeZqv>yYH!ryZL7x{=V!Ey<e|69_Fo%U<80<?bi9%37`D+VirXakmEv|4;ln7x z+JhhuDJjGxWRcdfP074C`awQb$)6|O!mh`P5qqavRy4+U_SpvTJE$m@5nzkuJ~(-k zVW*7T1qIxzAs|zu2%lGiI17(A64Xab9b1T_GC!&5HnqA%^vTQMw9zAa7<5^zWj1iG zEb#ulT%TcpqrSeS7sVZ*toEPF5WxO(@jpn_S>cDR(~zzKKw&x;ziUYygkKI&?yp;Q zh>K^ZNmmiFy%pW~mlPea$&`DcxR9uduv2QZDTM<;2IZNuRa$8Yj3nGO*9RgT_I9`- z6>;6td2>PN#|s(_$VZhz#MMAZk=Mjt3-yZ(eirF<2%J<6i0UDuHKIXRXR=+Mfjv(L zdmaX72fZCIZZ~DL^=nb<yHjU^BP=91EZVH+pk-88Bx52Dhe_r*)As6(-Yk4eJu3(S zu##5Tw<>b85=K-I;a;SQ2#Yh;F)LFb#R3vG2@+J@28!?rL#-_!<X}NN8N|F0X;u*! zz{s;I7|+k3e~l5YrI)e_XTmD-Uri}W@v^x#Uc5RUB{P0@*sST+ibhpaShTVqL*KLf z4INt@w}RYKMa35~z(rzd#zD{)=CEj?Ig)7PXHB5~Ax#mov*(ccS{p~?BS)c7V6kE< z3ijuU9___3W!|A4BUxYE-U|w{*9|gg2G)6S9T8lGA%R>B&S_+64DOcdJ!^$(*TH>R z>1yC&5cnLu7fP-bh{PcwMyFs|gy6C<uc&elL76E@$l{w%UGobj!^K1+Y(vXXP&>1d z_U+vDruWRW#&*vo$;5?KRFuG~qF7|^N+F?KM_8VW-BKp9cm*=#dBUOy8kEn+snYNI zq<Umde<~;y$v!KVI~#=)1&<t3BymH=53)D~(=U+zH95Dw55kMS@M$#44O`w$vbhgR zYYpXTI!W3woDKsDww}f|43ER0*8-*BU?(Q*Xtcd3ExdwY>J}}SRa#}M<jsL}(m%9Q zf`V--D@FV;rXm!UYzs`um7*GU37EbreeGFhb?~@nqZ(f(Cs)uMppl8GSpcu-y&)vB z>>c?BgqS|cVEyvX5cFQrM$Wg4;Q9oLYqrE;qYq!CG%Ce*F3|;sYf4hQg2;m`C|6;9 z=5zfn7pCbCh8?vYQM?mR19wD7%v>%e&fw8JOU0VRf)D8kl_1K5U3snAA}zHi&wiDI z9UsE%@{~5lEH4uiF`Ob5+lg*NWcuqn$_8W6HT4@#3=UwdVI7-QBiU>r9xafYoEDO5 zaAoZ+qa>{F(KbIh%d=@CWQX<N*-&SJmr_5~gwK5W*;J;Z&|E`mF(cZS?$OVg(Tjo^ zxtqyZx%l)T1ZH$9Nt_O3j4UWfnN`j(@T3WoK9&$b7j_<UL_t_)r%jy5?o5sP&PqXL zTR`V{+B{0C(`GHKgj_<3Icg+^X1QXtOM+su2l_`?L5QNa#P>MDCd$X{$OV1YVhTE4 zY<WFD3kv{&7hAyK+$2iSrFVr<qWoMGi<x1(tlW0utv@SC6*ON>YXQYbMJ%hV4ho?I zrX{a5C{#YxCTdrtWgf8+G>}umEn-#Ag_*a*j;*Ln&IKr{YS|FD*ec|rR!b6rlw71r zkd@GE?-{I62@ABUqQ}CO#-&xopy5i{c{_6z$!J>nA!ZGT&mD1=^IDLwAXerXVlhNW zHP?39O{xsHzZUGtX`QtlaGQ`~C)zKic?L*=_*5yss#Zc=7W<~DzD%jrSIVNB0vU&0 zs4<87`!Sv3id+#lel6uIPAP?TG$1Dj90=*-VGOLyHMc-%OjJ9O!lJa*R<XfIpu*{f z)c8J$(;g<pgo!wNu^n0L3d1X~>je_qyA~K_E<}FQ>NqVIF?pROqCl#{%w52eKRN{5 zFN_rl@?DG#!&1Xs4oqOckca@oAx4ctvu>`;8iC2O>Sp4Yhiay3xcDBCGZO=TGlPs& zUJmPylYz9oV2qJ~&SfH72lGhq0cE1m`l6+906Hbr;+(`?BrsUzFrih^t$t=r*F$J) zG$d=Wg>>6)ibreY1FC-4Ra!|Ak%TIq48l!Z4AMbR6D$UBdBYEfa(rhnA9`?09f9X? zj@QTG+(*1NPAh55K!z^_rqJFe=5??IA#+O*i(}mq`0zV~Uw4WF2`MV+1co_|!bN@_ zbq%El9t6iDTNV)*m*uF4(AX|!V0s(l*bx&;-w}1C_F}}sRh&(El}s%%LD(f96rx41 zNofn^gI&43DvewCt~$mb-Q#ow<fGd8JdATg#h2ZU+LY!PbAcr4YQcQj>fa!7l2Zo; zz?1gwpmUPveN0Zl8ZlO%Z6IqF3lO0@{c@C#R*qk?d>C@6Ohzo_B?o_Nt-e!_nUUGS z1ejD7OdP4#q`knF_WZvPbRl|oq9~AsEl5A8?>vJ>QKKtuY!(}b8wfALnMZ1hOx9SH zF&HF4ML4Yf#Acf0df9Fa{N2LO+Hc7Ux&8K)>>2D33dl-O;?n7DF~$)RZZIH)u;y?y z4;DP!B(b_RX%(c^k=9siZnkHQSTT686$xD~-$(2!7Wgj7_Y|05{Nlv&*Ise2F>YdT z9|fa*bxruzOBIy&bmBZGy&0pIi}2Y_Xn~cnREH9p4nm)WSc=Ilt;Qy^vs?y7>JO^f zkw^6PPe7`vNM_PVd0S1(L^j5r!pl~Kox-#d>p^XZRvl3bmK5&WXSKXxz!P>^kj>16 z<sbEt(OW5dOieoMa!8Zmc!pSJx;>%wWS<keb5>zJnt@~nxsBP`4D{#lsK=OdNFzWl zBjI2U4z$GTi5Q%RSPG@n3EdRI7`JgMtRco!^=cKL1Di8LWlY`H&0C1HTMzMQY;HG# zR1vR$%AKwK&5;_915tB(PTZ<ug%y6$3D%LFKos5_;!J0e8!^ieUfV#Gri4zSc-|bt zqkOE4ISAE0oLp#S$3uO<+St^TMK8CJ786#Wm9z`TgrK$x$D&GG!3m*QLn?)VMeBOP zPt4QV^-&}wfg1%E1<sW6)*FWeqC{c7!eKF9(2U5Jdb89UuYNOLvV-taF=HSHSU^ye z_YLD*!HJ>7)L{OP3fZK+h^mjnKor)dB~uTtnT$L2UIqXPi^rjesVM@>eSvWy$pv|| zi$#ba$0nHDma;vA<tFp#cov-X;-L!`oPpVXR(`u+YVIsn(Z&$S{ym5!@QQhAUkN`c zq;0uNVGrZhl|BrKUP4i6ng>l>Q=>()gbF%Vr>&|>DLZB?f8S)P!rb?iYj$W6d8s2Q zO9!hYF~;a>QDRm}O|aH7TTdsGPL`~S9l#0zQvX#m5me`1G--F4td*RFFNguYQkJf` z*~6g=o8^}nYbe_=aaD-XG#Z?Oy*BJLV*sfAsdYl+^dA)4-49v0Bbf+8?y5LC)6BII zgJx89M7zz=i&S0Bl;IrhOYdexVSRFXk1XJ%iWy24uo^!Y;sv~~+9cp#>scEgLk_&7 z*%Yr@CbE52NxgoS9vnJg%7pb^0>vn=XZUA%^u#DLmn+$c9w$pOiD9r*Cy!i8xMSxO zD6Fk$Bv#`tZm%I+vZ|Mf94jI`7o0|XQhAp{3?!#W;?X9CX5`!tvpGtD?(GzVvUs6S zeO0Ng4*cB2iCk$h@e;I&yH(bj(MN1nC6DVFa!Q?8s&c^rgeX+RmE$zGP$?)7iHe<v z9E)P<G}w1N<p>9n)KWjga#0Ues@BM+G=N5qbC2^Cq?>3D+R`(yv$dCr#4Tn=1iKOm zOC|#a(cGkqgxyxj*oa`Hl*F}-8tHO$kHy+*rn5&Y_@zkb66(1)?MQ=PvPV6butO|( zk;c*`FDxP-2u49!(o)FRis6Hs*O<ha@V{tkkEd^^qg=7H!L(TS%+w{d$L^RKZw;fG zLXv^98Pz`UFeV1zIym-iuC{j{&WfI#lL9*7+6W!SLXptnB>F!b5Uw>}<xTx0ag&b= zB3ifs`EMpBCl4=lyix!H5y%<BEuBnw&z{MteUo+JirI3kxEH+@;e^3ZGT#d2N7beq zK5DM(Y)w>UXC)Vh2aS1JxkD%=W5P-_f_y`AooLMLF^}+>Anm$yqC|J6&QekL6oryb z{7AM!&I=z1w$Y9XB8_mmc0?Kz%A6vq`Bd=3iCwV5)_BMso{8=`9tkfz6qSOMtJ26? znC5~~kWMkSI(8Su!nl4IhL%5&H76dbs<=>flGkNqczpy%+w0m`E*wWnvVdev!W0wD zOUdRcjCx3S3l8oj2(1>Nuv3UMYM{w8Xo$j0b8mA70#*>Lb;!eFOlCe%skCNZ5^`Ux zeg$Wp<vx*B;;K08<@T)Gizn0Ycb4{~YOLp&2^+3H&jMsKJL8=+Go16DO+lN4*YPaj zm8w2!PG&`y<N355^%X5$0DWZ%lNoHSOE=x%7-08AEQkZ3QH87%I&2eGOg~vE2SIW& zAkZLSK-N;{iVUi03e_BGPQyJs-h!K(44af?VgB2w4dtWFQ`PkUf+y9~?>I+lY6-d` zc<ruugh%1TJQZ})4P7OwRv4`&^nhyJ6Ipn|q6(v$(tmz?r5`cTRQj`R+bOP{N8jnW zGL%1Xa`qmoPRmMBhO}<3u4xf>$)vZ`vB7O)VCwPeQd|uqp)Vh0E~J5%Z9F-noR~eC zq|}-mmb$xIdOP@l^Fm^Qj|Cp0Y4c)=CTSRCoq3rA)vX|Dhp06viV#$wM@l^`a-V{c zP=)-!w}J~EL@R3Ag;i3upu<I7GZ-rWqDC(ySIJE1m6b>GozrY+uhK%3nE|-H7FHo4 z-M+y9o~!F1(#|!GS0V|rnq`F(24Y<=trR-b+=r?w7$gi4>S@L7=Qgzxl37*bI_qdj z9;qeDN9P<x!+b7oVIBKLk$d0|4Y67h?FRROoQ6qflgw#GP4bGb+<k9jyiI0Z1ySsW zun{uqRL%m`Nsc?Jp@zjQ6s0Cg^rLpWY=dk&E;@iwIcZEnC@<2i=t0E_mby6-t>@|P zQDMQsP>tlY(X7C7e2F`CEF_d1i4sY9%%Z4=rl)|@NcD<XX|gH~L5r%!ihcDV*-^9z z6_y8*Q3BP9;d#hZm5O?mgnU>1Vym`6&IvZ4K2_rbW#f6~Gm$~SR$eCNWNeS{M%d)J z({T%j<*IQ|D}i)c1eAiMWQof|rdhrKwxucfvJW5&pg9lDCn8CK^i-xMcf7nDnIa^l zo!YiQTO=iSIW57=2;r0&DH(vn54CC-oim+Xf3XLTjFZ9ltz@;?;TDV&t<e^=<6xSI zaqF2aE0{+d`&H+IBa}u)8(|?KvYq<C(pspLr`vG}3LKsw9!V+Bp#(c!XYE9&Os^K+ z70*LzFL2P{WHy*w&f~&@VwRJvEP?Jk->82A-tMXpIfZks<&d9SpvAt#;T*i1$sN#l z_0%%Vj9xYDUR&b2Oj;0gl@6686lC*?q7(%rV_M6HV1vdarzK<8fI2Z#O9Ivw@1N`G zv0}99HxCzFCS0zkr;s8hn|EEI94&&_hIqUt7-GRkj@a7*B3e&If>VZMu8ZnAIR&xy z&YZFwlisD$v1rT16fez&P#wlh<aXGt=-?H+tYRQBBYJR;8u59)I*v=VD#h5?-1A}< zW2I;on_ZNhrF^_ZMnlAyx=9X{koiMAlz7!u<L5CM`x-MN3oVeGFPb$p0KEw6U0NnN zzeo<6po&-lD$%@*B9$2p@WAs*RWqX53z4r-rz%9@3^e;Wu#8u4?w>}HaJUB7^ox<+ zii2kHfa=XKk`X9&#YARdnc4BzO6IGr)8P_gCCU7Ih;V^<TS6k?Z7%F#HI0IQoG8b> zn4>YOU>N%}5vEfvQ(9POLY6Tyy)2xU=A`v>tM)-P$NA6TkcD)*m<xo*fo1^%+emYG zoQmNpJ80!NdZ6HLsKZ6YL`ELMO)spTEF#eyMb}k0Vyv^QspanbwM5k{)a!gz*#S7j z26Zn5YF}24gQ+K%n#(ah4X1q+LS3_URd#%2UWVXd;Kq#>>ZDdNcEdqr)|xtki!Fim zRpk(qLBv(#@4yb{xzP1HjJ!Oq6$m#c@1B}yo;=>%*O(kTxiLOQ<!ATAnx2g(@54l_ z={<RE-v%5sJbm6-GYA>SmOE*9nk&Otvzioa?`VV@b4Z4Fi}A9ov<9yTh`?@eF#I&G zl}|PaH5zkXZAaRMK9`nn#Y>$l+fh=_V)53A7VTYW3|iRA)CY|}_R*UOUP}^_aA%~; z@HBVjBzEwwMv99CCW(Zo;5fdj61@OghoBr+v6QR9Dj1itK0@-C<$y(@Ku~*?_C-Zm zwJ=@LOIpw|_c~j_aGmGO*#jV5q-V;S@gTfm%G6lPaScM`rAmm_azwT(4TDMYL7wg2 zk;+!IsYWigq!CgMiSoI7TGRWAw#Mp81NaJ}U@V3K$4tUhKcf7<l@^#MZH)2pvSPE9 zL9!_!Mc57W=hH;Kcc&z~%lU{(SL+pLM&QOgMa#<l-hl%Rb^gGJR$gDy0K-^>?^k5o zSdn+Jf{$i((8>7f1GDFA`THcirj7eqk9KWMLMjn)zT$3~6^b!}5V2HOB5Aio0?Yv> z0dvr!#~z|^qg*cYt&rpiE6rQ0@}wpg(6Mwcw2>!DpjG!_j)A@OGEvZasnseu3EWO> zy}=&g7#;=~2_4-xx=WDD69g!(DtPnfrbhH13uDW(Kk>fN^1zPcsIL<v@ob0-=|dZM zKST{Ne~5A)dLfP@bL(_U7Z6vDdRQ|3(d-*(0C+ie5{gjerea+dF^Hf>8pdG3b#;_f z36Uz;ze2)|EbE1t!?v~%a*N}Ycky7!kO_q2$8eLv1rE0Km@-Hz0m>m6{8JxlB3Z0i zml|M@e5$+$$YMmGuAWUMLNyOuSldfVLweChQHh#uBGOj*I!I5%GOWHip+d`KLux6A zyhDKFmW+raB8s+FC?>QP+XRy8{?QpRRgtxnoyAhkp}6^?y_`O0sB3Z_3jC-zA_R%g zs4l68!RD(j>a}xhSyp){JD}7$*nX?gjBQtZH4tE~yu~XXlJ+J8aywiHMk{J`_)ki2 z!j3vK*F8VUbHJM;%-7=tfWRf>QDS|Ojw60pxL+!48dd{*;X%E4lc+Y8h0cOwTcl6% z1m$+5&9Wy$;H>A-;qfVk$%bseiYd~}Ab+`bBGY0A#E?mL;4B7jZfZ#MkQgC`F<oX{ zm~H^*mC#rB)^e^u<AlqEw(*1qjSQmGX`;3%OJSut&3IuNV|06%h9K1eMy#%F)$#2J z7UP#$mJ-Bh4(F($=86_NmXn7=s1fOy4QHRJx54_6Uy?bIr?7EQn5kz?{Pq;imWYX; zr4xN%<KyW*LYARy;9Lr2s9;=lf#Y2zTSy}d&Ho}Q5s6Y+rfwl5iAQjo*SHNA&74Xp z*Qny7fsIP7$jAZeSsmq=2qBsDFp-F=6hr!QY-vFSw;SX88V6?8lE+tB@cAftaXgKs z3~7F4(?YZWbpCRb>#M6WK%U8>As_(NwWbM-CGJTGLK+iuM9vJ*@qx0Jk^}h4@3y$h z>1!Umcel+cnPFK|U6XWt3=ggH`BzlVA4WNHsylUtg>Wiipz(b`y0UE~lFR@kr;>rX zOjY_r39y8X-?_t<B)$b{AiJ9gaTQ7jG2IT%*^9FeK#dD7go2n`MX)Nu+b|2z!bCR# zxg~u{i9;=KK+nl5X+PT-$>>|4k=4X5&KToQCs9wIG%TC(jBxT@NXM56=U#`bL@8L6 z9)wHXPV7fZ^?|R~vwH(;E9odHiGeB#<v%LAD0$(|X`rFX^#j8U8owGn`a7{mONfNK zpMk<Wf44?g=i*F(SY?TZo(qdDD(AVk%Ii%_H*+!l;J0~q-EE1EP_@^weWHmzu^J?m z&xGA*6$Lso=HR@rvX8I~h3xjcL2&`4qN7BYSAo-~F;5ECq81ZO6*w~{cd&HetBkwC zN)`r^m|EhQW{@>;nq|*)3xT=&T1bl$*9@!M*5|UiWjNOiURj8ta>N;rzY%eG`arED zEX$IzLsK{d8WB*asnBsd#a$IMsM_y^JA5I_4LVzF!~U<B#}MlujDyt<((py~if4{h zI>a;QYPe0Xm{8{_rgY=fI#d;eFWpYHn-!%6{q_$d=ZMi1Q$tT{4#Qp+C0L8zAlvk3 z2$O2(x`}B;2IlsXKo`KA!vH}NtlqE6s^cgxY=5ykibXYA;}Y(95yl1bchKe*Aj(oO zP2v=}<%+=<U}ViPloK!2(+qZoB^4yo*Ir-WP8K3@9;2-$>_M{gd#Zz>M0zs2rWo7# z!tj}h<%ZsE{@qXGb57jW-5q71W9hGuJK~+gxw@H%L{m+@HPf7%pFssJ+K*|9VzdhP zHXYZruJbvQVYZY6tDhEQbq+EoVQ?cT6|xd|%uhwy44!PdIWwclz}aH5O(k?Uq@or! zT<~tgCNMoTvj@gG9`@Me5hnH<eeoihZJ9zujhu#>tXw^Ck_BCZSN-g5+s`~>8xE$P zAF2-^Fo%I4R`;<nG%hxUWOypWrWe4<G;<B+@dd<}WQ$|*Hc(?g2=~Qmsnf&hoqXKJ z6R0Pz(i6zl1KZ8$l&<Qi5cv@tYZ#EQ0L@68328h>eB@HrN;TciTX#w|C=V*^1;hx$ zrNRb+oy~(?n6g0nBYk7Yxp*>@P|w1ys)*d-UCiP$iePu}^U1~px9C{|+h9Ec322VV z<e?n<Onvsi#1On_sK9S^S0FneF<43-h*>^F%lW58&L%Y{uwvsJTHQ`9k|A^mYFH+* z=p4rK7@+-W^cH&VMum+57EwCby43u}hD5!x^T$a8^*@+p5EerY%OcCOFvqoz2UCh$ zwylNNA*;Z~5EEO)2w*f(PJbaIu=sZt0uQy3(tw=SrccvBR<6*Cr7SS4=de_j0xf!y zLCtj5fo-i)ZW?$Ot#o3_2x*NXS1iCylbkJ!q%{>=+RAAax_TnML|MoefP!pF>2{~E zHSvn3p);{=XMMW0cWRM(TtRzss&_tVWPHcoK~y@NXio5S<>(Y*?ZG>SPKp%?tZ#I# zMN$Diw-#pEPEI<=6_6y<#m9q0=v&23+KCfIC=oPZ!=W&cOX?L1j><6_G8VWvlrUqf z?dC~3S+%Ju1t%QyS`ui?5}K(oL7_giP4UZWRj9)fW)^xBy%M1*EHa(J0_{&I3C0s< zDL4#rd;otXMMdOrYK-wLSp;c2WAkdmIOlQ(;*WX`=jGhykZelou2E1~=-a_=%$)5w zh|(f?&|`s!r*Q~h13Xh3dJ4|e=3$I*U*v1T^5|8@AVLAvic#F3TR<RX%V`QOmLBw0 zP#CT93Dy~ESY^y*(H2uVFg!~t7en1F&QqrTUdi{u!OCqdA9%*#pDx5^Eb42dL?Xs7 zUQ&ZQ7M21nG?0nH6$>pXzDRqh3iMiEhq2Brgbmx_WalHKjcly8cQz}h28Op>%$3no zR>#5i#kdm_&o<EEI<r^87&t?jKm!SYC0U|zW+TcM$#C@zVDqV=zH}OwPIEyS(Ww(E zDl*tabEMUPsx^gjS2MGBDD$~+vV}<IIxMT|Q%nSiLi|W4`8d&?RdrvwwlhLECP<B) ztCu`ml_9V~xC!C$O4vE}T)m6mW8nZFp&b*AJva&wVV~^{TMMKVj&L9}IL|rT@k=`# z-41h;@>yg9l6G?kKBlnQkjbJ|T5|ThvI|AnNMfXkp+h+?$SoFf375W{Leg=vjtXl$ zY;UmzS*0N!gasQMH2sBf(#49Rkp(OlUyuceiV7ODVwTs-i3Zq~*+MCXipJF4I!@C= zO*=>)Lg@2Sa^7}UX&kB`ZxWhy1-T7K8`iD_ty|1GZUU~IR)<_JTsx*uEbQpI!E+$! z<swj=O)m!fO;Ii3k=`)CFTl4#a{_!To8Viap&_4ZL#u|GL`09s^Z$h21T|p26`s^| z`<hK|>V7OdekZ;h3>CORr>>fjmb#?!mQ<z1nY?RCR;D0<*IDR$O05eIoR-;ZsS=~3 zk_r1zDzkH`@=1UkCnO2pq1L483=_F$XFF3)U{vc`Ua{8lq5~8}3PHBXa^SH6Tvn=Q z%gF&d@#@r}IxZoW^hDSy(r1uc3O67eMZBjN0g+{hh*R1m?Re&bD4Hxk)TIcq{xZW! zHgKk^nw3k#ev7<YYS4~OQ@W;MqrMB?8QRz5A<$HpZ4rei-&9m6t*<shh4oFiZ!|Sp zQz14@uEpIcp4jr&OQL(ZOGPG7xzmmr*jVyLk#Z+0#Y!dAcp0konmot&-es3l0>ZR? zFrL#aha9Y3Nc2C#maUF!o>ank$Rafix8W9{q~G3zo8>!`<Ym-n@umg|_o4AOl0-3! z(nOzSY3KK^QCP^P*s_*l6B6a`K#3i`&0wUiO-?~Ff#+Zps+Kq_xEi%x#x$6I=yh7W z?v$g83vysdg@*E3Ai=^|U>bMs7{Sb&P~r-$eydm6Az^pJaB@7wQWag6UzQb#VqOdP z3mlZQPNWSaG~!&Q!c>C2+<E!Gx<bHwcTepT<Jr=!4l)_gH4safBQEgu<trh#Cm5+Q zz0sOc=1Y;SV9CsJS&b<(jupvT-Ubn(cA0hqHMV3%uefo_=4tF5tj|xwnmkNvBODWx z7Uhp~x+Fm+QN0^8W5HC{v!r+nS%0K?!^z=NK@8DX5;HVpI0Q3fN4kyUAaR^et$~3{ zt!2_zzX;};7#;!TL4zHzXfnOhc*Md3_U&{AzMPu%K)IKR=8Z^!^XV?&%9tD*ho5zR zc#mYnaL5**<B-zA-^oA(krRT@P4#a}A7ZXx)9pW(UXA{9@jtjVicxfo@suz+Iy5k{ zEE0s^k-AvH2F|^Bb{bMUzBsrQ-S`*PLlxVtrXm!nf>LVXGNC?J%$bFnP_9?q4^?Ch z&&d?OQ`T2P{1EpbiwDg~q!{X(6zT<rXf`cqkl4hkY^xBaIs{p&sgA*~sjl57C}g6a z5|^B{im^fMAOu&<=(%J|WM1oSNl4a>6(m6RGF)f*hl3!Q^H>jH`M|S}fg1#&o!gCr zpQVBT7EH|LnQ7o`Sfzf6su2aIJY7tQTyO_!-rLg5&@s%qu4@iKOZtn|55ZoK9?2>_ zlLurYCL)Uu3-P7Pg-GaP6gLEA)?9UlrBdu-M4OOoo-nTks3x0Zjky+%^(N!Oyo9rd z5xY5xBSfq$OdW}yQ7x{_tf$|jIf?QsLrif5ORUklR}_>iOzAfja3Y7l_fV(FYfN`$ zd99~ZUTCzIGZob4aO8jrB`~7o$XhuaE3qH8LilbLB#2U+NCo3HHV#gW&ohR%r#CGq zL}pX4$XI#MyjPv<NiR>86HcfRd{aVJHN9Bo2aL%QaCtzKls`ih6zWmS2?_%{5}K}y zSln7zcjnr!F1IfXugY`704shuR6^w;En%tj6pA$Tj<e<x>oe5QZCnU5cj}@~HjKJ_ zWgNV&*M(TEEU$iSavtL}G>>`>JDaof<B$|o=uk_T%JuocrNYXn;-blbXVZ)^piNU` zgz4#inQpL$%p6fF4V3txLyTMhNRva2!>mR|7$6c!3QUjm?^18bWavDX3evj{QoOGp zl39-aijk&;wW|i@M3>Wh6neq^y<MCl@L}{q0?I^fm9c|4<c^};kk&Y2v;|7&o<3xh zcf?M`E=UoUGst-|Q3xkmbsQp`h7mu^SYfs2h6u_<Jud1#nay`&o$0nET}qU*jwbjJ zKT{p*nykb80W%DXJP+$A$}@#E0nvy}zpEjh;%mDs(wxOp6HIw5cdYVsA|Dsr8DTKR zeI(=~TO0X}mWqQqLAibY8|LMh%UHDw2Ou=}3kR7H$H5enO1PpSAxk8rg%B)iNiU#s zr^!yrwbn-~LrA<QeN2en!G>Z7W|%Uqa6Kq}ygD^Gn{<_h{rPU?kN)1#nux@pdjt-b zIS|^p=KgS~<q~)r9tcxVVZ*l5dQlRK3D@{hT%$4hg84w8X%o}Jt8!{%W^)MI4fscl z13%cpB7<||bEwbDqW)oM#gHL~Ean2s+uNw11s1GPG*ER+MD)I<K^6XF=Is7zArW4g zTW=C;E$hREnngH7Cdg&H6otVs4ni2x0}29tKqzX3sZABcB?&`VGIX(Fx-&6iA!mf+ z_2j&1lMrbjygi;qLmkALEcQ!@IFvGy65tFsC8gpmyIV2YY4MaBew6KWTtcW8qYN1s zR%Aiq=nEFr%z%Q8qO;L9^c+VP?Vhb&5h;}N$8hy9;|Wm-{?zJ?OmA*j4JVvHAtVb_ z<zEswqM4Uxu$&SlJVu?V-#96t)Uv~(Wy;K0n{zJfT$Z-O0xTd@JHb-pW1gz-+{wIT zf^;M(^@foY-Ky!*swDWGVij@+<7JtZ6?08_3@@;c;q);16?2%j$tgEtq81`awM9+i zxy_j}@3Q~4=xe4d$%`O?TCS4ViWciv&WH9f6<#BEZDEAu7Mq=AV(pdSZQE_Z)H_Q` zvLMQfeVC+lW@*$_F1CUGpoGRKhBUT8HJQ}3nekX|K4r2XA|8)bI+STwYw8t&0rI-V z1C{l4OEe790qC{J0BXWbi2dU0i{P7C={9AB3k`ze5iB^s&4Qp9U~hTLYGj2fb1=>- zY#!ZmWpSY7jN(Q!-;>CCag@b0AEQm~WPwD1i&wJ_jJ9p{#WTxr2j%-ERg*NDdP*@3 zI@F-oJm`_Bd8D^Wb*;In`Dn^n7Yv_v;2!csHui6u=z|=^Trv24TeBmut6{=?@hmV@ z5uxG%(v1JofLxjFR8dDF3T;Z$<)g}$k!hPzGdlM?=%5^2rj|aMy|qoGdLH<Sdd6u$ znNU%zuI0olMxn~a;-fHn6%JroF0WdlyW24{2^a7!c+N>bY5KGnlY=6VlZ4b>7!`vK zZbq;vJ&HbcXor2B2+By+5HT&tnX6ahaQoTe#-tPl_DMubi$CYcNE@%Co{6kQsX0_; zAkP`YX$@e>X{gq)4bYcsl(vIC9lJ}v29g;B@{n_P@L6Flmpie0?^J6fD-pE%)F_;< zmNc^8s#R$%<Oh;`)}g`ngBb6ex-lW~sI2)bg&Yfvd(km?!d)0}XG!$t|D}7mr*~tl zxQZ!aeLg*8o(aVu94!>H7@cVhn^#&Vy`63s)a+z+R+;@{8RBYAP9;!`ZMoA&lP#jB zi^_&X4nLlJcwQqHSQsJG@QseU_6ya>xDDA8E+dKS3;CO3<iOz35D#zT+!Srvxyvtl zN`ma1K5MbQf=pX(6IUidB%_iE#03uu?ALk{Q9K6_%YlV6QE(TlfaAwh<)Xd6q!c9g zqRc|Mq9h{a2xF=u1_OL5iY9)LJDDg7BEGjqRh~L+6w4_elHg#V*k%%jMy&VQVHCxB zW$E{2@H)COXtPLE65ZCbH7n?@i*$*BV9|ZGwCk*$o}#4$t2m{=)yV`B#5~!=85O}g zM$3CY>r)i>-GcmoSfD<swMSYuf?i4b!K>p?L>2Cg{>9S|XL*1pMgTPq;GGt7M|EN+ z>EPO2;^F{v)x)mmGNxCck5(4AMq;_QN^4b)Q0AT^@mrW3IcK?AuZIJ6;2^Dx*jX%K zznpwr7vm2tR`P-yENW?)&9~KI$L?A{x^0dko2Y7{l#!Z>9wk|;qK_IFtY>>8u@Hde zvfE_zg{pDGEIL4=D$GU;+r#vFJ6yg;V|JwAa=KlMIaUbr1TPO3vn9L`JPip|Sp2|9 z^aIN_Of+WpG-qaO6%i~^z*lQBm}qlsMm&3{q0*R~+sx|EA;R#KQ(%Tf%!itXMcym> z5aqBA3_B|CPE9^-9^yJp*5cSF^`N9`W>-kbR!}K%!_u;v_k%M0h^eh&o6X2oAg76@ zw~-s!v^^fLr)Ny3^>Jx<U9t&27sF-S_6{)13#CZR`&oQM+f1&5Glo`>qk>tqqQ}CC zTG1`kMt>gehrSPa8Y)ZbtP-Yc35L0PYqT9MGj_CoIA*rXM#=jNDi%Bl4tClg7Gx6# z@aSQAQ4U50qc!v6qPL4;CLT%gJiuTl5<?cID~aQ>ErVG>raf*{@i=iZcS7WunmA*4 z7zb4Gf+8W%G=}0*Q!^vY8J>-XXwrD>jvi&XtvM-kh`K@xJ&8x-S?QvP8f7tTFwiAh zMPgMVo~X$H6X?9LK<uKTOU7GCd<o+6>5Gxj2Kr(wn_}<`%5n(9$0IDhD)WimIU|l! zup{r7sxk*u2y+s>w|6w!yReApy&Wh=gC0y_;$>p&g!0K?tW6r|g5MC=9S*>%;b=;U zz5~a~RpzmP!c;DAXAT8xD;cVi3!3CEQS-W+W#=y`{Yd?Hc0w(wDUDX?L7S`x$5kNY z^WYVPQ0*k+#ilxllTqZPWIs}QSMw#ZALe@3Sh?85j@dvgEOzWB2|!?))Bv0<J6Xe5 z2c9wmmOGBnZ5*hB{=f=2)0!TDN`;V4QKG1%i8(a@unez5x!X{)su(03VkdSEBUG59 zAoOC_JW8NRHizhP8U?L`$qmk4!DeSKY=*DFxefMK19<H1IBJC#L^Ui4l$dEEJfHMg zg27bl<E)fZjq>*hub&7wS%UHc4TKPz#HVF7A0nAah-y65D97kii<2^OyiuMXg-MSn z^I))sv5z1GkB^VE_A(D@kW~V*41+L&Rd2U;cK1wca*vj$niGQu$C1>1Zf1(~70Vdm zH>qE5fpoBcJR#;@qJ?VaoCTO!+FI?V$AeQpyiXVni4@IMWkJwTNuZgHRg)z=q+K0C zF;b1T#>cJXuP{5DYQYo#^7bH$p%wGET42EtGTK!xY_ZfLp=&Ai)<@?jhna5>4OGP; zVOG6T1v!f&L>(NAi?L!lKp*I>RimJkv8Y|fCBo6R%B3|V%D`Xn+a4z_iQSspg7@Gt zO=fTCxRAs2kpx8AgV(0M#Fy7}y%;YdB1(+OWTYYGmC%(Qq<;P%Lx!`L7gS;_M-zTa zHjfZXjC@nX$?wC-*;)cO?$ey)iBM6zHy7pr2Q60#xESo)v%cug(KVc<Wx`4)QEE)x z<oz&z5ceEDp+_;KY$Bb%d@Qg;*O03u255#bZth4AO!*S~VrDcyHpGJ|&SYs&UesQY zn)UkN8m1<Bh6BU>T5%3Xnc`#-ivR3WJReoxsOa-R$t^r(Ja@{%$I=J49PpHh1g$cp zLFd}2q+qN#)H#2t9+Ir7pCrl4MD9!j<fF#7g;i@|afyPF6-S6cC}PgRGUPO7j?LvV zCg27Yl|sWQz(uE?`86TCf*Obt3fCJ<S5q_MEMk0e&$`%TRwf9HI4!o=pYjUi{`QtH z-5v$T7J{5Qi6eG`52J^<$x_GNKvuEn&gQri(*qT4uphM?K+Y5065NRr|4#55QH-T^ z4oB8Cao(04%a&OdgvAuhTw?Uehp?ygBIx}L-p_HUd?%@Ggp5myk7l#9SXLo73}Z@8 zOzy~xE41tWoQ<GTtOT>oj0AWP-MLb_f414&Gt#m`+{<MjtG*;E^%>Nw&y33TI{t>8 z7S0Rlz%bzFP8UoS-%!P588HU01jP<@Lsn2hMwh@`uj*h(XS`h!VO%Q|wtQ6ia)Hdj z+1<HR2C88!z$ik>j3_Atu@p6FB@G!3!M-{z#6=W{^t#cRsY%r(L3<-J#S`po?L`TW z^IFi?E6KY|M!D*_s4sB&;%tld8522427^}c7lAgK_M&&Mc8g%*6NXV*0Qn?K9=5GQ z>M{|Ol$bCkmCg_03R*HOGxx$Ki}UBjKFz`gX3Z%qf}E$ZP5dxda7dq*SRd9|&@c)+ z09Z`Rn0lC-VGfq%---QK@eL7Bdg>QsSD|pSHVP+V)uQ=I#Cc9Csa$^BC99eGAVUho z0Ow@NA6!V6j(iMF$lp2GI=sC6LHORLrW+_%(M*j$%ZN~GnwRXh%znyZPH;*!XIjJN zMX85?_JPrU+Oeo^X65?&YvavPiMLyJBePe$Jq*EA|BqSJ7Oko0JY(627ZW29vdb;Z zBikp2!me4o13lc;f(TMuLSn05CbZUKVT6Aun;e=5XAw>Ao7fQ|DVEdghKUX82li;@ zWf$>c0Hk#xq6+AxT#P%p!03@1A?375#Qmk4<MTSk7H^iAaLrqkru;%{7B7QVEG<h) zsgzxL&JArZxOw216<h^|2bJ6{`W1onlM}F2NsRO8=(ru#m#?R(SIw-?VSthms50GS z{GyDOJXBK2L_G|!3B}4;#UtN>9b8g^$)fe%h;W8!e0+XlGOJhOc)MMlR5<?eVqK%^ zOBpa@;dFFiBw-;uKLe}yx|NUWg#wyov4-Lv^+vCx*(^q^kQyH_P(tU_A|IUE1&HIl z3tHn*9G3;NTohKUZb^H}j0D^c%jNBG1Rtx~3W>111+zG|iEM>j6EhVCf}FburLq(! zL_Lksj=_MVM1mHi?Bv;UJwcfv7(V3)aQ#YVL)%opfTSo&&LWZrBEoQ7p_w2Wc;7-G z@7lW3Q}IzU@nNt&4B@#LMgsx~+w2^U-9(i&l$5QH%}mWtqeP@Vz2gvI`7HAt1n+UR zikCht4iglDt%rj4F8G)L3jc^>2*(8QMBuD8m~7WLVt%kfsrpiywIwub8EuSpa>f~$ zcJ9nSIVumnRfw-BBayADIm9STAQ_eVU|ed!;+%P5khFmG(*r2tinReEf+7eRfj7D? zN8R-^YDi9aioTaPL3iqM(-OO?>m97TjZk4n2?(vN3<$+qi$h}6*cFJ1f$vgksy;H6 zH%wPqjbK9D5JMH(B@A~m#PqDm3T)scmdq4Wlm^3g2We9AIz5~_Z}V1%E3KS$P{kTf z?aG+cAmd@|d_ajx<FX94)ohJ&;bQ-1Qde{qOCKyxRPaGSTjngz<S%nCV-*V%h+QGl z<Z2Nl9_I~cqEFLoCMXVAW4Y>?IXPgQlO5;Or$eaqo%7qqlA@%}CW?;mm_oeRGSZxj z+GbQr%<A`>D#fX$pFUdaC5CJRf73{+WJ{Y3Xyb5Wx-s0EJD}<hX<mrCt|KaS9zjpp zf=UPi;*!i}g?5cnkenEXY;uYvAa#<fUWLsLB7#11@X-gd6P^(ZQtI9GC;Ol>2~ewB z$BdkCo%9ugrHw%?iQ)wr5@8vLQ^O9;N6-%piIidQkvF7OTo`W>jJWx}!RQuIhFd`c z$sgtk(u>0a=U{m|h#M|5)n20H@^f=mhq<|kc@4XG06il|Y6vj2iW9peT!JLcs!f0v z<IowgYDqHdNKN7&)W0amC}n_sBaH)^?HY=|EEBs)Rw~|I?I-{(Atf>4zKW}bc#zv8 zbxN0d<Sdx~oK6r)P*4X{B@l~^Q3g9gjTg#TWzo8ra<5JjiDV{=@jf12*fWnr8rNM7 zE}xS`b<6?}IOUXr2P70p2qY>{hca0LrR_|XI*?bqEqOYl_nRQ}dU8UyoFZ-6vQwiA zeBd}s#{bo+0|^9qMJ3%W*dH<S%SIvRDFf=RWf7H7LKj(=Z4`2>%Ou7);Tr9Njp1Jm z!NwxLaddBAC0+w8s-3gJUvEK!^v)uXuL<Wr=D9f*j%_S12Q2`bI}-k&j($;7-|eJT ztlf~Fb7m$0)###@&cIiZl#~dC{g}*A5Og+4I*O#HX%4|4l1?EXw>1kV*XhrhecKVL z@Fgj31k;D`_k^xh8D7J8pq3<JT55MS3wK$BZ@+~}k@n&dO3MV2lE&)<&;1foCgaJC ziGHz0xq!@6REP#3(~|tF<p<Fz9jC2L7=XI>Q2awLQt;0jNydtlGBrc2wVzp@eR7%S zmidq-ku}u(oHD9KO{nI17d@6Dzcyz!$Ep^m)vidKBH7NY#Zv}An=Gjau8!@b)#cO& z=!{B?C?|8cvgJ6@Dnv@eJ(R3ID4g{wkzGr{_N*Ie@el-NS!hNGw&WRg9Fsz$9#dEw z<I}qvwFPZwoy^R0A?C*rA=}ATNtd{=#8K|LjP45G7nziLdZ+|>JS?F~M46H!CleKX z=VCrG-wvv7VRnK;6~i1=0b!i!dc)(=*F4*Ly6FM=BgBPDCgH%F`MXf)Bu>9Zz1~)K zrG*9tjEp2<z^Q)4*!K3ECMO2n5pm@)(*=@KJqcxswhG;4)I9V1E!bS-ys65Czq!Z6 zII0Q~coHU2RMoJ0Z94j}C`Xh6FEb$~vv*lVq*=b^Rz%}8n2aiekqaotM#3sth;dLf zxMV3tmAG;p2G%9)u9!OxLpW|pk49>V4X0p69t3p+zeB2yL1pb+gF(1SiL)-4ilTX_ zPg}A3t9C#!oHf5O!cD^p1vSgeYPo?1%clVa2Mxg_n4`5-BoqeeXsESC+aHdLC=r=3 z))W(hDTETO4I8TBVWh?JDu{*M<_v!zTX*8HXOn_5_H__Ls&*C(TV@i|fR&thkJQ|Z z`Lq-8`vOljBAsUk;VS7&#U7HXN5LexrWPQF_X-b&{y&A%LXF8WE$je4n4bBB6f7Rn z0@YuxiQALi4eZPv2GdzO2q9;Ij8?q{E6J8q1!)Uz^DTHL#ITmkT$>uzjq!br1G9B0 z^`O+d{r8f`?C<ZT<17~fms+EA6|{TQ<UrH8iRsD4gq+Y+#iu~9^k`1aTbAVI`AO5y zLC`4vcn`u=(|*YMC_gMW-i5IL)IZTb0UB3rwS^r^2VOZth+B_51A5CS&Yfn46&8N6 zI05R`Ql`^`ozlRcMG5PYaC$}E4w?uj&b3|eV7GX+a)A~`iW<dOd}y3#H5)ay-!A6( z!9{!qNg(^xo?(+3vk_*WB)Bpszg3$(Fgw?j4ZECNJS?u>v~y%S?7c*8Jjl@9lEQyG z`TTeoNYGw#(otSA0ZsD7>Lo8cJB~|M29|f>^skWEzhij9BEfS(o5H-!DXhsQkoV*m z*kIn@ypdMgKGsbM=Ii6*ZzsgxRztVTQn&1-B6rQ%F;o8Q1Wa3|yjZQAT@*w*oMcPo zQI1OB#wc&^R)2_gKXahB)|%B5N$nAri4(%iJ(jo%-b>;Fv8p2UlGF~77RW`@!jUm* zu)}$q8tI3%T&{wh#Crs-VRWv^`s9Q4nbz3uxwuT!+z*D4cL`ciEz$goHMJ6|VDvFN zlamXiKs<xtE0IpB_=}|=@(>oP`fGdTgj$s2Km=p?1?vbIWKHi@I&xC6n5+Y`pByyE z-B+Cpot+$L>fXZAWuS)?ClEG;kR(&GABqOGboWuPK8Ar!B)OpBfZ0XG6<DWG5V5X^ z`dhHjR9rgiVIsNR2nTYbh(T?%H8VR`$HCM{D~L&qLMJ*B8&C|jwJ~VKCcGkxBrsu? zunbyUI9)MWRE49-q}ClCHJHU>%x;n{kE$Oat;}>p)Rdlu61WF<P#a&EH6_lk-}osg zdD%D&620wG!vck%CXt)W;xS_5lL#C*vEUkey4A-UF+)f~Ens202+4ZVnM0vOIaBts zL!uFSgU#7fQLwK*m!;`%on|Nw!WHDqXl@l=F`Ko>_vIO*>5KX&pCPA*O7TKfzQ|V= zFBz_ry4Y615XRRA&Rw?*;X5=3I9V<EWHFd_)W+&&=WGrqO`J8b4MVt~s4?B&%Y>gU zz^RWz%d<KW%f%TRxF=+Ta?pU*`Bg^|_f^7~D+qaJ2^al7+k}<&q4WZgrNeMSj-%(b zZgUC@rE!xeaYq}p`pqYVCbO6}>PRqtScz<^t<nZsU1VYb=AVOd!)C@H=nOh`p(e}l zI8UM#iX<LsJRo+cI<`bO!5e55`fLo>LPGA}uf9?cr)9G1dV1571frcK&)GB9lj!~? zVL%$xvV)7NU9hl%SjwZ?2uEsHtB=f1VKGk18NqM}R-b<nPq9e3)RMw%sL|!!YL$ld zqz3H5WRK_u$Xng=2LH}-%5SMuY{da!<!2?A)NqTo^<;Ar1*oKPN2{p<f(18VXM-oo z`%&VNjEF_8R;D(gf)!LbU6GMu88vWX!)2$$$*k$|nu%8;ENt6m5SoR2ce2-k7etXa z)5%f-j#FnOR*I(m=4Ck#w;p9$RCOTA<qRw#yMWPzV-s@-Iy6GM1lg>oCn*ETH^mve zBfY$CMr(`PF}$e;lazx%mXtHOT@IK%1L?ZRncjy2vf&+<35lm*rTJE7^{+J8V39)K z4koR|i{7{nbh2obmEeBeEk!$74~m+{WCDCi&Njm`piZB}1)xk=PcPCA6q4f#V478a zzHGQ~k8xpfc1+NepXtFidX;Wx4AugP5VW~mddN-?GoE57GoJ0dgHqRq$0cX8%Gg6o zS0+^A4+xd;6;h|%ihqWbibC$HGeKWW1EkHgD<+h2xy-NY27#PS0@&I+B{diVorBfO z#4CwpioC-t-UA%XjQAHqU}A7Xk-8%?Y9zYS3QWgL+9by`AxP<LDU_|XqAIL@ctBQk zRbB{Ql&!->C$K|Jfz64jl<|#)LBIhSHhjBGCTJf?pnLTZP;%%vs;}^H2Cg-jwP?+d z;{<1$vwGt-I4BF*mfk&E{Zf5cJPso1C2D^z=-ZduOxXxJM_Djh+;tGZtzo^GM!0$G z1+tm>4QKJdu*ee_rVro;R-T{zx`Q>k!f-DWwwpPL>Ihie&9_@dYGdI*653$N%aaPp z?St=B<4(=zKqM<W6hA+)+l!xzwoBMDmsR#%B*N4t^Tfl#u+&kISb<DuNb>fw69<+) z1DKNz(*R~6vp^EM=*l`)_62vVmrf{L>Sa}x!sB&FFJUF<;r)%I2!PbTiXwByGBT|* z$Ai<P`JVc@^!c#>CG@c!yX35Ba>{|pk>>uo*2hf_#^~^DA`46mAs-CU+i>t9E_$E% z5Nq`dZ~%$q4og)4q~o?GVBNPy21T<R^`ewrv6IkpMu9-YcnM%PI#!U-dl688GWK{` zZ7;GM)$zqA4G&x9ZP0oM(X&!Wx<yag7NOm<Usco>a7^6R=4fMnd`=_6M#LUzvD!uZ z0;-y5+`Z)U+G))~nS(qOo(>`yr7X@Oh9B#v?B!;oxyq7SY_#pbWvk?V@p}R{#kD#9 zP<)W7!qtdEfFO!{8&Ynrj<o9hU(9Zi7?!Lu9cGU%m&QzebW+@{sghk`M@ilu`T|49 z(s1?Z1AHcy&xAvbm&=AXi^<>ITb5=@;d;>>0{LKm24N;9{#I9~V34=%KOR=MhDu9Z zGk8TV5_9sTf@<<IVJh{o&dSGLV~-s-x)R_-w&T}CJk68l)E*ZEI+hm+4xiRs51z3# zCpL~uDKg5PJ1=TkaWhg}%fX+X8gC6}>Df!&6-WdRfiYfmLn#VT18Q=S4q&n~D2}&J zlz_%eQ<C`$s+Dd-iZ^F4NJqjenxl5?E*D!y=@zf{&_a_$vQq;>`37}_W~zD7C}zGE zUH*2q8C~}A)J>&9fv^SZqR<tyU}kEhSk`2BNZ#={j9}{hR|zXzq+&~1q>p}0^snrZ zCz}IRk=-;tlA>1_4m6jhABi)3`s_-qTo}TnP{#pzHc<nXM`t)LGWE@Jnodh^eP=Tg zh&x$<>+-RJDvumwFdhx2qx(=3VRDWJ+$4<?<lJ-dw~PA5xeu1s8TR4k?&#_>-gkR! z49R3tT^$*l^TT_ZbF++~MwIu|)JSryK$2NuES`mgde<{fXlkO~kh8*K0v=gsKb}vs zG3Y#ihz1=L)f3<}L|L~9a@?F)klQ^V2Up~ZMM=hfJcK0w&5A9P)&ov0CkskP4!Mk! zmc>G2$yj(@?5Fw3vH1qhKpTNoeP*u3Gf~vMv?v*{t$PmPY@7Ihx<llw%Q(IwbwKOa zh;u*B#bl(M?+gS(ZC|Nhk|UZ96j+Ne<KI*{5;0^55fMX%q!%FbWpAt~Q!Te7Q{Uge zVWbHfIfW2G%9KGdus2&ShR*dmYZj(404edTiMi47#uyKhfDoN8R!F6>H2IL+7f`-% z*`3D`LzXO@?chkf%C)=Vp)h$86pRF#!&$A&v?Ok;Y+2YatjQhZtd&*#YLT(vWE>4% z>J+DvM3Z8R)a&D8A~)dXrS*_*q0F6`BL)kin&c$VV^u^*lZi##uK{QF?m|?gN>{UR z5*uC&lvOV5S))NFv^1-7HrYaD7bSb^qoPq^)z>t_RO!)TUIo^jDbnq@^}5Kdapy#& z>Zt#rI9#ZmjU5f{2$6JbI_6yOz(JceR9uarxUk&1R(D(0(I;eU5^`Nd9@Rl;S~{9h z*w|n(@pmpkPpuNj^-<ry9?K`|11m`E#-%VTbAl(+SqP5}J4cpMwvrGq3SqE0GlM00 z_5~MqZ#m(Fo}TV?C#^eaO?U5_o((-~de(HWo|v1TY@RySM7hb<F#c@J4DUX5|Hk#J z*Y|a=9_wBW!|kbKlk@W3)uYI^9p1AVIbL&3RK1=-E8Hin`GyURMW$jFv@I<wyM~Tt zaCs{~s3GyiRlwIKJ*cp{B#y6qa#+D8)zgy{tD|)a`w|K1yz&A^O{wac1JK{icppQ? z79~ze9A9?eEdt?jDrykRVQLv}!4T3KZQ)6|13Cr9*cipN4<RC2Mc|sv=WzCK-8DSU z0PBHmEyPg{kH_O85%e)SO=IPDhUSOmmhqDOL6pJ<qE81|Hj`s>yJMyGji8_?K!w$U zI)JEN340~vRH6$Sbr{`r3&?lv@ToSsXNa9l=CeYlgk*0=P-+Regow61DHFlWp?FPd zR?1WXRmRFpOC(r&Mp=86deLbp+$jaoI1pQ6aAZZ8m>Hq+*-Wgym|L_RlwrD2SpWh& zdmq&V&Izp6lVY=zmAsJnJ`F>nD!tVtS8Q4y;8!H&fzl)<)Adnks7{$^|9<0hOEViR zJ#tD?9dk*n#UsrzBO<42rH$FysnL!(8Bj9GMRkk0Cr@H?iZ^<aR$QT-uynMQi@=t{ z8I)FW+a|1z+LxQv3^_E5g0RCu_9#l-$qdG{`&8e;!&Zdz(QGBFI$B-AR<$kCH-ZY8 zXe@rt-m>MC?o}5K%}>tFE9+U^(>pJJ_8eE>MfmRh?E8m2eP`{E{YM`1(8KR`*wu&B zYDWX-fBf8)Kh8Mf$mg%va<99dfe!eSZJUYX<F#L+&2IbU*8Uj&8?HZ;UH=+uzfanJ ze%5}ywck5!KR0W?rNj4cv-St1-+z4e{i87s{H)}U@O)3n+BaMKacTQV)_#e#d(VHl zwLdid{zcjMud()frtN2C?bmns{w*E8e_My|AH9M%uGPHf+idOL^Ig*6`<Gk$THYj# z?_~CV*L1l4^&PH%ONaK`tle9GM|bhTYBlfuHg{;h#M-^_yS&5quj$Z!eTVDc(xLsf z4(&%Ds_*YT|7L4{H@k)TTk%erz@q_O(&77;cWA$+L;LmCenfizfo%QU(xLq}Yu}iD ze^$TW4eaQ<u%T9);*aot{m<!I(ai3_rbC{-W1CRVyS<KoJ~YtKN8u0t$Istjt;y}e zb<TNCSJ$;G<U*^^zD;`7YG1;h%=O#$(yprxea>CFZaPHza$MhI&*ja_&28Gd@%{JP zy}0jk_e%EOgM_HpYUi+Tc;*#b;xlZtc6sjDezvrC<0}_i`z7i3Id(gxOO1U_Pv}qX zIgAFf&xrNeir;g6o~75}cznd}bu505&)Ue^zhUj&Y5SA2_CxQ+hFa~>{1M*e((F0E zvw-J3+-OO==Nz~DRIOL8fgN^@7vuNbyPkbj*K-bC@%WRDoREj&JHOwq^$`3XpZUV< zoj%{8{b$y`GW~wS+a5$FkI#1g2xGEBnJe$V(b^xDwqKmx|6*&ede?4zXTP=YNx!e} zS?5)Fk87-t_m0<hXuqXH`)$@fo<75hF?oq@U`OAb4Yk^Z{1L`LpHZj`pYe3-Q}v!~ zztq~jy?SMb_BUAjQRy>m%f|TzYxiV~uUh;1^!wO{<G92sU>}i%R;zsgzgMie@so~R zaVGE9jrJ4ofgkv^_#=!5_q5EI%7i<t&*nm(8C-<pF>USLX?wC4ueNsYeXp~2k0*bs zO*`)yXeZwx_r5DsaN{%HPcB}ot;X;1J$Gkg-e>JqYrh*`*=6llrQg?eb0x3Bd+fJ9 z-nw{gn|9vga-(TG@O%C}&XWh_J#MjUcx&@EYd;=+<9jB&?dZeVP^)?SZ?m;~boY`D z?U!5o3ewlGo>u%aKL0h=?v2s)ZQ8qW$u}5{Yd1!<d!Zvf-WYXTyEjIsTYC>L65fHE z3x9GBF17Y^()NUpUTN*ya_!1T`TaLo`<ZDw_S}Blg6%h0`(WC>;(|DaU$yqLa_y?b z@%#GXwHj$beE#9=`MYIcYPE-_?N7|wPq+4}_wUAcF17X#rQg@R@Lpbp&+uI9<E^7N zS-VH$K4R_Xr}tQKP8@@8So@~5eNNxuQNV6A8hI<$VQw#BoV&iRa#uI{ohXWCttLu$ zm}`BPr}1j+b3da$r{MS8wdVDHeBU{{jyzVlP9nFy%GzanhW147dryb<o2}g&&mUX+ ztMM#x&R4u#9+2bld3%R{#P7LxAg#YXdymaW@&f+exy0JNdAr=&&*nwKdn&t8{@<bf zdTZa3ejm?x0FTJ`xW(GPp0*FDJiX#(eGm3KRG3Yz_P(lqZ_nQMMC*52+K)HG-<;QN z*1j%npU&FHt=*fKtE{~*{XX7@i;LI4*4lg1b`=Tb{x@0sd1?C!T{!&yt=8_XtHWiY ze0~2!Yd;~q{%H1o+d6!I+}gc$e^rO}YumJweqC*}?y}-OwmI(_*1gO*zux*jv)Gq= zepdT&%)0N(m-Ttz>DKP8iA$~B<6&1?ySHZEVC~+Txxw1KG5xBwd;BFB0IOsfd4Dqy z4sZ~{9>o|@{bKv+*8Z!seZ|jZQLz0|Yxkc2N^6&;8Lpqmw{Ng^PX@Wc+THiJ_TS4r z-!tR$)$Y%RTCK?+;r=UB`IGmzcJKL4xArO;B=2wSRpZx<TV84HV_1jr{#=7k$=2YT ztj{32#6Ag+|A@7F&-e{%uX@IAT=GycfPy}x*T*xg_<FXtS6QF6X&<u}@EYe>`>wQ| z*GTNK<JQMp3s+e?uNU9bbOU17TKlKdcHZM-*>irX!##dr?U$t2Sn-6o9*%q<8)~)O ze683j?cKoFSo;t=h4sQ`NOa#_)~6@!lgNZ~*4~%4Pi61$Dr@(~={?rIGyVPwHH?$C zz1HaDXYl)>X&*l4$Fuv~*5*FE&R6X^@2tAcpXqhF(YEzL_<_$8`6C^Z?b?Ue+HHNl zpY{p7_-olSU2Xkx<GVr)6WmYNS$oxf=Y2k9?Wd*tDbW8lx~IC)?`PKU<@h~5v&wSM z<J0h7M?aX2wc1Ji5#FnnJ?my`7jY`IC+qzZYxii^<<`DAz5c%J`qx-{ZoRL#NjmWP zuJ3UDTddvFU2e1Xs<D*!mj|!a9+5uZld|XAZ0%LNtsCFD#M;Nx@9P)~f#p4}v_4g1 zOrAbswCgqay||VqPdf6MC)Lzp#B1GT*OGt2d?YrpTdm!D-^1lae0lanYxl0d&Dy<v zJ8td5lEd?<s#fd9^Iv7{?db4z)<^yc*GPOupR#sO#`}S_SB*Ev@JRl^$6M2DtUX8P zSLjA((++FDgck|Vm(bT~Yxkb-YHP3B|J}Icb=H3LisbsTrn-)#HJ!~jTOV(per)aD zI=G(*L$%r_Tr0jqqA&i;=w>^8k+-<SuH)V3a%=a-;u>q;m_CR3CwTqqJ6!)3YtQlh zE3*B2o3+b7VXhKBcC;w{ZTz3s?&$-USi47mF1Pk`()UYjBiC5F$49TXc5kiT(xLq} zYxnl+(L(rqda&8r=X1}m3ZKlswTn6(#<xEk|I4ktJN<rQ3%$nL-S@Y4Z++cj?eb5! ze?q@+vvzNv94!x4t9j$I+1kDDUt;av{V%t6kCt6y?NzjjP1jrd4fs9oQ_47ES%U5c z_^bSZ&j^2nF<_r$91cB(jlK@>C~Lp}A?OsY(RHK<6P)L**8Xl@B(x`f&=G6joVMc` zf=&Fn)_!WCom;&d*qf|9r^E3b#4@k%d876DLg5-K{v}&)w_2Y^rhT58wI9Bc4gPvR z(b}u#yBpuzX6;YrMZ!4nIg^-*Y3s8(?UUHnukP>+*IE0S>GxHg6PfK(*6z{NA9QFx zQU<41J1V_?qK~ez_Np=9TG(OjRlI}k)7D<Kr%pusE~80b#_u_KC&<b#g-1r+u=2h) z*!AR}Fy_gee%0FN55WaPd)IVayTL*2(U5Km)%bYhdAhZG_rKKItKOI6aiz6;_kV-6 zSJBvReE$Y(_x1+w@eS*f)9J7-gAL<Qar_p1-DoGP<UJl`?d{~UbF7c2AMdvIoZQ5{ zk?0FoS)bgytjK%;*IN5=c&0d)Nxacb*6yv%Tdm#OJBQ08`L?bTt=;2C+pOK=$K%%S z?ft7d-2d7R*T1R5_iwd!Z!I7G7!Itz)=#wds<qyY?`^a8pYtMNuW^pQpV8Q9>$ADg zhrFO0*wxnl(X?H4roZ7;xSro*eb_(VCy^U&w)V%R?RXBlAo%?sTYJ?y=|=ngsCeP? zYW@iCq0jK*@C+NR&$_e^?y<-2aj~^~`+C2%SJ^Q5jIXu!s%K>T``fg4qy6*Neg%Gy z@4&e*IiA<J&HCIg?PE3zwjV7Ut>FJ(v4cY(^RU_4&r83b*xN6$c5gpiZtcR7!Z@p` zL#}^~wR`gO_11n)?*3Vf&MnsN?bq9^-F<(#akU@38~5C7?KyhIF*dn`V|c0csagjl z%U4?aJyzh4Fb2V1bDP?0c%8RdzbX74`>l9doQoUV+=t))j<tL1>97-c;abfbt5w!s zwfA}bbF97UJ=wmyL;DM@-Fv>bb@={`9ooOs;rfT2$hY@p{Z-cPJ>NMU+IL&~X}n38 zXY-wL9R%8W6MjE5?Zfr-A(>{`6W4XP&!?>2n};7*yT=2M6z1gfz%|xhwNAS6+&ip& zTk#!|Ju%nj9=yh@to`Ej8cKgf5@nzFTc2I2T!*phIyc)hw^*NtrPoRH``fI2f7-r6 z4GdhfN1wz7-}k@S+GT5nIZfh6F0uA1`ocLs-RRFd@q1~`&A!a%c#~bHYVCES{Ug@y zjTf)+9qV%hevj)f@wp#%G8_DPU)7=g9BZ#y7qb7YUH%DUrQ}Q2^$R;(|83Upt=k)| zU07PU{&2Q$zGLm(e96$B$P9<AVS}&xt+Mu`*eQHJ(TmQp_N{3<*5lLh2=e~cUNwho zf1$N|<M%de_vY_LYj39aPyBe_>G1u-<i?f{5#BG61y)&mPOroJP1*aMW9>(!_fN)W zx3zoE_rea}f19-rq}NaUQa4(=n9IZStEj?nxF3>_Lu)_$bybJ1+OyeQ`gGNv<KWMA z@aL6qy5SC~Wq8`5tM>f#&v^f?+6x@~g%18A2Y<1Hzr?|>D&ZXNLu%Rkh7PCOdxgKl zzZV)#F^8Xk^Y^aWOVd9I$)~IKG6(;C2WRF^`O{T<xr4vL!C&d%f8gM+cJS9a_#Zj= z>m2-#9sKnU{ssqsql3T6!QbNGZ*}muIruvq{LdZyS_glZgJ0+1?{@I_IQV-V{QVC8 z0S6D6N%^(dRr@=q{|6oX1_%F;gMXxi58)9=XS(fCL|3xkyJ{aT^=DI8?H?WdMhE|d zgWu%fpLFm~IrzUi_{|RfZw~%B2mic-f6>81W|<9S9M3O1{lDViUvu#PaPV(B__rMV zI}ZL`2mdbz|DJ<?-@$+A;6HNkpE&qW9sFkw{tE{WnSRCj`lZwVR}Nka>??PnuG$I* zKh(kR>fm>C@WUMZ?hY>2gxoXokFHwC(#bb<)sAqkb8iPf%E9mJ;P-d%2RitJ9Q+{; z{!j;hn1esU!H;q9M>_bU9sDs4zRJOmckmM({3Hio<KVpx-sj-!9eksMpW@(~9sD#0 zf1HD#?%-!S_*Mr$%fZia@N*sfJO|(A;O9H|b_ajFgAY3RE(gER!JpvZPjv7nJNQ!^ zyzbx)2OoCurh|_;c+0`}IQY1OPdfOtgU>kltb@-v_`HMfbMONW{tO3yrh`Ar!JqBm z&vEeQI{5P)`~?pFA_sqogTK_lU*_OfJNU~T{FM&=2M+#f2Y;=D|B-`V<KTbd;IDV^ zKXvdwbMQAi_*)(P?GFA92fx<A-{s)fIrzIB{5=l-UI%}_gMYxmuXpedI{4o^_&+%K zhaLQ*4*oF*ztO=z;ovtp_$M9wUmX0?4*nSj|Ez<5&cVOn;9qp`TO9n$4*pdK|GI;J z!@<Ah;NN!e?>P8(9sE`Y|DJ<?-@$+A;Q!CTf9&8taqyoy_|F~u7Y=@#ga69Gf9>E< zg(^PK;~e}@2fvGh-_^knbMU)6_&pu`a0fra!SC(hM>+U?9sK?d{s0Gmpo2fy!5`w_ zM?3h#9Q@%9-tFMWIQSzS{Lv2n7zaPj!B24T)ee5LgZDW2S_fa};2Ru#lY>9j!B2JY z$2s^J4!*^~w>tP)4t|b<pX=b~Ir#Yweu0B;ckmq!zSF^XIrv2mezAi;$-ysi@TWNV zQyu(L2Oo0qVFzzI_?UyY9DI+1PdNCLgJ0(0GY&rI;Cmf>zk?re@Mk#q<qm#@gJ0?3 z&vx+VIQVlN{CN)k0tbJQgTKVVU+Um5bMUJj{1p!VDhGeHgTKbX|Ioo-=iq<r;IDV^ zH#qnk9sErW{$>Y%tAoGY!T;RB-|67*a`5XM{M`=zR}TKy4*os|f4_r&z`?I~@V|5L z4?6hYJNQ31_=g<)!w&vY2mhFZf84?U$-)2G!T-g<KkeZE>fkp!_-7sba}NFm2mf~m z|B{1$#lgSk;Q!&^-*oVAJNS1T{JRc*tAqcygMZ(_f9T*pa`2xx_)i`D=MMhA4*p9A z|CNLP+QBvauBZ}1AC$1XGJdFo-_^nI=HPdC@OwD;JstdB4t|7#A6df3@RBPK@AM_} zd`g@ZFy<W-Kh`v9iLbH&>8c%7x(=JVYWH>U`#bmp9Q;8J{tyR0+QA>@;N1>>ObP#U zd1nN^7e4<Yf8V2kBEMdcdzJ79%J@nYU#{)Rg5Nub@sGWNA6ddR;_Ijqu8|v7xFBg& z558nxCn$1!WnLvhHHWK(Go5X1R!f={kx0IwmLf|GPVhe2aSuum{q<XdKe&XyS4Li< zBy(-gzYG7g<n5$I>ufTDGXGh1H~uY=zqtmj`)EmKNy|=|T1yB`@M{I{P7wX|=Yk(o z!q2)pp_L{4L9#?1S;C(p_@her8wG!K3IDF(7R;Ws9&=CrVZq%AezD*d=$zokAI?84 zXfnaK2;Q3@`m5HmTVKMTE&Vr?@V5vq(W1Gw{}KG`9L7JoWUHK0!jBYuTM6GP_~T3X zD+HIUnp~UKfnyY6{_}9ziciRc_-mWs5>cIN8yEbEIgEc?CHN&J{4WK6N(uk0;7={# z|1J2XC47~ThDHhBCHPPYzfy3Cw#~J@P4Im=jDOrD`2G_91HliJ@cRi#dQJ&HQ}7p+ z@G-$(T*CiQ@RyYEPYZrk311;3@0BHdv*52P;e&#|wuJwl;D1=cKPmV%CA?cm>R*=d zor3>$37-=D#uEN+!9QNYKOy+dCH!lGf3}3*TS)omOZYayzgWUwD)^U5xYoz|dI|3q zmhi0-J|Xyjm+)r_{__(48Nq*1!ha?B;lkb0#?``d?p4As5&Xy!{%paID&ema`~fBW z<AOh^glmncN0;y}VRerw;U@@wVhNuRe02%`3&Bq<;fDyzd|U}%EBF&i`0E9~q=a(} zyK0Xp$t{Xkc1M3<{^{_`?_FrA`gB!`$>=T2x%8DTJ^7#l7v@}n3sbGYg{fBH!VD{L zVR{v~FrNxsm_`LI#JB<%qF8|o(W=0Os8ryxxhrtltQELynhIPNbp<Yqt^$`uRDnOJ zgc0bfJ=np^a+>xp%V~<2<ut|1a+>00IZg4hoThj;|0#XCYR8l?0$mkyn&M?SP4Tjv zrg&LSQ`{1+`A72Usy!z8EBm!etI%eE{nk}Gu7nZjsvYm(Cph?t4!+vKPjc{+9ej<0 z_c(a3gRgb)J_ldt;OiZHgM)8$@J$YWii1Da!8bejsSYmLqNTR3nq;<D;HQ@`0$sH; z9Q;fN-{Rm~9lYPc&vNjx{LhYEdfGziJ6&3humV4~gc0bfo#)_XJwp4R@ASXG!M8j3 z4hMg{gYR_kK?mRE;1@dhMGpQ12fx_CpXlIEa&W1DQ)=s~mGvWb>Z+CXBgM=5k>Yj! zQ~Gq(E-hgMx@rvvFY8U(f7t0i;^1XHORqEP^dEEZ-45Pz@TWQW9tR(H@CgT>bnqz$ zpLX!e9DK&XXB~Xb!RH-(uY>P%@cj;cz`>vH;LmXI%N_ig4t|A$Kg+?dbns_8`0qLR za~%A+4*om`f4+miz`<YW;4gCU7d!Y%9Q-N=f2o7N%)x)(!LN4kmpk|?9Q>6I{wfFm z0|$S#gTKbXU+dt1=-_|k;IDJ=YaINK9sExm{Phn01_%FB2Y;i3|Cxio$-&?3;BRs8 zw>tRS9Q^GL{tgHKa|gfH!QbiN?{e_JaPaFK{4X8+-46a&4*nho|7!<-uY<qO!Qb!T zf8*dEaPYr%@arA??;QMt4*vHJeuIPmgM)v_!9VQaA93)HI`}_2_{SXlMhE}6gMY%o z|H;8`a`1n4@J~AUzc~1(9Q@M`{;v-H83(`F!9VNZ|K{MIbMVhQ_!k`fiw^$p4t|S+ zf62kW?BHK<@UJ@f*Bt!o4*nkw{tXBJrh|XW!N2X`-*NE&bnx#w_<uS0tq%S@2mfye z|GtC&z`=j$;Q!CTf8^jlcJQA#`2RTgPaXVc4*qio|AmA9uY=#_;J<Y6Upe@%9XwZ7 zCHCp69dbzgBl!jPe+Tb!@IxK^E)ITI2fv$xALih9ckp{S_&puG>~G?5bk)lKCdH3% zu5)h(FZ-wTI%WTq;`ec`b6*F)pMy(fW?nM)>8h3eU+mCT(<qc&XTi&UG420g=e`ed z@P|71(GLDF2Y<MOKf=Mg9sC#vU+LhFbnr(xc-e2L<94jmzwA%c{;Qn+$2s`%4t|1z zm;IG`-?G0_@sphEob2Fh9K6TDdmVhOgZDZ3ItO3x;2Ru#ql0g9@KYT8u@1i3!OMPO z9skpu{$+o$_CMX}e};pf>EK%&e5-@^JNQ`+ezt?3<KP1hey)R`=iu8M{Co$$z`?gW z_znkuyo2v_@IeRP<=_`O_(cw0jw{ghbFtI^i4OiG2iIsuUNil`{_pgEii1DZ!Rrow zse?Bhe8|Cv9el*Wn+`te;A0NH+re87{xk>Q<KW{CKH=b#4nF1J(++-_gU>kltb@-v z_`HMfb?|)-zTd$QIQY{Y{22~@xr0B`!LM-eXF2$lCH%$*G8*;y5x=W#$R7y)f)ak> zgV_ItC7kD%t*pH$;*YWG%nJVEh~LNXX9)h1h~L}r=L&vR#6$nr2>#NDKfwC`t%H9> z@R!B@E3N-w59V|Je#DP6yvM<xB>2^_e|Vmk2>$YjKQug#;ID}IJq`b&ga2IcSH}L~ zI;TE_&soNwE%+bA{^9!9IQaVne|791uK#fd|98P(Tk8K{d~s#1j6Xr}KZ^as^IYNJ zZx;M@u|NKl&kr5^)T4RdKaTy^TK^jye9Obw|Mjtdc%ESge~#d9i2cL!{Go&Yh2U>2 z_5Y!RuYEY5=S{JH*cab)@Yg(o{ofM%hvy&buEsYUL;S6!{&&NIufjhk_}gOt@V;+< zB>R`~XFQ7dJ7WLvJm)>S8h_}q#Q(h1|GymkZ!sV%YuCp9;d$=Aiuga4@NI&Z`@co- zca{1xG-_q-#uC0k@N)l`3w~Xx|Cb&7gyVVrcbEF_ckqu2{+`(X-L{@za{{kZ##<*6 ze{bv`#^+rQ{v*NPU+TYcHLvrDh=+Z2kCTX(`)?Qg1F?U&?`s6VCE{D{`LB2SA9^yc ze|_wKg!Ml~@V_hJQ-Xgm;v231Rf69T@hQW<1^h_+J^kl42fx=EKF^2Zb^d0Berq%E zV^(B&K!@4IE|&hEjQzJ6J}dZ55kJT9s|Ej5#4j=Y-vs~Hh==j~zTp2BacmR$9Nxp{ z{9MGl4S%%YpN}}Up?oF;|6;_$^<N?QS0esm>;HAZzZP+jefgZw%lrOE37--Cn-LHE z^n-$bC*mN3^7)zI{}u5)hM$Fnx3c!Vh==>WLh$dG@P8Nlhb8>jK3?ZX5g)hf4+#E~ zh+k;<D+T{n#J3xMli)W;Jgnz$0zcCFr2lNed{yCZL8tp9^}xSmSNySD|7Y>~VO|bd z$LG%itUq8kSts}}O8w6iJgXzxvi?sMJgXzR+3>dsem7g)c3v0S{sVZ`^MB95f9l}9 z>#MJ`1^CL^UE_Vb?RlOl_+b$beB_@5FVp!I8+e_perf2xL+~;^e}Uj-`u0Q+kd?K2 z#QTPEJ9!iF!y^vzD4z$MLi~t`hxNQm@T}hHRo4G+1uyUGn+3mbyiS<+9}8YyZ})mE z@B6^mKhVk31<&f8f_=!RA^81c{~d-uTkuCje1)x~U04_^Yi0UyK=4P#{tvb5yjk!v zo&SX3kBR-mbKd<_UVl}@!*i||Jgb8mo^wd>FUNHru5+E>WqMURjn_XuULWL3KC1*j zDdK@XZx{T;hzI(-U+}CB>X~+(uL|B9`wtra-pBF2eGxy)@E4y>JgbAc%J5GJp4CBp zxZ(FWgZ;l-df&4IKP6s2yw_gAH%I(KcAYN^ep<u>zqs3(y#C`Nejn@qCBaXR`1yw4 zZ43Kn^--}M<a4&*S$))7?TMcy_*wBfd#(Ss1V1O@Sl;rv4+!bX+E4A<c5Vh*b_rgl zhYi8Ax~XBmKTq&7J$!}W+v0sg|Mv=hTfFa4_B>w{{Ff0A<MT_we-&|%Bl$d{pU+>W z&x3+z^;*OD?-M+$*ZOL^&PN5$>b3r(;rGNsT3H*6&mY$RfZ%01`5M8?^zfU4?~2z6 z@Ada*^ZFM?9DmAZB{o78{XY))%Gwi3{Z|bTFVn+O!JioWV;RWj!-8k^V83qorgM3n ztRC$94F5~PkBZj`^ye!Mey{U*oqFt#Z7ZM03SOqSPZqop`-7dy=f#4T>E}BHACCQx zwf-Lx{2>v4h~eLM@WVlfR@Sn*)8RU69DJ99?|1NP1kdVMhwJ~fgMZS&zwO{P5Q>$x zW_(|WG4gq(;A0Vom?xhD7qEXT;useBJOzT*%G!LygQf3hg71s?Gi?X{FBrti+JT6N zabEv;;>SchtdnWMv%0kbe}U8g9|X_p--h+`zk-+f;A3|3zR!yH4eMt_@G@V!TJUGb z{$XC;EqIxKeNphNE-t1+K6eKLf?Y0N=V69lDEJE^j_oF&zYzRI5&xCp8+Y+KSzX-l zJTDeJtBZS-_5YCIFN@a+<NtHPUmo$_v;ONZ<n><}@uuO=68sM$9<G0*;8~s9@ci8u z@j6*u+(1uWBKRN0>jcaA!=AwY*F-$<>$3&_lZc1=zFhFvM?75rlY*D|;1L(|`hObx z-)ir*LGV9|_*%n<1b=hHF<kO_3-Bs>`+n*F*4RJH%YQljf9~LSe<Gi=%&*T7{O$4j z-S#{$68s$z|Fq%vdlIj6ZN$U#3<`d3!~>stk>F*1{Z7HleEHLYXLWkRymvjB_bv0& z#|WO)?;Wz|e45}{{oWqK-za!izqiluPYIsY?+x$uJ;C1<-|G_Ve>{F!S^Gf5u|4H; zf#6#8g1~1Ku3abi2V?(m{l9n$uk-g2f2Z|d^;F{j5OGY0d|oH`ha>)d!yi&-|Bps| z$nXmVzcJ#c8U6g2;Gc;2%dP*GOL?6#-@Huln_~ZytpA$?|767PZTM#d&+7U<#PBCK zc>Pbu{+kW|k>H<+cvx>=9%BDJ5x=MP?;5VgR|!5I`#;qBKgq$b5_~fDKf(Hc#KCV9 zd^+|I*Izxt=PBb)6?`W45BuU;!DmbOe>?aZ5X_aexl;cr2Y;8~pN;*)_#ZyX>wGTa zLH`;N{0k8e&-o6)zZmgH*!X-;@GnPv-0;>Iudmfz2!-)^w%}il{lohCs^De5|BT($ z^zg5NudHSDlV4-^eMO7-H{$if`#$1n#J?NyW3B(J;I~HnzJ@=15Bq0zj{`kF1~0g> zR+a~zEO=HAIlS+T;6IGl59{^~f|uox_X)1mZ}=!-eEvu9AIIy2{dMvLpXWId5A!u8 z_)j7p_{+6||1{ztNAmfJ;AOeuQIouWS+1BC{O9pH;l2J+@LxoH$gckj!EcNB(e~T# zPx1O?dE;w>|0?zm^Vm1d{=bg+5qAA?!LKgi?+_dzYWCS=|Nf8QS$*c9x1MqtuV0p1 z_6dGyyiU09hXub&#KSmr&G0%|-R6yU-zx;ad+fi(@K*_bξ4?Q4RU<&cNZ^7>ib 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%0DdpP|5)Ld3%HZh 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 I_~7dQKTdJGwg3PC literal 0 HcmV?d00001 diff --git a/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/CXX.includecache b/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/CXX.includecache new file mode 100644 index 00000000..64832225 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/CXX.includecache @@ -0,0 +1,20 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week02/347_topKFrequent.cpp +iostream +- +vector +- +unordered_map +- +algorithm +- +queue +- + diff --git a/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/DependInfo.cmake b/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/DependInfo.cmake new file mode 100644 index 00000000..f3089f4a --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week02/347_topKFrequent.cpp" "/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/build.make b/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/build.make new file mode 100644 index 00000000..22c4989b --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week02 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week02/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/347_topKFrequent.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/347_topKFrequent.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/347_topKFrequent.dir/flags.make + +CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.o: CMakeFiles/347_topKFrequent.dir/flags.make +CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.o: ../347_topKFrequent.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.o -c /home/lewang/algorithm018/week02/347_topKFrequent.cpp + +CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week02/347_topKFrequent.cpp > CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.i + +CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week02/347_topKFrequent.cpp -o CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.s + +# Object files for target 347_topKFrequent +347_topKFrequent_OBJECTS = \ +"CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.o" + +# External object files for target 347_topKFrequent +347_topKFrequent_EXTERNAL_OBJECTS = + +347_topKFrequent: CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.o +347_topKFrequent: CMakeFiles/347_topKFrequent.dir/build.make +347_topKFrequent: CMakeFiles/347_topKFrequent.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 347_topKFrequent" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/347_topKFrequent.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/347_topKFrequent.dir/build: 347_topKFrequent + +.PHONY : CMakeFiles/347_topKFrequent.dir/build + +CMakeFiles/347_topKFrequent.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/347_topKFrequent.dir/cmake_clean.cmake +.PHONY : CMakeFiles/347_topKFrequent.dir/clean + +CMakeFiles/347_topKFrequent.dir/depend: + cd /home/lewang/algorithm018/week02/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week02 /home/lewang/algorithm018/week02 /home/lewang/algorithm018/week02/cmake-build-debug /home/lewang/algorithm018/week02/cmake-build-debug /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/347_topKFrequent.dir/depend + diff --git a/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/cmake_clean.cmake b/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/cmake_clean.cmake new file mode 100644 index 00000000..93317d82 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.o" + "347_topKFrequent.pdb" + "347_topKFrequent" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/347_topKFrequent.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/depend.internal b/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/depend.internal new file mode 100644 index 00000000..6d9d2d3c --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.o + /home/lewang/algorithm018/week02/347_topKFrequent.cpp diff --git a/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/depend.make b/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/depend.make new file mode 100644 index 00000000..4ceb34b0 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.o: ../347_topKFrequent.cpp + diff --git a/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/flags.make b/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/link.txt b/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/link.txt new file mode 100644 index 00000000..9f5ed674 --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.o -o 347_topKFrequent diff --git a/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/progress.make b/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week02/cmake-build-debug/CMakeFiles/Makefile.cmake b/week02/cmake-build-debug/CMakeFiles/Makefile.cmake index 04c8fe9b..436e2cc9 100644 --- a/week02/cmake-build-debug/CMakeFiles/Makefile.cmake +++ b/week02/cmake-build-debug/CMakeFiles/Makefile.cmake @@ -46,5 +46,5 @@ set(CMAKE_MAKEFILE_PRODUCTS # Dependency information for all targets: set(CMAKE_DEPEND_INFO_FILES - "CMakeFiles/49_UglyNumber.dir/DependInfo.cmake" + "CMakeFiles/347_topKFrequent.dir/DependInfo.cmake" ) diff --git a/week02/cmake-build-debug/CMakeFiles/Makefile2 b/week02/cmake-build-debug/CMakeFiles/Makefile2 index b0c7adb7..26d54a4e 100644 --- a/week02/cmake-build-debug/CMakeFiles/Makefile2 +++ b/week02/cmake-build-debug/CMakeFiles/Makefile2 @@ -65,39 +65,39 @@ CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week02 CMAKE_BINARY_DIR = /home/lewang/algorithm018/week02/cmake-build-debug #============================================================================= -# Target rules for target CMakeFiles/49_UglyNumber.dir +# Target rules for target CMakeFiles/347_topKFrequent.dir # All Build rule for target. -CMakeFiles/49_UglyNumber.dir/all: - $(MAKE) -f CMakeFiles/49_UglyNumber.dir/build.make CMakeFiles/49_UglyNumber.dir/depend - $(MAKE) -f CMakeFiles/49_UglyNumber.dir/build.make CMakeFiles/49_UglyNumber.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target 49_UglyNumber" -.PHONY : CMakeFiles/49_UglyNumber.dir/all +CMakeFiles/347_topKFrequent.dir/all: + $(MAKE) -f CMakeFiles/347_topKFrequent.dir/build.make CMakeFiles/347_topKFrequent.dir/depend + $(MAKE) -f CMakeFiles/347_topKFrequent.dir/build.make CMakeFiles/347_topKFrequent.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target 347_topKFrequent" +.PHONY : CMakeFiles/347_topKFrequent.dir/all # Include target in all. -all: CMakeFiles/49_UglyNumber.dir/all +all: CMakeFiles/347_topKFrequent.dir/all .PHONY : all # Build rule for subdir invocation for target. -CMakeFiles/49_UglyNumber.dir/rule: cmake_check_build_system +CMakeFiles/347_topKFrequent.dir/rule: cmake_check_build_system $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles 2 - $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/49_UglyNumber.dir/all + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/347_topKFrequent.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles 0 -.PHONY : CMakeFiles/49_UglyNumber.dir/rule +.PHONY : CMakeFiles/347_topKFrequent.dir/rule # Convenience name for target. -49_UglyNumber: CMakeFiles/49_UglyNumber.dir/rule +347_topKFrequent: CMakeFiles/347_topKFrequent.dir/rule -.PHONY : 49_UglyNumber +.PHONY : 347_topKFrequent # clean rule for target. -CMakeFiles/49_UglyNumber.dir/clean: - $(MAKE) -f CMakeFiles/49_UglyNumber.dir/build.make CMakeFiles/49_UglyNumber.dir/clean -.PHONY : CMakeFiles/49_UglyNumber.dir/clean +CMakeFiles/347_topKFrequent.dir/clean: + $(MAKE) -f CMakeFiles/347_topKFrequent.dir/build.make CMakeFiles/347_topKFrequent.dir/clean +.PHONY : CMakeFiles/347_topKFrequent.dir/clean # clean rule for target. -clean: CMakeFiles/49_UglyNumber.dir/clean +clean: CMakeFiles/347_topKFrequent.dir/clean .PHONY : clean diff --git a/week02/cmake-build-debug/CMakeFiles/TargetDirectories.txt b/week02/cmake-build-debug/CMakeFiles/TargetDirectories.txt index 97dda83c..97aa6ba6 100644 --- a/week02/cmake-build-debug/CMakeFiles/TargetDirectories.txt +++ b/week02/cmake-build-debug/CMakeFiles/TargetDirectories.txt @@ -1,3 +1,3 @@ /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/rebuild_cache.dir -/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/49_UglyNumber.dir +/home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/347_topKFrequent.dir /home/lewang/algorithm018/week02/cmake-build-debug/CMakeFiles/edit_cache.dir diff --git a/week02/cmake-build-debug/Makefile b/week02/cmake-build-debug/Makefile index 3b1bfb1d..705061af 100644 --- a/week02/cmake-build-debug/Makefile +++ b/week02/cmake-build-debug/Makefile @@ -111,44 +111,44 @@ depend: .PHONY : depend #============================================================================= -# Target rules for targets named 49_UglyNumber +# Target rules for targets named 347_topKFrequent # Build rule for target. -49_UglyNumber: cmake_check_build_system - $(MAKE) -f CMakeFiles/Makefile2 49_UglyNumber -.PHONY : 49_UglyNumber +347_topKFrequent: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 347_topKFrequent +.PHONY : 347_topKFrequent # fast build rule for target. -49_UglyNumber/fast: - $(MAKE) -f CMakeFiles/49_UglyNumber.dir/build.make CMakeFiles/49_UglyNumber.dir/build -.PHONY : 49_UglyNumber/fast +347_topKFrequent/fast: + $(MAKE) -f CMakeFiles/347_topKFrequent.dir/build.make CMakeFiles/347_topKFrequent.dir/build +.PHONY : 347_topKFrequent/fast -49_UglyNumber.o: 49_UglyNumber.cpp.o +347_topKFrequent.o: 347_topKFrequent.cpp.o -.PHONY : 49_UglyNumber.o +.PHONY : 347_topKFrequent.o # target to build an object file -49_UglyNumber.cpp.o: - $(MAKE) -f CMakeFiles/49_UglyNumber.dir/build.make CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.o -.PHONY : 49_UglyNumber.cpp.o +347_topKFrequent.cpp.o: + $(MAKE) -f CMakeFiles/347_topKFrequent.dir/build.make CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.o +.PHONY : 347_topKFrequent.cpp.o -49_UglyNumber.i: 49_UglyNumber.cpp.i +347_topKFrequent.i: 347_topKFrequent.cpp.i -.PHONY : 49_UglyNumber.i +.PHONY : 347_topKFrequent.i # target to preprocess a source file -49_UglyNumber.cpp.i: - $(MAKE) -f CMakeFiles/49_UglyNumber.dir/build.make CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.i -.PHONY : 49_UglyNumber.cpp.i +347_topKFrequent.cpp.i: + $(MAKE) -f CMakeFiles/347_topKFrequent.dir/build.make CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.i +.PHONY : 347_topKFrequent.cpp.i -49_UglyNumber.s: 49_UglyNumber.cpp.s +347_topKFrequent.s: 347_topKFrequent.cpp.s -.PHONY : 49_UglyNumber.s +.PHONY : 347_topKFrequent.s # target to generate assembly for a file -49_UglyNumber.cpp.s: - $(MAKE) -f CMakeFiles/49_UglyNumber.dir/build.make CMakeFiles/49_UglyNumber.dir/49_UglyNumber.cpp.s -.PHONY : 49_UglyNumber.cpp.s +347_topKFrequent.cpp.s: + $(MAKE) -f CMakeFiles/347_topKFrequent.dir/build.make CMakeFiles/347_topKFrequent.dir/347_topKFrequent.cpp.s +.PHONY : 347_topKFrequent.cpp.s # Help Target help: @@ -157,11 +157,11 @@ help: @echo "... clean" @echo "... depend" @echo "... rebuild_cache" - @echo "... 49_UglyNumber" + @echo "... 347_topKFrequent" @echo "... edit_cache" - @echo "... 49_UglyNumber.o" - @echo "... 49_UglyNumber.i" - @echo "... 49_UglyNumber.s" + @echo "... 347_topKFrequent.o" + @echo "... 347_topKFrequent.i" + @echo "... 347_topKFrequent.s" .PHONY : help diff --git a/week02/cmake-build-debug/week02.cbp b/week02/cmake-build-debug/week02.cbp index 8cff286e..bb89a910 100644 --- a/week02/cmake-build-debug/week02.cbp +++ b/week02/cmake-build-debug/week02.cbp @@ -27,8 +27,8 @@ <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 clean"/> </MakeCommands> </Target> - <Target title="49_UglyNumber"> - <Option output="/home/lewang/algorithm018/week02/cmake-build-debug/49_UglyNumber" prefix_auto="0" extension_auto="0"/> + <Target title="347_topKFrequent"> + <Option output="/home/lewang/algorithm018/week02/cmake-build-debug/347_topKFrequent" prefix_auto="0" extension_auto="0"/> <Option working_dir="/home/lewang/algorithm018/week02/cmake-build-debug"/> <Option object_output="./"/> <Option type="1"/> @@ -44,14 +44,14 @@ <Add directory="/usr/include"/> </Compiler> <MakeCommands> - <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 49_UglyNumber"/> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 347_topKFrequent"/> <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 clean"/> <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 clean"/> </MakeCommands> </Target> - <Target title="49_UglyNumber/fast"> - <Option output="/home/lewang/algorithm018/week02/cmake-build-debug/49_UglyNumber" prefix_auto="0" extension_auto="0"/> + <Target title="347_topKFrequent/fast"> + <Option output="/home/lewang/algorithm018/week02/cmake-build-debug/347_topKFrequent" prefix_auto="0" extension_auto="0"/> <Option working_dir="/home/lewang/algorithm018/week02/cmake-build-debug"/> <Option object_output="./"/> <Option type="1"/> @@ -67,7 +67,7 @@ <Add directory="/usr/include"/> </Compiler> <MakeCommands> - <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 49_UglyNumber/fast"/> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 347_topKFrequent/fast"/> <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 clean"/> <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week02/cmake-build-debug/Makefile" VERBOSE=1 clean"/> @@ -84,8 +84,8 @@ </MakeCommands> </Target> </Build> - <Unit filename="/home/lewang/algorithm018/week02/49_UglyNumber.cpp"> - <Option target="49_UglyNumber"/> + <Unit filename="/home/lewang/algorithm018/week02/347_topKFrequent.cpp"> + <Option target="347_topKFrequent"/> </Unit> <Unit filename="/home/lewang/algorithm018/week02/CMakeLists.txt"> <Option virtualFolder="CMake Files\"/> diff --git "a/week02/\346\234\254\345\221\250\344\275\234\344\270\232.md" "b/week02/\346\234\254\345\221\250\344\275\234\344\270\232.md" index 660a09db..2e923f09 100644 --- "a/week02/\346\234\254\345\221\250\344\275\234\344\270\232.md" +++ "b/week02/\346\234\254\345\221\250\344\275\234\344\270\232.md" @@ -24,7 +24,7 @@ Facebook、苹果、微软、腾讯也在近半年内面试常考)√ - [N 叉树的层序遍历](https://leetcode-cn.com/problems/n-ary-tree-level-order-traversal/) (亚马逊在半年内面试中考过)√ - [丑数](https://leetcode-cn.com/problems/chou-shu-lcof/) -(字节跳动在半年内面试中考过) +(字节跳动在半年内面试中考过)√ - [前 K 个高频元素](https://leetcode-cn.com/problems/top-k-frequent-elements/) (亚马逊在半年内面试中常考) From b8ac26a7a38b9283053d879ba3d78dbebad201f6 Mon Sep 17 00:00:00 2001 From: Ella2le <1071444737@qq.com> Date: Sun, 1 Nov 2020 23:18:36 +0800 Subject: [PATCH 12/21] some preview --- .idea/workspace.xml | 122 +++++++++--------- week02/22_generateParenthesis.cpp | 32 +++++ week02/50_pow.cpp | 37 ++++++ week02/70_climbStairs.cpp | 17 +++ ...54\345\221\250\344\275\234\344\270\232.md" | 4 +- 5 files changed, 149 insertions(+), 63 deletions(-) create mode 100644 week02/22_generateParenthesis.cpp create mode 100644 week02/50_pow.cpp create mode 100644 week02/70_climbStairs.cpp diff --git a/.idea/workspace.xml b/.idea/workspace.xml index 9037a5cb..08d42bae 100644 --- a/.idea/workspace.xml +++ b/.idea/workspace.xml @@ -12,18 +12,10 @@ </component> <component name="ChangeListManager"> <list default="true" id="74405890-5d28-471b-b0d6-892392ac75d9" name="Default Changelist" comment=""> - <change afterPath="$PROJECT_DIR$/week02/347_topKFrequent.cpp" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/.idea/algorithm018.iml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/algorithm018.iml" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/.idea/leetcode/editor.xml" beforeDir="false" /> - <change beforePath="$PROJECT_DIR$/.idea/markdown-navigator.xml" beforeDir="false" /> - <change beforePath="$PROJECT_DIR$/.idea/misc.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/misc.xml" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/week02/22_generateParenthesis.cpp" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/week02/50_pow.cpp" afterDir="false" /> + <change afterPath="$PROJECT_DIR$/week02/70_climbStairs.cpp" afterDir="false" /> <change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week02/CMakeLists.txt" beforeDir="false" afterPath="$PROJECT_DIR$/week02/CMakeLists.txt" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week02/cmake-build-debug/CMakeFiles/Makefile.cmake" beforeDir="false" afterPath="$PROJECT_DIR$/week02/cmake-build-debug/CMakeFiles/Makefile.cmake" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week02/cmake-build-debug/CMakeFiles/Makefile2" beforeDir="false" afterPath="$PROJECT_DIR$/week02/cmake-build-debug/CMakeFiles/Makefile2" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week02/cmake-build-debug/CMakeFiles/TargetDirectories.txt" beforeDir="false" afterPath="$PROJECT_DIR$/week02/cmake-build-debug/CMakeFiles/TargetDirectories.txt" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week02/cmake-build-debug/Makefile" beforeDir="false" afterPath="$PROJECT_DIR$/week02/cmake-build-debug/Makefile" afterDir="false" /> - <change beforePath="$PROJECT_DIR$/week02/cmake-build-debug/week02.cbp" beforeDir="false" afterPath="$PROJECT_DIR$/week02/cmake-build-debug/week02.cbp" afterDir="false" /> <change beforePath="$PROJECT_DIR$/week02/本周作业.md" beforeDir="false" afterPath="$PROJECT_DIR$/week02/本周作业.md" afterDir="false" /> </list> <ignored path="$PROJECT_DIR$/week02/cmake-build-debug/" /> @@ -40,63 +32,46 @@ <entry file="file://$PROJECT_DIR$/week02/本周作业.md"> <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> <state split_layout="SPLIT"> - <first_editor relative-caret-position="468"> - <caret line="32" column="9" selection-start-line="32" selection-start-column="9" selection-end-line="32" selection-end-column="9" /> + <first_editor relative-caret-position="449"> + <caret line="34" column="28" selection-start-line="34" selection-start-column="28" selection-end-line="34" selection-end-column="28" /> </first_editor> <second_editor /> </state> </provider> </entry> </file> - <file pinned="false" current-in-tab="true"> - <entry file="file://$PROJECT_DIR$/week02/347_topKFrequent.cpp"> - <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="74"> - <caret line="31" column="28" selection-start-line="31" selection-start-column="28" selection-end-line="31" selection-end-column="28" /> - <folding> - <element signature="e#40#59#0" expanded="true" /> - </folding> - </state> - </provider> - </entry> - </file> <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/week02/49_grouppAnagrams.cpp"> + <entry file="file://$PROJECT_DIR$/week02/70_climbStairs.cpp"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="509"> - <caret line="35" selection-start-line="35" selection-end-line="35" /> - <folding> - <element signature="e#88#107#0" expanded="true" /> - </folding> + <state relative-caret-position="270"> + <caret line="15" column="5" lean-forward="true" selection-start-line="15" selection-start-column="5" selection-end-line="15" selection-end-column="5" /> </state> </provider> </entry> </file> <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/week02/CMakeLists.txt"> + <entry file="file://$PROJECT_DIR$/week02/22_generateParenthesis.cpp"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="126"> - <caret line="7" column="32" selection-start-line="7" selection-start-column="32" selection-end-line="7" selection-end-column="32" /> + <state relative-caret-position="144"> + <caret line="8" column="5" selection-start-line="8" selection-start-column="5" selection-end-line="8" selection-end-column="5" /> </state> </provider> </entry> </file> - <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/week02/HeapSort.md"> - <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> - <state split_layout="SPLIT"> - <first_editor /> - <second_editor /> + <file pinned="false" current-in-tab="true"> + <entry file="file://$PROJECT_DIR$/week02/50_pow.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="490"> + <caret line="35" column="5" selection-start-line="35" selection-start-column="5" selection-end-line="35" selection-end-column="5" /> </state> </provider> </entry> </file> <file pinned="false" current-in-tab="false"> - <entry file="file://$PROJECT_DIR$/week02/Hasmap_summary.md"> - <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> - <state split_layout="SPLIT"> - <first_editor /> - <second_editor /> + <entry file="file://$PROJECT_DIR$/week02/CMakeLists.txt"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="126"> + <caret line="7" column="32" selection-start-line="7" selection-start-column="32" selection-end-line="7" selection-end-column="32" /> </state> </provider> </entry> @@ -120,9 +95,13 @@ <option value="$PROJECT_DIR$/week02/144_preorderTraversal.cpp" /> <option value="$PROJECT_DIR$/week02/429_levelOrder.cpp" /> <option value="$PROJECT_DIR$/week02/49_UglyNumber.cpp" /> - <option value="$PROJECT_DIR$/week02/本周作业.md" /> <option value="$PROJECT_DIR$/week02/CMakeLists.txt" /> <option value="$PROJECT_DIR$/week02/347_topKFrequent.cpp" /> + <option value="$PROJECT_DIR$/week02/本周作业.md" /> + <option value="$PROJECT_DIR$/week02/climbStairs.cpp" /> + <option value="$PROJECT_DIR$/week02/70_climbStairs.cpp" /> + <option value="$PROJECT_DIR$/week02/22_generateParenthesis.cpp" /> + <option value="$PROJECT_DIR$/week02/50_pow.cpp" /> </list> </option> </component> @@ -198,25 +177,25 @@ <option name="presentableId" value="Default" /> <updated>1604196033828</updated> <workItem from="1604196035098" duration="1161000" /> - <workItem from="1604198784084" duration="26983000" /> + <workItem from="1604198784084" duration="31376000" /> </task> <servers /> </component> <component name="TimeTrackingManager"> - <option name="totallyTimeSpent" value="28144000" /> + <option name="totallyTimeSpent" value="32537000" /> </component> <component name="ToolWindowManager"> <frame x="67" y="25" width="1853" height="1055" extended-state="6" /> <editor active="true" /> <layout> - <window_info content_ui="combo" id="Project" order="0" visible="true" weight="0.25389755" /> + <window_info active="true" content_ui="combo" id="Project" order="0" visible="true" weight="0.25389755" /> <window_info id="Structure" order="1" side_tool="true" weight="0.25" /> <window_info id="Favorites" order="2" side_tool="true" /> <window_info anchor="bottom" id="Messages" weight="0.3289183" /> <window_info anchor="bottom" id="CMake" /> <window_info anchor="bottom" id="Message" order="0" /> <window_info anchor="bottom" id="Find" order="1" /> - <window_info active="true" anchor="bottom" id="Run" order="2" visible="true" weight="0.21081677" /> + <window_info anchor="bottom" id="Run" order="2" visible="true" weight="0.21081677" /> <window_info anchor="bottom" id="Debug" order="3" weight="0.4" /> <window_info anchor="bottom" id="Cvs" order="4" weight="0.25" /> <window_info anchor="bottom" id="Inspection" order="5" weight="0.4" /> @@ -376,16 +355,6 @@ </state> </provider> </entry> - <entry file="file://$PROJECT_DIR$/week02/本周作业.md"> - <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> - <state split_layout="SPLIT"> - <first_editor relative-caret-position="468"> - <caret line="32" column="9" selection-start-line="32" selection-start-column="9" selection-end-line="32" selection-end-column="9" /> - </first_editor> - <second_editor /> - </state> - </provider> - </entry> <entry file="file://$PROJECT_DIR$/week02/CMakeLists.txt"> <provider selected="true" editor-type-id="text-editor"> <state relative-caret-position="126"> @@ -395,7 +364,7 @@ </entry> <entry file="file://$PROJECT_DIR$/week02/347_topKFrequent.cpp"> <provider selected="true" editor-type-id="text-editor"> - <state relative-caret-position="74"> + <state relative-caret-position="128"> <caret line="31" column="28" selection-start-line="31" selection-start-column="28" selection-end-line="31" selection-end-column="28" /> <folding> <element signature="e#40#59#0" expanded="true" /> @@ -403,6 +372,37 @@ </state> </provider> </entry> + <entry file="file://$PROJECT_DIR$/week02/70_climbStairs.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="270"> + <caret line="15" column="5" lean-forward="true" selection-start-line="15" selection-start-column="5" selection-end-line="15" selection-end-column="5" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week02/本周作业.md"> + <provider selected="true" editor-type-id="split-provider[text-editor;markdown-preview-editor]"> + <state split_layout="SPLIT"> + <first_editor relative-caret-position="449"> + <caret line="34" column="28" selection-start-line="34" selection-start-column="28" selection-end-line="34" selection-end-column="28" /> + </first_editor> + <second_editor /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week02/22_generateParenthesis.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="144"> + <caret line="8" column="5" selection-start-line="8" selection-start-column="5" selection-end-line="8" selection-end-column="5" /> + </state> + </provider> + </entry> + <entry file="file://$PROJECT_DIR$/week02/50_pow.cpp"> + <provider selected="true" editor-type-id="text-editor"> + <state relative-caret-position="490"> + <caret line="35" column="5" selection-start-line="35" selection-start-column="5" selection-end-line="35" selection-end-column="5" /> + </state> + </provider> + </entry> </component> <component name="masterDetails"> <states> diff --git a/week02/22_generateParenthesis.cpp b/week02/22_generateParenthesis.cpp new file mode 100644 index 00000000..26040b83 --- /dev/null +++ b/week02/22_generateParenthesis.cpp @@ -0,0 +1,32 @@ +// +// Created by lewang on 11/1/20. +// + +#include <iostream> +#include <string> +#include <vector> +#include <stacak> +//回溯? +class Solution { +public: + vector<string> generateParenthesis(int n) { + vector<string> res; + int lc = 0,rc = 0; + dfs(res,"",n,lc,rc); + return res; + } +private: + void dfs(vector<string>& res, string path, int n, int lc, int rc){ + if(rc>lc || lc > n || rc > n) return; + if(lc == rc && lc == n){ + res.push_back(path); + return; + } + dfs(res,path+'(',n,lc+1,rc); + dfs(res,path+')',n,lc,rc+1); + } +}; + +int main(){ + +} \ No newline at end of file diff --git a/week02/50_pow.cpp b/week02/50_pow.cpp new file mode 100644 index 00000000..6bec2448 --- /dev/null +++ b/week02/50_pow.cpp @@ -0,0 +1,37 @@ +// +// Created by lewang on 11/1/20. +// + +//暴力法 会超时 +class Solution { +public: + double myPow(double x, int n) { + if(n == 0) return 1.; + double a = abs(n); + double p = 1.; + for (int i = 0; i < a; ++i) { + p*=x; + } + + + if(n>0){ + return p; + }else{ + return double(1/p); + } + + } + + //快速幂 + double quickMul(double x, long long N){ + if(N == 0){ + return 1.0; + } + double y = quickMul(x,N/2); + return N%2 == 0? y*y: y*y*x; + } + double myPow(double x, int n) { + long long N = n; + return N>=0 ? quickMul(x,N) : 1.0/quickMul(x,-N); + } +}; \ No newline at end of file diff --git a/week02/70_climbStairs.cpp b/week02/70_climbStairs.cpp new file mode 100644 index 00000000..89dac14e --- /dev/null +++ b/week02/70_climbStairs.cpp @@ -0,0 +1,17 @@ +// +// Created by lewang on 11/1/20. +// + +class Solution { +public: + int climbStairs(int n) { + vector<int> dp(n+3); + dp[1]=1;//爬到1阶有一种方法 + dp[2]=2;//爬到2阶有2种方法 + //爬到n阶的方法等于,爬到你n-1和n-2的方法的和 + for (int i = 3; i <= n; ++i) { + dp[i] = dp[i-1] + dp[i-2]; + } + return dp[n]; + } +}; diff --git "a/week02/\346\234\254\345\221\250\344\275\234\344\270\232.md" "b/week02/\346\234\254\345\221\250\344\275\234\344\270\232.md" index 2e923f09..ede50088 100644 --- "a/week02/\346\234\254\345\221\250\344\275\234\344\270\232.md" +++ "b/week02/\346\234\254\345\221\250\344\275\234\344\270\232.md" @@ -26,13 +26,13 @@ Facebook、苹果、微软、腾讯也在近半年内面试常考)√ - [丑数](https://leetcode-cn.com/problems/chou-shu-lcof/) (字节跳动在半年内面试中考过)√ - [前 K 个高频元素](https://leetcode-cn.com/problems/top-k-frequent-elements/) -(亚马逊在半年内面试中常考) +(亚马逊在半年内面试中常考)√ ## 下周预习 ### 预习题目: -- [爬楼梯](https://leetcode-cn.com/problems/climbing-stairs/) +- [爬楼梯](https://leetcode-cn .com/problems/climbing-stairs/) - [括号生成](https://leetcode-cn.com/problems/generate-parentheses/) - [Pow(x, n)](https://leetcode-cn.com/problems/powx-n/) - [子集](https://leetcode-cn.com/problems/subsets/) From 8b3da6d898d4a59d81c6bca5e8d187941251d80b Mon Sep 17 00:00:00 2001 From: Ella2le <1071444737@qq.com> Date: Sun, 8 Nov 2020 00:20:37 +0800 Subject: [PATCH 13/21] do week3 homework --- .../pip/_vendor/webencodings/tests.py | 2 +- week02/22_generateParenthesis.cpp | 1 + week02/51_nQueens.cpp | 67 ++ week02/Hasmap_summary.md | 65 ++ week03/105_buildTree.cpp | 77 +++ week03/122_maxProfit.cpp | 18 + week03/1356_sortBits.cpp | 56 ++ week03/22_generateParenthesis.cpp | 54 ++ week03/236_lowestCommonAncestor.cpp | 31 + week03/367_isPerfectSquare.cpp | 61 ++ week03/455_findContentChildren.cpp | 25 + week03/46_permute.cpp | 80 +++ week03/47_permuteUnique.cpp | 45 ++ week03/69_mysqrt.cpp | 28 + week03/77_combine.cpp | 64 ++ week03/CMakeLists.txt | 8 + week03/NOTE.md | 92 ++- week03/cmake-build-debug/1356_sortBits | Bin 0 -> 378472 bytes .../cmake-build-debug/22_generateParenthesis | Bin 0 -> 134864 bytes week03/cmake-build-debug/CMakeCache.txt | 380 +++++++++++ .../105_buildTree.dir/105_buildTree.cpp.o | Bin 0 -> 32792 bytes .../105_buildTree.dir/CXX.includecache | 16 + .../105_buildTree.dir/DependInfo.cmake | 20 + .../CMakeFiles/105_buildTree.dir/build.make | 98 +++ .../105_buildTree.dir/cmake_clean.cmake | 10 + .../105_buildTree.dir/depend.internal | 5 + .../CMakeFiles/105_buildTree.dir/depend.make | 5 + .../CMakeFiles/105_buildTree.dir/flags.make | 10 + .../CMakeFiles/105_buildTree.dir/link.txt | 1 + .../105_buildTree.dir/progress.make | 3 + .../1356_sortBits.dir/1356_sortBits.cpp.o | Bin 0 -> 612608 bytes .../1356_sortBits.dir/CXX.includecache | 20 + .../1356_sortBits.dir/DependInfo.cmake | 20 + .../CMakeFiles/1356_sortBits.dir/build.make | 98 +++ .../1356_sortBits.dir/cmake_clean.cmake | 10 + .../1356_sortBits.dir/depend.internal | 5 + .../CMakeFiles/1356_sortBits.dir/depend.make | 5 + .../CMakeFiles/1356_sortBits.dir/flags.make | 10 + .../CMakeFiles/1356_sortBits.dir/link.txt | 1 + .../1356_sortBits.dir/progress.make | 3 + .../22_generateParenthesis.cpp.o | Bin 0 -> 196328 bytes .../CXX.includecache | 16 + .../DependInfo.cmake | 20 + .../22_generateParenthesis.dir/build.make | 98 +++ .../cmake_clean.cmake | 10 + .../depend.internal | 5 + .../22_generateParenthesis.dir/depend.make | 5 + .../22_generateParenthesis.dir/flags.make | 10 + .../22_generateParenthesis.dir/link.txt | 1 + .../22_generateParenthesis.dir/progress.make | 3 + .../CMakeFiles/3.13.2/CMakeCCompiler.cmake | 73 ++ .../CMakeFiles/3.13.2/CMakeCXXCompiler.cmake | 76 +++ .../3.13.2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 8464 bytes .../3.13.2/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 8472 bytes .../CMakeFiles/3.13.2/CMakeSystem.cmake | 15 + .../3.13.2/CompilerIdC/CMakeCCompilerId.c | 623 +++++++++++++++++ .../CMakeFiles/3.13.2/CompilerIdC/a.out | Bin 0 -> 8616 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 602 +++++++++++++++++ .../CMakeFiles/3.13.2/CompilerIdCXX/a.out | Bin 0 -> 8632 bytes .../CMakeDirectoryInformation.cmake | 16 + .../CMakeFiles/CMakeOutput.log | 625 ++++++++++++++++++ .../CMakeFiles/Makefile.cmake | 50 ++ week03/cmake-build-debug/CMakeFiles/Makefile2 | 113 ++++ .../CMakeFiles/TargetDirectories.txt | 3 + .../CMakeFiles/clion-environment.txt | 3 + .../CMakeFiles/clion-log.txt | 4 + .../CMakeFiles/cmake.check_cache | 1 + .../CMakeFiles/feature_tests.bin | Bin 0 -> 12520 bytes .../CMakeFiles/feature_tests.c | 34 + .../CMakeFiles/feature_tests.cxx | 405 ++++++++++++ .../CMakeFiles/progress.marks | 1 + week03/cmake-build-debug/Makefile | 178 +++++ week03/cmake-build-debug/cmake_install.cmake | 49 ++ week03/cmake-build-debug/week02.cbp | 94 +++ 74 files changed, 4625 insertions(+), 2 deletions(-) create mode 100644 week02/51_nQueens.cpp create mode 100644 week03/105_buildTree.cpp create mode 100644 week03/122_maxProfit.cpp create mode 100644 week03/1356_sortBits.cpp create mode 100644 week03/22_generateParenthesis.cpp create mode 100644 week03/236_lowestCommonAncestor.cpp create mode 100644 week03/367_isPerfectSquare.cpp create mode 100644 week03/455_findContentChildren.cpp create mode 100644 week03/46_permute.cpp create mode 100644 week03/47_permuteUnique.cpp create mode 100644 week03/69_mysqrt.cpp create mode 100644 week03/77_combine.cpp create mode 100644 week03/CMakeLists.txt create mode 100755 week03/cmake-build-debug/1356_sortBits create mode 100755 week03/cmake-build-debug/22_generateParenthesis create mode 100644 week03/cmake-build-debug/CMakeCache.txt create mode 100644 week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/105_buildTree.cpp.o create mode 100644 week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/CXX.includecache create mode 100644 week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/DependInfo.cmake create mode 100644 week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/build.make create mode 100644 week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/cmake_clean.cmake create mode 100644 week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/depend.internal create mode 100644 week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/depend.make create mode 100644 week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/flags.make create mode 100644 week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/link.txt create mode 100644 week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/progress.make create mode 100644 week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.o create mode 100644 week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/CXX.includecache create mode 100644 week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/DependInfo.cmake create mode 100644 week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/build.make create mode 100644 week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/cmake_clean.cmake create mode 100644 week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/depend.internal create mode 100644 week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/depend.make create mode 100644 week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/flags.make create mode 100644 week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/link.txt create mode 100644 week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/progress.make create mode 100644 week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/22_generateParenthesis.cpp.o create mode 100644 week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/CXX.includecache create mode 100644 week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/DependInfo.cmake create mode 100644 week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/build.make create mode 100644 week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/cmake_clean.cmake create mode 100644 week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/depend.internal create mode 100644 week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/depend.make create mode 100644 week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/flags.make create mode 100644 week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/link.txt create mode 100644 week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/progress.make create mode 100755 week03/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake create mode 100755 week03/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake create mode 100755 week03/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin create mode 100755 week03/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin create mode 100755 week03/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake create mode 100644 week03/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c create mode 100755 week03/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out create mode 100644 week03/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100755 week03/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out create mode 100644 week03/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 week03/cmake-build-debug/CMakeFiles/CMakeOutput.log create mode 100644 week03/cmake-build-debug/CMakeFiles/Makefile.cmake create mode 100644 week03/cmake-build-debug/CMakeFiles/Makefile2 create mode 100644 week03/cmake-build-debug/CMakeFiles/TargetDirectories.txt create mode 100644 week03/cmake-build-debug/CMakeFiles/clion-environment.txt create mode 100644 week03/cmake-build-debug/CMakeFiles/clion-log.txt create mode 100644 week03/cmake-build-debug/CMakeFiles/cmake.check_cache create mode 100755 week03/cmake-build-debug/CMakeFiles/feature_tests.bin create mode 100644 week03/cmake-build-debug/CMakeFiles/feature_tests.c create mode 100644 week03/cmake-build-debug/CMakeFiles/feature_tests.cxx create mode 100644 week03/cmake-build-debug/CMakeFiles/progress.marks create mode 100644 week03/cmake-build-debug/Makefile create mode 100644 week03/cmake-build-debug/cmake_install.cmake create mode 100644 week03/cmake-build-debug/week02.cbp diff --git a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/tests.py b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/tests.py index e12c10d0..1f88bd92 100644 --- a/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/tests.py +++ b/venv/Lib/site-packages/pip-10.0.1-py3.8.egg/pip/_vendor/webencodings/tests.py @@ -35,7 +35,7 @@ def test_labels(): assert lookup('utf8 ').name == 'utf-8' assert lookup(' \r\nutf8\t').name == 'utf-8' assert lookup('u8') is None # Python label. - assert lookup('utf-8 ') is None # Non-ASCII white space. + assert lookup('utf-8 ') is None # Non-ASCII white space. assert lookup('US-ASCII').name == 'windows-1252' assert lookup('iso-8859-1').name == 'windows-1252' diff --git a/week02/22_generateParenthesis.cpp b/week02/22_generateParenthesis.cpp index 26040b83..6e0eaa46 100644 --- a/week02/22_generateParenthesis.cpp +++ b/week02/22_generateParenthesis.cpp @@ -6,6 +6,7 @@ #include <string> #include <vector> #include <stacak> + //回溯? class Solution { public: diff --git a/week02/51_nQueens.cpp b/week02/51_nQueens.cpp new file mode 100644 index 00000000..8a1ca053 --- /dev/null +++ b/week02/51_nQueens.cpp @@ -0,0 +1,67 @@ +// +// Created by lewang on 11/5/20. +// + +#include <iostream> +#include <vector> +#include <string> +#include <deque> +//这题用到回溯 +//回溯: 是一种遍历算法,尝试用 深度优先算法 搜索所有结果 +//和多层循环实现的暴力搜索相比较而言,回溯一般是有方向的搜索 + + +//思路 +//皇后的排放要求, +//1.不能在同一行 +//2.不能在同一列 +//3.不能在主对角线 +//4.不能在负对角线 + +//记住皇后摆放的位置,则其所在的一个8连通的位置都不能放置皇后了 +//小技巧:设置成员变量,可以减少函数中参数的列表,当然具体的使用需要参考要求的编程规范. --> 我不喜欢 + +class Solution { +public: + vector<vector<string>> solveNQueens(int n) { + //这里一定要初始化不然会出错 + vector<vector<string>> res; + vector<int> mainDiag(2 * n, 0); + vector<int> subDiag(2 * n,0); + vector<int> col(n,0); + vector<string> ans(n,string(n,'.')); + //从第0行开始排放Queen + dfs(0,n,res,ans,col,mainDiag,subDiag); + + return res; + } + +private: + void dfs(int row, int n, vector<vector<string>>& res,vector<string> ans, vector<int> col, vector<int> mainDiag,vector<int> subDiag){ + //terminator + if(row == n){ + res.push_back(ans); + return; + } + //process + for(int i = 0; i < n; i++){ + //不同行不同列不同主副对角线 + if(!col[i] && !mainDiag[row - i + n] && !subDiag[row + i]) { + //这里注意当前行标row,减去 当前的列标col的差值可能是负数,所以需要加上n,这里n相当于方阵的维 + col[i] = mainDiag[row - i + n ] = subDiag[row + i] = 1;//将不能放的位置都设置成1,标记为不能放置 + ans[row][i] = 'Q';//在这个位置放上Q + //drill down + dfs(row+1,n,res,ans,col,mainDiag,subDiag); //深度优先搜索-- 到下一行开始搜索 + //reverse state + col[i] = mainDiag[row - i + n] = subDiag[row + i] = 0;//重置以便下次查找该行合适位置 + ans[row][i] = '.'; + } + + } + + } + + +}; + + diff --git a/week02/Hasmap_summary.md b/week02/Hasmap_summary.md index e69de29b..2064a863 100644 --- a/week02/Hasmap_summary.md +++ b/week02/Hasmap_summary.md @@ -0,0 +1,65 @@ +# HashMap Summary + +## map vs unordered_map vs set +头文件 +```c++ +#include <unordered_map> +#include <set> +#include <map> +``` + +template +```c++ +//std::set +template< class T, + class Compare = less<T>, + class Alloc = allocator<T>, + >class set; + + +//std::unordered_map +template< class Key, + class T, + class Hash = hash<Key>, + class Pred = equal_to<Key>, + class Alloc = allocator< pair<const Key, T> > + >class unordered_map + +//std::map +template< class Key, + class T, + class Compare = less<key>, + class Alloc = allocator<pair<const Key,T>> + > class map; + +``` + + +map和unordered_map都是键值对,而set只有值没有键 + +map有一个compare的参数,来确保map中没有重复的键. +No two elements in *map* container can have equivalent keys. + +unordered_map中有一个pred的参数,来确保没有重复的键, +No two elements in an *unordered_map* can have keys that yield *true* using the predicate. + +但是这里map用的是*less<Key>* 而 unordered_map 使用的是*equal_to*,所以,map中的key是有序的 +而unordered_map是无序的(在其名字中就也可以看出来了) + +成员函数 +- Capacity 一样 +- Iterator 因为unordered_map是无序的,所以所有的reverse iterator 他都没有 +- Modifiers 一样 +- operation find count equal_range一样, +但是同样是unordered的没有lower_bound,up_bound + +unordered_map还有一些独特的性质 + +Buckets(桶)这个还没有用到但是好像很重要的样子 +- bucket_count +- max_bucket_count +- bucket_size +- bucket + + + diff --git a/week03/105_buildTree.cpp b/week03/105_buildTree.cpp new file mode 100644 index 00000000..145b9bf7 --- /dev/null +++ b/week03/105_buildTree.cpp @@ -0,0 +1,77 @@ +// +// Created by lewang on 11/6/20. +// +#include <iostream> +#include <bitset> +#include <vector> +#include <unordered_map> +//二叉树-->递归 +//前序: | 根 | 左子树 | 右子树 | +//中序: | 左子树 | 根 | 右子树 | +//时间复杂度O(N) 二叉树的结点数 +//空间复杂度O(N) 哈希表的长度 + +using namespace std; + + +struct TreeNode { + int val; + TreeNode *left; + TreeNode *right; + TreeNode(int x) : val(x), left(NULL), right(NULL) {} +}; + +class Solution { +public: + TreeNode* buildTree(vector<int>& preorder, vector<int>& inorder){ + //异常输入检查 + int preLen = preorder.size(); + int inLen = inorder.size(); + if(preLen != inLen) { + cerr << "[ERROR] Incorrect input"<<endl; + } + //用hashmap存储中序遍历中,数值和下标,优化 + unordered_map<int,int> m(inLen, 0); + for (int i = 0; i < inLen; i++) { + m[inorder[i]] = i; + } + + return getTree(preorder,0,preLen - 1,m,0,inLen - 1); + + } + //i,i1 是前序遍历的两个边界 + //i2,i3是中序遍历的两个边界 + +private: + TreeNode* getTree(vector<int>& preorder,int preLeft,int preRight,unordered_map<int,int> m,int inLeft, int inRight) { + //terminator 传去的区间里没有数了 + //即,左边界数值大于右边界数值 + if(preLeft > preRight || inLeft > inRight) { + return null;//返回空结点 + } + //找到前序遍历的第一个结点,即二叉树的根节点 + int rootVal = preorder[preLeft]; + TreeNode* root = new TreeNode(preorder[preorder_root]); + //root -> val = rootVal; + auto it = m.find(rootVal); + int pIndex = it->second; + + root->left = getTree(preorder, preLeft +1, pIndex - inleft + preLeft,m,inLeft, pIndex - 1 ); + + root->right = getTree(preorder,pIndex - inLeft + preLeft + 1, preRight, m pIndex + 1, inRight); + + return root; + } + +}; + +int main() { + Solution test; + vector<int> preorder {3,9,20,15,7}; + vector<int> inorder {9,3,15,20,7}; + + TreeNode* res; + res = test.buildTree(preorder,inorder); + + return 0; +} \ No newline at end of file diff --git a/week03/122_maxProfit.cpp b/week03/122_maxProfit.cpp new file mode 100644 index 00000000..6012d9e6 --- /dev/null +++ b/week03/122_maxProfit.cpp @@ -0,0 +1,18 @@ +// +// Created by lewang on 11/7/20. +// + +class Solution { +public: + int maxProfit(vector<int>& prices) { + //vector<int> diff;// (prices.size()-1,0); + int sum = 0; + for(int i = 0; i< int(prices.size()-1); i++) { + int diff = prices[i+1] - prices[i]; + if(diff > 0) { + sum += diff; + } + } + return sum; + } +}; \ No newline at end of file diff --git a/week03/1356_sortBits.cpp b/week03/1356_sortBits.cpp new file mode 100644 index 00000000..5d7d8470 --- /dev/null +++ b/week03/1356_sortBits.cpp @@ -0,0 +1,56 @@ +// +// Created by lewang on 11/6/20. +// +#include <iostream> +#include <vector> +#include <unordered_map> +#include <bitset> +#include <algorithm> +using namespace std; +class Solution { +public: + vector<int> sortByBits(vector<int>& arr) { + + unordered_map<double,int> m; + vector<double> flag; + for(int i = 0; i < arr.size(); i++) { + bitset<16> a(arr[i]); + long double k; + + if(arr[i] == 0){ + k = 0.; + }else if(arr[i] == 1){ + k = 0.000001; + }else{ + k = a.count() - 1./arr[i]; + cout.precision(6); + cout<<k<<endl; + } + + + flag.push_back(k); + m[k] = arr[i]; + } + sort(flag.begin(),flag.end()); + vector<int> res; + for(int j = 0; j < flag.size(); j++) { + res.push_back(m[flag[j]]); + cout.precision(6); + cout<<flag[j]<<","; + //cout<<m[flag[j]]<<","; + } + cout<<"]"<<endl; + return res; + } +}; + +int main(){ + vector<int> nums {1111,7644,1107,6978,8742,1,7403,7694,9193,4401,377,8641,5311,624,3554,6631}; + Solution test; + vector<int> res; + res = test.sortByBits(nums); + for(auto i : res) cout<<i<<", "; + cout<<endl; + + return 0; +} \ No newline at end of file diff --git a/week03/22_generateParenthesis.cpp b/week03/22_generateParenthesis.cpp new file mode 100644 index 00000000..9990b307 --- /dev/null +++ b/week03/22_generateParenthesis.cpp @@ -0,0 +1,54 @@ +// +// Created by lewang on 11/3/20. +// + + +#include <iostream> +#include <vector> +#include <string> + +using namespace std; +//左边括号随时可以加,只要不超标 +//右括号必须出现在左括号后,且左括号的个数要大于右括号的个数(加之前) +class Solution { +public: + vector<string> generateParenthesis(int n) { + vector<string> res; + string s ; + generate(0,0,n,s,res); + + return res; + } +private: + void generate(int left, int right,int n,string s,vector<string>& res) { + //左括号和右括号用完了就达到了终止条件 + //terminator + // vector<string> res; + //if(rc>lc || lc > n || rc > n) return; + if(left == n && right == n){ + res.push_back(s); + //cout<<s<<endl; + } + // cout<<s<<endl; + //drill down + if(left < n){ + //left++; + generate(left+1,right,n,s+"(",res); + } + if(left > right) { + //right++; + generate(left,right+1,n,s+")",res); + } + + } + +}; + +int main(){ + Solution test; + int n = 3; + vector<string> res; + res = test.generateParenthesis(n); + for(auto c : res) cout<<c<<endl; + return 0; +} \ No newline at end of file diff --git a/week03/236_lowestCommonAncestor.cpp b/week03/236_lowestCommonAncestor.cpp new file mode 100644 index 00000000..461720f8 --- /dev/null +++ b/week03/236_lowestCommonAncestor.cpp @@ -0,0 +1,31 @@ +// +// Created by lewang on 11/5/20. +// + +#include <iostream> + + + Definition for a binary tree node. + struct TreeNode { + int val; + TreeNode *left; + TreeNode *right; + TreeNode(int x) : val(x), left(NULL), right(NULL) {} + }; + +//思路 +// +class Solution { +public: + TreeNode* lowestCommonAncestor(TreeNode* root, TreeNode* p, TreeNode* q) { + if( root == nullptr || root = p || root == q) return root; + TreeNode left = lowestCommonAncestor(root->left,p,q); + TreeNode right = lowestCommonAncestor(root->right, p ,q); + if(left == nullptr) return right; + if(right == nullptr) return left; + return root; + } +}; + +//时间复杂度O(N), +//空间复杂度O(N) \ No newline at end of file diff --git a/week03/367_isPerfectSquare.cpp b/week03/367_isPerfectSquare.cpp new file mode 100644 index 00000000..042cf47f --- /dev/null +++ b/week03/367_isPerfectSquare.cpp @@ -0,0 +1,61 @@ +// +// Created by lewang on 11/7/20. +// + +//偷懒用api中de函数 + +class Solution{ +public: + bool isPerfectSquare(int num) { + double k = sqrt(num); + if(k != int(k){ + return false; + }else{ + return true; + } + } +}; + +//正经写 +//二分查找 +class Solution { +public: + bool isPerfectSquare(int num) { + if(num < 0) return false; + if(num < 2) return true; + + int left = 2,right = num/2; + + while(left <= right){ + //这里注意是x = (left + right)/2 + long x = (left + right)/2; + long long guess = x * x; + if(guess == num) return true; + if(guess > num){ + right = x - 1; + }else{ + left = x + 1; + } + + + } + return false; + + } +}; + +//梯度下降法 +bool isPerfectSquare(int num) { + if(num < 0) return false; + if(num < 2) return true; + + long long x = num/2;//注意这里写int会溢出 + + while(x*x > num){ + x = (x + num/x)/2; + + } + return x*x ==num; + +} + diff --git a/week03/455_findContentChildren.cpp b/week03/455_findContentChildren.cpp new file mode 100644 index 00000000..4c26fb3d --- /dev/null +++ b/week03/455_findContentChildren.cpp @@ -0,0 +1,25 @@ +// +// Created by lewang on 11/8/20. +// +//双指针 +//贪心先满足胃口大的? +class Solution { +public: + int findContentChildren(vector<int>& g, vector<int>& s) { + sort(g.begin(),g.end()); + sort(s.begin(),s.end()); + //if(s.back() < g.front()) return 0; + //int len = min(g.size(),s.size()); + // if(s.front() > g.back()) return len; + int res = 0; + int j = s.size() - 1; + for(int i = g.size() - 1; i >= 0 ; i--) { + if(j >= 0 && s[j] >= g[i]) { + res ++; + j--; + } + } + return res; + } +}; +//先满足胃口小的 diff --git a/week03/46_permute.cpp b/week03/46_permute.cpp new file mode 100644 index 00000000..bf00fd9c --- /dev/null +++ b/week03/46_permute.cpp @@ -0,0 +1,80 @@ +// +// Created by lewang on 11/7/20. +// +#include <iostream> +#include <vector> +#include <deque> + +using namespace std; +//dfs 回溯 +//时间复杂度O(NxN!) +//空间复杂度O(NxN!) +class Solution { + vector<vector<int>> permute(vector<int>& numd) { + int len = nums.size(); + vector<vector<int>> res; + + if(len == 0) return res; + + vector<int> path; + vector<bool> used (len,false); + dfs(nums,len,0,path,used,res); + return res; + } + +private: + void dfs(vector<int> nums, int len,int depth, vector<int> path, vector<bool> used, vector<vector<int>> res) { + //终止条件 + //排序的深度和数组的长度一样长了 + if(depth == len) { + res.push_back(path); + return; + } + for(int i = 0; i < len; i++) { + if(used[i]) { + continue; + } + path.push_back(nums[i]); + used[i] = true; + dfs(nums, len, depth+1, path, used, res); + } + } +}; + + + + +//NB的动态数组,但是输出不是字典顺序 +//时间复杂度O(NXN!) +//空间复杂度O(N) +//leetcode submit region begin(Prohibit modification and deletion) +class Solution { +public: + vector<vector<int>> permute(vector<int>& nums) { + vector<vector<int>> res; + dfs(res,nums,0,int(nums.size())); + return res; + } + +private: + void dfs(vector<vector<int>>& res, vector<int>& output, int first, int len) { + /***************** + *res:用来存速返回结果 + *output是递归中间满足要求的一种排列 + * first 是当前排列的长度 + */ + //当前排列满足要求就返回output到res中 + if(first == len) { + res.emplace_back(output); + return; + } + for(int i= first; i < len; ++i) { + //交换当前位置和i位置上的数 + swap(output[i],output[first]); + dfs(res,output,first+1,len); + //撤销之前的额操作,即回溯中重要的状态回退 + swap(output[i],output[first]); + } + } + +}; \ No newline at end of file diff --git a/week03/47_permuteUnique.cpp b/week03/47_permuteUnique.cpp new file mode 100644 index 00000000..5a999a93 --- /dev/null +++ b/week03/47_permuteUnique.cpp @@ -0,0 +1,45 @@ +// +// Created by lewang on 11/7/20. +// +#include <iostream> +#include <vector> +//回溯 +//时间复杂度O(NxN!) +//空间复杂度O(N) + +class Solution { + //用来标记visited 的数 + vector<int> vis; + +public: + void backtrack(vector<int>& nums, vector<vector<int>>& ans, int idx,vector<int>& perm) { + //终止条件 + if(idx == nums.size()) { + ans.emplace_back(perm); + return; + } + + for(int i = 0; i < (int)nums.size(); ++i) { + //如果当前的数遍历过了,或者没遍历过但是和之前遍历过的数相等,跳过 + if(vis[i] || (i > 0 && nums[i] == nums[i -1] && !vis[i-1])){ + continue; + } + perm.emplace_back(nums[i]); + vis[i] = 1; + backtrack(nums,ans,idx + 1, perm); + //状态重置,为回溯的重点 + vis[i] = 0; + perm.pop_back(); + + } + } + + vectro<vector<int>> permuteUnique(vector<int>& nums) { + vector<vector<int>> ans; + vector<int> perm; + vis.resize(nums.size()); + sort(nums.begin(),nums.end()); + backtrack(nums,ans,0,perm); + return ans; + } +}; \ No newline at end of file diff --git a/week03/69_mysqrt.cpp b/week03/69_mysqrt.cpp new file mode 100644 index 00000000..7c0def97 --- /dev/null +++ b/week03/69_mysqrt.cpp @@ -0,0 +1,28 @@ +// +// Created by lewang on 11/7/20. +// +//二分查找 +class Solution { +public: + int mySqrt(int x) { + //if(x < 2) return x; + int left = 0; + int right = x; + int ans = -1; + while(left <= right){ + long y = (left + right)/2;//注意这里要是long 和 long long 不然会有溢出的错误 + long long guess = y * y; + if(guess <= x) { + ans = y; + left = y + 1; + }else{ + right = y - 1; + } + + } + return ans; + + } +}; + +//牛顿逼近法` diff --git a/week03/77_combine.cpp b/week03/77_combine.cpp new file mode 100644 index 00000000..7774d8f1 --- /dev/null +++ b/week03/77_combine.cpp @@ -0,0 +1,64 @@ +// +// Created by lewang on 11/7/20. +// + +#include <iostream> +#include <vector> + +using namespace std; +//dfs +//递归 + +class Solution { +//方法一 +// +public: + vector<int> temp; + vector<vector<int>> ans; + vector<vector<int>> combine(int n, int k) { + dfs(1,n,k); + return ans; + + } + +private: + void dfs(int cur,int n,int k) { + //剪枝操作,如果数组中未遍历的数的长度加上当前temp的长度都小于k,后面的递归就不需要了 + //因为其如何都不能满足k + if(temp.size() + (n -cur +1) < k) { + return; + } + + //如果temp度达到了k的要求,就把当前的组合存到答案中 + if(temp.size() == k) { + ans.push_back(temp); + return; + } + + //使用当前的这个数,把他放到temp中 + temp.push_back(cur); + //移到下一个数去操作 + dfs(cur+1,n,k); + //把当前的temp中选的数弹出去,去尝试没有组合过的数 + temp.pop_back(); + + //不使用当前的这个数,不把cur push到temp中,直接跳到下一个 + dfs(cur + 1, n ,k); + } + +//字典序法 +//todo + + + +}; + +int main() { + Solution test; + int n = 4, k = 2; + + vector<vector<int>> res; + res = test.combine(n,k); + + return 0; +} \ No newline at end of file diff --git a/week03/CMakeLists.txt b/week03/CMakeLists.txt new file mode 100644 index 00000000..9f1911db --- /dev/null +++ b/week03/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required (VERSION 2.8.11) +project (week02) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ) +#add_executable (move_zeros lc-283_move-zeros.cpp) +#target_link_libraries (move_zeros LINK_PUBLIC week01) + +add_executable (1356_sortBits 1356_sortBits.cpp) \ No newline at end of file diff --git a/week03/NOTE.md b/week03/NOTE.md index 50de3041..8e3f51d5 100644 --- a/week03/NOTE.md +++ b/week03/NOTE.md @@ -1 +1,91 @@ -学习笔记 \ No newline at end of file +学习笔记 + +## 第七课 +树的面试题,很多都是用递归来解决的. + +二叉树的遍历(前中后) + +python 的递归模板 + +```python +def recursion(level,param1,param2,...): + #recursion terminator + #一定要有防止死循环 + if level > max_level: + process_result + return + + #process logic in current level + process(level,data...) + + #drill down + self.rcursion(level+1,p1,...) + + #reverse the current level status if needed + #比如一些全局变量啥的, + +``` +java 模板 +```java +public void recur(int level, int param) { +//terminator + if(level > max_level) { + //process result + return; + } + + //process current logic + process(level,param)); + + //drill down + recur(level:level+1,newParam); + + //restore current status + +``` + +注意 +- 不要进行人肉递归,就是不要自己老是手写来推 +- 找到最近最简洁方法,将其拆解成为可重复解决的问题 +(重复子问题) +- 数学归纳法 + +习题 +1.爬楼梯 f(n) = f(n-1) + f(n-2) +2.括号生成 + + +## 第八课 +分治,回溯 +有点像递归,可以套用之前的模板 +但是针对具体的问题,drill down 可以灵活的处理 + +回溯是一种利用深度优先搜索的有方向的搜索搜索,也可算一种稍微聪明一点的搜索方法. + +实战 +子集 +生成括号 +N皇后 + + +## 本周作业 + +### 中等: + +- √ [二叉树的最近公共祖先](https://leetcode-cn.com/problems/lowest-common-ancestor-of-a-binary-tree/)(Facebook 在半年内面试常考) +- √ [从前序与中序遍历序列构造二叉树](https://leetcode-cn.com/problems/construct-binary-tree-from-preorder-and-inorder-traversal/)(字节跳动、亚马逊、微软在半年内面试中考过) +- √ [组合](https://leetcode-cn.com/problems/combinations/)(微软、亚马逊、谷歌在半年内面试中考过) +- √ [全排列](https://leetcode-cn.com/problems/permutations/)(字节跳动在半年内面试常考) +- √ [全排列 II ](https://leetcode-cn.com/problems/permutations-ii/)(亚马逊、字节跳动、Facebook 在半年内面试中考过) + +## 下周预习 + +### 预习题目: + +- [二叉树的层次遍历](http://leetcode-cn.com/problems/binary-tree-level-order-traversal/#/description) +- [分发饼干](http://leetcode-cn.com/problems/assign-cookies/description/) +- √ [买卖股票的最佳时机 II](http://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/description/) +- [跳跃游戏](http://leetcode-cn.com/problems/jump-game/) +- √ [x 的平方根](http://leetcode-cn.com/problems/sqrtx/) +- √ [有效的完全平方数](http://leetcode-cn.com/problems/valid-perfect-square/) + diff --git a/week03/cmake-build-debug/1356_sortBits b/week03/cmake-build-debug/1356_sortBits new file mode 100755 index 0000000000000000000000000000000000000000..886270f36d52d210d1882f7c85bce416b607f220 GIT binary patch literal 378472 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⪻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�x$9L08`hF<;} z1sRCC=LXm>ChG96`ek?35cVIVuh|JpXGrIk&3NL4X#aCn#T35}lvY?4Y_Wenz#s^* z0eY+`9}-z(5EqjYdVhirXlU~bSo*t(xvw2{bQXwtv5Gb5g)Y2n^w@hX>nPy3m#3lU zgUX72Y9&oLdKabagjJV*8_&LMDSSIzKwc47?K!X)Ui&i^6N{h|aK2FJCZCzn-z&_| zXcM?4pkT)v6ZB$BJutbn!|pI)p~^_uF5l)ZIPFK7BhjLnu(-98u^{zC_7nzqYgOZV zVd1q)kD#No6G6>$3!8WPtBCv*ik0x*c!fkPM2`9PnwRZF@FuVf%5Ei0#2{O6XrGdp z4`Whr&ZZ!HKx9-K4s9<yEfW=PWoFB{&Z}rh!kYTb>#Hanc5~%GCQ0H=pa*hg#niye zr|3y<%oyy1hB13TNV;=jqzyb~1EKVg2|Lh*6zrISX#n4PKGqf`uR#9-Ay&d>q_beh zgD*fMAb+JzL9v0@0;G5q^VotND~!XL8r(l?Q_xlp3?N0Z{dm?AT<NR!8s_wX-J;*I z9h<VDWB*nM4A&J=?Ah7i@9w*{3pW0y?EL?+>S|$3C_Js>Y|MAbFnWb<E7?9_nJ}z6 zGq!aSh96{X1jwWmX@dtoWbwzm_zG0FvYL5GGe1R1{IDgf-4Pjg2%{$FWUlP&DzR#e zvSKIAD}?7YtMJ&z79kykbFpI1E<jW<YR?qioy4HI=KY4It9TA)wy27=#zd@GPtRj5 zvEPyW{N#ru%+;=#r@KPwE304o>7IMG9S;@DX=RcnKB;t-E_+k+e~kLBx$}E%3T}f4 zNf<54z~b|42d{iijo1k_<qFXoHU)12^-5D`=2gI_IM*C(g=Yk~{|yxGB<WwiwkZou z#kLPb3!d-GKNtP)7NqyTwP3bvtvxYM4u|$k^?9r4_CEA~u}b4FR&X66tLi&E9lL%1 zZyYBJgQJyi#R_G;^MB$<7})?_?w5VgC-AlTKY~e0@(Lyz@*;ixHvO1eoGGmfTb`ol zF>zawcRpzlJuD0D<cKMnV8zrzkwTG%H`i)9fV9+Ek~li+Dw1$I?79m|;Fnhl4lO_n zyduuzLxeCy(HP{#s&<4O-M+ukK6cuu^o1@-!rR?p8NFW|rbi(t{#zi6d$)l8C~ROS z#99gIY#I+e4l{>M<7ZN^MqS+&AD1<(gf}poC^32x`ZLB;X`9IvDV$v89(s#~df>=o zC(qzYuz1Olw?XKQ0x<(hN&$B`tnJpBB(@*r#Ib;B3P=;cm)ovL0k=eDu+bc~lR^@w z1xa~vja7e()?p9GU{!1r49MWzh=`d`ee(a`6uDSn2wwEJNd1PsxXNSygH4ZMH!naX zJFUNtC!1top4c${t-F;5ldaYG?nfF2`?4_hGj!|!iZB~%<f~BY$2<q-prpY1DOodM z1@R_s8fy|B*B;PDL9t<@kk;b9!O!EBX4^rSqfoj&X>-tLC7eoU=RJF_UO_DndMR?Q zDF%K{P@ou#j=jX_DucAfJVc3k+JXMGu%rG~LV#Uc+VQ@+Ynx$<&DOP@Xh@1`eK0}3 zh;2VM1?Rkh76`Etihj$81CMF_IAuqiLqBq<g;nf0mU-@Ks-7qadv{0f%>S!#QvM|< z!?h;{;DpNmVsNXb+7_CFQ~9Or;p95{tgfQCQ@ypvtraUKtr%#_tD@mbCO1pTU~7=B zvzXQ^@!V#xrxwg5M)EF5IzN0wPk7Y-uJf3Wp$wi6)qqO6GqZNG9y@f9KA=+n&K;z+ z=Wf>tAFvK;mchy^>!6%4^_XB~tAoHAsz<)%c)b%e;$EAAH-V?IrfLSDP273S0Vov| z|8)S8_XWnpbi^8c1Mg(4XhmmXvm>~0zJH|thKTc|ulMwy5lzPnP==UYb6|+I_HJpc zInL+c5R;5=Y0=NC0#nFRE%q%`?1>j)om7Rr<2HlVBeY@e^ewqsvDiy;k&Z`q059!f zM~!~X>I7j9tJvz=V2_!B!uQ0gZm0BIav~$mRn6<MFzxB;nOIxv^s^wzRn1~QuxZni z%WSY>Zj44LH1OU*Z_O5Z3H-UrjlsIy<XJ(?<?|@%*4~R~#Dt1Ho}EL=tq_9r%LoJC zNKsD*Ep+K_%uqN+bObKC#OCelQqBPn-8sxXD0x<*o&}Ewm*n0Vg{+u$So!fBP!pce zO8N{)oZSB()HUXAbO=b;?|<tl*cCfr>=7hkQf4wnI0J=MZT?cI!HgxCV#n|P-)aza z`o~;qK)?!KECXGPTO(P$fu4!8?uRIr73~y>6*J{wkQ`7yV(exaZUBjsRlIi(EmMYH zr)BcawR^3YX)yVqOQkkjvZip@jv`xW{<>P!&041C?O8U7Bg%@IzZE2D>Q9s#L(A;R zmWuyNfgkruM$f!~tviq66?x#7j5<YZ#atRL89iWn>G|2C&>3Z=xV4j0t?`BqEMOvu z+fiOj;v0GS8SJW^lRIOkovkSab@VnKjv|R)+evid!J9><Nfh7i(`r)zeQd6}_^(ME zu@gPWJ)QZeLs=vLsftmx#~--1f}G$N(1$1<$f~)bL=~+2{|eP8-Sj4|?EsHDj`m*q zz9AJcElRA1E~#=VLSYW@G3w~aP0*NUhAr1Y{0zP2E#Cl}53&v(!`{Qi)zKwixU1ZS zO&};;_O~4;P=jTadQJX4>TCRaPn?FldoDva!@qq1OB<>@_4NM7*1})q(Uy7u`5OY_ z-kM=XsFTJMdASY_J31BwB`k(8RfmSb{VfhaLjA+dw1gH2a{4m)WSi{M_!W~NErGo_ zB>aje1WL7DLkazBKw7(!Xq#NMn@0)!BrzEsQIX$aj-~rhCIm-E{>I3sYK`8jR}vCt z!;V!gp1}l+`Fa^n&qWe4u7a-1%Tahe1Oh*CfFQf;Aj5*vVoOI?<L;-@(bd^>!`e@W zyy!+9pT-jip7n`tDtn{kb2!n>7rqCf`SQJtXYMVyr$?VFif+mMLHb-#bSrN9QROP2 zkBshoS9|z7J%#=gF7gr(OCw!B2_l{m2u-q)z_$XICu7e^a{;FTT5ZGT6wFO@y3r4A zYK2k(qMpFzd6N79=0G|4th<He;lZ%{i;?65T+TQoHH2hh0;CL{u>w3K`H_Lhv7|8Y zH_PfHNz7@?hoZ;UzYLlp!0&Nr$R>o=-F$KwJ#i;SEHbJlplL-qrU>m4=E5V#;S1gb z8g2~$N$vV;Ku|F}3OlJA@$qZLV};;tEZ%2-gSUA%Xhg;M&dRFYf}x@qT=cU_SNe1j zilB6*uf3n~@29)u?`9qO`?;I^-JU3azbwOF^&umtSd}jQgT)>)UPR1+uh25&VugFy zKH~fPpMkLW{tNDwzuo%pZTv+P!bLA<#}BUzzdXH(ACW*W6(N3POM0m*@uME3mybi@ z$DaKHUVbboe%wWPgOSkK1n*7UFFRffvyn3B3=kB!!(ys72F*G?J^dE;zccVEIOJlD zsf6N<&&WU@$yPFE2j+wEYtL`gI|s*HZjambz84L;JP7$4I+QZEzOQk+>BJ#(`%(;U zxAvT@dBZE$g^tDV=G)BV^|tYQ)IHg2OlEORr`6$~seDFs##0kktbS1XrH5_7^61Ax zmps?gP>!wTNzi4FXEAT&LFpCGuSAMZ>yB8y@dUQwrauaMC|qQIniC}iy5?!W6Umu| z;Dt66h$gO|`~2p)1f8!1NNvVt2Wd(PEYE%Z^z8i8vYHY;jLRD?EYE!`@9H?T4A85y zfG!f2$n|p{pZ7#bJPAf9&W@qZ_Zc|*bD#X)`4f$Z(!k5xH0HTaVQ<C+Bcd6g4mNB= z$a9wB-tDO-4}*Y@B@OcsxEqn0=RR@XJ?SQzMZhy0IhsZuqL%UYt7_tU0{HW}<j8ZM zd%Q8Ie97^Lz(3C=N1h*5@)kjTO15tT|0|aqc_v-W`}r936)d@8AdZ96<t|+`bs+8z zI{D_vfYqTK#(Jtr&*xk<k*$x8n%pg#Vbr8yb~UNN8(U4zG{DUw#I>C9-O7S+TTM#+ z1!x<BpR%FAAH;1nDOMC)6acAXxV%RiE4!MkNmJGk!k2OR&V`MdRKrLd!OVL1gOg4o zx7B3SCJf}{E(fT(4d+yo5<eLcZGm^RX&f~P{a{241vJ5ibE?TX%m*b8OMtH>4f7DV z4>3DxG9ntM^O(}7fgf_@Xd0s?Gl5HTKL&m_mmH%e|6m*!Ik$mZs5r^7iOZ<T7cgQ) zP6^=mkS1GtjG8=t7+V)m5vnQh);5hE$*BXbnuPN!=BoCPM?h4u7L1MB!`+^Ll=S>H z9!JkVT0-}<0l^q&5I6?wzzUC=jlQDxkT3p!B+$OF!msp}G{hbF|473rkx*m-(@?)3 zCFr4yudOpfnRx&6P{wsfE4<l*Ohf&xu7pu2C?i3<|5<{Jso}SO6bTny2_JpwND%LT zmT*5(YlTl8EE4W{-pR#jSAux|vjk3ntnlWj1dO0{Uyz}bpLM}Nx>El=gTDxVgwP&A z<KQ<VD8Jic#>(|);nid1CU}GQBQ<8MoQ*Q#()v0C>Cc^*v9e$g=RX+euDP4BvIVL( z+gSN_vboh`<-&sIR*#ka#+i{+kCl;_Its5ID{G;V@iu(@!_4IFD#)Z6EBW;pv2MgH zaaKI7@KT_G1$pTpNL>q3G7STgIo0+fXKIrF=$71-F8Pmc#V1(N+IXy50LOqJY!zJO z%Lq3>*L)kX9~yysZ6I(|P;EL6?VzlqK;E}ebCzFQj{T0p@&<AV?glB|0&8F(d{$v? zIDV0d%_z7JM+OSPX^JsIq3y<|@KZ)bp!G??#06R)M4OG#+HC9#+xtGi4>=@c5<07} zwi*kggCgHVkfe}|sj;H@37+Vbc40X9g24T7IlscgQ1j6viCX4-EIBKhU*U<K@xtqP z`wNIZ&(5loN!n}`7o^^H$b>R+;Ns^i9s7oa&cLPjewl&mJu!BSeRCwceKRcqmEZgj zp8vr`ewGCh_P{k`A)tp4Jk*8)=ZM<_*C?1{g#f8pxGW&eRe_Ct)9e~H4H4di%XSww z16L0$@!tTwdIiwyge7u&;Hvc`PP3vg)R%z1w&9!uS4@7W1V#J<JRBya5h0tq3VZ87 z>qNv|fGXQ?&Vj3HJ(Gu4z!OQsJOsQD=nP!nU?owa83uf!BS+Jify-)V;#vxPT`oCh z;OaNu$k_}0#awdCz%_N7k#iFGxm<GWf$Lj9%=Rz9|FmiJz(r+|flCf!RCo&uc;Pd# z5e4nL!YlvQzPW?jwD0@qrNTtF<U=*nzPY?<+V{~*SO9>+O@NE+i*UPrFQ1KR00Pr( zATUT!-M-fh$1yM<PuXaW_B}fVD+55@fcuaXBfuJH37_4*4^762ZQNgh`_ZB3C=|MV zkH#E>GJG#%EelQ(7bt^}9PRu2d+~Gxa3hC=OhRY3?`C(fB!R%LAn8RirpAi4e7K}k zM7O>ifxF;xzHpPFxnH=c6T$M${ld*?zHl=-rB*X#eF?_fdBia^&!@v#-~m@0pG@m_ zZbtK+o6$3-V+AJ)bsPuhq|Qx*?n30%u0eiACA>y8QH!aE|4l8plh3HdJbJZS@DZ+2 zi*$I6TKw)+)?7rI1{b*&;kH^lcoOS`2;6A{0e*MJiq>k;;ug$6AaB@c4z&nk`r8V~ z7jRcdu@$U=-tgIK@!I=nvAF*e&WB8Biorsm)uJ6JDB~`mHAun41?nRthgwvF%$9(= zIwWKgI$JIF7RA7Uz!4xBM>3{Hm#FNP4DuT=;kQwug^Ks+@+xeI!$U#f`=b!Hlt1_` z{n39ZydI{{t%3Od6(k&>l&>j81O0aQ!J|+Fp0t5LiBdodCxE8-z)B_Yg;Xpjd<*mk zo5Fy@{XV?x?Gz$K#QEVOuTyT}yPpK-*sO_o%5e@eD*%-VN~9W`SOW`zZ1ybxv?VB< zVkKxznTfc<_dkNpCcgjB*Thod`>|j!rRcx)_=~tU3GvAey7=K?2rvc{Uw~x{ra!P8 zU<@WJ3kK5+L}m=8tD8~NFnNw6C=dbAUR-E8NLg77%#T31*ozBoXXG%Lt~WI%kv5oy zV(u>{kv5q6Vu4I<wZRmPr<U0arkBd<+i>f5W^#8QWYQQ+d<~cLSR~skvcmUyK^ont z$Wf5yF_^gWYFZAryqT60jVzd!!-p28<*fPyD}adbC|qQ5W?chai!8&g8w7r31A)5) z)h*{n56ij<<S!e|(Q>Y!yPpB1$Pv^NT;x4q4Xj3p-Ezt%D=Q86^?<f?C^iX&ZaGVq zXc@hMjvz(xEXbG$iX1J+hmxKSc$q`Oh=tB>InQI5C*NZr*-bL0#){^<%%W3Xsfv9s z2)qQB^L1tnH7AiIYFYf2eM!-LomupZbHnh+3q%1_g2SqlN!n}`7o^^H*s@O>Onh0A zZ7>O;*)*Kx;hk#Dm&Zk2^o&d6jclX8<k35bjVZNK5MxR$;ElZou=Ejhs7sNaRdA7e zvyckgl<IyJbUP8e&xQgAh})*rihMX|2S~kx%L&rFCa^K3o<Nn3Abb^<8!l{2sp4(% zazD^3AFRj%a5{3^l&akZ2_bg{K(%c+rztgjs}XS@@Gdruvj)&&ixDvrP_hl@G^I}5 zqjVlt0Dpuu%tN3PVs=carsyV*F{RG}e}yzGCPQOPsWC<LE&z2Jcou20$uXwXw!%uw z`5kx|sx-SCV@h?wqNQZJ6!1!<$tK5`Qs+vcCuVwD0&i#2Xj6*%Af^;w#9&pZ+YKxB zlozB;8RY6hkSkH)*YQ9Zy}^+;|E)LRQ)ts0+)b|@N4Xoo^agF=HN8R94>$&dG@M{M zIwIWe4UR#}E+X)I8whk0RQCo|r+^ZX=Ytcr9KAsw7>i56R}N@(QuGFEU@JoG-XQB; zSgg3e7iedP;z^;<y+M=eTE;M-Q%J$Y1!jXHM{jVu2flp?_)&+15euE&8>}ve@313q zA4pyx8B?R%svHdn@<sD8MHixYx_FzLHRE4Es2A_fW;1RB<$r^4UaXiep$=fER805f z6^|K)990--8N@RPUaXjQI}pQT-tHJUsGq(6C&MRu!O+TEI!VW{<bN^LJdd<Q_4jVA zqZuUq|0y}v*fQR0SdJfCC~WC=EVG7%wZs@P)*n{BBK``6mBC-s>Xz6UeunEXWBtAd zVesPbHnI`E4@oOt7w1=DZ*0dhl=fP_i9h2lR}viNyY?u<X+ZdWe0`ht7eZ9Neh@Xz zANA0)c#(V&3K{ROS1=Jn-(vXlht-Q3kN*PQFjCcvCS2e~CwL1JwR}Gzo%MpUpx~SE zIs8SsAUw>Pz||hQiPw=}uQgUhc+TUsSz+NL$0b`)oguznQGO99sw=$pBX-ey;k0En z2!9LS@XvNB>rBJj?XcqDJ23(e`hU@J%tY}tyu(FYzpqY5`2VE8kgpaNb{hUge{tV? zO>j)}Z~DvlTJ1sjKlE2hY`6e^yrmR3wGz|Nq#7!@X^{9jqG{-nn-+;<XW=GHZrUf# zoq(Hgx#^O)sUQSL$W8CW^01s5`c=U*mNg*p3c7%X0aXMyBNB_Dd>iIhOz?!n38<ll zh2$nVv7iTJ(W>ajcy(0b!`N2Pu$bzGxaTAWVf;0WQTKj?$BKzHzQj#&6$@$e6FVk= zEKXIy&Emvp3MjA2K)|ZRhr>WtU9nOhN%UdBZdgNZwk9qmQd4erCuZ=bmfY-1e1tdg z>I+oLp~S}Ra8pOpb|mp^3*02AT8QUOoC!nuH}bJ6#(I2B-@!vaKNmEmrjz_!=?k)U zlQ#~)9-}zb5dMV-)B{5Dr3(oC%)`))4CMt9ULi+qSlf+nd5$88E+7|{l}+^)LdS-M zx4{F_<fVJDU-gOz`j*7RG+pw<X8_&tkTVSF3&_Pp6hJ_bw8<kIBeteORfSZN98sm@ z^;lqNe6K)l9f(pUTghE9m1;azutB-8%go#vNfQq~=;TZ(9FEZQ5}KSp9sW8}$U8{E z#pD2sJiuEN#Ir1jZ&o3WN<wvlR8kPRNRz)~WcNrFT_F)K5O58DL6Nc>8qv6`NGXbb zTuTvO_6R99c^M1yYe`}~l4dK+!5DHIUl*vO4Oz+Eb|dmmQVL@o*&@~ylXVpYDMGM> z1Pqo7im=@nU|uhEU<WaJOx1;0@;!y^O+r#B!pmD^?`M=%au?RYHlh0NU#OD1GIfIm z528uyoI9xth^XX$z5&tGLR6DPP6`eF=NjPs1i#P0HEV553>xndXlO3zrG?<CE``qC zBp??l&K<gb*fvt0+XkwEtk#_*lKN%*R?7XjZ#;@>_?jbGBaaUSGM~ujxsX56FdO%x zke_o&YyLivmznbd@VQyEl9Mk1Y3(HxPe_vB77@cx+Hd1;YVugCK@%Unz8_FMO|%W+ zyV?l5b);2?`9ACge?F$o@9R_+{`~ak_ch-R`U3P9@?Gr?e?j_-_+Ebqe(5oa`?eeg zeIbU&`KFXYcoh9*e7~o`Uxdr@m3*-kKvR^eTFVMHKuS`wnxhKNGr<>eD><`L27;{d zP-aDe%`H}GVOGji_6uW0I$^iMDaK0q$qTqIxtsqBck-vuw8p)pW`_`$niZcEo2gz3 zO<6n=q^~h}L5_&5<j%-=<5b1RHd`EsJ`^@%P98{tS&C1Fj^rdrnTJhXjXx*VS48O1 zc@X~Ocggvb`Ue=D3+bMBtUo*)(Il6?g0wxWXe?CtFfUn3!#9DaG3{*#yRk?iC0D0@ zmXThk4{^3#E4exb@Wvhqo$d&g^3_~l!H{Sip(t$Qzez1u4|qPoU;a0I47D{V_?HeY ztxC&(gx$vd(jafz@uQ>Z#(pAMf+J6uyiT?fN*sc;ZM-sx6>UU%Ju6`~^Ky(=qHP?M zcUD66TR@-WmG^@kl!>ttnq%>y@khK8o$H{QHv`jz#=rB*d+u=3m6R<b696=xqxevc zJD=Q2#G4f=1A0+$yN7J~po{>k-l<=tz)BvACe-+dih#L5=Sr~2d_7PZN&fC7sdM=; z$w`&#v?mT&)^rI@mFrmL+24vZl|eIB`G1E!2V3n9|2*MSD`3jQwUQ)1KLn8E{~Xt# zn4pDxOEBFVTPPfpEX!Ln5>{^gC7`^kR)dOnA&IH}M)*thkHQrOgIsk;MroLOk<VlA z!#y;2qW)T_tfu9g(%TJs*R%p3^F=LQ3~xmmM^TSr3qsRMY|&8(sFJ3YX@y3uf!)}& zDjPx6G;BC&T8+tyI#~>%O(panSd&egNvQuSyvrrD4H{6>72?f@G&C#zIAiO9h?|u- zOz%d-)-3iEz3UJ~vy$J^`wtS?y!d{4mm+1&OT0~QeI%!O?0I@;APvn+-lBJYHLRyq zmAs937~X1<p~y1uR+n5Hk5E>Nnv#Zjq^&2JA5Pl(l4Cz<8%Q>fk+zZK;!P-ei+e?G zesskx+KPnfZ@}A5yzS#b&|bW6khZJH%}3hqB4HY7dx*CkX&(^poB{|PC~ULo9U`Hh zpd?$2|A!e;pTawV``^cU3Vnk<d2CprtyAz|;l)@Ozb)%*IE7JT_G)~=sy_Qm%U7W_ z)|DF2@AoZ6OK91Q{zAUNbKt+1{^Gushe6YZ{xZJl<ZVlTC0{x6wxhq6ZvlDR)8D{{ zQny-mpudH03Kj-i-ba6XU)?S6-_HTJi?0Fw9qI4t8<++9PV{&4eU6!Y%P#bH_w9$m zw(LfK4_{>zP0JqiKj8bc6a0PX@98UX6aK#R_wqeVIsNJH?K@351L=Rzx0iAT)BljK zJmn0fzmM-E<&2@fudgWOjHUl!D`mxH+)QJl51_oHq3Ty-&bS-P#w};QhR`Jc*pn#m zqA=!Lm7%UA`9DSQ%v3*xpf$bCAnr>`^>f2tlDYm?h9LtmD3ABIZrrsFy8Ta358om! zt(#DeHER;SUemfM{b6WmplIDpfo6Q6)~&atBhwE3z0?Fl--doaX3C&w-L|%-PrQzK zK6j>R`JLEN8T!ujgZ_I^wC*wxG<Eu|g}1zS6Z}d3?YPcn8V<rEYX^D(A^8BFyteKl zo%jcYcme$>{LN7@F_RGe10Md7`3Hw0WjyTr)<ZechM~FZ@=SS#fg?y+!VT=y1A(KN zpBheJ^0F5YZEY{7P`w$-MRa}PkfUw(3?^l+;-<XTUA-*VWRg<6?roE&!3J-gBHPQB zy0WK0satpVvS4>Ilu_$Lv&la}uUoJ8Qp6FPL7Okhf1o>U{g{|+S%hS0c4h@u@`eGx zHwdeRW|<qGr#`L#g2vu*1eq_L3CWJ+WWI`JX^!zEkb+6Dru2Ir={Y7N`#kk9Z{AWp z2(t^aQt}-I!(<lnI0i~;=tBijom05v*?J%Iw<ZU!rKcRjoU`=-b}IY-1x}tc3Go$> z9KCJhR&tRpVA?6=aFwBqNDp(`7+BH)T$_c9+bUfX+)AFzg74*}hH|TAw!M=nU2j9` z1S%<aUmA6(k7cITZ!?g4G2QH$<nQeb_yZ2J+@qNXj%MbkA4BfAchiNfluDF4i=+I` zoXGe>_m*sd{Je``-?>)Gx;KtX0+z2pIQ*r!7J@d^5)}8|Mb-uCrEQp;ZwSv?kDjyP zR<1ete#g>#!)^59b(&uSevGRRe&2b>Yq*Q`S_t)X4(v&O&f{f8hN}p&BE!(rz$CPV z9a`9mx)-sw>BN-HQ|T+=zwPM<IKT^d+MxqVQ81F*yu~O|9VmI?1qA*oEqJ9H8o<Gb zHor?KzhS7wq-5NW(Dy0eB_}XB_&Wrg6D9n}4Sf+c*5*qQaLo=4(1*k@-O207R#zHd z)aQsn6osNqT;W53UuE*E5*Fp<#Y#T60>~l{^{ES?T&+cNoN|*yH|QUqgI!BcZdM-f zQ##kgNvK;olVBzPhGDBsmf%k~IDJU|KKunG4_A{>9?yE%g5I;KtmHz!gZI1?$OR{K z%6C{$Y;##clS8CvDS7vPfry!R)LZxS2=;l4F-WqSa^+iutYVU?x`9(zW2+h1#tziv z^VE$U2z<fQo8eLp^Hc*gxHjd~1UpDamb~pT1XqyctjhsO>(QOsjLH!Zw}paI5@DCN zd724*p5&6^<Rh@9+su|y`iP-!^`-ht-OZuxqFlKnIn{r^Tz@OWGQ1xd799>l6A;Y~ zBDA@b?*k=BeE|Mc{~vO#>7}3H(}gD0P*%H#vWlQCll)h34YJgd{5<3k)ds9>D~L%n z5KE-(Y7IwB7^iU!(n?I3jmm4gg-KqHFul&v6+SDa6#B4s^*MRk<sf|pDNUp<{rm)< zsie6Sw2`db2d4vrv>k&~j8s4O87BGPsLCr3(5K23t4XjSVPaS3b*fxnsX>3M7Np_6 zKG^y#nP(lsYm&b=LQ?%haZU2Cx|i4am<Xhb|E_$In1@(l8`|N?M!rBQmfg#*e+W+) z@|W6=ohzVLV-XffK);j$?1{KZ^%G3;vououg*x;4j$FAxF4dnR*VmEzR6qB~r5Z}E zEhhQ7u_@KhZD>j6N*Y)JLiuD@W??I?sV0PebZ$bkvOB{c=tdeH!jz=?x3%H*wp=%Z zX1YnC_WvL>ta7NrIg~U9xg<XyeJA<(l9g2Pr-~mM@)AS1k0!}nPYKQ7UJQA;H?P-G z_No3cHF=#V*T$%yR0&V=Pmz#c<hn_sWk{0$j)brdQ~lFx@%oo=F+9mX5$0Nwe~yGt z5&x658S=7(Fg(dW9pR~xhE)F@@%Kl1AWi78;18O6>+^aa{HcD1r26><(IkHdTvPpr zaGma-DgJvJFnlMjss4lFe?t6?8ZvxLV_q{F@miw^X`Yr4ZiPtl*O3tVQ^lX;=jMo1 zKR22{L*>dB$-!V9%8&*^|A}06I76nJTHr^PCvYOeZ3|8d=eC3-KQ~%nQVQxMe|l41 z-;?VaTvPq8p&OX)*Z$`uWPUT!Fg(fsxKMs3;rz62s-NH9Mc?rtulxutN>lv&;uv~s zT&Mf#PxYVe!>gt#{4o7G{8WGXb?cibl>AV2lAoU|OZ9IY#p_nN?v(4-u*9Ytlr%|x zhCo-w^15prul$1EbpHvFz_05i`L&KxT~q!1T3D+8*(6@Mr6Se8Tdq$e)89(2nw}5A zQ~gDbQi8q`g$@bLn#qiXU#dc`C4~MYKfh6w<mYLyR6oBKHQj{pk!Y%)9|nTn$o0Ls zM0Gf?s0#_<hkc*{X}q3BNUFK&kP=8ws{f@dG(A2X!&8Pg7{Fl67P|AgLs<FD6@3E< zxy22gvk)>k$<Jr8ss6U;HIw`!C7dBiem<T}^%uWDCX6^q{&4~_c)Ap0urjbDKi{yM z>gRijryIWxIgXH2KVQO|<fnhST%q#_N%ixkvD1y8AxZv^MYG<N>kA1Cc}K4G(c`B2 z84~2?k0d`|1Dfhzv4R4$Utjrp%Tzz#6q@9xf4W?g{Cx39s-JJboNoL&gl{%X_4Cz- z)1@a(^7FuElDzXRRs5-b7FVi2VJ*Y?j1_A=c;*_UH`UKi6{q_7Eo1cjAW0Px<QXJM zem;y%_4C1YlDYEzYY;5LF3Yv@dWO)yQ1Ou5EM$<s2>oZN%th)kgfGYw{u1IyQ#{<} zL82Ea9)(+)hbk)<6<>3-%1~8w;wW$lkH=L1{^KmXrijC(Cu4-QM18yti&JxZ->3IZ z9W-pw4qHdCr75151N~C)PXIaXKu^X1YnfUeg_DtKWq0GH9fmdNu+9}$O*<k@9<PyU zxhjut{fr^6?vTF+@)fGh16UTE%ULGkTcMgP<E@T<zzWr8H^$s~`nI=~uAYIUi1S(m zbV`0I^BN@iFXMGPsziJ36IpLBhpgw=)|rf83#sWoD4|vAbzIvTIaM4vbs%G)BZodu zM(+%D6D#uJFM0TiCr?I~)#{B7cpUqRxgTK#3xIHqdIzJEXEMBV;MPh?s4~_%H4FiN zl~>jT6JaqY!W}^N!i5wWSwX8*4V2I#Ls`zD{1Et`a5{_hfjUDS!IDeFD=GjU<S|3d zX89ae#pJ#>KBb5}uTh71Tj&bblHhdG=v$B4on}S6FRSiW@NdwrQwqRTw5{DH36-5B zbOka5E~F?5(T7y5c!nU=BWhrqo?&s7X#w!na5~lWF^|D8w7*qqD_D4NoxhU$4^87B zh)z2!Or~U%^T3E7)Kfa6$kQV&fm{asC!Ed`eUB*Cx^I>&1Y5yMh-saoJnv$K1!Nsf ztP@-Lud$E@7g7`@dAcE<0Z_IZt+7kTu%JE2Pi6K7`7k)0C;B8$b)^fYVe_bJhik+D z&pco&;B@Nfvx1{>U8g4E+Po@u-5Tln9O*9rIRY0_<fddiN3RLr3EX}Gr-jjH1?Qkm zZBQg1SpoWNgt=wu{RR)f;6jSr6qe*4UY;pT!Zj@3a}U6pa9SvR&}LlMslvFv1uJS$ zo)q>5G6*iD$gPFaZhKUHOriTcsR&*Gr-jmI1<9~MjlebT8rDqmr1WVZ2jN1B+&bG! zneF4a{TNOQqt6O%mTZ&!2h`-!Ji`6}5_Xls$gNXI+i|1n3H6D1UU}kxR)o`1>4Q?@ zx=saf^?EQp$&>FcKpuh%DRS#122nzuk+@BU)57Spf-guCNnSe+i#&OfxCzMPa3Mu* zE$nLwdjYpc;j}RNaQs|^k-Yia*br`n!I+ev%KQ$<Ex3>(x6W^w-mH;oxcaAf@_mbU zLcnRE^jSeNtW$sB+T|TEWocoqA~pwA2e^<Tw-!qCd867up#zj>Ai~GMX{q#CL2_(R zopCMm0Ny%cq`Dfp4#*a`kRrFv_e$i%vlq87!f9djq4Sb_ll&Y8nJRgNT?BF+E~Ln< zg{`g&-yPgWd}j-z&k7bpPqRUh{Ff&&sWieW0^(0))&x~UxR4?@g>6)o8$eE3kLP}b z_k`1lqt6P~g}il&94kjcqq8Ul(?R_Qd9#5mfeR^eYk7+rLf$TqXCp#(!D)H)S;5{S zj~p%E#7ktev>;dB2_T=tg%r6dFUkKK<ZV>>8bRuCujeO({|Tq1(q{$9u|a)>Yx+p6 zP#dXkeUwLQtO*xV<kqSDgYtHGJuMO55l+ja&kBx`RFY#=Mg2t^rZXQe_^HgvK=_fV zkRrEE<;2EJ<$hcv{65cmgg*wSrP5~w$+1o?#I<fW42W5jm0jw4Ku*Jj6uBvNjq2D0 zzRS4%0Zt2}&kF9BiYEE3GFVN^LKuE-mWyA<&ObPG`JmBR-T+|{A9y`=5#9mLmA6)% z$H4?n#!-%B8-b@~pJq{HcA;Z|q`-v~Md%d%&=kH!xXpmm66r%vgBH9&k$mwQ>{`yE zsO-XC0`ewYNReBout0O9u%FNKDMGHnx$<(PkZdjP#Y=21<Q5wI9&7(_Aw>~7g%|q3 zR|$c2;Iu^gtY9}uA<3_ARaO-vY`>O?YVHeU7+gq^TMO$x3cks>odc(Z(Pstu>Ff=P z<Y$wVbv94R_5gVf4n`2J6!xg%H?sqSJZ~c4b2wLAj@**V|0`a^lSk%XKzuhSlOiZ{ zk!qTT{hhSP@Qc!a$Vy#MWoV;emxoK*IyY_S!PgpCA2=O7ea5^P<RvA(Op?W{QAFL@ zI8<wd*LH+20J0t~q$moKLn=``G%p^6#n98R#Dr-c*gwFh{a~9H^m#Lm%v!1jPMU<p zrrC0TXjY~gYvn7*39>h1>+DTx$`G^{`8=98W6tbMHEC#)mG5q@_k?A<Ju70f+H4}K z?$HtThM-I}(#j`0P`nvuW^GX)8k(P!rpZ(Tt$b0Op?Wj25annqUo_Y5y%|5wLN~6g zE1K>@{RerYtbF%yq05_b78F4)h6QKivQ^PG%vX~b&2av*Oe`w1+>dxSs;U+TidsxE z<!@5_L{q-nTtf3^e2Lg4OYs_CHG7M?VdOlj#p&GCwPW9=_$Cg<?ajD4Yn%ET(o47D zT^8;(;z7N>+lP8vuG*K!gIt(M{N1Dfpc=i9F6Xer3el0UGzL;dWZJq$rS-z?XoO9H z(|ST5UY#o4P+$0~O@$F`gd<P#Q<+<U?12j@a%-hKLSct+`vIIQEQijMXVn25n8_pY zCm?s=LW&}^#6u4wy1-A!JDirN+j_QMjXdT1DeGM$(KReugDDX%q$om5tb*Kl`r>vt zoR&zR6&#kuwm|Y8J@FcmJjq)HWCL7Cky{JnH-tTVaQiBpD=bHb$@43g$YWv4@dpKw zpUS)l<T_kPQ3NHfQs1}7C)x~U1&1>KO<3}9+GeMZ)WM49I1jnnLEEdOF5|E?2hqb0 z3w>bG^XUTlyq%#+GO3J&h;)^{5c^t8tnTDu9+*}+BIuJ?Ls?v#=(Cs;{OKEzcf(lF ziTfjvisD6slymT8ykL@n!q32T#ZQ*LZ#Zi^oVP(#_-8w#tQeE(saApQULum}RU)GN z1bipTh^Xa=XaJ&~jtF+)M#N}5h42s&5uc)0Pgne2at+v!{GsIKr!uF5Xo(|2r-HM0 zej0g-q3-BV?*Zk(Jk-k-Uzhy4q3-KY{{>3tEy)=wUldfYYcyBKJQ?jX)QZX3?pwf4 z7|xo?e+wJj;k1geGNG!JRCf_xB>1fs?zYXwAZ-H|Qe<SIuTgv2!q)@0BjH>*IaHNA zRSRI7u#xDh>Ixw1;X;ZcC~=kAHyukuhSF8lgTRl$X;r0<)WM}$R8@X2c!yyrqf?E3 z>N^nmZ`&-{Dt(*<Rh4g$W^lk!sP8uoH#$7|smw~?Z0m66tnZB;B2wS)N_}^^A1~Z6 zBE~o(MuTXHBO+T{f!1YsiHL}zXe-nGlNVF*kD_wLkcJRf@!tWdC_X!GTk#nvWx&8S zYHSzWo<rDGI9(C+S-}qgZ%`k?@85%!3fQy!xwRVg3+~`Tirl(ZcTrds1U83rh2^MK z@^q~NyC#ps!9d2sg%m~TT5a0{1FNBgZpu$(t^mFfPS+}ZlB18aSgV!5ve&RgJ1j>) z^kE*BbTtIjM+|j6hx!I6|I9_*8>O{?YMT!>QY|=FZMpO_2A}X&Tu|oCK&!wMMH;+O z3)QqiQCN-FF<UZGz2rpoAgHFmVP=RcT3tvLg~yw*Z+1wPlb{yRw(E#_A1!kHM(RK4 zY6$q7aJnG0s<daf3RO9xh<GwutXAu`W98y?#pipTj9yl-taP)f?a+<GdgagUZN3H5 zuen6Bw>b#vL5AAxZDM}IXa|=)0ll$Y%f<8M>e!p83d7SxM}$OA1AX4pHW})J-moOQ zcnQlw;rsadKvY-nY`O1Z1sRWAR;lfW&~S|4GLGOKAlMJ56GNY<#b;Sm3%+6?fbN$+ zSCjbl+ba$WeZq1zi)~}vE4cj~VPU`9wM`#va9AVj)OSECVk=0Tk(!U9@l%=AK~*0v zq{vN)YZQ+td)gwf51dvVE!MFe)+zE#>5oR6N8)TCOW;C^A}BFk^%#O4*HF4Du?P4; zI9&)dPc-#658;imhPt{=C{p?vD6iz9epC&a42|jR`2|qEKkW2spOfBTtt_fG*>9i1 z@M(m*T|`}QHiHW(%F)FTF$KOv1on2s(uWrXi!hRx9EKM&<PkO($TB$C{J3gi7b$E5 zZl8hEWvazGY22X5a~tDc7-j<ep^K8A$~*<+99&3I1SPIg&miAD45izV{slbW9lJ~! z1*w-Semr21p|0Y{9SF+2FJoRIgKOcnd<q5b6*9Kkw*%4?xuEt|Fn<=GcdV3to!=i= zo+mlmK<Zf1reE*KK&C3l4-TZOj&o5rhI5{iw9~+Tf|IXI^G2V5)w*Jay2n(JzG;e7 z9A+$ef|afg*GHx>%i#}WviwwLu|J`(a9RLIAaBO*+3bKuTM<J%ggB$xj(`zZRq;$m z0J^x<Dr_Sr;3GVPAr%h+h>x=(MtaPn3EoezB1U=U3jF{)Z9t1l^7jOJl79lOYt$;* zC?Vi`;dI^8$KH1&J`Ck~4mVbCZx${Ga9O9)5YVR{R=$3e#9O8G9~!|~AV0u`6y>21 zLu#vd__U=SQrgb2EO%Hs{e|Ml@semhW-<oUE}u4_@UUYA^a<a6(Dz+36kiSzeB5V0 zlX_Im=qe4ZKjbCD>5OQfqr|~eXW7sg=jX`ECnhx|oz!ds@;F>bQ4Y0Wjk>EFd@tbk zD4Z5cpB4N`gps^H7Q=tcBkVgMx8Sh;iK`a&2Zee6#^x|MS6GgLojfaJm6iV|ovtoU z@|u9DEnG-Z1SPIgZz12Dx$x&Uv|+%L;j}(6y`)~Q_|1$_hT3gt?}E~K0lPE^&R6Y* z#>bN2wi}whMMEQ(G&H^?X^rBiAwB02b{kG-jlLbCvPDP#0lyX8c>xzbSzV`2AmFf4 z)>@OCSjhr={k#9cnM1gcqBukyQdh+@0MYPkik>z=ABNM>(D#UX@(5lwJVXt`jTL;y zj%S0Sq~qB0z1PI!+O*4nY=#Rd%9D6Hi-+;3l?Zwox5wagJoG)HPQnH#dPcpA8+@7A zjfau~PeQBm#Pc(d2umRz%9D5wiig(kIyAyR42wtUGEkWnK)wj>U;BgmJ%qCL2c2^D z2c2{E2VHXY2VLF%pwW4DlIM`wMT*}?`SYeuf~!i$5trx$UxH+Jk_<#ftRO##vRvKj zjJ#vs!e2xEhkC4u+LZ(U)F$aE{{gjrxe~j!fmX374~Za&_Y-(;)N7}LKMh}7C)yh& zy$rDjnS^w;q!XswCbsKNk&OW9%Wx7AZ*)Yu1ZmNEGY-w(rHVYFmI6#uq@{6atyT|z zfKyN#)FH@~C#k1T<33Z}!9)p>uU0#;E>mQaxo@wNG2Q>G6dJz|Q|q?Qvs-9)AY2NK zZNr{1Fi;9jH<*+cAU=pXkA>43MxPbrd#BccR9Rg%;E00}?pj5yfh59(6uBvJjpF;d zJbiIH5zZBstz%iI$kVVaUL%r6;yNH(;IIgStCm=wUDaOP9)r^o*^jV2!z!Q6P%HQs zlDa{WHRC8|PDZfX#BKmlILL)(A@D&kR)NGr)jy2#o?%!*j@DEG`9wJBkoY1qw+2xe zdSocz4JU%i(j!BGFmvBNP2DI(z|uoufrxNjtF-f4BEINfbVSfd`Kind#Pu$m8;w2m z!uH=APKZq{O?_WR1g}=@(v?+UUpUwNFe}irfHjJ5<?@^d^)GO`yl6Q)<0ylz;JGa6 z``|zD33eZt)F8?7Q<<g1@X}Q{^nIX_0=p`n0qE=bmZ@J1i>qthKt2FYXTUbSSE+mY zz*zfL3yyXom;=gmhnhZCcaTqM)79h6@I=nAV45O7mH8ZqZaFM`Sb&OPgN3Q_imwtl zQ4w2Ib;DTIFzSMeIASP9FoHK8!a7)<2#Vk-dMh}c17m7us6-G(_E#+=f&n^0-1mA= z5&)(DDH*=5VC)O0i=3u4G?LPWBF0@NF62voDsv8yrEnodMy=}Ul=CQV_rhs8+UHsh zRkA3SjKg7^T{dD%I$}Qqase)+D2HOxRk;+vPyzlD^dEXfg>ypH;dEw=4a_cL0@Q8h zWae!EZ?Q_U*WO{WT=64Q2}YLNye2}9V<DUIdRk7y*xb?rJDUW<&B$<j>C=$myp}~e z&z%U-_N>!OlL(n|dTAZU0Mko<A!u)?_YKsQF?6TR#kgr=b9?E6K4tNXy%G^`avRQ0 zFI@{Dta)5>_R@PGH+wJrDoQzfFRky<OLNCqx~f$hOC(eZ{F>-LRKg;N-2ta7fj*<s zFt=BQ?U8%Tls|!`BIZiE`g)*cy<+6VJ90h*<)4lm)0$XHqpip>9wMks-Vf%z2ilK# z@J=OZZA}N^6){HS{f@}8euc9^cG9#+bbHYS&=@9rwDP0dJAzIK_oT!`z(g^{M1iG> z;jkbhr+OAk<3R&wlxx(CB}l<?@N9>3zQL|lo<YW1o3tB#JWNIjN-=Iw$q4ur+nyWU z(Fv{Wr1uLT-@`f5LW&VUTQCg}56vll65bOYiI082Iixyb1{wQpq$-CSJa%?trtA)_ z@n&5UGwM@*DzgVjhi4ZTQj9@j4vL2{^ONeHg}B`aC*MxzjaEAyKY^VJpIHxVg%7b0 zabu_a4>8n)^2B}y$WL%0k~dmpNKrh}AQD4rt=tWueRUrS|1BdYN@oJ9SPE~MXL}!H z6-}oftmuxBg5~N9Fq|<Au?|CL5V5|Kt)hJtZ-k>GII#0`6(iy|=WZH4cbr%WQn5+c zFpN#ok%7X`PtL7T!&pt*;e8n{d+oG<g;#XEVz3qL2LT(@TKF3TkgPv-(%dfPGLT>4 zLW-gw9+t0oSRb2~A&Q86c!NBgTLA&yTEPh-n#?a8!bT(`+U@b0gQ^=`NKu4{E+igy zaQukg0K-z(DX$g4<zpi=;n9_Zx;g1hQ$*akd6J)Rg4?KW;~Mk2&+`P(=izi3>BD!< zab2e#!S#=F=-y0Ru4#52$W^$IA~y?mjoNq^8UB^G`E6nJS;4Pidv8!AZ#-OCoGJ5H zQvX3Ss)8y3E~JDT!X8z>Ho;utrl&1}yTa+T(T9DaB906bQN*tpaaA30(||01!_pV7 zOxs3PsSd>5qdXymY=hJC=tGYo^2l)u?`gT3CwcDz;U@;s%yFf>R6jpdfdj?3E>ibr z!sh-<NAGH3Q7n3h7LwK0LIzSmkY6iI^*<>5{ElH%9{vYxes1Ko`57qu{FdQ#bLJvR zq^yLL(s`t8w59NPhAoAGB8A^OOjnhgW2xD2PDFw5r!qeW)}f#oz<87UWs-VGp_N2C za+iwO=nH~AO_57mlAXl&2yDvk;#<W@NRvmgm2i`frOq+XEahxA)>DheB?Sx}Xhm%E zz1Eau2WO+6Sdh|gg8Xu0y1Im6W$WKMy)&J3Pen{$!nrn<H{+4nW?ZQn!Ewc#u?hiP zQHrb@!LiDlu^0g*UPeH*h~5}L_!NJ&>iZr7YDQ2RQ@UD>>W_e05v^K4(P<E;gEU>W zsfS~InDFseO0FzFD~N3%a5^3INs+I;K$iB%RTIPFc6fC_#Fs&77AiYgQe_AFa>aK} z^)x(9oM=Lz&-*4PXKkD?M&b-**2Xu=Jw|-SBbVih@1|O91Y^sk{8Z)-|4r~?Uc#>6 z?cQ7eBA6f7JZ%JDbOf(2gcLg~VR^o(X_mxR$`Tlh-K>eNG6DM#@X=PNLxzvLs;PTs zl`O+vCEKD(Vg}0JRJkI1DyBU0yV0zxwcwz`Z+jjzbO#Nc%KRlq>g+FennZOs{Pu&+ z9=1G_f*y7X&>Kc}g_4A0yLKTs-Q94N4jmz*IQlGJafJyYf6e4dov91bW^fqaab@MF zt47`Nnp#8Y8rS`RFNM>pV%ELbzG+;qW7Pj<T=R3J7mO@-sNv^BomDa0xX!s4HqES7 zKp9U;Z_^f%e3-BC=k|G#(WcMiSpd7YVW6l!<4ITJn`7!_I45cW$ay;u9fT8enK!xL zHLEk4qqms}vNT05-P^n(KK3?8#rJ>fZE7J0|FO5ZZ~=;@dmFx5dod=5{JE{<Z^Tr& zu$fpm%RdawzAD4z4m1{BKhY_=FuOdaqEpfoxnbBM9=+)EbRwRNn0U~)%1>o>0@X@7 z+1Sn<6l@x_jxc>n59fXe&K?+$!~h-_WYf@VJ_Xj8)qyUkfZ|Z7Lzuhqhfz^}D)Si# zf8U89n?gbU<K{d78qEmQ`!&Pd!(qO+2sDV_D`d_bRdT*Ht6L8~<f=1nR=G=5G50X? z>&M~6h*ix!TGzWJabHbQu5`3qNLsF{VTHIkreOTJ>bnv|&gvTr0LyKqJPd`_@gB=< zrR?Q4y}p*N`k{#oGot!B`8WWkkKuGFv$;Y9YYi(TLkZA`3SL2C)~Ir9WLFUOC!E{9 z&9c!$48{IWkZw?)!r!QYvR*e4c5osrUlgV#Tu4z8A`7V>#6v5OU+~R`nH7H+>g1;~ zXMo)K*sgA^v6J*7QG2~~ZQr(l41U6QtdUXMk@0<Y8BTqPwL%>>^%bMESe$d<Qwe;h zRo@RV^;O)iPb?WhAm*x8kQIfU4&AWeY+`lo)97N#Dg&oWmp&=ZU!^$bLW4bZ5!Mk- z7bn*;&9ia8VzB*eygdB-YT&?wiNe)|$v_svVIL^2Ql8Dk!}8>3ihnaKNT4at4}m*h z9>`F)JE42(>0zi0Z@(Xa0pHVeO72YtC6}vIbF`lOFlpm2O0Mj~e*<L%9z^S0(uZVN zLB6s&T`fjm-`B95a#*T@Xtcwk`#8ICN9+^Bh>d%-9M*|=PE041w&}GFh>hgQ=!}K4 zmM~^&VIsz#TPn*SdygaEOy141Q+s>a390)Qsq1ODpLSCB4me|r+ZnP`r`aPu@zoG> zNq0S1Cp+z9XQ8_uo-K+v<KqiQWg&yDI^uKRrKY^^j5hQD*P|*!c3n7K>0FOOlVOBo zhvWPZCP@6blZD<u2Em0C8CkY#)K{-T&P3cUg41%e&t2Clp2hV@GFHP{a~UHxp9p8Q zJp<%LxR9b8ie0W!lCYo1P(t10r!pf-=xHgsnJ^D;Ky131Fc04^4Xx(=IO3J$9xEX? zP)v(d%PM$Li;);~B({bSXLT!0nRPAOGXOQS`v`VE8@~G;zUkoG1($PGi=o*Un^+P^ zqCNPS6)ipZkQ-`_mR0!z^>e};ybH#};|@OWfhs?iS+q)XPgIV<hdZ49`{1)@E=z@j zkA+37t(XY%S4XZa{Av*1!HFQ-Qen=)hu;Z5Wte+7%tyf}9U^n)6r=N1aA)w*8FvRC zeeVuF`raLUC|3rb{8=1)ia=K@!X)R<ZCd%E(oXR^gAYSpttch$ahAT0T9B@K$KwO1 zMwDy)*9KE_I9<wmsZMrnpx+*0sGCUiEVBNf4CSUyQw%ctH`t0;8@3nb4JugcBkuJ` zj(&{KCeu|A<H`;r`(sD;%MelxBeG73S((!!A{U06l{wyH@o!-`DPh2v3Du%-z4(Wf zIqP}MmX?I;mAL_1)Ym4W#U>*5UlXjz72%w5vBlZzh3(J}O~Dk8Kev3kBA)(Es@M;a zXSqtlQqU?xjpijkm6-`jQy<?c-kAD8tNcz)2aD9l_ZQeI`Ca*!jD&)YgipaFLn6<O zv-M1}3f5#GqYd)A18Y>XUJ&#%!n}C>nS2SJ#JUG!P{5Ci6c4n75r4eCn}FYBqS zw@rMdo%kAoG%>rFkfLP77E*tShpS4Z8Dn3NO@wnJ%J%#Vn}7i|tB<7&6NlS*t^=|K z4$r@EWk%9fL3GDqnBwwxmy?>;fPVm|b-<pBE?3_U$MFqAJ;tH#beCxcd{2Sc@c9su zd&R)iN0f);Ml0o6=)EW(^bcm0y}O`z!qr<mEz;D(@UY84Db|Iq<XQ<>uHHp`rkg~$ z9rZKdGEs(kcw<xmQHFU2YZV|a9ko^obktOdboJQ~%X-B~T<>J_6Q-lIT`2nbO?xdO za;;A{j20P+hb3`ON=da@CuoRf-viTR{#>=L1gd(DOrAJnwcsdr232z#RCAo+aaD67 z=tVX8Q532sHYj&wAX$Tywn#OoiieJQI1d05J>_BjxDR28>Kzcv;xNWeASxm#7svgP zgyrfDBw=ZuWc$jf|N0H;6^bjVCD)M75sCLS)MV-QtA=jJh;;i>yx-C44d>)c>mGw3 zL7U+bLmrmf0oe8gPml@4R$g?G?;3f9o!XiQg2&);bf{_SI#|&7)0F8Ok)F}$2G1LQ zci4L!ygxepy0+~H6x-}>&@3BmGo4s_G*Lg+gFOF$F{Z5DMCqd`i#<vMRXQ{b9SE)) z6y^Vvjt8??6X4G+jTT_(4i{1sg#rkvNZhj9!j@I+mi+PmvG*>3a#hvc_?$UO7#<QK zfPzQ^C?c=q-rPLE0Fp4sO@PGQs1a+2$;{kj<i5CfZXT$JK!dfB0%}wWf(Vu>ptbg) z!FO99_0`&HwXKQ>QfgZZ`uS)-{eHi-_S$EkGv_{LBDUoJADEjt`<%1SK6|gV_IfXO zO9B=XIRAQl^@aIMX8z;f;WGXd%lHd-3v^)eiEjNdE=rU!8Fk0CPQ8JbE@RuBf1NwV zo+)lhzn!Q<#7$|JSAXn|7Tu0ibrAUZ`49QaU2E`!X&$#jx+BK8{&%_ts(j=DJM95C zM_(i{c(ohA3$cbw-G2e(Zho+w@`3#e54;QCa7rA;9=0&P<dX!27h-lA816mp?hCXN z4ELfFry1_4ZgkW?$#k6N8t$;+o@T?nJ^H@u`}=NW-20lyWa)1Ca|F~Zg7nP~2&{Z= zmWY@6OAj~;1c;;LD!vWl{C9UDuv0$KtzVjMoU7a<VTYDsu6D;DR5GcnlTkh$vL`<; zmcObO!6?h_j`bYD?*Xk}=dMd=?X#W}&{`e<@<<qk*0M^SV@ib9k}{C%6knHJQ60PX zeXhs(?#YPrMkii0z21qMNNb=vgv&6JrQjGIaQ7u!(Km3PaAbZf+Jly?I?3$|hZTAG z)LYTF<Se$LhvWygqDS$gZ7X{4K>(wwi4FltJsHw4KPUK?dD?TM!n5#IFth-eUD4;T zoNL_Gpx5#NZ-*;|2tEwWEa_ggQ2a+WIx@H!hjlpw8GJg#XZf=`x(M?+>3T~zq4(fQ z_qvZoJa9`RoRBUBx}n?A?&yaY&+V><3;lQ=!%d0*_3;lOkRPzeKH)g|);UhAgWHe2 zqfq$1yB#E1KGChOI0?5?JH)&ElFAFFv<*Csu_>5B+n~oe+6Hz=al*;rAN(`88A9sj zCxM^e!A0-E*Q<uy+>0vCq@mXsG$E1<&|Ul!-0%f_m9b)6gX(h*c@0|&^WTkGx+P+_ z-~Bn(**!EN+CRpb((_2P*%Mx7PxNv5aT%;NTY$&AqRZ|8^Y3m<NcU>oBr|f@cm0mu zU?ch{%xB~7=o;Mlo9<5NW8@Rv`ulb#UqylC&=0T?P|d^5g+o7Zha9fIO+0!I{jj~X z^ecaMmfnX;=2O43E4urRLg8=Ra}LtSfEIom7aaR}80UG>^$`zcY<J_wuIMwk=O5iY z3;jJkC*vNf`gxDjRb8q|B<E&%j61}3d<2+Jrd`<`J%P^t%XOB3(XH%^V8jkQ7-_FZ zU#`7wQVp0Lu78ti7KikWFT5@K`nRCS+M#g`qu5Bl_hJMHLczgLvKkNIQJ=?GK}I!I z6g5tM7fiM8>fexixT!(0*``6dq{vo*X3-#BQanzM@t*&-P~TIaSN`mds&Bz-xsDUo za2;;p5{?(1eGh-jd_O~A;q_bL*z9gd!0#4Z<Y}M7`DYi|id%Uss!-*&f%D|0cSjH4 z+3#q3_Fo6j=5KlSS$OuFqdy(Q3p|RppW>Sldf0T(|HU5|&vCI6dcJ~&H@^X@g|@j{ zbP7D8@b%rm1r`_MX?vo_<p+hHxABQD#$|)}DsJ*YDWQkGT=#XjrMhP%LeCp{6Ta|- z!e73~?&z#0*b;YTvWq>4^KRPa6nT(L+nnN8G3DVd_OEh`UF-~*m3uyp(?7;Ng;Q;e z)Vx6H^avW?3~)J)hxi;Ue+fCy!KG*5yC>p}9N7)g)=$9W++BI1zw#1X)xuXHGOf}X zW`!%^Xs?hT48HmDt3hR4FDLk3-hv+P^u1Vc+wQ1u0vXNR)yc;3ZCvSQ<FSYbZZ>4& zP{kI2h$@ZU(Tm>&!svRq&_9o9gcIW=Hx6cHVxO{cIE@T$e=TnRuDd<K__y$OVm$Bi znjImN%qry7)I5!``He%5la0eY=lX~p%Em#J&W+JSpMd)-bX)u+8^@<`(YNvSYMs0} ze~tEe8A#t<i%`kV^^%Z~Lr#aQX!ICZ`+5Hm^MI>6|1QWLH$;0N2==-=5^V3mMd#wH zkGtyt1BeIvkO#tD{R$bY=znnKZT@Qha$F1?yY8NMryQ^6OhXNH_q=n^hx49-j`r?( zCx8r!ZtGb5aJryRRlx$g=bY}J^BMH?uzybA_%(t;lttCta2Bp!30rU5EF6A@pM`&l zc_6d!7kKCm(E%UD!n!-w`sXdjMX$tHXMq7vxP?S;q;PnR^$rElHD472>|XW}G!5Z~ z?f5Eb;IG1b)~0-G#I9bm7fNv`^Y}?{?+%=KFTQ&s-pz5nIbyNU;)ikgC47_40y^{7 zi1$3_Jecp>dVCyb{u|#t5xZcIH$<#`c%i#8S?XgKA*%zv`jT{#(W_bBbF;e|b0nYW z)*)PZKfa!_i-Lu%Sp|#s$M>fKp0hTFl6Iu`w2-RGmp#!V;`->1<=2h)_2=^I4X?wr zWt}Wor1FK(2lA7UqkrZNi|qx1Rl@UzSJ^7*a*-VU9@Hsy*UO}K2J&|zdU(I@g#tD? zYXU8R>wTh6p<dZ<nKwt@JPRtt`wmb~*-cJ?c>e(khKLe6@(*$T17d;zp5GpQ#69yz zGJg62EdG7yX8zdSaoNr4ZulX02Ppcks1Nx34d~nWN$~lfFiwZh{}l6pD>nb_nA$f- zkDUv!`61d$Jq9-X<plmE(Q6(=SM#sI-?v5&;<5wpgKo|}ApwdW+;Tp?dm?s)?)OAL zmmimbKz{OFcm&jO{Cq<Gk_dbqmrp6Zzkc4)pTten%!>4WjXQp!lLN1nV->eW5WIGt zi!!=BTIC+qaF250>MqxX2!cPwkUr(E!}7`}x^-Fa)I&OMSENI7N_c+^g#t%#T#|e5 zhG@>Gp$&n)jUO9Ebn8peeG6ZObX9SfJb!W^&!2K9g8$szP9VX2{W}MD<{xMgzGF?> zp-kfZOLS~PY^n$^)Wge^hqgmuscVJ#>+~!bOqsfM7M}%80-k)wZ|Jx`D5K{}y>iLa z(=xy2<ZHKs&9A#->|k%b0Bm`~9b?+$X$_Ou0T`?kw*d+wen5id6Ww|*AIBHvHsvb@ zI<KHrF;8Q=a9%;H<3EyP2vpuH=*H;ZKM5l3I$r2I{u-|Q9=<yNjGrSOOqBlaeI)7M zcrT*s+&!!PJ;(M%g$waL_A{>m^Nntg{ag1#d*M0s@}}tN??4d6DQ@216de^Dg3aP% zq3Xl^kGn@4<{vSPE?$jq2o_}X?!aQiP;v2dk-z$z9L!Dcb6{{~OMfUkQM|LL18^|v zkDZ~&A76;>zlQGDx$YnK-LF}iUF#QPb{y6{Q`R!Tx}y)^SqMH(-*c?f_kfy_R?UC5 zTYOs2SSY>^+AMw&V*DyR??!y}<<-~31l(bki<d2vCE~H>AaG~D3932QOEQHIpa+HZ zBX8hup>KcoAep=O;D)X4hJ;@IJ1!!v7WZ5p$Q>WW9Xm^ZDWY!tZsh)U_a&6{jAc&L zr3s2pr1F}La{m+P=*>~@4H)byv|Wm?Zp0e==G=4HT$ul5JnNQd34VVX3a}g9lg{)D zaV^g5;WuJe=zdRhk^G=cao+FY5qIP8Pw>@8Fz)Rj9v0?5C|&dB@7@bp&~<&1@A_Lf z^Pl+ciP(j7{eJmz8J3B~xPRzwNw)DN%cH_1zUgh8ty$%iF68vvID67<{7U)7ZTxle zE7`{R5~7yc9ld`YvKe5K_(_)Vk8lH*5T@*tiad}dxapsW%TEWaJ?idQ<=^{jxahy} zZG$zkX9{8vaTE5e|7Ohc!7HM|iTLU)^Op-2`gZ*Do6z<AUt*wdjo9xwUxf4n6&pXv zI4{C26?~EM0Don+kCY$W8lMX&JKx=s$PS;!`F5p~X$w@f<h2EQIFq&jA;iR?Z=mOY z!B^jg=ynhf3-dpTd3$Tb2X7dF0n-g>zPt<ffWyy>3eUxNPsA?dEgq5|e2W_)cm1}z z<#d0`>v8#%I*(VRG$}{BLu73gZ>rx^oyR8heJN(>gKd-gr|4T`sldK@JsSlGXy3ds zVjcJ|w7tmpa8Yzt0Lcl!;$FvgzQ)uHyQA0O`TyAV{AJR^#<2qP{_-Z+SFdNIJfHPw zp=$UvCVUOrUV^VqIDZx9v)t=jqZhFC^N1C5ohRJ=RXFnoeD_4Wn?1fcVy)WZ+i-X< zzDZ{(?w<Gj4R(qmRG$1KJ$?mezKJiA;NdTOydm257hn<Hl_&Z|`#H`pe1YKz$D7Q` zFze3>J!Z{W(qriKA$|9_UJ{tU7(IC0<bh1fkFcNL7<~cizl+=*31J<_MOXXh@|WDQ z@jFE4^FD#}neLVZo$tm)f9-Dx)Cxpr)h49S`I5I{(BH%jkK?OT$X_0ve+fw(Sqf!w z*zc9sAsb8Et37Ka)E@ZmiP#keiClp4gNX3XccTukyCp&Aci{4NRe+(h3j7|O_0XfU zit263zg^Mu7eig$HjRIUM|sJe2QrJF!e+HQ`qnapeY-n0_yzAdn|BOCZkV@ZE)Q_W zP0`Q5wc>c09ACzzglOJ3_XTpi>3S)J2O)(gAd~mar9(U&LFfMhkD9-Wf7D51(Nf5e zCuM2kW$0%FU&TFD01zgRfpTGU+toMV%3J-_iE`l@Oz~^n)w}!)J%B48%Umr!B(Pt; zea<5oS~BprJD-vZ0hcfSD9%71%+C?Nw}Z}!3eUt>N6KF^qjv~}`CHs_l)EJX<+E|o zT7QcP$Zw8*=OuW+2u{2m-+_Z5uQl;w<MSWH!!{j;LxoA6J?LA{W)wRUR2}&{a~MSN z_GlI8G7cCEQJ7EqbW6miJfjJb-i-kdkWX~$-{Z{B@s-DX1wVqv?1?xCpzoe&hx`C6 zzgB*%-xIx2ew45lcU+2Og0ADWzT;!gh0`a#Iv*|yRKeiD0T=a2O!z7=;V<3Y2kE3z zhQXav$$ZD1EdrMM#M9X48_Xto+&Pxse95~vA@|mK5v_|$?)en1T^*J2TRn!4yD<6$ z9)x9{e;59}Ir_8T$JPB24*;Zp5M74XxjABi<>M}j-i}r^itUbAhx*IVo%6F&{&Md- z`-K?wR02sQ=IKNrxh!5K$Du&7JDPhJ$T76O{QSM|_>1h=M-wC>9oPN1e?9t>f>UZ0 zu)`PX4td-Uc$ULfA?~;zI3eyZnVJ9K#N4KD_{0a@cy5eXto}Q06bt<*{tf5<3twGQ z6N`37FTj`!)CuDQC4qdRTQ58hWB%kHIbrClaKGb7xCK@V#T`0kXS=b(^?-*h=<HnA zS+Y-D#m-Eoy(#*Q^YF&cb#gXEpf}>Km%F?6_#r%oyVkw(6HttO1<Ny~FjNy^NTn6R zQ_&h|k|&$t8}4}>q`+^yk6X<v@%M-Bi7)U^JYf|Io8x=zolxjfed`CUlg4wP3!3LK zdeML!f|=n9MK5xbQkc(y&p-S-WDfr7B^c1Faoyec3YKoekBuan(-Q+mC!~qNEzu_2 z`WX!TH0ZhcLErL;Ze=;F;%fJVe@H)JPsHa79r$he0XpzT`2jlcHu+HkUAz>$^fj*I zgf5<dP8Z{=@6TUC7e50w5}B~T5AJcdB>dn_xM)hQ_7%>6>TF={Foz%fJV1iw82L%0 z;vb^#lPmrGVqZJCvaVme`JGh!CFlEXQn4MIRQx6L-G_WxxEs_J3Uq!FlK$ND9lIH@ zdyCj8FHLsu#^`rH0i<<zCiAog7j42<=ZU}Mmgjtj^YnAfQ?I)vnWqoqqAA&hS15nr zERaXLLqAW>T7cn<12ZpkeJ|zP;Df+8^nF0thQnVN4$1e9La81dBFD1b@8t1eat!sw zl>kfG(B;pr=nt2GgKe9o)wtX<A3Ts(orA4%S9A;*jCZ%)F&W;$1G!^2o_0etcs3Y+ zcSk}oZox(O;H&e=UvkS&@emZ!0M*+Soq#3$LffMr#ib%KycE5g<jzL9|33WK71d5f zp8U2uPrU%^@j19g<hh+)$+OZ0``sO#kB2|nHtHR?Xx;J^$UX+zk=vO#oZZIjd}qj^ zavF#P>=*nb;`@7W(WmkCZ{uKVq1?+?+fkTT=M~`93-fhcJ29@4U02C$KJ7(_0HQ%l z$Mqk_77AoXHZch&p#tiW6)`W8L0yDXyQBA^r&Vn|ZA$edk-RTLld>JItJN{DlCHL) zt2amSOYwg1K-*{W6(aa*f6vQr!ID1b3vWWhr7}7ti?6tg&0kDdrME|S7NWwDZ<)hB z5TLFHU&O&dzl-HO=pFb|n9t|U{{dvRTcTIu)Yo1HZv^)at7LkK94B6gcwKyDBy;gY zNAE`R3^e471i2*8Azlh`)biu9J<$i`2l%Ux$`8=hPstCmReyC3!b{wvzu+Hz1v>vE zzPgkar=Wb*ywAF@1V&Lv7{cdW7{ZHORK*uun8Jl>RG9Zg32XrWgXQ`bmg`k8s_=7s zQ6CuHI@S-E_MFG+t&!Bf_SVTjy)3-QmzCRiJGhMlUkNhzWsP3E5ywo+bKF<-_zgG~ zuIek?BN>P4xRb9q?&P-U*++pD``f?AO2CA7TlASDaQIcd8!ocDqf_4l-8U=;{JdI6 zi<S8_hU*8XyvCs)U?X-f9@0<bvvTPDL^uM0f9|)k>F$bt7xZBs%ntk{#QkTuQMc-2 zzph&~S&vIFkR#l+3BoK|gL%s^EXM>4%N4lm40ji#6Zu59-h;a`42$TtslDY7w@<y; z`P$n)WyiKp*)g=MAO0TR?xjWZ1=$__5guG=8}7g1!5RD}hmpo_UL;8QQ6LG@{Gq3v zZ9T168}=ml{X8@&!{YIqS4mgjM^|r-D#Y)dXuAhr!KzpIdmL5`qag>Ya`2mdc>KN( z2O)m*c@DqN#;K1V0tw%}LxSJ&MNy##Um3~6xJ*ayM)DIh<ctJWMQ}p!`&#({{Jv3s z0KadOAHeTB<wptAchnyg3SV=NPWY1>@mS$c$mX>3Cr+iOYWCunocEZmd%~Z<O%C0k z080=*30VFWx)-pdR?YL#PQ`{njpDAA?k?~J@<HmaivzIK;qjL2@II7bpX}I%_aV<d zK~;+fy~RB!dHWmiAbEQ-FVcMg^<RpVr7@_tW9$A)E~e;05YJQ3h5+NbKhD3${pkJy zeA7I^?&v3wsej?F2B+oT`e(S301LhGV-XLqwn}JmtbQ?<sb9?Q=wZCh$uQmU^IQ54 zsL^eg%uGDzgB@25&vCC&;z?0Wi05mS+<gGYLJi&VJvbKP`C28Oci>nIi&wEP*jR2; zIreJauCzUVJNO;ggZO#2{N*<GISkLyvu`K#?De?z-R{~Q{@O+B0>bLZ(7DA&L6bzH z6|u>VZ9&d;WC~<x3;CxDi@o>odQ#2h`1LGULHJ3)vw^1wcoNP%csh<BcU_9Rmb$wV z@ca_)N~os557ol$;OUgb4toq7ZMb%PAsD<DVG`ct9+YeVKgWY?14wY@77Xh5+g@ey z`gTk^#vuqN;G?+fPulJpw7WP|Hvz|(TQKhW4(|H0yDQl?zKy&51SkUK;pg=k{Ip}6 z0CPLGZDY4fjXa76FNDuQ0k)s?dL8*<_mad+zg|xAz+J0x*D>y{WWBD!U4FQctQXNd zi|-$D_-y!Y$2MF$CcZ!aV}-(a+wk6r2i=RW;yZuIp7R56hBrj({sNnryCot0e}jvD z;%^Dm+SC=RHapN2Pn5m|l)E8%7XE(8^_9p_i#9}sSK#aU0IwC$0r4CL<fQ-Qih`Fp z-N5q8<Sb+=4oCQs-O;B2mN5)S=~cK1R~jBCxN<G#{@L!@1XK<hXq)>yTrp6vxwm7R zdpm9im0i)icfc#pJvhOgWq7dRj^ZJ);5uCUo9^0%ycP-5t+-aWxWse1IGF)nJGK!` z+UDYj%~erCY}Vi@pKP19&n6@Kb^@}W#<cxo+qJ*IwX%%5ABq0y7>i-Wdpv@>e(df_ zCVTtFw#m)|bc=yaCYx7*ay#vloo}D)8>9dDC?r1E*Z4^$`)zpe-T0;f|HkMYfcZXm zb)tIsOI-O?e>Hyznr!+mwG~a+HZOFy9OhT(r?_a|OY8ysCAZAQExV&%V!B`MZb=sP z3S9K7Thtq)k+-6%Mccq`!c%Vd1LH3l*cb-3EBZ?e?91+!WU{`3iwrV#;t83j-GVgO zZ7;FxrS03`WR%_p?bw!Y()f}#$h;?d87$Td!D#c-um1r4ufS8@6g|EqDjd9mC{Vm< z=uOcN7A1#U3x61W8dR+5Zavc9`rfE`tybN9Uv$!Y;U^XsV4CCSeNk18dtQIMJ06l_ z+Bo(6RdQT($M;5OfmQej23WW^x*0z|^;O{JebFoLLyaZO-qrZ*xIfy8LzW!-<u8Bv zx_hH*|F}^28N}0*-XHxXejbF|`l9zo2Yd*5#c+K7f_tNW{2u#n_}kqZP2%Tqkl|i; zUvw{iavHC``l|Owe};oYUXDI-;@|Q6mB+*8XP?)7Ao>~FR@^4f#AEr~D*$JI0ePfU zhz^UMd+36L<3pcy=u4h)SoHK~VEWFC;?h|Mzu@3#0mvr~4z+_hMI0P_upQ1_kUE@q zY@vU_ii42@=4l1JM-NM9MCTr@4I_uHJi3lv51flj`;NvN^9NM;NBKK?(ZM0lh?1u~ zE$Iz7n;e{bbnn3{(Z&3eq>HCN%{~3Fq%UMV%|4s&v><HkU%(-;`3T=UcjVBd`N*)@ zu01N<$lIS0Ht}{gJ~M3Oc=b_7XPay8#4+KC{sqY$&yo{d78zV};@Cx)I?my<^~Z6T zlH<-QaE+dc*54@kp9|&ZT(%zXA9FC5#GZaa*ql7##IQLW)N|TTSXa+&KgESVsff{X z)t(nFBpXh~@JoCT7-0G1Sir$43vjhU0zBx?bT9&aeAu~8^y$(hV5^JA*+1iq0wB*% z8XvRB-|7|_)((YR0$z_li+RxrfF{|4`CN9o#KG5G4z@4-*ksO@hCLZHEXy_`d%8A_ z9NKrZ0mq7T6Ou~f&E?GyXfj7ou782y;0sR1tZ=SY%8$8)!rAg;9#TljkEcPuO0?B! zdZEYQxxIql=ec#j+nkFLKn3Z?hzYVOSe?8xr|JCgCSJn<l+h?t&7Q3Bg0?F$!Wa2R z2=rmYy#5*z)&68~oai-v^>NSI@E%1@*eSx^brcsTO(aE^_}lO{oM8Co0lt7R9P;|~ zS%cjd^TC{p4RSt!AI07Q3>P!XF>YKW#OEbpM>e{b3Kj~!y=)E$nk<@t&?dfbj7{O? z+LJBjrHj!U2lfiRfbC%TJp3K3Yxc^p0Rr?hj0{WXl?4Ss8BE$`$z-62vLB;^ZF}9# zdV(OBz;7+Qdgal#ta1dZ?%QQTeS1US1PPSF3)r8(WJ@xd6?l_EVQU{If$zu}JN6*# z&(=T`R&ackHSwB4;c|BfaMfFe1jVHn#e1YSdJZPw9BgR?M9Jf4p)k6@?I$C$Xk$^- zFBJcZ<1ychaKX5{rGx+~-a^!FB`?B<akVF(2`Js>pD2SsjY)r@ya+GcffXtxTiDL0 zyFRacfh_y0SGnWY_`c-ULgBS1;R#n^q6FV{|9st%Zn#%RWL#b!$@3hl>A<ehHcrD_ zZMimRxjq7Bb6D3!wl}g2`Wb~6EjTPX{D2oe^KGjzwYzXf(7@}jkGMS-@z!s^FT-vg z|4!09ps7FUhqt}aF2+mo;@?eO>>tTXcLxvMvq}c}Cf@D9f_L8#TvA`)F8V#Wh&%)@ zL4j^R^!ft44ZFU{`oS{sqMM@xc6j_|xoP3SiqmiL9ny#FjHqY9$e}t?-yst46?&wr zxA9`P0JIvr0pmd|@XN6fs;%o=GTpgX_<g%@u3dO5N9Y!wBfQN<?B?;E(ZOKX4nKfz zcf0$|I*uXy>6qOk-X$H_EZrHs0dz}g%De4RZgTFjH^QR|g}d!a(2)1|-+b&J;IS_O zk9ZFr8iQb@9`}a;sZ?X3@Lo59bC2f!My|RKP{)_MSALDi-gTe-#%6WD{l*UVe*2Aa ze87Gm035jeRIsUqNi;{%e}N~A@If=a(W1$T@kPy%+R$XZv8Z<Hsf(5_+T3hS6x!Ph zi?)sqHx>;wwpT~CEUFG|869u7whk}uS+Qt)qjCA-B{}yjYV2sGn|G{OR$10}`cQLZ za>wagMkc3!=AwFI^W+xoVW_!z(Uw|mQCkm7ZTvGliSM<jwR5bIdAqg_+a>@a#dxFM z7;KI->Xp&4i8Hox?j~A86;8wE>O@0ZMjG2O&xOIsky@)cI#L~~Y^_dg)pO0!iAr)M z+gsJmLygMV=uoq^Q?KEJ8!dLhzO5TQ=kL(N$&u0VdIO`X3|Ggrsb|U3WtEB1@zyGI zb4G1!tPo=x8yXs|Ra>LudJX&C)~Na8;n8hw?DjT#U2~+_YF3AuS2o5gL(K_4re>=# zp7e(I#SA15n4<%)jgCyT#wTkn?aMu{RjYB<T9ac#4Zfn>SZR${Ia--eu8nKZ3z}Ov z;hQH12OAu}>wa=18C_lP<lt>+GRrb~uG`60bEw(cY15j%PT)a18EcKFhQm&`Hf(mW zey#CFb(q~?9h<cZj+-M}^xoR`+Sckg&jE+<{)0`P0KzqP)EZ+1h6=h*20K=5x+C6~ zdTec?Rd0^SjMq4|I$LZ72FMe5!Kl2>&WToIxY8IOAJu1Xukn3&YI346ky;x}y~o+X z?QY)2@KQtw9T;8_XLz@u9U4JYMka?F<9J)YP*{b`(#g8ifgiX7<YwjO$>vb&^ybJp zpfQE*c$W$x0n9?BGQ4@BRc&FFwIOp@sa(*1QCUynWt*e;c_31f_(qv!G=lk22&=S) z^>TX+T(0wn=eI`me%COWZPAW&j`cS{dl>J!9k_)CET7K0o~*p6;#bx^h6BV{blOk1 z(cz@F=vm0`#jF0Aa{>Lp;%H5=2m*|@>#Xe)g{1L~*7y}`oKwWLH(K-6rRbXCZ=i!Y zF`EC(nqMD9A1ThW=FeI4E;h$(o`b9Z!J4m*qS86Vqpf`&bUiY-52F3ZLUB$suXGLm zDSi!q=FWS$40z65^l*V)`Qf?I1AF(b)id*OX3Wk!5@CRcvTHW)vgW;U^rPb8)_jjO z|8*RFu6V39v%<0r<dHbKws?>=f6to#J&yJk=d<|$^j&~LN3Q<A#pq-A>1(q67;FCq zFJEB2oMp}5E?|T*DI6h-nMf~RJ^*tiopY`>TXT<H%+?WWeLp8wE@mHZwC1D_HowQ3 zKNMRhZ2q7%r?38!HD7-q`hFgVUBcDH@3`^(*bke{hg$Qui{VI4vF3E&7g+OcPs7#E zvMCv{<~!zu1H96j@17er@3Q7c=7o>E)0*FXKzQ~2)_nb;Ve?0<IX%FyS@ReCDsZYE zx8}zW4Ig>vg9Z7-|LmI&#MP%*^Y6sC`aKA+h~^xG_J6YWYyGOR`KQ+WV8J>k_*i}Q z7;k@V@j!OMW~+=IKR7RXqIf);4@R?9KaUTNN{>IXcQ4Uq-aF?NPg+pyJraL!FFtR< zKNQ~?EhsH0o_Z9|78fnxKk-=c#Zi3tM{v!<IF5MJi3^J7;zGHqJpU8LlNZGGg&&Te z{gLD28j4?iI6kg4SUlJs{X%%J@DraAJ+568&pBMWdVqg9l&E+ndz(A2*vB))(vA2# zr+C)k^GXX!mk#{-x8f^{XGDKq8Y!JYT#x1r&iRdb@!>blIXE6EK0jKy1{zPL9adUA z21(fqh7`?*;PtI2c>FUzhitaW-m%an!4oc!mFJH49vFRWuS4ah;lwW<aj){<QS>pz zD>hrb?D#!#^uR-<o02nDA3J^%7YUi;qdC0cy6?Mw-Z&4VJc7+!ySuD;*Fk6&;&dpQ zt!j1ry#hKB>d8*5Bz1h}0k+Zv7b`OzzjH2{7uqAObaZ^@oaiGD7f-i#D-s=lNZNbY zJ|Ep!Iq3K+&xuNh#|M6|^n@ZLA8mD<<McdOG3NGpu;R;^d9VV@aWW5l1*@DK-@;co z(uQi)kmDN<h<;SMsB}l^{8LK3N+LN=R^&LCCoZy;C(f+B)ff)e{^_{d3JS-cCmj>C zVzU(uj{l0yLh{*c)q&$L6{61;pKl|zO1|-ric#@7hd)wUTs-TD(gmeg>7sH9tzK{Z z@fh>_=-T4*j#yhf#yYUlyV=#UBD>*g9me7PzyZ{k=V5Csp2~jMZgp_uU(SuLD;@7P zLY}d5xA9Lr`8XWSR<D*X<aQr6ThZAVIsRQU5ydLZ#y>bT`dI06#pf&lw#b&nv+w*j zH>mFy0nS2-1a7Svk8qn4o2{yA{9grJEx5>LE6p0eGm0K~{n-;FKK`UtV~v04F=GMl zv9hZ%N*<QZEiFnw#OkHSf9-EL0ykJO)cBi)=*OjtA1ZAvz3_CrkKcW*x@r92oapg? zxwf>WbbIOk?GF{tI1>LqQ9R1#+v<nLkIjwt3Q;01S&7j2?)g!vr_?OnR{C-2euW~w z<KO+zO;mbDto&wXMh^K;cXi&3{HC2u&xqB>OwY)Xc(#?Qj348)AIcYDvsIRiA1VR` z<^9-fg&^av$JWgK&x$?9pADvG8+R5zJ48?`#2C!}QE0X*i}8(fqSD#L=W+~O6|09B z?*WP&Rl2XVWfx}ri0dEv?oZ-FHa%2&%hl(M7f(F$zP+W}<IzpmO%_i(qIklB(w2DV zHSuAO7Y|@ReC*;My9rC^Ct=!(5N1H#DhURl&NZ?+fT&VxZ_Z|`^%q}r5J7EAX>aK* z-!1*#E(IN4Vb%HK`>^#M{z$QRL1_^{@}&76Q-+erXf^W^uwko}#f#rJ&*(nU%Ie?6 zKP;lzbDvh@F5Wvo`q8#)pD3Num!P86r;EQ;1WOGFy!u4ti8(?mD91P6i)~+TBk8o7 zZ~=|v4ORdyzK{4dS=yp^5cRB{8;R}z0ofA_;v!p-w(KIm<)?0O_F<6;f>sYL{=EYu z@-SR{&X(0Ti~m)COSWLPTamIDRRBxdOZQFQ<m3l}xm5&<|C5U?0tlO}Tvz-kkwOR> zo2`ykjPiy-vz5h)-$YSEb`oA~#joOTk|P#`Bam8cs{l86bpbYFeqvOe{E==jY_=j& z@k4R+c!Hjn+0}nTmf$&@gJ<AstLYSfa=uaTXQKHIyBbt4kP@uQQv9D}Lq&$;1V3t5 zzuR;29Jf_N3dYUm!~U-ucS2~{Y*mYbtJ$}eB#LhVf&9oLrM*8ceNOni(x!RW6;D5` z_?#my_}J=rvb3`F%<HfNyzVE(r`rNsS)llyL!#0(kAbfC9Ccl3i`-sZdHB4G0qt8# zXP1Wm>$=h++;|9Y<U;`pI<;6$rPXY;Qa$n2+_YqQh>KQ@C(dlJR!k>;*8$vkd)YZj zK2S+JzX5M_&7-ByZv&;ewDd&j;dt_z_-UJTUU{X}rHTLc(5Q5A>GQ?Y7Zgu_#_6T| zbfm;Ls~(d^P@cKB=pNIKiB|k2g^64PtL2he11r?h=^BufTCtS){}iIq+Tt0U1rE=O zo5ZL}R$B82Xv+h|l_EFHD=owd#qxI!dHMt9t)2J1<dv;zN&KED`mwAfG))i;*5I!f z^^e9QtU^hA4=CFkN}nseTnRsEjujAzZ=C~lkWGxEvSJ|Q6MqC^e0%A3rBgg<g*)PJ z5cQWiVt5SBSbYu>1#oO1UR#<}hK<9p!W;1(3}c&;40dOwG2)-HJHbdcTRDsPdcVDL zz*e#%{(J1Bj{*dqVZds|C*t>z=nF9+v|53Q`27I0!@vIo-v9H(6X$<Scuj$H(mE>> z5r2j-ElehFw)zk8S8?;2M|pGOfzpMgt-1`{0OlOz;46`vxZYM%A=o21d@G<3Un{g$ z9>h(-${@u5K|&*20(-G42Ld%`7nd8<SXF|~p~lJ$%m_7BS|AT<Ec1T=HJmNW;vavA zdJiECY_@d$@td*lOzH}A&hI+J&D=Er{VPk?PTukU(tTSA!}C6ZzcIuD{4<A8J#W*z zi{c&El%98@+k)7yCB={b`%t4poMOv<AO8#Y8ku3@w57C%jQ!h=$>;J}=K1)S1#A<- zHnZ81#RuCuA35hxH{_pEb`~WVA9;c`lRf)-@nS9$+bs)wxZ1Mg+VwXPtR9OGEZrOL zEG^tsy6Lq)Q>_3WX4%o>Kl0Pb7qJBB0daa3nk~CIA;^iqY_?qG@y#5uUz5A$yBB!~ z2(Ea~M_StO_?-u0?gR`uUdsj^zY{BUN$D-6ugCK-<Q-=`y!WHUz6GTRio(cC4^MX; zf5)ROHwR149WZL7?3RK%z6KMq4z&M1B~3i{vcp_YKLOQW^L-MU@)1SYA!Wa1r<UM4 zzI`6_CdJj9cHU{JtK;{|ouxYfK~RLQnFo1zducE9IK}54^$;41@wU>YU&QklCVP#g zla4=$d(ZejFPeAFywcW(O8wtZ?F1LrQa*<ZOEk8`%>f$oa?8ssoSlOY(l|?v9N!FC zNLPU>V#|RXe=~|cURt!pfh&8mgvJ4Ib0#cHag4g7rn(@_we-Uw%_Uv21i_S>9JwLX zTMAz`yWM~gX9;=(tpS@Y`)&*s>f=;@EGoSmdy5d{V{zWH=Ei>=0V1g?pTkY!ACGeD zitXbQrQ`Jk2m4=k0&-UTw9?A;;F{$wPL-vljeq39oAY7$XX7t&{}S|lHkvJaZ2Siv z>Up*0hz;l#ueN-z!PT6N4?V*TG))@*&YBaA82h&TsUb*ksx8lHMuxJartuH3Ri2&5 z>z1Z8015VP`A9SCZb?S7>u%XYv+Hj8J%e>8(ptjK`0EE4?O?NI<%~b#2@snt{bqdE z)1uOK*b?_D(vnhG%FOutT#sjS&3TLE!i@jXKY(*%2`}UCViL|NZMn4M;DjeFNo8i@ zEYoDLv654_w33`pN9Wjy<&TsN)O4$t9$xxvaT&+PODvybxDtF7%g`9#Gaqu=mM8XJ zd;b$)gzk8FZ|QS;OE=wFdbspJJaSEZ<fgrQoy~%;YRM9VS7ozhIE+8&nP!qI%VHQ` zjk#O{env<Y2+o$$Bxz6SyWdcq;&Hgx@(ael4Qc<#(&zV<9$cbRPa0t90pmXqYIuQB zLreS@e-V?sy|k?~86Q$QBc9xZ9|z&bj!mUy@s($kCQD0B!JnSfO&i4VS?<30yC8?F zN|PU6yqAAUH*F~`inno_j-Y5zH02;H`Ck0Vw3h9Lg@#LkmJQe6Z|%<~7A)eJ*^TA2 z3si3;jF!AEe%IUxV_#GHJm`lgF*sJsJr}?2(CD*|miAt|7i{LK3$FdsK5E3oG{yC{ zlyTvDQ(&|ta2a9LQoUt_(Q8g{FO*1c?8MTpWrR^nnHC769Eznyn*utC_?D(Dz8iJ` z-M@LK<s$Q#^F*=+mN6{;)&X`4$*W}rqZ%tkUfG}J=ZayhbQ=Qiu^e2~`k9@Pq~G#q zsSQE63ie{ju>$hKt1a7A=4#7Rl|gVzHWeT^`?kzd;j(dpELT)8LEJAaAylwmuop}E zls9jdnkh4HmVT*i-iX$gFeyVhEh|#|LFl~hS6ai%Epbu&L0a!TH)a`%;`>vC)>0A0 zZv*3eN%0D!Se8^sb-E(MkOW%dp!hq5=sL$U5GE~|PrU0uXlB8m$_`BuXW4k-zlG}L zM|<A|%$E(9#Kv;%#1BARJNyU56OIH;`fYG~#T7?vi+651B|d27iOOCRV=c)|{H+A> z*^T9>i64U^Z14xzD^5M~&x>atsk{{LwEQvg@6HPp@I-gZ6%+pi5PNLt@Zw2FD5J@f zmir~X%M(;KTXL89yI{o!zh7Lj0HQ1RA)K=`EVNL7+K6G66J%LV(i22*u{0&YOcO0E z6-kH|e7L0%iN6>}VCvUkZ*=sDXkb}D0ttlAuoNGeXIL7K@EJ50TM7<UJBucmkY&j; zGJt3qGBVAU1|z=CPaa2TNiH&?g=Mgyo+J=0EGtEPt7oz}63Z_UC!z%>*>Xk1e@26z zfIgco@k0!)LeOlv6ylo!`sYG7<rJuVfF(PKKSPQB5o`imo+#}tfBfwDN@%}^R5T~- zS(bwMOMt!4e*fBQOaJh2@r6gcy!i43RDd72NjBTZAr?GbeB}`zd+5W((~nehASc6; z26*-s+6;)Vp1rlW|M+WUZ^h<F7_bok_#J*~*=#ZV@mBzs=dUx?mQ!F+_L-TnkonBa zSQL78X84e=^|(!`4gPr6qP#O0V`1F!AA_sdT0G^5udDKew^-zLJ3w<GEO44O&OjQr z2<d=V<!V^iGdG9QjgOYDmDztM{>H`AQ<6T`=i1U$zg0ZT?b;M3EGjwv7M>;2CdX&- z$MMI&ha8C2fB9r_@dD`AgpBbDiyh9qv;_xeUz(4yc;3vyTIg<OVJ$W{(`>=F@h;5j z`4`)Ib4V5*n;DYDzh;L-(rzKEq!9rZU}345-3&KakZHV(luq>Ud^L*+m046I<cKW% zGc#D;VF8+%$*@>Vns432m%eV>2k)~m%FL52Vlp#Z7802m0AJmL7UM^fU5#YZ!V?3s z$=$?45aUNEX^0k(Z)jnLx#Q)179kki$JekZz|8Agz+YZ>L!%>G7Rn#`{#7o$WbHt! zX9?Xiy<=nl`g(b|SsvoqGb<H1&sJ(XcJwSsd13ZnGSFI4sni>-YICS(apgidnpQ?e z>y7?_Rv*0%``6Z+<%>2iF5}a)xZZI7n~n1Nfn}B90z3lY`H81a!1<C-3cFiTxp=f* z8HfLGLp)pI{<ylYybYJ3^NH=%vHp5_+lGymfu2fXys@n@K9P)mr62KGXCYhT==d<) zW6c+HC0_cJ(-y+p?yR%aU6d`Z!F!mp?VN@3A6yA>(9^p@hlm&Lhi7Vq4z~T_<ScJ{ z6lQUtwM-w<UmvJq$oO2exu;xSUKx-c%9si57q@eYdwP09m(Tth)}|+L-0ZKF(NV2j zmPsgY80eGxxrDuyRTxu6J$w5v8pdNV*o!M$8m)S@RmJ4d2Xb_KZDKZ)-7AxgHR*I< zJ$-oQcw=m+T5D9QlRL`8!^1T{cLWmgM#h8$P=a?F=&h7fAh5VH&=`UPanD4n4A5v? zF^OetjbavYCw-Lh>k_<wPY$feiQdJP^BaTJ$)T14Qe7a)POTqr4mU7R_T*fnwY%j4 z$?7t#uBiP4V*O%L%Vj{~hP4A{R`BOM{#nI8%lT(1|17B#ykGLl`sgHluTNX3|DNL} zVriw4a@Xxyk~%ySQ&_Fn#~XuKg%r}c{?Jclm>?}sv{Ilsg~9H+Qvkxal-Ni(Sh;v| z2*>MN<8B<im6wW(wt};RQ9zPwZ4QqO;ppNDF|Hy|v;phHn*nhK+D)upvs`XsspVPq z9_>AIzGunAR=6==jy0?dHd}-*46MFH|LN0zmKG`(HmdN%1}Jm1HgOAOMo&6z;b3)W zqHzv=a$BR5LZFg?xbZKA<M>3QJQH%Rt%G=!1p_fP>QyaNNQu|x;c|6=>%186>!_TY zwVujGx|UZsJwUX@<ux1D0=JiAqTt0{=S_Z+dX}X8=lko;1bQ=24IBti0@%B3xVi&A z>9xxnE%*aZj&RNfN5{8U$LqS};^Dqh)|lk8Q&c4ts*R5AEU&MvUt7cC^^c5Awn*OS zcwcA@j}12A6E65rz{}M~D-0S)eBzzQeuj203lK;sYCizvl7Y%hdj#=n9q_17d1-ZM zvH{m{tn%p21mwGU$DSnwUrgXoV`NKfD?l{CO+g#thI@np*=Y+&{7=&Z-6+PIjap-S z6V%n;TxkIqr2}0A#qX0&!i_<zUz!A`WaDrsgBQlE>khmuJFTGdeG>?aAfjA?ZB?J0 zY-H1qUhu@Di>%O;W8k(*gzgl6dU_G3Qm+hECt8)!!7^cJxG*x>+B!bE9hvmH>vRQy z-rk!lo*^Tcr-{aRYi9Ir3VPcPne<~+j{6kg8<8~=<Uq>9Kw^jB%FI0F_o<#9-86-b z0<QpGNx3u<E`3$cz+tn@*%7g|Vv7X&D4dcRX`_AXK>Akq0(03t7c9%LEC)zb8UT<D zYnvTD6_9x`*sq$~uM8Ay3As-;@GfLEHdkwxli%oHLpE#M`D5!g%6Phf>*cla&5bS1 z5n>)+$WKyF*QBjSwsZ|(!dQi-PdMZcIBZ~GhF{HPBI`mFy2IJ!g0q9oaUd-h#vv}> zbcTUo=duNG^b5S5%~8j+gRE)2IRPo4`<Gcd&X*~3>k27_1CJ#QoHN?CEa8inmCI*> z2hpIaGGfJ$PVsV(D@P6zI-Hr4jQG>!eueG>4r&@vqTpbvz}O&(|I#r}g-~EI9W}B! zcW<?v_&C0;LEzz5&2GAZaZbOA1u}P?uAjcUZe4kj$5QrBMh_dr2x2n<DuvN8<t$$D z%FN96Avqm!!-am4UjRc1k~B~m8y_93Zebu70^7)jV#*~Tu7Hz_bVR2k!`vRRZ=}2J zMYrjgGD>odEsb&X4i0=67@ocZvP<4Tz_<+f$CHeb#qVm?$Z?TR_Z-&%p0~ZabD|=Y z8jzSl{|?1f9hIk7y*&Xd*4R7>_H+nq(0@^LaYm#PsT5RP2(A#nLbA6jnb5xXfuCJk z8){U?1tURIf%~oMNUhPoer*$iSF2|!<ry-b1_c`{<({SWCPOkCxUj;&yE3L;X5W@O zp-B!uz_g>Yc5bSUwFW1M{;ONS({lCkSLmR7v;Ab(2WF}eTIsLvC|nh)6ZA!mpg1Bf z0=qCmv*fIlu>!j!yLlJ1r)Np92MJ#QG2YSePU#T%dlh0T)RIgnVu=tTtjPYerj8d` zD&j`}8sWMqFOlo2Opa`sgj9$SW?e%@0W&^(dR3UpEE#Q>Q&cR3Ad}LgAs8L%H10SM zr6wjs4sq&?3_zVZHVKsq`7!1A91EEQh&u#V88)kPbI7>Nw;MSSAu`~_X3#j6mn@$U z{ShfQ#5QOtM=*BEyNMKsc_Ol?5^n7b{Lk7N$W*8BSuO|6T4th_C2ZzEWn$~-_OVfH zP~6xkBn~zkL&5@t<I3<LDdu#B2}uc7*mn@MpT{*V^{g*+P>x}(S8CO<YK@`odAH13 zBvXycu*zhi0xJb+*)4E-Fck$Crj25w%A8NmGD5v2GE+D7ZW(qS=$LFiM|BhArk4xm z;C)j1@(s{It#5)r4v=FP>6)C7!<7Am#8K2##T}+)xiD(uQ22_%r8?5;-z+SO2(iXT zp8R|zAycSuP6B!I`exNADkwP>%@nt}v!?R{(erv}cgj@JrkQfh)Ffw`f==4(8ST%> z(N?!#l)RBDr&orWp3@d08%D!xojfB5=@SZEQ9ZTk-Iq}BPUW0`%?xjtC@gthzP7zG zrLvu8ax@F_%o$bfvgW`%(K-(S7PfgI;<wIr@b9(NS<RZ$-KHe?sX5}Fz^o8(!@@=6 zVky)ND~v#5fQyBL!CaBQ@86&z%sRpG@rLN;q0U!MwjZ2rpK!D5gqMBENNsBaTHbo4 z1(j#+YnjHwzbsWa=c`3*Cb_-4ZEI|-++<3QthH$B8SIrc&4Z6*K2t^tFfPPFzVHk* zyX#i~*F<|l!BCbgKO_v5a8l3hg+!Q<76*q$t1Va_VQ7NphY|;@He;hB4cG%0&q8#B znXYFkh;}IAiTFdP=-w{STWtZ}mV)n737Gj}C?G@K!Kn<{1#l~w-85I9)JN3e$ObCg zw>E2AH}7mgMCwYf(37KIGX2axytA|E$ZHdZl<=!<RgASH_7_vhuju0`-_+pRhVWtz z!8Yy0r^_2VA(hX%J4n>CvT_J6gpZ=ZBZUAN9<NUAs&N0^upT+f0lG+Wi;5^r7?k%* zdX;kuHJ!bc4Qd*F>TMe3P(`*HQsKrYXAxytTEms$de!m8Q!Dcl?YPMRj-soyP8*}@ z(q^y>J5JKW!#<$YG6irWNSz8c3BLx-9tIx(PX{>X)ri3ckb(d8Vb`FiWPm``pz#x` zRZht@GKn_DPQkIX2K|xK1cUG{MY1u;_T_Xzbd^|EzG!%bm@%A~?QE4#c@vO=*9Fck z!NJ&mA~66KE;jSH3at(hsS~O)t=yH3%C;&^^ju*2-GF-?5Hoggx;!=VX3YAu>JLsJ z1EIourx?S18zY1-foxKs=4qn@VD5rMU9QjA2mCfShyXF6>Jv+{X<GZC`7qy>av28y z%9Y@5^vQ-qDLO@E6U`)4>H`B|fq({nozuXReE=VVjARodNCY@*qOiD4{z&*mAuLlG zu9d^Tf|@RlD^XGmRD^f)Diol-=bS?^LA(P(&ooHc;u@!dB3~gOOnKZ?mr5aU*Pt}* z)=QHgW%9^R%wFN8(tzq1kY8}Tu^G#h)v<}wKp>TRVmhrPZGHq)3Qq5KAmS$mj|nFW zHmbv+3Qoi#m5Ri1ueXA0rj+yf{y-4V#<fFk;40%mI8?Qz?0tO{ti;?p&^nXQFQ%lf z{P%z|<!u`)8~v8;$CxkZf+x6GEMPP;atJ_@`l}`<S_+&%me%MHG)uomeeFIF73?Qa z{6p!CKTG&WxmQ`&^U0>B1U#``IVEw{D_{vd0&KU<vmnCE=A;ogi(%d_t_)97&N0w1 zkq**XZ3sMj-8o%_P}9A=p6pFR7=+rvZ<Rt<iq#3#CZ0{7fn;<k%nr@uk6SOF>D`n1 z>*@xveq)865DKi>4QB}*J8TJ@_LzDF^RDDl!--;$?r}~Hu<xJ)fJr2e6<xat^>Gt& zE=K^Av?Z9PJuFkTe<t2>b>FNU(*WmHDs9+nu(+Kvs$N?(ynZdFT^)WEpz^mTU>gMo zJRS?Uxmj<H!&_6+{n{2@X;rsq7oD;rFqFb$s~}p?&7-4mwUnK2a)jPcjk<Wj!PgH4 z^H2}FvhAYN7OoJlQlJYnC<n?})3)xTcAp4m+=yf8foeJ_f{k|4u_{Xk$6@XPU<)>2 zBXnvvou<S!9gDw)db{!(`f!%l;J-2yD=jmzoj-;pM?+twe+_<%vnct9{*ihEwg$R@ z_OIDAF$V0yjRWW7G9JN?8N3u6e4Xw9Z0fYmzF6e*oz{X<hk3t>V=1T_H#d5ksN~`@ zAXlp6TPiIyErIRN=ign7r-JP@uV8045&9eMrB7*PuqwaQy%z7^QxT_bRc#NOs$>8L z(Pj(ToVnz9_5DSf>siufMM`wX;-|O2y>Jgyu=UDdm3hQ<tKxEYuRHBoN-b_%r=8n% zmtnf;oQv27_^52-K4vyt*(%crS7z`6%%|;95C7|}FQVt+@JVsAm;^z)uL7<JY#`zx z5DkG?h=J9WfwJzEZPy1(J9bnsY!LkdCVzG|sQ-zO52&<K{GfSo$|h5Xs)0H9S5o>B z_wke99FDD1mD0BD6E_3yAy1mjaj^vH2d|J={Sr5>m5ZG;<{mIQu0q^CiFYQzwePv2 zZV?MDq<k71%IlkfPX~6SS-c>ukD1+?+HF9VxUo!Oe_1KQyzOIlzhecQR)tJLryLOU z#Ns<VvoCoKV2&;R%*rJY|N7Uv!&Oci$Wi->=7_sC-fM8UH8@n=0<sY9&HxV$F*xNM zAJm~cHi8H+lXx8$>j7h8fH!6MHE+Pn_J9J3u;uxiehyOYid>1dnTC}IE;-u@6Ads% zb+QmhxX+aNOysW{Wm+K>c*z0;`{9}b-3gM`kHU2p^$Awe<H~_x5TYi{G(m&XwsVV9 ztfJ@HWZ)TYIM?`z$#pECh9}Je_`1~9C<b-|U}G2M`y$pdlEjRjs?{C11N+NP_(9ey z+ffY#o{TKb0Do1+iA_w54o;2y!W{w3WNte}5<0G{;0+gE2@~?<W(q$p!h&}}$crrP zrzA_Sz2ULyxPe}$<H|Y_(#Qxs%XV|Fr#6#5o?<NovYjGWMa0?n2u^V1wBU*T!8wm5 zVuSO{L#WpFCRC*GXf-yp(^r&;I^1u5mir4EyR2sF`mM0#bnU_}nl-o)zlue0M3(Ie zz?ZrBAClC>_g_QX5QF6?<Nh}Hf!Ze}ajsK=GmK^A*4*!<O40wOwR|RMI`1Q;Gns9A z);@yjU7WiZO<jzHhk|4cw^ZncWq9J23VTm&NR&Fjw%PbTl;Ov-8Cz<i(CrjWvy@2V z;JAbL_R=*s0V?=W(*2Zyo^5ooNnW8@#xM}o4yGE~RVtmJb<jda6*#kUyVj`K>9p|l zh~#dyzkqCFX~sL{TMR&uHN0(d1nQ7_Z!QQL|09!=1y2*_u!%Iqbd^9^Ht#`-8xy5> z#-hBkXBi`xRV}6ph<3_?5ES#Yr6AenyXs(jX#m?)?Q{s-11rF{0=xyf9jEt_vO<zm z>1JjkiP9K=cgP^-A{T^}+ep&^?y|5D@gEJM)n(`upZc7+-ZY5|shvbu11+jQL@&n7 z62b&85jC9QM*k*g>}+|6Nz~aXN30H0Ya1C4W+y}hF6-->U>Qa#t*xVz6V;LW1cHah zd?@m)&@OFhOzfwLDmNAWz)7NHoqL<a4N~c|aje~Y*jt{uk4sde;Q(G22(Wcj9nLYB z_ApPAXuxzs`!+H;G^9~%W21B|t-&Uq<K-!<)<^qnSGG19+Qh<iKFoJXC^(=?w;T{U z2b@A!X>M{dl|rEq!dW76%Hw)H$S)$rbKC@bX1T41`=qXH$MA1)c^QvG#U{V#Q+wIW z<cLX)LI8qEcvmo0vwuzDB=%7&*RI#>M%)4#<oMaIuEM)kwZt{?Spd4t@S-_tm@zTG zG0;$#VSm|NEsx9vl|pN4Q?`U)axxaKnuffJ$w)|HplaI36b0>$?)%uGazUXQ*7=TU zW*6}Sfi@~J2R*4y@E{wB3NJsa3<YhmX-|Nc>8%XIc9}_;u|%A8#JD7sdgB-}t!x|< zZifgsgQ2OmZ8H!*t2IhIPAWrPS`rx(pn)1J#mON2N-q`TZeyF0Wzzu(J2nfd){%p4 zqO-}cHwN#bZxn8PSp0`G#8u3E%rl{ur4*o0bN#<rZD01X)&PSqa`1@b_f9iZqcNUY zB9t^hILy2w+Q|NOFr&f{<6O)MYZ;z5^r94vb*O+etF2fu^H^ck<Xxry+zxJR;Y|A{ zd8H&Fm_$p!B?Jym)p23yrY2c4c>oCiE+CjAk;x`bjkt2o>M#pah(Y%L;z-F9Pu{5y zULTM|p-mGRGMgB#SytDzRaKvBOt0*e%jrV-4zOzn9%yL5_Ep9tjT{nrO~95uAbvtu zOpa1|L1w4T_{Tdo<}=zL80+X|p>Lf@xz?A;l7tvraovLseRMF0C}$J~wBugf#}Nbx z$Pn<10Q(Bk$YU7k1tTfUNwhn6qFH(0xv@=2PM1RWG1(9uNiGLZ#Uz|Q#1;LjR8}gw zY@#0R=7|FH!(n?GnSl`q_s!7j2!sT=u%P(p$xWG*R+7S;(odHQWNTR;xGBMIq0Vq! zi42!u5vLHH@f?T~XPWDt%#kW&D8?emTaP#iWAw`~1NG72O0`zAP-jg{P~B3-PNmxh zQ&eEw>q$MK1cuIr3&eeRKOqb1Vx@W&(gMFnpILbd+p}SAG>Ii`?OK7HFq8Cd^5@%j zgnD_5enkLJF`<bOV=^1Rmf@L^CMGa&rjt=RfbkRSI8*?bi*88!3$$~n=BdXsV8XH~ zGwE18MPR156@e6zag&JnI+Bu1$#DY6&DfbR%)(;<FKj#PbO&(Rd&H(BWVh1}axw}6 zPMJGK)fxz3=L}EH9Mt`VTS?KY<Kq^|6Q-L~h`G4p0<M$Q0uv}nDP2~T6qDG#R$-UJ zGX3zF@Ekvr5P)*_LF+pM?|*Rx5O{HAJE3oLwGKaL-5C71_80#yp`^?a)qS3r>1nw- zq7EVg4w?hZ;(6m+AW-3NudozIq0xYDYiDHwxepqJea)u<fmD6+RgtHQmT};NCk--W zif5(}sbs@6^_x0M&~7GFf>uswDuo7xoAT;jNfGj-cs8amDnDaVFU_N=)J;NVoTW|R z7qJ1zF{$iUZhSSi*TA2-3BCd?NcxKnK42FrLtDYCT%cJoX$Im(4T*TFSYGu=@an_x zU8b?ZPe{HfvBGCN2J^|3QtI{K-Y3gGlE3gNpTbANbmbx>oK8TfR~gy@82f|lCCJeU z;y{@-wGsci_X`GGZI%7A0_87)OsG2CHrjMyCV@7H$_{aw7x~#z%uIa&GP*)ZylUsF zW(&)SO^E^V`nH|!3KsVikbQK~W(r)ZPCSLmHdP3X4kENmiNFM0SH{K|jz5)Wj8Dud z3|~f4P1%`zGFj}F8`f^#uvP^tZc@@R;MO#Kos&d@R{&3J5;y!>;n55mVzL#pFFFy! z6$bI@NKLE$X`DbZr2F76xkO0KAWiI$UX(TJ+|vpaO*S`&A2TSb@G|R#{9){wxea1D z5y|6yUpfku0`=G+UK^mCaN(vmw}2cp9EhU#8NzZgZNxY;j?t|WN12K?LK><tyjnLG zCpCZ)RI0s+r=VKO;GE;)wLng2wcw(epdq)2c(T5UN0wpLf^7?If+q;+$B%B{WP4e5 zKaoaYOJ^b}u{gS%$j*xdY%5$s^)-d&(6Lk)EDal?fSuZNbGMrmI%V_kEUBy~TShQp zQp2I9@Pcg%FM3c?t};EPunFN}%`i^D53o5SBZR_L`b7d9*EcGg!U_-XlrlP3$*FcQ z2YMJxryYA;&M<?+kX*oK3SzXPyrHqv1Y(1uJFO;XC#{7y=`ixsQ~e-RtW{-5C(&Rr zl7zs-h{W1sPnJR;r4yJ1a4dJ3sl|br90|Zflg;iEt%XA;i7kN^c~Qn&O{72CSElo{ zg{k11DU!HB4B<jmCb92{rA)R&o&Oc>4lGl;uY}$!y6*dnE+p}a;I<HM)`8YA*MhIR zJgM<icqb86f_$pbuGnttOfzQfK201U#HQUwd6vK_(>7<rHK#atuIq|xUO6fGV+Fhf zwVw1uf%Jg(AmIxVh%*OyYdUt&siVAso3oo>;1xDHr_l7`EnFhn6{sn0NGK&Y=qdFX z@VExeVSrf1ci%j)ZO-X5YR(5(B0AA>7h>8J7=ptr1J3Cu@SpFLiY{}6P&p;2WNQ)_ zyss=AslIx@APfy+M$PF9@^jDG+{<Ew0vPtc*{OD^Fce>TQ|>zY7{;OQ14k-Zok1dr zhx^)%2%?%X6F$yEt){RK#MHE&PJ}z}S>i0;Qm*B!v%p<I>95J8r}c<$3)XOc(rT!l znmI_Vh$*%t;}c=gu|f!jB^RryQ1Jq)qE0cJ&P&rEo1hF;$AoG;CLl7aER*77Yok*T zm1&)3nQB*-Czl{5_7}z)t8y*p(Mzr3MH<_~P#7|H1#n{$TOkje!flD%hUAX6>Lr0P z8#|Owd<U9ga!04gyA*loTRZ*j3AM^m%OYGI91;+GV$218`pcivx;tIV0TOdE6Fw*H z5Hhb;$6adLU-?e+Qm{!uM%vD*L3yMQq;~nlw6P6ewHc8O{7)e~ShuILNkqXO^mLgE zIYLbg3vh<fFwsIvRRuJ_UjWO?syU=Ns@Bs;a-Afll?Z~<f<xrv^Y}=l{$8JQd3JPT z7Cd;EdJ(>Q5>O8+5|B|~aE6Q{aH|X91|Fm&G#<707nU~MNE1yGNTADA76hOr000f_ zH1TJM=XCLBSA}H}+}5&RO`IemmBIrKX7>{{3)Y`9{B*_5M0B^HRv&I<JN_!*N~#DQ z{o0@h*?|CVr<Q^@5j}<{H6tzO?@2*h6enTiQ~<~I>3|oKMi@NlNxSp271ogH#NZ7? zdXSPh%5+ZJmXL@XAB|zjFjw2=DyBSHZ!G*v(D@8{V|vU&m5-4lruT};CTi$3cEF-| zRjTToL*Qgea#Q-|#n!hg4`v7);KmxPSVDQk05;wFg~6{usDRdHn>tt^$o3(5JS<!Q zIpH;b2<;nCK|%Usq?#BuynVjF1QaZ*NX@Y-td=0`wSO3(4qp?fXyGeQm8HJ5kDLrr zmey#z18>w?)+b2>VE=Q|-6;ziq>~qBct4>?)09pM;5^@u)^3Ls{c&Q4#6)Gv?tuV; zOkvr8<ohPraT&q*U>Wiv?D!n&+*m!WP+4uUusOjtVk{7bGh}ZvD&&-uxZD{=_$F4W z#v||SQmJ8hSyGaD;*6e^i7>Ul?EJYE8AD-vbK*@6F$iVw5U8!mOA4bJG%vUvz-?wy zr&va}ie2dZVIp?cR3=B33W#ExaEyL3UY2?s8HE{YOJ$-;BNfbH0>PbSAygSK6_q2R zmEfKEJi4bcSj-7vPM+%NbA;B4ex!jcW#ef#jr1(`caJ)imnzTp7fKi;JQanH1U*6* zmfn=S+E^yO>naDdMHqOrM`yJ8nzdh&Th74MZ%u9T^z4|GR8iS*9$h>V!iph2<x}*E zVbdugXKmPY3GJn_qfUqMF~TRQy&apF`3wYBZQ2f0(P2fY)eVq#OVS9nUHTe6*rJ#+ zsovZI*NmRUqPEid!2uP^*?plmXy1L)UO;W3D8g_}n_(3Ccu_n+?_kb8P+;0mC^3l& z0ur5ILBf|!hcZ6<Y2e1<Rfi7zC4dJNjx&h!<lvGFHW*A!0A@Q@`U$e^9n;hgnI;T$ z9a*Hxz;;gEcGCcb706fiNLE0|da|8RWGalnJzt?U1A%GtTEeQhY~P;WezN^xS(MTl zNyz?~d!`$6N;ST^M-oR<lk5yc{m^C6!`!=R889G2sj^cd2#+_nY;B?3Q<JgPDbaU2 zUO?GW`j~4GJC*}xEFyB8Xw?VhG!6RG6Ga~Psgr9fuWT(fh#HDQ%>gT5cjXKKw;yMt zMj~)YU5kD}yh3w(R~^qH?7({&1mZ1;_3U;&tKakgleM8{ZD)66EjK@jg_n`HN@q87 zt}EHZ#mgKYEgn8dG~V3Ns27-jR!CeLqw{po&1C;|-Z151W<*-Fb#%C~XsEFrF>Z^h zLt942k>+W5anFiH+mUj9@sdS7OO`GZi#?qr}+eTl9zAa==WY1hhdYY$hFQ_o3 z^Al+Kb_~i@nt{Tr${YYBV&EyjM6AlH{vh{BK=$_0ar*bDJe-Xvlcb%AyIQ`@kV?dy zGzgjMpdg3s3a3i7EiZt}PGJcqUURn3T6_H2yx9CzgZeT)oY;0Qw{})!SZdEeymGT) zS2^gilonk<hmwBmD%)%0jMCD1{2$vS17qr$^lDL4voSn6xK349w!6VB3i#6O?7u=o zVa5*R#+q5>z`W-mH5YqO)G4$*q3joJPlz4T6nNq>9D0mcCX{|Sg~CF7$!O~WgsmcG zhFb8+K~FUVgI<dK&MZ$w{c`9khYBWvZ>pkFz<y^KhnW!EW}CbOH1lF;cW`R~MKDo2 z@|VC__sP@=GU7Sw8EtY`73Kj~=U7q0%{c7d4wH3LEKt)hC>1Mrv>gB0=04T9!fX>l zHgiZB3DDN25Hb#3Uc|~8<SBQ}Lfk1PfQ+6erLeamdE7WwYJDwG;u%?Su;G)?N-bW@ z@eW}rlMTj^A9O>bj&}*p1#IXlleL~f(~?4gWj<IqXWk?y2Y`&Jgp}!3|3;RGrBCO+ zVY#`^nI35dcSnGM+7~d(K`u@*?$p%wR4x(fBj|@rLOn}(sF9yidzvDTfNISJj_J;q zW9`vumD40RnBJVES~P*h?tS+y4FFbN3*3ea+&wbWWaRL;A#Z^!>OiO&Lw@N72G@br z7WB(%3gS=TsO^5Dr1O>PC<bQYlK7@mlkHl7Rp!tDsLVxHmKI!`)Te+V5GFaKz#L?n zh9E1iM6jSy+#RuS;+g}h-<$v`Y{27s9Nes1fZPW`jnhFPWpQ&I_DB>kUQWU5DNKH` z6u|vpVcC#NsGXXuJXX3pcMfD_wUAXmod2;%sv2BL#~b6c0VY0sCgXy2r9Y`rH!v)T zx*R1h=*+u+A&>c_<P=5%ui(6j%vP|U5Db$bNbNKG`)otmG-sx`gI?Z}0;eunq|>(T zgP*KzA|ZD$RZ^L-n3&&m+SSdL{#ERYIQ>6{ggx!SZDCRJ9J>`|LpuMBp%6=R0s(P> z!nu-@nLSX>2Abl)M?87=t~X@m6|`FC`cY~}AX_9QN>(bzgA^u{t-`kLW8-)SNl0v_ z#?8Z;6-2qiz{Kp*X!KQH8hThF0cD+j^?CFd5%31Vj`M`SSa~yi`ZfQgr*KxZTB(~% z^wcRg4BvD2rw}fknOT_<dp$a`yU?j%e`Nrm?y=4-m8n^NJ;64@)#bhm!XJES5q?{! zvuq6`6D@AuPIOgDm{DUagwM|YwH-iiSvP>pbgDSY*9`eq@g{dZ2Vk4_lidN@Y2;rQ zNB#*GW|9fP>*dQF$b&12h2iS><<47)N;%5fl7?7#j9GYKwQof^<3NG7sm6g)n_M&y z_naImb@8Q5*RF<%u~3sBw01q87q>M=J}Yf|y^TCEV6XEiRF@?HhMQy=nIvmy$Po+$ zN>9I^+K&7CAKEOzYEh0?QI+Z@4FRdtt1bAo01;?COGy|REt&=Bt2u85xXM%NtNSTX zsZ$+LSigEIBtmTfKqM0Pjw3YRc`9Z@9~4CQf%yad1qQe0T%#F{3MDB`=PE#Iq;9o2 z&TUHL`sf^~K9p?I@IJUjQd^)7=g<fw0e+p%lGJWxJ+vWNQ*~Dh*q3bD?q)e~i<6QH zd^fL=G>;?Az>%ZkO##a^xk84LTp=m&`W2EROD^0wXjzP5?y^d;1Dwey$Kag<Af8z} zW}b#QUIVTshJXxn>tt#QYWcx{Emp`uUMlW<oo8l)(gFe5Ihon^L7C=jR;1uywrsHT zMel+bfRXW~QW!R7+iEI-Uw<70$aMFRr~=P}tbc1cC4S97*1A)$fNY3tH$&$+(gLPQ z?!=&Hv<8@;E@iAS_*o7$p?J#d%FsS1{w{**{ph+aEV$j3usl`4uk{#L#k55}8;BV< zGty6>pI0Z18D=DJ7a`}tSYQ^^hRFy7?{cjb0F>NMcwFccl<R|7y{(D7`y#=?4^0w# zv>B+gYpfS&79UaFcaVrJ!5S`WPORoMDfCndPT<R>aH6oOUvR-J6y#%1&xa&~C8Ua$ zK^Ndcq_9~}?+W}B9^bp^4WJ~1GtXICLVazYdcYDHi^|p1Jtrc&sBjD&Z>Gy6|0|u* zG5IYdHZ4P&oR~kxtMEBUsdLSEe)<g7R2QHN*SvgI1_@=ETD{E|P?Q2v-N8KoiHK=b zL-@TU0ZuX*q=tp_p%W$g-40jT0!wUYHYb$#FsmSc$*gwh;w<D1O7v9zl0qsOpc}LE zQ|a0V*XX$G4*t?P<#)YH?f#T})D=fT5r$E!K9tWhcvMu#lYuqLD#?TkyA-$?z&5x< z^|3WY&y(fmC7Lb;_5FlA`#LqiVB_4$%)`l8LPfVtc&#Fm*1;J{u4@zgo8Vr!yC+rM zDTeK+2E~yr-&&g*(QBb+*g#PP-j!)?7h0H=ATX^v#FzA}7*%DnWRt3FzP!~=i&Vvs zm>;|&RO0^BF~MCf1b47Go={vX9MuJv=rb^d_QiaO1NoUGJqJny;eSp;prUt<1uN+C zE%j~5jsb~M$;cA(RIl*nGd(kh(JPB5rY15oS4;{SGh~JX$U%lMKZcIyoJCw~Rb=x- zDPCjQQhxK$rHlKn1Vt7qFN5FOMg?cD=rP{!*X5H8W*V=Iys$1q>~j9nbqkS^2|u-% zIe3m)SmU+0IZW_U+nkY)#7w#|TDj67*?;$9Q+rIPvpsaWc1eLytAwQ48AH!{T`A+i z&3}qX*__@Eb$SsH!K%&TFe94y{e(!<KgsfkS(3?2TEd|LgLx0kQ`Zn$Ovab8r(_}R znP^FF^fL0CQ@;a$1Lq6l4L)wV0j``}kEIF0cIG4mB&RtrC-LQJibas*rT|uJVFmuC z5b{7STh%S;Bk#U>_SrLXqx;p?EU~e&k!)@tqEG#CumB)p&fV58wWC}ATg4=CzrKR7 z0QqBlnCzPKy_#-C9e?eWc*ZBY3@zADQX5xQvuM__gS2JQ3^j*&8)tW_5H%cxrhW4_ zr(BqpAPhTm^k){-rBOE-uOb9M@d19Nr$g$rZipoh0+dz--im?Ip-Cot?OB}U<ORZK zF&!%<(Pj8|n`A|hRS0wD?l1a@Whzlhw57Z?q!Ejr5-~M_Kj=1{l-is?=?|FVbyEdj ze0d$ZabG~k*bdc<_OGdzx0TC*JKU^RGnYiG_KmfqC@ee80QB&asNW4hNeFT;DDo5) z*ZUh~sLnF==fEMr#T4OD!Xzu-m>s5QZf27uL$z1=f$@l!VpI&OF4l%f{ZDq)2A{8h zJ{5lGi_50o&iza2GA%WL#N>@_%;wLm3oBHa7O=qPvhUen^2eRBE3S5iBttbA0COdI zB3PB$aowqiGL~CMSw&ZYqMRzyNrgCB9d!*Kwt%vJ@M{AKTCU3+u`83lC~t1Oh?h$H zLB)z_TvYmow|W|Y+AS=J*<>aMM))^$=vSDZ7KHdST?iF?PJLDvz#OKLMD0mUC+jo- zv!ci|lxk!i_?qxrl9B>a>SXP5R09=3*;Ab<XpxYnDO69oK{|BS+P9)*-l__*WHagM zOXuI~4}}g>buzqB^y11)3lXpyW9kXeJ{i+f3L|1$vAHqlykdTeX!cs7s(_?nw9Yj@ z$)`_OS=3d)^HAgzv8q(GD$kja!YS^9VmedCK(Yu@CZ@2upNI~aYZ`MU<&#L4<O6)t z<$ZI|pH22*&Sj_cb+!s2P4bVm%A<Ntx9D^G2uM0TE;Iy~gc{PaxW(>X2DUm%OGVid z0A0r6AjB*d4RT;+@~qpJ!cxU*RKnZk1zyl`2!R)7K45oVH}1Fr6q&fZIkw$-i6(n_ zZh9wxNtXWS@yR*Lp1|R{({*0q)isn1(!qUVF=-BB)fzi$Fac_ypG&CUCK(uKhHXSl zClal_L6S7ViPIR7bQtAn3r)A4lgk2dfizRlE)Q2PZ>aeu9E^!C{p&F!*<G0ehz24T zkpBtwu4||=vvYVeYAK<h%g(x%A(}}f>C&0W_yL(e)8+jN(Yyos4ZN}hN(K44s9D~y zmgIHzwY}FukCo75TT5|5f#f9KpA@$cZ&Y`h3xu%L>*Eap=yu-EvqM~BGQt3!@ljzM zhDJxb%R@gjix6>e4k+%RZ_+8IbfEzT(buAN!S39>#ay@S{)vmRzfQ3j>vSz}rOz=L zW>2v62^(OeSHB=xvhL=?+urr|3>DQ<2uR7)8ijF?{|G2_u@SjkVltP`J!5JTANn9Q z^|=y?A|yN~_!GN;YSOMs{21KaW@-#A=T?PCk}_l*=;q8%q*EvgoI?gG^cWXT$0pBo ze9)5T?WjatQO+Z;G;i!$Zc;hzd{_Bvqr}vPl54x*k@A~{?~i+YvZeKCk|goiP<4g4 z3Z(X2>QHe`^C2pWw-39%OE?WxJ^1U!IFN$zu1E(q!Cj+O@VTngwl3Uy5HCQ#0%1th z-*pN;-gYQv^Cqq0b|mUm_jcKhXFbFv(pFePlFRZ!9Z47h%Nz||@Iu)!INqjL>_xP} zQ?*iZ!ezBh6#Nn-P7F+xc#Q5>dgDI&T2tSsn_`8&^NQ+#pd30xc=17>s;2~U?=J$7 z&ITFGYW-D{6RI89H-@Ogz+~d0gt>55yQeulJwv1LEz*pGDnFn@PXt4A4#IeRoelBK zEuX)!Hnc>1cbf<!s0}T5DFXXJ9tOw2uVT|~k0bsyXJ}G{b*U5bm8md<hRRf`$ncel z&_*Khmf$Rg#!yA=qT$8Zwd$xtya6l+rUam#WL4?kgqL4~{S@X>Iu;ZrwnBTfaB_s9 z7>)Wu5Ojw&OEa}w`s?-0D#U?oqDCr2HAs`rqZL{_O=9H2J39!2YR^`h5fj}W4NE!R zrCsW6mJ5TmA;$iuc6KLR!mHdkhkXJ=^;;50Eil~5oC6Y#k8n>*C9IvAX`0a!l%g_b zS(2lOEE@_=86kV7&H^8CCf!6e?9t6oM1w^f-KqM}Gb=Bu3?h0OTR8nPsUV<y0LB@x zAj!_^C<lUc9S$<~6D<({N@B72&aQ67)Jp~yBcwW>mub@;f~vIZjN2h)d2L*ay$P^S zv%H-=I9zHHwz5{oS=)f-M^q=|+pwnQvPqW8t!Xxgk$4da>&py^ya?~mDes-sHdKbn zJuAH-JJgZjhamoceckXjnfKm`28F8409uG7%RimMp&8HGkFaXyaR?g>ZlK8lzj$58 zzOnfc{?ga-M4GX%3sWVFNs<~{dLZTPX8Q}%;p*F1d3C@`F0~FSjqVd`V4>szV$LRv z+n4>`U#2}QvggZ(s)*IK@MXDvGQ6`xRi|F3(;95SF4;zirB7Y)$+Ykg`_*^gSF<Bv z#?Yh2mF43_tsG`e=#<c=3iM`q67>=;hejpzpV4XduXmoN8&rb^)Jz9W&2)Q?mfQsM z8FCPr>tCMtvt}Lg-p`T=B1jRO51&aZr9f9+6tth*D)#Ff!I(a_R8>~+^0M%i?X|61 z=0H7VSv4=nIxZWTt9ZPvkYSX0a%!+KLwD+$y!FTlol)f(^r;TdiGS32Q_hnVTlw+C zt}I)Zo495An=YO~b>3iA4E7w)Zs-)wN8Y=x)qEdt^Aar$ihAOeXt@X5$+D@H3;HiA zEBBDHm;$XRhENT~-PMUMonlWHistpTf%B+Ol4(cTa98U%<2$o&8nC?V%%1NQ76_K1 zAjGiK*S5$>=q9@b4Pq4Xxv7?T79nm{>NnW4yI0SPt6;)0ifVBJHLT5YVzB6TtraY~ zOEDF)6+$q4nM{{0dge^smR)fQ#ib}L0~AO$OJ^Fux%}wdkdN)iiA2P?iP{+0doka4 zuV=vq#nB}pNJujXWp#flE_w+awYiC@JCr`OW2kf65e@V}cBhh=RwYd08!-OPC304g zNZzAl+6Uxens*a+&oME=95P)q<%vvFz;$(7Qy@z?ex-TPMdRaKpV}z4AQdV<4pnQc z3Wd<j>f{dQ!-IQMd7E?RoA7rhTdj*ztkTs@iea~B_=NACn6(+OG`jg!$PBvAaI4`H zKIj9(Sp}IkRjmsIMr7Y4I>p>l6P9&$1$b$3ZI0AfTM8TRV6`~}Z?{6_B_lOf8fZXC zLgAX2m?1rVRJg15GNgR7azsiZ;~}v0Gty6HdVSLwfd}NcETTFeoxId+yWdujpiLcl zB2nwq(s)~GjyGD9<0IY^wsTDY=nG9?%2wxd5>t>>BEQSIK%FvkS4sn&KfTtH9FBvf z90;Hl41Ob69jeua8^faFQiFM3L?|dZ6shBUP`H?8EA+PBV4>YPTWF}1#x{?m?3JXg zYOo}&`vt!*eVZyQXZAwic3yPRx>e_01Z~^o=1M;tFep~JA_UdVLyZCyyrCyY61gRW z-+8H#-4zW7CVLw<W&Z?os7rY-Wkdi+#%!B&siKwtZF4^HIci8dSx`(EWX&hbX$u(O zd=IvnN@>utIEFRDo()eDL^z42D(QBbd=(RtucA3pF3_tGC_6anfFn0KMtb{Aly^+; ziHKntM{R;WwzUTIrqgvblP<Os4^fprMGnieUwI{(mvNjYCB1w(#%Xkl&2lyzu8(3w z{|4ml7cM1>p|qH&)2aCD4>sUj03V;~aNCn|x%=)S4J3*hgcf?z!XV%urCCv!PE$mx zchYd9-mHQwjUpThQHT3x;7XweB#^VtQgRzq;#G2xa&b2M!c@E+d^J1u3dRZ~RG69r z&~_Kym4JV4nvNWiQBA%ZgnpabK{uM*!ST@%BcI&nK;Z^kO<8}qIswIJ@??W|8r}mk z0vHJuwU@A#;0EU&6ueo+z7fs_-EwKwtW~k)QX<y?F}QYWmOwRW=WGFD?nMBDaB=3; zk)l$Wr`FQhXqkyNl<}t6te`i;<cM>*U<RN9q&eljm3R#CMJ9;7xKvH@S@wGdrqxlR zsh@!D7W+4rsx>+(*}g11CwWjI?F=o<gr<O8jeJrHF`2a$qhD3WCLVXTjoAj06hX7} zuGk!8X^by2^?*x3BQ}uEnF_!*B-hF$7(QgGBu^H4MDvjWROJz-?&y-#wh&UVzo?MC zD!s2Vl?uJLV)hKWzvm=3L1WdGznua(x|6z5a$BUKDLMsvh-iHzlNo`#8<Knsni41j zYGDR4aD&Z>S0T%o<JMOojzs{!uOIn`&leIiBkbhpJ4ver<3vCfS8HLwFg2rfm*j); zVsk{C$vOx4WzIFvX>8hf1E+EjElZjn6K7|IvB1=qj5M!6N#M&HJAZYiXQxdMd6GPY z%-O)qw^vybA$gQBb*>?t&_}E-Byuqr;3f;PYdpSF>Q1>kP(VmZA&{dEwTuviyatDl zPLx;~>DN)Uq?N>72ik3be;2ArggxMYQbXvaWxl-CQ+-WxHq9C6WX`gTkr}v(_@a+6 zbaNnx@RMwk&zX~Jc8(Arz~li$TY+R8>SgI$sJhV6_2fIV2&M<jwcEg^7Ir{lh`<_h zEV?D_KLaj~3IH^jt3~$646FKN<!aHz2Y=<>JC7COoIxBO9BPiKPJ$Mx?p23Np)Er4 z3Acx5;2`u_##0ci=1r7HS{5iPoCHg6*8Y&=6D@}%zhi=9_f~qbtin^dEL^bd0$(n{ zt9yB!)$PI!H`GHIiuHzSI=YA@3cA$pmEmk>l2Mh#4j-6Sd;qusUQRmz>9`GB(B|wx zGmw=oqdg?^pi~*yzraB}V4Oe$%2gf)!c3DCIUDJWX>V+4jIUIOJ}v^M=Sf=v!S^mC zN$=Kg<T`{j2imhX8)|Z-b+7><@JsS~u!0ep9nsq$0Xn=IAstS*jnJr*$sdlNVtx;w zapU;29awcw5}_2}nD}O$nn$|X@K-Q6!UAcXA(#;cp}-m#B{DWd0TY0lS15^oc`9CJ z9g!c-v*5Hv+r1H5@b2C;2uZ>`*~%Dkqtbq2D^mL-Hzd_NWH-8+Q02e+D#K3s3~6}0 z#-L!a8cW<l8cj0fvXfmZM|8+neu8g7FbcqPdv#2bFbIF_6$NHc(l=g~QaCLYA3if- zq<wqo`n$&EU%+;-PNPOJxp_TgHf*=xqR)boeF&>67FDMaAS~|#lc1}x!Wj^mkC7@w zYW1{$nZRGFfE9i8$S};{JYq?E@-3^F1RqC(-%0&}1P7APneO0=vV*IiDGrMm^wbI& zoLuTnk|;>OrP4wZ#24r=kX?g59LRTRYAyas6&m9Rg;`6fT^RS7WM$chMN+|rxiD1l z!_e~hM@CLySQ2qdtOV)ZI=Y=yg9Da$B>#>)J2?hxN=;77@H-`mfx{qPKCy2FshsHh zk8_FI6q!e6;ry=-S<}C!qMJjOd?=fVqYAX`7$x=k6{sTB;T}X<788-14Mxp29PUG} zktpfZ81JcqpIwC@qw~%rBUlB!7#2yLycMq7pwi+<mEVJN6Vp<TPnuH12(qIK%sD2- zWM}jvbESKT+XhA*uQ+YBOxM~K#WyX<u(-9%#w&$#ApGKKEOO%PbhCvu1l4I<H_=js z>0Ql6XU>!!a$PzjMU{m9q~xA*Tj-v+n@RMfi9s`@77X+0s`fRt4fKtSj<~cDp;{)h z{iTp9Z8ai&-cKa4*|XlR4oJdQPh*E1E_2D7TaaiNI#Vn`a#ybTraN`CXkr9W67pwD zuc6m7Jhn?QOt*C1f4h(adV0knL-I3gZsx9#y*fY}0Q@qbYU3OS@0!DU!S*yo<`lqk zyZ4h6%y6XNWA8pVtaV#xk}O?*nMt50r5%utHm_EMJ7m3Dg^9~@C&4}-#$9+IU>``5 zhNP8ZQ>fwFlmOG|?Ek;xZsq+mE3z@b4Mcyy3&gEO;?a|{gsk%gg2S9iWUtEHcW@)H z&30!eE``41ri;Y7mdi#6Je!<deP@mgl1V7dz%%xNlk}k=@Wo7d_=WqUOMgB+P`dQB zyeKWjETKCOONWDPme57ko(2z9s30`ai>ESK`|u*3_oU~S#)NCWDhb}AS59NZ1gX^S z3WZ+EFAN+yy%!MC2LY4}U@HH{zIiSrp}Dj6VNmrQl&9jaXL9R4tvU7sir7{`C+jas zA}vx5JUF%t!9`EzQSl%H&7Oe+2p2+#F;62*;fV8k4d{J_a{<I8G+X%;;kZ(4mQyb) z51iUPGQBm+XL<&?ziIxE>o-cl-$30SSQBh^#rMGR>`2t>6-_5OMN{VOF&3JeFqP<5 z-riCkuI!l{n%){pR?~-SVl~sr6T;0g&-#{Q(zFnc8FDL3?|{ins1O)a$pDGaor(qE z(pWeKA;<LhgR6IKhBtyMIDCw;clz-q5b<jc^TtxZ#t7RHUZCD^IeRb()qct2xJ^@O zpmgp;YgwO4Atb^1N;%2~AUzdJ98IT4)sKZNCbImbNn;A~rHluSF{W7S$>d+@9csax z&D1N3q^W&HfYk3soiAkKjLX6tYPS<woh;C_D9indi90d)u_pZTwm0Df;t|xOxTLeE za!L==h65bhSyZSKM7Ed`Ry+iWpP*PgD_ce;p&Zye>D&<Z7by-v398BJnj0DulS59F z?-V$-7tzurS~;f$-B2B=j}D(#t2HJj$hkRhWI8|r`i93C7~wdyP9M8;T$CPo0qCmX zE^MCOU9$#lEP2Xh*V4ej3tFmhV&52U*6Z{|>xMLUXSNU}6<p)Th9<!ic@_(<D|A4i zCNbqR6eN`pF(ex$k+Psp>pSO?3|X$B(-yK`8{F1@Wj$ge#&!oe%KQ4{$Y+2w?(s6= ziR_-#J)k<jyaxXvl}F-|qIC`!DJO*vTy+o<xOxL2aFg&S>|e8KVhm0IxN+coT*jkb z9_h1;;c%)wRr>}3Hn~?p&^9j^ZcIv@pYkU7o}R#Knnsmilio*6F#9HwElgCm!9@{8 zo5WiQP7sn{5y|_yOT0I`ynEdZU+h0t3F~B+pSn|8rX&>6UHMAV8GQ#B^D!MWE-aJC z8tSU5qypI1s1BR^dmtF(D1smwPpt^b=EA6#gCLyTlVSxKHPtz|w)0i>F2PeG!(%v3 z9gp;xutXu$*gN>A;(9E(qlx@NAXxr{F4kKntK)S98X+%U3#C6sM}GBwL>QPjkm0X$ zBMN4+O(^PFoCIK&*EbX4W?>!Xc*z(;G0aT|U!89b6$7%#>`>paq<dFS1OH$f)%}z^ zD-3~)S)fq1MDL9cT82wp`k{`q4kZtTpst2D%iEzY>M7_*awG@$0Vy&8G>D<^QiaRB zY<yMn6BepN8AoGE+x0y@zgLpOOmJXj7{!{$7n?V2C{;rb<90r6b<R8crU6PS3}`s+ z3=@|ldWxI1QKI8#E`tJp0oiVyHMTqQ7X}GC`!~%(g|SJ5pSU2iP{zswf}D5JP!=*) z8Hp~XfPo7O)~~*LYm>>fc(v`+?y}h%;nXokJK10MYLLJ@7Lk6RQdTo1Fsl0;IUeX8 z#)LOY?<pe<$zz<E;c|I1Q}tHz>@ypsv~yVk|5Hj>$47ajlyzQ~SZR~Y?K4}7y`D&- z&k)Av)kP~8I!%0TfSw@jlPxqP$p*v^T7=0QFcs(Dps@UmCS!$GXb%DQmGP|;g{%DJ z?Oz}aCOTh=2Y2ol`qWcJE@~Jk@JLMW8mn_2y+kOkO`D{fncWOfQr;qR!sqL-d|2Sv z%*CNEoyN7F^??ITYFqJI1WNfkMpdz8RQptOrJKQ0t@`I=J4fDgmG$%`_}6)<b;^kb zx#h(hAlOO`Yh6kRA@5KeA?(4$IlGC*<X<sa9ir0SN>VwX%(8-T!|7)Y`y4u-6176s zHsN`=|9d6Elsr#bNtU0HOk()q#Ut5rT)CVH^%x7b;SSV;Gr^i_7V^Q(o%0Z91lP@o ziVCLgcB~lWhHZ^;X!MLHnqCP4_)uR98^MeMh9+r8<Upb(%6IJns~!dfFRn-xn7{~n z5;&^GlS2ZY`;lBMdu_Y921LR|6G~eD=0tr$v}}0uPBGJ&EIV6ivS8_@h7ho0M^DdL zXTd<)tT`5NC9iWlEq{hAweh-shmnf`o-T1ed9?jRxk3F>uFe>{4NZ0F`Y5DYpeH%O zo>F73EN+S;bV?IK4Pl27RxXwoRTM4lPN#riX^5P=R<hMNHz^IaL4c=EaEold**uTl zP9D}4QseJ_vX~G^(}7!l!=7Pt1r&(Wwr$F%pI+Ez0h8fQ)SiOg0^O2LV;X0tA)j<X z_rFxqVegon_!(%RWNH98l6Y26lStwsN=>U~0dOX27Eq|f8ni6P)+uzLA40!^ly?kH z8OxlRSQFc%JzU)~WU?417WL$*zh;Xgt*%>pFg(BTXD2_;@jp*~eoARjZH_xJL+R{k z%m{rB6>`4{RfG1KuW!JDw!@4#u^?<w%S1ZHY88B8QYn5Y7sJ2|BPghvY1BKVLl%vd zKzp7L2o;Z-lo4Xdlygpf?8*<(t)r)Rg-@pqo)PXZs`{0DcChg@C$^GB%;7|X`g}7C zB1gpl#VuG*SBiW)$~@!QH7j>Py6%-_uw`kkZlUX>oFM$mkW~?;tx8pFTb}V^Wm=*9 z!QIU8w0>h{Jzbd*lZWY0rU2<~7>o-=<=7<b++C};hw6cX8&(eT#iI6uR!~qHdPxZ3 zjO{hsbQ_Whj?!leup`P@hIsor&{#OP1f2qjk6r>CxYX%b^8D;PiaH(gvdS)}c^t>i z>Z$3>dgf`o4-QWziZQ`P;;$gH6~JUh4_qq;nWxq3I-s^s<*dyLJ^*WVvvg7AsZ60@ zh+I;x>7|skkd#_e$9rb=$rROdApz}eV1PE)4ahz+j-&{-QYmxC&oM<>l)dcTJ|DuF z%z4zDfStj_T9e+KLeks|q0rB0lu3O|J71~xu5?)z!#Bcjuix$z55=bnK@^f|MYdqj zFm#e*BB_iuw~e-*JVS|CNy=0abV*Z|irC`#h#-b#bzeV&xz;>6W?%}dSp^0RT|-#u zZG#Da*rtQd2<#~aE<+Ylu>(F1iykZGZP-8x716MW4}~uz#Ok$PG&8wP%<{g~;$Vc@ zLGW}*UqopZc$pO{7a)p6GeZ?LB@eXg+Y0G|uvv@0=l^EoKLCW|nkTk-jlHuhAUu;n z7$^Xp-I6Ceg?jS@8m6q2aqgOSyd39nb^LNDRkEaf1~m{}*0p@plzzO%)ahgde2pU# zTA3`zO$$RI5aLaeA~jv%X^LZLGZaz^NU;pY5dXjS-UYz2syY+C-Ho822q=h%+9E;Z zQPi!jZn_Z-&|ILJ20Go%OVR7?dv8}?sTcL=2O)q7q8L;(zLJ?3$JfX|BN}4j#5jo| z$*75=Mnz3f(wdAA<3!ZaF)_+~Yp?G+XP<q~t!KkP&0pHA+N<{2=bU}^UVFWlyL*5P zwTCBz!4UyaNXvJ&IfKYG<gBy6b-)=VSb>~vTj*EI16`AlR$H-HlCPRUnR{~$43aL1 z$a2v^bcGBpboR{G(Nl@mwuY336O*0s$xzJHwov3ZlV#rt!oXAm2QyRQ<($hb0&Ft~ zu#LUJNoEl?J`cg9s=nSpgsVAxSQH*97d@J=-s*@^j}r=7D8GI8{5i|4(pL7@LIH|_ z?n|L3nb%ebjs_neh#8h%;JJ-`HZ4yOe)AZF5Fdck7QV``bN-UvbkDulxOh}m}r zg2CVRPV|1sQPGTIBx#6P=t7a#xSUCIs_a5!SRN1<NXOv!=FU<&PV!=Qa=?vL2D9m+ z&`r+n5RHN+3Wp@#VzU=c0gYQGIw**dnFV$f4wjwZbYO+D2kU&tfKm368gf_+g;kY* z`H|@**j?fD>{fUP+SuK2Z@#{5b?;rAE(Tz%jRG*H;f@0X2ooaM5Ine(<GGi{6h&60 zScn%fmS~p?NGCt@Y2v8C-`mzSh?QC5tV)?~s~&S_-Lya&V`msI$DLYgWCm5t<>7)+ zJffD;Xyx=7Z)gd2z$uv^zX<NcIm1DVT###1_8hbBpLyxt!oGsG!5rUVWmM>PF(_zq zoBQx3rFKHnUz_`|Qu4J}s^BU4fUaAK**Si=U}+2WD53>vG}Bd&2tR;IT?9wQEYqnh zZic%9AS}W`iucrkUj%V$6K?!|!(`oMTFO*=8I&fASp!JPXqpjxrqRaKwb+nh#uv`% znno{V)vj4mFKpZ-NZw>e_Y&+T^Vn<K%?mcfgl5z|3yq3uWBa5eE;;(N1;=^l0Z0L| zyd9j;0?}z)%5Gf`?9xA6trj^Unc^uss=GLgsY>wvvJn1Rg@MzYVP{&!`Fe?o%P(^k z13@cHLwE3-PThj8x%AeUpi3aMjf~`u=^e03yRrhj$r=vMCcXu^U^3PA*=N)LU?FC$ z60x{b3o<KY2>328!O|76TVa#PBa~}YJ`NetgvrOmQ8$1EZVY<goZ(GvU`0LzJx!(n zM`Hc3pVAbRhR4K|)PWCI%w5qeqW2-OOE4#%YvkX~5ir7DeGUsgDuy1?(`?1*QY|fp zt{@{gxd-=kPdcrFiwmbC-4rusvdhkI>Gx6IB`4Tk(Af9}-v;<ph&dgf#DQ`NO#nf# zUc>{2Y<yr(P>s>fE_jRYfplZF7gU>1bCO5%%EXbclv$5?S7L6nlslxznEoW%YcNEg z81Jn5ZTT@d+9_w*Y+;p5q5H{I*S0zqk83$ig7j>ZaeX~2zm`ypbrH9gWjI20vGG`K z@A)kA2P>13V4UbqEgwz~Ci@EFMKnetiNrfBj`;)$K-4GB^J<AE!_xTZGi^o09O5oE zAnpPY7q05Ex*7h_Og&PhmDNa3WqjgB%fpgX2Uu2?>|VYl=4b{vqRYX|tV_tSRI%;n zHAw>}R+z>1W%>DR3Z2QZppL~l$Cu9baT8wW!{d|t0*7WaXl?c<`e-80J#y~h`rwJJ z{x&vPT1%J`M`qzhBnQ$KS=PB(lu2Y6T=zdjMng)yISG>|*14?XqvU)4F@H+9@M8`P zK@(z$&w?Q2p7y)9;#8F(FX6?gLCmqts2dy_j73Dm2Z9XR*O}op)6p%Q3P*K&>F!tj zREzY#CTkvxj0v@gEoaS2<X0wk3wmD9kXF#1lu%s+LofWjYc88kwcFRWI!K*h8>_?$ zAJp0dX7|lf%4N$B`Z?zP?oP$}ST4vK<Vgs2O4OLW(BkvE$X^C?xJ(p2VDYR(vXj61 zrLLvK>t(W0;7UozGHEhbKlB#+&FMf4Y9iW$(sqeYi3JF|J@}-Qh~#TksUj@qL|6z% zPj?Xn_l=F!CX4nEa;Dg{6K;3po+?$;%;i{Ja6PqJG>cNp%=>(C#}+d!WkxV^p~!I9 z8HFsLE8Uop&b~vDQgSWOyK~$4$c%-lRnFKoKH5HGq`jvxHhe~71cz{Ede>-wb^RH8 zKzsVvoY6FQ_S1LFAoS&QhNjEiEh{|^-U);+_<L3du<|m0&!MJ~E#nUq#MP{Y%nG&Y zx?F2!StpTf0E^iotb@JUp8dd#YMgWFOcX7C<vS;+k;)P}WU0(eqcSl$KG7J)d8f>w zcE6mF9l-etJ3@OB)8gC=Qhbj$rV)WWv=b9y5d(W6ludw(ftON$%}SMIh1?RR)Y7-Z zqe?~;H%{mGD)ALGjknd7x0F12<{L{gzQ{>tK)g*XXLbp0E!qTFC-_yW<EY4?e>)eh zcZ{;m%uC1ijBW|?!opXcQ^P_M{BE)q6gIOdVz|4oY|eu`Sa5m+j^187_Dx$}nNshE zrTC<rwmMUqp%_xVM@=Lb(qK~^8?_APX7$>+69N73a*OIfQ^!H=Q5U1*zEWLIErIO! z==}dq7BP7lEMfga^@QwIyKR}|!8*R?bH*o?yl|Fb@i%8IEM;V7bZkz?jGoRE;T$<7 zxJ%$H8E?YcZY2@@0ZJIoV6k(`86<<iav(v4JgqVT4k3X#(uB7)neb*7dsEznn<NTu zxYmHv&ELGBKB<Px`zE^MsAyQ}vvi^!*B))*qcSa}y%^5FB`mCP(2G9L;fan9>VliG zZMh!P{G6=DSx9s-4+V=Sz<_KO@?V&muo6m8@MRXvA`}x*W(PSlGhq#cC1i@5qTsH= z*av0~dCV*q$w9}TeDsWgvDl1oO64bT%d4YwcEXVA#bFWqmw8HNza;Fx;{!Q?wrm>3 zGA-|45ME0eZFo);?3|{GOD(s&Yo^c%w=8&RcAZYyV}L-9La8x4IX*LC3132uQOhyE zDDE;d^#o28OgDnha~+l$4@XfEG*mQL4DY(e7|qO?4itXjAy|sDBQt)$g0J$ol;$mR zfkj50(fYo2DD(=Fg<z4~{iHGAZYNe^u-olq;mq4QPlAfj^4XSEOvI8EX2*^(&;^B; zTjjE;w|C1t2yNdN>IC8lq~neI^V(sAv+&H3kydB7CphcPkIyAp7Snd%kTmWQZhl;` zOE?emeYV>&AT3QTheRZ_0$P!I2&O~E0AwjZB14~lriGGzg`PRhSK9r&Y?KH-)qieB z342<9p}3p7_<;zeyvD$Sd5!L~W_`1P61ebsb4d&xa^{6>o8=V@d{$8pXGWSRQ+}j& zvA-<LE*KVM7FRS2!G)%<u*B?m-_p`%nuASn6^d+J$xNGLKnRAPGpT^9%X9CDSw$!d zn2{E!hm4--yi5m;K5*tl^^U;Ddel2?Rnw-8#$STcLDAxt#;ksYd690nR3b3-Svk%T z*Y>6?^HOt|Wqabquzhb2c1x15WulUFslbx_Z8Uw46WAqq=Vn<uEN5`={0kAz5MmMY zPru)QL48T%FtUBuTesP7$|v7<nI^3)oG|D;gVGo$+n!cqpT|)tj-aTLS<@KHH~)eO z9r%Ue>0N<%Y@6PY*I=9Lpn#jcB_avjTb6j$R(R%WV$`xez=I>399i)mEusWFzvcgd zMIKMqYMV=9;*q$9QXPp<LRNwoNo*yyTzB9yW~skrzU%OTHEwEGdjus;hAdFyvKFkq zTVd>lmtRq^y$XWlCX5R4#d7v>SI$8TLAvc&vb?bFMCjsLcv4BaR{te00<eU$8-y1R zU9KOqcyVa8<vRb8#riQJ(5QK>A7Wwtu4qGNIH_|hWTVDoDAVA=Ik&Z;Fr3{0ju~yZ z-r-Da533O7vXQRbL2tg5x6K<HBnhXo`!E$MZ$~5z>p4mTS>z*(t$8fl^N`Ok@%pTR zVsFFVWDU>-(@anJ9x^3Z`7n|=5e}JzBgV`<63(u!vwR?3CM>YRxluRBs*5i$7q*Be zwJzPU%qbl-rw5S3IAB9bqnS)*q*3W24&=1Mn>%k9i9d4$G2tQ<tBsuL@@x|JRilA= zq#(fdk<kUb9!>@viDPZpVme6dX@#7enlE&T;kicPoEr|<r7Gf_kFiw>u{5|>Y{j`S zw_~{-?g!@Hpt(p|iP)*e$i%J&tV<)H?KW-T6<kN-5_`rvm|?JRl1cM}n%?19C>jlN z!8udB__QzK$fMv!reLAp&tjA4Rpz>yJaEQk{o>n!0-S>MGkF#@V<5WhIyR_j4p0FL zgGvlq`a6ctQ?MZh{fW{)=bond<~X~bIxoey@Pp(p5sE10@iKUy_&|^MEW(D2K8N(I zajbAc6MLtCu&klJQj3gn$XM&Fd7+Mb*z^IPJXIpigVJ=z!Fr9^+@S19f{dw%T#dQ< zx*ys6W%5iXeDGfP35s8n_zMngD9x39{fIs#?nA9&c|&mPe5O)0D54T_^-S65bCFSn z1sE$KWk}3E6wD}*hCk>H{Co6{(0=4Cm3HXr#NpD+PMq^Q=5*N%(tGeD&(er)4(2K` z+eMPp!!*fV6V+VZ7KmYWN^$$<nw@W^^jz)o)$Sg!#BDoCYVIo`GP4YLI63TEi!-wD znCL;Wpy<ye)M!ndNh9#%i<z_q8>I7ml`j|3Ay=R=ZE9-uoh_WNGCsXarj~^smRa;e z%x__kt_V7L;BTmhF!wy&5*<7vk^5|<-aBozvjfRNvLxm@(Bz2hmOW-koEXxC<4V|8 zot6}g7k;V-#h?`~2}fCUhc3dNQ|j<A(U!t-7CBZtzBX1Zgph&*EC#(xA&}{hdMnok zdd9OPZiI3vUg$avOdU$rg8z~&IQmW{0s@XzsJmdP7}?X<H|5zv{e?=@^pDkG9@FZ# zuft<ck4}s=Mv*XMY<P9}&&-%ts<lL5wrZovNEU6u9+s!g3@I})KLy@1aK_|4O^<GS z1yMChG7$^Q!J3MS?x8@6v0&hi_m0!xtMi;pom_A+^W|J$waffj_X9piC7A*8adgbz zD3)6#Fc+>g18a5}oFd6PE)zomeSIl4LJb%S&Y@};bi-v~CbKApqi{r12X!h_`=+Mb zykLpJg(%Z$32|I87X=q43p<KX2)d)h+f}i?ZYHHw#KYZ-d$xUDc`Vnw(w<BEdrBOs zu=to(V?}~vvDw)*_UQ$;K`zN99Ojf+W{JUo5JiIsM6Oo$AR%_t=t#Fhyi-%b&GUu^ zDxE2>9c`qk5e|;r$Ib%>Q~o})3b|h#=pITQWnQVRpeBi!hu|D(#BsU}vmq$yWM_C+ zpv8E))Ng<VJyAu7;ToFQ*|XgQr9_(SCL;AE=bq&wv2&04mx4JoJNLAFWgrh8TG?N- zbN*4c6WKY(oQ+7Q(B6wPeu1W<`R0kF{TZ>a=9s=_Aoy%R@`BB%`)ea_O2{qOAt4wv z72{Uu+|5>Gn*a-Op^Qw4?>n8Ty?S7#Ps8}LJXfjS0y>RWk4J@3!pct0nw=gdtL|aV zcgM$!BM^3n^h*|JGHXz~Ym}n}oA4&BqC-M(M!3KdYKR%nRRd%tqSWz57K)rt$#%eY z!%>j1IZ?h^eBs!9td*Z-s;s%wxwh+#g)9c8a*mfkEOBMC1@}n!Xdwm3<P@C8CWjGc zPzbmyDz663?LT;=gOB6Ne}v-KqSPD({h2?4bZZGONTO823%Z8dnN!vvaOo1$$zNpo zTrLWMbyo2pu>Qr&c(#bbyGEO;eA)Mwev(rFpMhyTOuOc(J&g8PaEe>oU=pZLjZZ!T z=^8B+bXL-;oA|(15_G;)axI?WKxC3vhz==%{lr^1?G``hW(8B4OZhP~cJ0{sp0PT( zb@&uT&TwHOkxb9>?lMQ%qLS%F$#+Xr>0uW0i8TIbnaB&}A1+zJ5gYCW+RD;N_RtFZ z5fw9{Woo68)XsA5h%fCr-f|w+GC%hS1e40y+3JNd6mY$=y_$2XjGt=KnMHHO1Js-g zJ(Ej*g^5r0e9(ho@fP>|qhbIs$E@6ki)$AwY^z=7p#{MhI}iz$aE@6Z%w&CP-{_9< z;GvZ>3_MOe&m{;*{uh~=%>E2Vp;%oR#HMX=ke!OhE`nOfRUs&>GW)8D5J7f`Rilex zB+a=hkJ@pX7M%*oT5Q(xNZ|6SD&~(bxg7R%R8{c>S>79rRaASuwF&Lo?%+|HR9{~v zgh&Dgv=m?{gF|RhIi>V^!K_x>b`g$(dTR>xF<>+H0=~0QiiIryoTh}7KCHGtA_9T5 z$6B{No|zZzsGWh1zlBsVi1t9q(-wGtg??i%%C-!7)qIR1vti(fFGJE83}zA4!TUQ% z0$A8!$W+5P)=92`cYJLxTz*m#h)deT?a8ydbeepP9xP&J&}Qa|R2kn}QN1uP&=8g7 zUO@$?0cdM#NUGLd9x~=em(d|?fya?<IHVuI>y`UqRzrP1%N=cLqr++}`dnspM}qO$ z%RNPDLUdq}fJer@5+f(hiXb<~uHv~K<MC{h36moOcU_@3i{lZb7=y+lIw8s!oyFEl zowoA_#)Nj$0)mD|r{TBFZ(s7&@J;vGUzZW1I;c7!S^hX9hah7p3*3Sy_T?5xgyiao z#YZXtF9l+hWufezqGN&#l1D=2%pBRjjwvpny$XkT^wATxpcS3@ZW0RQF4bS+?2x-i z?l_ZZyQ|eG;}1Brjzvas`<vLBXMv~=APC7(77lE>d+)dSGpQFBj3ZK-I?)xffAUbm z8Z7EbMy5i{2|f+&UPJI4LW-S`A8%diK{|x_sChy>yo7PFd0A!ERSqgc=+W#gXZsY+ z*qTRG9S+kL8xUo?vnUncG7DWYS?D6ORNAVE1=2@>#g8Tv3peH_W|`Qv(Znudr<kvo z#j_(yjT6`9Qr4*<DuK*{mWOoX!9hJxH7Gl60F$yZ?W`7a7jqOb#aRFIOHOB=X;ErA zi|v5ZSRp;#623Xa4?I3}$<XKIl{ku0-Xo=xV17MJUB<E*s|fc91r<=pNM;{9!D1Ui zNHA>Qoc>;8@C)J|U4ENLg&0iJ!8lW&+SS=<DW^j=qTY+b)t7as;KGfAW1X>rvV*6t zEp<3&hVoId5Ig8Xf==)P5AB{z{a~dBW(kThGLThk$#c06Pz72@1CsdbNE)DvTETG_ z(XFSgUc$w46JLS^feBXjP-6k+2)8j?ZgXz~S#p}~2}@iQm__Z|B|HWW4HIO{wh5yX z6VIz|=-kg0IJD6n2prrKC`|PAAMXx!nc%Zfx&u8FQkqQ983#&tvM_JGkHm$D#X(L8 zao8d3zl9n}qtIrB#44Hj_$4o4^5KQP7o@$wagh=wtj_>6^+@L(7@j&z#wtDKETG6n z&=)YTQ16O<;h-r}x<nGfmdQn&M>)<o$Xm=IY&#HK9KyJYHi|h6>lE!5`UNsi#ZfP` z(;Oe208_aW)PR&+X9y3M*jEpR?vVyk-WnCn)U7h=q1fUQ$l;P{sTXt$8k8<Ii0oTo z&Wuzp6KxtueroaWU9Q3n&uPWkvj@8UuS;CC8P@>|7Zk-Xk8%T-a&qR1pK3teW^U%2 z1Gq?fCGC<wy7A}mMGuZB{=f^}EuzCAQNJ^<W!#aO##s{}2tCV5B3~PMw?sz_W-?)x zN`0@w;T|R~qqVbY6$>iU;Ph(6c~tl~WFF~ESMgyx(;+T9H%E}Vub&v72=pn)9AnJ; zkqW2zV=aO2$#mKIInqm~y)Fc3yH49zVo_Me^X#jjhQ}nb8tyS41pI3wh1j_xA^r|t zQSF^9!)gbc(s7%_6O}2%JV#%sOGP37(cXQa?FcSqam6lk#DH>pvTa+5&+d${l04(# zDP-8QEp&_FYV*&;2wAjVwp0+g9!vzYbN|7F7&1?c1oNPIpnEe2ocZgHq2v?v^E%+T zVrsQ{`3KG-y5cM3r=;X9oT{XgIB;}Jo~dyj*ZlD;?N6YakyH$8(mXQ0FKX6t43?QY z^&t{nLyy$(vuSkT`bmvWD(|Psf_kz#v${peNTTBQcCasA^;NCXw;^aCAy1<k&-i!? zjyJaGml4xomg`I_V>?!hQ~Yt*&K{5$>zGusbI~zYH|CP3k>zkS@0=NHh9tU0+Eua> zu*qhr5QhXA$W<Y29}L<%CmYRTBEX!gJlf2D7nf#b6e73aUf!!EeC&FJ-xobu&EM9U zy0FV0iLDjsPa3lpyR{9NSonehU7DrxXj148Ky<X=mJ4t0C+XsxTZ>s6F*%mhIru=W z?{=?+N~~+vVQz*#-Tm%^yRDHk$nurqc{(5RDk|HZAlseju<v$<Ov}N5$jqmBBy8ba z?WP=dC8ZOG#;58Rj85+yX$)JL8C+=|wwdr>_I403K(=5Fog+UgqCQ|nL-s<s-BV_z z#M8r-iGR(`tXU`N|D8m=TnEJv|G1iF=`ze%coWQPL9>(BFDvCH<sFFOy4jOXYK7vN zb!KxiJJKwtP#{7)&$ARc5vNrqy)3TAgfqXv*n~rEdeR~W>bu7~EnhZKn6we<;EXlv zg3@;DmdY1)eWqS6716PM^5f8zAwB)Xiq7R*VG7&=uQ8)Xi{SQyuGpfnPz&mUq0RO= z!DH0xBg67LD|k9X!BNb&4)Hq9brLpd1ru-em`sDkBfr}39yOu<HuxR5<aH#yfNtcJ z38^(b8rlpyNPo~8AFVf<&Gyt(7A|Kc4QrS!r)EPSKCminF>wV`0m@t%p0M<4po5kA z7We@zZel1*f-6AX7b~t?!kNL9IH|H6wD+x%ExWhTM!ZnzOS^6Pg~%D3>&3QqBLXS% z(aH`1sFk_Pj1`qWlPGy^CFuE{3fO)j^3!cx)YXd7mJ~R@T#pyG>@2TUP;YD!k)an} zdim;&r=D7^u3p=>wy%HnK!5ejYJatV_35M2Gh^)+54VvpxYI<lG1=Vp;=SwFoxW~x z_36W_PluHC;^DEGaP8?k5ysuT_H@LpPKR_f`0FIXV#9tcIlKGK2?BoPEPG6z!q#X` zM;>Li8k84&WiU&I$ny}tVf$tdI$xpzKy15wClZrHwHhUQHRD93e%?^EvU}$ql<FRv z4q3RSnjJ{`ot+*0aVRrd(1%U*Jl4K?1q*S~!P8I2D)^NtW7EoJ_OTjX?VRqyj;G9& zbgI9rG+OYG3Fh3(0;^!D7$^4OKbB>*I3*j3oNUnXf>+E_g1Dp2?1o_*a=FMGX8v_0 z9gKA&o#s9hsy6aiSb|=}863E%?nJ6?x6m$4(c;w@Ww<u3u|S>|;zDb_QZuklhP*|Y zEqqbhFt~TP<}1ABlw~U&YszIpgge)eNTMwjck{$n<pQrcQ-t6-FGp!PKX}ZzGrJcI z@fELI^UMhRlSJj@Z`CzZyFiq#t%GFk>;zXrTi^?22_Sz(DNvEb%^zgB?2{}j+8)qv zu#AXr#`2lU%%4kGj@i(dK%@)`Ym<{#YKhLhd4dDBGEglWk`!kS?^c2j2CuTPk(NeK z;@g0nlo;roRaj2cUPM%+pvPOosD$LbCIv0kIv+E#3yU*yvy-t0UAE_HDgRAdbA5Wx zxb2=f*ttczT8|DP?qJF!KHLMsA5PEQt8WBFH{cZEPB=?->KiP^G9tbw6cKj9kdpB3 z5P|umYKBC+h_u&1H<>&@ZtbQ2t);*Yo^mg#?3lu&G-(4YFl^yeGB@Qch=62o@khI} z9i9dj<ROzXU}4=d*%@sYc^ybB1v@3;U4w#R?ki1945{sdC~bBg%?J;Bk*U}ItP*}+ z@N<VRBHT>q*!;iat5$@@Qx9_Ze8NG(yr=(m=E>gg!-O9t{C&c-|2g+L=EiRn;Vo<n zzMgHtJJ=Td7~6uMVO#KPYzsc&e!t(rgf+qo2qzMFE8Bt}WLxmB+5RHoKP2#Bwkv<< z_dPCw8`wUJuts<RVS{i7;V9u4;cbMkCwxEQ2MB+c@NUBYPWU;(75n|URuVpi@NmKx z5}ra>BfNlclyHo2AK~?cuOYmZ@IMf~hwwv$cM<*};l~N@CHxBE_X&SM_>^x}!q4G^ zFC;vL@aqZu-)#Sc@M+)j>jh6_TkvwWuOJ-#w)Yo&Guv+={1D+?gr6b&OTwQK{+#fc z5BPY;5xydUx3DevKDGt_m~Fw&vMu;Cwtr68_n_ZTa5vk6_pmMaoPYHGf*aUAi}1z- zzK?CeKWAI;AKCs6;T7NU@daCK3*N-`&4mAs@ZS@Di104LPbTokYzuzmpZtD;&-|{p zk0acXz`NKM{0`fKhyG8$Uhr9LA5ZuK!jlQt5DpUlHsQMn|BCRlgbxrtNVw{s{eA}# zZcpG2wgqozTkyBo7CioYKAzwUAM*Aogcm08OKg9c@Oy+05gzt^zy8UD*Cg;&Yzw}X zZNa<P7W^{Xg8$04;J^LA?<aWZ54|n8k?r#d`+wwr7kmlZf<tU?BD|dN3c?!_c+`)5 zJi)KAE%+n0e@uAL|MvcZ$FME<a<*SV_<q6<5dK2~A7;Dq6CZbN0$;|q;9J=iy!l`K zI>Aq{E%?uD3vT$S_dkoUN!TKM8{yjtKb63*u`T!mwgoHy=Hm-)VEZh>S0?bSYzzJl z+wUg)Bf?J*K0x>&;i{kc{REF>TkyGT3!ct)AK~x(+^>H(;j=3%0^&J@FCsjf@QMV! zg>Aum*%tiR3Lj5!Y^Apa|1;Zy-(*|x5b|+?N3(ql;cLmyy^ip&2tP~sU!LIi6Z|K( z1%L5i|GQwD?VW`8B=E39yuaWm+k)?6Tkwl)3;u*{!A(!}@dRJS_BDiOJjwswPk2QF zR~_nqKZx+TgsTZpP2kmR3+`fD@b}pMDB-&g^YI10#J1oIp6q`YyoBvb33ny%eQXQP zJjJiyO?XEFKhCz`r`Z;Kfb9nfR~^pzAUq*~Z)98W6Ko4^d#Yc*op3CHH?S@EdbS1M z$F|^KvMu-xw(l4I2*2N75<Zl`pR+A^<&oZB@PebfE%-sU1^@YJ{&&Hfp6+eI53w!y z3AP1KKHB>WZem+-hHb&$VO#J4wgrzp#>W$U0ox}NUYfvb*cSY2wgvBFTkxlB3!e52 zzn|b)Yztn^w%`=og1^bO;P0{hQNk|~ewpxl34Hdke*fnXzL4+~!b=D*C7ej$Z?P@- zEw%-p_DmoD>4eWuV3q9w!p#Z%k8FRC@ZJReJ=_04c*b#lzkb3O5uQzWA>l=YI}&)# zv;2C&CfhB-zd7FjF8Bc34-&3?w*Ou59<~KfdXE2H@YmTEeD`zx?}A%bdt300YzyAS zw&3^K{sG~t=lS)5m$5B4c!K|3@JhA?cd;$_t85G2!M5OM*#1kxhZ6X?=llHxA7oqb zloS2$g6Fd>IK%dC!q+75ZngzK%eLTsYzzK~?H?1a_yxcJO2VfQ9!^+I;KgijCVXiE z|2^A+f55ij18fWah;6|OPx9xvh;T;&Z(v(+<qP=ygvTWCM79O@v3)(^UnKDJ)GrAh z_Cg<Da6j9El~erhg1^YN;MHskevj>k2v0rLuRo3O)r7xF`1S<;8QX$SJ<YEdd^X$9 zAsk3xo$Xf=zAb_8Wn1uf*}j|bvkClLwgn$#TX5y+{(OQbvn_ZY+k)4yE%+|B1z*+Y z;|czHzqbVsu6kSW>1+%3u`O6<TW}xSg1^D`TM56Cz!L`ieu8JSE%;Wp1^2Tp_;a=e zPhR8W3En#BZNc}lE%>ap{&&H(Yzw}DZNY!Xw&3rxE%<r11uN@(e8J<`7Mx^T@OHKZ zKgYJ<sxy5&!Dq8Acq!Y0*RU=4r)&$}$F|^)*cLo#z28r8kZr+>*cQB+ZNWcgTk!L2 z3x0!b!Sgn7z9@Ds0IaI4sH|VveZi{A%F6aq{Hn@yDgL0!J4^9TsC@E>vhfeD?A=&~ zKcsTS7s~KYtlaVCGW?S&=iFO{KeTekSIY2*RbKbCGW?S(?=HnZrBeCZvi^rxjwr=H zwesgBpJP?!h|2y_{E?Lpp4I*NR#lFwtiPZP|Fp^zcbDOxUirce&+B^7Rh6SF`%Cf1 zR30qFKcn(cDgM|><)*UnpINEgT!ufcvbq%itgdG?#Hz~iJ@C)&fqza9{BwKYSNFho zKl=*wJgD;hhtmt548)2`_q<^Suv-qVoRh2vdsD;ToZ$P2|3ZR4Ka77|rT^9bO!gf1 zvkm`NlzhkQfw%FGxX*g!Keyu76_xJw@P6RS-s@wbKQ<}Xq3-*|fIqHMO`hkQ?7t%E zZ`#2XSm!GfylH6+e-82Ipr8GicEg^3^*6jd<e*~I&F~%Kk0u`I(&yhC#y_fZP_i#x z8t~oU%Z4kPhn;qVO80);7sh#J<%!99zLoeRh<~D8j-U4geD^;3PwaneGS0_<ui$&7 z`}EVqr~CT8Fi!V={66p}VBVyz(tJK2blLDyADv{k!_Nt;94|B5VUDg05ij+)cI+PF zrAAxB{_i1P>ed0`Uw4p?FExnn`*q@F4$%1jM!d`ndY(;B@Np!*oX7F^5-+u>`oD{K znG-es*NK<fZ#&0XeXx%&^~}?V|10997J3KqA3VhSOD%jP@n0fdV$)NJ|0(ej%MT}h zBNmK(7nz0hoLh*O`d;rfO}xa=jU4C8#7mv}65>}r$;X%4;yB_jCSK}0&BL3Bmsx9s z{qH7T?3%`Ti1=Igdq+M0J%{>zWxm+JaaQ6*?0uys(0f&hmwKqm{x<-B6n~Gwe_(&9 zF<!<$UJn9o<4a7|eSe2|nd9+U!_R%h%WU+Nu-__`|BNHw#*sQ$>-O)6mzr7ge>^^@ z^_MyFB96a-c$sDNzAq<UYS}*azk_(G;k17Kgm{TNXojDMiI-aDV&bpFh4wr$H|Y5% zh?g4P=)V0tNW9GP`i}ofyu>2yyB3ZL8$aE5uP0t&uAXNc8zl6n*s<AfTX`4oM^v6! zN$KJH**|kPVE;cOUSjLz#2<}CV&lskcM9?Ah?iS}=KpfyrPer|{eP2qsfF&=_#g;2 zzSKGYgZSHtm)WRF{N2Q-^zDnpi_LGd|H)7H@g*K<e+?5aGqv#t_H#4wGVklY?<8LC zAIEt2$|s1ISg!Yd8V*)_FPX7)-xm`vaZKayB3^2VdpZ7BiI+KJEAc-iUTTobiN6>R zX7`o3MB{JYQK_uPdPw=nUt@o%oAjLjjd-~wtl{|Ye1?xN^^TtBcpRB_U#abmWdAFP zm-~VC*KNehT>5tQ|0?k^x2gXx;L(qa_<S5^;b#zdyRX#4+Fy0z(|vax@iL!Y$Z;m{ z;$fWcJ3{;VHsG;zyM8{*{!;U4-abdX+!gfvN8rJ1e3?D<UHXZad0XRLPW&nR{nmP~ zcMvaglIXw}iI<uAzwwEW1?zA3mHUz2Wr%pGVLr?LcM>mgUC;k{;$`j`VgDhB5H`Nl zsp@|d@VXbf2JqYLFLwaF*MB8mX6Ntny!avUQg4dRtc8eT_mvs%OT5WDh?lxo^LY>P z*YEd^8s{w#X>1(1cj$ciaKLlW2>ccMr{~~9#7oUDI`G}qKEBkdqVvZ+&+#&ozmWGh zmw2hK^!&d@ywv`}f1G%^|KN7v=S#%PtiOTyBTw-Aer3NSH2>EUpYnBg5-)cf_5TCn zrRLM~{ET?HA*la_D{MVLj=RtAyB}@)IrRDE>trkN_Fbed)qLJbyxbkckA0Q+3-*U$ zD=%<Rx$Q(BN9w-wi2o7sDSx=~7rejJUwW^zh?klPWIz1eLcG*f>VFUMG8^t-|DO>r z_b<)QAP7#`eyIa*^B{MbEga`2;^ii$ao$P1)ZmA5o}YjTv2o-cG01V&5-)RX_WZ=l zEv%pYpLlZla~==8ji2(#n~0aYqMq}O#LEo+U5@`T;$^<WXAM6O5HGh3jdLtEj@?&o zEqML#(@(t2T%t=i5HEA*4Ew*Cc)3++{68UH?nWB_?}?W=vXA4e1A}DGBX^CB#Qz5I zGOK-(_$Qp|{pD`;tHciypPuix5HEK^J?9@0FLygV=hujr`4ihS{QL{?GK-u|{KnJ# zd8E$QdbovnnSFJBeVBN;Gl5)(pZ`g`+zi$Kso2OiKQd41`(8`D+zdB!oLh-c<>ikO zpVFB>B|fE}tMGyBzH+-ejN|_j@iKpDoxFzl^t<2jE4Kc-^^kY6zufjZ9RH>>{Jt`u zXg>dfc)1hmefJYDH(`C>Bd`JO`K9*PbDl}O%zb*VeZ=3j-ycMH1b2pU<PNl!&$*X) zxjp|P@xM;I%o*bUze>E^99Ogdkpn)y+@G;c!p~X6r~LLd;y=FM`{{i@M7+!bnzwHg zFL#Zr{j$o{U{Gy-<hFDj>E8b$KBbdS0RgoBGXH4)&n8~xeBJlYiI<sXFYo(8OrVW( z_&1Bsznl0}PJ9#b>ALzo;!}C&Z-|#$(ua88t?T^0sXpo!;!}R|PU6$^@nvWFI4NKH z%f!nJrg``{@p8A&y1HL@Xd~@Mbl}+aKEB)(?&tHriFmoYiT?Zz@hP1@6by{bv)os- z{$EVI+);JkUnX8|2CI4B-zPrRpZth;xd&sq!p}3#DnIY4z}xer^5Esf%bob+9OpLT zGq*+JKSX@0C;T$;7e3@2Z)g7(y~yvY@CNZY7Z5Ku!sFQg)x^u4^eEzAh6%Ulm)ooO z?cX3iU59^2yxhL8;W!TyFZV3ncjJqFe7RA5kNxi<UhXv@BjM*MVC3w1<mN7U{3PO2 zJ;@!w>s>fR0PkaexnpXb{5|n<QxJXw2%X(Gl^<Kg%WXpE)JKU=*V_+>mzh+2=1b1; z@nsIx`*w(z+W<aO__+#<qVdVHf1OJFr_S+lQab;na~+@Z;ah+&o1eF_e>$HJ_vn8V zUc}}{?y}F~^PEq-+zR#G-$T6IBi_#bPXZ%k<H&8Ot#ODy<(rPUoA_g}0Ia{lT1026 z#LHb#-*FG|a@*JW`y0f|eMofvpNLQSuH$NcUxg>E=JTu}K9xHf#DDY|D?-obvj4|` zFPr~+*<axaN3#FF5TDZFXI|jXlk)9D#HaksJBXLNj=swu5HEM8`+46pF7)x`ZlL}* z6R&V2z1ROoyv*@h&-W59H}H!&{vTfC<I9~>-|Hdb<;JS}?j7R%Ki~rh|2E>~)}?v- zQ{v^G*5ZBpHu*SmchWf55P$f7@2K@WNqoxp{vPqE-s5z<psml$je_^Rk@!^Jxd-^N z^)NDK_-?!T{TxSb<l<-cU;*2GQ+fOr;uZF>h0pUo;_u@79!C81B|gr_iPt=Qj(EBI zgS>~I#--k0VRB%z!_SSx-*=3!|JB5Qi+H*9Ja47{;p)qLoGw0%_*Bk)I$p%yH<gz! z2EJ@Qcd)<Qoet;oe1!N^4{-c1`S^09*86^xc)7J|oCk@Qd*DeNf8|ymM{ZoAGtVJj z;bfZUCh)6yZ4CCX|9kd3R^RKwZ9cxjfHePo+a0g)#8Wuf5b<&&)i`^JmwUJN^&b&0 zH*Y=Xmxxd4$q$H^TkKPL-xDtP=aD-**zfRj3Gs4I(|rCW@p6~fIG-jyJ*Nh)@bML% zsPTWF`1Blk?Umj?rF)gD9G~(zClRl3&J+0jmk}?w_CDh8B0jadeS>&~m7L1{M_*mO zZchW=*15tAH2)ijmphZ_-b;Z$vT|JJ2SP9Q%6057cXB=dTZm8XYo8}x?uAe1bN-Zg zg=t(v{Q8&rb1IzfDB@p6yxjJFnfP(y<$kaI@~6ZrEJN@0FT|((#;Gs!`=<M@M!dou z{+jpg#{=7Z%54sxBm7)Lyxi|3FMJeuy$ibr@N@Q;`>odJi(c;I%Z;tgi{4DU+}riO ze@(pHS+)M3^a>y62m5^hefKMfmm8@1-$A_GWc9tiO?;{^LJ9jY4|110j?ei4;xji_ z;{O-%3NQK=@vnNNkE5^zt>>GGSGenm?Eh}!<@T%lUfJ+*((ia3@d^jj`@WBOx!-D> zr|<A_R_^y3ioOjJpV~LK0&n)v)c#dxe}zA5{{Iv43WGS5@AYRZY@FjN>tFpmVjTRG z{a4bxRo@*|rNaEDcA|0O6^5n$uO(jYylZ)v_Y$wL3eoLv6QA;p2ZIr^^{+4xt=o0P z%YD1b@u!Jb7^3F?ZsO(ss(o}n@p5a{Iy@8`!S0*N`>!TGm4Dw)yut&{=JR}yc!hDU z#Jt<jJv)7TxtnS|{FHdPh3feShrPeT8`S@`#HaS|zac*56KcDB9ED+C=#NwRAo1yY zeU^BI{ffRF((!T9eR?JF3S-lHm?mD~t-`+n_%eF+AK72w)W5*z{2uWN{}P{Y;j8?4 zQhm;~#HV`QJBgPYzvlDIYkeHK1#8{Djrdfqzl->>{r-U3zc-HXdH&Jy+K=xbUT)mF z@81!h+WQV2^>I==<0-(~{!RTN*0I0Bq%_YL5TEizuK>Pm{(p`A<zB4s{yyRr2BLlU zE#gyq?z6}I`BT1e2k@pJ*g}6-Y?JUa$^KveW^vv=M!domHP81EpRV%@$NjzvQ#zdE z-${JB&i^~{slMgO6F!c@j%K)j54q0q3Ku$>_}37xusD3y@Uvpl`=@%;<A_iFE6(rH z|K-FhtQ6!r{JfiZr3X2R_zx1FuD6GXPxTUqP5E=C`}9QOQ$Fw-;uU7Dd43D=3da@x z%fu^;;1!&=i>Axh;md(HI;^mCt>;(w=>Oa7pYkE!AwH!`hs^l+sUG`O;*}2L83*}< zUP*k)-?o6)oO9{}cn$mCy5F&)16S_$`=)*ZZy<gp`)i$lh<Jr7f7gere1-V*+&^KD zkFRhO&Hwepr+WTR5uf@4e3y8or8$`QJ$bK>pZYOwAzo=DbPoO&@d`)Ket(E~g}sQL zoVd@&S6Ho{zeRldoVO95>J9EBUSUzI`TT!Ryu#l#{)yN7eGlL79reA=0>13~{u28u zZHW56ig<;$LQNEYK0^Fg_Iq3X5B=qGIr=2vZT+Wuxf_U2^(sf-;Qdp%_$uJbo_~V< zl}1D7>6?jHIH{ihtHdjeSN)&xD}G<4>Ck+xCqDJpy%l()|DPoNU+L3Pc{}@OX G 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 WV$6|flwJSFf8^IUlLt<kmHz{TNcoWf literal 0 HcmV?d00001 diff --git a/week03/cmake-build-debug/22_generateParenthesis b/week03/cmake-build-debug/22_generateParenthesis new file mode 100755 index 0000000000000000000000000000000000000000..001096a297215d6b24803529db69e64fe3aa83da GIT binary patch literal 134864 zcmeFac|cXw8aBT7IS0<+U`!4ms2oWV1eF<_K}8RWiUXiHAR;QpB!i+kC20|2rkQ3| zYBsCUWM-48iA^_~EgNhyOf#F!TlqcjyVl<4aFlz$&&&P&{<&NCdDmLcv);AVyT-lt z-t6V6>B9}Gs%VE%8KjUeDp`a`p{#Q=hyeU1D@lq6e!DB(6nFSd946poA%KeGf>f<Z ziwrkHQoJOo)>U?rJWXmjB<UuxD~YKEB2<%#V&edcM|o{3VlSkP9h!`y4B^P2Oz~mk zU&<cEvlO!z(#8%=`pEoiQY#;+p>v|dUF9&=q9~dqE*%-)RL&yzLs{&-Ozx8UG^xcK zhj^6F|J%by635H*TCz)kw2LOSdgxPBI5Q!xPtmMiMTI3*)xD~d5_%=X^{y!G9mC}& z{lpzHCX-VlH8Sgrw}YR;2zNhwpy#&VCeQ2RWeAAqesD(LhSFhqz^Lv?j}@oQ=h%n? z>NZQNq6{ChE_9sDH`%hnrdUm3YP)SIqb<ro1L&QVH+>8#id%A?4RO*}sNsm;UNQAn z4o)<<nMRlnbPIFyQ^R&DmiY$T%w!AlU{UNVl$AY@TTf+$y3I>jwZi1nUGXvP*dDET ztVp&c`-BGgK^^BOm>f8|3c<hK@Y`Mb!<@pyo!pUd_rlp5XCItVIAd`p;G`o7XFr_% z$%A76&Ve`wkq5^RoI}|q+RO;J?KsnLj+Eh}A;;pJh*MZyQDiexvJsYpb1Kg1ICF8% z#5oJ+Y@Bq=#aW2+I-DgqOL5M}S&oyA1wyp=yHFyFAg{-{6z6iBD{#_r1I`+DDawtI ztEBrTDP6_QP64%WubC5FIQ{qS^RAn%?%(t4<gcIH-zj);5C5%g`fc)zPF=F`g_n<+ zLLPYP57Q^*L9frf5V3uM*KXTajS+k9I2gC+y0@SEIj`Nbi}Jp;#dbfJ>_21A*rwaR ze6})pUazjVe*E{xTOV%>ycqX;`^{~J9y_|@(&QWOZ9KOxchmCDX;I#ViGS|?A-eFv zgo=(Mw%;2(B=!BXK0P}HU$}mIn-M3=gMRc~I`FwWtve3<?X~;j@qUl~u;pN!+U4B3 zIT5}SzB=_q{Tp%bXMg<WSNB}g?#p{Zw~gtX`~1tVg-&WJ`tIEyyegF&_QlLR@%^*) zKYG=EJu$|-zjt`)`KR~o8uitIbqU|?`2OeULa$eYw|+E#Qm30^uCMf;n^(E1-5n+4 zdv^*>@ISI>vVXqqmxn8-=Kgwk$^NJ@*5|%jza*}Dk9E%6iXfxWdw22|KM!418?*a- znQGbfb?F10i{pnpc;D>0BO6k8EsP!<`|_B7Je<+t%;BCpmTlg;ym9GhEAl?{#cc~d zh<<gxW!KPo9z#EfFJA0DGC#U-`=*4h<$F5?KUh=|RMD_g=|9W&^t|O;mQ1;De9iKX zOHHTy@BDVH*TJ~Fa<AQkA4%x;v!&<UpR;`%oT~9MC(R4oxm=LJErbs=DoTh8m%RI1 z;Fq=#KCXrEa12sc%FpZ;!fD>P5}*3tmBN!+NOxNc`rmFrPjCzAR{CSCL>$-S#TN8G z&_cLx3*nEnkpC}{;FZct<E70tGw{2&kpJ`+!f773k{%i_uN3|}!mpH{XIls_1vy0V zQdZKSiX%t}<x|Wm6h1``s9rLB<+URG?=d1EREDRTMfmZI=HW5zMfhwN{kz>n__p!Q z`5zzyHl?GYl-Z<aA-?t${A(u&zn0H94-q~xU4(1-d@4YMKOw{8rM5U(F5B?tdS2`z z__Jt&!6CD&+=ayj*<qwCmzM6sGTjwYkCv{ftKiR;d}N!CJ(w&>&taMWXc_*Vv}ZL< zU^p~;er*!`d!-(lC+XN3D8hTnda-e+qP&UrL;B}Ses39mp^XTSly>MW!`JwT@Rj34 zK!^;#8U2X#ye8|H=4v{MuMy#o$owN4d_3+e!rMqaRWkf3^dny-P_dQSIK)R4z;v0< zC27KcT87^U15&!K`lDoiT-#L`79PaEAnhibk#byypOY1+)k^>hNc?+bxHOYuNA@Uu zv`e{4ERrwv$BFDJC(s^z&^`lXxn!{NrEDjYq@A_(OIO*hzLnux{qC3T<g#{%21fbW zDeV~{6Ig@+g~E5q_9@jV$Gt`P9Wp>`pYO=>J|WvlU#TY<86Z8b?en%aBK$XL2U$Hz zAi5&)?ZbqE@v^?m9YlDXw5Lt#UyKDV@!yj9?<vFAq2c)<Tw9nG$Z!ktN#SL3!G>nT zN3pcSNSS|M8UC<M=pQ8WiQ@C|og9B$+qoa>_f{&k1)=2s0fm&$BeLPpcumL0NSE>x zmCRm6v;P*(zo&9st5^XmZRNPMcDM*AlHtL!9gZ0)0<?UtmHoO<mP@m9F4~(fTGk4g zPtf=n+*ah%wZH6<;jZoZOWCj6OZ#Z;e;D%bgZ}8+ZjG|OhRBR)?c_~a?|;hr)#`B@ z^pM>K$a49~d^X8`>e~JXbQAoEQjb=T%cXr(X@@YWr&_kFcVxfQ`pYOep2x|2YUNri z+y7^D5rE^Y5Xu**M=Ed9e47jrVwo)0mQ>+iCDBu|y$z7{D4V<D?k@80+P{XoiE!8c zva!7g_mcUc>kc}8k>mCsvR_DZD8I;leb%L&Pm$w8GF{Z*KsE6Zi-ME=FUout%J5>@ z4qfZ<RjGfvtgq9O|C+S(-*O<-?D>Jz@7g{CWV@Ot%T*!utd#SqYk!QmR^;=P>|e+p zAJ<AdT#)0~02v-B$Df}hAJO@Umi;tEhDXcr_qcvhnPoN^B1DlKZ(ZBZa9NM8>zu=A zz+}(aqeT28Qrp`W87?ad$?*{>+nZ}UvEgE!^n|*!&v@D2UDr92jbfacks|ailjEw7 ztgrR5yjs1~%JFTk?AJqNeqNIEvTMDZkp0@#{u#3Wx~^v)lHuKCzmv^QDaQCo<tmr? z(Z<PIS>B0~xLf8&!Tv}^<*fXO2-*`#P;ztU6qlCdR#fJdSLWs_xoHze=gul9FPKwU zQCUzvarDrl(vpISc{7U&1a@U4XF_FBMOyxZ%IN6)xq0QemF0Pbl?X_kkcXet@c?3H z=2aBt=ayDfmKWp|r%lYA7?qnkAu)ISs4){N6LWL(tE;1<qhkaMq{5OpX%pgdC&cGY zjLuC>RdRE{ODZg_$OWY!F0G`na#(cg0uC=Nsz}WkK7K;!gj^7F=TukcmKBs&l$PWb z6;>|FT@WQ=w~$JU*-pqSD=R3Om6|as9|~p_Wgs==GcR{0%u|w^pI4bb7r=zdn5f*` z%DLsG3v-JKO6F9~%`GS|FD)0*CRD~jN70px^Dpd@fU4l65LZvAWka=CgrU)?<43`a zoXuz$KxA`f-mKibqN37#VLunUB9aXMf3+B5juok0MP6lfmMkomWiKz_+;ZOI@=L2K z;kpXFTpTp}Ir;gy71ZjZmE6pdg@v%}_=1Y6;sWXu`C4~CPsqP6H-GMRxwG>Mi)2pn zDhsL$kvvz)>_Tc+i_sx+DWdE<#d(D#B7X@B3i2yU%hRqRtJGi6;!{(j`{s_$EhsK4 z%F8c6gGY|?s;bk{P?v<JE*Mreb|O_O(uhvrn#@CzTEByqt4SQmM$Iaa+6vG*6LK?< z9;$=WiOJ34f^i4Dssyys4UM5zNo^dRCps#3XlV(0d{utsRcRF#TaYm^m#h+{nI$H7 zSOK(_E@IQA&x}e<?VF3Sjl<G1uFgOUCgx7)>qw!s3=*x|wh(nLIxU-r>Q~2T;JYdd z>2~MQKq|h<HZm+m8ys3UV`9X)%1og_A%4NEyvn>*Z>)}D%DVYabIP5VvWez6r=*H! zzSxq2g<?deetcDxoSLNf+~SN;oJpqyFp`&)mKWz0<rZRI=R~fm3rwighBx$IYF7y~ z9*Gv4h>npq7USV8%#KwR1+%D-qgu5EN5{@7sB{?Wzt9w$SGTsr81?^|DdVV@bGfi` zC@x)4kcQQhX7j5VwDd|EOM^*5c>yWSEiagjRbEMc0ajwEag~e83NUjI5hJpe>{WKg z)PJ9lHiXi`sj8$9Yq>(6QnA)4EnAevgLQPQhKWFAK9;lopEclAjNhrLm?kii56u-t zhGG6w3)8gRx2&pSF3;99y~S(OL@UnEee?C168as>0iLRz=0B{Iwb}3L#uA!M{|iG@ zv-L#=#*WrsTQu*#PAd)P;r72g8uIdnMnhgVwMwf+LBxW|xfrc6YdANl1a4A1qPs4q zTBCpDO~4q_%4Ug{X2Iz2pROZE^4j{pQE+X|gt@Ra?1&~l8doR<xGKQ)W-4ZTx;`C) zf&Oadhg5BjbDH8>zhRB!1wUQ7G+U>)l0}k=^Qv<za7`vB&gkge+`L({$_pwgN@ri4 zRgg^@Rbg0M-^XZEk@GZ_i`7qS%}I&5w2%_BQVLySj7M$K#s{Y#SFtd!>?$u=7L3P4 zmn6y&orDXZQn7r>#jX!8FRr%Pq)N@OL1JM^Wx<?sEG~I|$}6c%o0&c{THCd849Wlb z6^wrM(JCD&4jqZt6nPaDg>y=Hc>4F{X_cg}c!5v7<njyr*1G`I1|pR4zqTrIl)-gX z!t2l0+pKV0?@&U#l4#{2Ok7sB^5%!5H_-K@Q;oD<H8)R!rwbZEa_RaQ+d4cNIIkoA zyUU@nGVL<0H9C&dicY^kx~ePL|NG07tDINGMKN6lj9h@7MzNzlv<O2@L4{lzwqlh> zV<>ZM0JOe-J*&J6B8FjX+|Mp8Uzk@u3zs5Swf4X+=6D_!F1sv6E0x!!tzVW{*ve_6 zQ{UuFnowF)RasbCk~F8Fgmy^^QVR<Uucly5*X$V3=@OiVb)L-2u6Qp16x=9jIVrwh z!goS2MI_~B$m>hz3%#rA1(Yw^)WnS#T5;f>44K<8j+PW$-MYiE(#6<J<>#x4)S1*y za_L5d>u!{|A(T2{M5|sl$+2fbWh|C(#d+5ii0Qs?HqtMs&Mzpd{Ezp;Tz4h7q`Z<N zOVajNt6Tui($==ISnH-0V}}8?7DNAWAA$yUaUTM^pe4NT=BR*{8&!+9jr98v+O<LJ zXyZFE&6-zqYg}nKb|0};*GHtQDR%0=7?03^#XcGAJ+q=hGxybBcL{5Vdr0{eRk^ec zh9-miUv#4pMTw1bz3dSCUrvoT?<#wz=#w-iiEEC&bd4|`;|nM3*gU$bF+~n2)cjkm z-SFjO>uHSVTexCf(#kv3w6Ld5>WO9Ad|X=InhT&<x+Trq`}%Yh-B+8hGV-vgTRFF& zqOf8}Jl|4JEhMY8+A!qUo<`la=0$|#5?-%r$1K!3!-UheTq~>AhDqn!1g$Z$IgBE1 zI<?C7k+`aHj61lW&20qrsW0;W;|q1oBCTxbMD6}9&$4otdO~Hv{Hq%WX+3iJ1dTf) z^1eVT=U$utkY;OK3dQL=Uaj009ag3pVu8Gl=W)czB3D?%UDb5qFoyF|QD5&wCtcwV z(dCtPRY}tWNY1-%C?Y-PGeJy)(ec<tq^D$BZLbXaCsbbTlKS5@)>iGm`~b?8r!l7{ z&>CYL?|_ULIy5)7ca$<BJ#EO)+?d{Rx+|u4yl_vN1V&u%m}q6_q)915(sHAF$2ueQ zfSUpD&6)5XrUC!l@K19a_+3dipv1tVeTo?v9mG}tpZ{G=od5S!S}Vo{JhY9+Llqm& zjL=1R)YGhN3WW!Uit@LIK?sk+*{-k<Pb|7C_X4M|s=z`IdSmoqoo_@Ofk7zqFKmK# zH|1%`fA_KL@Z_ygIV}B^;p_3Fra^g2#@F6!MIawh^7+d1MK<<p;XQ^5{DMpP`D77p zk<XQCe9eEL)W!sN{8Bw@$5E$nWKchjIfdiVQT;gX6plxR_2Z;dI3B6ik0z&ZJPNHJ z=bggwG^~DHa0=I+T_w;*mWynxJyT5K+It$5_jn4BN0iiq$4|LlwD2USa8!_fBs+zR z9v~pQQ#jd9J2ITYDGlwI<P@&e0bw(o!qIT_W3E#;9!=GcGN*9u8Ds*hox<_xv3{&@ z3P(fLkDHysz4TB;S?3f^?O8iEJB9mdfsosr!tv;_emvw9jz|0TqroX0k8JD5KBsW) zT^s`KHD@jMIybjyn_^#epwe*Zn7!t(<&bhIzGsw8xzs%pzuv*gaFKs5MLB))5{~X6 z<fmqF`WX8I$xl^#`T+a=$WKlFbOZaX<fke=y^Z|_@>BCUy^j4C`@m0CeR>7^e<D9s z@#!-5e@A|*+S4=G|0VgUN>697|6}q~Rh~{}|2yQTDm)#<{@2J)Rd?FP{)6PFDm(4N z{{7_lBEQ1^C&*7-@bvk=5zze+@>7+aKFR(a<o6~2G4^kPfA%`~`H22Lt@iEd_S!G) zHD904n3!Jg))UoXufOI=^j>@Yz&5blrS_{4=NIqbVI1^0Job7w5}Ee!3-;P?>@^p> z7PLq8WD$hw@tAh$<ZR|oJ4CfIySI1njhr4-&gb~?^F;i=DgMiU8|}5{?JqYCwyQ_% zZ~t8x0A*dJvNl4Qi0`Uz#lXI(AEl~?y=LG`z2VA)zREWCx`7wrYq|y&X|m&I+7UM& z5Y?YA&(Et7$aKwMrONa4bTCD}k^T)(K!rI?DlZ+I#`Q(+3HBS#ZboTl+3QT*!{D&j zrZz<%Xk1l<=+u(z^{FfDwT(@;q8Y)xt!^VB_WJtkNYws=u*YFodwu3M!To@O`k|E( zo!n(2D%7m1rbu-{09i(?+EvupoI)Eo6meOlKx<j+mq2bjP&wOPFGCxfBG7#8wFi;b z0lOf5^C#txyhl(&ANGRjLjIz>9)uyv;3c5;!=`~0$h^j;FF1~_bT865v*I}vp9-;p z3h^k6QG488H@az-J+=*-sxszGguV8VrsHntID@*U0FF|PD0aj_>}aIb^a&+$!(lS_ zlxc^^`WOj(YM1_5TXmsk>7Qy<%neH~T)Ko75RQ!Zp*sJF^VR-hBywFJ--&9m&g~QO zLFoX1>t1C=FH*FZXk=*G31dp_wM)^WtIpf&QqMOJSvT#_I#K&IXRGbCOE-hIt~PUx zODjM`AdO8MFvOrx+sNI6bHsIhKpMRApD0&d)n<GB=mT|`YY=N)TJ4W%wMT2;-cKfc zk$xyHy^x|=s}zyeX-a3Zhf-^1-$7>*o$NahB+b5@l}JukWU&opQP}zw1UHotR&%%- zhSp0u7bV?STlG|JW<%}hUFo%{+tO=CZ+0njUFuW)Q+HJb)ulF&Y-_JWS=kQU0)K;z z1!ZYE7o~3WHhX>h4=^an&TtZi1f#x8O{Zw}OApkI-c^^`044iI*S?%qi#lm+noCVy zHojRGFI{4t4c=>4YbFwUS2*<E%z7K@tEFDD^{%?Ar*yqAckM;e-Ns3`1-j3~Ia%@d zKaj96)K*|l$fpiuC6IMcOl@5Z3zcq7orzv^c&==_6VP~*VA11fJICy`nMYj=3Bw(O z3czf*v825&^Qco$B;_rTa=^64rYVjbD3lllH){}XO`C~Qb2v$>SL#8?#07BKt|QS7 z&?mUgU9m0PMlcG1T4%=;Oj4`1Is&DVu0jd-P^sI|UpY0=s}Mays!8^-_dQq{-CTF( zdD$i^HRW~57JGe$O(c|IIYZ5h`X}<vR$Apqnd}>;+1JIkM^e945esH-Y|5hAuBB2P zM-0mZsi`{+x;2M=INZgE6EMoy>!w|B*vW>3P}z<-;6n5PWUUEJ6lLJ7Z6SpiNl+sf z97CX6lRK1&K?uoTSx+kTz)%idV_ML)|94Fnl|Fznh1PWv$wD?Z(TiI4x&U}jk~fsS zioNe4?~Mmg)&Ol()!G9pS2s2p;)2sCC@No$4oIw7D+++-mRiw^7}c+c)u9b=J#ecE zKWMK#W`FsDn;s@wikLCqrKv%-w(C)Wav0~f<;bV7C)x(a@LE(x^R{wWWaJ91)V0l0 ztvG2B#(YO>H=|_(<f;58r_yOX{3tST0J%Mif$m4F=3b<EhAN;hRX{B&gRr_xR0_8g zFEM{3zmyX7VVaB^n`jLwdOI{WHU$yw<&)AtXd-P4tf=;5*=q(7zcKYVQX^w=qz|y} zv)8`N-nud}DN+Us>p<l>ks)-1)Z;cS%6%M#ItZxT?Kz65h}#KdM5{dp!<*M0!Yo1^ z8>zkM&IqMssb!J#xV@G~gOkpMQboG889t}$q}AeoL6S8~k1JIXLT6)>59Qm*6k04c zXEDGtAsY34Z7DOF?26<$M{iQ7$OdX-v=&^1nrd1_>D3-;x|=0(+1Rv$v)~v-siy5{ zB>Pa)4bH;=mVzkRK6Kr;WaYY1R_in0LeMc8#Ql&NjZL44x<U+${-QYyMJAx60r`V| zE>aW+r8ZDrOk5zE1AsO*{YvYL+Rw=O3w07srm>0Uigi?A=NYN)XR_pByK}#n>m7R? zRm%m`j<(jhtZ(^fA(Ym~T8C_;)`t8dZeucC`e<&xa@6{%%XqQRsn^I+5J}5kTeI}M zQt8hcslC*pzlln#7qPU3px#NFck_+Sb&FhcDVxn4Cqx0x^GHj%uQ_0m);{2Xgi&e^ zKnqvI{f;c8WTs4PHs{csj$9ul^W2Z+R9fvT>2(Fi(rZt>WP@3n?);V8m3`HT%Fy)M zbN1TLo96w98NDMBYfq8?W>C^=(Ha|@`us!{SaUdRO3KufX-=y$YIjHjBTQ}PzRTL4 zNWPLv!0QCg%@<TF;fL%PDQIZvd(eCR0bCZ~N=dY#pU)#_GUrbd*Aevr_F_z`&pd#( zbzIsZo=v3KRRqZK40&Ee<o>BA7y4=1&QQ-sNQIXc@)1JLnBY6<x>Wg|a^ciEwKhX_ z$87>vnW!hKZBZE~NR`_@B&ujLvp$ny-B3$IN%Ofy%x7AyHNlD}VMUZ-^fAs6%FsYL z=JEq>Y}(G=Mx;s%FyAJ<wVyQ|BY>*sN-LdaE$u@vUHgI7>yW~6PC?{Vl#8yrDeL+w z!Kn>5Gr*(GG~3WHxJb^8Laa+*YYcr@?TnMAqYX&p-e(=9<2*#n{Xtt%xX$r6ip0c9 z5q8EnA$uYvd_nKNTAwA`i+-EcESt>>(?9imWe{b8jGaNbf}{wTk}lZJoVaY|aCuK2 z>ZD%Qf3vJz*(PFAZ=@-c*0i)v6RV`BILL=BhPjFtVU11q=%FWRjC3_y^f@xy6<5(0 zxCh~a7_};ER5KS9o5x)wj%C@w3U}x|&%HxidO3Fj8VM1FuMwqb=R1_Pw3x&Y>R3qD zh^7TS%@?Kfzjvzk=Ji=S8m&i;!;U(g=$x=~m7;StHXS_6OEkT$P`33tab`Pr=UAxx z7yV?|Z_Rb;^VDUlK3ak|HkF7xTw%GV*_2Du*wo&Ih!*B(+aj})dBSO=xja>F!ZaFT zz&kHSShuFRXLxAE{uV9V8k?HnzfvopL5-$f*`=bizD&c@k<?4LdciPNM^&M(Ve*>g zMr8Ez-tiKx4=DftcA|FF);=_LI?N(J+Pd~Q`uH)&EQgHHqQx;OEJcPet@IT^jZJ&W z7LK8`oY$4SQlXt9ja5eOn$#xSnFcD{nOHJY%6F7&YIQWB@zm>v>!zmD6ppo-N@f*T z<?iGZSGfOXWv~`0)tpzgek#Wb>U#h7s^{`nL`DhFYe|kB@55+%iI0eBe+Rl2Z6$ij zRoWe=#l)^%eYq;)X$OC~LYfZ4O=FW6d2!ix`vH`cB0B1ds<uv{tx+W<J0&Zv_Cs2j zq}O-<pabpE*7y1hazaY&Uum_!rH9iFn#KO|U&f{fn<!h~SK6XaX#2D2wHMQCe;Zc& zL&~LgpV(^-srJ5~R(*#QEmNk^A|z#cO75X`j{V%94^hoQAMeJC`(jF%60V4s`TO<5 zQ$4Ql<D(#o8f5HGfAf_7%!VD=pnGlAu!;?fikl&i!oLp{-2{IEI_E^}fG>xvguERx z3E>YwPJ-MExfyaBtW4{+pD+;9)j>7pu_VabA*Vtfhg<=93UV9dcq}#!Kt2yif0xXJ zm6!<^SQ(JrAlE<+gWLr<3-U$C8zDc2+zI&`<YCC+Sf({WPK2~zYjqi97~~pAJLDEf zx?}Jj<js&T;!2_c@<y!mjzjK%ya3q%8Gt(p=OB|Htr+blK@NtjhMWz#8S)_HKF9=I z`F{-=f?i?4vO5bh3~~vi9r74t5#(=>Yan}KA7~e32IL!%J0Q<Oz6jX{cPL(kjD)1^ zu5`#KTt5^+W<jojq&>G?kRL<70r@B7S;!t(=(fQfjd75Xkat3+L%s%C1o<808psQf zyCAz@IC=we5ae0Nk&tb02c#G>67qV;bjUj(iy-fZTmyLkau=ilS3hq+c7i+$IR>%~ zuCX^m(%;+J1(^;x8G}tF<VwifA$LGN1^Fc8dyp?f{sL)5k8Ou`H4HKiauVcb$fJ-a zA?eWWDXNRdD{8fm8q~&YS*MzPC>(z(NZEJl(xnI@%Hzs>1%F{#@a^ARx<prWikHuD zuYi%>o(nB2l)-`hd&YJPAr%yV7|smnMHT4>r8O1jMD!89&z9olv)VB98u!u25W)#x zf^#@<Z%9SMM>=o{Ru^Zab4kp1ecIlp1c~y9{81h|ApU7c(^yoHrX#h+X!u;{Ax=8Z z<KWTXPBZmu&NJFoCK9g_=TVe{{uYoa)`@4YF&gJPcw52y7=3;fq>29UkaN1%i*#+k z4&zM1h)?%_O%^9!mV?s-EDD@q#A!k!)pRWv9J13+<R=3h8d-Hb&4C{VJ_vY`Gj5o} z1RKJ>27U|hLT8+8l<Ux8!8mpd9J@2eFq8?DhcMt5fRiotJQzmkxE**mjBf*+aimcW z2F0HXJQ=vn8K2@v|7M9}Pu!tD-GM&@JO=T}mU{Zqj->x6@ZK%pHsG{e?+H8uZqtou zftsBSqx3Sg!I+!{PD^%<1U?LSPw3F&7dY~m4t&hNh+hPJz`wxP0H-|mb=F@g^i%t6 zC)20D*=TCSfU1=Nb~b+QXrBYXbI06r1aVw>hUXpm{S&;M;L!xG>zd@iJDD&R0dL73 z1AwmsKFB%#B1e3h%k}_osm_)Fe*`!`@1T{X%n^Sp@RxvxI_uAK;Lig;0(`17Zpdar z7{Z1DH((B>TT`Y(n7Fhw(&~+COf_x>S$8(z7R-wy!95GN&Z9o^r6avaaQrX_$2xOL z9C$kLP~ca}uMKgEfJXwK=p3KYa2oU0fitxQ9n{Y0{^?BMan3qQ9eFqge8Inne;)V} z;QZ&rG<z7tpiKIGV5U95TdK1t;Ew>ubmp+ra7X$Xz&8T#?Ti;X@G{`{0Z($qD;)Sb z;Iz&Ob;h0QyaD(@;4QVuW564LS2@Qwh(<-_I}h9)>!A>5e3~PDA9O1VaGoPI`^<LW zQNY^*Z)pt30NxpROXFx6@KoT@&gmC9^sfV+1)TrRo0fi#18<Oci{%GC4DnmC-+AC8 z|Al@Z42^`hRKHQc6M$dqod4;L{AB>|3%sTLl>zSoyruTF4tNOgmevFfz<q)9GdG%j zG9Bq31KtMs5a;|Yb>QcL_x>00eJ}-w0dJ{(qJZ}Up60CIFpLwR_LTvA7Vvh?_*jvC zH-sHW`jdd~hTGI1laf{j8VBxk<a0Chd<tHevz~khz7O~*;5KL6X+AwJ@s{S(3&1}_ z{Fdq|0LztEfTua@M;>WeLgh>XehzrExe7Q9MTAcRZozd#OX*hw|M)W({nCy$#NQ0u z`1z$vc)G`7qYP1g3L1v<d2se24+Ru3#LMSa!w|24wZ>F0TfJ$BSJ)aiyI0g|ce__o zjd`?Ja=BMhidR&MSJ)6Q8+hOk@v`tUkR~+tlhA|O(2q-(RPQvmXH=!!?EzIeu433k zP~fN@in2j<TWL^Up`agBx2*<clR^AdMi6}M8`Sp=%4s$5utE9GAY!$NflPHvSMr3P zH1UblF5T5#4eSPs)u@Rd8q{yqepss+Q{OTwpBll&OfL=@#WKQej53qd+|^O_j&Q3` zYgOw8RoPCt(aBn*|H=PZ;C~kQp9TJBf&W?He-`-v#RA&<58C?<+WQS!X0$omRnk5) z9a=cO!$C(IA@sk4FSq^lzpt;ogP^^K!Ru_q;U^p*dEE@Dy>~%tH9D{?<>S}CFO`yG zvrHe$3O**uhvISh#0TvY(}5)zA1C;NL&3MK#1SARuivDbge-;<P-^2)ZOzpn3(D(e zAh=B7Lwg4!Y@qOK;m7+6zn1R|86V49KD6|^NWaFz)-IP1bPmGSD*NqHAGT82ujLb$ zlI)Mex{MBNIkO*I3;&fv`@Wm2a`(X^q=S^9QYJ__T*@pdXG^(2%GFZdA>{*7?v?V0 zlpjcWO3L4)bWfJ)ODTN+`LFg~kERJPiuJRFWzMWBsjRZa_m1x!)hjxtioMa{BES|C z6`dFz6&<CVMJ<R1B&t{YWA2~G#^CyqgfT-!GTt&Z*FVbd`jHLSj}*9mEM&lNp@=R< z=y3fQjq67#Tt6D%`mr0=kBhkek$%^YeYk$q!Sy3QEA1j*+92Tiv5IpN=Zip4T|YMA z`p5KLKmOqQu>;qSWVrrOf7g$LxPCOq_2U(H@NTo?qe!kF6LS5ii|a=pT>mJ)>qjbF zKeFTcQ6<+u#_#%(pnJv&`|@TSoUR`|aQ!%r>mU7h{RoWf$AeryKIHll9@mdYxPAo4 z_2WXWAGLA)NQ~>pF<d|T;QA2)*N-H)eq_P*<1VfrL->hzAr<9XVMfLEqbaT*n{xfg zh3iLyTtCj>`Y|Kdk3YG7JjC^5AFdx)aQ#?{>qnqmKbGVA@h;bodboZZ$n_&6(k#08 z15Yi8iN~UT_cYwkVVat?M!eanv*0k`Z#3f;UP>}1+z`Ac<@@PuEDTKVW9Qmt9FYmP z+c@-ni*a5p*zWsn_%-K-fn7=g3ZA`!yXa?3de!iHw3&sOo)GJ`(+Kx`0(<_(tcQkR zfzrmuSp5{jt{FTAVT=4gz2;Xe1B{C)RPnsD4es$T64fgt5$@bK5UhF=YVI;00p+9M zRLp->!d*eZ7N3py_3<5k2SP?J#i;EWH2}_WKOk83d=!fU<HT1<qv!qP&U}yE)6gA_ z*-x^&7v?SFq^*dmdTz*pJLga;xq~Tu%GcMDyF0n3o+h{NZN!<KfQiE|ZUUUkLLWrg z;iadLJVLbcD}M8_b8TF?buMoE0@<#kT-df8clAmvj>ua3fYJli9$|>Dv@KnWsJA2_ zRRZ4!a6*eN!P`ICf!odq{0S$0qEN*2dmFb<jrTm3216Kd&l9J}5+~|6rUB><8$!cz z#x+OV#;pVTaKUoy$xT+2Q9#ELLuBbVa$?-G@&=J5x=B~9NAFFAmMM_+AAjG3w_gC? zrco5XjfDXAS)gSn0w2==8Lj;$p#KOC!InLccbcKrBQ$vWZ6gKWe!Wjoz5)E}6)0^t z+zZNgfn8BF<fx4iv2d~h6ak*A!m_v@z;FP42;|avUqlM+-V8@{gL-k5qEKPd0Z-K^ zoKNeTaR_g}_b%|-sEgw9O&j2=nsX?sAhsKi4rgqyPPs=Yyc@*bmy?xti)Vn>S@pv0 zHM0CG;2hI=oMwmj`+yRv?m|tU2V~tnQKljc*kM=}@IGpL3wi^Le;M8-8hDagbUTIs z9p|jFbvu};0!FF#mSAIA$9p0*EBz<}AFDoe6UwaP)CsKgBk_r9SJ-Zyj&mmIN8*#z zW4H=v&~Yl7FqQu=Sa}$ysRL5*fjm_ATg2h)(T~#pp)$bp)L~l`<tsq+guiIl$+HOF zjEe_jvAPOMXeYH3PDisBdN?hi?A$`I=c|8v!xmsBU(QwnMtXpAy-N22)l3kkXe6a0 zL#x$LWJxVU@bwxbhCC5<t?FA2d>yd6beuCQ@VnF+3=e7puvePlPNf#iN7Zj;gZVL7 zzqG(~PWT0NECwjm0~zmvQ<y<7yfd>={pcAmW5F8QoXJDCNd0Yf?wue_0-;zZam7%( zaaQ-KI`D2VX+*2nnZv1igr*DX*vEkH0QQ8ApS!lXl0VfOZUm_jgb#HRnaw#R#bDk8 z(peDx)Jc?*B&AW^^)`H850Wn~13TelJ9tpjQUV`Be>5f-j`u_#M=UiSc(TT^awQ4Q zG{YU35}7j@_$-~neNu4d8hnc+XDRTTbq@C{!C7obdQx(>1K*`{*gS&MU^u>Aa$W&` zOy`h^l)y)D`EGo{@ZfCR_(z9RPXqr!<4E`w!>JXx=SDC+JcWA}a(D}(zXWG|(=cSG zjNJoJFM?^hQUv_I;jYCp_HaPydhEd0(d>+$8P3(>p#@T20O&eBwt&AiY{Zgb2*LEs z#4V24aaevB&l_@sW$gO^J?x0h@E?X{7{567K|n_xu~i#l8;tj3q~L;m0q9!?yopv9 zR%14%e}?hZcf}p27}f({qnx)j{*Dool?Mar?to({Yn_a5O_cB;K*JocFOBovjla(o z!?!vOP`(4Mr1?F<*od^LL#Rstt#rWGQ0yq<BBagmU4XXha6noy;6cVS{)o93!AA(< z)q~!<6hRtgJe2{`2@p;-BPjvtd!b~U(K`(IKY^(jUPYY-zDEmzS;i`~cuqbL5Iun; zEEC{POP3|a4`4qv9>K|4OdfxffP?wKR~rAow4i1Jo1)=L;Cr_My2ZFUO3YSjC7{Iw z^Hdu67rLbJPUEZCFY=@2umR9L8Z5L6&LhTE^HE#Gc?S4F;^+oYg7PXA<4eZ-Bc+;; z0e{n64O8AT?)Q;e{sL^ldeTWtpz<(s^R>}FQgXTi@1b$9$3^g2<94i7IkU-th7&Bx z@@xX&UyOq@W$au)1&-JZ|7m;<M&j7Z0Nv<_{rf`1Hk$@ND*N@_fF2^4ODV<~=J=Ri zTqQX#1E(he1xJiC%;{)4m@7Ho06(vD#5lv8P}8|U$??ECryWkAM~op))3_I9+R|Hc zdI3+;IU+yINimJQUvkC)pWTe(G(iP2d$dX2DA~)wyj5rGvyLK&Ii?4)CGjDUo@_>x zoa;<;u9uuQfPbQM9KAv)t1^`*OX9B}DHtD}${O$#)!aH$WHnk>dtf#l7xsFz4EVjK z=eJ26eSr_tIl>mqdCasOqXf?Z(}2_8tq|#mv70$ZOtBcBm~#X0J9G}|akdw;KQP@; zBiWCEN#6x@)VAy(Ogv?}XNDvm2kEP3L?w_pzngw4l$<|-xAD@HIoXSeZQZi4yyQG~ z2PsM?inei(2GTIMGj(!?NCQ4y=g`<H%E8tPVD<vHFUP>T6=2oqOkOfNsl3H4agt1S zD@eO^BIi%onYC?qyLYoBz5>$cmlK^0$x-&X-MK?Xxd8e#-p$JH)cTnHy4!2JBs&z$ zgv;4VAQQiGo3cU@$AUDgInl|k%>LD_@eygWrC`?U>>RS0Xly^yKyZ!wFNn((@Bm1A zbs}q|A0?29o!vhOmm1#!>0_Np8YL&ny~h&C`5CwoL!f9woGKFoE?~wrCcAr8p_1sM zpj|YQ5|~sED9hbjYln$|(lyv&XSo()c9Hv~NSXZtFmG&u?T9Q>S>+y!QJ#x^H{v{V zg?LUi#Yx@cKI<kK<rwJSv=Bumu-E<QqmunMm;t_;DRjF!wOmp1qwcX8G75dQbhsWx zx1Mv!KXH%3s*6jI3+AFLuw6^=llv28GRk_;A8a9tEP>hl2G$CkzyUBnz5<)eA{rB$ zDA}B(4W&PWehnsjm--i1fV(GBli?_%%zkMyl~B-=uMmZcK|eA|mU%`;8D%o)6<3Jj zxI`4G<eB^B$tY_;f8YvHcrc+KnaW~w&u%ixOQ6%jMU+J+T6sWe_rXlG+IsW1h)Kpe z3!-~ljeMorZWmAO{5EqvB2tVlU?*K6hNJr0JwbEiMswm;5hDZa8F~x{FYtID@E$OK zi&~(R)kPq!B_b^xgzfblDFJ&{gWX_;ZbiKhEczz2C?jP{3AA7(Z`^NwbU9wJfce!% z;BRW$l)%IZfDfDfZ4y2O=&S?2<6gk8n-8v6l#7&tTRZIj;FOD)mrxet3G<8XWmdZZ z>Z`$g`R&|kncZZL8!g%6!JMhH^$AT0Wa97UiQ^^ldXVaLqLZnZXt6wrdFm<3-cFF7 z(uvflIejJYMapP<%Pe#qCcX*Mr#jIoX(onRcA$2d_!~%`D4sCBp0u;tSj(F|B)c1! zahJ1Y`ok<8anZnPM}ss?Cpu;HB#o@&E!iHDxB#TpI?*YkOw70Bbdkh+L3&Cjx@MHw zWtJyOCHqY<KfRo-1TwM4LXSp@@`L2wK`XygMk{YbM%P=ucw7>LLF%IuoifVA`z*b+ zixoRa({!S1Mw#7U`S@0;b^(~HFJ~)(Ogv<H^*Tws7o^8@qEkk9qG=o7w&ZwA;!%)} z>qMuFGVx2xLAxaW2$H+MR&>{lGW)z`wMnvr!R&K6TM1;M>d_C&2)3vlq)9r_DWf^K z_B8r<Y+56U^Fg{nCpu-6iCsO0p>MLrEg(In6J0aP>^>gfYHE*ydHiy=63E14j~T<H z+8;qu1GMrxWpqLjGMeFW*9N?8MZGQ%q@FsFvLw65?`TEFe2+00J!pGG9SYJIok%58 z0-00e@g#;Z=F9=UMCa(r<gCf;yFIKANcKiBpK5{aJoIq9$2{Vf$#`!f&T%~+nM~%S z(c{2_lJg^QcT7^E>pODd#QxG_H44G`4hFMt3v6MIPLHAqk{LS>x&s^QSTc8BP^~EY zZAjdk4CzbH?Rt+Sr_#mu(>RD=pXARGBiN^I4vYFt$ZD|9+TAQ}eU-(!-&ow{i}5np zXMG}z4dYqdUczGIEiCS!n`6N~n|86-{0@sde`m2J08>G*&s{@VY@N>Ho=O(mHnQ0M zIEx)`u-N$%iwFHCQoKhJS?tPYv8S9xLp_VfpJegGn=GFEmc>(aBP-bF=^z$+<5@iO zD~o;BEW(}*XR+VT;<-62o?p-6g<ULOdXvS=O)L(Yvnk%8-YgD}Vev{aiz78G8t-Fq z^bm_zzhd#4aT3LQJ&?s4(JbB^%i<r!EZ(YPaqM9Tn~z0(gQbW1ElaEFHJQQ#RLYOd zCrBmZ*nGOEWEPuGSCtH6^XV?*h01t6IG(W+$bJc((IiY=;I#OS@`u|@N&1a0K+P*% zDco;thX~vxL9e<Ur$;=Jv@+@!jzy>6xZzm&JP2gBhAMtuy#b8BX%k)uMBot}Xggv6 zfQkR`#;ybOe+u9$0{cU!62gh)q~hvBrJnPb9!(%qH*5sr+X?%hI7L2E91(M$_6HmV zsJ{+(LwTg${0FZGJQh%n4yRM>Yiak?uj~e_CC9_BmIGd@Q#b)ZseJHON!bW^n@(XZ zA)h=3E!P{Wq2Vb&FKMvYq79)1li#xb^8mjK=rawrQkqJ)t-*kA+0a$)K>Y^zPol74 zx(~qQ;J3jYhRLNI`k+(-QM{+aNJ_9@Ka#%ZpvCv~5#WSQn~F}|2Sm4qT107^x(4nZ z)Wq73SPX*ii4}0#>F!M1-Q*lu6oNY?AeG~+#_6#fm=cCR_Rsfl!gF&MumgJg0(R?? z!g{}ky9K?k!?0~fj_Hq0B9LCgc?_q=sw?YN74O>s_x!6AdXv&4?nZS6N4d?u3*L68 z4^Yu+`(h913=L+!`M1M)md3zH+6`#;Q|T%!g0L*HJ`VNPXDAJC6a2jj<}2-fTZ$_x zDr*)o2o#K7MU_gsi|dghffda`e`<v74C-=>bCl2~f?uGx{6jfX{Atg$omIUv5ltNd zk82#opH_+Oywn1ipZM=<h?RIEdH)gUw(UBolfxC|5IBDjhaAo+(89c37qx45!Rbt~ zT{&!mP__F#f|H_iI4v@R;=j5t^z>HWyPvu{_CJa9D$-KCz2WtrK?aReKiZ1`_!m1e z`6WuwE=hd^5y?t-Y7s^3-UX$zm39NvCGADTKAq-*o~$YzgkP`}-=T=++t?O%3~nDa z0e5tQ+ec4l5mU$_wvt7>aSCAxUMvzjvPkO2qTi!T>A#o7fR|Yee1pZ{`AkWk!eYpB z4jg(5i(wmCq;6v|q7PH-{aB=>vKX1cBK<?AjQ*0vnD1GPy})AJ5~hrwO`=2mMivPN z(b0lCBz^+nd-_TI9PN>f-+*pt``Of>O*z}pf~^H1=-g4OlVNZ*<bgpj{$gLWJM{}2 z_WyBube;xCAWOQf1M*LVx+4-J;!aTX(gldPGNnJ@4jLpz7{z-(_`&`Q#z0T7|H5S~ zuK%3HvOihe&|x}ZD<fFcB(u0Nlf~-gENZu~sB2)c_H`Dwo?@}iJ(r@d4`s0tpEH7Q z^JErV3Rv8=kj2(bEbiXR;-2?eY&*kZyXOpw_xB!T$>wiVCk-KKQbQ4J^LJNMSen(_ zSz6RAmL6&qORKsEGB{vn6|Fu3@@M9eC@5wzdlid0TUg9(U{QF4#k><NuKSTiksq$0 zg9D0VSj<mnQ9hqV<vJEs4J;PWMS5^R^;s5+47iOD9I(WT#j<WJY7$u7h;NkwTUEf~ zriCnSUdy8HNfz}lvbgnKh?qBmP>YuR>POcqN-RC(VR=ENI*dKB0`8Yo8s}o^X%ovq zbvNemSbE6A@`_3;!C3EDxL;Q<pxMP<+6MRAD)n{$Edg+Ur`qqs-v|i7P7rik&mlEy z5L^<zp!#AgAb4Ig*y>H34)>ysSxkl#Xk@qOII*P;x({RtHC%feZnOd4Nt|Eu5!3r~ zko>!B0o=!shUz8%AsvoA9R}o6E@LNs4eI;A9q1`JG^K<dUyL8?2K1R;PvEwH$37pR z7kSe2EFBZ5)T%iPDmwPN2%X~TnvU^QYSsJ$u5&u}_XFL+&%AU@WWJxpfbc;Nr7KDr zu*o<*#?L~2X@kZ}bR~o-L%!JzHN^<1z{wotTDo1<al{;`Af{S}pW6tXGz;;rr5l(X zM{UBk0x44;#?NCq8b>!MJC5y)btR*XK;G2RFno%PYFF{5eW3W<tQaM5aF@WrC%{NZ zN6}3*-vsr&1!I1qFYKu%24j*lB<{yFV@lkNyjl`>Vp#S`%trBTiJ6ty|4KY~51zwJ z%6SHg)uhib3@e7D_dFp?Nik>^iY4hfO4KLmq(6i$={uq%CtlkQk1!;D0piG{PyN7F z`^Jp~qNqyWuFL4<uS?7O)grYOII5L|Z+*24mY$#to<mGEaSmb{61`_q2K`ZNOX4@E zF`vW^s6AWXgtbzk7dD1iVT`IP+>b@3DDj=PP$+!+F_06BQPpbV6r^iNynhlHeS4si zIafELQ?QbSu)fUIEpVEqli6NQCnfKoXDEp~;8YW{dqGLxuu&qq(*F?5_%zfHxEa}1 zgC-l)C&3#Sxf`+b4BsQ>z_K8?XBue23m{g|G{YD)2X!5Yci{BMp9O7$ZX#&9Vf73^ z4{E`3KpuR&Bfz2RY1FEk+z!<kG+g}$NUG{h>7~rVND-7Kf(*$oAX7o<!e>gETTrb8 zjTJsi@`JEK&_v<$NzOr?2Tc+_TS{qur4lqn_>z-fK^q9l6}}ZirlBna%@jUG9r6V# zJZQG`8iss`iVK=2y`~}YXd^+z(rXz~LbfcEUY{Xfq0IzUNUv?k_oQl}^d={Vq74Nt z7T$*BuSxMz;Tt*RBw9w$3gI)UgJ0eV?^>0bj+$JCS_oRNevPdxSmjlS<mpt_jUvd9 z{19qBXp8WflHWti2)bMNl)=F<@a<Nqm#8UuWo1fGgW4Mkp{XrI3O;hE1U)H&49UKz zhM;}IXG$q7QG%Wm9!pAT6-@Y|@cATnM2ii2S@>*&2i3v%rb-P{O~I$Nl%Qkk21-Qn zuBJrttICz2cSVqzLft;-1K~3$!JWqAVMK@tg)AoW<#ea1x3I5ZCyTi+vM78PqW_RU zwA651;aqmru9#j=MO!p|&=Dhlu<3)|Xf6;LLL7-_-$fz(6R_0aD|v(Gi52J<U!q8O z>W?N9(^rpzB%UNRee-J?x$j5anocR`^eT_Grf-*E#1u~tnoi$0hTQb@py|6ukeqmW z&~)Z8c3;|t@UuJ$^OK6Eb7gVhgnS)>@V^cv!F?D7dJU(?`vu5GM@B4a18P?N9Kqjd zko5%N-aFwJr1t7RZUo8H6Dvxb9N)SbuwVwTrmpItfgpv0FsM1{3#gMilMqSJ2dU~5 z&?kYKuhYM!gatlUEiMLL4Xj4Tzjxph)IhS|W?&ELIK_9)(^PdS20Zlz5Z=^Dq{Nw2 zr9O&DPyG^vpLEi*FsdYdMHYNer9Y3Pnj<g?;baqt@r5r+Js!+#i;YcaR(k@D*C<vl z5kH7yI-p)$EjeR=Pu4kHD#7_ceHiN^)>96Asm`JNC;@bRVQNx;#K@?w2ew1Uxi-kq zlGNU?@gb0&0pXxdVkP{<kLg-NI-1j5REK&3_!k;SJn>_SG`w>+{u&Lz7Xc}eDDuyw zoge8j#T!Z=k+C}h3MQBvm4F8s{#h+!CjlCy$L2?ROd|}-yW@rfDbEHpO^+?$48t=^ zFr5&*0MHUgY<i@}G}+L8yNtaN&|Qw$49_&Y5hY_k1!%t`wrWG{BEzW}GHdSw`p5y( z6F;UZ!@xob{{-lQ1Ewc_Ov?-}b(6|{F_-z{6lMveCw@#f8Jfx^90e%B0n-x3wAOG# z3SMiXf{g`~>40e|XWC$Bcv!+EfGTyEpVl#LH~erPV%8$~c7n*>+zG|gJf^1&OEF2R z4+DF)8EzHLf*$EHy>D<w8tOklcuynY!5hpBrq2wk`pe|M2lO++T;=>+j_F&&&~$O( zskZ5jPJmOuA@szLM@l$Wt7<4hqX}_jjvvV}c^Wq(^BGk1k-#&r#0fMWjK+hp#3=#3 zh&Yr1S;%U#k<B=55k}^<!0v30(=$7!1mkdw%ACyOfS)IdBP&d?8)u{Wa4PQs{=B&s zes0G!!T4z(spbOkzcn@Du^!VDqu+9=!XLcOIHjfNxgAr!@nK9-oQVWL0|@5M5y<d$ z#(CRh>`XvY2o`pxyK$z)#z81EJ;<Y00$NP4h|TayWA!fV1`)gg(4Bg0elW#!n{i+O zpgjnFR*Na?pB`K>-Dli+FYtc=`$)(CK!OV2)i*tD{3nX0o&)xahAY?7^9UZ--HH~$ z14bKkuueFIX=#uUN$^t+rr(S?XlYE02Pw5Vk<$`Hv+1!ek~kftlIBD)R#D2PAX6iT zde(RoNL!l|9U~t<<zQNDx(jPtW<L$)fo5#+l!IxbiT*kUb3Ouox*5kxB@(w*O^=wC z^@BbBCIT9#C@~Gs;z2gkbEfam9#wh>x|@b80h8U3Yd^PMrL^2daGC~*NmKMkx==TD za{F;QNYg<mY(`Q-M%{$;zIf#Uz)Jzu>oCpnvQGC?#k{PJ#k6JE0m3sniOS}j+P-JN z>}2SRVao6ZSRd+4vY!%|hC1^YW3cWQecW&!_-`6V3G9=F%&v8#KOaPVgEy9ZwCr<q zQ1Q5RfN>>=TiuT4gA@nCU?OoB97gF}OOHr<)IW&Hl5%Ls20T-zP>`hDnRv6LECzf_ zGm4dY?R%_6QhVImVV=7O_#U0Z6Z~T~=n|Y~-Ci1kX%P53%{g?%uLQih5n0;AThfN# zKu|G+3{8Vc$uo@aQ;8C=)0@iAyRm~2neXAyLQ9G9!VhgDkWbr2VE2g?xC(noCAzka zK;8S_Z5`x1fteFoxdEp&A5G4h1(&{c@Eg)2`2J?FbtG}Lt%I}U@DR9;6I<$#TL+1o zu@j5X&j~4{R_z@Mr?z$QO>b-i!2h=nYg-3Yt`5(QM!9?q2XDheuJDKDW|r|CLAG5C zLWJ!^-W^XScDQ*W;&nD8?ZyLu&hZ>Xg|{WxtfoU<VODFwaWJEfjzku<UAr%q!o3N> zcjNT9lX5S2?K)ssQ6ER>^BQ8ko?y9a_e&b!H#A7wwWHMBZm&RlFxl_NV#_TG3!nhg zSX!mKb5_h_FaVmyQ-ES#jSB?R1ae!<L%YL0k=#Ch6w8$LnFS33{v@0p_fpyd$a#Jp z-hV-0mIhewcc8g-b1)15snpR&8GV&T!GgC(DauVi*6Zlwgr@dElJBlnlzX*sStMV+ z%ozP0itD=?mNSid7{A_oK{Jmkf`8{}lv(kmEiY3E6|wDBN@)H~Xj;!e^)F!3m5j#= zl#T$a3>Xh7&%T&W==#Rv5QFrnh-uNcJJH7wqc?y!9rW`<M=~w(9HuBE5IC9uRw;nx za~{OAFbKR(1FWx-PH)mAC@c34#bp5CwK|1HL5Z$T+k+>dfjr&}6<UOXx+g(74EQab zB23F!TkG+-qI?PDdmVj?av<Wa?|uW^Xc9g+IpbDBrFvf~+r10?FmM5;t3jrSI%vBI zv$5$xDm68aRG@UBD3pj2Y+V4xo{Qk+1F6ta;`1#EC1e~b*Yr#mRFLr|;Olh`YtY9c zN2l?oYtGQs!}0S7)O*vFtm&f>C_%?Q+mrOIJYGe}t-M#D^h#TKpCVk_%45FV%4<xf zn-Q4xaC*?6KeGM`rj_X0R^IhURZRjuNaJW*c`@y9&k;;D3&>PL-DV@6+{$~m7;j+_ zO80aY>!{qydmF8l(e*$!>nLsI(Fm(})55{+AIOo~`H4?~`}*Lg^WL2{IH^Z;eul;( zUwVVD^FDe?s?*<3iUpVA)^#68YuEQm(P-~iMx(#?$I&QEaSOy;rFMQ{lpgJ6M`{OY z15`vi<Tg!4qcA1rB9@72+X(jp#EV^rzS%a?ovKQSN%j%QawmkxpqS^g1ahYnLN8M) zZu`A~m}k5KVEE3*(8p(OfU{F27WF*%>Obg(L#Lxw-H#a01GEQYLFxXgk#NN@_|N;{ zdy9SQU^1QiJH{s<)WKvt_xB`1=5znZ_!ktY0rZTs`w8P`(4dB6eCUJIBcH0YBSW7X zUz!hS7=p)Yko6>Trvx5`0o}hf-m*neC_tSHyo5M~6g_anJ%G;`7h{MsBUHT!KlKi{ z6D}0pe=x4VqT?dPegM!e2YeeEzx&U|p&JziH^&t96+o{O%y|oB_@eRg+c8U0?5_d+ zputw!`o*Qu^-y6j&3#6yu%N(RIHd}PJxmH<R?!1cj0Q^;<ERY2CL4^%oKe8Dh(krR ze$Qs0r|jL^o9G#T&S@#|#kwBBxrg+0GSy6xdNu&Rhd54pe90g-Qv%kjtmhfv2Z=)^ zmTA#@6z)At>#?oDHl-U3r<&_=bcvXDsjy7j6pI!8PBhXX7JfqAn+g-N*G6!Jd$<lq zx^qi%YljfEO>z}P+TdI91o^N&14UDuhoDYBs-hT<21@#@{KE=H-inq;`@Tr!SMCoz z+;7!W33KP(?tg0mM#Y%62Jk50RZ^|(*>%#Mw9)T!@N-0BrJD8#CJ?uRo7-XUun-@{ zKtvu%X>o7m6@FwU%4WWOx*aN!b3LQ_fNRyel=TM0QqpRpN##R#;{F8Y*FlKHTmmKI zuY18rpK%@bSJ7E!XbkdL-$EQEa{VeKx;Q%&^PO{|j<gj2sSU7ZxO$60n6r_1WKPPC zp36?>m*b7fIOuicl3kqD4hj;mWEqk$;GLoPbRUS>PMO`Xo{Dp*3J+yh;!$99e_<hN zO4IP8ME2eWMng9sQ5wo=5Gp8XrGbcgA__~$5m1z^(dY)Wl|uMO@$ZKT-hHDf#4K7x z4S0GZ?6h&32<4(E{_nV<{Qhd*<Ffq3y{tJoYN>g<5*5+m`dpNMjA1TpexBlAUViIi zHWV@Krn^wYK6wv|wEPB3BS0!ve#SQPZ5YQq^;86m&<rI@C~3vFAhXwP953P*fN^<V zMXPr-eg8?mu*MM6I~_z1sHa%kEM*P49!b-WlJ+AOjBe@kvD&0A`B<~$UnfT7p&Ddv z<Pco{d?C<i#~S?ugbc$8bzE!Qt^Gejn{iJtJvB_E?U8)tv`2k99qZe%9ROns{&Z(d za`WTy<XZiyFg)S>BHEPKz-RFr1j6W0@{Y_zo5MTgt3f^a%@{?A2toOLzv$xoMLI~q zJ{QDORjPbC%D_)YMZ6Dvwr;_mk+j+g_UyIOhQ&<QHYDrW?_`Qxw0I6ARP3yK4yIXI z^`zUhp2>Xwk>A(%OrdF8?6P|fp}ANMp=&+Qv87$%{t|g;!s+1&L=niivE@MiM5q}l zF=F*)SfPkn-R=V%1SnL4<(}{WOw*o|d!g>{L1c9h;54H6BeHcbf|P5SGHvBD{4rai z<N+?yDF>NCH<3N_w_;_$T5be<J5eZy*7cxR>AtfPLU)Qii|<2)s1E_(r*kM86P0V} zlFxH~CYl39RF8r40r4nDqF;+Up{s$qeGv&t*Tf!ZHa+Oig?8<C(>OTk-OR52*;$SP zb{$MlF!e~l;NCTvLOXTDki_$5u>S}2TtTq^sn8iDeoSHUQx=P#t62PcJB#1;K=hhb zxIpp$ss;w7hzpRi)eP<YgEo%j)R0{IV+z3`xpX%jg6^6_(9Lo8cS01jr4uV)jX7uF z=A~Z9T)JKEOAR5U&<L9ErEPG|qub@YBnv6Nm=7o2cL^y`(1pD3M#5=tz!g&W_Db=1 z=3fXBk9|Zwgti;9HXgmse<%Xo!Q&rg%&9FvZhLQv=rm)tY=!rB&&Q-UxgOq4_oL0z zgf?a=2HTJ=KVa3w-am8Uy}JV{h`k5ez`M<OukgCfxsi(g(0U~3djy=2hv`;64{uy! z`sAjJSoS0>>y8`f?@Wkg-3bG)Pz_=w_m$yv5|j<*#oN~g`U}W%S@(_M7xDy@xx<#< z8s0_AP=7{>f8g{;o(<b}Way0H!zTcF4MPA<hOEO07fZDZhLdRXhY?GS0iHyhaSZcP z?N7tDd5ZEj!Q%jBJ78XmDaH}7NjCUu8K4CObK+vDW;W7Wd;AAAZUwYOgPoUZZHyaZ zq>3kjKdW)%O0KOj2{5a82hgV)ELHH*D8M+nPL|;};3|yCWw1VjeB(i3TB>z2&K)3= z2?XAqIFwV#;U%BVxDZ1Zr!@$8nu{J@s&zBAnIZMe1YYc-hnIX|#@8?cu%6YxZ*$SZ zE9gjLSTrU9vfLxU8#IpNDy7ro>%<aC8L<$98a0#ea7Cy!6TTwRn~AM26lu*QfjzwX z|HcqO9<7<I!`!Y04#)V6(<2P2>&@hE)Uz6o;A9Q5_9k3wCfz-;@IWrr$-r}o6UVS@ zCd+o><_p2qfR;I6*-U=-!ynrKU)==gZh|>+t(mk-#`7)|doQ4uHMn^*p^I5o@iFj| z8b@y?v+|{iKLD9vC{CeyGwFcV$YtmZJd8M02J2@?S#Ks4l`@$W;OV*^!I90R0)seb zw*YvViyqlbc0Mch)B?ZVMUQMIgI7yEyMga>(IcBlBgR6i2=#5?A8H)YOsEYwnu*&x z{XpwFE7FcJ{>220@pBv_|2!V~f5v#z^*Ro%oC9Z(J_-Dcp-yqzyPY+ZT#bf{tYQBm z*3fV@8dMY&e`IJfX-NEuG>ECJ4k2<XV`s}#87)#3w|=yb(KRtHP1msAF&VP6Weq$+ zyPZvB4GSC^n$Y@W9@yEkh6?0Xahu(XHSBX}_}-y`oh@tVkxd$Y^@WCzT-rj#oJpI? z5VUy=L3_mR^gM$$gT}xuXHeQTmUCrk0i0s4tb)_~bL2+OmHRTq<wH2si_KO!SN80H z&2$QMTvy1svNzTkJl~1Aa^6zu6?0|eT<H~a<zdXHPIKjFMbazg%1OA6Ak?jY1r_q4 z7m=WxD{1dqzZ7sR^A)$3x`OK2Z(%y9v?>rQNG`PJU|J6IvcWT%#tAOJX9_L%x%{3( z=z`5pEFK@p!K!x@cEWIa+yuKwU|bW{F^LEqq5;-=M#a+c)(G4N1u{cJ<&L3PIeyU* zyYeW-LZB;&u>n!7zam6wD;ACep2ZUz@ZSk^r_NB|Qre1j<7+4y>39xduM>kZXMGPL zV%g{?mW@jX<1u)^=X451VxH1gtQx~M;dU_s@%O_OPn?_^#gA?PcrJV&hEG7?aGcHW z0Z^#Cf5J)gMFv?;@uPbHo=fVn4w?y4v2#?BO}=<?RGc@p+Yz*|qlt^2gwZB0Ch8NH z*r}51o1@O_n-`qdHyvi8^4~?OAK~=y#CWJrTs=zwokQ>+8f5h)T${KCOn|)sseUMZ z08Woi49khD2fF&>1V;l(bii`r8h0BOa5Vg80Lmhm6W1oLWX#e0$WJMt#Twjv;;MN{ zs@MShPK~2aTo%Br;t4=6XmIn1>r1T+9{~S?I8+AfCgfY6xWabGWG(`CgTXnck|QUs z2@lA$x&RL+j*}iaan0%@^$Y<%+C`6?xFY<ep4q_XyXcV<*AJ*NstENK;OjJw<Fc41 zF5W#2-RXhBiEQ9av#K|(ocat{j3F+=*s-@5DfFvpJ(_j)JeYufut{k%dSL1r>tniq z2!zR$hCV*lVmgmy2LjJP@N@Ln9;X>%ti^mYh9`)(YGJCKkD^_4Q|J*$^CDD+a4P1z zk$K@ZncM6pH@$jeF?Z43K1j-34^<f!-w1T??(Im)I7_Hk2u88JaJMmq`rZwB4ZRu_ z>PPT3?YhI+mQcmK1NjW~<|{CBpGk1HTZV9xGM?rkIwu6;$Eb`|-R}f{qRFkWq*C$i z2KAxs%K`b){k|UV?~$`R=8Z77U*UACdJ-?ph5t&=dYk)1p{{=uX>5jh!v9H^7#8z` zSR#b~Np2tWbNCJai`)U`bQmT4Z*tqrPhl1gzeMh^%+JtM!WDj^Ix6$mzVN8*Ny^+a z0UiT;k~7;8&BPviW>^e7ZtTg(tey{#J9{Q&Ze0P7MUBeCh?;pfsvz8|CcrZ{^L|3w zsFdNd%w5Ca@nKJ8W=1hQe(FFNtvWM*Ej%666)570%zi!L@mGs5w5`m%9)=7LPzOL; zP3E2qcsi-+@Z6j^krZ@S?NG2Tlm1d)crTSIb#vx&^7LlUw#?P!>BF9fGV93`#h!-D z+sPB7S`cSn=B%#p#B$yaWIoUZo_KY99<D?b-$k&0Pcv1;ScAC{=HWWdve4?oo9Z>& z-b+y;I;r$vBfT9c`g`_{_6YsZK%s{ylzx;f%XbvxVZwefoJJ6xR{kL?X{;X*I@aV? zQVsGu&w%_5E28%dt%M0)cHllh|1?m{NP_rBCKQ7JZ{lXZ*a@tG%o<ND&JH)C>~W-f z7(?{BqJT)tBqjT2Bpy-B7`?;T47-mCaGdi*FE)zoOui2$jrfd1vnLOLJC@D+1~F)X zYb9e_$qPf!+m+cbJpxu3v*=w&VF(v$_UWl0b>qsp2KKko4-~Yex?nB&XbTbJSj#{n zusPY~oFJ*qewPY-inBPKs7}Tli<L~oS%&D{ONNx}QyBXq#;_IWRZO9q)k-tXn*qW? zCeTZoq7Eb$(hZo=NNs@L+_aKI*eW}NGLps7&Jx6xLeZ?`Me(|leSV@k*v>3J^jud~ z_BWKfe8%Z@N0;0QRoR7<!`)1xcSIdIlz7k};L{nWcO?bRxyaseKcI&hs&|2|PXg47 zjZTA#`11&CPFca!H*%sdN=4*Rg}g~5t{Ez&lCu#0h<Vfu>8(^prj(pdF;PU+5JE4i zIwN6|fMk;rdUw@X+mod2IjWcV=5eyU;Exz;Bq&FZq*tJo!eH(55K}6Pm83{BIn5hK zqDzToq1lf96Un{WWX7<mM0!%*EaoS?;ci3jHs(Jt6GUD^ZXff84RCvryPbL89dPrA z5n!H<aU#-(!aJF7UI4c*xozf8cf#F{E)~Met9{{aPfayS@t%R4<lK!hJmNFXFeV<h zhLTg_hrj|d1kFYcLvRmMa^edC7n63o7Dt$o)F?TJsJ~35*z{trYwYZ)WXo)>*)@c7 z^|Fg|A*+{aG3OObND(hl@UCVFDcSel0c4R%my(S-L@pScQqF#y2+LHuT5W1h$jQg` zNW@3PGQ%iN`Q!N62Poz)l?+CwC>bY0CB|aF%?%=Z8n*T#9#?6ZK(8aa(sClv&mwN3 zywhvSPN}ewvhSs~X5&$(hH&b;O7>@45NhDi`*fvb3Ss%|y<361tCaUcSJHY6m;Di* zjDK|{{3I@1BD@)=H={+axL1i>jeiFCDDIH-$}|@WWA!i92(IMdXh(3`Juq&>cKW3( z(p%NS3Zzg;%fXIm#4GemD7|bgQ1U5huTe^m(l7bxg=puvZzcdeM!$s8tJ%(Rhpz|v z2mKOCw-y|6rJ+71>#tC0qkvxI7PzS2iPZj{RcQ;Fx1mXgwORcle@gZji$FV|_6Chk zhXyeLV@+6t%E+?NYr$C-daZjZ|4zFD%hTx`Je7aPs)qZ6i4zCTSk;0H0a~RY_n7kC zs&SXVo33!PENg&gS?FzFZ(e-*nAa`=$H#3}7*=*|%Wy%TNUz>@2~PSEB&0`gnNGFP zJGs!#zaoU*JoSwjjlK77w9xVW4GMa7FCgbKl)hIeZ9Vv2*ALDfv@G&Hd?TD;)V_Ut zV!NkTIITZ@pL+t%2<imB25e9Fill7$dbWXcAcsZ*>NSW%%V)s3hC?@^1NEwBXD{TT zcfebe+6pAxyW=<HJc87E2mX_sFCdBDLB3dK`CdRK`viPUp~c8qpN{9r8Hw!l33Mld z33=!f)QOyrx5o$;!DVxQ2+l|@kcSP<UR;XcQaJl?9vX<7z=d}sZX%c1Lfj-SW*6f2 z<5KLv8Zc@Y>-_}Ti5kutywRAVMzC`zvL0n;=XT<bW4$McJApNL5qBaxhY&ZDopapb z%;RXY$vKNduYo0_N_$X&=nor2mBqk0*5K1~K7`4q|GikB9|LDbbS%9CYmUa^H#(8V zOT~OF5$+^%Tg(H|mZArd+sFJ7h|$By9bkS2)fJseZkxFm#T`!WF!LJ}cLcek%zY`Y zo!m+0l~5d=M($*DP7&NA$!$0P(E#@-ns77Be~~+#+~drzqVl50kbAtj6Q!F$?g{2{ zD2nC_lZj@}c(^B0c&2$zH@K&eJIfqX0QXdKXPaLkJ-OtbWDX!bdE}mKE+IYn<jygh zNlyW}r<flhJw@c6YVJ*Xipf1q$$57=Jc}vQpFj<FRPjhaZpI2AOTR^EmW5s`_8o~X z5@Vybl4bcD!84{>SRpUGvn;EVsb|qm$SnE0-$o%JSjmsG#P*K}z_33J^{^j#i5<W* zLtc47u@XCw+$J<!Fk%OVgEP)2cIb=&*zDH%!>A=Ff}cumi{hIHM(ps(f<OAp4dQN@ z&_9L-D#;&9Zt%YXBQ~QJ{8-Oj_~~wZ1@0`%>-e2Xd7$@_c{@n#31t^mQUo5ve<g^1 z!2c&izW+}#05c6FC@#IlEC@M=I{_)6iI(1J7Us+`bw=P^V$vJVGSGtpucPA7`_3XT z+pr&j(MGy<qSv1t84{~?ns%(uQch;kZNk`bMzSisAuVc;l2EdzVnq?VkZ*X=ThmhY z9Mp5{1S6T1UZS>A%KW2bKffN(CL_hB7ppmfoEbiY!q^?WV566<#T2Mt6DZjudI8_U zQRyvgSG?eLKj8h1^lCQ$jSkmx%>I>3S!AG>w#8I2`OI>Jyu!13!FS|tROuydD~&!% zPInBzu~lT?+bEE;LN3$|wd9;?!W*b?^scu97s_+)!c|f1Q#78ue+4-E^}7LI!^NSO z!=>qlg(CERHiG92gi=Cch7;?6yXt}8BaEQqJgsNXCaY%~=~iwEK|F_Y`^;H|u{ySl z+*yQBNtB#N_aN{n1y*T+RxT)4ZB9HUi`X}5hQ0kta3mG}dRoQpX$C7f_mSRZG{GNj zj*Rn(3o1e;zelk7<6H2!YA4zUP|UBR6~%R?4G?snVld*mP}DhzL$J=>;<jiI#?0_- zw9jBJK}o{5lT$IT!ulb62kkgm%qO5O`~k|j531)9VrN<C+MNeG+Bx7|7z(`rj6>=5 zc@Ax>_?98j_%W2Rf{Cb%_+Jgnfm-PYQD_e)XLudL8z}{P#a=+!bEYEjcka3kj?k~3 zM(7_LN-y9GZqCTH2z`ST(Che8!L3-a$A8K#klxOhq21;p^aLwtGgF3I$%V{NwzGFr zv^ef}^cuftCZt-XMQ<#{H&OQK^?uPbxz@A2Fq*}$Hc)G#SN>gl3YR!%Fp<uYd)@zO z?_I#;xXLr(s_v20wrq`U`Oa;?Soji+rbi=bEM!@-)V4;FEuoQR*%mJKbob1()t6Cs z&x|B&$=K$W0I>+0pJWHye*%Ohb};<O{(ym8mnUQ|?B?GjY`h^GAcRYvU2q^FgqZ(* zzjMB->Y5&nx>RDH-Dk&cRn@6;PMynlzVqErTXEaG-@F8`pEbSaduB9?oK0}<o!N-@ z|4rWiTmL=p(ER^|ORx0dvri${CsJHL3@~8pev&==iVO(j4VcvX_CA5suS@E^zrh?^ zrSGq24lWU=G>W}r-Lf>p5m@;C%fm={k}YCz0-IRjguRc63{?;sn9{{Ly!qEDhAuE4 zExjLWZQbi!Mlmp5lrP=8{gX&uC2e73gW#1xjIvHWCxuK;b71a&cn-JEu`EL$nC9O5 z>g7m0B|{`33WB*ilws(ALm9>vIFzAn1XAQ*ZgdASyU<&KUrONxetVI68&VHsXq9@1 z(rEnqBl&ktn)gh9Q1TqIIq7_VAj22~y@U%C1>(7M@FD0GRtX6-_-V+}2TtJ|2QqKN zzrCai@BhZHBE!>cEFE}_T!a3-&i!|x{Duu=mgv)K-p~QqxqlDe4Dp_BzIGnI$%_6Z zi&7V75_?H2_7Wamox1Qw6zzH7-H-*OF1{C}#C7*!g{OMc=no~%?yHb?1AZ6qrNOwF zhws75t9pJ3-)nngCPs$%{%eq1ObyYmf5fK`Wmw&z427^5X!Gv~@0ai7zjT5)l%bj4 zfeaNQhcZ-O9kBnJblUVE%KR<}p$9WG^*@v`DZD?Bp<(!e4E-ApWsZPxdeEkr@6rSK zP=?;Sm^kElP}+0A-VfvLfeg*74`gUXejq~`JNTJ#j1&RjK<1-&Gl9tmGL*f8w~_Sc zB%LV-G8D%j%Isz#!r_6;C*`F{Hr3D)?toaF9?I~3vI4B@zV)xM21p`oLJj=G9xH$D z+$T_5nHFHF(~}Q*-V`!3W9sx_=g6TJ%D&?RzXejvmh1J)eU0Tz&PjVcj5E?PVbOEB z+_@C6{YLz%553mhq)$J3>Y*CofRmX%{o|9hMyctfF5y`AoPOu2r8PWV%1KV2e)5#l zOW>#wOm=KH4cO;u`yWKTzu8{*M^DumUm$grsr^Hz>I^BMkI%@L?Yp^C58+E!@k>4U z($a^d9api!G}__x62_(&mnXG`wH@ASzI)RD{ubc)qo2plml_}(rcb|kvWA{z&A0!n z?b#rEmOlO6lMR-y72x5;rJg?h{Hf-%_ZYY3^yzP&Y<}os<GYnU{ohVDpLtjxFbGbI zCcM9#GYxo~xj63JN6>&X*zHdL=|%X?;7Vpoo!&D2UqRNU*RCYCNT2@HshMk@#m%~v zrZqd3I=$2~&OVRkrap}#zmMNBP8)BW-ao-`9RGFPZoS!<uCN)e@Z0hoy!k$UCs-5! z<;>D8Je4ZLpA0|0qGR{J0}eT8f^(eNZ$cY3-C=666O4`xqXg}XPp~*EdoXhl5d9V! zDnDv-ukb&80+~eV$r%G6w_tzEG!~RutkB`}y|!G%FZUGkd<H*(O?DCm9`?LrfQK~G zxe$8)3UyZKnI1g@&Yk-T@?7vxTlpQP{O`C-$C%GN54_*=doB$>Qm5~Adg*0Xp>KKg z2sw9dHHvI(ukN5zp%Z!ZcsY0OKIEg;E!6abzz@VEt^XJQL=T{I=RSqp^YwQEBGB;h zZR+$v0g<I|N`Fos_d31&hWzsgwX)G;?A*D(!u$V@pR|KFGUn9IK0-}!^qf0)?y@5g zwcsZOcq0X<06j?$t)4xpAtc_3pFoV<_z=_kG-2@dc=_>@=>HBglK~9YSq#4utb-NL z(w!>xc04`FR|IC>IK7`^Ma=pHQ2S%^D*6=O{4RbcSX3&a7gOp>c={@SenlZ*X7-=| z6l_jyWsqRVpF6h%5Vr!q6D-ck9{CIOG<t*|<{x=B;wMAHW-@P!CiXwJb>8IH`EKO% zjn;jIe|_r(AgbTb?Eq!#SD|nEbhykSm|~}wHYE>c8eC7b&|fuTY7N%YA0emI$((jQ zF^%n!(uXqdW@(!0)4qp)LFo(-qLd~!F{O7iO-j>RzjYzn6+MB_ovTQ>us7ruq!>#G ztg1Y{CYcBI;BktNrlW^X;kJBKUV)$JrPrsRvdSM1LPKsF_$?o8e+W5W!cROd`Cz`` zFD2r}N8JlP;Qj&Lm6?;c+L`&{ek}K2c4@zoI=y%1-(X@cm~-i%i(#Gl*u!}Ipncq7 z8$b`-@m*$wzF;oEZdcYo(Bc>R;zv&z#PJ(T_#%D!nN#JD_pxGU=I1|(W%2wH?jk@a z27}Df0weVxvQFbC;K;@IR@d{&&eHFsnCkRW@&A~+7x&)*=8vA?=*~TbHy_9E1S`U@ zo|us9VdoKA6GYE=bm#s9UcZQ6+uEId4S+fIEhPUPe*U6$jx*<XJ`TAPn#w;ABl3s- z*MS4@JHb)}i&?syrs(*+1wW}nZi0nRN7dsj^PjPxDFx<Vu<$4G<|uwA#CaSwR_HJo zJ$2HZdlGp*jbC_)3FXuC8}u9m!pBq1>G=&q6&-Y1bT)~eR_V_D2zB_&&#bx=ZL7{c zfh?j|YV>$ZckY@gEFJu$Aw+T*27DS@Pl?I0^UzPVLc^hl?lS#tnhPKZ(Sn>`!mr(O zh^Zl1W`@-19n!z$v!;1l9(R||mY>2KLOEcBCPrql&~N=K_Dg^3f9dy-^(XjALwUn; zfK?3AdzX9wFv+!n=O&*GW%1EdvQ&D0VToNTPA?-hROsayJ-E}IyY47J1HZ_Wp#EPo zlK^mJNRXHBHf>tvH|@<R^^lfi(+El}`u{|a|8(d60{PD1?K4fp3Fja)NC&5hIWM}& zKJJ~~e;kiD+s7T#yZQJtF6)#PNi^A_GxxDQ(KcQWqR*cs3=^=}t5QrvTk!}i_A13< z260vB9sHE72UW_SJ2!$N2k?_o;*CHEorq`uh=`$#q(||SwL?;ds37n3WL%~?y)Po? z@dt3b{1NyX&uivK@#fR`onSp^+KGl-4?8WoN&V2~-{&{y$9U~K|4hH)ddP1Mq?kw= z;;B!|qYH2ao-{j#Y#XzWbD3X`^jG8OFLUSkQat|p&jID^HD3r8_Ex;viQfs9;{49i zE--ZvPe<^RItb^%M*Nt|{J(lN5U;Imx!>%c$D0q}cY@^wT4>67)aL8=^ZgZGo5|`) z@!p@To)ir`G4^;{W0=7M@`z29n@;P)*cG3)wSm=>KX>j8t$E0z*oG|Z(_v@!gB+lB z$iE9ee}JBlxxDaUCOW-u;Z(BD+wrw8+ph(yf~M1SJUhW^IF*~_dKg>&E3sp}g??)< z+fpn1HhvD73<-@r0~muOG}Aapz4S|K(UI+<H<<#{ez{9=E9KZBl*>Cyo@W~108e9h zx>BC@9_2Q+<kP0#hfSSQafJbWqUYVZa~n~Nj&45QVM`8WXnOn>dd+>vHsxl&DepyY zX$plO(v*u|WEu)eQ!ak-7vu>aXT|bQYYg-EC0kWMUHviMoB98?%X?H|Cj8s3nQ+u0 z6Hdpx=-IpO+~qTv@R$D|Sny#`d^bGQfV~;cdP1FHYoWK^R=cLMem5Rv;f4M345qru zC4-M<8BC>*hYhB>TJcz!mHBJ1LR-^@{orf-4?c%He~6!trew&?=3&GF%OBQhdxU`v z-e;=_pyzK;{QLNYuoG4)BNn7mvylAaC%{ai)&O(QDJD9-3|VlTMc;d=<Io<7e*rLW zL8dq1cY@WRyC;^*m3Rq*7d@reotwk!2wu87#Y7I3;HA4$|F@|^>8mh)T29>Zn|S|u z{CwO38tNl>ej{E+&p~$QzKS>B!S4i%;VVvsM#C@Jo?K@-gdO|BV^G}UH-B)eG#my> zDbrS%1o~U(T6x8&DH;s&VU!m5Cch4dZot8kY5Zs}jjUUj;mvinT!2D95H44L9(6A} zWabldMDy#^N08&U@bi0oA)lOH8eTu<vi!=&uu0pRd;LCr1#kWbekWJ~XXoQ`#q7{D zK6=KpJ9q7IT~@17yqA_UfJ%j?*wHhf-MP)klgBSIW;J;CnXx)trY9fAY?jXRsX8*h z9Y5&^Z!AIlmuY&*W6c7QJ?65?fBjB45ZVr1>v!nmc=J2>onS@m&@s89L-bMo1Diis ztE*0QTB|}2UUbB)(1XH->C@i2kP;O${yUD&JOHG6%m@eS&MX6;q=r!GPW+@3Bn|C~ zxu1znFQbSY=ZBwp4zYG@lSce5H1Ote{7$eMcHvgJf{3D}`j-7B<K=$-U%~5-<0oUx z8<`Z^&9~NJyV!3F;9K(N&e4T-K7KNN-fsH5!}QrcZ83e$vCkwPkG>fs$VGRWA)wHL zKJqQP_|j&Ke>a#5R!xx~Q%nj3ddz`;FB8#9JRWzJZtE$_<6)<lEt7v9VK9T}5#R3I zd+`33@sq9+I@r}m7&ak#{I@&zY2^EY=H-nH3quAR$~?wxl+MKu*!Bi%wCCaWHHvL? zH`AmvU5i`vHjbVq?#>-F<w9P@n~-9>jIq?G;EZg?>v4D4&N8zTtvkJRK5qRL>inc_ z%Ps!cQGys5yY)Rx#CkDfx1s05wxZD3G1Nr#ICFRIi^%w=_{rGmc)ZQM=X&rAkZ|!Y zfWcl&aQ)yD_|kfcLQ|(J^)I|Nc$#$H?v6bG3ot8KzQUBpbic!$`BfvVey4lE7Vy*Q zCk~jG?{wG6bM|PTB)rSby$XaZKJUEC{UC1NhW@)h>wa%5M8X&t39I{a?vL@f`4uMI z?z`Npc0hgp9_%mgcJIUO^B02$bKmX$OWeN?i(~uBce#Io`y=3_x4g@}03G^IX!fa} zb+_R5=0mLY<h$Knc*xv{I`QH$-2Ww}m7kNpQ}1!#gEU4gMTlSiopRhu-RoDZT%KO> ziWT=<b*X#FRTzp}+;nE+@;5GbS7K4%VTC^Qr0}qOxjrsg+4i{fmCne@;pIT#7dxhm zdCc^?w_RfrYAZHfQ$(#7EJ4<xYoIIP4G8}${St$y0FeNKuUs6|24*#Qxb2$3<(p7N z?<%R{l8f!vFAeH~J|X&T_Gx7}abzW%#AHP9x9wa~TM;B*5l+^;SGFgz_*LN~7H8ts z;Y7CAeCnELa>2g1HvD2_Wl-W3@`BSMjSF79at(%#WB4j_^J)yqt2a8FqpOknnv8$j zC$~$O`da@p%Q+?b_1A@ygHK!+P7XKf_48k7RoBmd#fe{)LTfo|ZwOB$6K+8BGwjEW z19J09z`;!`k=sB5VEh&fBajw_D>nnZT9O28&E#?P`}-Zts6S}@%o@L_on+WT8Mr0j zW&O7p7c&5`7V^P-2`gP|;cE#SJJkN!V9eH`wbB~sA$w$*jI7jkv*8Bxg#8<qn<Y4B zNN$!w#40yf`)}k@GhN%{uev3JvL<h}V}};pb`3kV*>5&FrOm!AXeYb2C0vMk*nq7_ zl;L4bnt1!XoM_>;cRc2zMI3<bYh=OY%tvc0hR_Di?HztA1gO9w1r2Ap9YMXr%h{xn zZ~<L0J2Cx$XSQzFkezY9d*y{NHqZo4vFZ9<n#4TN2g-~K!ZKh0gSyu{%a?BkhJzJb zFK$7!ue9i;CjHsxx+8)BMqi7LtwDzUwnzpjIoxQ7IamWH{$9WBm<2OW2d@Ugzt3-g zq(eXLXGA%Z@c{r-CO~k9F0pmK`Hko=#NW5uXV0%oibBgr<|A+C3~5BRV^`SL7r0dw z<!g3I&DTnP1D2SC@gU(HF6NGNGoeV+aVGuOn8uNnm%5iN+j8~)b-QFM6J4j!&xe*+ z@HUS}!e!b@RQlaJZ5_pxzi4WyqA+S6x`s8?FoCjAOigvZ<3cfyQ$fYr6kEyBVB%R# zW4U_|_O2#Vwdz*zZChyC){ePhp&46;eVk?fzU2l*AJayHqV0FHD{CuEzx-aDSmI=* zmbV0-vBUH*%Gx>LXC4VM6j$0TCz-~6>i15)6AKIpSZj~Ede5nOs~glt4xzm<wz|i) z2q5AKEr2lu?STSmtWnc?I}UGm`!P<TL})!-Gjz9I!}SbTC_LXO{d<?()dXYxtlk4f z{hZzdZ@pXZ(fs%5{W1XL^~jiVPW6BQa{mdtw~Id{<L9oKZZ_7GYlX^mv9zXe^UZ74 zIcp~C)zX?uX*OS*Sd*_z)Enj2WOX1ryk@pkI)aEp^UJImE4P}R(o4r$?a9Z6*L&-S zR#(ck>0_%WYSZSM3zjdI#-=As4VCiPnu$VT&Ab}cY5N!X65F_@b$qH6Y3aNQ=XC}P zq%_On8XWW{O0`l0k@xq)fV9?{EH%r`{sQFcDPVzovt00+twy;v(Ld>=u@YJpZ>Cge z)f?uyTAwKeZ^|v!r0<xwP_Lo*bfIN3<tvqX!D}`0Xt_zTm9+{5Rxj^^8qi2DoP_yi zrPH-?t=uZ-E9DcVV(@j&ELv>aQ?BE~rF@mWG(8xfwV4aEg~@z_F908C;dq(71B{i9 z6-raBa=qqFwQL7Dytcto00rCHUud?9bd6+X=v%&0l3S!=diAzk=Uvd~hF2*=Xvvlx zZ?;NRuheMNr9o)57xV!Q<@Y5c`mMt&IXszo(|eRc=a@~v3yD}fQ;kxwG+wTiie7!n zj&^OjT54cQ{TaZBM&?AuxQLRd1xszy*mSwlT3xO|hyuwwy6SN*v4?qHb*$L};AleR z(ev&Y*_|_aF&5=IZZE)o?kCDDAQ4-zff27&HQBXm$Zm!g-*44Sd7CgDO)(XjDKPhd zqbmA3TW@gQF}-F|%uDZ1!ls#d`x!P6Z82lMT3d&gCdIrZ{7vP{7COLlq}0eL{Z`lg zOlm1`5fascDE)ROrjgi_Lb4hQf#k_-`s){7a8f<)(o8=t>C}yv@v`)@{P$J-=X3n$ zwV9(oNnLkk>LRT|ZGzHQx|u)x7P7cYA6xo(X6+NWO)X7rxoqiYSp{ylv%=KU&!vwa z%)CESPQ6mAP_v$Nzx$bQJZ&5CtW=fxGh8xDQ$tb~&LwC<<|X{QEOo<WOEWLr^XHk3 zFJ~V5`kzYf@tze+)0aQllS)@oH@cg4X846P`l)t1=})Y3Gduq#vj+b?mwF9f_uzHk z9Rwz@fj@TL&!>7dS&d@SA4$8P{aWU<d9wrs9@PS0cihKijHMp6Z%IG7%>905cjlSQ z_M0+;X1MtswO>j9cG}Hc_RU?XH(b6eb*+9*%~8_7(&K*SuT!fvT}@BYzbWZirY}Wp zYG9K7(o#2bMe1fvR}+!+PnNh(WL~=~mC`qA3zGhaC1~~q`T@1#NdE^1z~OgaZ8FmT z<hU;c$!cAZe#&(}`_@~Vsq0n-FV&<X{at@xmZ7O?J(2ze*Uj99!<_^IIg)DnkPb$Y z$!gP({<nTT86>O8Li))bH*;(1diLM~q^pHN`WG><S7x5eOuYSTsnwUi<7;32hxA1U zzm|FbqnjJ4>#lh2h0N(R#3IwFn=enjZe?a7ef+WXr7xwH`6IE*0>X34F+tx*4Xz}p zq*nEQ-aspdU6uIhZ!d9Q5C~(cs_N6fzBCLGs(DZU3CD2FO4IQRQ9w25W|{hft_t(? za~!GZ%!DbyK~x=h`X3$l?=u4dSgCHCWB7eE`032k=H+sfQq6Vx?;SVuxGWPaoo7>T z&_1ieIsG2=dFMCK$j_!WtwhGu(o7#NY5BK@D{R@)T}!`imOjB*HOc9Zxb6?6<`#=( zcH-Y9OYbvq$Be2tPQQn6_iBFmA|$JhIQ`L-n|WvEi<$e(OmL=EkDH$BasMuLr8ZX8 zvgscp%vb95nyl*7^gB|To0X{6H2o(%?n~dqioc2lIQpvQ<XBpe=U}P6lGF8=8AH~i z>dExu0(P=uIU}lQOn(h~9eVzK4#Ly?C-cS`Q=A`D4Ivkj?F(UCRe%xDR}EkK<F5Ns z`hu@xLhr-KNYgo(s;Eo95AbJ3=3*qPHZJ|=uKU}WH4}E(v-zrBOMfek?@Q|mvZ^&p zzyAUs-*8$~A(s9{Ov_B_8jcwUNA*_h#!JDHS6x*4`~Fg8GgXt6e%bFd+oB4i^uOo4 z3fQx5)#?xh*@0)WDsj?(3*f!gWarSSY6d&T+iXWUAJ>iA<@=(Ku~>_$P1667lP#!+ zO;PPg`oldK$Q9a6Rf43yif?YtOx*u>0RmNhMfxktv<OE`)e`A%J8t^o%%;6qwt{py z5UL<Z{}&F#dW!<sE>#5>WGOo;Yg2)L`uEX*y8un;w-LB96Z|)|>e9@><P(`Sr~bh# z7S5zf?bE-Tala2<3=_s=mA|K7S{B&|RN9{Y_A=cFIIJp74`E#ns|w50Uqpk58Qi6* z>w!Xi<foGF^lxR{%;l*Yv;iu_PJcr`Q>oV``s5!HsXi@j3BXODh&FEYQ_Z926^<Rt zW;bpOQ~#StG5<`T<matc!28WMJ*Y=g`!@4GXR6)=tv*xonq}BpP1krS75kXQ@$SES zw6(#0FgqCj;7DP#mCc4eHB!ip=J8K%s5zUT%IzB+@*Gl}_1Qu*UPaj<?=G)VnyTar zB`-gHELW{o3ywGHkqEC(m1@;`vE)_DHB)_do#(YN2-&r5kGG(<e6iRljpt@S98cwo zS#udQm$l|HWG?GS^S0{K6=$N<GW<xa(b$0Y7V1;Sb9)PWcNMCRH&UCLZjD$*%xP7p z#>?PI=J6ihfqVtAxng}YyB1w-mReq=RGVl`=J3_~@7{&^S|9xk=4+@4E{!8{|7dIN zkk`(<dE_6x^0-&4o3ZrrBYR`OL~eAw2k01G=jC$y2fY2>=q=vpu(xl2)??d-N9&bo z@^#r;I&izUuM>dJm2Ee=1<33mxU8aA$v0bGeLTl$&=Kjjs^Mz>7#4~Q*kV$PHD}=6 z&3ttG^$mpv&dV#;WVSF1>kV^05^F;2Y-}GgwE;Z3ZBBNBjO%#0fq|{n{lVol#i(rn zKwB&~fsYJ05@Ne;(z*tll;b+P%frF~Pwq=1Ec7HXXxTwjUzjWvj&O<PssJg+&JD0f zoA^T(zn3?t+pH$L_7}tEn{QIYy)ee#e3QlPXUGB^Pi7nv6PQrJMy%eb<^x$p%r&)v zla+7f6%@OjsBHv0;BXN~J@95nq*(KDd;S>O2fQ>0VMhK4kbM*#smLWJR%&I}w#~^1 z@RY?+28xq_mUZYQVEXP`JP-0m*}XAbk$D)|y9?NHbOSzbzTEAIa-(5ibfXDyo>`ih zdLS<u&JE-B#%#V(jD<LId-i+#u)eeF;s4I*z=m3aWU^3_!5gA%2we#6%Y)tlkw}VI zEY>%5>%h9RRh6q#6@eiS%N+Q}IT<ESID#>-M|N!pp<$=kw+loJP)T&IHi^{K5L*i` zyl$y6UCIWjFNPhut$iL1D5PR?t+&)<Jk-C|5=p?R`9{+~FqQ(SQ4n7s`7oP{EuKP* zEhm>N+N}oQ96<!JsGQu??p%dftT|bqovM?h#{=cX<K<GN$OoRP3*2dGamaoP`Kf%N z+&T_0Lw?d1D0JRBTt3DI##<fh(QeF#w!PjU@*m~SKiR0ydL;Xu3YG?`>&m1M{fo?6 zyh)py0x8&rw%Mce^(poS_|g-~tNlZR;5gbP_TG4<o^L@LGg8cD*9*o4Pcl`nL35KG z5X>HGC#Y?K1Iw(982$--48Wu^n?K(4N=K*j6*J6adhip0J`Y8XIf)%;Hd0HZ*aGZI zh&?w%O=gR*vVW=_T<#*lWIwmwXGlW>5NjFdhIKuG?_BSJ9wR>!YYXTwKDrHT19I9A zj?JqUVXx_JFM&g>A17zJX*^$PmNwgOF2;!3brhF$8phBXiUMp*bPqP$hCi@L?;?Gh zS8aC2o6yRdIqa558O*o9jdpHyl6#R)TE6zy#fAW6Hs|yN)~JO`pU61pWw33KG{k!F zxFcA-d#uO;2qnDi&-;{t0U$=f+3gU;)CzgoUlLvJ!bBcz)*GlAjFG>ijT(GtHb0Sa z73<Su5O*w&uXn}X8)WGx!yM;FIe#ET1V1Lh3j~XIu?;KW1~7NUho+k?OG5}=>mbUB zg*n60pCRt4Bm2&M=*UCm_Haj;&m-*ja)w3NGkSZ1<Jv8cHM-4yJSxLnTLR$^5W35& zPIIqy#zp>TE=}R2v4ugDG;Ha#?u8UXBBSudP#C6&9CZUZHnwBmF37x$xHqz7I*<;r z=0BGm0B(Rmg%#R@i@e2-Ot-ili-mF!^6RxyJbpYkhUGSo6bHyySXqn<h%*EMxLX;e zKyS57I@vSUK*H_?e6GO;i|z8@PPc>78KpR=H8wqNN_9J^SU@6fgy4G}BBl}Ml)JD} z^(3&;EmPCYN$@F!BgA*>0004p5&^umZ8kr#h{W9XL8X0?BsnScE|z>ka4-5{3EOT5 zeS=jxEH1JsKtPboVaePL;2GI#AA#7$tF7@$enRFb47EuN-v-fQG@C-}S{txBXi*qb zoly-0IsokDCfSF5Jr8(JkOvf&*2>Mv$Yf*S=8LJ~ZOlek6Gt!%o|-#JAjmb=Sx{ZH zw{{RXF~W_ZbESz=W2Bq|r-r_x1Xj;+$f}CoENl#6I#-14m+bD{0tq=BvqeBJMP$CH z_Kw00YTVF<LcKZ#b3T4K0XY@EO|C>0VM$<wEW1~Nkd3-GA_lTKBRd5<U~`|@J_RwL zGd^1`mK@k|33iLo6Nn=)ZmoKm|HKwdWV!Oo&4;FIg_hleV(bL#^G)hL&jf72UJ;{y zsz-s7aycx8jsVS<7+|ssSSR^-xD}OK6rKoZSt@0^Hr*^0p(y17P6EELoSUUaYjF&V zK@p+&f+OZ|f8@TnH83aS604NPEu+)z${vC=yNDf1)f0VVb-*TxW5cSQoq!fAoxCzN zk48g=MN*rtRE!>Gsy-#l$|)GR5;Zi2u7s{b+8tvx4XH-PiY69kea}jJ6zYRjC7f>t z{w9oEETjyXTL&2>?F5|GWH~C5jBLgQu1pmiEk@oIX2y`WjTl;NxVshEbE}B6VP?r> z3e8HxZX#}PFh|P?!#Qq{U9kZjpybKdS|ek-#|Cma(<PfL5plRkn@^hc0%|%!OC&vB z|63?f#>%yP<G2Hxd>}R2mWvJq@k3*QLJUf_BccVZMFce^MnWD`^fl+`bY1aO5*tF; zw!wqF%^2V%5XnUt<e@f;8W1W#vh{ILbM;1k0#p_5AcZdk%6~k8$IT;Kky2YM3qB8+ zK~19h>)S0evI{P<bu+Z<$qB($2Y+ZqfoM&z!JM`D)>v>ss)wy_tm)9!3Z4UqR!Js& zSS8dkdGQ%o=}`0qYIWM0f+aChL&9dxEFc6vyS=qrO#0JMewr;S#;$E`R)mF!waBw; zo0ISWI^wnJAT?Ut!oa>a8dOr;1xI~REM^CXIhAAiBAkt6D+no~I`Mh&*u1HV$W7qT zVnk)*kd$FlZehBC*@_0*(IV12l%RocnXDV|3fgl9POcenatknf!UEf!Gb&gU38xxJ z$XIvaE8~#%mU6I0LGf_)*@`fYkiqe0T6u`lf%l+~!HjNg7->T?^tsqxS_7)HBGi>m zuln3a_kvL)Zin5dnVLoHIYF%LO;FYkU5(ThfMGU5AI1U<YhM>e$Fb^}*$aLf;}U9K zVlv=C+73-M>Qng%x{F~i;{NJcepo5uZrLcK>sv@Bvk3?wCVlG@HB|x|EOe?cH0It% zbcdavTBuRd1jH`KMOV8Ju29QsFlsa?Hh`DJF4r}GyKi(W=9l)))Gml*D46QF^7H@~ zgk{^5vfn-GWjkQ~{T{4yA<)Ee7qPaY^)PQC^DOg1bz`Ak5wQ-bN}sGbXLbMD4NVLa zcpCxLS}PAP%7y`2pYH*I7f4frq3qP_ShhZ$$F@3R41l<Rl7pso<BfVvHg;dAi~&uA zMKcYKB`aD7`C#ifuqNiYIVFn+<WCZ-M<p;=#s&#-D8pj(4xqa?9>D@~RP2r8QQtn% zmqf2c7<y7I9N8|4pv21o1_XOVUNlXyQ4~FNgz0$0QLP#?`$ZN^?8;{#==F|HmmyFt z9RneHvQ2{G7){$uy<7y7NjXKs$z~zCS4U>R0jz-`$seg=af3k_<p0SnG`nZTS`GmV zh#B(T^3SM|na7v-DgyCVF#SqWM@F;l0u)8q<t?*poI`+36192>gr~Qjl>rWg3(!HA z0NuyECJZ8F155^)7>W1>4|@_s>vf|j6NJ(|g$k*lrSWOUCcZUd{4bkj5;&l1x}j<a z2g(T(oI)(RKm$w=0r~;h6osntmBrxWXs=o<Pas@Gc0l%lmJt=i)Lt0PFh17I!?Ij3 zT@BJEnXN@oQXHx}0I)E9G$lK&jA%sewBAm-*g3$sseG(dbZD3<Ev<qYX@Q$<LeA7A zFw3ybBA7`@#%)1T7}mm#R-X{W#qzkdrZ>_*?t4jX^@cYW3rs*RW()ppRmj=m$e7Kd z652a4*jMR0`rDCKgl}Qk&U3)G^Ng)46Z1TnJ3w$k%<B)itfi2B=ZMJ10e~VstRIgl zQOi-JM)MkO=F{W;PR<!l4*iPiwv+9x2wg-NLy3W1R>2a8wScTjQ++-uFO2e9Y7)Ik zZesF$7@w^Yn`ROk=LT8-0`U1-v-Q*MG~~y&fbcczYdG$(?l0<uX%<-$=zCagAB`;G z43L~12-&La8y)cWLW@66982j~IDn4uHELlT;-RP<Kmo(Iiq?z#qxGNzN8F&L_4<mn z8fudqBu73QhX;>ToaMX?!kTZc5eK|-YmFur5=>BoMs7LU8XV{}LS~J^_0^7^4BH51 zAQ3hR%T_&Cw|T}IZL|e7#I(p#lUYQ7Y9l=}l*-KP6r{Q>npWUbw9ku)c4qbg?F@tT zvF>(#m@UCU)qLX!C~R<9VdnyD=}v*t6F^fGjQ}>4F2~!Dd{9I$Xred;#@kXL)`6rE z4s0MdMj;}AHHYN~8l{<1qX|Fc(1MLYyU{>Q;tz#97ehov64Ji5RlOHPg;<~kA31|$ zyAnvY7hS9Ijibefy8E$HxegK90)|)}U&UJV#O}00tWxJ#nh0yEH_;U1XZolejk}T1 z-qo64!Ej3`%Vd^sU`ibp(k6#$g*>82jRyRnAOOlx`3QD^5$`q)<QB_pXeVuta+ERC zuxr4OC_?bVTm_3>wr)`&85dk%(@NSgiH%eA4V1yC)Oindj{vC!^{8mnnLUCRvo7#m zr{$}PS{5%Q7JLb_Tg3bZX(mVq3cMK720$nw6wWq;M|Qo~{7A$EWAY;|^&)&66o@Mw zjky_}$-=u)Lj1ZSk$w>&N$RzHWfNDrm69aqAGB&!@>Onj{?}DqLpj^N!EW+B)i-XO zZ?+>sy8q+-42#u<Q8pXjXNjgWTP;<IQ04`6Sq!mQh%{`d#NRY^FC-$QaTpeLJ{0ms z%!R^ilC0EoGy~zrU@SrQfz76NC?wU8%^{YsbfMTG77ccbuzZ!^Vq5Pn-(nvWF^OW4 zUMyzpXB5-i7URfDM409?hNg#c<zr%?Xy|oyF)*^FI1LNbO6sO-Bp^_mHgS+OIvY@~ zQDt}`B#ZI=ZA00UqkD`ij_ET!PmAS-b~*IDB&hdo^GpEF<l$Xf$io|COM=oIzbb~j zK*dmTE1v}i5Cg#psoi{qUa?fD5S!d!4VG`T%cK+SFVwnmAy0TZ0%4y4FvdqXSFbx! zOk)W~SYEnL&_#FDz!$qqp<Ji_uG0`qvJKLda52=5Fh1vH%cSyAIa=SrED2)V?;^R4 zNfGFWrnZCG2_&-+%0z5P#G}v}=yZ$EG4N+)b!4%5=b5t717BbP*PkQhsac~<=$;1- z%l2Rq$&feDRUNO6S;v*o5OqR+F?n{?Ph+M{@Va<=P>c;ymP%m7Co7LUXZyZz28o98 zx<a_Jcun?QA5A2_qPfKNqqN3MX8l)9U22&U(ei9i@c`63&@Rh{4Q$Xg3>()DN`m2G ztAfJLs*PB368P@6$&lB3zRzQf<_2ELm@eSH;rT-7<fN$xb7jH+ZWV=ymHY+3W}IL` zv@I!3V54K>4NQj#Jw~Wn%qAqxxCR1^uu{-O3bKkDk&be|z)zgSjRr65RLR!DrOm`? zSp+pC*Gh4?Fkh~)1)||=Iu&XGoLdl6eH>~Z2#xTnP*uxdn&(=@)}mV(*bbHza~}+b zh=`0q3KilqCEc%-budW~k1JF?-YQq2{Kx*RwRPNuRWT5U>{SbN4K-=d(*mL<XpPil z-^2leeLY<a+GyhrTVk9!&E;UpgIy|Q+lIiQKv|+zgHr@S-w!+JST|q}mav@aOJEKU zFjML4i<DCZ*I0&fT7taBoG!J_n&$;}-l!ZosQ@jf)i^B<tkR`hj2vSVgiAN=GUI@m z%FM-BAQqFXZY~g0bJ5YF&=dEOm<_T-m9d(27^JLWA`>))e1sp3f4)Y2>>=1!;<K$f zECgWckS|xP<3NBP<G^^x2^N4YzOJLKsmj9PgctsZ7^@<JY>rE0*b|)rMyRt7ct^K) zPHPebvrnp^A&j2Th8&XMOmFd-4F*}H8@5EL2np;(LLUz<EC+{5sZWP;1V_SzbZtnO zW+1!7JEa2ZWaa?1p$EW}&~oyy7Oa@5u?DEsJ9qE7ed})cgiVimBTyP}W3gHWI#94< z<n<C!6B}7Y+emfT8^|s#VsZ~eM{m1`L0mvboPq2%E;1y$$--kF9j`m%h$aImZ!OQg zb#byOCa+=)jNoKcnh<wEa!JY|!Gtr=;3u-?EJYu7IO$AWW4OC87^jqPU#T_SsO_hP zg@KN4cN$-^MtQKf=d{5@5-7ok_pbC;-HMqJ9PNw?ztGNv(1-=yHK+VIQ{_?tDjjI< zee}iJl3DMA67``po}aD&TlrC*p-3yhgQ5W>KolSm+{rM^%LpV;tS8`oDIMw-K43Nj z`Dze5)6j2iFoG&0{?dpqv+!oPU^xC<PE7n~nzPUx*T6p0V~iA35HrI}$}o*UNXrk6 zU^La9s(Wf)<7klXF(jg0M2W2WfT@l{lf|F_VfiCAdr849bO{|Li&V4_B;Y0)S#q5q zAr2q}>n_aL$}W78Q*OYZTTq7WfqzPaM#2eF7=6G2?D?ilKSh?^7o9D-u43+Y;w&N9 z#tdB&04^5h65bOL8>#2WQK)kk5D~u*aUJ}8Ihl=r1mJCFUCpQ@Ls<!!k}86m0GL-3 zgCMcZL?frDiQLWc+&0vT#5%YwCQXUA8F!D7<6ymE$UVoWeDC5o$ktaQ#M&YaeM1X# zWlYHZ8^K`Pg6>RUN8%c0Jz;KYJRa0|Ed*hiCH9ocf_-%xcfwe<RLbE7N<bT|eh=AQ z8+v~+(4du(jRGm5C#|)1zyQEtsx68vgGa~N6q455Fm9N-#&A1hBy=MnL?lEwhc*h< zeJzfN+Mc`ux~?YTOX1v-z`8>;c!i{%!9K-}*vdmi;HH*!@;0va$cWdCp0xWFtTYv( z_?W{kRRp$}<$@aK8{35de9pi>R&&E3jm4)21j*veVmzW$oos?8b@XD4xvLrEA)bL4 zY(4IRZqHq-aS+LN;R7#*HJYsqRQHufjwXr=9-t`&YKdqZ$T{HShR{@S=J(I_GAf<< zEKhv2VXewR%XYTWgy1|vwIqhI0QBvw6IQN?lj?X-x#*^awOqns1du#H4Fa5D$dM$_ z1;C5;sZI;Qgve#qjBM8Eg1BTlQuwieFT9B^vR2~MzaURwWNEQ>ZunrBGtd0vJi>NF z9k>|~xF(LOwa21AkI;ME@l8~`^+SsBl9)e<kQO-}%KBayAc+Q!8LYG*U8FWR?m~|o zEd%Db+DSgbUdky!Ch{-_61F&|P2DnP1_v4!sTiBB4NC+#kTY;#ejwp7<FzFo1*)3f zsmgTIp=G2vuf>8%zX8gtKzS)XrlQJ?L*0tEzO*GV28Z-vtlpWaHi2_ONFpL;ltqR4 z<e7U>*^=-(#!N}W=p|=wZ2}nr29sF3zOvXvlv<3C?v}@5TMq=sRV7`$ZBC$;JrBn) zk?gKRd8f>5Ul9srM6!q1KSM46!a^|80UZN3#o0>i;YZeOcCmpIHwuR9fsfmS<rv}t z|FFhV1r>m!HT|<XL!CT7l!tHN2KPJ)a7XsV3M6wDCnab|{v_59Frm8Ho%F$wk&?>I zBB&V!nwxJH?CZx<2Z7a%k3hm;tvKm_T^|ea4ghZ~qP<|0Z#6K#7#kN~8XpSnPu@|y z+z~8}zSP7M;d7=Um?5%z#6k%h)L~xq)e^&OW?U5!iE;004CF@_1c*Z`#Qr3->4<xp zSpFFM8@g*n4Gnxh_s~H%Vl71-loc-}v4Gc!#2Ls=m+IM^ab)+Mvs*tVtf(2iZmCW? z7u{hCg5~)mJ`DNMJ#(%GJSKE9Sh~dn67GQ`zdtXlSGTXIGss+w^DlMwI;pE~4Q@pT z+kN}H3n(c{E+|sryfECSmW+UMo_!}ovN-t%$3!HwvVy2dLir}KK;Xs!DwnjhM6MMr zaKvgkLFwr{Lk`i$TjK;{{vJ~@D=aW@H1)E+vk$%V<E>0zT|>pJA96-23z13@tY63l zr;W(rKG+5V!FIwjay=I&A<*)TFyf7uxNX5!Qj8gZZsXOmPEIyP@g}wpSOd$>OV>fx zmkdV~CV-9Q1<WlB<aI6WRL6@dk)DYU0l67OC8b*3M@Yu^6R4u2bG|tXapOj@RP;mY zU{1T;O2VSAM4=7~i{d+rB;qjt)N+_OYPo$3B7o?r<vIdANzBJ!HJt(D7lLpPmMFCP zUcyCCL)7gq78Pa?BIK16ry;m&6U~KX4rntA)X7LNI*9Z;FkZ06TENPga)~&T5t8kQ zv`RX)@DRdtkv7CumlW%Zs*VvUUJ!a=QJ&XQVTnpsL`KRm+ae;R{tCntATltCLI`jx zE8#19CW-j=n{#`*UzsXz!f=bpDBwyJv&o<|e1K}-xbm?15@?E;jTr?nNyOhrXLBDy zN&)MgtpLNA#&th<u>Il=48V(l6Xj@+$r27~)3}3+xxmB}=GX)9?1A+nQZk1G#%#Dx zeb}JQW~nDZ?m_t_${3(z5$UU(8Y=+IT4Ta|soTvbgjDQobwAVd!7z;3J4@b-A_P7M zQCpG_k7W6QBnGeh^GN+;JCoTous6kD<}^LC5(aYQkm;Lfi)wHHt7qS7A-d`Vf46-i z5s%W@FvA1qAWltmMndQ*#3NZSB9T1+nwyFV!=UtmQ##7hJ{{CO6t!_k;njWyQoZ1) zbJJd!!q!@oI7JdCGRzMvCvv*3EQoPl@}k=q&s1ilFhgI2w&G4OA5YjU{&+SVfHPjG z)J;(2@c1P6F>$LSr4W~s^AEi277ZyqewK)XR6Fc%%2mkuN9&boM$vKBOxCNVHI>pV zJlEFbD-$GCC#wV5;We{xcOO{0roc!_tH-9xmEvlvcZ{_;bqE_I1R0iQQuP^%%QraX zzSMSb0cG<1S^#rr3gIx`F@ysQ*y#^N-zO6uHO4+2I@E=|ugzBVtcq?Sz=(cv)?^SI zi@l~$0J0*94leSU@o{KLjfWt-GJ^om4uv2vz^_bKVOXs30(erK*%*`9MdmY9=TAl; z5m2ms5|E6+Y3Se7aYKHeA7n<pWHI@l5F(KONm%^2AU_yH-ogRU2HXYlsP-02(p_}n z6i&Y#)H_;G#o-tOA|87)?HR?}Y-)<J;kV%=0y%HNfX{iGXv1SD2e6=LPr%Co)kLk_ z&i{Z|F-zy>#ToisF6`^KPJI0sn=d!B53>*i=wq<yiAH^T3hGmbUPd-hM+{u$ljee~ zLkC?h%%^VV35`{F Akw^%K^mZ3#`{UhXK-D?a~DY$SmEulivSxvHq1-9w_=hZn{ zlyp2a1`b3q7w~#xekY+Ny~bqI*&xpM#(F8(mCiF{`Vt>RwmvuN6W%Wxk`c~b!nOhv zCgLn<@JSqrk7{Oo^q5?WbU`n!>oNES`>;fS08)+~m%K^5-i)v`IT*#lgVBW5Dejj@ zaX`w1Z~<qZ(TITv)CyW$#6+AVx|5<K+>NPOQpRa7Fw2vb<WZEHF}|na^fBgPgF$X^ zzQdq7zEl=tX!S%`pIC@C*g4K}&aJ1DoX-?nAE3b}$W3%F5m(i(lumNf2?hgT%}saI zn=FZ@sryzc&tl>Xm>9dj8AwJ{&wK?evVVd*HhCHRVP#f^m2b_J%jFm&gpg>yl^JDz zHa@+fRl41zD24RH%=<<@ahbrgwDW-nAYvTnD^rtsxYC}*DOd6OMh%8lQkrewuxQC( zcJ;gyx`c6NB3xSNcsY{r*r5d5s92so3N7{pln5P+z-3vq`>_gy%_9JaVnXH|XoL-> zQXgMbh);8ZP#6{-rBR1~#VYi=g)v{w816ADndkc(M6T3bxZ6+3l$-O}WaDgArw|ap z5pxy!N45Tan2>pM7Un-?UJ;I@L1ty~*^0A{p(Wx3hwYPqD*V&2#M42hyW3F!K<t5# zm955>l?=QaVbt+vtE8fiB)IB`{&NAXg-~T`HFA@$qlNiiESU=h!XiH+1*_Gr_U~Y? z2D~9a<czmUv}+pm8s&+}z;f`++F=RZ9#sx^x7e-SB^R}7onjCl9fVa}6_~)t3Gy7s zU{i?$%eo7NZ1MI`8>PO0XGJG&CgBI^)}r_cve&jl)eLiE!66B_JSP&ySGLiwz@fa{ zQml~V9I4f3Yo65tC(=?ISIjJhBx+pXP*dObuUMZ3R~*w|3j(AC=p@cwXpwZ<A7TM! zKr4miJiB>@WgPm{r~H&Li?c4fJEkKz`G-U2bM&DjMqzLeM3Uu6J6Pggv03*fVUT0u z{{%z37J>3|$1LHS1i*-!NV#deHj_goe#EJG6Qvfj*dl_yca%xQR3D2i2$;l)Y75~; z*hp@+2|8ELlOM$c*zkF^#Qpml<r(lO2lAEa6660goteN~89j(>!r5#{y$7qqvh@(_ zkaIA6$QZMRG`#Tx4f(RW;4Ea0^&*p+Ag++}-jmuO#mqXS#BcM->z2^tS(j9E;HWUO zND>4;5RsNojzwgJW(}CqggvEL0T?V%H^(6iL5OY_I|+d1860*!Fa-%>Da&EvoAbGU zP(V2xU<P$Uav#jDZBD|W2<PI|VGLr<apYPI@pti}BtY;^`MX7ANo)*(#6=_^M30Ne z9C_~9{1YFH0A=yg!UzkJOrrI61HmbC=HT^np%xaSY%J$nfM%jbci3_@Uopp!8Nlfl zF~9)J7kLmkLec>^9uJm|;<a)0#T%G`(4YhH!}=I}6TDFq#vJ*H_NRCa@p=EMnA<|= zS)GC$cO1uvf<&PcKi01aHJ;!aN!ZF-L+8ZXe>Eg2(I6Du4G_|^UcNDbUnvir(1h{Q zl_zqVrExzRC8n+;y%%S5%jE)3C2HGL*=FW7!HpxRN`k`po(gf+kCkKqmhCy1NfKD7 z+*)9YwgG{x&DC-SK|jvf2SB=EP-}>6=`8e{A2u_*y;(VaxA*`JAS`tdPurnY8?&=v zy#b^X^?H$JXD5Sjy7r(Pd?rB>*ssch61oqETBub`{2ic>c7rct88HsgqG_0yU%W$S zVd^zcnYxJYr|~YMR&u<NFZh-mTmcD=jzAUTW+RsU;9ztpi~u^xc=j}r2!*tl!;%o1 zm<S{e6WneFBHI;@Lu^-|Sji5id`1E|kH9AAj%rJeX|tFsK@1sYqUB&qYL-QA&$*n6 zx)p@hawl;`JgYy<D#jwNqktIbQ1lB!(K|+VV{)Qmb{Wz0VOQV)1MqBb+1dRA)4h?< ziKdGTSe$Jw5L*H~eLEfrTR0Jp?e^3BbW9{|of*NS%V7Zqypy10A@vBt!&-3wrTE3l z-kDJ=i|lqsQ6Z-&8gQOF<5Ayv_dR{vZoWC2?OWHsu799!a3H%OJCGgdTU~8U*GjjF z;<H@9W4=+Cy!F`d`qk@)`c_Z$tp+~56?XVicJ(;S4GKqA!|1UkQ7Z5jEEJ5~f%?O& zPjUmKLcK-Fbn07ium`xzg*+{?*^oU7sceg-5-}$cu!eWJh8jiexk4GX&*kxQ(%+Gt zRznI~Z3rwOFmDY6O=JuT)3I*h2Ivihu%SAno@Pi$6dVdDo+sEX!7mz{5Aa3Y+|N0f zmz@ruusCPhPI-;)jR-&rgsecIhj(x`C^#>g<wA4ILrfxqt|V+iLe8$j?R%}+I={0B zf{ZC7mB7qnO&FW;Xph8%XzQc603w2ax7CrqM{hURU$fUw*{ewn{yl8-Z`x+k^m?~_ z*6W+?^Mm$!=XR5ShrRxC&OGb&HFucjK6`zmy>7DCM<dtw+GoA~$Uf_}aHpxSXs^#k zu0OQTdL7zf^6PcKeb#HqK9Ae$TkZ8Rd;OrjK4q`}J#ziAeb(!$5%WF04%uhD-fo}u z`WE~Au)UUcneyZI`ZK%DvtCE+^G<s`7`gtUeb(zI?DHq>^=~5Ai|;b^udvsLBG<pL z&tI|EKf2rG*Xuvq=a=pE^?S^Fy&kjAdVR`1>-CTAvtEB_pY^(Puc=S3CHp*XuSX-- zr|q*||I9vr*<N3cTrYZ)sb8;ewa<^)>xUxOFWG0k{-b@?>(+gyKD{>VvtCcz=l9v` zGm+~T?6Y3~+CG27UcYCrFWKuAqvm^hz0N-Cb+die>s|I)uM_rp(q2Cnx&DED*6R=K z^WWR+ZTrplx7h3c$kn~ayw~fE_W34z-5I$)V4w9`w$FO~q<z-wckJ`u+Uq~ttNCgd z|E3++8BWbFkakke{*LKsr`0jN$N50V^d-*Z(oXd+bq=oVl)lUv+Sn;Q<Lr22r}PV) zFLzA8(7EB(PWhKRU*6m){UYbP9n&v%`nGh+zrq>lnBMEO4s^<YiSua3^h=$Oc1*v_ zIe1^EdR98m6g#C~?tHV-H}6H-xx)Ej$Mh>5r`jq1RZga3`qj?W^-lS(ah$16>DM}a z9n)ViuZ>JdJFi?I{Z$L3zj}f6*DR3Uw?O)9=cT(y>2bdIljw_!kl;G=#|<NZ)w04l zyrsPad&=}@BI*4${kxHL(h{z7tut`64|lvbf5bU%hj~1Kbk;v$i5Q#RdAsDF4-X$k zdZ&K<j^w|@dBVb>e)mO5zt+h{+VgFs^SfWU9XI&1d$@Bg3Nrl-mPoq7yq11+`ffk+ zyUu0KTm+ssN&5V8W_6wF*&z*{zm6V|daiLY5jdQ*>6h5_jBV!=l0F~)-(&M%9jWJ+ zknT8_&s$#~v+2?G_&KR({yO^qkp4Q1n-W9clJbsod&;EiW>2``-^XmaZlbG9vXf4m z{JLrAyxeEgl{gr-`CqW<x~XaY*Y%isqV>PUrYn)9EBOVRuEe9JU$Vs1qeP6R??w70 z&NWVSJnyynmAF%M{280B#Eka$Wt*;>xCKY&0-%gO)E~u59`+%Qvl5kxS^hK9FGY(K zKchSH_cfbeiMAn|e#bIXj}p(?uYZN~%WR(T<x4id60a-l%k2QXPWi`>&UPx3p!xrc zq=#!Z_di&mo^2PHdXy;FdTs=KU55IV`8jFf?OEjS)SmC#dX&g{&NkuXg{FRGS}HdE z%Si83PkOn@uS~!#Hvb8muEd*;=kM8cCHk(j`QHFU%<+lB?R#x{bbiwpcW%#Kq_Z9+ z{;sw4|B6jlrl4ulufzZ{zcOWIn?8Z`PW}Ca%^$5l-D~QZw@z)kGKt%5{TpA;`sdRX zzh?6*lk&GV|B_2g{n2%rv+2=(ecGlg@&7toPw%Cs9wo9Bejc>xO6+HC{;$|{Wh$m^ z`YH?#$4!ZQ-J$1fdK7Pb&!#Ig_yt=}1@t28iQ>r@k=|+if3QG$`EpZ_GPiqe{hzn# zQTSYkjjU7s7XyKC9Sv+T72Is=8Cf9zp#{=UAf5eE=ISO}&x<x)nIJ3&`5VO6$ox_K z^Dk_=GPQ?n{$*EnZvS;iXFVz;=(G9XgbBLLnNKIb-{x1Qb(PKk4V$h^rozeYt4;k; zy!|B7^;@<IxqQgxS0;O{ec1z4&UQxkg$bLkLI(Zrf3)e!{I9e1tj7Ys6!ewSrI%Q| zcNfxGzY25q+4N7?bQS8nO&bdY#r!J#(D^!G(^Uww$>#qvo36}XpG|)QNM6>XO!N+$ z{)|mmCK1a@{=R3^l{r^<TLw7fej45HK8$``g8mL4?XxwQ%jE*MZAtR*Akx{MDE@iY zrmHYZ@$-*tx-!{7NAh<MNb^qXrH*vguS~Aa*PkMt?Tpd`U$yz8^uy}}KJCXsmpdgL zwOTs1WZ&J3bm`YNlb~($Y`O|<ED!H|*`}+|Na6gtzRvx+ZGrT|NauH>>*bR+U4?l% z?>(<I`Bg}w<5RWiD)ig!n7_~2bQMZ|%cg(RrmJv3;b#*NJKLi|5Z&)SXw#$f_(Pkn zLMO#Pd$19s3-kVtAf5HAPz2~y{{9H*I_BX*U$yz8a5W(N-3n*Q&ST0J+Jbb}AI01M z!lpO&nT(h|`TLPgSE0!*HhuJZQ%@AHe$1w;P*3Om$2MJsd756tO{ac6j&!zDg{?aN zKR|k)ZA19d^9GY&g-u!ea@wY=5L(yQNt>?1LfdWUPmtcJ{{MmWPVL-sgZZussqiR& zzhu)@=&Nw(-e~ei;o%_CJJk;rW~<qn9v|<Ap2*v|ZJ)P$WOP3qABrVdJi)*W4wA5) zMo^m?43Oo}mWfJz3|4PN1deRVnR>JpV^sHI|AzJJH+0Sf6UbT_mQ;=WafAqIHIBpF z5+}fV#p!C5XGw>ipvy1AA3u~8Mic6b8Hyp)UznnO=xA$q_Lk1ad*T(&4=UGLA#x7E z_L3gb<$`=d{6FyojTNl#jbY7nL7oT7h%V9bu--fNZM`e!<?h~2-w+uuy@yiO%kA(? zh8^4YaU256{_Xen!(gl*2WlKU=Hck6W*s4%5TwzY89<n~`|jR)*T^=M*nihHzw)+W zfNNWLT+odMx@4QU=Z-r@b2x%}>+QR9R!y9UI+|X3QBU%b5$FU>6o~Cpd-mJUC29Va z9Vq&t-r+-wNE7%T)!+$R<pc(A&|eM&p%Y_S<&Mahgbu;h=GqW`Tqq;E#|98n18{+} zdK&fPBk^MN=VtZ?$ABhirW8~qMqF8%xA-wnlGDR(3s)R7h*hA=4H|vU3Su<O7=*-Z z6arnKd?^TLlwjL}s_fjHYfEJjb4`WR$w_Ff1IsJ~g_K5yKG4bdDmhys16Z`P<AFM@ zB4RF1H%sCZ{8MrG3FhdWK{2R`)4kmQCa@F+ur=9$S@KxEXzVR!wrsg`_sH$r4j%N@ z_78DFe|io#>RNAH0dUefqg>_@^mWS?v}fz>BVM+DEt(XBEAV~%V$He+f7-*10A6Qe zM2cM%luE5o8riQ0;O&vPkm8>JszahY*irHZ`v?2inXRO2gBZbELtfi}_YY><Iv5jm zoMk))jwIsWS4KLVu+3-_*|mT?P&ajKFQt4HBLXu}#<Xl}v*|uPINEJ;X^3jJC<F@) z2Qy2~HuV;mWEsoUZJr;zGYL{9<j$;^4Ys!EqFFA+3K<8U!1@hVO&x|KNdl%lYF0om zwMWh3x)}B>c@T@{$jKol$>Z=g0&Fk9Cwbzl9l@CpQS<EX&+~R6^q-hz$G}F|Y-my0 z21y1P5IH4cL>Ppl4Q-)G?9pNPT<;M+C8l1KcuitmikWlVG3LH^UI#d9<NadB&XxY( z*^&NFVhEMi1r3u#by#_!h%tWX?zoYJENzlB8QBh^J3E7DLL<`d{Rmh{(na%sw#Nr3 z21e?L$!gkzb%n&iL8V@?p0JfKM*9pNz{zv`hHXk_A$9N3oS0c{N5KqNNt<9sC}4Ba zqD7-V{X5#KG&@m|Km&+Tu`nsglS&reEwLe@1^eM^lv@CACnrWwv<L`F(6K0tcNPwK zYCJO9x`-u$z{=62yAeySncI8EzR~)q*FGkO3Qw}_0qaddQ)sq?2?rzLNO)DYlY*gX zO%7JtKOs9Hk)jF7uy2${JyS4TID$hOj(FqwawS+V!c&LF@%$2{h(nqniVD%yJ`WyG z=D0Y^ZO;Xb$p9PK4SjWX&UpK*;$a&OhG|mkkTk?)K?2$EJS861kaYb%<chG)1l)() ziH)%Zf_q^U+JUn-I2pc7i2Fe1V!q@95S$xgXaMo?L>9jR=Prq22&9laUS;usCwRZN z<{`YFLiEhh)>KCch#9AahgPH^vN>U+9QO8dx5V6sx$szvgPSfz^4J^E1WH^8Q31-R zmEuuf0lg1&j+zaZmK!7Zc%1?y8F5c;^iFn*kdg=+YEjZCk5$4kY)48aj7vG>yshWM z#O-Iaq0&>46R{%{-X_u$3601JUyJCTBUR`(Fl&SSpSn7P=iw$mwHgO6hInuRW;F?} zP1&pfCSo)(M<61FsG5!dMw2<)O(dk`_J#6nltlP8PZ;du!8lzw6BdLNL$RPY)@+7m zGybk*cjHJP*Qj6uJ+73;3h+Ch7A-A6NRQb7v>|>(yQFn~^n;iy$KVA{sgbH8Li(_` z4>%4DIA^?Ok(!-N$elY0_dDpbBNL8UPGSWZ3PJUeNz@pQX_~Nti2NB371%$ebVj|A zBw-iC%=7o#>@6KkByL|<ICd<X<yjdC;!$7kBb!Wu+*crp5rGdIoivIH34If;+Mwu> z{Un#vbOz=eG@RL=M<7m_f`q>r3>fg#JvF!`7ePHYr>i9pX4|$wB?#*h&QcQV#c+QC zqN7ERsXak@Q#ZPV2Pz1uL{YcZn~b(fN8=%05@GYH5-1?8QY+!s>wcY(z;h^k-e{5% zh+vetB?W=249o~|1q!lU3%F~mjs5BAtPKr_SfH@_G7U0&Wp=oIixy?*{3(vbAmkW| z!feo6t>um%(F31251|u?g%-j=-IKPVBTm}*Jym|kWpEZ-MHrg|8QF#R<b+piAi`>= z8j0H4#?Nv3o5!oI{1~n{Mn$fZdWQ%TrN)%gUqf(}e%Mm1Mxa0Yga9o4=7hX*(dp;Y zWFE(@^%sxVP@lOXV4u7}9J?kD-U~l?c-JUZ@+@HQrYbF`U(6)?aoayp$78E>4F3w2 z?{Cz_tf{{=X)QG;i>O4OP<x@^*+^dK2R1vY%ouT+I`sab0t({8`6@!8^qX2itULX% zBCWzQ6ltZgX$IZH5rGi?*vE2hysr28u`!&`q)(M{4WBcGFnD@vi(7Nq*caN-yZEVn zv-)A{73ThJf6N>HgZZ?x3_mTu-`?o8FPs_oJ&|YH8HdZaY<a!He7fx~T7Em;{{2sW zQrGXR|F>TMUD_01Vr$8?)#f;N<C!+)T3-Fc_4-}-bMbE}e(bxJhntA}(L9`=(DLd} zuGbe~Zyo-Nj^BfL`IAul)$d%dm)io`e*KPKkD&a^q4MgVuGc5+$Ju_iQ`>KoofEj> zm}-6M$FA4Ck?(7H?f(<D{Oz_v^>^3n^P%!A6D|K<q%jNI$3OLp*DKt5+Ww;R|1P`@ zmskIJy$;y#Yb9_qlRv$_A5Y=(eOt_Xy=r?+YS4a7|6rv2fGw}r+u;ut{?qSj+OOg! z{C)M?*XsqE(O#qd|5vuW&Y${^>J@GSZGX}7pNN##H~@NmRx7r(M9cqnq`bxp(CZF$ z*s$ew-0Y+C#YlOLE1=iUYDRmFe*Z<J(>K5_b3gvTH!G$<biDQZdi@(@qfdjD*Ej_~ zwB<FQscruJ{~ca%{<ORw&!B2bEL2|W`yp<0Z8A;c9%O9!OYHdT`q28cUmrl3@b@)7 z!qs)w<~ZLp7yn-^uU8j^!{vSdttnGP*SS`p<@9+O3NuanuYPS;Yk5{4`s)kb^Y$Y9 z{eeijmR}u7*Xs0og)JY+=H%@6zZ(G<EvNZkzd-qQ(<aA1KcYF!HCmqdC7Q;Zg9Hrx z9gYlGH1FmG%D?ZQO!*t(2OR#3mfva1N5}7ljLA9qnQ-Z#ty<4LwtRao$GPtJO%D3c zhyS#krtvv~BIMQZADW!UtW(Z)NZo{=4u`@O@teYq6tw?5|L3OsBR7UqgZ67G{hB(J PU)^I`Rfse=^632k>_w;< literal 0 HcmV?d00001 diff --git a/week03/cmake-build-debug/CMakeCache.txt b/week03/cmake-build-debug/CMakeCache.txt new file mode 100644 index 00000000..051b76a0 --- /dev/null +++ b/week03/cmake-build-debug/CMakeCache.txt @@ -0,0 +1,380 @@ +# This is the CMakeCache file. +# For build in directory: /home/lewang/algorithm018/week03/cmake-build-debug +# It was generated by CMake: /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Debug + +//Id string of the compiler for the CodeBlocks IDE. Automatically +// detected when left empty +CMAKE_CODEBLOCKS_COMPILER_ID:STRING= + +//The CodeBlocks executable +CMAKE_CODEBLOCKS_EXECUTABLE:FILEPATH=CMAKE_CODEBLOCKS_EXECUTABLE-NOTFOUND + +//Additional command line arguments when CodeBlocks invokes make. +// Enter e.g. -j<some_number> to get parallel builds +CMAKE_CODEBLOCKS_MAKE_ARGUMENTS:STRING=-j12 + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-5 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-5 + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//C compiler +CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-5 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-5 + +//Flags used by the C compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the C compiler during DEBUG builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the C compiler during RELEASE builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=week02 + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Path to a program. +ProcessorCount_cmd_getconf:FILEPATH=/usr/bin/getconf + +//Path to a program. +ProcessorCount_cmd_sysctl:FILEPATH=/sbin/sysctl + +//Value Computed by CMake +week02_BINARY_DIR:STATIC=/home/lewang/algorithm018/week03/cmake-build-debug + +//Value Computed by CMake +week02_SOURCE_DIR:STATIC=/home/lewang/algorithm018/week03 + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/lewang/algorithm018/week03/cmake-build-debug +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=13 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL=CodeBlocks +//CXX compiler system defined macros +CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570815e+308L);__DBL_MIN__;((double)2.22507385850720138309e-308L);__DBL_EPSILON__;((double)2.22044604925031308085e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1;__STDC__;1;__cplusplus;199711L;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__GNUG__;5;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_WEAK__;1;__DEPRECATED;1;__GXX_RTTI;1;__cpp_rtti;199711;__cpp_binary_literals;201304;__cpp_runtime_arrays;198712;__cpp_threadsafe_static_init;200806;__EXCEPTIONS;1;__cpp_exceptions;199711;__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__GLIBCXX_TYPE_INT_N_0;__int128;__GLIBCXX_BITSIZE_INT_N_0;128;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;double(1.79769313486231570815e+308L);__DBL_MIN__;double(2.22507385850720138309e-308L);__DBL_EPSILON__;double(2.22044604925031308085e-16L);__DBL_DENORM_MIN__;double(4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_GNU_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_GNU_SOURCE;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1 +//CXX compiler system include directories +CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/include/c++/5;/usr/include/x86_64-linux-gnu/c++/5;/usr/include/c++/5/backward;/usr/lib/gcc/x86_64-linux-gnu/5/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include +//C compiler system defined macros +CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570815e+308L);__DBL_MIN__;((double)2.22507385850720138309e-308L);__DBL_EPSILON__;((double)2.22044604925031308085e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1 +//C compiler system include directories +CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/lib/gcc/x86_64-linux-gnu/5/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/lewang/algorithm018/week03 +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: ProcessorCount_cmd_getconf +ProcessorCount_cmd_getconf-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: ProcessorCount_cmd_sysctl +ProcessorCount_cmd_sysctl-ADVANCED:INTERNAL=1 + diff --git a/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/105_buildTree.cpp.o b/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/105_buildTree.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..8d212022f453b225dbcb814d7e411d12f3449847 GIT binary patch literal 32792 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 literal 0 HcmV?d00001 diff --git a/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/CXX.includecache b/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/CXX.includecache new file mode 100644 index 00000000..05ad0ec1 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/CXX.includecache @@ -0,0 +1,16 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week03/105_buildTree.cpp +iostream +- +bitset +- +vector +- + diff --git a/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/DependInfo.cmake b/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/DependInfo.cmake new file mode 100644 index 00000000..55f98373 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week03/105_buildTree.cpp" "/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/105_buildTree.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/build.make b/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/build.make new file mode 100644 index 00000000..ab486e45 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week03 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week03/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/105_buildTree.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/105_buildTree.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/105_buildTree.dir/flags.make + +CMakeFiles/105_buildTree.dir/105_buildTree.cpp.o: CMakeFiles/105_buildTree.dir/flags.make +CMakeFiles/105_buildTree.dir/105_buildTree.cpp.o: ../105_buildTree.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/105_buildTree.dir/105_buildTree.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/105_buildTree.dir/105_buildTree.cpp.o -c /home/lewang/algorithm018/week03/105_buildTree.cpp + +CMakeFiles/105_buildTree.dir/105_buildTree.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/105_buildTree.dir/105_buildTree.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week03/105_buildTree.cpp > CMakeFiles/105_buildTree.dir/105_buildTree.cpp.i + +CMakeFiles/105_buildTree.dir/105_buildTree.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/105_buildTree.dir/105_buildTree.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week03/105_buildTree.cpp -o CMakeFiles/105_buildTree.dir/105_buildTree.cpp.s + +# Object files for target 105_buildTree +105_buildTree_OBJECTS = \ +"CMakeFiles/105_buildTree.dir/105_buildTree.cpp.o" + +# External object files for target 105_buildTree +105_buildTree_EXTERNAL_OBJECTS = + +105_buildTree: CMakeFiles/105_buildTree.dir/105_buildTree.cpp.o +105_buildTree: CMakeFiles/105_buildTree.dir/build.make +105_buildTree: CMakeFiles/105_buildTree.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 105_buildTree" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/105_buildTree.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/105_buildTree.dir/build: 105_buildTree + +.PHONY : CMakeFiles/105_buildTree.dir/build + +CMakeFiles/105_buildTree.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/105_buildTree.dir/cmake_clean.cmake +.PHONY : CMakeFiles/105_buildTree.dir/clean + +CMakeFiles/105_buildTree.dir/depend: + cd /home/lewang/algorithm018/week03/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week03 /home/lewang/algorithm018/week03 /home/lewang/algorithm018/week03/cmake-build-debug /home/lewang/algorithm018/week03/cmake-build-debug /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/105_buildTree.dir/depend + diff --git a/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/cmake_clean.cmake b/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/cmake_clean.cmake new file mode 100644 index 00000000..41aae7b5 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/105_buildTree.dir/105_buildTree.cpp.o" + "105_buildTree.pdb" + "105_buildTree" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/105_buildTree.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/depend.internal b/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/depend.internal new file mode 100644 index 00000000..9b40dc17 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/105_buildTree.dir/105_buildTree.cpp.o + /home/lewang/algorithm018/week03/105_buildTree.cpp diff --git a/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/depend.make b/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/depend.make new file mode 100644 index 00000000..d882079f --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/105_buildTree.dir/105_buildTree.cpp.o: ../105_buildTree.cpp + diff --git a/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/flags.make b/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/link.txt b/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/link.txt new file mode 100644 index 00000000..dd7a48c6 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/105_buildTree.dir/105_buildTree.cpp.o -o 105_buildTree diff --git a/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/progress.make b/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/105_buildTree.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.o b/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..fbe175383ad886cb3c5aa0551a136adbadabe7f9 GIT binary patch literal 612608 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 CGH|~D literal 0 HcmV?d00001 diff --git a/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/CXX.includecache b/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/CXX.includecache new file mode 100644 index 00000000..2b995e0b --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/CXX.includecache @@ -0,0 +1,20 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week03/1356_sortBits.cpp +iostream +- +vector +- +unordered_map +- +bitset +- +algorithm +- + diff --git a/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/DependInfo.cmake b/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/DependInfo.cmake new file mode 100644 index 00000000..064d5781 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week03/1356_sortBits.cpp" "/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/build.make b/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/build.make new file mode 100644 index 00000000..852fce2f --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week03 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week03/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/1356_sortBits.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/1356_sortBits.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/1356_sortBits.dir/flags.make + +CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.o: CMakeFiles/1356_sortBits.dir/flags.make +CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.o: ../1356_sortBits.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.o -c /home/lewang/algorithm018/week03/1356_sortBits.cpp + +CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week03/1356_sortBits.cpp > CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.i + +CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week03/1356_sortBits.cpp -o CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.s + +# Object files for target 1356_sortBits +1356_sortBits_OBJECTS = \ +"CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.o" + +# External object files for target 1356_sortBits +1356_sortBits_EXTERNAL_OBJECTS = + +1356_sortBits: CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.o +1356_sortBits: CMakeFiles/1356_sortBits.dir/build.make +1356_sortBits: CMakeFiles/1356_sortBits.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 1356_sortBits" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/1356_sortBits.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/1356_sortBits.dir/build: 1356_sortBits + +.PHONY : CMakeFiles/1356_sortBits.dir/build + +CMakeFiles/1356_sortBits.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/1356_sortBits.dir/cmake_clean.cmake +.PHONY : CMakeFiles/1356_sortBits.dir/clean + +CMakeFiles/1356_sortBits.dir/depend: + cd /home/lewang/algorithm018/week03/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week03 /home/lewang/algorithm018/week03 /home/lewang/algorithm018/week03/cmake-build-debug /home/lewang/algorithm018/week03/cmake-build-debug /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/1356_sortBits.dir/depend + diff --git a/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/cmake_clean.cmake b/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/cmake_clean.cmake new file mode 100644 index 00000000..a3bdcc97 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.o" + "1356_sortBits.pdb" + "1356_sortBits" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/1356_sortBits.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/depend.internal b/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/depend.internal new file mode 100644 index 00000000..7060028b --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.o + /home/lewang/algorithm018/week03/1356_sortBits.cpp diff --git a/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/depend.make b/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/depend.make new file mode 100644 index 00000000..daa0cea9 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.o: ../1356_sortBits.cpp + diff --git a/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/flags.make b/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/link.txt b/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/link.txt new file mode 100644 index 00000000..c40d97f6 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.o -o 1356_sortBits diff --git a/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/progress.make b/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/22_generateParenthesis.cpp.o b/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/22_generateParenthesis.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..04b9d7b277a4d7afbfcc802d54bf453dfcf53e2f GIT binary patch literal 196328 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 UfAR{SatFn#W{L`Ib}{__19IR)j{pDw literal 0 HcmV?d00001 diff --git a/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/CXX.includecache b/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/CXX.includecache new file mode 100644 index 00000000..6ed12401 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/CXX.includecache @@ -0,0 +1,16 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week03/22_generateParenthesis.cpp +iostream +- +vector +- +string +- + diff --git a/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/DependInfo.cmake b/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/DependInfo.cmake new file mode 100644 index 00000000..56c6b1ac --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week03/22_generateParenthesis.cpp" "/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/22_generateParenthesis.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/build.make b/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/build.make new file mode 100644 index 00000000..8756fec2 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week03 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week03/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/22_generateParenthesis.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/22_generateParenthesis.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/22_generateParenthesis.dir/flags.make + +CMakeFiles/22_generateParenthesis.dir/22_generateParenthesis.cpp.o: CMakeFiles/22_generateParenthesis.dir/flags.make +CMakeFiles/22_generateParenthesis.dir/22_generateParenthesis.cpp.o: ../22_generateParenthesis.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/22_generateParenthesis.dir/22_generateParenthesis.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/22_generateParenthesis.dir/22_generateParenthesis.cpp.o -c /home/lewang/algorithm018/week03/22_generateParenthesis.cpp + +CMakeFiles/22_generateParenthesis.dir/22_generateParenthesis.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/22_generateParenthesis.dir/22_generateParenthesis.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week03/22_generateParenthesis.cpp > CMakeFiles/22_generateParenthesis.dir/22_generateParenthesis.cpp.i + +CMakeFiles/22_generateParenthesis.dir/22_generateParenthesis.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/22_generateParenthesis.dir/22_generateParenthesis.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week03/22_generateParenthesis.cpp -o CMakeFiles/22_generateParenthesis.dir/22_generateParenthesis.cpp.s + +# Object files for target 22_generateParenthesis +22_generateParenthesis_OBJECTS = \ +"CMakeFiles/22_generateParenthesis.dir/22_generateParenthesis.cpp.o" + +# External object files for target 22_generateParenthesis +22_generateParenthesis_EXTERNAL_OBJECTS = + +22_generateParenthesis: CMakeFiles/22_generateParenthesis.dir/22_generateParenthesis.cpp.o +22_generateParenthesis: CMakeFiles/22_generateParenthesis.dir/build.make +22_generateParenthesis: CMakeFiles/22_generateParenthesis.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 22_generateParenthesis" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/22_generateParenthesis.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/22_generateParenthesis.dir/build: 22_generateParenthesis + +.PHONY : CMakeFiles/22_generateParenthesis.dir/build + +CMakeFiles/22_generateParenthesis.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/22_generateParenthesis.dir/cmake_clean.cmake +.PHONY : CMakeFiles/22_generateParenthesis.dir/clean + +CMakeFiles/22_generateParenthesis.dir/depend: + cd /home/lewang/algorithm018/week03/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week03 /home/lewang/algorithm018/week03 /home/lewang/algorithm018/week03/cmake-build-debug /home/lewang/algorithm018/week03/cmake-build-debug /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/22_generateParenthesis.dir/depend + diff --git a/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/cmake_clean.cmake b/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/cmake_clean.cmake new file mode 100644 index 00000000..a599c2d2 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/22_generateParenthesis.dir/22_generateParenthesis.cpp.o" + "22_generateParenthesis.pdb" + "22_generateParenthesis" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/22_generateParenthesis.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/depend.internal b/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/depend.internal new file mode 100644 index 00000000..9b63b9fd --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/22_generateParenthesis.dir/22_generateParenthesis.cpp.o + /home/lewang/algorithm018/week03/22_generateParenthesis.cpp diff --git a/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/depend.make b/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/depend.make new file mode 100644 index 00000000..44351aa2 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/22_generateParenthesis.dir/22_generateParenthesis.cpp.o: ../22_generateParenthesis.cpp + diff --git a/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/flags.make b/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/link.txt b/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/link.txt new file mode 100644 index 00000000..dcaa5ec5 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/22_generateParenthesis.dir/22_generateParenthesis.cpp.o -o 22_generateParenthesis diff --git a/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/progress.make b/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/22_generateParenthesis.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week03/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake b/week03/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake new file mode 100755 index 00000000..17a89374 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake @@ -0,0 +1,73 @@ +set(CMAKE_C_COMPILER "/usr/bin/cc") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "GNU") +set(CMAKE_C_COMPILER_VERSION "5.5.0") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-5") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-5") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCC 1) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/week03/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake b/week03/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake new file mode 100755 index 00000000..51738d56 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake @@ -0,0 +1,76 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "5.5.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "98") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-5") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-5") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/week03/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin b/week03/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..ce01f2ca7e5e788ef02f6a2691b09499318eb750 GIT binary patch literal 8464 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 literal 0 HcmV?d00001 diff --git a/week03/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin b/week03/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..40ee06d7308469781ca42b235f55a21909e5cb67 GIT binary patch literal 8472 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 literal 0 HcmV?d00001 diff --git a/week03/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake b/week03/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake new file mode 100755 index 00000000..c394a4a4 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-4.15.0-70-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "4.15.0-70-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-4.15.0-70-generic") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "4.15.0-70-generic") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/week03/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c b/week03/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 00000000..bfc6ebbf --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,623 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif +#if defined(__CLASSIC_C__) +/* cv-qualifiers did not exist in K&R C */ +# define const +# define volatile +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__ibmxl__) || (defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800) +# define COMPILER_ID "XL" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__ARMCC_VERSION) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if !defined(__STDC__) +# if (defined(_MSC_VER) && !defined(__clang__)) \ + || (defined(__ibmxl__) || defined(__IBMC__)) +# define C_DIALECT "90" +# else +# define C_DIALECT +# endif +#elif __STDC_VERSION__ >= 201000L +# define C_DIALECT "11" +#elif __STDC_VERSION__ >= 199901L +# define C_DIALECT "99" +#else +# define C_DIALECT "90" +#endif +const char* info_language_dialect_default = + "INFO" ":" "dialect_default[" C_DIALECT "]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/week03/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out b/week03/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out new file mode 100755 index 0000000000000000000000000000000000000000..b6682332a4d6181ed3894fb98c1ca0489587c43f GIT binary patch literal 8616 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 Ih5F_H3$g66L;wH) literal 0 HcmV?d00001 diff --git a/week03/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/week03/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 00000000..b728b632 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,602 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__ibmxl__) || (defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800) +# define COMPILER_ID "XL" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__ARMCC_VERSION) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if defined(_MSC_VER) && defined(_MSVC_LANG) +#define CXX_STD _MSVC_LANG +#else +#define CXX_STD __cplusplus +#endif + +const char* info_language_dialect_default = "INFO" ":" "dialect_default[" +#if CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} diff --git a/week03/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out b/week03/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out new file mode 100755 index 0000000000000000000000000000000000000000..4f752d048d3d136555ba6b13b7869c22a3d0b55a GIT binary patch literal 8632 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 PMm|kP+C^q0>XiQ<q>!mv literal 0 HcmV?d00001 diff --git a/week03/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake b/week03/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 00000000..cd7ccc47 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/lewang/algorithm018/week03") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/lewang/algorithm018/week03/cmake-build-debug") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/week03/cmake-build-debug/CMakeFiles/CMakeOutput.log b/week03/cmake-build-debug/CMakeFiles/CMakeOutput.log new file mode 100644 index 00000000..b1dc0049 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/CMakeOutput.log @@ -0,0 +1,625 @@ +The system is: Linux - 4.15.0-70-generic - x86_64 +Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. +Compiler: /usr/bin/cc +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" + +The C compiler identification is GNU, found in "/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out" + +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. +Compiler: /usr/bin/c++ +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + +The CXX compiler identification is GNU, found in "/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out" + +Determining if the C compiler works passed with the following output: +Change Dir: /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_c7555/fast" +/usr/bin/make -f CMakeFiles/cmTC_c7555.dir/build.make CMakeFiles/cmTC_c7555.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_c7555.dir/testCCompiler.c.o +/usr/bin/cc -o CMakeFiles/cmTC_c7555.dir/testCCompiler.c.o -c /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp/testCCompiler.c +Linking C executable cmTC_c7555 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c7555.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_c7555.dir/testCCompiler.c.o -o cmTC_c7555 +make[1]: Leaving directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_1ab36/fast" +/usr/bin/make -f CMakeFiles/cmTC_1ab36.dir/build.make CMakeFiles/cmTC_1ab36.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_1ab36.dir/CMakeCCompilerABI.c.o +/usr/bin/cc -o CMakeFiles/cmTC_1ab36.dir/CMakeCCompilerABI.c.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCCompilerABI.c +Linking C executable cmTC_1ab36 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1ab36.dir/link.txt --verbose=1 +/usr/bin/cc -v -rdynamic CMakeFiles/cmTC_1ab36.dir/CMakeCCompilerABI.c.o -o cmTC_1ab36 +Using built-in specs. +COLLECT_GCC=/usr/bin/cc +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_1ab36' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccSmhcQ2.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_1ab36 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_1ab36.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o +make[1]: Leaving directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_1ab36/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_1ab36.dir/build.make CMakeFiles/cmTC_1ab36.dir/build] + ignore line: [make[1]: Entering directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp'] + ignore line: [Building C object CMakeFiles/cmTC_1ab36.dir/CMakeCCompilerABI.c.o] + ignore line: [/usr/bin/cc -o CMakeFiles/cmTC_1ab36.dir/CMakeCCompilerABI.c.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCCompilerABI.c] + ignore line: [Linking C executable cmTC_1ab36] + ignore line: [/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1ab36.dir/link.txt --verbose=1] + ignore line: [/usr/bin/cc -v -rdynamic CMakeFiles/cmTC_1ab36.dir/CMakeCCompilerABI.c.o -o cmTC_1ab36 ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_1ab36' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccSmhcQ2.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_1ab36 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_1ab36.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccSmhcQ2.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_1ab36] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] + arg [CMakeFiles/cmTC_1ab36.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtend.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5] ==> [/usr/lib/gcc/x86_64-linux-gnu/5] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> [/usr/lib] + implicit libs: [gcc;gcc_s;c;gcc;gcc_s] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting C [-std=c11] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_36541/fast" +/usr/bin/make -f CMakeFiles/cmTC_36541.dir/build.make CMakeFiles/cmTC_36541.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_36541.dir/feature_tests.c.o +/usr/bin/cc -std=c11 -o CMakeFiles/cmTC_36541.dir/feature_tests.c.o -c /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_36541 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_36541.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_36541.dir/feature_tests.c.o -o cmTC_36541 +make[1]: Leaving directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:1c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c99] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_e6162/fast" +/usr/bin/make -f CMakeFiles/cmTC_e6162.dir/build.make CMakeFiles/cmTC_e6162.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_e6162.dir/feature_tests.c.o +/usr/bin/cc -std=c99 -o CMakeFiles/cmTC_e6162.dir/feature_tests.c.o -c /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_e6162 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e6162.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_e6162.dir/feature_tests.c.o -o cmTC_e6162 +make[1]: Leaving directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c90] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_1a65b/fast" +/usr/bin/make -f CMakeFiles/cmTC_1a65b.dir/build.make CMakeFiles/cmTC_1a65b.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_1a65b.dir/feature_tests.c.o +/usr/bin/cc -std=c90 -o CMakeFiles/cmTC_1a65b.dir/feature_tests.c.o -c /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_1a65b +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1a65b.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_1a65b.dir/feature_tests.c.o -o cmTC_1a65b +make[1]: Leaving directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:0c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:0c_variadic_macros +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_62859/fast" +/usr/bin/make -f CMakeFiles/cmTC_62859.dir/build.make CMakeFiles/cmTC_62859.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_62859.dir/testCXXCompiler.cxx.o +/usr/bin/c++ -o CMakeFiles/cmTC_62859.dir/testCXXCompiler.cxx.o -c /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp/testCXXCompiler.cxx +Linking CXX executable cmTC_62859 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_62859.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_62859.dir/testCXXCompiler.cxx.o -o cmTC_62859 +make[1]: Leaving directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_42d56/fast" +/usr/bin/make -f CMakeFiles/cmTC_42d56.dir/build.make CMakeFiles/cmTC_42d56.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_42d56.dir/CMakeCXXCompilerABI.cpp.o +/usr/bin/c++ -o CMakeFiles/cmTC_42d56.dir/CMakeCXXCompilerABI.cpp.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXCompilerABI.cpp +Linking CXX executable cmTC_42d56 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_42d56.dir/link.txt --verbose=1 +/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_42d56.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_42d56 +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_42d56' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/cc0hXpXl.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_42d56 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_42d56.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o +make[1]: Leaving directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_42d56/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_42d56.dir/build.make CMakeFiles/cmTC_42d56.dir/build] + ignore line: [make[1]: Entering directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp'] + ignore line: [Building CXX object CMakeFiles/cmTC_42d56.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -o CMakeFiles/cmTC_42d56.dir/CMakeCXXCompilerABI.cpp.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Linking CXX executable cmTC_42d56] + ignore line: [/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_42d56.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_42d56.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_42d56 ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_42d56' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/cc0hXpXl.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_42d56 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_42d56.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/cc0hXpXl.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_42d56] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] + arg [CMakeFiles/cmTC_42d56.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtend.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5] ==> [/usr/lib/gcc/x86_64-linux-gnu/5] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting CXX [-std=c++1z] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_1dc2f/fast" +/usr/bin/make -f CMakeFiles/cmTC_1dc2f.dir/build.make CMakeFiles/cmTC_1dc2f.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_1dc2f.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++1z -o CMakeFiles/cmTC_1dc2f.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_1dc2f +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1dc2f.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_1dc2f.dir/feature_tests.cxx.o -o cmTC_1dc2f +make[1]: Leaving directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++14] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_22de4/fast" +/usr/bin/make -f CMakeFiles/cmTC_22de4.dir/build.make CMakeFiles/cmTC_22de4.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_22de4.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++14 -o CMakeFiles/cmTC_22de4.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_22de4 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_22de4.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_22de4.dir/feature_tests.cxx.o -o cmTC_22de4 +make[1]: Leaving directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++11] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_aa667/fast" +/usr/bin/make -f CMakeFiles/cmTC_aa667.dir/build.make CMakeFiles/cmTC_aa667.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_aa667.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++11 -o CMakeFiles/cmTC_aa667.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_aa667 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_aa667.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_aa667.dir/feature_tests.cxx.o -o cmTC_aa667 +make[1]: Leaving directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++98] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_37fba/fast" +/usr/bin/make -f CMakeFiles/cmTC_37fba.dir/build.make CMakeFiles/cmTC_37fba.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_37fba.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++98 -o CMakeFiles/cmTC_37fba.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_37fba +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_37fba.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_37fba.dir/feature_tests.cxx.o -o cmTC_37fba +make[1]: Leaving directory '/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:0cxx_alias_templates + Feature record: CXX_FEATURE:0cxx_alignas + Feature record: CXX_FEATURE:0cxx_alignof + Feature record: CXX_FEATURE:0cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:0cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:0cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:0cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:0cxx_default_function_template_args + Feature record: CXX_FEATURE:0cxx_defaulted_functions + Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:0cxx_delegating_constructors + Feature record: CXX_FEATURE:0cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:0cxx_enum_forward_declarations + Feature record: CXX_FEATURE:0cxx_explicit_conversions + Feature record: CXX_FEATURE:0cxx_extended_friend_declarations + Feature record: CXX_FEATURE:0cxx_extern_templates + Feature record: CXX_FEATURE:0cxx_final + Feature record: CXX_FEATURE:0cxx_func_identifier + Feature record: CXX_FEATURE:0cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:0cxx_inheriting_constructors + Feature record: CXX_FEATURE:0cxx_inline_namespaces + Feature record: CXX_FEATURE:0cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:0cxx_local_type_template_args + Feature record: CXX_FEATURE:0cxx_long_long_type + Feature record: CXX_FEATURE:0cxx_noexcept + Feature record: CXX_FEATURE:0cxx_nonstatic_member_init + Feature record: CXX_FEATURE:0cxx_nullptr + Feature record: CXX_FEATURE:0cxx_override + Feature record: CXX_FEATURE:0cxx_range_for + Feature record: CXX_FEATURE:0cxx_raw_string_literals + Feature record: CXX_FEATURE:0cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:0cxx_right_angle_brackets + Feature record: CXX_FEATURE:0cxx_rvalue_references + Feature record: CXX_FEATURE:0cxx_sizeof_member + Feature record: CXX_FEATURE:0cxx_static_assert + Feature record: CXX_FEATURE:0cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:0cxx_thread_local + Feature record: CXX_FEATURE:0cxx_trailing_return_types + Feature record: CXX_FEATURE:0cxx_unicode_literals + Feature record: CXX_FEATURE:0cxx_uniform_initialization + Feature record: CXX_FEATURE:0cxx_unrestricted_unions + Feature record: CXX_FEATURE:0cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:0cxx_variadic_macros + Feature record: CXX_FEATURE:0cxx_variadic_templates diff --git a/week03/cmake-build-debug/CMakeFiles/Makefile.cmake b/week03/cmake-build-debug/CMakeFiles/Makefile.cmake new file mode 100644 index 00000000..f5f0b3a2 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/Makefile.cmake @@ -0,0 +1,50 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "../CMakeLists.txt" + "CMakeFiles/3.13.2/CMakeCCompiler.cmake" + "CMakeFiles/3.13.2/CMakeCXXCompiler.cmake" + "CMakeFiles/3.13.2/CMakeSystem.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCommonLanguageInclude.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeFindCodeBlocks.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeGenericSystem.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeInitializeConfigs.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeLanguageInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeSystemSpecificInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeSystemSpecificInitialize.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU-C.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU-CXX.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU-C.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU-CXX.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/UnixPaths.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/ProcessorCount.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/1356_sortBits.dir/DependInfo.cmake" + ) diff --git a/week03/cmake-build-debug/CMakeFiles/Makefile2 b/week03/cmake-build-debug/CMakeFiles/Makefile2 new file mode 100644 index 00000000..ac6be186 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/Makefile2 @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# The main recursive all target +all: + +.PHONY : all + +# The main recursive preinstall target +preinstall: + +.PHONY : preinstall + +# The main recursive clean target +clean: + +.PHONY : clean + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week03 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week03/cmake-build-debug + +#============================================================================= +# Target rules for target CMakeFiles/1356_sortBits.dir + +# All Build rule for target. +CMakeFiles/1356_sortBits.dir/all: + $(MAKE) -f CMakeFiles/1356_sortBits.dir/build.make CMakeFiles/1356_sortBits.dir/depend + $(MAKE) -f CMakeFiles/1356_sortBits.dir/build.make CMakeFiles/1356_sortBits.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target 1356_sortBits" +.PHONY : CMakeFiles/1356_sortBits.dir/all + +# Include target in all. +all: CMakeFiles/1356_sortBits.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/1356_sortBits.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/1356_sortBits.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/1356_sortBits.dir/rule + +# Convenience name for target. +1356_sortBits: CMakeFiles/1356_sortBits.dir/rule + +.PHONY : 1356_sortBits + +# clean rule for target. +CMakeFiles/1356_sortBits.dir/clean: + $(MAKE) -f CMakeFiles/1356_sortBits.dir/build.make CMakeFiles/1356_sortBits.dir/clean +.PHONY : CMakeFiles/1356_sortBits.dir/clean + +# clean rule for target. +clean: CMakeFiles/1356_sortBits.dir/clean + +.PHONY : clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/week03/cmake-build-debug/CMakeFiles/TargetDirectories.txt b/week03/cmake-build-debug/CMakeFiles/TargetDirectories.txt new file mode 100644 index 00000000..63b65b4c --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/rebuild_cache.dir +/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir +/home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/edit_cache.dir diff --git a/week03/cmake-build-debug/CMakeFiles/clion-environment.txt b/week03/cmake-build-debug/CMakeFiles/clion-environment.txt new file mode 100644 index 00000000..270d93c2 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/clion-environment.txt @@ -0,0 +1,3 @@ +ToolSet: 1.0 (local)Options: + +Options: \ No newline at end of file diff --git a/week03/cmake-build-debug/CMakeFiles/clion-log.txt b/week03/cmake-build-debug/CMakeFiles/clion-log.txt new file mode 100644 index 00000000..26ce6897 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/clion-log.txt @@ -0,0 +1,4 @@ +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" /home/lewang/algorithm018/week03 +-- Configuring done +-- Generating done +-- Build files have been written to: /home/lewang/algorithm018/week03/cmake-build-debug diff --git a/week03/cmake-build-debug/CMakeFiles/cmake.check_cache b/week03/cmake-build-debug/CMakeFiles/cmake.check_cache new file mode 100644 index 00000000..3dccd731 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/week03/cmake-build-debug/CMakeFiles/feature_tests.bin b/week03/cmake-build-debug/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..c1bade88a09ced4221830cdf30b0fa11360b60ea GIT binary patch literal 12520 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 S*dX~wSGpXhnNd-{{J#MLk8ZjE literal 0 HcmV?d00001 diff --git a/week03/cmake-build-debug/CMakeFiles/feature_tests.c b/week03/cmake-build-debug/CMakeFiles/feature_tests.c new file mode 100644 index 00000000..83e86dd8 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/feature_tests.c @@ -0,0 +1,34 @@ + + const char features[] = {"\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/week03/cmake-build-debug/CMakeFiles/feature_tests.cxx b/week03/cmake-build-debug/CMakeFiles/feature_tests.cxx new file mode 100644 index 00000000..b93418c6 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/week03/cmake-build-debug/CMakeFiles/progress.marks b/week03/cmake-build-debug/CMakeFiles/progress.marks new file mode 100644 index 00000000..0cfbf088 --- /dev/null +++ b/week03/cmake-build-debug/CMakeFiles/progress.marks @@ -0,0 +1 @@ +2 diff --git a/week03/cmake-build-debug/Makefile b/week03/cmake-build-debug/Makefile new file mode 100644 index 00000000..b7be0a4b --- /dev/null +++ b/week03/cmake-build-debug/Makefile @@ -0,0 +1,178 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week03 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week03/cmake-build-debug + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week03/cmake-build-debug/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named 1356_sortBits + +# Build rule for target. +1356_sortBits: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 1356_sortBits +.PHONY : 1356_sortBits + +# fast build rule for target. +1356_sortBits/fast: + $(MAKE) -f CMakeFiles/1356_sortBits.dir/build.make CMakeFiles/1356_sortBits.dir/build +.PHONY : 1356_sortBits/fast + +1356_sortBits.o: 1356_sortBits.cpp.o + +.PHONY : 1356_sortBits.o + +# target to build an object file +1356_sortBits.cpp.o: + $(MAKE) -f CMakeFiles/1356_sortBits.dir/build.make CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.o +.PHONY : 1356_sortBits.cpp.o + +1356_sortBits.i: 1356_sortBits.cpp.i + +.PHONY : 1356_sortBits.i + +# target to preprocess a source file +1356_sortBits.cpp.i: + $(MAKE) -f CMakeFiles/1356_sortBits.dir/build.make CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.i +.PHONY : 1356_sortBits.cpp.i + +1356_sortBits.s: 1356_sortBits.cpp.s + +.PHONY : 1356_sortBits.s + +# target to generate assembly for a file +1356_sortBits.cpp.s: + $(MAKE) -f CMakeFiles/1356_sortBits.dir/build.make CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.s +.PHONY : 1356_sortBits.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... rebuild_cache" + @echo "... 1356_sortBits" + @echo "... edit_cache" + @echo "... 1356_sortBits.o" + @echo "... 1356_sortBits.i" + @echo "... 1356_sortBits.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/week03/cmake-build-debug/cmake_install.cmake b/week03/cmake-build-debug/cmake_install.cmake new file mode 100644 index 00000000..bb045fa0 --- /dev/null +++ b/week03/cmake-build-debug/cmake_install.cmake @@ -0,0 +1,49 @@ +# Install script for directory: /home/lewang/algorithm018/week03 + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/lewang/algorithm018/week03/cmake-build-debug/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/week03/cmake-build-debug/week02.cbp b/week03/cmake-build-debug/week02.cbp new file mode 100644 index 00000000..4c01aa6d --- /dev/null +++ b/week03/cmake-build-debug/week02.cbp @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="UTF-8"?> +<CodeBlocks_project_file> + <FileVersion major="1" minor="6"/> + <Project> + <Option title="week02"/> + <Option makefile_is_custom="1"/> + <Option compiler="gcc"/> + <Option virtualFolders="CMake Files\;"/> + <Build> + <Target title="all"> + <Option working_dir="/home/lewang/algorithm018/week03/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week03/cmake-build-debug/Makefile" VERBOSE=1 all"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week03/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week03/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week03/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="rebuild_cache"> + <Option working_dir="/home/lewang/algorithm018/week03/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week03/cmake-build-debug/Makefile" VERBOSE=1 rebuild_cache"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week03/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week03/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week03/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="1356_sortBits"> + <Option output="/home/lewang/algorithm018/week03/cmake-build-debug/1356_sortBits" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week03/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week03/cmake-build-debug/Makefile" VERBOSE=1 1356_sortBits"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week03/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week03/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week03/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="1356_sortBits/fast"> + <Option output="/home/lewang/algorithm018/week03/cmake-build-debug/1356_sortBits" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week03/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week03/cmake-build-debug/Makefile" VERBOSE=1 1356_sortBits/fast"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week03/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week03/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week03/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="edit_cache"> + <Option working_dir="/home/lewang/algorithm018/week03/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week03/cmake-build-debug/Makefile" VERBOSE=1 edit_cache"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week03/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week03/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week03/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + </Build> + <Unit filename="/home/lewang/algorithm018/week03/1356_sortBits.cpp"> + <Option target="1356_sortBits"/> + </Unit> + <Unit filename="/home/lewang/algorithm018/week03/CMakeLists.txt"> + <Option virtualFolder="CMake Files\"/> + </Unit> + </Project> +</CodeBlocks_project_file> From 7668b69442569f2ecdfce1486d814c30739493e3 Mon Sep 17 00:00:00 2001 From: Ella2le <1071444737@qq.com> Date: Sun, 8 Nov 2020 22:04:34 +0800 Subject: [PATCH 14/21] do week3 homework --- week03/102_levelOrder.cpp | 63 ++++++++++++++++++ week03/1356_sortBits.cpp | 31 +++++++-- week03/46_permute.cpp | 2 +- week03/55_canJump.cpp | 57 ++++++++++++++++ week03/NOTE.md | 4 +- week03/cmake-build-debug/1356_sortBits | Bin 378472 -> 79728 bytes .../1356_sortBits.dir/1356_sortBits.cpp.o | Bin 612608 -> 125040 bytes 7 files changed, 147 insertions(+), 10 deletions(-) create mode 100644 week03/102_levelOrder.cpp create mode 100644 week03/55_canJump.cpp diff --git a/week03/102_levelOrder.cpp b/week03/102_levelOrder.cpp new file mode 100644 index 00000000..719a7fe1 --- /dev/null +++ b/week03/102_levelOrder.cpp @@ -0,0 +1,63 @@ +// +// Created by lewang on 11/8/20. +// +//dfs +//深度优先遍历用递归 +class Solution { +public: + // stack<vector<int>> temp; + vector<vector<int>> res; + vector<vector<int>> levelOrder(TreeNode* root) { + if(root == nullptr) return res; + getNext(root,0); + return res; + + } + + void getNext(TreeNode* root,int level){ + //vector<int> temp; + if(res.size() <= level) { + res.push_back(vector<int>()); + } + + res[level].push_back(root->val); + + if(root->left != nullptr){ + getNext(root->left,level+1); + } + if(root->right != nullptr){ + getNext(root->right, level+1); + } + } + + +}; +//DFS +//广度优先遍历用队列 +class Solution { +public: + // stack<vector<int>> temp; + vector<vector<int>> res; + vector<vector<int>> levelOrder(TreeNode* root) { + queue<TreeNode*> que; + que.push(root); + while(que.size()!=0) { + int size = que.size(); + vector<int> level; + while(size--) { + TreeNode* cur = que.front(); + que.pop(); + if(!cur) { + continue; + } + level.push_back(cur->val); + que.push(cur->left); + que.push(cur->right); + } + if(level.size()!=0){ + res.push_back(level); + } + } + return res; + } +}; \ No newline at end of file diff --git a/week03/1356_sortBits.cpp b/week03/1356_sortBits.cpp index 5d7d8470..176a6820 100644 --- a/week03/1356_sortBits.cpp +++ b/week03/1356_sortBits.cpp @@ -45,12 +45,29 @@ class Solution { }; int main(){ - vector<int> nums {1111,7644,1107,6978,8742,1,7403,7694,9193,4401,377,8641,5311,624,3554,6631}; - Solution test; - vector<int> res; - res = test.sortByBits(nums); - for(auto i : res) cout<<i<<", "; - cout<<endl; - +// vector<int> nums {1111,7644,1107,6978,8742,1,7403,7694,9193,4401,377,8641,5311,624,3554,6631}; +// Solution test; +// vector<int> res; +// res = test.sortByBits(nums); +// for(auto i : res) cout<<i<<", "; +// cout<<endl; + cout<<"here2!!"<<endl; + vector<int> ans; + cout<<"here1!!"<<endl; + int k = 5; + int res; + ans.push_back(1); + int id1 = 0, id2 = 0, id3 = 0; + cout<<"here!!"<<endl; + for(int i = 1; i < k; i++){ + ans.push_back(min(min(ans[id1]*3,ans[id2]*5),ans[id3]*7)); + cout<<ans.back()<<endl; + if(ans[i] == ans[id1]*3) id1++; + if(ans[i] == ans[id2]*5) id2++; + if(ans[i] == ans[id3]*7) id3++; + } + res = ans.back(); + cout<<res; + // return res; return 0; } \ No newline at end of file diff --git a/week03/46_permute.cpp b/week03/46_permute.cpp index bf00fd9c..301858b4 100644 --- a/week03/46_permute.cpp +++ b/week03/46_permute.cpp @@ -61,7 +61,7 @@ class Solution { /***************** *res:用来存速返回结果 *output是递归中间满足要求的一种排列 - * first 是当前排列的长度 + *first 是当前排列的长度 */ //当前排列满足要求就返回output到res中 if(first == len) { diff --git a/week03/55_canJump.cpp b/week03/55_canJump.cpp new file mode 100644 index 00000000..ce96f0ed --- /dev/null +++ b/week03/55_canJump.cpp @@ -0,0 +1,57 @@ +// +// Created by lewang on 11/8/20. +// + +//超时了 +class Solution { +public: + bool canJump(vector<int>& nums) { + bool res = false; + + toNext(0, res, nums); + return res; + } + +private: + void toNext(int i, bool& res, vector<int> nums){ + if(i == int(nums.size() -1)){ + res = true; + return; + } + //贪心算法,走当前可以走的最大步数 + + int j = nums[i]; + + while(j>0){ + i = i + j; + if(i>= nums.size()-1 ){ + res = true; + return; + }else if(i<nums.size() && nums[i] != 0){ + toNext(i,res, nums); + } + i = i - j; + j--; + + } + + } +}; +//贪心算法 +class Solution { +public: + bool canJump(vector<int>& nums) { + int n = nums.size(); + int ri ghtmost = 0; + for( int i = 0; i< n; i++) { + if( i <= rightmost) { + rightmost = max(rightmost, i + nums[i]); + if(rightmost >= n-1){ + return true; + } + } + } + return false; + + } +}; \ No newline at end of file diff --git a/week03/NOTE.md b/week03/NOTE.md index 8e3f51d5..5f663ae7 100644 --- a/week03/NOTE.md +++ b/week03/NOTE.md @@ -82,8 +82,8 @@ N皇后 ### 预习题目: -- [二叉树的层次遍历](http://leetcode-cn.com/problems/binary-tree-level-order-traversal/#/description) -- [分发饼干](http://leetcode-cn.com/problems/assign-cookies/description/) +- √ [二叉树的层次遍历](http://leetcode-cn.com/problems/binary-tree-level-order-traversal/#/description) +- √ [分发饼干](http://leetcode-cn.com/problems/assign-cookies/description/) - √ [买卖股票的最佳时机 II](http://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/description/) - [跳跃游戏](http://leetcode-cn.com/problems/jump-game/) - √ [x 的平方根](http://leetcode-cn.com/problems/sqrtx/) diff --git a/week03/cmake-build-debug/1356_sortBits b/week03/cmake-build-debug/1356_sortBits index 886270f36d52d210d1882f7c85bce416b607f220..01edfd11365d24e016d565ff57df5e9bdca029ed 100755 GIT binary patch literal 79728 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π>OXh_WD&3jz*NC>Ae!3Yb(b<K8k5 zZC3=uA`rLx*GnXa2x$Qp2pLP8N5%T~rwnxsq9<ZV-NIRSoc4);DIyljkUQ#68`qz> zu{GLC8{w}40k7a``;()i%kkhHDW>#^jFGLqn-b@i@2#WVLIZui=;c?m1S=-xFiav! zhO16<%4VMkDBZ9FkbLR@$#k5euz^<>;6-iZ1sp~BRHPk;AfuKe_TiR9Lc%H!36_KP zd;}`zh2=vTxtoOvrOnDTA|j$9xTu(m(XG_!7FS}DxxIE`HnJ>WkS<cDD86{-3p|=x zlCBF98emG6|ELDRiegp#v?bAvE9X<?9(xZtAtl#zZ%j5f=?L=)g^1JliPft<U?h=7 zN9>#XJ>8iiw`aab!6_hMUI?gIrI#PBk7%o%77h>Wi{gg;(qQWdmx)Udg&Z-R0ad4* zWQas1jDiR9B9dA}(+qc^9GMB4Qa*7W8L$^oxJBaI3s>&tfQ=q2ElWqLEW8p4S<}sJ z#{Qep1Nt^i9@{Px&AW#@zXd`!MKn5Qw6OuX+74n@X>qyQOOnY071_S?Y>A4@Rjqwu z=9q0jc#mc`u{=^9Zk4ErB7%%iFafcZy<q@VA~jVFI43K1{$rPif?Q|uIKT?%F3KX@ zm-w!Lpr8J24vrX9O`@=DvfxbZ=RfF#Sqkx(qn6tQ)H0%FL7rUfA|Ya<B041tI4Xy8 zSSWESPs%;}Bq5dKWC0<lodu|A^9b+MZ^-wx;Bq7M+Q|aH@g1tkLi_d*{kan9^5hr3 zBZc`r{VyqgLxRI58|bGoj{Pmr4wWq6<H9b^{x0CK8vY8bFHA<FqAzszQfK(vYoinU zhTdB(J#mLHRAzsY&h%WX^kJXh*Fr-)xQX|Z;scNTEP#F|3ot_tm;_}(4i(~d=A}lx z`zkM)v7dH!aEQ!)!ApzrICmEo&pvANvc>de)zCjd7m?YqEzZo!Fye>z`WNllaII$T zx3wcHYyQpnY<_R6uH%E>ex~iMe7oJKW!U~Q>R){6rIC%_;@hlz^PFo4ce-3~uNJOn z@C`1xZ2T4nXXUf}5f|LnvQE|>Z`qdXJ^0H<*z+x3&dPb%`TZ+gzaPhsFL~p)xH>Dp zrHyU;_8cp3;`jga+FSgcl^@jh96!ft<Jaos{rJE&wf-zl&&umMV0*r`xA}iq+dpm{ zKA<18-1FMAP1ycpsN*dhA1{mhv+_-@I{O>$|1aPdzrDo=S}8wft?6rXmzBQ~w*P+j zyTudQc(qwJeyjgv(BAymR!+?Es2$jIt-ntP?JX|RO1R$(S2+LQ*7ml47QblaqlMOG z{QLc&y~R0ZrFE?RgwOwC(B9%9t^AE(0=8~8tiKG}Tim3TW4lqy@cG|BJ$+A#=6QVO zRo5U~Z+pI#|AyP(!pz!R9OfBqZ}++0a`?6SZ{r8TpFQ8=HSay9z4iAUd@$T(oyB$5 zZ2Y?Zh9CA^o7X4M#(%!We=c5QZ%OiZuE_pcdn@liW50dor@!u+7@k`P*3Q0v7aFt9 z=5KKa_gZ^)?p-zSGe6#?&tDAct^IsZZ{1n>25leQmNfMFivhq`JG=kw747#m&~D*b zyVI3n`^Ad(pZ;BUKjVx1D{OzUqWxF?(6#!u@*nFXZ2y$D57+O7FS!=?Z&*uLT6-&9 zTxRhee)}2&LUGlOSwG$tkO*n_9Rda}<AZO*XT}`bau{5ZJQ(cYV|KmfKG*&W@DKZ! WtIcc3USsY5{H(jP6*LIGCjSrm6?{|x literal 378472 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⪻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�x$9L08`hF<;} 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 G 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 WV$6|flwJSFf8^IUlLt<kmHz{TNcoWf diff --git a/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.o b/week03/cmake-build-debug/CMakeFiles/1356_sortBits.dir/1356_sortBits.cpp.o index fbe175383ad886cb3c5aa0551a136adbadabe7f9..9eddd926c0d1dfe6c584464ca8faa16c3925a7d9 100644 GIT binary patch literal 125040 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 QWz$zX$+u1W^uhZ75BgmHng9R* literal 612608 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 CGH|~D From e85bb9100b153f34d38658d130767a68a015d064 Mon Sep 17 00:00:00 2001 From: Ella2le <1071444737@qq.com> Date: Sun, 15 Nov 2020 21:50:45 +0800 Subject: [PATCH 15/21] do some homework --- week03/236_lowestCommonAncestor.cpp | 2 +- week03/55_canJump.cpp | 20 + week04/102_levelOrder.cpp | 81 +++ week04/122_maxProfit.cpp | 18 + week04/126_findLadders.cpp | 83 +++ week04/127_ladderLength.cpp | 212 ++++++ week04/153_findMin.cpp | 4 + week04/200_numIslands.cpp | 107 +++ week04/22_generrateParenthesis.cpp | 55 ++ week04/33_search.cpp | 4 + week04/367_isPerefectSquare.cpp | 66 ++ week04/433_minMutation.cpp | 54 ++ week04/455_findContentChildren.cpp | 24 + week04/45_jump.cpp | 4 + week04/515_largestValue.cpp | 171 +++++ week04/529_updateBoard.cpp | 201 ++++++ week04/55_canJump.cpp | 81 +++ week04/69_mySqrt.cpp | 29 + week04/74_searchMatrix.cpp | 4 + week04/860_lemonadeChange.cpp | 30 + week04/874_robotSim.cpp | 4 + week04/CMakeLists.txt | 8 + week04/NOTE.md | 221 ++++++- week04/cmake-build-debug/127_ladderLength | Bin 0 -> 155464 bytes .../cmake-build-debug/22_generrateParenthesis | Bin 0 -> 135160 bytes week04/cmake-build-debug/CMakeCache.txt | 380 +++++++++++ .../127_ladderLength.cpp.o | Bin 0 -> 242232 bytes .../127_ladderLength.dir/CXX.includecache | 28 + .../127_ladderLength.dir/DependInfo.cmake | 20 + .../127_ladderLength.dir/build.make | 98 +++ .../127_ladderLength.dir/cmake_clean.cmake | 10 + .../127_ladderLength.dir/depend.internal | 5 + .../127_ladderLength.dir/depend.make | 5 + .../127_ladderLength.dir/flags.make | 10 + .../CMakeFiles/127_ladderLength.dir/link.txt | 1 + .../127_ladderLength.dir/progress.make | 3 + .../22_generrateParenthesis.cpp.o | Bin 0 -> 196688 bytes .../CXX.includecache | 18 + .../DependInfo.cmake | 20 + .../22_generrateParenthesis.dir/build.make | 98 +++ .../cmake_clean.cmake | 10 + .../depend.internal | 5 + .../22_generrateParenthesis.dir/depend.make | 5 + .../22_generrateParenthesis.dir/flags.make | 10 + .../22_generrateParenthesis.dir/link.txt | 1 + .../22_generrateParenthesis.dir/progress.make | 3 + .../CMakeFiles/3.13.2/CMakeCCompiler.cmake | 73 ++ .../CMakeFiles/3.13.2/CMakeCXXCompiler.cmake | 76 +++ .../3.13.2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 8464 bytes .../3.13.2/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 8472 bytes .../CMakeFiles/3.13.2/CMakeSystem.cmake | 15 + .../3.13.2/CompilerIdC/CMakeCCompilerId.c | 623 +++++++++++++++++ .../CMakeFiles/3.13.2/CompilerIdC/a.out | Bin 0 -> 8616 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 602 +++++++++++++++++ .../CMakeFiles/3.13.2/CompilerIdCXX/a.out | Bin 0 -> 8632 bytes .../515_largestValue.dir/DependInfo.cmake | 20 + .../515_largestValue.dir/build.make | 98 +++ .../515_largestValue.dir/cmake_clean.cmake | 10 + .../515_largestValue.dir/depend.make | 2 + .../515_largestValue.dir/flags.make | 10 + .../CMakeFiles/515_largestValue.dir/link.txt | 1 + .../515_largestValue.dir/progress.make | 3 + .../529_updateBoard.dir/DependInfo.cmake | 20 + .../CMakeFiles/529_updateBoard.dir/build.make | 98 +++ .../529_updateBoard.dir/cmake_clean.cmake | 10 + .../529_updateBoard.dir/depend.make | 2 + .../CMakeFiles/529_updateBoard.dir/flags.make | 10 + .../CMakeFiles/529_updateBoard.dir/link.txt | 1 + .../529_updateBoard.dir/progress.make | 3 + .../CMakeDirectoryInformation.cmake | 16 + .../CMakeFiles/CMakeOutput.log | 625 ++++++++++++++++++ .../CMakeFiles/Makefile.cmake | 50 ++ week04/cmake-build-debug/CMakeFiles/Makefile2 | 113 ++++ .../CMakeFiles/TargetDirectories.txt | 3 + .../CMakeFiles/clion-environment.txt | 3 + .../CMakeFiles/clion-log.txt | 4 + .../CMakeFiles/cmake.check_cache | 1 + .../CMakeFiles/feature_tests.bin | Bin 0 -> 12520 bytes .../CMakeFiles/feature_tests.c | 34 + .../CMakeFiles/feature_tests.cxx | 405 ++++++++++++ .../CMakeFiles/progress.marks | 1 + week04/cmake-build-debug/Makefile | 178 +++++ week04/cmake-build-debug/cmake_install.cmake | 49 ++ week04/cmake-build-debug/week02.cbp | 94 +++ 84 files changed, 5464 insertions(+), 2 deletions(-) create mode 100644 week04/102_levelOrder.cpp create mode 100644 week04/122_maxProfit.cpp create mode 100644 week04/126_findLadders.cpp create mode 100644 week04/127_ladderLength.cpp create mode 100644 week04/153_findMin.cpp create mode 100644 week04/200_numIslands.cpp create mode 100644 week04/22_generrateParenthesis.cpp create mode 100644 week04/33_search.cpp create mode 100644 week04/367_isPerefectSquare.cpp create mode 100644 week04/433_minMutation.cpp create mode 100644 week04/455_findContentChildren.cpp create mode 100644 week04/45_jump.cpp create mode 100644 week04/515_largestValue.cpp create mode 100644 week04/529_updateBoard.cpp create mode 100644 week04/55_canJump.cpp create mode 100644 week04/69_mySqrt.cpp create mode 100644 week04/74_searchMatrix.cpp create mode 100644 week04/860_lemonadeChange.cpp create mode 100644 week04/874_robotSim.cpp create mode 100644 week04/CMakeLists.txt create mode 100755 week04/cmake-build-debug/127_ladderLength create mode 100755 week04/cmake-build-debug/22_generrateParenthesis create mode 100644 week04/cmake-build-debug/CMakeCache.txt create mode 100644 week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/127_ladderLength.cpp.o create mode 100644 week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/CXX.includecache create mode 100644 week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/DependInfo.cmake create mode 100644 week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/build.make create mode 100644 week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/cmake_clean.cmake create mode 100644 week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/depend.internal create mode 100644 week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/depend.make create mode 100644 week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/flags.make create mode 100644 week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/link.txt create mode 100644 week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/progress.make create mode 100644 week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/22_generrateParenthesis.cpp.o create mode 100644 week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/CXX.includecache create mode 100644 week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/DependInfo.cmake create mode 100644 week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/build.make create mode 100644 week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/cmake_clean.cmake create mode 100644 week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/depend.internal create mode 100644 week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/depend.make create mode 100644 week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/flags.make create mode 100644 week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/link.txt create mode 100644 week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/progress.make create mode 100755 week04/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake create mode 100755 week04/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake create mode 100755 week04/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin create mode 100755 week04/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin create mode 100755 week04/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake create mode 100644 week04/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c create mode 100755 week04/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out create mode 100644 week04/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100755 week04/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out create mode 100644 week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/DependInfo.cmake create mode 100644 week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/build.make create mode 100644 week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/cmake_clean.cmake create mode 100644 week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/depend.make create mode 100644 week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/flags.make create mode 100644 week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/link.txt create mode 100644 week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/progress.make create mode 100644 week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/DependInfo.cmake create mode 100644 week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/build.make create mode 100644 week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/cmake_clean.cmake create mode 100644 week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/depend.make create mode 100644 week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/flags.make create mode 100644 week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/link.txt create mode 100644 week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/progress.make create mode 100644 week04/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 week04/cmake-build-debug/CMakeFiles/CMakeOutput.log create mode 100644 week04/cmake-build-debug/CMakeFiles/Makefile.cmake create mode 100644 week04/cmake-build-debug/CMakeFiles/Makefile2 create mode 100644 week04/cmake-build-debug/CMakeFiles/TargetDirectories.txt create mode 100644 week04/cmake-build-debug/CMakeFiles/clion-environment.txt create mode 100644 week04/cmake-build-debug/CMakeFiles/clion-log.txt create mode 100644 week04/cmake-build-debug/CMakeFiles/cmake.check_cache create mode 100755 week04/cmake-build-debug/CMakeFiles/feature_tests.bin create mode 100644 week04/cmake-build-debug/CMakeFiles/feature_tests.c create mode 100644 week04/cmake-build-debug/CMakeFiles/feature_tests.cxx create mode 100644 week04/cmake-build-debug/CMakeFiles/progress.marks create mode 100644 week04/cmake-build-debug/Makefile create mode 100644 week04/cmake-build-debug/cmake_install.cmake create mode 100644 week04/cmake-build-debug/week02.cbp diff --git a/week03/236_lowestCommonAncestor.cpp b/week03/236_lowestCommonAncestor.cpp index 461720f8..08a0f2e9 100644 --- a/week03/236_lowestCommonAncestor.cpp +++ b/week03/236_lowestCommonAncestor.cpp @@ -5,7 +5,7 @@ #include <iostream> - Definition for a binary tree node. +// Definition for a binary tree node. struct TreeNode { int val; TreeNode *left; diff --git a/week03/55_canJump.cpp b/week03/55_canJump.cpp index ce96f0ed..ad40472b 100644 --- a/week03/55_canJump.cpp +++ b/week03/55_canJump.cpp @@ -5,6 +5,24 @@ //超时了 class Solution { public: +//------------------------老师的模板----------------------- + bool canJump(vector<int>& nums) { + if(nums == NULL) return false; + int endReachable = nums.size() - 1; + + for(int i = nums.size() - 1; i >= 0; i--) { + if(nums[i] + i >= endReachable){ + endReachable = i; + } + } + return endReachable == 0; + + + } + + + +//------------------------自己写的------------------------- bool canJump(vector<int>& nums) { bool res = false; @@ -37,6 +55,8 @@ class Solution { } }; + +//--------------------leetcode上的题解--------------------------- //贪心算法 class Solution { public: diff --git a/week04/102_levelOrder.cpp b/week04/102_levelOrder.cpp new file mode 100644 index 00000000..fe990d13 --- /dev/null +++ b/week04/102_levelOrder.cpp @@ -0,0 +1,81 @@ +// +// Created by lewang on 11/10/20. +// + +//参考模板 +#include <iostream> +#include <vector> +#include <queue> +#include <map> +struct TreeNode { + int val; + TreeNode *left; + TreeNode *right; + TreeNode(int x) : val(x), left(NULL), right(NULL) {} + }; + +class Solution { +public: + // stack<vector<int>> temp; + + vector<vector<int>> levelOrder(TreeNode* root) { + vector<vector<int>> res; + queue<TreeNode*> que; + //把当前结点放到队列中 + que.push(root); + //只要队列不为空就一直循环 + while(que.size()!=0) { + int size = que.size(); + //为了满足输出要求,每层一个list + vector<int> level; + //size是当前队列中有的结点数,也即需要到同一个list的一层的所有结点 + while(size--) { + //从队列中取最上面的, + TreeNode* cur = que.front(); + que.pop(); + //只要取出来的cur不为空,才进行下去 + if(!cur) { + continue; + } + //把当前结点的存的值放到当前层的list中 + level.push_back(cur->val); + //把这个结点对应的左,右结点放到队列后 + que.push(cur->left); + que.push(cur->right); + } + //一层循环完后把当前的list放进最后返回的容器中 + if(level.size()!=0){ + res.push_back(level); + } + } + return res; + } + //参照模板写一个 ---> 不能生搬硬套模板 + vector<vector<int> levelOrder2(TreeNode* root) { + vector<vector<int>> res; + map<int,int> visited; + + queue<TreeNode*> que; + que.push(root); + + //只要队列不为空就一直循环 + while(!que.empty()){ + vector<int> ans; + TreeNode* node = que.top(); + que.pop(); + //如果这个结点访问过了就跳过 + if(visited.count(node->val)) continue; + //如果没有,就把其对应位置设成1,标记成访问过了 + visited[node->val] = 1; + //为了满足输入现将一层的放在一个结果 + ans.push_back(node->val); + + for(int i = 0; ) + + } + + + return res; + + } +}; \ No newline at end of file diff --git a/week04/122_maxProfit.cpp b/week04/122_maxProfit.cpp new file mode 100644 index 00000000..9cd5f5e1 --- /dev/null +++ b/week04/122_maxProfit.cpp @@ -0,0 +1,18 @@ +// +// Created by lewang on 11/15/20. +// + +class Solution { +public: + int maxProfit(vector<int>& prices) { + //vector<int> diff;// (prices.size()-1,0); + int sum = 0; + for(int i = 0; i< int(prices.size()-1); i++) { + int diff = prices[i+1] - prices[i]; + if(diff > 0) { + sum += diff; + } + } + return sum; + } +}; \ No newline at end of file diff --git a/week04/126_findLadders.cpp b/week04/126_findLadders.cpp new file mode 100644 index 00000000..3d8e7965 --- /dev/null +++ b/week04/126_findLadders.cpp @@ -0,0 +1,83 @@ +// +// Created by lewang on 11/14/20. +// + + +#include <iostream> +#include <vector> +#include <string> +#include <cstring> +#include <unordered_set> +#include <unordered_map> +#include <climits> +#include <queue> +using namespace std; + +clas Solution { +private: + unordered_map<string,int> dict; + vector<string> idWord; + vector<vector<int>> edges; +public: + vector<vector<string>> findLadders(string beginWord, string endWord, vector<string> wordList){ + int id = 0; + //把wordList中的单词放到哈希表dict中,方便搜索单词 + for(const string& word :wordList) { + if(!dict.count(word)) { + dict[word] = id++; + idWord.push_back(word); + } + } + //如果表中没有endword直接返回空列表 + if(dict.count(endWord)) { + return {}; + } + //如果dict中有beginword,把beginword放到idword中 + + if(!dict.count(beginWord)){ + dict[beginWord] = id++; + idWord.push_back(beginWord); + } + + edges.resize(idWord.size()); + for(int i = 0; i < idword.size(); i++) { + for(int j = i + 1; j < idWord.size(); j++) { + if( transformCheck(idWord[i],idWord[j])) { + edges[i].push_back(j); + edges[j].push_back(i); + } + } + } + + const int dest = wordID[enWord]; + vector<vector<string>> res; + queue<vector<int>> q; + vector<int> cost(id,INT_MAX); + q.push(vector<int> {wordID[beginWord]}); + cost[wordID[beginWord]] = 0; + + while(!q.empty()) { + vector<int> now = q.front(); + q.pop(); + int last = now.back(); + if(last == dest) { + vector<string> tmp; + for(int index : now) { + tmp.push_back(idWord[index]); + } + res.push_back(tmp); + }else { + for (int i = 0; i < edges[last].size(); i++) { + int to = edges[last][i]; + if(cost[last] + 1 <= cost[to]) { + cost[to] = cost[last] + 1; + vector<int> tmp(now); + tmp.push_back(to); + q.push(tmp); + } + } + } + } + return res; + } +}; \ No newline at end of file diff --git a/week04/127_ladderLength.cpp b/week04/127_ladderLength.cpp new file mode 100644 index 00000000..43655d52 --- /dev/null +++ b/week04/127_ladderLength.cpp @@ -0,0 +1,212 @@ +// +// Created by lewang on 11/14/20. +// + + +#include <iostream> +#include <vector> +#include <string> +#include <cstring> +#include <unordered_set> +#include <unordered_map> +#include <climits> +#include <queue> +#include <bitset> +using namespace std; + +//思路 +//广度优先搜索 +class Solution { +public: + int ladderLength1(string beginWord, string endWord, vector<string>& wordList) { + //把wordlist装到map里方便查找有没有需要的单词在 + unordered_set<string> dict(wordList.begin(),wordList.end()); + //如果dict中没有endword不可能变成功,直接返回0 + if(!dict.count(endWord)) return 0; + + //从endword开始往前找到和beginWord相差一个单词就成功了 + int step; + + + + return step; + } + +//---------------参考官方题解--广度优先搜索+优化建图------------ +public: + unordered_map<string,int> wordID; + vector<vector<int>> edge; + int nodeNum = 0; + //优化建图!!!!! + void addWord(string& word) { + if(!wordID.count(word)) { + //如果wordID中有这个索引 其对应的值就+1 + wordID[word] = nodeNum++; + edge.emplace_back();//确保edge和wordID一样长?? + } + } + + void addEdge(string& word) { + addWord(word); + int id1 = wordID[word]; + for(char& it : word) { + char tmp = it; + it = '*';//构建图索引线,*it,h*t,hi* !!! + addWord(word);// + int id2 = wordID[word]; + edge[id1].push_back(id2); + edge[id2].push_back(id1); + it = tmp; + } + + } + + int ladderLength(string beginWord, string endWord, vector<string>& wordList) { + for (string& word : wordList) { + addEdge(word); + } + addEdge(beginWord); + if(!wordID.count(endWord)) { + return 0; + } + + vector<int> dis(nodeNum, INT_MAX); + int beginID = wordID[beginWord], endID = wordID[endWord]; + dis[beginID] = 0; + + queue<int> que;//广度优先搜索的套路-->queue + que.push(beginID); + while(!que.empty()) { + int x = que.front(); + que.pop(); + if(x == endID) { + return dis[endID] /2 + 1;//因为添加了虚拟结点,所以得到的juice为实际最短路劲的长度两倍.所以我们应当返回距离的一半再加一的结果. + } + for (int& it : edge[x]) { + if(dis[it] == INT_MAX) { + dis[it] = dis[x] + 1; + que.push(it); + } + } + } + return 0; + } +/* + * Success: + * Runtime:180 ms, faster than 59.54% of C++ online submissions. + * Memory Usage:31.8 MB, less than 25.47% of C++ online submissions. + */ +//---------------参考国际版的BFS--------------------- +//从beginword开始搜索 + +public: + int ladderLength2(string beginWord, string endWord, vector<string>& wordList) { + unordered_set<string> dict(wordList.begin(),wordList.end()); + queue<string> todo; + todo.push(beginWord); + int ladder = 1; + while(!todo.empty()) { + int n = todo.size(); + for(int i = 0; i < n; i++) { + string word = todo.front(); + todo.pop(); + if(word == endWord) { + return ladder; + } + dict.erase(word); + for(int j = 0; j < word.size(); j++) { + char c = word[j]; + for(int k = 0; k < 26; k++) { + word[j] = 'a' + k;//没有优化建图,直接搜索替换其中一个为26个小写字母中的一个后的单词在不在字典里 + if(dict.find(word) != dict.end()) { + todo.push(word); + } + } + word[j] = c; + } + } + ladder++; + } + return 0; + } + //Time Limit Exceeded + +//BFS 从endWord开始找 +public: + int ladderLength3(string beginWord, string endWord, vector<string>& wordList) { + unordered_set<string> dict(wordList.begin(),wordList.end()), head, tail,*phead,*ptail; + if(!dict.count(endWord)) return 0; + + head.insert(beginWord); + tail.insert(endWord); + int ladder = 2;//???因为题目有说明endword和beginword不一样,那最少也需要两步 + while(!head.empty() && !tail.empty()) { + //用上phead和ptail是为了确保搜索的是较短的set,以实现节省时间,和那个最小基因变化的题一样的 + if(head.size() < tail.size()) { + phead = &head; + ptail = &tail; + }else { + phead = &tail; + ptail = &head; + } + unordered_set<string> temp; + + for(auto it = phead -> begin(); it != phead -> end(); it++) { + string word = *it; + for(int i= 0; i< word.size(); i++) { + char t = word[i]; + for(int j = 0; j < 26; j++) { + word[i] = 'a' + j; + if(ptail->count(word)) { + //变换后等于endword直接返回ladder + return ladder; + } + //不等于endWord但是在wordList里面有 + if(dict.count(word)){ + //把这个中间词放佛啊temp中 + temp.insert(word); + //从字典中抹去这个词 + dict.erase(word); + } + } + //将当前的word对应的字符变回原来的word; + word[i] = t; + } + } + ladder++; + //把下一个要搜索的词和当前的phead中的词交换 + phead -> swap(temp); + } + return 0; + } +//时间复杂度O(nx26)?? +//空间复杂度4个set最长为wordlist的size + +//{"cog"} -> {"dog","log"} -> {"dot", "lot"} -> {"hot"} +/* + * Runtime:40 ms, faster than 98.05% of C++ online submissions. + * Memory Usage:10.9 MB, less than 80.63% of C++ online submissions. + */ +}; + + + +int main() { + string a = "dog", b = "aog"; + cout<< a.compare(b)<<endl; + + cout << memcmp(a.data(),b.data(),a.size()); + cout<<endl; + int i = 1<<20; + bitset<32> bi(i); + cout<<bi<<endl; + cout<<i; + int n =6, m =7,x=9,y=10; + cout<<endl; + int t = n==m ? x+9 :y+9; + + cout<<t<<endl; + vector<vector<int>> numM(2,vector<int>(3)); + for (auto a : numM[0]) cout<<a<<","; + return 0; +} diff --git a/week04/153_findMin.cpp b/week04/153_findMin.cpp new file mode 100644 index 00000000..ffb13c3c --- /dev/null +++ b/week04/153_findMin.cpp @@ -0,0 +1,4 @@ +// +// Created by lewang on 11/15/20. +// + diff --git a/week04/200_numIslands.cpp b/week04/200_numIslands.cpp new file mode 100644 index 00000000..1709bfbb --- /dev/null +++ b/week04/200_numIslands.cpp @@ -0,0 +1,107 @@ +// +// Created by lewang on 11/14/20. +// + +class Solution { +public: + int numIslands(vector<vector<char>>& grid) { + if(!grid.size()) return 0; + int nr = grid.size(); + int nc = grid[0].size(); + + int IslandNum = 0; + for(int r = 0; r < nr; r++) { + for( int c = 0; c < nc; c++) { + if(grid[r][c] == '1') { + ++IslandNum; + dfs(grid,r,c); + } + }; + } + return IslandNum; + } + +private: + void dfs(vector<vector<char>>& grid, int r, int c) { + int nr = grid.size(); + int nc = grid[0].size(); + //注意遍历过的点要设成'0' 防止重复遍历,死循环 + grid[r][c] = '0'; + + if( r - 1 >= 0 && grid[r-1][c] == '1') dfs(grid,r-1,c); + if( r + 1 < nr && grid[r+1][c] == '1') dfs(grid,r+1,c); + if( c - 1 >= 0 && grid[r][c-1] == '1') dfs(grid,r,c-1); + if( c + 1 <nc && grid[r][c+1] == '1') dfs(grid,r,c+1); + } +//Success: +//Runtime:32 ms, faster than 75.89% of C++ online submissions. +//Memory Usage:9.7 MB, less than 44.75% of C++ online submissions. +//-----------------参考国际网的 BFS--------------------------- +public: + int numIslands2(vector<vector<char>>& grid) { + int m = grid.size(), n=m ? grid[0].size :0, island = 0; offsets[] = {0,1,0,-1,0}; + //c++ 的条件运算符,Exp1?Exp2:Exp3, 如果Exp1是真,计算Exp2,否则计算Exp3 + for(int i = 0; i < m; i++) { + for(int j = 0; j < n; j++) { + if(grid[i][j] == '1'){ + island++; + //遍历过的设为0 + grid[i][j] = '0'; + queue<pair<int,int>> todo; + todo.push({i,j}); + while(!todo.empty()) { + pair<int,int> p = todo.front(); + todo.pop(); + for(int k = 0; k < 4; k++){ + //p.first 是 i,行序号,p.second 是j, 列序号 + //k=0,r=r+0,c=c+1 -> 右 + //k=1,r=r+1,c=c+0 -> 下 + //k=2,r=r+0,c=c-1 -> 左 + //k=3,r=r-1,c=c+0 -> 上 + int r = p.first + offsets[k], c = p.second + offset[k+1]; + if(r>=0 && r<m && c >= 0 && c < m && grid[r][c] == '1') { + grid[r][c] = '0'; + todo.push({r,c}); + } + } + } + } + } + } + return islands; + } +//info +//Success: +//Runtime:28 ms, faster than 95.08% of C++ online submissions. +//Memory Usage:10.2 MB, less than 15.89% of C++ online submissions. + //-------------同上作者的 DFS ------------------ +public: + int numIslands3(vector<vector<char>>& grid) { + int m = grid.size(), n = m?grid[0].size() :0, island = 0; + for(int i = 0; i < m; i++) { + for(int j = 0; j < n; j++) { + if(grid[i][j] == '1'){ + island ++; + eraseIslands(grid,i,j); + } + } + } + + return island; + } +private: + void eraseIslands(vector<vector<char>>& grid, int i, int j) { + int m = grid.size(), n = grid[0].size(); + if(i < 0 || i == m || j < 0|| j ==n || grid[i][j] == '0') { + return ; + } + grid[i][j] = '0'; + eraseIslands(grid,i-1,j); + eraseIslands(grid,i,j-1); + eraseIslands(grid,i+1,j); + eraseIslands(grid,i,j+1); + + } + + +}; diff --git a/week04/22_generrateParenthesis.cpp b/week04/22_generrateParenthesis.cpp new file mode 100644 index 00000000..3bdab0c1 --- /dev/null +++ b/week04/22_generrateParenthesis.cpp @@ -0,0 +1,55 @@ +// +// Created by lewang on 11/12/20. +// + +//思路 +//暴力递归生成所有的可能然后剔除不合理的,返回正确结果 +//时间复杂度 O(2^2n * n) + + +//广度优先搜索找出所有的排序,然后剔除不合理的,返回正确结果 + +//深度优先搜索 +//时间复杂度 O(4^n/ sqrt(n)),在回溯过程中每个答案需要O(n)的时间复制到答案数组中 +//空间复杂福: O(n) 除了答案数组,我们所需要的空间取决于递归栈的深度,每一层递归函数需要O(1)的空间,最多递归2n层.因此需要空间复杂度为O(n) + + +#include <iostream> +#include <vector> +#include <map> +#include <string> +using namespace std; +class Solution { +public: + vector<string> generateParathesis(int n) { + vector<string> res; + if(n==0) return res; + string s; + dfs(n,res,s,0,0); + return res; + } + +private: + void dfs(int n,vector<string> &res,string s, int left, int right) { + if(left == n && right == n) { + res.push_back(s); + } + if(left < n) { + dfs(n,res,s+'(',left+1,right); + } + if(left > right){ + dfs(n,res,s+')',left,right+1); + } + } + + +}; + +int main(){ + Solution test; + vector<string> res; + res = test.generateParathesis(3); + for(auto s: res) cout<<s<<endl; + return 0; +} + diff --git a/week04/33_search.cpp b/week04/33_search.cpp new file mode 100644 index 00000000..ffb13c3c --- /dev/null +++ b/week04/33_search.cpp @@ -0,0 +1,4 @@ +// +// Created by lewang on 11/15/20. +// + diff --git a/week04/367_isPerefectSquare.cpp b/week04/367_isPerefectSquare.cpp new file mode 100644 index 00000000..98a239c2 --- /dev/null +++ b/week04/367_isPerefectSquare.cpp @@ -0,0 +1,66 @@ + +// +// Created by lewang on 11/15/20. +// + +// +// Created by lewang on 11/7/20. +// + +//偷懒用api中de函数 + +class Solution{ +public: + bool isPerfectSquare(int num) { + double k = sqrt(num); + if(k != int(k){ + return false; + }else{ + return true; + } + } +}; + +//正经写 +//二分查找 +class Solution { +public: + bool isPerfectSquare(int num) { + if(num < 0) return false; + if(num < 2) return true; + + int left = 2,right = num/2; + + while(left <= right){ + //这里注意是x = (left + right)/2 + long x = (left + right)/2; + long long guess = x * x; + if(guess == num) return true; + if(guess > num){ + right = x - 1; + }else{ + left = x + 1; + } + + + } + return false; + + } +}; + +//梯度下降法 +bool isPerfectSquare(int num) { + if(num < 0) return false; + if(num < 2) return true; + + long long x = num/2;//注意这里写int会溢出 + + while(x*x > num){ + x = (x + num/x)/2; + + } + return x*x ==num; + +} + diff --git a/week04/433_minMutation.cpp b/week04/433_minMutation.cpp new file mode 100644 index 00000000..ac794f89 --- /dev/null +++ b/week04/433_minMutation.cpp @@ -0,0 +1,54 @@ +// +// Created by lewang on 11/10/20. +// +#include <iostream> +#include <vector> +#include <string> +#include <set> +using namespace std; + +class Solution { +public: + int minMutation(string start, string end, vector<string>& bank) { + unordered_set<string> dict(bank.begin(),bank.end()); + if(!dict.count(end)) return -1; + unordered_set<string> bset, eset, *set1,*set2; + bset.insert(start),eset.insert(end); + + int step = 0, n = start.size(); + + while(!bset.empty() && !eset.empty()) { + if(bset.size() <= eset.size()) { + set1 = &bset,set2 = &eset; + }else{ + set2 = &bset, set1 = &eset; + } + unordered_set<string> tmp; + step ++; + for(auto itr = set1->begin();itr != set1->end(); ++itr) { + for(int i = 0; i < n; ++i) { + string dna = *itr; + for(auto g : string("ATGC")) { + dna[i] = g; + if(set2->count(dna)) return step; + if(dict.count(dna)) { + tmp.insert(dna); + dict.erase(dna); + } + } + } + } + *set1 = tmp; + } + return -1; + } +}; + +int main(){ + Solution test; + string s1 = "AATTUGG"; + string s2 = "AATAUGG" + vector<string> bank {"AATAUGG"}; + int res = test.minMutation(s1,s2,bank); + return 0 +} \ No newline at end of file diff --git a/week04/455_findContentChildren.cpp b/week04/455_findContentChildren.cpp new file mode 100644 index 00000000..da584b72 --- /dev/null +++ b/week04/455_findContentChildren.cpp @@ -0,0 +1,24 @@ +// +// Created by lewang on 11/15/20. +// + +class Solution { +public: + int findContentChildren(vector<int>& g, vector<int>& s) { + sort(g.begin(),g.end()); + sort(s.begin(),s.end()); + //if(s.back() < g.front()) return 0; + //int len = min(g.size(),s.size()); + // if(s.front() > g.back()) return len; + int res = 0; + int j = s.size() - 1; + for(int i = g.size() - 1; i >= 0 ; i--) { + if(j >= 0 && s[j] >= g[i]) { + res ++; + j--; + } + } + return res; + } +}; +//先满足胃口小的 \ No newline at end of file diff --git a/week04/45_jump.cpp b/week04/45_jump.cpp new file mode 100644 index 00000000..ffb13c3c --- /dev/null +++ b/week04/45_jump.cpp @@ -0,0 +1,4 @@ +// +// Created by lewang on 11/15/20. +// + diff --git a/week04/515_largestValue.cpp b/week04/515_largestValue.cpp new file mode 100644 index 00000000..123e1bc2 --- /dev/null +++ b/week04/515_largestValue.cpp @@ -0,0 +1,171 @@ +// +// Created by lewang on 11/13/20. +// + +#include <iostream> +#include <vector> +#include<map> +#include <queue> +#include <limits.h> + +using namespace std; + +struct TreeNode { + int val; + TreeNode *left; + TreeNode *right; + TreeNode() : val(0), left(nullptr), right(nullptr) {}; + TreeNode(int x) : val(x), left(nullptr), right(nullptr) {}; + TreeNode(int x, TreeNode *left, TreeNode *right): val(x), left(left), right(right) {}; + +}; +//思路 +//BFS +//----------------自己写的,有错误---------------------------- +class Solution { +public: + vector<int> largestValues(TreeNode* root) { + if(!root) return {}; + vector<int> res; + res.push_back(root->val); + TreeNode* left = root->left; + TreeNode* right = root->right; + int levelmax; + BFS(root,res,levelmax); + + + + } +private: + void BFS(TreeNode* root,vector<int> &res,int &levelmax) { + //map<int, int> visited; + if(!root) return; + int temp; + levelmax = INT_MIN; + temp = root->val; + if(temp > levelmax){ + levelmax = temp; + } + + queue<TreeNode*> queueNode; + queueNode.push(root); + + while(!queueNode.empty()) { + TreeNode* node = queueNode.front(); + queueNode.pop(); + BFS(node,res,levelmax); + + res.push_back(levelmax); + TreeNode* left = node->left; + if(left == nullptr) return; + queueNode.push(left); + + TreeNode* right = node->right; + if(right == nullptr) return; + queueNode.push(right); + //if(visited.count(node->val)) continue; + //visited[root->val] = 1; + } + } +//---------------------参考题解 BFS ------------------- +public: + vector<int> largestValues2(TreeNode* root){ + vector<int> ans; + if(!root) return ans; + queue<TreeNode*> q; + q.push(root); + while(!q.empty()) { + int len = (int)q.size(); + int res = INT_MIN; + q.pop(); + while(len--) { + auto x = q.front(); + q.pop(); + res = max(res,x->val); + if(x->left) q.push(x->left); + if(x->right) q.push(x->right); + } + ans.push_back(res); + } + return ans; + + } + //******************************************************8 +//Compile Error: +//Line 29: Char 34: runtime error: member access within misaligned address 0xbebebebebebebebe for type 'TreeNode', which requires 8 byte alignment (solution.cpp) +//0xbebebebebebebebe: note: pointer points here +//<memory cannot be printed> +//SUMMARY: UndefinedBehaviorSanitizer: undefined-behavior prog_joined.cpp:38:34 +//Your input:[1,3,2,5,3,null,9] +//------------------------end--------------------------- + +//---------------------参考2--DFS--------------------------- +private: + vector<int> ans; + void preorder(TreeNode* root, int height) { + if(!root) return; + if(ans.size() < height) { + ans.push_back(root->val); + }else { + ans[height - 1] = max(ans[height - 1], root->val); + } + preorder(root->left, height + 1); + preorder(root->right, height +1); + } +public: + vector<int> largestValue3(TreeNode* root) { + preorder(root, 1); + return ans; + } +//----------------end--------------------------- +/* +* Success: +* Runtime:24 ms, faster than 49.02% of C++ online submissions. +* Memory Usage:22 MB, less than 40.89% of C++ online submissions. +*/ +//-----------------参考3-BFS----------------------- +public: + vector<int> BDF(TreeNode* root) { + if(!root) return {}; + queue<TreeNode*> q; + queue<int> level; + + q.push(root); + level.push(0); + vector<int> mac; + + int m = -1; + while(!q.empty()) { + TreeNode*r = q.front(); + q.pop(); + int l = level.front(); + level.pop(); + if(r->right) { + q.push(r->left); + level.push(l+1); + } + if(r->right){ + q.push(r->right); + level.push(l+1); + } + if(l > m) { + m=1; + mac.push_back(r->val); + }else { + mac[l] = max(mac[l],r->val); + } + } + return mac; + } +}; + + + + +int main(){ + TreeNode* root; + Solution test; + vector<int> res; + res = test.largestValues(root); + return 0; +} \ No newline at end of file diff --git a/week04/529_updateBoard.cpp b/week04/529_updateBoard.cpp new file mode 100644 index 00000000..c37b7efe --- /dev/null +++ b/week04/529_updateBoard.cpp @@ -0,0 +1,201 @@ +// +// Created by lewang on 11/14/20. +// +#include <iostream> +#include <vector> +#include <string> + +using namespace std; + +//-----------dfs 自己写的------------------有问题!! + +class Solution { +public: + vector<vector<char>> updateBoard(vector<vector<char>>& board, vector<int>& click) { + int nr = board.size(); + int nc = board[0].size(); + cout<<board.size()<<endl; + cout<<board[0].size()<<endl; + // vector<vector<char>> newBoard (board); + vector<vector<int>> numM(nr,vector<int>(nc)); + cout<<numM.size()<<endl; + cout<<numM[0].size()<<endl; + cout<<click.size()<<endl; + int r = click[0]; + int c = click[1]; + cout<<r<<","<<c<<endl; + if ( r > nr || c > nc || r < 0|| c < 0) return board; + if(board[r][c] == 'M') { + board[r][c] ='X'; + return board; + } + dfs(board,r,c); + + //想用数字8~0,的二位一个矩阵标记8连通中有有几个地雷, + //但是实际操作过程中有点问题等待解决 + for(int i = 0; i < nr; i++) { + for(int j = 0; j < nc; j++) { + if(board[i][j] == 'M') { + if(r+1 <nr) { + numM[r+1][c] ++; + if(c+1 < nc){ + cout<<"test"<<endl; + numM[r+1][c+1] +=1; + } + if(c-1>=0){ + numM[r+1][c-1] +=1; + } + } + if(r - 1 >= 0) { + numM[r+1][c] +=1; + if(c+1 < nc){ + numM[r+1][c+1] +=1; + } + if(c-1>=0){ + numM[r+1][c-1] +=1; + } + } + if(c-1 >= 0) numM[r][c]+=1; + if(c+1<nc) numM[r][c+1]+=1; + + } + } + } + + for(int i = 0; i < nr; i++) { + for(int j = 0; j < nc; j++) { + if(numM[i][j] != 0) { + cout<<numM[i][j]<<","; + board[i][j] = (char)numM[i][j]; + } + + } + } + + return board; + } + +private: + void dfs(vector<vector<char>>& board, int r,int c) { + int nr = board.size(); + int nc = board[0].size(); + //用来记录其8连通中有几个地雷 + int numMine = 0; + + + //遍历过得要标记 + if(board[r][c] == 'E') { + board[r][c] = 'B'; + } + if(board[r][c] == 'M'){ +// // board[r][c] = 'X'; +// if(r+1 <nr) { +// numM[r+1][c] ++; +// if(c+1 < nc){ +// cout<<"test"<<endl; +// numM[r+1][c+1] +=1; +// } +// if(c-1>=0){ +// numM[r+1][c-1] +=1; +// } +// } +// if(r - 1 >= 0) { +// numM[r+1][c] +=1; +// if(c+1 < nc){ +// numM[r+1][c+1] +=1; +// } +// if(c-1>=0){ +// numM[r+1][c-1] +=1; +// } +// } +// if(c-1 >= 0) numM[r][c]+=1; +// if(c+1<nc) numM[r][c+1]+=1; + return; + } + + if(r + 1 < nr && board[r + 1][c] == 'E') { + dfs(board,r+1,c); //下 + if(c + 1 < nc && board[r+1][c+1] == 'E'){ + dfs(board,r+1,c+1);//右下 + } + if(c - 1 >= 0 && board[r+1][c-1] == 'E'){ + dfs(board,r+1,c-1);//左下 + } + } + if(r - 1 >= 0 && board[r - 1][c] == 'E') { + dfs(board,r-1,c); //上 + if(c - 1 >= 0 && board[r-1][c-1] == 'E'){ + dfs(board,r-1,c-1);//左上 + } + if(c + 1 < nc && board[r-1][c+1] == 'E'){ + dfs(board,r-1,c+1);//左下 + } + } + + if(c - 1 >= 0 && board[r][c-1] == 'E') dfs(board,r,c-1);//左 + if(c + 1 < nc && board[r][c+1] == 'E') dfs(board,r,c+1);//右 + + } +//-----------参考中文官方的dfs+模拟------------------------------- +public: + int dir_x[8] = {0, 1, 0, -1, 1, 1,-1, -1};//行变换 + int dir_y[8] = {1, 0, -1, 0, 1, -1, 1, -1};//列变换 + // 右, 下, 左,上,右下,左下,右上,左下 + //这种offset的写法在岛屿计数中也是用过了,记住在矩阵操作中可以简化代码! + void searchM(vector<vector<char>>& board, int x, int y) { + int cnt = 0; //用来标记该位置8连接上有几个地雷 + int nr = (int)board.size(); + int nc = (int)board[0].size(); + for(int i = 0; i< 8; ++i) { + //遍历(x,y)的8连通位置 + int tx = x+dir_x[i]; + int ty = y + dir_y[i]; + if(tx < 0 || tx >= nr || ty < 0 || ty >= nc) { + continue; + } + //不用判断M, 因为如果有M的话游戏已经结束了?? + //如果周边有地雷其加一 + cnt += board[tx][ty] == 'M'; + } + if(cnt > 0) { + //如果(x,y)周边有地雷,则棋盘上对应位置显示其附近的地雷数量 + board[x][y] = (char)cnt + '0'; + }else { + //否则就显示'B',来表示这个格子周围没有地雷 + board[x][y] = 'B'; + //如果这个 格子是"B"要继续遍历其周围 + for (int i = 0; i < 8; ++i) { + int tx = x +dir_x[i]; + int ty = y + dir_y[i]; + if(tx < 0 ||tx >= nr || ty < 0 || ty >= nc){ + continue; + } + searchM(board,tx,ty); + + } + } + } + + vector<vector<char>> updateBoard2(vector<vector<char>>& board, vector<int>& click) { + int x = click[0], y =click[1]; + if(board[x][y] == 'M'){ + board[x][y] = 'X'; + }else { + searchM(board,x,y); + } + return board; + } + + //时间复杂度O(nm), 其中n,m分别是board的行数和列数,最坏情况下遍历整个面板 + //空间复杂度O(nm), 空间复杂度取决于递归的栈深度,而递归栈深度在最坏情况下有可能遍历整个面板n*m + + + +}; + + +int main() { + Solution test; + vector<vector<< + return 0; +} \ No newline at end of file diff --git a/week04/55_canJump.cpp b/week04/55_canJump.cpp new file mode 100644 index 00000000..18227eee --- /dev/null +++ b/week04/55_canJump.cpp @@ -0,0 +1,81 @@ +// +// Created by lewang on 11/15/20. +// + +// +// Created by lewang on 11/8/20. +// + +//超时了 +class Solution { +public: +//------------------------老师的模板----------------------- + bool canJump(vector<int>& nums) { + if(nums == NULL) return false; + int endReachable = nums.size() - 1; + + for(int i = nums.size() - 1; i >= 0; i--) { + if(nums[i] + i >= endReachable){ + endReachable = i; + } + } + return endReachable == 0; + + + } + + + +//------------------------自己写的------------------------- + bool canJump(vector<int>& nums) { + bool res = false; + + toNext(0, res, nums); + return res; + } + +private: + void toNext(int i, bool& res, vector<int> nums){ + if(i == int(nums.size() -1)){ + res = true; + return; + } + //贪心算法,走当前可以走的最大步数 + + int j = nums[i]; + + while(j>0){ + i = i + j; + if(i>= nums.size()-1 ){ + res = true; + return; + }else if(i<nums.size() && nums[i] != 0){ + toNext(i,res, nums); + } + i = i - j; + j--; + + } + + } +}; + +//--------------------leetcode上的题解--------------------------- +//贪心算法 +class Solution { +public: + bool canJump(vector<int>& nums) { + int n = nums.size(); + int ri ghtmost = 0; + for( int i = 0; i< n; i++) { + if( i <= rightmost) { + rightmost = max(rightmost, i + nums[i]); + if(rightmost >= n-1){ + return true; + } + } + } + return false; + + } +}; diff --git a/week04/69_mySqrt.cpp b/week04/69_mySqrt.cpp new file mode 100644 index 00000000..13995cd2 --- /dev/null +++ b/week04/69_mySqrt.cpp @@ -0,0 +1,29 @@ +// +// Created by lewang on 11/15/20. +// + +//二分查找 +class Solution { +public: + int mySqrt(int x) { + //if(x < 2) return x; + int left = 0; + int right = x; + int ans = -1; + while(left <= right){ + long y = (left + right)/2;//注意这里要是long 和 long long 不然会有溢出的错误 + long long guess = y * y; + if(guess <= x) { + ans = y; + left = y + 1; + }else{ + right = y - 1; + } + + } + return ans; + + } +}; + +//牛顿逼近法` diff --git a/week04/74_searchMatrix.cpp b/week04/74_searchMatrix.cpp new file mode 100644 index 00000000..ffb13c3c --- /dev/null +++ b/week04/74_searchMatrix.cpp @@ -0,0 +1,4 @@ +// +// Created by lewang on 11/15/20. +// + diff --git a/week04/860_lemonadeChange.cpp b/week04/860_lemonadeChange.cpp new file mode 100644 index 00000000..d6c3123f --- /dev/null +++ b/week04/860_lemonadeChange.cpp @@ -0,0 +1,30 @@ +// +// Created by lewang on 11/15/20. +// + +class Solution { +public: + bool lemonadeChange(vector<int>& bills) { + int size = bills.size(); + int five = 0, ten = 0; + for(int i = 0; i < size; i++) { + if(bills[i] == 5) { + five ++; + }else if(bills[i] == 10){ + if(five < 1){ + return false; + } + ten ++; + five --; + }else if(bills[i] == 20){ + if(ten > 0&& five > 0){ + ten --; + five --; + }else if(five > 2){ + five -=3; + }else return false; + } + } + return true; + } +}; diff --git a/week04/874_robotSim.cpp b/week04/874_robotSim.cpp new file mode 100644 index 00000000..ffb13c3c --- /dev/null +++ b/week04/874_robotSim.cpp @@ -0,0 +1,4 @@ +// +// Created by lewang on 11/15/20. +// + diff --git a/week04/CMakeLists.txt b/week04/CMakeLists.txt new file mode 100644 index 00000000..0b71b065 --- /dev/null +++ b/week04/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required (VERSION 2.8.11) +project (week02) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ) +#add_executable (move_zeros lc-283_move-zeros.cpp) +#target_link_libraries (move_zeros LINK_PUBLIC week01) + +add_executable (529_updateBoard 529_updateBoard.cpp) \ No newline at end of file diff --git a/week04/NOTE.md b/week04/NOTE.md index 50de3041..fcfacbda 100644 --- a/week04/NOTE.md +++ b/week04/NOTE.md @@ -1 +1,220 @@ -学习笔记 \ No newline at end of file +学习笔记 +# 第九课 +**深度优先搜索 广度优先搜索** + +遍历搜索 +在树(图)中寻找特定结点 +前 +中 +后 +序遍历 + +每个结点要访问且仅访问一次 + + - 深度优先 + - 广度优先 + - 优先级优先(启发式搜索) + + ```python +def dfs(node): + if node in visited: + # already + return + visited.add(node) + + # process current node + # ... # logic here + dfs(node.left) + dfs(node.right) + +``` + +## dfs模板 + +递归写法 -- 由系统维护一个栈 + +``` +map<int, int> visited; + +void dfs(Node* root) { + //temintor + if(!root) return; + if(visited.count(root->val)) { + //already visited + return; + } + + visited[root->val] = 1 + + //process current node here + //... + for(int i = 0; i < root->children.size(); ++i) { + dfs(root->children[i]); + } + return; +} + +``` + + +非递归写法 -- 自己显式的维护一个栈 +``` +void dfs(Node* root) { + map<int,int> visited; + if(!root) return; + + stack<Node*> stackNode; + stackNode.push(root); + + while(!stackNode.empty()) { + Node* node = stackNode.top() ; + stackNode.pop(); + if(visited.count(node->val)) continue; + visited[node->val] = 1; + + for (int i = node->children.size() - 1; i>= 0; --i) { + stackNode.push(node->children[i]); + } + } +return ; +} + +``` + +## bfs模板 +``` +void bfs(Node* root) { + map<int, int> visited; + if(!root) return; + + queue<Node*> queueNode; + queueNode.pop(); + while(!queueNode.emppty()) { + + Node* node = queueNode.top(); + queueNode.pop(); + + if(visited.count(node->val)) continue; + visited[node->val] = 1; + + for(int i = 0; i < node->children.size(); ++i) { + queueNode.push(node->children[i]); + } + + } + + return; +} +``` + +## Todo +## 实战题目 + +- √ [二叉树的层序遍历](https://leetcode-cn.com/problems/binary-tree-level-order-traversal/#/description)(字节跳动、亚马逊、微软在半年内面试中考过) +- √[最小基因变化](https://leetcode-cn.com/problems/minimum-genetic-mutation/#/description) +- √[括号生成](https://leetcode-cn.com/problems/generate-parentheses/#/description)(字节跳动、亚马逊、Facebook 在半年内面试中考过) +- √[在每个树行中找最大值](https://leetcode-cn.com/problems/find-largest-value-in-each-tree-row/#/description)(微软、亚马逊、Facebook 在半年内面试中考过) + +## 课后作业 + +- √[单词接龙](https://leetcode-cn.com/problems/word-ladder/description/)(亚马逊在半年内面试常考) +- √[单词接龙 II ](https://leetcode-cn.com/problems/word-ladder-ii/description/)(微软、亚马逊、Facebook 在半年内面试中考过) +- √[岛屿数量](https://leetcode-cn.com/problems/number-of-islands/)(近半年内,亚马逊在面试中考查此题达到 350 次) +- [Todo][扫雷游戏](https://leetcode-cn.com/problems/minesweeper/description/)(亚马逊、Facebook 在半年内面试中考过) + +# 第十课 +*贪心算法* + +贪心算法是一种在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择, +从而希望导致结果是全局最好或最优的算法. + +贪心算法与动态规划的不同在于他对每个子问题的结局方案都做出选择,*不能回退*. +动态规划则会保存以前运算的结果,并根据以前的运算结果,并根据以前的结果对当前进行选择,*有回退功能*. + +贪心算法有时不能达到全局最优 + + - 贪心: 当下做出局部最优判断 + - 回溯: 能够回退 + - 动态规划: 最优判断 + 回退 + +贪心法可以解决一些最优化问题. +如:求途中的最小生成树,求哈夫曼编码. +然而对于工程和生活中的问题,贪心法一般不能得到我们所需要的答案. + +一旦一个问题可以通过叹息发来求解,那么贪心法一般是解决这个问题的最好办法. +由于贪心法的高效性以及其所求得的答案比较接近最优结果,贪心法也可以用作辅助计算法或者直接解 +一些要求结果不特别精确的问题. + + +例: 换硬币,特殊情况,小额硬币可以整除大额硬币 + +## 适用贪心算法的场景 +简答地说,问题能够分解成子问题来解决,子问题的最优解能够地推带最终问题的最优解. +这种子问题最优解称为最优子结构. + +贪心算法与动态规划的不同在于它对每个子问题的解决方案都做出选择,不能回退. +动态规划规则则会保存以前的运算结果,并根据以前的结果对当前进行选择,有回退功能. + +## 课后作业 + +- √ [柠檬水找零](https://leetcode-cn.com/problems/lemonade-change/description/)(亚马逊在半年内面试中考过) +- √ [买卖股票的最佳时机 II ](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/description/)(亚马逊、字节跳动、微软在半年内面试中考过) +- √ [分发饼干](https://leetcode-cn.com/problems/assign-cookies/description/)(亚马逊在半年内面试中考过) +- [模拟行走机器人](https://leetcode-cn.com/problems/walking-robot-simulation/description/) +- √ [跳跃游戏](https://leetcode-cn.com/problems/jump-game/) (亚马逊、华为、Facebook 在半年内面试中考过) +- [跳跃游戏 II ](https://leetcode-cn.com/problems/jump-game-ii/)(亚马逊、华为、字节跳动在半年内面试中考过) + + +# 二分查找 +## 二分查找的前提 +1. 目标函数单调性(单调递增或者单调递减) 有序的!!!!!!! +2. 存在上下界(bounded) +3. 能够通过索引访问(index accessible) + +```代码模板 +left,right = 0, len(array) - 1 + +while left <= right: #此处要注意有没有等于号 + mid = (left + right) / 2 + if array[mid] == target + #find the target! + break or return result + elif array[mid] < target: + left = mid + 1 + else: + right = mid -1 +``` +五毒神掌,四步做题 + +1. 分析题目 +2. 想所有解法,讨论分析出最优解 +3. 写代码 +4. 测试&debug + + +例: +1. 暴力:还原->升序 -> 二分 (O(n)但是也可以做到O(logn) 自己思考 *todo*) +2. 二分查找 + + +## 参考链接 + +- [二分查找代码模板](https://shimo.im/docs/xvIIfeEzWYEUdBPD/) +- [Fast InvSqrt() 扩展阅读](https://www.beyond3d.com/content/articles/8/) + +## 实战题目 + +- √ [x 的平方根](https://leetcode-cn.com/problems/sqrtx/)(字节跳动、微软、亚马逊在半年内面试中考过) +- √ [有效的完全平方数](https://leetcode-cn.com/problems/valid-perfect-square/)(亚马逊在半年内面试中考过) + +## 课后作业 + +- [搜索旋转排序数组](https://leetcode-cn.com/problems/search-in-rotated-sorted-array/)(Facebook、字节跳动、亚马逊在半年内面试常考) +- [搜索二维矩阵](https://leetcode-cn.com/problems/search-a-2d-matrix/)(亚马逊、微软、Facebook 在半年内面试中考过) +- [寻找旋转排序数组中的最小值](https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/)(亚马逊、微软、字节跳动在半年内面试中考过) +- 使用二分查找,寻找一个半有序数组 [4, 5, 6, 7, 0, 1, 2] 中间无序的地方 + 说明:同学们可以将自己的思路、代码写在学习总结中 + + + + diff --git a/week04/cmake-build-debug/127_ladderLength b/week04/cmake-build-debug/127_ladderLength new file mode 100755 index 0000000000000000000000000000000000000000..4328779a8b34535bad5e3e787866cf93952f3ad5 GIT binary patch literal 155464 zcmeEvX<!sZ6ZXvRCYyvKfe;7*!g7OLNk||ZLV#@8Kmvh;8(cyXARGzi;1-Yo5+evG zD2R%Rf{1{Kh=^RG!5c3?K}AJP1O+cd<(2QL>YmxzN!C~2@B8unaCB1B{Zv<1S65ee z&&)E5oGD2bRaLaZs`OSUwYaayNsvIm2#dT@lmsPS3B=!4N=wBbxi*{$5;fCnQnW?` zB%c+O%Ee2uX4+WtX;jmYsGr2DBNt|hT#YJ<gEOcc>AGS8CqW&2q0!Z(5RToX6dw-$ zOX^X%ZL-`pSx%!NQh$wV?ISUCW=Pyj6M@m8QR1Z|?W>|}x-J^e$trY{)KjBcxuGaW zdj8!bL^2MO_4%^P99f@6wSMS4J$GW)*v`|lJ5JBdE1uJFPJGvnU1K{H=68zWc9VSK z9WZz}*F<8ZDHyMZH02R~&lAgXF765Y(;9s5uWyvs>bbSW-iQ)lZE=#EAe=LYHfffy z>W7NkTiPF8mT=@q%Y=fQwvQ`h?jUQd<Mse}qyveXN|z%x|L}f`Lmald0(bk>Rh043 zOM{fev}Siam2C4*P!fV%7Bwo(Vrdpq)ACX60A*NgUFC)GO30EL{vlbLmqu0e-`Pz~ za4by-n6f)C<b0_uX8F9O5X}ea)DGuOBFTT-<8MctopDBSj-o_^#>i_Tu{gWp?1r;D z&K@{>;_QX9H_kpd6L9v!Nk<}1C(a~F;Bes_h;tCmRGf4S!I_40D9&`888}Da9EFpP zF*wKamH0Cbgxu;DoNk;GaAx8(9utws!kHs8CrLU5bgH~2GTm^UhwFTqz7@0x=PaDF zW!@anxj5wzQWnbm+d-GeYa-O=Wav9^mf~EA^KP80ani8{=Q^DC;oN}p0i4?LATA!3 ziOryo%In8Kx8Qsn=T@BCa6XAsJD%1q40I>1cjJ6U<~<Ag9L{|>_u~w^zh?i7Fa7@K zZL^!@3}JHER8q_y?(GYjGlx*A>F{n>^4>aEXvVdW3CZQG_M|8zQXc)06a!|%TD zR+@V_ck0J)efiMypS<?Njq@K~u2XB~@c-QDTvRl2Ve&^y3&#fjy!W_!#fGhW-*q&5 z|DONMKDPFaxHsm#op*H2)AK&@-#q-}I}LWPd+@mhH(k$qen5kyDJ|Y_JHE$`H-EVA z?w5Nl&3JuF!zB%RE^;l1Y-eq~e%q9Br@Kr%`(5;oLt{35-+#>Eou9m)7JGQi@aHq~ zkIy~ue4m8vy}JK#^d-NNufI9G_VZ2OEj|+ZL+-Xee;pD#{9+%+mvQGJhc{ZK+*A=1 z)jVrsdh@eeFRto!w{y|i51zjF%&nsuk8hB)$nxvpr4Mc!;yTrH(7hks`Ch`Ucl<WA zZeK^UY2~8_Z+p7tzW8tJ@3tT4)Nb(n3E%y2-?h_|-#@VQxo&rj9&oIV>z1#Q*R2Y; zIbzw53o{p7J^gHG{A;`KpX2;Ieo^eNYvK=&sk3fUUHh4_r`tdJO7f0DUmp2${pXto zy-_%6LfeLyU;J|If{jgjPkMCa+4p7@Eq~(aOSk@U{KmkTzKKQli|=2q-SE*4t9HJB zdB^hB(;LpopBeGljLTnK>Gu1E7bcFM(a-terKei|*88U5sOGimeeqC6`x+ZFPsg09 z+2g(%7ti)q9&VJh=&s7lug8vwfA*=*7B$Yj8a;1l>9Vd<7j0Y+m%cE0xYN;Wbi~6c zk?Y5uu=E@E$&}kZSWx_yquJvJJH;&=p7Pe3R~Og+W9yqgObzURs$J1n_a&Vhd%D@= z*QZ-Yyjw9Td)(>w?-+b6?^^D7OQW*xkET6Y=knG=G)#RSqYy+9!>SzLTB^@a^pU^E zNB*-mMQL6|x}xkres%TIGN8KrM%L={Uxn=I_#gDqu7`cpOS4FIa&Gpa&tpFHx!Xtn zk3QtT;3I#P4?WNNXjfM#?|>}xan^@E*L}$8=%d~>KJ2j0hkUD#{9``kKk7q%e;<0b z@FAxu4B#*u0coobImJHYeBwi&*M0DZ_^6lWU<Xd~G2DlJJ_ciTe%KK8)=?r9$6^PI z3PF45cnFKK=1OhlN1C{CXmhBuiO63?lQ@n{L6nGKk$;^gd>n~_D6iBP`Df(hUt8vX z1!YM7NXbv_q@zK&$bVv(NM{M6MAsDg2c#UR!AFe<k>78CNNa6e-;ml{LzzMg6vNR! zK=6-}?V2dD*5D_7#-)f1P5(^EA4ZE19MOU()*!(@GfiZ4k@-)`{6t#N;DA~9xQq3v zt(=!~v~^0oNFis6w1XypcBsg|lNLxgItilGfg_ThUrRgmm-!zz68YB$i;NmF|E@YB zKSuIPb(M3n-Z>)$W4`2XjRh{r&ob%xPy>-4HBc}@EFS^VPj*PVY4zSK^{hQq@U@ow z=iqN7f2zz+mihgqo<UL{sKH05>|ZA>5^>NPmX3kafBH$gg^6sXn_b8cly-}j`EvtB z{>afHL-WJirF?UL)ov{K(`7%dl5+Z@fuz6Le`@=Q{Qc4n=ng&_Kr!N9V)FmsS|b0u zv4T(2=SkTwUzqy+Tj~For9PVcI61z?$?>Au^AD-dd1)VwKM(rUg+AIoxxLi$Jvr_U z3=$a{e^Y7Cd*%3&ZlN5L{2{VmwElHV`<yb#*(~G3e(9f@-`2yxC;N1f`fL5WSo+%@ z*<aEeN}=p`bNoq_<L(uyPrPi`=Q6+E5bt)allJ*j@=JA<%d%ZjlK&Pd=NlOxHcESH zdZtMI&GsKJ{mL9q=F0vm8zTg3a#l(^Uy*i3aXwa~Bgj4<$d2tL^Y4{$_;cwGn*Vf= z<Ix-ku1J55mjOWIAA|OWApVET_%FpPlcXI2q#e+$d^{ojc7@bOy1Oz(>iGpNcyOS* z`Dhd>^iLcm(xGyGc|qD|g6!CvB>xmCKS%bvCjU*@uFWz-)90WZ7v_1Ym+aq<WqZ3w z`B$WzuCm`XJvYm7mm%%1<^L-Cx3$cN8Tp_MI`zw58ONl$%0_9oM$%8(Nd9<fhrP1j zwfQSo_Dj+@!KmfGFZDOuGeV1#Qa+M={3`AF$5@fp{O2jV&~u&4m))Qo2^9GWvLB^5 z<t{m1%>8vx>OV&6uf^2_S+9A#cbD<sJdPGg{g2BE;Wm7vO8ak-{S_zkD+6eK5~55P zFETKFhyxBx_BW5~9a8=W(oeMUn<U$tB;{-V_9WsV`G5TF4k=iWhb4cWDZV`^>z!}1 z^M2_k=Keh<`***|&nL_NT_DFxKUw=u=tJ$gX|TvxCG-2hG3sJeWk@^7Y^8~eC$(h! z)Z*|>up7xSug4yg<0VGUv++{Uf_j4ABHPtb<{v@5B<GOSvxUsRCgpdQ{L<XYAQ`vK z>x$*@!w{uml{oV@1{%qqD)oVR`4}keV2+1zY=_!PnzRF!(|k;j<N6yZNAv&H(yz?( z)KtiKKp({v_db#Ro-N0Fl$2jA^)bi81nCd4Lj_};<nJKsHTzG#<PRAr7#))TM`?ev z-yW6m@Pv#Hnte`VAkaL%TRKj-92m_I7|EXI_1+cPkLLIpDEo1Bs!&857hgy@eWjlD zW!!#Oj<3Aof?v~Tlbj!akonTxm6<XQnAeA^<#_2K88yGXOX~BkDb74D<L$k2JVr~q z<x77yue+w8zsTRr{ri#hPxC(Fs_b`jT<RkI^U4rWp-a}Ar}?ey_hgx$5G3qxUUw~! z_Ecp6*495(sgJ*GuWX*uROUxYe};STF;LohptQ3#9%sw`HLu?k-0v<d%Fb%vp6+pX zRow2$GxGD?g+-YKMQ*p^PR>YmXXg~;OwKJV$|=Z5?LR#~FDD~&;`AJWRga8GFPdJM zoRwY_9i25Lv%p<ckeOSA3}<>K{y2vL=rS?0FgMGcUszO-lQ|<f!<`Z3cBXf84;wT% zy{Mbpoi%4pbaZr#-~v-_-sI%;Sa*7yJ0sfdbSmyKgIQQ&v~w0Gin>nE&&r&h(?8ld zY*0E>2SZVOZhoN~GIC;*^Ky%H-u&r>&a|Xq>G|nyA<0*bKAX@rv#>CCa-MTW7MX0$ z9QVweg2Mc~%;~vBbKSF|sP;iV+u>7cx2*gbGcyZvs0Fdyg#STEY+>%a9AOlcj>{^V zJ2MAXkM815b<fVt&dGD<!WNp<e3;s&iZE~5pe*Ruh4jmwo(AiqvohTi;UjtOtjwaU zDFD)oVsrAcr&s3#f6@J2Ww*($6#d20A<Q7VdvRfods1drPEoR<g|J!%{3l)W1a<*( zIOt410<S}Bi>4Ih&xTKAyECW5W2EzVJBlpe+Y^17M|ZJ*>`}RMoHL+g-faBkCKu$e zs;oFhQ`Ny#oguR_FpA>b=pt(U|KdH_nMIk>T(MdC#YH41od!%UU;X2Du`Lm0CTC^2 z3n|D%EAHWWvvbj*!*U9XXXH=_%F?0_0#DX7ch;0?=-%Av(h`|PIdgK0lo>fQvS!Sb zd6RN!u+7V%+!^_^5RTj=M@Ft0nYnpF-RKzih@7mV`~nUG$+-v`xlX4iH+RO&>HTA9 zz(q;t^I#M>sxOfkqm3UQ+|d|p>|fBG`*m=4#EHCOj%!`=a%O92egX7}_pqi7VvqFA z4fmeK4bn9GN2PO}qOsAUv1AObExxP#J3Lj@LPc`a#kk#wI61Nl(sG>`Skck$!Ja&L zZFCn(W>Qa4#B!#`Xu&`>H{GqZ7=4&dlK@<620AX92EE|^t2THBHTo<u2XjjPTz6*i zoaB^=(M~5yW{bRJDCnG(;T92&#*iLE<2ZggX>6qz#l*VZ#d#D<bJ-KK-IH>sPj~0J zGn3P*SYrkh#Q#o+jisp$p$clFAsNV2+&MJrbcgK+zjIH-jEVS`G6Tv%^|@SUH0sRC zpE=h}F7M8af$mXGqiZ3+<>eR5$eixhteKoPD7T6_PA3`(4WLPSUw3+UGBsvP%`7lM zE}KB=h^bj9XL3DHv@-$dd+He;QZ(6nY0XMQD~}48*LgYtYrMBfsj<oba|5H?u(xbq z@({#^Y)ny@JF>aC2yg$dgnJvWin*!h$)jRLm+R(?j&dg(#szhzvzt4eLzPntNO1Nl zLmm#H`+OBNj;CS~py0jw)Yf%!P7!828M$ca%OOg`(K}35kx4@ijc{Vvngbh0RF5ZA z8C+<Sad1@;Ee4xD^?L_5Xvia++|T#mt}0U)NUWj$LF;rY(6r#yrfMb;4{r8;5trnI zQeFSaqR=eLZ3r8=GY}gM&5U-tbMk1h?arN)JgTq&{K(2JbQfZ!n^}-dOJR)oS((#| za}ZjbU9r63*x6OY7_o@-wHQyC(Iw`u7UNyTVoC<0QTn>upkQ_3rkZGD?8Pd*QSFqh z8>p)Ys)$Ii4TccMERLSu5viKlLBt@>>|hLVRXt`_T86d&Fpf%NcU0HfYJ;n3Aa`TI z2D2fG^Ng=;jCcq+u{uq67v@aI?C!=MjG~jr`Ku`01xsQ%#toAHu8Og=wvmzG?+<?O z;ql+rK(yh=&e4}P=t0vcu1?u%yl3W2R+JsbJ;SqT_@BB)u02vcVyatv@Pvr4Xd2ks zQpp2Ub-U<zG@G5)vow&)6ydR^P+P70i}0nbNKIPAPz=t_nUq;Py@>a6V*SC(Ozb%) z<rmD(EXYnq+%)U&9D)rJMf<J=IlO`>$eD!AeO^{hGByp)SPmZ05{n!3jrUBfRmkfb zufa&G7zCnfTUSK|eIoJlB@rOx8o;m&sZv}{qkqGZsvDT18f{@|zB!@o>4#x^%iAaR zxGIY=gy3}d>?yffQxF-&+J2B>1ezB2Ra+20BXf@1vq$H#kN%b$(dxa!<9OBMXqdj< zq7`fPT+!X(I9LR@GiG|WAAemjVp6I*3%6*Ba<F{LFUXwC+nIs0uz3^rg!)g%t&p5T z>Jd?KRf9!|YG>ycWD9#$QLu`YG&hkAheJkryQ4NOR4GX-ZSQ5abj&X9^h{c;&�+ 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 L0I3HFf?)FhKWph@ literal 0 HcmV?d00001 diff --git a/week04/cmake-build-debug/22_generrateParenthesis b/week04/cmake-build-debug/22_generrateParenthesis new file mode 100755 index 0000000000000000000000000000000000000000..bbce802f7bb7d01d7946a70d200459fe43d1d33c GIT binary patch literal 135160 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(?68T4U^Szjmc?@)r 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 literal 0 HcmV?d00001 diff --git a/week04/cmake-build-debug/CMakeCache.txt b/week04/cmake-build-debug/CMakeCache.txt new file mode 100644 index 00000000..3d1305e9 --- /dev/null +++ b/week04/cmake-build-debug/CMakeCache.txt @@ -0,0 +1,380 @@ +# This is the CMakeCache file. +# For build in directory: /home/lewang/algorithm018/week04/cmake-build-debug +# It was generated by CMake: /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Debug + +//Id string of the compiler for the CodeBlocks IDE. Automatically +// detected when left empty +CMAKE_CODEBLOCKS_COMPILER_ID:STRING= + +//The CodeBlocks executable +CMAKE_CODEBLOCKS_EXECUTABLE:FILEPATH=CMAKE_CODEBLOCKS_EXECUTABLE-NOTFOUND + +//Additional command line arguments when CodeBlocks invokes make. +// Enter e.g. -j<some_number> to get parallel builds +CMAKE_CODEBLOCKS_MAKE_ARGUMENTS:STRING=-j12 + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-5 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-5 + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//C compiler +CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-5 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-5 + +//Flags used by the C compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the C compiler during DEBUG builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the C compiler during RELEASE builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=week02 + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Path to a program. +ProcessorCount_cmd_getconf:FILEPATH=/usr/bin/getconf + +//Path to a program. +ProcessorCount_cmd_sysctl:FILEPATH=/sbin/sysctl + +//Value Computed by CMake +week02_BINARY_DIR:STATIC=/home/lewang/algorithm018/week04/cmake-build-debug + +//Value Computed by CMake +week02_SOURCE_DIR:STATIC=/home/lewang/algorithm018/week04 + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/lewang/algorithm018/week04/cmake-build-debug +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=13 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL=CodeBlocks +//CXX compiler system defined macros +CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570815e+308L);__DBL_MIN__;((double)2.22507385850720138309e-308L);__DBL_EPSILON__;((double)2.22044604925031308085e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1;__STDC__;1;__cplusplus;199711L;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__GNUG__;5;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_WEAK__;1;__DEPRECATED;1;__GXX_RTTI;1;__cpp_rtti;199711;__cpp_binary_literals;201304;__cpp_runtime_arrays;198712;__cpp_threadsafe_static_init;200806;__EXCEPTIONS;1;__cpp_exceptions;199711;__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__GLIBCXX_TYPE_INT_N_0;__int128;__GLIBCXX_BITSIZE_INT_N_0;128;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;double(1.79769313486231570815e+308L);__DBL_MIN__;double(2.22507385850720138309e-308L);__DBL_EPSILON__;double(2.22044604925031308085e-16L);__DBL_DENORM_MIN__;double(4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_GNU_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_GNU_SOURCE;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1 +//CXX compiler system include directories +CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/include/c++/5;/usr/include/x86_64-linux-gnu/c++/5;/usr/include/c++/5/backward;/usr/lib/gcc/x86_64-linux-gnu/5/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include +//C compiler system defined macros +CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570815e+308L);__DBL_MIN__;((double)2.22507385850720138309e-308L);__DBL_EPSILON__;((double)2.22044604925031308085e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1 +//C compiler system include directories +CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/lib/gcc/x86_64-linux-gnu/5/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/lewang/algorithm018/week04 +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: ProcessorCount_cmd_getconf +ProcessorCount_cmd_getconf-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: ProcessorCount_cmd_sysctl +ProcessorCount_cmd_sysctl-ADVANCED:INTERNAL=1 + diff --git a/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/127_ladderLength.cpp.o b/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/127_ladderLength.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..f9c7529cfbe0fe08501c7f1c68bd71e43056f29b GIT binary patch literal 242232 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⁢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 OT(SDPD<2-L|9=4bVq&%c literal 0 HcmV?d00001 diff --git a/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/CXX.includecache b/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/CXX.includecache new file mode 100644 index 00000000..572d95dc --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/CXX.includecache @@ -0,0 +1,28 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week04/127_ladderLength.cpp +iostream +- +vector +- +string +- +cstring +- +unordered_set +- +unordered_map +- +climits +- +queue +- +bitset +- + diff --git a/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/DependInfo.cmake b/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/DependInfo.cmake new file mode 100644 index 00000000..196eb124 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week04/127_ladderLength.cpp" "/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/127_ladderLength.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/build.make b/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/build.make new file mode 100644 index 00000000..80b176b5 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week04 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week04/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/127_ladderLength.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/127_ladderLength.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/127_ladderLength.dir/flags.make + +CMakeFiles/127_ladderLength.dir/127_ladderLength.cpp.o: CMakeFiles/127_ladderLength.dir/flags.make +CMakeFiles/127_ladderLength.dir/127_ladderLength.cpp.o: ../127_ladderLength.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/127_ladderLength.dir/127_ladderLength.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/127_ladderLength.dir/127_ladderLength.cpp.o -c /home/lewang/algorithm018/week04/127_ladderLength.cpp + +CMakeFiles/127_ladderLength.dir/127_ladderLength.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/127_ladderLength.dir/127_ladderLength.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week04/127_ladderLength.cpp > CMakeFiles/127_ladderLength.dir/127_ladderLength.cpp.i + +CMakeFiles/127_ladderLength.dir/127_ladderLength.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/127_ladderLength.dir/127_ladderLength.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week04/127_ladderLength.cpp -o CMakeFiles/127_ladderLength.dir/127_ladderLength.cpp.s + +# Object files for target 127_ladderLength +127_ladderLength_OBJECTS = \ +"CMakeFiles/127_ladderLength.dir/127_ladderLength.cpp.o" + +# External object files for target 127_ladderLength +127_ladderLength_EXTERNAL_OBJECTS = + +127_ladderLength: CMakeFiles/127_ladderLength.dir/127_ladderLength.cpp.o +127_ladderLength: CMakeFiles/127_ladderLength.dir/build.make +127_ladderLength: CMakeFiles/127_ladderLength.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 127_ladderLength" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/127_ladderLength.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/127_ladderLength.dir/build: 127_ladderLength + +.PHONY : CMakeFiles/127_ladderLength.dir/build + +CMakeFiles/127_ladderLength.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/127_ladderLength.dir/cmake_clean.cmake +.PHONY : CMakeFiles/127_ladderLength.dir/clean + +CMakeFiles/127_ladderLength.dir/depend: + cd /home/lewang/algorithm018/week04/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week04 /home/lewang/algorithm018/week04 /home/lewang/algorithm018/week04/cmake-build-debug /home/lewang/algorithm018/week04/cmake-build-debug /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/127_ladderLength.dir/depend + diff --git a/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/cmake_clean.cmake b/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/cmake_clean.cmake new file mode 100644 index 00000000..ec132f60 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/127_ladderLength.dir/127_ladderLength.cpp.o" + "127_ladderLength.pdb" + "127_ladderLength" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/127_ladderLength.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/depend.internal b/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/depend.internal new file mode 100644 index 00000000..dde4c329 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/127_ladderLength.dir/127_ladderLength.cpp.o + /home/lewang/algorithm018/week04/127_ladderLength.cpp diff --git a/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/depend.make b/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/depend.make new file mode 100644 index 00000000..263a3be5 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/127_ladderLength.dir/127_ladderLength.cpp.o: ../127_ladderLength.cpp + diff --git a/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/flags.make b/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/link.txt b/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/link.txt new file mode 100644 index 00000000..31781d81 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/127_ladderLength.dir/127_ladderLength.cpp.o -o 127_ladderLength diff --git a/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/progress.make b/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/127_ladderLength.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/22_generrateParenthesis.cpp.o b/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/22_generrateParenthesis.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..b6d75a672e39374586ece7d86aae7b5b220514ce GIT binary patch literal 196688 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 literal 0 HcmV?d00001 diff --git a/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/CXX.includecache b/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/CXX.includecache new file mode 100644 index 00000000..d30a0abf --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/CXX.includecache @@ -0,0 +1,18 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week04/22_generrateParenthesis.cpp +iostream +- +vector +- +map +- +string +- + diff --git a/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/DependInfo.cmake b/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/DependInfo.cmake new file mode 100644 index 00000000..1ed5d5dd --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week04/22_generrateParenthesis.cpp" "/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/22_generrateParenthesis.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/build.make b/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/build.make new file mode 100644 index 00000000..8d18677b --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week04 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week04/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/22_generrateParenthesis.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/22_generrateParenthesis.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/22_generrateParenthesis.dir/flags.make + +CMakeFiles/22_generrateParenthesis.dir/22_generrateParenthesis.cpp.o: CMakeFiles/22_generrateParenthesis.dir/flags.make +CMakeFiles/22_generrateParenthesis.dir/22_generrateParenthesis.cpp.o: ../22_generrateParenthesis.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/22_generrateParenthesis.dir/22_generrateParenthesis.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/22_generrateParenthesis.dir/22_generrateParenthesis.cpp.o -c /home/lewang/algorithm018/week04/22_generrateParenthesis.cpp + +CMakeFiles/22_generrateParenthesis.dir/22_generrateParenthesis.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/22_generrateParenthesis.dir/22_generrateParenthesis.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week04/22_generrateParenthesis.cpp > CMakeFiles/22_generrateParenthesis.dir/22_generrateParenthesis.cpp.i + +CMakeFiles/22_generrateParenthesis.dir/22_generrateParenthesis.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/22_generrateParenthesis.dir/22_generrateParenthesis.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week04/22_generrateParenthesis.cpp -o CMakeFiles/22_generrateParenthesis.dir/22_generrateParenthesis.cpp.s + +# Object files for target 22_generrateParenthesis +22_generrateParenthesis_OBJECTS = \ +"CMakeFiles/22_generrateParenthesis.dir/22_generrateParenthesis.cpp.o" + +# External object files for target 22_generrateParenthesis +22_generrateParenthesis_EXTERNAL_OBJECTS = + +22_generrateParenthesis: CMakeFiles/22_generrateParenthesis.dir/22_generrateParenthesis.cpp.o +22_generrateParenthesis: CMakeFiles/22_generrateParenthesis.dir/build.make +22_generrateParenthesis: CMakeFiles/22_generrateParenthesis.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 22_generrateParenthesis" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/22_generrateParenthesis.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/22_generrateParenthesis.dir/build: 22_generrateParenthesis + +.PHONY : CMakeFiles/22_generrateParenthesis.dir/build + +CMakeFiles/22_generrateParenthesis.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/22_generrateParenthesis.dir/cmake_clean.cmake +.PHONY : CMakeFiles/22_generrateParenthesis.dir/clean + +CMakeFiles/22_generrateParenthesis.dir/depend: + cd /home/lewang/algorithm018/week04/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week04 /home/lewang/algorithm018/week04 /home/lewang/algorithm018/week04/cmake-build-debug /home/lewang/algorithm018/week04/cmake-build-debug /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/22_generrateParenthesis.dir/depend + diff --git a/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/cmake_clean.cmake b/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/cmake_clean.cmake new file mode 100644 index 00000000..a8b1235f --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/22_generrateParenthesis.dir/22_generrateParenthesis.cpp.o" + "22_generrateParenthesis.pdb" + "22_generrateParenthesis" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/22_generrateParenthesis.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/depend.internal b/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/depend.internal new file mode 100644 index 00000000..7e92fef1 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/22_generrateParenthesis.dir/22_generrateParenthesis.cpp.o + /home/lewang/algorithm018/week04/22_generrateParenthesis.cpp diff --git a/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/depend.make b/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/depend.make new file mode 100644 index 00000000..ebf88831 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/22_generrateParenthesis.dir/22_generrateParenthesis.cpp.o: ../22_generrateParenthesis.cpp + diff --git a/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/flags.make b/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/link.txt b/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/link.txt new file mode 100644 index 00000000..9a9e19d7 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/22_generrateParenthesis.dir/22_generrateParenthesis.cpp.o -o 22_generrateParenthesis diff --git a/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/progress.make b/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/22_generrateParenthesis.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week04/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake b/week04/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake new file mode 100755 index 00000000..17a89374 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake @@ -0,0 +1,73 @@ +set(CMAKE_C_COMPILER "/usr/bin/cc") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "GNU") +set(CMAKE_C_COMPILER_VERSION "5.5.0") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-5") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-5") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCC 1) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/week04/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake b/week04/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake new file mode 100755 index 00000000..51738d56 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake @@ -0,0 +1,76 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "5.5.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "98") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-5") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-5") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/week04/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin b/week04/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..ce01f2ca7e5e788ef02f6a2691b09499318eb750 GIT binary patch literal 8464 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 literal 0 HcmV?d00001 diff --git a/week04/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin b/week04/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..40ee06d7308469781ca42b235f55a21909e5cb67 GIT binary patch literal 8472 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 literal 0 HcmV?d00001 diff --git a/week04/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake b/week04/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake new file mode 100755 index 00000000..c394a4a4 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-4.15.0-70-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "4.15.0-70-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-4.15.0-70-generic") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "4.15.0-70-generic") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/week04/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c b/week04/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 00000000..bfc6ebbf --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,623 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif +#if defined(__CLASSIC_C__) +/* cv-qualifiers did not exist in K&R C */ +# define const +# define volatile +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__ibmxl__) || (defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800) +# define COMPILER_ID "XL" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__ARMCC_VERSION) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if !defined(__STDC__) +# if (defined(_MSC_VER) && !defined(__clang__)) \ + || (defined(__ibmxl__) || defined(__IBMC__)) +# define C_DIALECT "90" +# else +# define C_DIALECT +# endif +#elif __STDC_VERSION__ >= 201000L +# define C_DIALECT "11" +#elif __STDC_VERSION__ >= 199901L +# define C_DIALECT "99" +#else +# define C_DIALECT "90" +#endif +const char* info_language_dialect_default = + "INFO" ":" "dialect_default[" C_DIALECT "]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/week04/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out b/week04/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out new file mode 100755 index 0000000000000000000000000000000000000000..b6682332a4d6181ed3894fb98c1ca0489587c43f GIT binary patch literal 8616 zcmeHMYiwLc6`u9RiPOYuCp3*oOL_^Znn1m^O&;ze)ayrb9c>;sPDyc{+w0x6z0E$X z-Mg(5H4w>dswGXE3W-Mi;13}6M<ozHs)!%RQKEnl5-vh&5v2;yN^X@>Lmx^Z&2rA% z^R4e*U(+J>XU5ulX1+P+%$b>U=bkhEZeM(7T_~hb!s;7}TW9KBq)R%+*GYv)m+Dl@ z>G>sfn_5ckB^q=4yIexOZn-L|K^p`Q6J@#1Iv4QM+k_7k7BUsngrk<sEO*<WN*Nkp zIkxq3qizy4bOm(3*l|cG<haRlS4Hls$bn9aVW5~F&y9bBqR&rzsgDaN^K#k$mXqZA zGor{(@7G*PfkN(^B*%7s*3vAD12W!X>tcxgpfX)`cP2fuZOh%6WNRj!D^0dec5Z9k zwk2B3M?3VqSwHjc+Ivus#QTk<Wt(rNA7kAALO%Yp<CACCANl>a-_71-{qc!a&vmgZ zepLO;rIR>~0B&~Q)dBb*VMYL+SOkB35qt&V8v^twTBigr%Qj_MiAmcUP3P=P`dEsZ z++`IVyWm(^JDpRz;{Dw{R!6iWx>Z^IgL|xGs*oB>7oAjLa8FMrpGyteBN>()%jR<; zX(?;>W7dH1^<?Z~F;#TM1BJDX*oit?WByYL{!m(%rZ=cg-6eCu`vJc`BThCe?*Z`r zf;Ti9S`s+g%|2WSLyHd|5Zv(LV}ft;;YGn`n%r^O44x0lYaSf4=Dy1woc$1G)`R2S z;=VZ#?md65dT{UiXHH#dFi+JVzsXSMQ`1geWyYMk*l<Brw(cgVaz~t=O}BSZtw6QW zGZ?@9-Tv|`ht2Ze%&9l$_7BES*RLb9&C`uPrdgS%cdR5*S+kyGK4`kVS3_xPn5XNR z95gpyHOp_AQ&%I8t)b!nv7EYS_~pZu%cGiq_yUhQ8g07$Nj)T~+^prdZgAzVv;6t% zVY57Eo}Ycd3|%r`x$d-(vh$*BrK`-9_v<^c<4?q<N_U!5J6_=0LDJ`}G*9jLA+=^3 zE0xNuNsr-6^*<*d^!`G79$H35Pd%VYE8ad#oUYw8{yoIclX;s}R%V9Z?xJ3<mycgD z%caY|?z_fQGEc49PMoLuu9#=d&`i_Is_9qLp}uQ`-?<3BHV9`0i5Xhhk4b6M%S-C2 zYUUaO)Sv3RHhf|9Ozc~+2m8yf#tz14@9y}{Qr?r(txONZ%AfR?KZ<Xr?IGVd|4DfE z)lVuF^Qm_oqy5j=k9hgt@$yH#<@aKhn_oAlE`-c`{!)5}eP?Jm_Hb-Cb~t8TI5WS0 z?_Z!9vp(%zJpbAfs-C*FI9mOCcka74k<U(~GpWK5oyNoHacNDz^;oJ<Oy_e$ZEo2b z^;g=4m6n*u*v@FakR6Ki*FiwLkQg75dNOTiQVEBSxKX>5afaI4hgIm-@O^xK^LzB> zwMvCO>;s}N5nVz{#b@=F>y^qyq8Ew2$!+q1yXc+Z?+KUCu>lpDY!2PJa#_Qf(6VO6 zIfi(V^n8sOqy+OTwUPRn{}A!(GcnS<Gt#oVX~p9WC)5M$?)&Q3H|k@a<$LMZMSKlJ zQCRk2`i+yl&oUT`G@q>NX<S-YCW~B|CkTFx`cvHB9cg~9t~=85Y`8CCoL<r$+4M}k z8EHGY)QogaE!z|6DnvSCk+xW5Q+LE5KH~3=H0bl1*Fn)bc+WM4Zj>7<aAO5-tN^b7 z;x)u)SQW%bpev>0kOVi9?x>5)+>S3wKjOh#rH!)>=^^4mJ_os=|HJE*Jh#uvVTBm# z5edE!JDrpMo0yr(^Da><gtiD>BNPNN+&PKI#B60OaXDZ|r%YJVL<N28MG^S^Q*rGj zb`8-ntL@jx4e`=vN4K$lbJG5o81k{SVF&E|yeRU|&r2WTbZi*naKzn+vv>9M+-qz) zI8w?vC1Y!pB7oNRj*@P+Z*~Erqpf{=ds}<kr`Z;!NF8~<mp4o?3-aY!Jgl66k6oBH z1%6e_U$5X#wfIs6zpKTUDePY@PA(vRREsaK`d2M}lfrvci?2`<aC}ckSglki0`bP` zJ&cE)^5#hOy{yHX)a3w&3sba!dxTp4Rq8izcuz-|GG)By9+<}c0!8qK7t-}GMPGA) z_!_!53F5y+;XU;#3#+x1hz9YusJ1{Hr_#I@ejk^pe^%xZx5npND8NqEP^TKzv~T_S zd}CY(qpk}5j0)~QPdOG0(P;uZaV{Lt_`-ENCVFr_Q&X3d^b7^8|4#`In%83UJ*V}o zQoqANr?o3}N#nu$6{P<UT5k1%egC`Gvv7Z}2*2Nd+znaihpTA<A+^vSHW9v>_eJ~} zuRWjNh90B#@r1?~`p+QY&E!|u7f5vwzB=GN8qzqp=IJrf<M+>}2{-21s<j^wzN&7m zs-COT!)g2~HUFOCSowv<*DC*g$TZ=+4*O*tQljS#qRr%Qoxb<tgz)437CFz1==a~l zyg@kY@vqN2qGwt@%sQ8$G2atC{(G24+8{%0^O7$U&g<aU-?|9@F2Xl>6-fQJ+Mb2y zYJ&CCdKz+$bqN22#@8xC)~9;RB??Z_DUFUs6LgQZyJx_P_a7LvEH!`EW;t0a!MAO6 zjb<hD)>tM#VrQ(RlP?r4yELgdUCyMOR5H4K+qUh&OnlFmw(LT|K5C_MPT{B;E!f$V zl`LhmM@hufvWU~EVeQ#tA4&D}NLJpT)VA&%i0$dK`u6scv99H)*T^T8)%(!i*q;6# z;_~$9dq#pN#kcxQ%hhJ~4k&9^d|!7gZtdH-^FZIAH5luT_wfk&b}~^c>6!fR`^Z$% zc5H~uUubr9)!b-W%;nx%5^wDlrj;z_t#Lb-<m=7;eZ-Ya=d4mOl~n26Xx_qo0tR8b zcyewp?k}i!q*#<8^p&a>&e*xJl08O?Uwi2gd~<5iT`QKEFJS|3QETsVYbUD5l$#RQ zKEC)+Dq1|6b?gzMPQj()sHJms$2*~-xxAB##=84k9eYe#W4Tgvq?D$M_H<H3xixMV z$5k|WG)MYe>J;1_4650rVNqWpm9besMfI9RCo+!WM|3Pt6(==GPxe>h%<HX;rpCoX z$CD(FmMibNsw;u|qX}Z85$tR_K^1m~C~bv`($-|j{{!CW{}1BtF&zQ)O?C_7Mo{D% z(ye(>XZjWT@evAn#FwB3^?3`<Wnk@8@ya6(1>Fcnp?>*Z!at&%0OKQG1%>?xL#pSM z=-W$_b0El{lM3jI!pFxouM^~v-#kbdrzVg`{0sU#^?3{H@Rq~W;G75Yh?7Ah!VLSt z2YQ71Ifp{K8c)kY86xkuUtq=Y60<_yfSgd|br|12|0hY7=OmxAYJ843og#;tB5JGH z_o(KTM;s4||DQkrZP4d@@`(3AVK3y-20iPO$M+qy0}CSxFfR1{$S04y9@G~mR<{T8 zKM{EhgFFNDB`^v#d~NRM^@BX}5zza6{QmX-rB5Dt3uuGSVX<yddyy*aqmrIi^P9_Z z(c$Mu8+3+bn>_N!gJwUY{OcskCSrW#OLLzhPa?Yfm7eUokVjsH|4UEH{NdlQ8-DP8 zlJ$;{{OcS~ii+uy>J##y?@*6dz8VM10Bu!Cw*oo9b5vmr_9Gr_6L~+sOb6oXL#i?6 z9|!WSRZh18c`t?Ud08Kk@sWq|cZPMr9-N>2e!zCG{M;>W>zGeD#s%-HMdTlq6!tn8 Ih5F_H3$g66L;wH) literal 0 HcmV?d00001 diff --git a/week04/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/week04/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 00000000..b728b632 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,602 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__ibmxl__) || (defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800) +# define COMPILER_ID "XL" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__ARMCC_VERSION) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if defined(_MSC_VER) && defined(_MSVC_LANG) +#define CXX_STD _MSVC_LANG +#else +#define CXX_STD __cplusplus +#endif + +const char* info_language_dialect_default = "INFO" ":" "dialect_default[" +#if CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} diff --git a/week04/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out b/week04/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out new file mode 100755 index 0000000000000000000000000000000000000000..4f752d048d3d136555ba6b13b7869c22a3d0b55a GIT binary patch literal 8632 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 PMm|kP+C^q0>XiQ<q>!mv literal 0 HcmV?d00001 diff --git a/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/DependInfo.cmake b/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/DependInfo.cmake new file mode 100644 index 00000000..3c0f302e --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week04/515_largestValue.cpp" "/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/515_largestValue.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/build.make b/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/build.make new file mode 100644 index 00000000..acecf42b --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week04 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week04/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/515_largestValue.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/515_largestValue.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/515_largestValue.dir/flags.make + +CMakeFiles/515_largestValue.dir/515_largestValue.cpp.o: CMakeFiles/515_largestValue.dir/flags.make +CMakeFiles/515_largestValue.dir/515_largestValue.cpp.o: ../515_largestValue.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/515_largestValue.dir/515_largestValue.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/515_largestValue.dir/515_largestValue.cpp.o -c /home/lewang/algorithm018/week04/515_largestValue.cpp + +CMakeFiles/515_largestValue.dir/515_largestValue.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/515_largestValue.dir/515_largestValue.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week04/515_largestValue.cpp > CMakeFiles/515_largestValue.dir/515_largestValue.cpp.i + +CMakeFiles/515_largestValue.dir/515_largestValue.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/515_largestValue.dir/515_largestValue.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week04/515_largestValue.cpp -o CMakeFiles/515_largestValue.dir/515_largestValue.cpp.s + +# Object files for target 515_largestValue +515_largestValue_OBJECTS = \ +"CMakeFiles/515_largestValue.dir/515_largestValue.cpp.o" + +# External object files for target 515_largestValue +515_largestValue_EXTERNAL_OBJECTS = + +515_largestValue: CMakeFiles/515_largestValue.dir/515_largestValue.cpp.o +515_largestValue: CMakeFiles/515_largestValue.dir/build.make +515_largestValue: CMakeFiles/515_largestValue.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 515_largestValue" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/515_largestValue.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/515_largestValue.dir/build: 515_largestValue + +.PHONY : CMakeFiles/515_largestValue.dir/build + +CMakeFiles/515_largestValue.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/515_largestValue.dir/cmake_clean.cmake +.PHONY : CMakeFiles/515_largestValue.dir/clean + +CMakeFiles/515_largestValue.dir/depend: + cd /home/lewang/algorithm018/week04/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week04 /home/lewang/algorithm018/week04 /home/lewang/algorithm018/week04/cmake-build-debug /home/lewang/algorithm018/week04/cmake-build-debug /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/515_largestValue.dir/depend + diff --git a/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/cmake_clean.cmake b/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/cmake_clean.cmake new file mode 100644 index 00000000..007f6749 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/515_largestValue.dir/515_largestValue.cpp.o" + "515_largestValue.pdb" + "515_largestValue" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/515_largestValue.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/depend.make b/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/depend.make new file mode 100644 index 00000000..9150a77b --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for 515_largestValue. +# This may be replaced when dependencies are built. diff --git a/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/flags.make b/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/link.txt b/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/link.txt new file mode 100644 index 00000000..a0ee5db9 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/515_largestValue.dir/515_largestValue.cpp.o -o 515_largestValue diff --git a/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/progress.make b/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/515_largestValue.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/DependInfo.cmake b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/DependInfo.cmake new file mode 100644 index 00000000..4c360eed --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week04/529_updateBoard.cpp" "/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/build.make b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/build.make new file mode 100644 index 00000000..466ceda6 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week04 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week04/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/529_updateBoard.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/529_updateBoard.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/529_updateBoard.dir/flags.make + +CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.o: CMakeFiles/529_updateBoard.dir/flags.make +CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.o: ../529_updateBoard.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.o -c /home/lewang/algorithm018/week04/529_updateBoard.cpp + +CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week04/529_updateBoard.cpp > CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.i + +CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week04/529_updateBoard.cpp -o CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.s + +# Object files for target 529_updateBoard +529_updateBoard_OBJECTS = \ +"CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.o" + +# External object files for target 529_updateBoard +529_updateBoard_EXTERNAL_OBJECTS = + +529_updateBoard: CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.o +529_updateBoard: CMakeFiles/529_updateBoard.dir/build.make +529_updateBoard: CMakeFiles/529_updateBoard.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 529_updateBoard" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/529_updateBoard.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/529_updateBoard.dir/build: 529_updateBoard + +.PHONY : CMakeFiles/529_updateBoard.dir/build + +CMakeFiles/529_updateBoard.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/529_updateBoard.dir/cmake_clean.cmake +.PHONY : CMakeFiles/529_updateBoard.dir/clean + +CMakeFiles/529_updateBoard.dir/depend: + cd /home/lewang/algorithm018/week04/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week04 /home/lewang/algorithm018/week04 /home/lewang/algorithm018/week04/cmake-build-debug /home/lewang/algorithm018/week04/cmake-build-debug /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/529_updateBoard.dir/depend + diff --git a/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/cmake_clean.cmake b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/cmake_clean.cmake new file mode 100644 index 00000000..d5591027 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.o" + "529_updateBoard.pdb" + "529_updateBoard" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/529_updateBoard.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/depend.make b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/depend.make new file mode 100644 index 00000000..57b41b23 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for 529_updateBoard. +# This may be replaced when dependencies are built. diff --git a/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/flags.make b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/link.txt b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/link.txt new file mode 100644 index 00000000..829dc71b --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.o -o 529_updateBoard diff --git a/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/progress.make b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week04/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake b/week04/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 00000000..30b01a4d --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/lewang/algorithm018/week04") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/lewang/algorithm018/week04/cmake-build-debug") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/week04/cmake-build-debug/CMakeFiles/CMakeOutput.log b/week04/cmake-build-debug/CMakeFiles/CMakeOutput.log new file mode 100644 index 00000000..6cc9334a --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/CMakeOutput.log @@ -0,0 +1,625 @@ +The system is: Linux - 4.15.0-70-generic - x86_64 +Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. +Compiler: /usr/bin/cc +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" + +The C compiler identification is GNU, found in "/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out" + +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. +Compiler: /usr/bin/c++ +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + +The CXX compiler identification is GNU, found in "/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out" + +Determining if the C compiler works passed with the following output: +Change Dir: /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_36bb4/fast" +/usr/bin/make -f CMakeFiles/cmTC_36bb4.dir/build.make CMakeFiles/cmTC_36bb4.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_36bb4.dir/testCCompiler.c.o +/usr/bin/cc -o CMakeFiles/cmTC_36bb4.dir/testCCompiler.c.o -c /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp/testCCompiler.c +Linking C executable cmTC_36bb4 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_36bb4.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_36bb4.dir/testCCompiler.c.o -o cmTC_36bb4 +make[1]: Leaving directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_968ee/fast" +/usr/bin/make -f CMakeFiles/cmTC_968ee.dir/build.make CMakeFiles/cmTC_968ee.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_968ee.dir/CMakeCCompilerABI.c.o +/usr/bin/cc -o CMakeFiles/cmTC_968ee.dir/CMakeCCompilerABI.c.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCCompilerABI.c +Linking C executable cmTC_968ee +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_968ee.dir/link.txt --verbose=1 +/usr/bin/cc -v -rdynamic CMakeFiles/cmTC_968ee.dir/CMakeCCompilerABI.c.o -o cmTC_968ee +Using built-in specs. +COLLECT_GCC=/usr/bin/cc +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_968ee' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccBCyBG6.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_968ee /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_968ee.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o +make[1]: Leaving directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_968ee/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_968ee.dir/build.make CMakeFiles/cmTC_968ee.dir/build] + ignore line: [make[1]: Entering directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp'] + ignore line: [Building C object CMakeFiles/cmTC_968ee.dir/CMakeCCompilerABI.c.o] + ignore line: [/usr/bin/cc -o CMakeFiles/cmTC_968ee.dir/CMakeCCompilerABI.c.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCCompilerABI.c] + ignore line: [Linking C executable cmTC_968ee] + ignore line: [/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_968ee.dir/link.txt --verbose=1] + ignore line: [/usr/bin/cc -v -rdynamic CMakeFiles/cmTC_968ee.dir/CMakeCCompilerABI.c.o -o cmTC_968ee ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_968ee' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccBCyBG6.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_968ee /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_968ee.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccBCyBG6.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_968ee] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] + arg [CMakeFiles/cmTC_968ee.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtend.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5] ==> [/usr/lib/gcc/x86_64-linux-gnu/5] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> [/usr/lib] + implicit libs: [gcc;gcc_s;c;gcc;gcc_s] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting C [-std=c11] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_0ba33/fast" +/usr/bin/make -f CMakeFiles/cmTC_0ba33.dir/build.make CMakeFiles/cmTC_0ba33.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_0ba33.dir/feature_tests.c.o +/usr/bin/cc -std=c11 -o CMakeFiles/cmTC_0ba33.dir/feature_tests.c.o -c /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_0ba33 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_0ba33.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_0ba33.dir/feature_tests.c.o -o cmTC_0ba33 +make[1]: Leaving directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:1c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c99] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_cbbca/fast" +/usr/bin/make -f CMakeFiles/cmTC_cbbca.dir/build.make CMakeFiles/cmTC_cbbca.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_cbbca.dir/feature_tests.c.o +/usr/bin/cc -std=c99 -o CMakeFiles/cmTC_cbbca.dir/feature_tests.c.o -c /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_cbbca +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_cbbca.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_cbbca.dir/feature_tests.c.o -o cmTC_cbbca +make[1]: Leaving directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c90] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_cecc5/fast" +/usr/bin/make -f CMakeFiles/cmTC_cecc5.dir/build.make CMakeFiles/cmTC_cecc5.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_cecc5.dir/feature_tests.c.o +/usr/bin/cc -std=c90 -o CMakeFiles/cmTC_cecc5.dir/feature_tests.c.o -c /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_cecc5 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_cecc5.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_cecc5.dir/feature_tests.c.o -o cmTC_cecc5 +make[1]: Leaving directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:0c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:0c_variadic_macros +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_46b60/fast" +/usr/bin/make -f CMakeFiles/cmTC_46b60.dir/build.make CMakeFiles/cmTC_46b60.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_46b60.dir/testCXXCompiler.cxx.o +/usr/bin/c++ -o CMakeFiles/cmTC_46b60.dir/testCXXCompiler.cxx.o -c /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp/testCXXCompiler.cxx +Linking CXX executable cmTC_46b60 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_46b60.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_46b60.dir/testCXXCompiler.cxx.o -o cmTC_46b60 +make[1]: Leaving directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_c36ff/fast" +/usr/bin/make -f CMakeFiles/cmTC_c36ff.dir/build.make CMakeFiles/cmTC_c36ff.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_c36ff.dir/CMakeCXXCompilerABI.cpp.o +/usr/bin/c++ -o CMakeFiles/cmTC_c36ff.dir/CMakeCXXCompilerABI.cpp.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXCompilerABI.cpp +Linking CXX executable cmTC_c36ff +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c36ff.dir/link.txt --verbose=1 +/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_c36ff.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_c36ff +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_c36ff' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccMNnVAd.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_c36ff /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_c36ff.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o +make[1]: Leaving directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_c36ff/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_c36ff.dir/build.make CMakeFiles/cmTC_c36ff.dir/build] + ignore line: [make[1]: Entering directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp'] + ignore line: [Building CXX object CMakeFiles/cmTC_c36ff.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -o CMakeFiles/cmTC_c36ff.dir/CMakeCXXCompilerABI.cpp.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Linking CXX executable cmTC_c36ff] + ignore line: [/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_c36ff.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_c36ff.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_c36ff ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_c36ff' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccMNnVAd.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_c36ff /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_c36ff.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccMNnVAd.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_c36ff] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] + arg [CMakeFiles/cmTC_c36ff.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtend.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5] ==> [/usr/lib/gcc/x86_64-linux-gnu/5] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting CXX [-std=c++1z] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_341fe/fast" +/usr/bin/make -f CMakeFiles/cmTC_341fe.dir/build.make CMakeFiles/cmTC_341fe.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_341fe.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++1z -o CMakeFiles/cmTC_341fe.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_341fe +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_341fe.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_341fe.dir/feature_tests.cxx.o -o cmTC_341fe +make[1]: Leaving directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++14] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_f3ed5/fast" +/usr/bin/make -f CMakeFiles/cmTC_f3ed5.dir/build.make CMakeFiles/cmTC_f3ed5.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_f3ed5.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++14 -o CMakeFiles/cmTC_f3ed5.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_f3ed5 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f3ed5.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_f3ed5.dir/feature_tests.cxx.o -o cmTC_f3ed5 +make[1]: Leaving directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++11] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_1e310/fast" +/usr/bin/make -f CMakeFiles/cmTC_1e310.dir/build.make CMakeFiles/cmTC_1e310.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_1e310.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++11 -o CMakeFiles/cmTC_1e310.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_1e310 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1e310.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_1e310.dir/feature_tests.cxx.o -o cmTC_1e310 +make[1]: Leaving directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++98] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_80699/fast" +/usr/bin/make -f CMakeFiles/cmTC_80699.dir/build.make CMakeFiles/cmTC_80699.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_80699.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++98 -o CMakeFiles/cmTC_80699.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_80699 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_80699.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_80699.dir/feature_tests.cxx.o -o cmTC_80699 +make[1]: Leaving directory '/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:0cxx_alias_templates + Feature record: CXX_FEATURE:0cxx_alignas + Feature record: CXX_FEATURE:0cxx_alignof + Feature record: CXX_FEATURE:0cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:0cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:0cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:0cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:0cxx_default_function_template_args + Feature record: CXX_FEATURE:0cxx_defaulted_functions + Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:0cxx_delegating_constructors + Feature record: CXX_FEATURE:0cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:0cxx_enum_forward_declarations + Feature record: CXX_FEATURE:0cxx_explicit_conversions + Feature record: CXX_FEATURE:0cxx_extended_friend_declarations + Feature record: CXX_FEATURE:0cxx_extern_templates + Feature record: CXX_FEATURE:0cxx_final + Feature record: CXX_FEATURE:0cxx_func_identifier + Feature record: CXX_FEATURE:0cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:0cxx_inheriting_constructors + Feature record: CXX_FEATURE:0cxx_inline_namespaces + Feature record: CXX_FEATURE:0cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:0cxx_local_type_template_args + Feature record: CXX_FEATURE:0cxx_long_long_type + Feature record: CXX_FEATURE:0cxx_noexcept + Feature record: CXX_FEATURE:0cxx_nonstatic_member_init + Feature record: CXX_FEATURE:0cxx_nullptr + Feature record: CXX_FEATURE:0cxx_override + Feature record: CXX_FEATURE:0cxx_range_for + Feature record: CXX_FEATURE:0cxx_raw_string_literals + Feature record: CXX_FEATURE:0cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:0cxx_right_angle_brackets + Feature record: CXX_FEATURE:0cxx_rvalue_references + Feature record: CXX_FEATURE:0cxx_sizeof_member + Feature record: CXX_FEATURE:0cxx_static_assert + Feature record: CXX_FEATURE:0cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:0cxx_thread_local + Feature record: CXX_FEATURE:0cxx_trailing_return_types + Feature record: CXX_FEATURE:0cxx_unicode_literals + Feature record: CXX_FEATURE:0cxx_uniform_initialization + Feature record: CXX_FEATURE:0cxx_unrestricted_unions + Feature record: CXX_FEATURE:0cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:0cxx_variadic_macros + Feature record: CXX_FEATURE:0cxx_variadic_templates diff --git a/week04/cmake-build-debug/CMakeFiles/Makefile.cmake b/week04/cmake-build-debug/CMakeFiles/Makefile.cmake new file mode 100644 index 00000000..3a0ba2d5 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/Makefile.cmake @@ -0,0 +1,50 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "../CMakeLists.txt" + "CMakeFiles/3.13.2/CMakeCCompiler.cmake" + "CMakeFiles/3.13.2/CMakeCXXCompiler.cmake" + "CMakeFiles/3.13.2/CMakeSystem.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCommonLanguageInclude.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeFindCodeBlocks.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeGenericSystem.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeInitializeConfigs.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeLanguageInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeSystemSpecificInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeSystemSpecificInitialize.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU-C.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU-CXX.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU-C.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU-CXX.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/UnixPaths.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/ProcessorCount.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/529_updateBoard.dir/DependInfo.cmake" + ) diff --git a/week04/cmake-build-debug/CMakeFiles/Makefile2 b/week04/cmake-build-debug/CMakeFiles/Makefile2 new file mode 100644 index 00000000..6f20190f --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/Makefile2 @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# The main recursive all target +all: + +.PHONY : all + +# The main recursive preinstall target +preinstall: + +.PHONY : preinstall + +# The main recursive clean target +clean: + +.PHONY : clean + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week04 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week04/cmake-build-debug + +#============================================================================= +# Target rules for target CMakeFiles/529_updateBoard.dir + +# All Build rule for target. +CMakeFiles/529_updateBoard.dir/all: + $(MAKE) -f CMakeFiles/529_updateBoard.dir/build.make CMakeFiles/529_updateBoard.dir/depend + $(MAKE) -f CMakeFiles/529_updateBoard.dir/build.make CMakeFiles/529_updateBoard.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target 529_updateBoard" +.PHONY : CMakeFiles/529_updateBoard.dir/all + +# Include target in all. +all: CMakeFiles/529_updateBoard.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/529_updateBoard.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/529_updateBoard.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/529_updateBoard.dir/rule + +# Convenience name for target. +529_updateBoard: CMakeFiles/529_updateBoard.dir/rule + +.PHONY : 529_updateBoard + +# clean rule for target. +CMakeFiles/529_updateBoard.dir/clean: + $(MAKE) -f CMakeFiles/529_updateBoard.dir/build.make CMakeFiles/529_updateBoard.dir/clean +.PHONY : CMakeFiles/529_updateBoard.dir/clean + +# clean rule for target. +clean: CMakeFiles/529_updateBoard.dir/clean + +.PHONY : clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/week04/cmake-build-debug/CMakeFiles/TargetDirectories.txt b/week04/cmake-build-debug/CMakeFiles/TargetDirectories.txt new file mode 100644 index 00000000..be7ce83f --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/rebuild_cache.dir +/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir +/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/edit_cache.dir diff --git a/week04/cmake-build-debug/CMakeFiles/clion-environment.txt b/week04/cmake-build-debug/CMakeFiles/clion-environment.txt new file mode 100644 index 00000000..270d93c2 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/clion-environment.txt @@ -0,0 +1,3 @@ +ToolSet: 1.0 (local)Options: + +Options: \ No newline at end of file diff --git a/week04/cmake-build-debug/CMakeFiles/clion-log.txt b/week04/cmake-build-debug/CMakeFiles/clion-log.txt new file mode 100644 index 00000000..7feac660 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/clion-log.txt @@ -0,0 +1,4 @@ +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" /home/lewang/algorithm018/week04 +-- Configuring done +-- Generating done +-- Build files have been written to: /home/lewang/algorithm018/week04/cmake-build-debug diff --git a/week04/cmake-build-debug/CMakeFiles/cmake.check_cache b/week04/cmake-build-debug/CMakeFiles/cmake.check_cache new file mode 100644 index 00000000..3dccd731 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/week04/cmake-build-debug/CMakeFiles/feature_tests.bin b/week04/cmake-build-debug/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..c1bade88a09ced4221830cdf30b0fa11360b60ea GIT binary patch literal 12520 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 S*dX~wSGpXhnNd-{{J#MLk8ZjE literal 0 HcmV?d00001 diff --git a/week04/cmake-build-debug/CMakeFiles/feature_tests.c b/week04/cmake-build-debug/CMakeFiles/feature_tests.c new file mode 100644 index 00000000..83e86dd8 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/feature_tests.c @@ -0,0 +1,34 @@ + + const char features[] = {"\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/week04/cmake-build-debug/CMakeFiles/feature_tests.cxx b/week04/cmake-build-debug/CMakeFiles/feature_tests.cxx new file mode 100644 index 00000000..b93418c6 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/week04/cmake-build-debug/CMakeFiles/progress.marks b/week04/cmake-build-debug/CMakeFiles/progress.marks new file mode 100644 index 00000000..0cfbf088 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/progress.marks @@ -0,0 +1 @@ +2 diff --git a/week04/cmake-build-debug/Makefile b/week04/cmake-build-debug/Makefile new file mode 100644 index 00000000..42b90476 --- /dev/null +++ b/week04/cmake-build-debug/Makefile @@ -0,0 +1,178 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week04 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week04/cmake-build-debug + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named 529_updateBoard + +# Build rule for target. +529_updateBoard: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 529_updateBoard +.PHONY : 529_updateBoard + +# fast build rule for target. +529_updateBoard/fast: + $(MAKE) -f CMakeFiles/529_updateBoard.dir/build.make CMakeFiles/529_updateBoard.dir/build +.PHONY : 529_updateBoard/fast + +529_updateBoard.o: 529_updateBoard.cpp.o + +.PHONY : 529_updateBoard.o + +# target to build an object file +529_updateBoard.cpp.o: + $(MAKE) -f CMakeFiles/529_updateBoard.dir/build.make CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.o +.PHONY : 529_updateBoard.cpp.o + +529_updateBoard.i: 529_updateBoard.cpp.i + +.PHONY : 529_updateBoard.i + +# target to preprocess a source file +529_updateBoard.cpp.i: + $(MAKE) -f CMakeFiles/529_updateBoard.dir/build.make CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.i +.PHONY : 529_updateBoard.cpp.i + +529_updateBoard.s: 529_updateBoard.cpp.s + +.PHONY : 529_updateBoard.s + +# target to generate assembly for a file +529_updateBoard.cpp.s: + $(MAKE) -f CMakeFiles/529_updateBoard.dir/build.make CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.s +.PHONY : 529_updateBoard.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... rebuild_cache" + @echo "... 529_updateBoard" + @echo "... edit_cache" + @echo "... 529_updateBoard.o" + @echo "... 529_updateBoard.i" + @echo "... 529_updateBoard.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/week04/cmake-build-debug/cmake_install.cmake b/week04/cmake-build-debug/cmake_install.cmake new file mode 100644 index 00000000..33e71113 --- /dev/null +++ b/week04/cmake-build-debug/cmake_install.cmake @@ -0,0 +1,49 @@ +# Install script for directory: /home/lewang/algorithm018/week04 + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/lewang/algorithm018/week04/cmake-build-debug/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/week04/cmake-build-debug/week02.cbp b/week04/cmake-build-debug/week02.cbp new file mode 100644 index 00000000..4b3f61de --- /dev/null +++ b/week04/cmake-build-debug/week02.cbp @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="UTF-8"?> +<CodeBlocks_project_file> + <FileVersion major="1" minor="6"/> + <Project> + <Option title="week02"/> + <Option makefile_is_custom="1"/> + <Option compiler="gcc"/> + <Option virtualFolders="CMake Files\;"/> + <Build> + <Target title="all"> + <Option working_dir="/home/lewang/algorithm018/week04/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 all"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="rebuild_cache"> + <Option working_dir="/home/lewang/algorithm018/week04/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 rebuild_cache"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="529_updateBoard"> + <Option output="/home/lewang/algorithm018/week04/cmake-build-debug/529_updateBoard" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week04/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 529_updateBoard"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="529_updateBoard/fast"> + <Option output="/home/lewang/algorithm018/week04/cmake-build-debug/529_updateBoard" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week04/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 529_updateBoard/fast"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="edit_cache"> + <Option working_dir="/home/lewang/algorithm018/week04/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 edit_cache"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + </Build> + <Unit filename="/home/lewang/algorithm018/week04/529_updateBoard.cpp"> + <Option target="529_updateBoard"/> + </Unit> + <Unit filename="/home/lewang/algorithm018/week04/CMakeLists.txt"> + <Option virtualFolder="CMake Files\"/> + </Unit> + </Project> +</CodeBlocks_project_file> From 6893d7f69b86d10ee2286499fd0824c2477106e1 Mon Sep 17 00:00:00 2001 From: Ella2le <1071444737@qq.com> Date: Wed, 18 Nov 2020 03:23:44 +0800 Subject: [PATCH 16/21] finish week4 homework --- week04/153_findMin.cpp | 13 ++ week04/33_search.cpp | 89 +++++++++++ week04/45_jump.cpp | 36 +++++ week04/529_updateBoard.cpp | 138 ++++++++++++++++-- week04/55_canJump.cpp | 2 +- week04/74_searchMatrix.cpp | 90 +++++++++++- week04/874_robotSim.cpp | 80 ++++++++++ week04/CMakeLists.txt | 2 +- week04/NOTE.md | 10 +- week04/cmake-build-debug/45_jump | Bin 0 -> 66216 bytes week04/cmake-build-debug/529_updateBoard | Bin 0 -> 268936 bytes week04/cmake-build-debug/74_searchMatrix | Bin 0 -> 112384 bytes .../CMakeFiles/45_jump.dir/45_jump.cpp.o | Bin 0 -> 99696 bytes .../CMakeFiles/45_jump.dir/CXX.includecache | 16 ++ .../CMakeFiles/45_jump.dir/DependInfo.cmake | 20 +++ .../CMakeFiles/45_jump.dir/build.make | 98 +++++++++++++ .../CMakeFiles/45_jump.dir/cmake_clean.cmake | 10 ++ .../CMakeFiles/45_jump.dir/depend.internal | 5 + .../CMakeFiles/45_jump.dir/depend.make | 5 + .../CMakeFiles/45_jump.dir/flags.make | 10 ++ .../CMakeFiles/45_jump.dir/link.txt | 1 + .../CMakeFiles/45_jump.dir/progress.make | 3 + .../529_updateBoard.dir/529_updateBoard.cpp.o | Bin 0 -> 467440 bytes .../529_updateBoard.dir/CXX.includecache | 16 ++ .../529_updateBoard.dir/depend.internal | 5 + .../529_updateBoard.dir/depend.make | 7 +- .../74_searchMatrix.dir/74_searchMatrix.cpp.o | Bin 0 -> 183616 bytes .../74_searchMatrix.dir/CXX.includecache | 16 ++ .../74_searchMatrix.dir/DependInfo.cmake | 20 +++ .../CMakeFiles/74_searchMatrix.dir/build.make | 98 +++++++++++++ .../74_searchMatrix.dir/cmake_clean.cmake | 10 ++ .../74_searchMatrix.dir/depend.internal | 5 + .../74_searchMatrix.dir/depend.make | 5 + .../CMakeFiles/74_searchMatrix.dir/flags.make | 10 ++ .../CMakeFiles/74_searchMatrix.dir/link.txt | 1 + .../74_searchMatrix.dir/progress.make | 3 + .../874_robotSim.dir/CXX.includecache | 16 ++ .../874_robotSim.dir/DependInfo.cmake | 20 +++ .../CMakeFiles/874_robotSim.dir/build.make | 98 +++++++++++++ .../874_robotSim.dir/cmake_clean.cmake | 10 ++ .../874_robotSim.dir/depend.internal | 5 + .../CMakeFiles/874_robotSim.dir/depend.make | 5 + .../CMakeFiles/874_robotSim.dir/flags.make | 10 ++ .../CMakeFiles/874_robotSim.dir/link.txt | 1 + .../CMakeFiles/874_robotSim.dir/progress.make | 3 + .../CMakeFiles/Makefile.cmake | 2 +- week04/cmake-build-debug/CMakeFiles/Makefile2 | 32 ++-- .../CMakeFiles/TargetDirectories.txt | 2 +- week04/cmake-build-debug/Makefile | 52 +++---- week04/cmake-build-debug/week02.cbp | 16 +- 50 files changed, 1016 insertions(+), 80 deletions(-) create mode 100755 week04/cmake-build-debug/45_jump create mode 100755 week04/cmake-build-debug/529_updateBoard create mode 100755 week04/cmake-build-debug/74_searchMatrix create mode 100644 week04/cmake-build-debug/CMakeFiles/45_jump.dir/45_jump.cpp.o create mode 100644 week04/cmake-build-debug/CMakeFiles/45_jump.dir/CXX.includecache create mode 100644 week04/cmake-build-debug/CMakeFiles/45_jump.dir/DependInfo.cmake create mode 100644 week04/cmake-build-debug/CMakeFiles/45_jump.dir/build.make create mode 100644 week04/cmake-build-debug/CMakeFiles/45_jump.dir/cmake_clean.cmake create mode 100644 week04/cmake-build-debug/CMakeFiles/45_jump.dir/depend.internal create mode 100644 week04/cmake-build-debug/CMakeFiles/45_jump.dir/depend.make create mode 100644 week04/cmake-build-debug/CMakeFiles/45_jump.dir/flags.make create mode 100644 week04/cmake-build-debug/CMakeFiles/45_jump.dir/link.txt create mode 100644 week04/cmake-build-debug/CMakeFiles/45_jump.dir/progress.make create mode 100644 week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.o create mode 100644 week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/CXX.includecache create mode 100644 week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/depend.internal create mode 100644 week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.o create mode 100644 week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/CXX.includecache create mode 100644 week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/DependInfo.cmake create mode 100644 week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/build.make create mode 100644 week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/cmake_clean.cmake create mode 100644 week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/depend.internal create mode 100644 week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/depend.make create mode 100644 week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/flags.make create mode 100644 week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/link.txt create mode 100644 week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/progress.make create mode 100644 week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/CXX.includecache create mode 100644 week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/DependInfo.cmake create mode 100644 week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/build.make create mode 100644 week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/cmake_clean.cmake create mode 100644 week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/depend.internal create mode 100644 week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/depend.make create mode 100644 week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/flags.make create mode 100644 week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/link.txt create mode 100644 week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/progress.make diff --git a/week04/153_findMin.cpp b/week04/153_findMin.cpp index ffb13c3c..b82370f6 100644 --- a/week04/153_findMin.cpp +++ b/week04/153_findMin.cpp @@ -1,4 +1,17 @@ // // Created by lewang on 11/15/20. // +class Solution { + int search2(vector<int>& nums) { + for(int i = 0; i < nums.size()-1; i++) { + if((nums[i+1] - nums[i]) < 0) { + + return nums[i+1]; + } + + } + return nums[0]; + + } +}; diff --git a/week04/33_search.cpp b/week04/33_search.cpp index ffb13c3c..67f4ef55 100644 --- a/week04/33_search.cpp +++ b/week04/33_search.cpp @@ -1,4 +1,93 @@ // // Created by lewang on 11/15/20. // +#include <iostream> +#include <vector>> +#include <unordered_map> +#include <limits.h> +#include <cmath> +using namespace std; +class Solution { +public: + int search(vector<int>& nums, int target) { + unordered_map<int, int> m; + for(int i = 0; i < nums.size(); i++) { + m[nums[i]] = i; + } + auto it = m.find(target); + return it->second; + } +//不出意外地超时了 +public: + int left,right,i; + int search2(vector<int>& nums, int target) { + if(nums.size() == 1){ + if(nums[0] == target) return 0; + else return -1; + } + for(i = 0; i < nums.size()-1; i++) { + if(target == nums[i]) return i; + if(target == nums[i+1]) return i+1; + if((nums[i+1] - nums[i]) < 0) { + if(target <nums[i]){ + left = 0; + right = i; + } + if(target > nums[i+1]){ + left = i +1; + right = (int)nums.size()-1; + } + } + + } + + while(left<right){ + int mid = (left+right)/2; + if(nums[mid] == target) + return mid; + else if(nums[mid] > target){ + right = mid -1; + }else{ + left = mid +1; + } + } + return -1; + + } + //Success: + //Runtime:4 ms, faster than 92.04% of C++ online submissions. + //Memory Usage:11.3 MB, less than 9.06% of C++ online submissions. + +//------------国际版--光头哥的---看着费劲--------------------- + int search3(vector<int>& nums, int target) { + int lo = 0, hi = nums.size(); + while(lo < hi) { + int mid = (lo + hi) / 2; + + double num = (nums[mid] < nums[0] == (target< nums[0])) + ? nums[mid] + : target < nums[0] ? -INFINITY : INFINITY; + + if(num < target) + lo = mid + 1; + else if( num > target) + hi = mid; + else return mid; + } + return -1; + } +// 6:34 AM info +// Success: +// Runtime:8 ms, faster than 62.83% of C++ online submissions. +// Memory Usage:11.3 MB, less than 7.30% of C++ online submissions. +}; + +int main() { + Solution test; + vector<int> nums{4,5,6,7,0,1,2}; + int res = 0; + res = test.search2(nums,3); + cout<<res; + return 0; +} diff --git a/week04/45_jump.cpp b/week04/45_jump.cpp index ffb13c3c..e51f2fdd 100644 --- a/week04/45_jump.cpp +++ b/week04/45_jump.cpp @@ -1,4 +1,40 @@ // // Created by lewang on 11/15/20. // +#include <iostream> +#include <vector> +#include <limits.h> +using namespace std; +class Solution { +public: + int jump(vector<int>& nums) { + int maxPos = 0, n = nums.size(), end = 0, step = 0; + for(int i = 0; i < n -1; i++) { + //如果当前能到的最远位置比当下的坐标序号大, + if(maxPos >= i ) { + //判断当前的坐标到的最远的地方和之前位置能到的最远的位置谁更远 + maxPos = max(maxPos, i+ nums[i]); + //如果当前位置的下标就是能到的最远距离,就更新一部step,即就走到这了,找不到能走得更远的位置 + if(i ==end) { + end = maxPos; + ++step; + } + } + } + return step; + } +//时间复杂度O(n) 一个循环 +//空间复杂度O(1),开了4个int; + +}; + +int main(){ + Solution test; + vector<int> nums {2,3,1,1,4}; + int res = test.jump(nums); + cout<<res<<endl; + + return 0; + +} \ No newline at end of file diff --git a/week04/529_updateBoard.cpp b/week04/529_updateBoard.cpp index c37b7efe..d0eebe13 100644 --- a/week04/529_updateBoard.cpp +++ b/week04/529_updateBoard.cpp @@ -4,6 +4,7 @@ #include <iostream> #include <vector> #include <string> +#include <deque> using namespace std; @@ -137,18 +138,27 @@ class Solution { } //-----------参考中文官方的dfs+模拟------------------------------- + public: int dir_x[8] = {0, 1, 0, -1, 1, 1,-1, -1};//行变换 int dir_y[8] = {1, 0, -1, 0, 1, -1, 1, -1};//列变换 - // 右, 下, 左,上,右下,左下,右上,左下 - //这种offset的写法在岛屿计数中也是用过了,记住在矩阵操作中可以简化代码! - void searchM(vector<vector<char>>& board, int x, int y) { + +// 右, 下, 左,上,右下,左下,右上,左下 +//这种offset的写法在岛屿计数中也是用过了,记住在矩阵操作中可以简化代码! +private: + void searchM(vector<vector<char>>& board, int x, int y,vector<vector<bool>> visited) { int cnt = 0; //用来标记该位置8连接上有几个地雷 - int nr = (int)board.size(); - int nc = (int)board[0].size(); + const int nr = (int)board.size(); + const int nc = (int)board[0].size(); + //unordered_map<pair<int,int>,bool> visited(pair<nr,nc>,false); + + + + if(visited[x][y] == true) return; + for(int i = 0; i< 8; ++i) { //遍历(x,y)的8连通位置 - int tx = x+dir_x[i]; + int tx = x + dir_x[i]; int ty = y + dir_y[i]; if(tx < 0 || tx >= nr || ty < 0 || ty >= nc) { continue; @@ -156,46 +166,142 @@ class Solution { //不用判断M, 因为如果有M的话游戏已经结束了?? //如果周边有地雷其加一 cnt += board[tx][ty] == 'M'; - } + + }// + if(cnt > 0) { - //如果(x,y)周边有地雷,则棋盘上对应位置显示其附近的地雷数量 - board[x][y] = (char)cnt + '0'; + + //如果(x,y)周边有地雷,则棋盘上对应位置显示其附近的地雷数量3 + board[x][y] =(char)(cnt + '0'); + visited[x][y] = true; }else { //否则就显示'B',来表示这个格子周围没有地雷 board[x][y] = 'B'; + visited[x][y] = true; //如果这个 格子是"B"要继续遍历其周围 for (int i = 0; i < 8; ++i) { int tx = x +dir_x[i]; int ty = y + dir_y[i]; + if(tx < 0 ||tx >= nr || ty < 0 || ty >= nc){ continue; } - searchM(board,tx,ty); - + searchM(board,tx,ty,visited); } } } - +public: vector<vector<char>> updateBoard2(vector<vector<char>>& board, vector<int>& click) { + const int nr = (int)board.size(); + const int nc = (int)board[0].size(); + vector<vector<bool>> visited(nr,vector<bool>(nc,false)); int x = click[0], y =click[1]; + if(x<0 || y<0 || x >= board.size() || y >= board[0].size() ) { + cerr << "Click Error!!!"<<endl; + return board; + } if(board[x][y] == 'M'){ board[x][y] = 'X'; }else { - searchM(board,x,y); + cout<<"here1"<<endl; + searchM(board,x,y,visited); } + return board; } +//Compile Error: +//Time Limit Exceeded +//时间复杂度O(mn),m,n分别是面板的行列数 +//空间复杂度,O(mn).空间复杂度取决于递归的栈深度,而递归栈深度在最坏的情况下有可能遍历整个面板 - //时间复杂度O(nm), 其中n,m分别是board的行数和列数,最坏情况下遍历整个面板 - //空间复杂度O(nm), 空间复杂度取决于递归的栈深度,而递归栈深度在最坏情况下有可能遍历整个面板n*m +//-----------------参考国际栈的DFS----------------------- +public: + vector<vector<char>> updateBoard22(vector<vector<char>> &board, vector<int> &click) { + int x = click[0]; + int y = click[1]; + if(board[x][y] == 'M') { + board[x][y] = 'X'; + return board; + } + dfs(board,x,y); + return board; + } + void dfs2(vector<vector<char>> &board, int x, int y) { + if(!judge(board,x,y)) return; + vector<vector<int>> v= {{1,-1},{1,0},{1,1},{-1,-1},{-1,0},{-1,1},{0,-1},{0,1}}; + int count = 0; + if(board[x][y] == 'E') { + for(int i = 0; i < 8; i++) { + if(judge(board,x+v[i][0],y+v[i][1]) && board[x+v[i][0]][y+v[i][1]] == 'M'){ + count++; + } + } + if(count>0) { + board[x][y] = '0' + count; + }else{ + board[x][y] = 'B'; + for(int i = 0; i < 8; i++) { + dfs(board, x+v[i][0],y+v[i][1]); + } + } + } + } + //用来判断数组是否越界 + bool judge( vector<vector<char>> &board, int x, int y) { + return x>=0 && x < board.size() && y >= 0 && y < board[0].size(); + } +//运行结果 +// +//Success: +//Runtime:224 ms, faster than 5.07% of C++ online submissions. +//Memory Usage:37.5 MB, less than 5.00% of C++ online submissions. +//-----------------参考国际栈的BFS----------------------- + vector<vector<char>> updateBoard3(vector<vector<char>>& board, vector<int>& click) { + deque<pair<int,int>> q({{click[0], click[1]}}); + while(!q.empty()){ + auto c = q.front().first, r = q.front().second, mines = 0; + vector<pair<int,int>> neighbours; + if(board[c][r] == 'M') board[c][r] = 'X'; + else for (auto i = -1; i <= 1; ++i){ + for (auto j = -1; j <= 1; ++j) { + if(c+i >= 0 && r+j >= 0 && c + i < board.size() && r+j < board[0].size()) { + if(board[c+i][r+j] == 'M') ++mines; + else if(mines == 0 && board[c +i][r+j] == 'E') neighbours.push_back({c+i, r+j}); + } + } + } + if(mines > 0) board[c][r] = '0' + mines; + else for (auto n:neighbours) { + board[n.first][n.second] = 'B'; + q.push_back(n); + } + q.pop_front(); + } + return board; + } +//Success: +//Runtime:48 ms, faster than 99.46% of C++ online submissions. +//Memory Usage:13.9 MB, less than 31.66% of C++ online submissions. }; int main() { Solution test; - vector<vector<< + vector<vector<char>> board{{'E','E','E','E'},{'E','E','E','E'},{'E','E','E','E'},{'E','E','M','E'}}; + vector<int> click {2,0}; + vector<vector<char>> res; + res = test.updateBoard2(board,click); + + + for(auto a : board) { + for(auto b : a){ + cout<<b<<","; + } + + } + cout<<endl; return 0; } \ No newline at end of file diff --git a/week04/55_canJump.cpp b/week04/55_canJump.cpp index 18227eee..b60538c7 100644 --- a/week04/55_canJump.cpp +++ b/week04/55_canJump.cpp @@ -66,7 +66,7 @@ class Solution { public: bool canJump(vector<int>& nums) { int n = nums.size(); - int ri ghtmost = 0; + int rightmost = 0; for( int i = 0; i< n; i++) { if( i <= rightmost) { rightmost = max(rightmost, i + nums[i]); diff --git a/week04/74_searchMatrix.cpp b/week04/74_searchMatrix.cpp index ffb13c3c..969d03a0 100644 --- a/week04/74_searchMatrix.cpp +++ b/week04/74_searchMatrix.cpp @@ -1,4 +1,88 @@ -// -// Created by lewang on 11/15/20. -// +#include <iostream> +#include <vector> +#include <limits.h> +using namespace std; + +class Solution { +public: + bool searchMatrix(vector<vector<int>>& matrix, int target) { + int r_left, r_right, c_left,c_right; + int nr = (int)matrix.size(); + int nc = (int)matrix[0].size(); + if(nr == 0 || nc == 0) return false; + + int row = 0 ,col = 0; + r_left = 0,r_right = nr; + //搜索所在行 + while (r_left < r_right) { + int mid = (r_left + r_right)/2; + if(matrix[mid][0] > target) { + r_right = mid - 1; + } + if(matrix[mid][0] < target){ + if(matrix[mid][nc-1] > target) { + row = mid; + break; + }else if(matrix[mid][nc-1] < target){ + r_left = mid +1; + } + } + if(matrix[mid][0] == target || matrix[mid][nc-1] == target) return true; + + } + //搜索所在列 + cout<<row<<endl; + //if(row > nr) return false; + + c_left = 0, c_right = nc; + while (c_left < c_right) { + int mid = c_left + (c_right-c_left)/2;//(c_left + c_right)/2; + if(matrix[row][mid] == target) return true; + if(matrix[row][mid] > target) { + c_right = mid - 1; + if(matrix[row][c_right] == target) return true; + } + if(matrix[row][mid] < target){ + c_left = mid+1; + if(matrix[row][c_left] == target) return true; + } + + } + + + return false; + //超时 + } + +//二维变一维+二分 + bool searchMatrix2(vector<vector<int>>& matrix, int target) { + int m = matrix.size(); + if(m == 0) return false; + int n = matrix[0].size(); + + int left = 0, right = m*n -1; + int id, p; + while(left < right){ + id = (left + right)/2; + p = matrix[id/n][id%n]; + if(target == p) return true; + else { + if(target < p) right = id -1; + else left = p +1; + } + } + return false; + } +}; + + +int main(){ + Solution test; + vector<vector<int>> nums ={{1,3,5,7},{10,11,16,20},{23,30,34,50}};//{{1,3,5,7},{10,11,16,20},{23,30,34,50}}; + int target = 3; + + int res = test.searchMatrix(nums,target); + cout << res; + return 0; +} \ No newline at end of file diff --git a/week04/874_robotSim.cpp b/week04/874_robotSim.cpp index ffb13c3c..d92ea1cb 100644 --- a/week04/874_robotSim.cpp +++ b/week04/874_robotSim.cpp @@ -2,3 +2,83 @@ // Created by lewang on 11/15/20. // +#include <iostream> +#include <vector> +#include <unordered_set> +using namespace std; + +class Solution { +public: + int robotSim(vector<int>& commands, vector<vector<int>>& obstacles){ + unordered_set<pair<int,int>> obDict;//(obstacles.begin(),obstacles.end()); + for(vector<int> &obstacle : obstacles){ + obDict.insert(make_pair(obstacle[0],obstacle[1])) + } + int y = 0, x = 0, di = 0; + int dx[4] = {0 ,1, 0, -1}; + int dy[4] = {1, 0, -1, 0}; + + int ans = 0; + for(int cmd:commands) { + if(cmd == -2) { + di =(di +3)%4; + }else if(cmd == -1){ + di = (di + 1)%4; + }else{ + for (int k = 0; k < cmd; ++k) { + int nx = x + dx[di]; + int ny = y + dy[di]; + if(obDict.find(make_pair(nx,ny)) == obDict.end()) { + x = nx; + y = ny; + ans = max(ans, x*x + y*y); + } + } + } + } + return ans; + } + + //-------------参考国家版------------------ + int robotSim2(vector<int>& commands, vector<vector<int>>& obstacles) { + unordered_set<string> obs; + for(int i = 0; i < obstacles.size(); i++) { + obs.insert(to_string(obstacles[i][0]) + "#" +to_string(obstacles[i][1])); + } + int res = 0,dir =0, x =0, y= 0; + vector<vector<int>> ds={{0,1},{1,0},{0,-1},{-1,0}}; + for(int i = 0; i < commands.size(); i++) { + if(commands[i] == -2) { + dir --; + if(dir == -1){ + dir =3; + } + } + else if(commands[i] == -1) { + dir++; + if(dir == 4) dir = 0; + } + else{ + for(int j = 0; j < commands[i]; j++) { + string pos = to_string(x + ds[dir][0]) + "#" + to_string(y + ds[dir][1]); + if(obs.find(pos)!=obs.end()) break; + x+=ds[dir][0], y+=ds[dir][1]; + } + res = max(res,x*x + y*y); + } + if(dir == -1) dir =3;//这种情况在往回走了,不用计算 + if(dir == 4) dir = 0; + } + return res; + } + +}; + +int main() { + Solution test; + vector<int> commands {4,-1,4}; + vector<vector<int>> obstacles {{2,4},{3,4}}; + test.robotSim(commands,obstacles); + + return 0; +} \ No newline at end of file diff --git a/week04/CMakeLists.txt b/week04/CMakeLists.txt index 0b71b065..d628aef0 100644 --- a/week04/CMakeLists.txt +++ b/week04/CMakeLists.txt @@ -5,4 +5,4 @@ set(CMAKE_CXX_STANDARD_REQUIRED ) #add_executable (move_zeros lc-283_move-zeros.cpp) #target_link_libraries (move_zeros LINK_PUBLIC week01) -add_executable (529_updateBoard 529_updateBoard.cpp) \ No newline at end of file +add_executable (74_searchMatrix 74_searchMatrix.cpp) \ No newline at end of file diff --git a/week04/NOTE.md b/week04/NOTE.md index fcfacbda..f03121bf 100644 --- a/week04/NOTE.md +++ b/week04/NOTE.md @@ -160,9 +160,9 @@ void bfs(Node* root) { - √ [柠檬水找零](https://leetcode-cn.com/problems/lemonade-change/description/)(亚马逊在半年内面试中考过) - √ [买卖股票的最佳时机 II ](https://leetcode-cn.com/problems/best-time-to-buy-and-sell-stock-ii/description/)(亚马逊、字节跳动、微软在半年内面试中考过) - √ [分发饼干](https://leetcode-cn.com/problems/assign-cookies/description/)(亚马逊在半年内面试中考过) -- [模拟行走机器人](https://leetcode-cn.com/problems/walking-robot-simulation/description/) +- √ [模拟行走机器人](https://leetcode-cn.com/problems/walking-robot-simulation/description/) - √ [跳跃游戏](https://leetcode-cn.com/problems/jump-game/) (亚马逊、华为、Facebook 在半年内面试中考过) -- [跳跃游戏 II ](https://leetcode-cn.com/problems/jump-game-ii/)(亚马逊、华为、字节跳动在半年内面试中考过) +- √ [跳跃游戏 II ](https://leetcode-cn.com/problems/jump-game-ii/)(亚马逊、华为、字节跳动在半年内面试中考过) # 二分查找 @@ -209,9 +209,9 @@ while left <= right: #此处要注意有没有等于号 ## 课后作业 -- [搜索旋转排序数组](https://leetcode-cn.com/problems/search-in-rotated-sorted-array/)(Facebook、字节跳动、亚马逊在半年内面试常考) -- [搜索二维矩阵](https://leetcode-cn.com/problems/search-a-2d-matrix/)(亚马逊、微软、Facebook 在半年内面试中考过) -- [寻找旋转排序数组中的最小值](https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/)(亚马逊、微软、字节跳动在半年内面试中考过) +- √ [搜索旋转排序数组](https://leetcode-cn.com/problems/search-in-rotated-sorted-array/)(Facebook、字节跳动、亚马逊在半年内面试常考) +- √ [搜索二维矩阵](https://leetcode-cn.com/problems/search-a-2d-matrix/)(亚马逊、微软、Facebook 在半年内面试中考过) +- √ [寻找旋转排序数组中的最小值](https://leetcode-cn.com/problems/find-minimum-in-rotated-sorted-array/)(亚马逊、微软、字节跳动在半年内面试中考过) - 使用二分查找,寻找一个半有序数组 [4, 5, 6, 7, 0, 1, 2] 中间无序的地方 说明:同学们可以将自己的思路、代码写在学习总结中 diff --git a/week04/cmake-build-debug/45_jump b/week04/cmake-build-debug/45_jump new file mode 100755 index 0000000000000000000000000000000000000000..ea27109710daa11ca5dc5d3b1bfa22c4f46e9303 GIT binary patch literal 66216 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 literal 0 HcmV?d00001 diff --git a/week04/cmake-build-debug/529_updateBoard b/week04/cmake-build-debug/529_updateBoard new file mode 100755 index 0000000000000000000000000000000000000000..8a1a19579a7d84531e3617196b12bd48c223d384 GIT binary patch literal 268936 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 R^!`5`={dz@@<LK<{XgLR=NkY3 literal 0 HcmV?d00001 diff --git a/week04/cmake-build-debug/74_searchMatrix b/week04/cmake-build-debug/74_searchMatrix new file mode 100755 index 0000000000000000000000000000000000000000..762e9a9964c914fd2f7cfb051b0aafa71ce8d186 GIT binary patch literal 112384 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 LziRw1_3Hg!CU0P? literal 0 HcmV?d00001 diff --git a/week04/cmake-build-debug/CMakeFiles/45_jump.dir/45_jump.cpp.o b/week04/cmake-build-debug/CMakeFiles/45_jump.dir/45_jump.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..0b86a7b724ebfd05d411f94eed21766325ac97c5 GIT binary patch literal 99696 zcmeEvd3==B)&KL%BruQwfk9T4unH(431N{n2!VvfAd8@=!;nluARAc-ARtP$MnuKE zO4U}YtyZhm)~#-JuhzY4TW!_0)~#+;YinQqeb2e)KF>2}W`Oqn{Qi5N4^QsB-*fK0 z=bpQryUfFBWsBy8T-ULW>&$fgkVPG*Ip(9K43|2WJC`x<M1&{dC5|cL9xd)vai_tZ zF8&#CXNrH8xTWIGhI@?o=fIsS{xZ1p#6Mr$a&ar*E)f4hxQoQU81Av+uY|iq{KtvA z6z($dFNeEA{KvyxDgIS(PZ0l!a94}}B)BJw{}i|}@vng!7ynwgRpPG}Hz95f+*<Lk zgIg#5_2O<2w;pbT_#5FiiN6`{M)9|Z+X}Z${OxcziN6ExX7O(kcPrde#lH>icJc3k zdz$!nihDZTGsJ&B+zaroDDV8s>=m<@FDu{m!IbLq-B}|?11;|?d$s7nMSDiV@65h0 zo1i^q_m+1){thAKdsf`LsPpYbogXdgd~;Ff`{kW~1o^@8&gaWJ|K&3!MR?F8@UkU$ zmi=OP*)KXDE8j!S$T8`5{<3^GWd;ErEAM=T!FxH($(!6eUoGFg_|@w23Arq5+qCyf z$~zxUk`F9aRHi^Qk=&=49Ctl3W%cZnW}kfW!=wo)A+K}$zdPH%+_nARZhP_R+rRwg z8^>uMlO*MyLySn&UmQ<hlfeZ~azgi0v<Ijoy>s0+-+XiO!^9eVLI{NM5(~XqctwK3 z^3Ls$zx}yjb$nU$;NxX)fC(9vJ!gy4S@zlEWn7TQ%RV6D<7FR{v%BoGUGKQl%0Aw) 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 G^Y?%GjW&Y- literal 0 HcmV?d00001 diff --git a/week04/cmake-build-debug/CMakeFiles/45_jump.dir/CXX.includecache b/week04/cmake-build-debug/CMakeFiles/45_jump.dir/CXX.includecache new file mode 100644 index 00000000..330eaf05 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/45_jump.dir/CXX.includecache @@ -0,0 +1,16 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week04/45_jump.cpp +iostream +- +vector +- +limits.h +- + diff --git a/week04/cmake-build-debug/CMakeFiles/45_jump.dir/DependInfo.cmake b/week04/cmake-build-debug/CMakeFiles/45_jump.dir/DependInfo.cmake new file mode 100644 index 00000000..cb42530b --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/45_jump.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week04/45_jump.cpp" "/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/45_jump.dir/45_jump.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week04/cmake-build-debug/CMakeFiles/45_jump.dir/build.make b/week04/cmake-build-debug/CMakeFiles/45_jump.dir/build.make new file mode 100644 index 00000000..0b54c704 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/45_jump.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week04 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week04/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/45_jump.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/45_jump.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/45_jump.dir/flags.make + +CMakeFiles/45_jump.dir/45_jump.cpp.o: CMakeFiles/45_jump.dir/flags.make +CMakeFiles/45_jump.dir/45_jump.cpp.o: ../45_jump.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/45_jump.dir/45_jump.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/45_jump.dir/45_jump.cpp.o -c /home/lewang/algorithm018/week04/45_jump.cpp + +CMakeFiles/45_jump.dir/45_jump.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/45_jump.dir/45_jump.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week04/45_jump.cpp > CMakeFiles/45_jump.dir/45_jump.cpp.i + +CMakeFiles/45_jump.dir/45_jump.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/45_jump.dir/45_jump.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week04/45_jump.cpp -o CMakeFiles/45_jump.dir/45_jump.cpp.s + +# Object files for target 45_jump +45_jump_OBJECTS = \ +"CMakeFiles/45_jump.dir/45_jump.cpp.o" + +# External object files for target 45_jump +45_jump_EXTERNAL_OBJECTS = + +45_jump: CMakeFiles/45_jump.dir/45_jump.cpp.o +45_jump: CMakeFiles/45_jump.dir/build.make +45_jump: CMakeFiles/45_jump.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 45_jump" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/45_jump.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/45_jump.dir/build: 45_jump + +.PHONY : CMakeFiles/45_jump.dir/build + +CMakeFiles/45_jump.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/45_jump.dir/cmake_clean.cmake +.PHONY : CMakeFiles/45_jump.dir/clean + +CMakeFiles/45_jump.dir/depend: + cd /home/lewang/algorithm018/week04/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week04 /home/lewang/algorithm018/week04 /home/lewang/algorithm018/week04/cmake-build-debug /home/lewang/algorithm018/week04/cmake-build-debug /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/45_jump.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/45_jump.dir/depend + diff --git a/week04/cmake-build-debug/CMakeFiles/45_jump.dir/cmake_clean.cmake b/week04/cmake-build-debug/CMakeFiles/45_jump.dir/cmake_clean.cmake new file mode 100644 index 00000000..73acae74 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/45_jump.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/45_jump.dir/45_jump.cpp.o" + "45_jump.pdb" + "45_jump" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/45_jump.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week04/cmake-build-debug/CMakeFiles/45_jump.dir/depend.internal b/week04/cmake-build-debug/CMakeFiles/45_jump.dir/depend.internal new file mode 100644 index 00000000..3f77a745 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/45_jump.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/45_jump.dir/45_jump.cpp.o + /home/lewang/algorithm018/week04/45_jump.cpp diff --git a/week04/cmake-build-debug/CMakeFiles/45_jump.dir/depend.make b/week04/cmake-build-debug/CMakeFiles/45_jump.dir/depend.make new file mode 100644 index 00000000..0e120af0 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/45_jump.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/45_jump.dir/45_jump.cpp.o: ../45_jump.cpp + diff --git a/week04/cmake-build-debug/CMakeFiles/45_jump.dir/flags.make b/week04/cmake-build-debug/CMakeFiles/45_jump.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/45_jump.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week04/cmake-build-debug/CMakeFiles/45_jump.dir/link.txt b/week04/cmake-build-debug/CMakeFiles/45_jump.dir/link.txt new file mode 100644 index 00000000..78d24a0f --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/45_jump.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/45_jump.dir/45_jump.cpp.o -o 45_jump diff --git a/week04/cmake-build-debug/CMakeFiles/45_jump.dir/progress.make b/week04/cmake-build-debug/CMakeFiles/45_jump.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/45_jump.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.o b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..0490208134499df2cb7a6868b384de8041a243bf GIT binary patch literal 467440 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 literal 0 HcmV?d00001 diff --git a/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/CXX.includecache b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/CXX.includecache new file mode 100644 index 00000000..e3e11b6d --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/CXX.includecache @@ -0,0 +1,16 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week04/529_updateBoard.cpp +iostream +- +vector +- +string +- + diff --git a/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/depend.internal b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/depend.internal new file mode 100644 index 00000000..f29eae17 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.o + /home/lewang/algorithm018/week04/529_updateBoard.cpp diff --git a/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/depend.make b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/depend.make index 57b41b23..28da62d4 100644 --- a/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/depend.make +++ b/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir/depend.make @@ -1,2 +1,5 @@ -# Empty dependencies file for 529_updateBoard. -# This may be replaced when dependencies are built. +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.o: ../529_updateBoard.cpp + diff --git a/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.o b/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..ae3221058b16973426577b03578ed8d4a02e0ba8 GIT binary patch literal 183616 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 F{}1N-ID7yA literal 0 HcmV?d00001 diff --git a/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/CXX.includecache b/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/CXX.includecache new file mode 100644 index 00000000..4fa12668 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/CXX.includecache @@ -0,0 +1,16 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week04/74_searchMatrix.cpp +iostream +- +vector +- +limits.h +- + diff --git a/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/DependInfo.cmake b/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/DependInfo.cmake new file mode 100644 index 00000000..9ac0603e --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week04/74_searchMatrix.cpp" "/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/build.make b/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/build.make new file mode 100644 index 00000000..fd3f506a --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week04 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week04/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/74_searchMatrix.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/74_searchMatrix.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/74_searchMatrix.dir/flags.make + +CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.o: CMakeFiles/74_searchMatrix.dir/flags.make +CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.o: ../74_searchMatrix.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.o -c /home/lewang/algorithm018/week04/74_searchMatrix.cpp + +CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week04/74_searchMatrix.cpp > CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.i + +CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week04/74_searchMatrix.cpp -o CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.s + +# Object files for target 74_searchMatrix +74_searchMatrix_OBJECTS = \ +"CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.o" + +# External object files for target 74_searchMatrix +74_searchMatrix_EXTERNAL_OBJECTS = + +74_searchMatrix: CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.o +74_searchMatrix: CMakeFiles/74_searchMatrix.dir/build.make +74_searchMatrix: CMakeFiles/74_searchMatrix.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 74_searchMatrix" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/74_searchMatrix.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/74_searchMatrix.dir/build: 74_searchMatrix + +.PHONY : CMakeFiles/74_searchMatrix.dir/build + +CMakeFiles/74_searchMatrix.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/74_searchMatrix.dir/cmake_clean.cmake +.PHONY : CMakeFiles/74_searchMatrix.dir/clean + +CMakeFiles/74_searchMatrix.dir/depend: + cd /home/lewang/algorithm018/week04/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week04 /home/lewang/algorithm018/week04 /home/lewang/algorithm018/week04/cmake-build-debug /home/lewang/algorithm018/week04/cmake-build-debug /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/74_searchMatrix.dir/depend + diff --git a/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/cmake_clean.cmake b/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/cmake_clean.cmake new file mode 100644 index 00000000..e1dbd759 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.o" + "74_searchMatrix.pdb" + "74_searchMatrix" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/74_searchMatrix.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/depend.internal b/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/depend.internal new file mode 100644 index 00000000..18a70efd --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.o + /home/lewang/algorithm018/week04/74_searchMatrix.cpp diff --git a/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/depend.make b/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/depend.make new file mode 100644 index 00000000..2bf1278f --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.o: ../74_searchMatrix.cpp + diff --git a/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/flags.make b/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/link.txt b/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/link.txt new file mode 100644 index 00000000..227690f4 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.o -o 74_searchMatrix diff --git a/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/progress.make b/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/CXX.includecache b/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/CXX.includecache new file mode 100644 index 00000000..6d1576d6 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/CXX.includecache @@ -0,0 +1,16 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week04/874_robotSim.cpp +iostream +- +vector +- +unordered_set +- + diff --git a/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/DependInfo.cmake b/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/DependInfo.cmake new file mode 100644 index 00000000..cb77f3fd --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week04/874_robotSim.cpp" "/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/874_robotSim.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/build.make b/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/build.make new file mode 100644 index 00000000..8dfb7ad4 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week04 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week04/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/874_robotSim.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/874_robotSim.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/874_robotSim.dir/flags.make + +CMakeFiles/874_robotSim.dir/874_robotSim.cpp.o: CMakeFiles/874_robotSim.dir/flags.make +CMakeFiles/874_robotSim.dir/874_robotSim.cpp.o: ../874_robotSim.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/874_robotSim.dir/874_robotSim.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/874_robotSim.dir/874_robotSim.cpp.o -c /home/lewang/algorithm018/week04/874_robotSim.cpp + +CMakeFiles/874_robotSim.dir/874_robotSim.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/874_robotSim.dir/874_robotSim.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week04/874_robotSim.cpp > CMakeFiles/874_robotSim.dir/874_robotSim.cpp.i + +CMakeFiles/874_robotSim.dir/874_robotSim.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/874_robotSim.dir/874_robotSim.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week04/874_robotSim.cpp -o CMakeFiles/874_robotSim.dir/874_robotSim.cpp.s + +# Object files for target 874_robotSim +874_robotSim_OBJECTS = \ +"CMakeFiles/874_robotSim.dir/874_robotSim.cpp.o" + +# External object files for target 874_robotSim +874_robotSim_EXTERNAL_OBJECTS = + +874_robotSim: CMakeFiles/874_robotSim.dir/874_robotSim.cpp.o +874_robotSim: CMakeFiles/874_robotSim.dir/build.make +874_robotSim: CMakeFiles/874_robotSim.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 874_robotSim" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/874_robotSim.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/874_robotSim.dir/build: 874_robotSim + +.PHONY : CMakeFiles/874_robotSim.dir/build + +CMakeFiles/874_robotSim.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/874_robotSim.dir/cmake_clean.cmake +.PHONY : CMakeFiles/874_robotSim.dir/clean + +CMakeFiles/874_robotSim.dir/depend: + cd /home/lewang/algorithm018/week04/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week04 /home/lewang/algorithm018/week04 /home/lewang/algorithm018/week04/cmake-build-debug /home/lewang/algorithm018/week04/cmake-build-debug /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/874_robotSim.dir/depend + diff --git a/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/cmake_clean.cmake b/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/cmake_clean.cmake new file mode 100644 index 00000000..3b93e76f --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/874_robotSim.dir/874_robotSim.cpp.o" + "874_robotSim.pdb" + "874_robotSim" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/874_robotSim.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/depend.internal b/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/depend.internal new file mode 100644 index 00000000..e5e1b30c --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/874_robotSim.dir/874_robotSim.cpp.o + /home/lewang/algorithm018/week04/874_robotSim.cpp diff --git a/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/depend.make b/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/depend.make new file mode 100644 index 00000000..b324c54b --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/874_robotSim.dir/874_robotSim.cpp.o: ../874_robotSim.cpp + diff --git a/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/flags.make b/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/link.txt b/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/link.txt new file mode 100644 index 00000000..0bde9f50 --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/874_robotSim.dir/874_robotSim.cpp.o -o 874_robotSim diff --git a/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/progress.make b/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week04/cmake-build-debug/CMakeFiles/874_robotSim.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week04/cmake-build-debug/CMakeFiles/Makefile.cmake b/week04/cmake-build-debug/CMakeFiles/Makefile.cmake index 3a0ba2d5..9b190260 100644 --- a/week04/cmake-build-debug/CMakeFiles/Makefile.cmake +++ b/week04/cmake-build-debug/CMakeFiles/Makefile.cmake @@ -46,5 +46,5 @@ set(CMAKE_MAKEFILE_PRODUCTS # Dependency information for all targets: set(CMAKE_DEPEND_INFO_FILES - "CMakeFiles/529_updateBoard.dir/DependInfo.cmake" + "CMakeFiles/74_searchMatrix.dir/DependInfo.cmake" ) diff --git a/week04/cmake-build-debug/CMakeFiles/Makefile2 b/week04/cmake-build-debug/CMakeFiles/Makefile2 index 6f20190f..fb2c721a 100644 --- a/week04/cmake-build-debug/CMakeFiles/Makefile2 +++ b/week04/cmake-build-debug/CMakeFiles/Makefile2 @@ -65,39 +65,39 @@ CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week04 CMAKE_BINARY_DIR = /home/lewang/algorithm018/week04/cmake-build-debug #============================================================================= -# Target rules for target CMakeFiles/529_updateBoard.dir +# Target rules for target CMakeFiles/74_searchMatrix.dir # All Build rule for target. -CMakeFiles/529_updateBoard.dir/all: - $(MAKE) -f CMakeFiles/529_updateBoard.dir/build.make CMakeFiles/529_updateBoard.dir/depend - $(MAKE) -f CMakeFiles/529_updateBoard.dir/build.make CMakeFiles/529_updateBoard.dir/build - @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target 529_updateBoard" -.PHONY : CMakeFiles/529_updateBoard.dir/all +CMakeFiles/74_searchMatrix.dir/all: + $(MAKE) -f CMakeFiles/74_searchMatrix.dir/build.make CMakeFiles/74_searchMatrix.dir/depend + $(MAKE) -f CMakeFiles/74_searchMatrix.dir/build.make CMakeFiles/74_searchMatrix.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target 74_searchMatrix" +.PHONY : CMakeFiles/74_searchMatrix.dir/all # Include target in all. -all: CMakeFiles/529_updateBoard.dir/all +all: CMakeFiles/74_searchMatrix.dir/all .PHONY : all # Build rule for subdir invocation for target. -CMakeFiles/529_updateBoard.dir/rule: cmake_check_build_system +CMakeFiles/74_searchMatrix.dir/rule: cmake_check_build_system $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles 2 - $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/529_updateBoard.dir/all + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/74_searchMatrix.dir/all $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles 0 -.PHONY : CMakeFiles/529_updateBoard.dir/rule +.PHONY : CMakeFiles/74_searchMatrix.dir/rule # Convenience name for target. -529_updateBoard: CMakeFiles/529_updateBoard.dir/rule +74_searchMatrix: CMakeFiles/74_searchMatrix.dir/rule -.PHONY : 529_updateBoard +.PHONY : 74_searchMatrix # clean rule for target. -CMakeFiles/529_updateBoard.dir/clean: - $(MAKE) -f CMakeFiles/529_updateBoard.dir/build.make CMakeFiles/529_updateBoard.dir/clean -.PHONY : CMakeFiles/529_updateBoard.dir/clean +CMakeFiles/74_searchMatrix.dir/clean: + $(MAKE) -f CMakeFiles/74_searchMatrix.dir/build.make CMakeFiles/74_searchMatrix.dir/clean +.PHONY : CMakeFiles/74_searchMatrix.dir/clean # clean rule for target. -clean: CMakeFiles/529_updateBoard.dir/clean +clean: CMakeFiles/74_searchMatrix.dir/clean .PHONY : clean diff --git a/week04/cmake-build-debug/CMakeFiles/TargetDirectories.txt b/week04/cmake-build-debug/CMakeFiles/TargetDirectories.txt index be7ce83f..3ca17309 100644 --- a/week04/cmake-build-debug/CMakeFiles/TargetDirectories.txt +++ b/week04/cmake-build-debug/CMakeFiles/TargetDirectories.txt @@ -1,3 +1,3 @@ /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/rebuild_cache.dir -/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/529_updateBoard.dir +/home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/74_searchMatrix.dir /home/lewang/algorithm018/week04/cmake-build-debug/CMakeFiles/edit_cache.dir diff --git a/week04/cmake-build-debug/Makefile b/week04/cmake-build-debug/Makefile index 42b90476..f5216666 100644 --- a/week04/cmake-build-debug/Makefile +++ b/week04/cmake-build-debug/Makefile @@ -111,44 +111,44 @@ depend: .PHONY : depend #============================================================================= -# Target rules for targets named 529_updateBoard +# Target rules for targets named 74_searchMatrix # Build rule for target. -529_updateBoard: cmake_check_build_system - $(MAKE) -f CMakeFiles/Makefile2 529_updateBoard -.PHONY : 529_updateBoard +74_searchMatrix: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 74_searchMatrix +.PHONY : 74_searchMatrix # fast build rule for target. -529_updateBoard/fast: - $(MAKE) -f CMakeFiles/529_updateBoard.dir/build.make CMakeFiles/529_updateBoard.dir/build -.PHONY : 529_updateBoard/fast +74_searchMatrix/fast: + $(MAKE) -f CMakeFiles/74_searchMatrix.dir/build.make CMakeFiles/74_searchMatrix.dir/build +.PHONY : 74_searchMatrix/fast -529_updateBoard.o: 529_updateBoard.cpp.o +74_searchMatrix.o: 74_searchMatrix.cpp.o -.PHONY : 529_updateBoard.o +.PHONY : 74_searchMatrix.o # target to build an object file -529_updateBoard.cpp.o: - $(MAKE) -f CMakeFiles/529_updateBoard.dir/build.make CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.o -.PHONY : 529_updateBoard.cpp.o +74_searchMatrix.cpp.o: + $(MAKE) -f CMakeFiles/74_searchMatrix.dir/build.make CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.o +.PHONY : 74_searchMatrix.cpp.o -529_updateBoard.i: 529_updateBoard.cpp.i +74_searchMatrix.i: 74_searchMatrix.cpp.i -.PHONY : 529_updateBoard.i +.PHONY : 74_searchMatrix.i # target to preprocess a source file -529_updateBoard.cpp.i: - $(MAKE) -f CMakeFiles/529_updateBoard.dir/build.make CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.i -.PHONY : 529_updateBoard.cpp.i +74_searchMatrix.cpp.i: + $(MAKE) -f CMakeFiles/74_searchMatrix.dir/build.make CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.i +.PHONY : 74_searchMatrix.cpp.i -529_updateBoard.s: 529_updateBoard.cpp.s +74_searchMatrix.s: 74_searchMatrix.cpp.s -.PHONY : 529_updateBoard.s +.PHONY : 74_searchMatrix.s # target to generate assembly for a file -529_updateBoard.cpp.s: - $(MAKE) -f CMakeFiles/529_updateBoard.dir/build.make CMakeFiles/529_updateBoard.dir/529_updateBoard.cpp.s -.PHONY : 529_updateBoard.cpp.s +74_searchMatrix.cpp.s: + $(MAKE) -f CMakeFiles/74_searchMatrix.dir/build.make CMakeFiles/74_searchMatrix.dir/74_searchMatrix.cpp.s +.PHONY : 74_searchMatrix.cpp.s # Help Target help: @@ -157,11 +157,11 @@ help: @echo "... clean" @echo "... depend" @echo "... rebuild_cache" - @echo "... 529_updateBoard" + @echo "... 74_searchMatrix" @echo "... edit_cache" - @echo "... 529_updateBoard.o" - @echo "... 529_updateBoard.i" - @echo "... 529_updateBoard.s" + @echo "... 74_searchMatrix.o" + @echo "... 74_searchMatrix.i" + @echo "... 74_searchMatrix.s" .PHONY : help diff --git a/week04/cmake-build-debug/week02.cbp b/week04/cmake-build-debug/week02.cbp index 4b3f61de..db6ce2b4 100644 --- a/week04/cmake-build-debug/week02.cbp +++ b/week04/cmake-build-debug/week02.cbp @@ -27,8 +27,8 @@ <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 clean"/> </MakeCommands> </Target> - <Target title="529_updateBoard"> - <Option output="/home/lewang/algorithm018/week04/cmake-build-debug/529_updateBoard" prefix_auto="0" extension_auto="0"/> + <Target title="74_searchMatrix"> + <Option output="/home/lewang/algorithm018/week04/cmake-build-debug/74_searchMatrix" prefix_auto="0" extension_auto="0"/> <Option working_dir="/home/lewang/algorithm018/week04/cmake-build-debug"/> <Option object_output="./"/> <Option type="1"/> @@ -44,14 +44,14 @@ <Add directory="/usr/include"/> </Compiler> <MakeCommands> - <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 529_updateBoard"/> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 74_searchMatrix"/> <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 clean"/> <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 clean"/> </MakeCommands> </Target> - <Target title="529_updateBoard/fast"> - <Option output="/home/lewang/algorithm018/week04/cmake-build-debug/529_updateBoard" prefix_auto="0" extension_auto="0"/> + <Target title="74_searchMatrix/fast"> + <Option output="/home/lewang/algorithm018/week04/cmake-build-debug/74_searchMatrix" prefix_auto="0" extension_auto="0"/> <Option working_dir="/home/lewang/algorithm018/week04/cmake-build-debug"/> <Option object_output="./"/> <Option type="1"/> @@ -67,7 +67,7 @@ <Add directory="/usr/include"/> </Compiler> <MakeCommands> - <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 529_updateBoard/fast"/> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 74_searchMatrix/fast"/> <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 clean"/> <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week04/cmake-build-debug/Makefile" VERBOSE=1 clean"/> @@ -84,8 +84,8 @@ </MakeCommands> </Target> </Build> - <Unit filename="/home/lewang/algorithm018/week04/529_updateBoard.cpp"> - <Option target="529_updateBoard"/> + <Unit filename="/home/lewang/algorithm018/week04/74_searchMatrix.cpp"> + <Option target="74_searchMatrix"/> </Unit> <Unit filename="/home/lewang/algorithm018/week04/CMakeLists.txt"> <Option virtualFolder="CMake Files\"/> From a6fdfd4192ed2c1bf4cbf21ae2885b6de008454d Mon Sep 17 00:00:00 2001 From: Ella2le <1071444737@qq.com> Date: Sun, 29 Nov 2020 21:38:05 +0800 Subject: [PATCH 17/21] do some homework --- week06/1143_LCS.cpp | 17 + week06/120_minmumTotal.cpp | 78 +++ week06/121_maxProfit.cpp | 4 + week06/122_maxProfit2.cpp | 11 + week06/152_maxProduct.cpp | 34 + week06/198_rob.cpp | 39 ++ week06/213_rob2.cpp | 33 + week06/322_coinChange.cpp | 80 +++ week06/509_fibonacci.cpp | 54 ++ week06/53_maxSubArray.cpp | 40 ++ week06/62_uniquePath.cpp | 71 ++ week06/63_uniquePathsWithObstacles.cpp | 109 +++ week06/70_climStairs.cpp | 18 + week06/CMakeLists.txt | 8 + week06/NOTE.md | 112 +++- week06/cmake-build-debug/62_uniquePath | Bin 0 -> 33208 bytes .../63_uniquePathsWithObstacles | Bin 0 -> 53544 bytes week06/cmake-build-debug/CMakeCache.txt | 380 +++++++++++ .../CMakeFiles/3.13.2/CMakeCCompiler.cmake | 73 ++ .../CMakeFiles/3.13.2/CMakeCXXCompiler.cmake | 76 +++ .../3.13.2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 8464 bytes .../3.13.2/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 8472 bytes .../CMakeFiles/3.13.2/CMakeSystem.cmake | 15 + .../3.13.2/CompilerIdC/CMakeCCompilerId.c | 623 +++++++++++++++++ .../CMakeFiles/3.13.2/CompilerIdC/a.out | Bin 0 -> 8616 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 602 +++++++++++++++++ .../CMakeFiles/3.13.2/CompilerIdCXX/a.out | Bin 0 -> 8632 bytes .../62_uniquePath.dir/62_uniquePath.cpp.o | Bin 0 -> 38408 bytes .../62_uniquePath.dir/CXX.includecache | 14 + .../62_uniquePath.dir/DependInfo.cmake | 20 + .../CMakeFiles/62_uniquePath.dir/build.make | 98 +++ .../62_uniquePath.dir/cmake_clean.cmake | 10 + .../62_uniquePath.dir/depend.internal | 5 + .../CMakeFiles/62_uniquePath.dir/depend.make | 5 + .../CMakeFiles/62_uniquePath.dir/flags.make | 10 + .../CMakeFiles/62_uniquePath.dir/link.txt | 1 + .../62_uniquePath.dir/progress.make | 3 + .../63_uniquePathsWithObstacles.cpp.o | Bin 0 -> 76128 bytes .../CXX.includecache | 14 + .../DependInfo.cmake | 20 + .../build.make | 98 +++ .../cmake_clean.cmake | 10 + .../depend.internal | 5 + .../depend.make | 5 + .../flags.make | 10 + .../63_uniquePathsWithObstacles.dir/link.txt | 1 + .../progress.make | 3 + .../CMakeDirectoryInformation.cmake | 16 + .../CMakeFiles/CMakeOutput.log | 625 ++++++++++++++++++ .../CMakeFiles/Makefile.cmake | 50 ++ week06/cmake-build-debug/CMakeFiles/Makefile2 | 113 ++++ .../CMakeFiles/TargetDirectories.txt | 3 + .../CMakeFiles/clion-environment.txt | 3 + .../CMakeFiles/clion-log.txt | 4 + .../CMakeFiles/cmake.check_cache | 1 + .../CMakeFiles/feature_tests.bin | Bin 0 -> 12520 bytes .../CMakeFiles/feature_tests.c | 34 + .../CMakeFiles/feature_tests.cxx | 405 ++++++++++++ .../CMakeFiles/progress.marks | 1 + week06/cmake-build-debug/Makefile | 178 +++++ week06/cmake-build-debug/cmake_install.cmake | 49 ++ week06/cmake-build-debug/week06.cbp | 94 +++ 62 files changed, 4384 insertions(+), 1 deletion(-) create mode 100644 week06/1143_LCS.cpp create mode 100644 week06/120_minmumTotal.cpp create mode 100644 week06/121_maxProfit.cpp create mode 100644 week06/122_maxProfit2.cpp create mode 100644 week06/152_maxProduct.cpp create mode 100644 week06/198_rob.cpp create mode 100644 week06/213_rob2.cpp create mode 100644 week06/322_coinChange.cpp create mode 100644 week06/509_fibonacci.cpp create mode 100644 week06/53_maxSubArray.cpp create mode 100644 week06/62_uniquePath.cpp create mode 100644 week06/63_uniquePathsWithObstacles.cpp create mode 100644 week06/70_climStairs.cpp create mode 100644 week06/CMakeLists.txt create mode 100755 week06/cmake-build-debug/62_uniquePath create mode 100755 week06/cmake-build-debug/63_uniquePathsWithObstacles create mode 100644 week06/cmake-build-debug/CMakeCache.txt create mode 100755 week06/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake create mode 100755 week06/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake create mode 100755 week06/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin create mode 100755 week06/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin create mode 100755 week06/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake create mode 100644 week06/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c create mode 100755 week06/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out create mode 100644 week06/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100755 week06/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out create mode 100644 week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/62_uniquePath.cpp.o create mode 100644 week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/CXX.includecache create mode 100644 week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/DependInfo.cmake create mode 100644 week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/build.make create mode 100644 week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/cmake_clean.cmake create mode 100644 week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/depend.internal create mode 100644 week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/depend.make create mode 100644 week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/flags.make create mode 100644 week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/link.txt create mode 100644 week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/progress.make create mode 100644 week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.o create mode 100644 week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/CXX.includecache create mode 100644 week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/DependInfo.cmake create mode 100644 week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/build.make create mode 100644 week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/cmake_clean.cmake create mode 100644 week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/depend.internal create mode 100644 week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/depend.make create mode 100644 week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/flags.make create mode 100644 week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/link.txt create mode 100644 week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/progress.make create mode 100644 week06/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 week06/cmake-build-debug/CMakeFiles/CMakeOutput.log create mode 100644 week06/cmake-build-debug/CMakeFiles/Makefile.cmake create mode 100644 week06/cmake-build-debug/CMakeFiles/Makefile2 create mode 100644 week06/cmake-build-debug/CMakeFiles/TargetDirectories.txt create mode 100644 week06/cmake-build-debug/CMakeFiles/clion-environment.txt create mode 100644 week06/cmake-build-debug/CMakeFiles/clion-log.txt create mode 100644 week06/cmake-build-debug/CMakeFiles/cmake.check_cache create mode 100755 week06/cmake-build-debug/CMakeFiles/feature_tests.bin create mode 100644 week06/cmake-build-debug/CMakeFiles/feature_tests.c create mode 100644 week06/cmake-build-debug/CMakeFiles/feature_tests.cxx create mode 100644 week06/cmake-build-debug/CMakeFiles/progress.marks create mode 100644 week06/cmake-build-debug/Makefile create mode 100644 week06/cmake-build-debug/cmake_install.cmake create mode 100644 week06/cmake-build-debug/week06.cbp diff --git a/week06/1143_LCS.cpp b/week06/1143_LCS.cpp new file mode 100644 index 00000000..695553a7 --- /dev/null +++ b/week06/1143_LCS.cpp @@ -0,0 +1,17 @@ +// +// Created by lewang on 11/29/20. +// + +class Solution { +public: + int longestCommonSubsequence(string text1, string text2) { + vector<vector<int>> m(text1.size() + 1, vector<int>(text2.size()+1)); + for(int i = 1; i <= text1.size(); i++) { + for(int j = 1; j <= text2.size(); j++) { + if(text1[i-1] == text2[j -1]) m[i][j] = m[i-1][j-1] +1; + else m[i][j] = max(m[i-1][j], m[i][j-1]); + } + } + return m[text1.size()][text2.size()]; + } +}; \ No newline at end of file diff --git a/week06/120_minmumTotal.cpp b/week06/120_minmumTotal.cpp new file mode 100644 index 00000000..ad131ff9 --- /dev/null +++ b/week06/120_minmumTotal.cpp @@ -0,0 +1,78 @@ +// +// Created by lewang on 11/29/20. +// + +//用和三角形一样的数组储存dp +//实际上是一个n阶方阵的下三角 +//[2] +//[3,4] +//[6,5,7] +//[4,1,8,3] + + + +class Solution { +public: + //time O(n^2) + //space O(n^2) + int minimumTotal(vector<vector<int>>& triangle) { + int n = triangle.size(); + vector<vector<int>> f(n,vector<int>(n)); + //顶点需要注意,只有一个数 + f[0][0] = triangle[0][0]; + for(int i = 1; i < n ; i++){ + //当j=0的时候,只能从上面"[i-1][j]走下来 + f[i][0] = f[i-1][0] + triangle[i][0]; + for(int j = 1; j < i; j++){ + //在i-1行"相邻"位置选择较小的数,加上当前位置三角形的数值 + f[i][j] = min(f[i-1][j-1], f[i-1][j]) + triangle[i][j]; + } + //当j = i 的时候,是能从[i-1][j-1]走下来 + f[i][i] = f[i-1][i-1] + triangle[i][i]; + } + return *min_element(f[n-1].begin(),f[n-1].end()); + } + + //优化空间,用两个长度为n的向量 O(2n) + int minimumTotal(vector<vector<int>>& triangle) { + int n = triangle.size(); + vector<vector<int>> f(2,vector<int>(n)); + //顶点需要注意,只有一个数 + f[0][0] = triangle[0][0]; + for(int i = 1; i < n ; i++){ + //当j=0的时候,只能从上面"[i-1][j]走下来 + int cur = i % 2; //也可以写 cur & 1 + int pre = 1 - cur; + f[cur][0] = f[pre][0] + triangle[i][0]; + for(int j = 1; j < i; j++){ + //在i-1行"相邻"位置选择较小的数,加上当前位置三角形的数值 + f[cur][j] = min(f[pre][j-1], f[pre][j]) + triangle[i][j]; + } + //当j = i 的时候,是能从[i-1][j-1]走下来 + f[cur][i] = f[pre][i-1] + triangle[i][i]; + } + return *min_element(f[(n-1)%2].begin(),f[(n-1)%2].end()); + } + + //优化空间,用1个长度为n的向量 O(n) + int minimumTotal(vector<vector<int>>& triangle) { + int n = triangle.size(); + vector<int> f(n); + //顶点需要注意,只有一个数 + f[0] = triangle[0][0]; + for(int i = 1; i < n ; i++){ + //每行最后一个元素只能从上面左边走下来 + f[i] = f[i-1] + triangle[i][i]; + for(int j = i - 1; j > 0; j--) { + f[j] = min(f[j-1], f[j]) + triangle[i][j]; + } + //每行第一个元素只能从上面走下来 + f[0] += triangle[i][0]; + } + return *min_element(f.begin(),f.end()); + } + + //优化空间O(1),直接在原来的三角形数组上操作 + + +}; \ No newline at end of file diff --git a/week06/121_maxProfit.cpp b/week06/121_maxProfit.cpp new file mode 100644 index 00000000..4ef79931 --- /dev/null +++ b/week06/121_maxProfit.cpp @@ -0,0 +1,4 @@ +// +// Created by lewang on 11/29/20. +// + diff --git a/week06/122_maxProfit2.cpp b/week06/122_maxProfit2.cpp new file mode 100644 index 00000000..18aecf33 --- /dev/null +++ b/week06/122_maxProfit2.cpp @@ -0,0 +1,11 @@ +// +// Created by lewang on 11/29/20. +// +int maxProfit(vector<int>& prices) { + int sum = 0; + for(int i = 0; i < prices.size() - 1; i++){ + int temp = prices[i+1] - prices[i]; + if(temp) sum+=temp; + } + return sum; +} diff --git a/week06/152_maxProduct.cpp b/week06/152_maxProduct.cpp new file mode 100644 index 00000000..3ab6eb07 --- /dev/null +++ b/week06/152_maxProduct.cpp @@ -0,0 +1,34 @@ +// +// Created by lewang on 11/29/20. +// +//这题的关键在于讨论数值的正负, +//针对最后一个数的正负, 来前i-1个数是要求最大还是最小 +//所以每个位置有两个状态即最大值,最小值 +class Solution { +public: + //时间 O(n) + //空间 O(n) + int maxProduct(vector<int>& nums) { + vector<int> maxF(nums), minF(nums); + for(int i = 1; i < nums.size(); ++i) { + maxF[i] = max(maxF[i-1] * nums[i], max(nums[i], minF[i-1] * nums[i])); + //前i-1的状态下的最小值*nums[i], min(nums[i], 前i-1状态下的最大值乘上当前的nums[i] + minF[i] = min(minF[i-1] * nums[i], min(nums[i], maxF[i-1] * nums[i])); + } + return *max_element(maxF.begin(),maxF.end()); + } + + //空间优化 + //O(1) + int maxProduct(vector<int>& nums) { + int maxF = nums[0], minF = nums[0], ans = nums[0]; + for(int i = 1; i < nums.size(); i++) { + int mx = maxF, mn = minF; + maxF = max(mx * nums[i], max(nums[i], mn * nums[i])); + minF = min(mn * nums[i], min(nums[i], mx * nums[i])); + ans = max(maxF, ans); + } + return ans; + } + +}; diff --git a/week06/198_rob.cpp b/week06/198_rob.cpp new file mode 100644 index 00000000..653ace43 --- /dev/null +++ b/week06/198_rob.cpp @@ -0,0 +1,39 @@ +// +// Created by lewang on 11/29/20. +// + +//dp +//状态转移 +//如果偷当前的房间,dp[i-2]+nums[i] +//如果不投当前的房间 dp[i-1] +//所以dp[i] = max(dp[i-2]+nums[i], dp[i-1]) + +//时间复杂度O(n) +//空间复杂度O(n) +int rob(vector<int>& nums) { + if(nums.empty()) return 0; + auto dp = nums; + + if(nums.size() == 1) return nums[0]; + + dp[0] = nums[0]; + dp[1] = max(nums[0],nums[1]); + + for(int i = 2; i < nums.size(); i++) { + dp[i] = max(dp[i-2] + nums[i], dp[i-1]); + } + return dp[nums.size()-1]; +} + +//空间优化 +int rob(vector<int>& nums) { + if(nums.empty()) return 0; + if(nums.size() == 1) return nums[0]; + int first = nums[0], second = max(num[0], nums[1]); + for(int i = 2; i < nums.size(); i++){ + int temp = second; + second = max(first + nums[i], second); + first = temp; + } + return second; +} \ No newline at end of file diff --git a/week06/213_rob2.cpp b/week06/213_rob2.cpp new file mode 100644 index 00000000..6190edb0 --- /dev/null +++ b/week06/213_rob2.cpp @@ -0,0 +1,33 @@ +// +// Created by lewang on 11/29/20. +// + +//这个问题可以利用198分解一下 +//拆为两个子数组一个有头,一个有尾,然后就可以用198的答案求解啦!!! +int rob(vector<int>& nums) { + + if(nums.empty()) return 0; + if(nums.size() == 1) return nums[0]; + if(nums.size() == 2) return max(nums[0],nums[1]); + int size = nums.size(); + vector<int>dp (size); + dp[0] = nums[0]; + dp[1] = max(nums[0],nums[1]); + for(int i = 2; i < size - 1; i++) { + dp[i] = max(dp[i-2] + nums[i], dp[i-1]); + } + + + vector<int>dp1 (size); + dp1[0] = nums[1]; + dp1[1] = max(nums[1],nums[2]); + for(int i = 2; i < size - 1; i++) { + dp1[i] = max(dp1[i-2] + nums[i+1], dp1[i-1]); + } + + + return max(dp[size - 2],dp1[size - 2]); +} + +//[TODO] 还可以优化 +//... \ No newline at end of file diff --git a/week06/322_coinChange.cpp b/week06/322_coinChange.cpp new file mode 100644 index 00000000..c8fe21de --- /dev/null +++ b/week06/322_coinChange.cpp @@ -0,0 +1,80 @@ +// +// Created by lewang on 11/29/20. +// + +//思路 +//1. 搜索回溯 +//暴力法,枚举所有可能,选硬币总数最小的方法 +//用递归实现 +//时间复杂化度,指数级 O(S^n) +//S是需要找零的总数,n是零钱面额数 +//像是dfs +int getcoin(int idxCoin, vector<int>& coins, int amount) { + if(amount == 0) return 0; + if(idxCoin < coins.size() && amount > 0) { + int maxVal = amount / coins[idxCoin]; + int minCost = INT_MAX; + for(int x = 0; x <= maxVal; x++) { + if(amount >= x * coins[idxCoin]) { + int res = getcoin(idxCoin+1, coins, amount - x * coins[idxCoin]); + if(res != -1) minCost = min(minCost, res + x); + } + } + return minCost = INT_MAX ? -1: minCost; + } + return -1; +} + +int coinChange(vector<int>& coins, int amount) { + return coinChange(0,coins,amout); +} + +//方法2 +//动态规划-自上而下 +//状态转移方程 +//f[s] = minf[s-ci] + 1 s.t. s - ci > 0 +//f[s] = 0, when s = 0; +//f[s] = -1, when n =0 +//时间复杂度O(Sn) +//空间 O(S) +//这个是从总额amount开始,一直减到总额为0; +vector<int> count; +int dp(vector<int>& coins, int rem) { + if(rem < 0) return -1; + if(rem == 0) return 0; + if(count[rem - 1] != 0) return count[rem-1]; + int Min = INT_MAX; + for(int coin:coins) { + int res = dp(coins, rem - coin); + if(res >= 0 && res < Min) { + Min = res + 1; + } + } + count[rem -1] = Min == INT_MAX ? -1 : Min; + return count[rem - 1]; +} +int coinChange(vector<int>& coins, int amount) { + if(amount < 1) return 0; + count.resize(amount); + return dp(coins,amount); +} + + +//方法三动态规划, 自下而上 +//这个是从总额0开始,一直加到目标 +int coinChange(vector<int>& coins, int amount) { + int max = amount + 1; + vector<int> dp(amount + 1, max); + dp[0] = 0; + for(nt i = 1; i <= amount; ++i) { + for(int j = 0; i < (int)coins.size(); ++j) { + if(coins[j] <= i) { + dp[i] = min(dp[i], dp[i - coins[j] + 1]); + } + } + } + return dp[amount] > amount ? -1 : dp[amount]; +} + + + diff --git a/week06/509_fibonacci.cpp b/week06/509_fibonacci.cpp new file mode 100644 index 00000000..95f6b1ff --- /dev/null +++ b/week06/509_fibonacci.cpp @@ -0,0 +1,54 @@ +// +// Created by lewang on 11/28/20. +// +// F(0) = 0,   F(1) = 1 +//F(N) = F(N - 1) + F(N - 2), 其中 N > 1. +#include <iostream> +#include <vector> +using namespace std; + +class Solution{ +public: + //傻递归,up -> down + //time O(2^n) + //space O(n) 递归调用的深度,所用的栈的深度 + int fib(int n) { + if (n <= 1) return n; + return fib(n - 1) + fib(n - 2); + } + + //添加记忆搜索的循环 + //time O(n) + //space O(n) + int fib2(int n) { + if(n <= 1) return n; + vector<int> memo(n+1); + memo[0] = 0; + memo[1] = 1; + for(int i = 2; i < n; i++) { + memo[i] = memo[i-1] + memo[i-2]; + } + return memo[n]; + } + + //dp + //time O(n) + //space O(1) + int fib2(int n) { + if(n < 2) return n; + int f1 = 0; f2 = 1; fn = 0; + for(int i = 1; i < n; i++) { + fn = f1 + f2; + f1 = f2; + f2 = fn; + } + return fn; + } + + //高贵的数学推理,不做强求 + int fib3(int n) { + double phi = (sqrt(5) + 1) / 2; + return round(pow(phi,n) / sqrt(5)); + } + +}; \ No newline at end of file diff --git a/week06/53_maxSubArray.cpp b/week06/53_maxSubArray.cpp new file mode 100644 index 00000000..c364080e --- /dev/null +++ b/week06/53_maxSubArray.cpp @@ -0,0 +1,40 @@ +// +// Created by lewang on 11/29/20. +// + +class Solution { +public: + int maxSubArray(vector<int>& nums) { + int pre = 0, maxAns = nums[0]; + for(const auto &x : nums) { + pre = max(x, pre + x); + maxAns = max(maxAns,pre); + } + return maxAns; + } + + //神奇的线段树,期待讲解 + struct Status { + int lSum,rSum,mSum,iSum; + }; + + Status pushUp(Status l, Status r){ + int iSum = l.iSum + r.iSum; + int lSum = max(l.lSum,l.iSum + r.lSum); + int rSum = max(r.rSum,r.rSum + r.iSum); + int mSum = max(max(l.mSum,r.mSum),l.mSum+r.mSum); + return (Status) {lSum.rSum, mSum, iSum}; + } + + Status get(vector<int> &a, int l, int r) { + if(l == r) return (Status) {a[1],a[1],a[1],a[1]}; + int m = (l + r) >> 1; + Status lSub = get(a, 1, m); + Status rSub = get(a, m+1, r); + return pushUp(lSub,rSub); + } + + int maxSubArray(vector<int>& nums) { + return get(num, 0 , nums.size() -1).mSum; + } +}; \ No newline at end of file diff --git a/week06/62_uniquePath.cpp b/week06/62_uniquePath.cpp new file mode 100644 index 00000000..f21a4b38 --- /dev/null +++ b/week06/62_uniquePath.cpp @@ -0,0 +1,71 @@ +// +// Created by lewang on 11/28/20. +// +#include <iostream> +#include <vector> + +using namespace std; +//a. 最优子结构 opt[n] = best_of(opt[n-1],p[t[n-2],...] +//b. 储存中间状态 opt[i] +//c. 递推公式: +//opt[i][j] = opt[i+1][j] + opt[i][j+1] (且判断a[i][j]是否有障碍物)这种自下而上的感觉理解不能 +//这题更倾向于 自上而下的: dp[i][j] = dp[i-1][j] + dp[i]dp[j-1] +//第一行和第一列都是111,因为他只能向右或者向左走 +class Solution { +public: + //另开一个数组,存储dp的状态 + int uniquePaths(int m, int n) { + vector<vector<int>> dp(m,vector<int>(n)); + for(int i = 0; i < n; i++) dp[0][i] = 1; + for(int j = 0; j < m; j++) dp[j][0] = 1; + for(int i = 1; i < m; i ++) { + for(int j = 1; j < n; j++) { + dp[i][j] = dp[i-1][j] + dp[i][j-1]; + } + } + return dp[m-1][n-1]; + } + //优化空间保留当前行和前一行 + int uniquePaths1(int m, int n) { + vector<int> pre(n,1); + vector<int> cur(n,1); + for(int i = 1; i < m; i++) { + for( int j = 1; j < n; j++) { + cur[j] = cur[j-1] + pre[j]; + } + pre = cur; + } + return pre[n-1]; + } + //优化空间 + //只要保留一行的数据 + int uniquePaths2(int m, int n) { + vector<int> cur(n,1); + for(int i = 1; i < m; i++) { + for(int j = 1; j < n; j++) { + cur[j] += cur[j-1]; + } + } + return cur[n-1]; + } + //还有一个排列组合的方法 + //从左上到右下的路径中,向下和向左走到额步数是一定的,(0,0) --> (m-1,n-1),一定会向下走m-1步,向右走n-1步 + //所以一共走m+n-2步,其中选出m-1步是向下走的,Cm+n-2 m-1 + int uniquePaths3(int m, int n) { + long res = 1; + for(int i = 0; i < min(m-1,n-1); i++) { + res*=m+n-2-i; + res/=i+1; + } + return (int)res; + } + +}; + +int main(){ + Solution test; + int m = 10, n =10; + int res = test.uniquePaths3(m,n); + cout<<res<<endl; + return 0; +} \ No newline at end of file diff --git a/week06/63_uniquePathsWithObstacles.cpp b/week06/63_uniquePathsWithObstacles.cpp new file mode 100644 index 00000000..3214fd15 --- /dev/null +++ b/week06/63_uniquePathsWithObstacles.cpp @@ -0,0 +1,109 @@ +// +// Created by lewang on 11/29/20. +// +#include <iostream> +#include <vector> + +using namespace std; +class Solution { +public: + //和obstacleGrid一样大的dp + int uniquePathsWithObstacles(vector<vector<int>>& obstacleGrid) { + int row = obstacleGrid.size(); + int col = obstacleGrid[0].size(); + if(row == 0 || col == 0 || obstacleGrid[0][0] == 1 || obstacleGrid[row-1][col-1] == 1) return 0; + vector<vector<int>>dp(row,vector<int>(col,0)); + + for(int i = 0; i < col; i++){ + if(obstacleGrid[0][i] == 0) dp[0][i] = 1; + if(obstacleGrid[0][i] == 1) break; + } + for(int j = 0; j < row; j++) { + if(obstacleGrid[j][0] == 0) dp[j][0] = 1; + if(obstacleGrid[j][0] == 1) break; + } + + for(int i = 1; i < row; i++) { + for(int j = 1; j < col; j++) { + if(obstacleGrid[i][j] == 0) dp[i][j] = dp[i-1][j] + dp[i][j-1]; + if(obstacleGrid[i][j] == 1) dp[i][j] = 0; + } + } + return dp[row-1][col-1]; + } + + //空间优化 + //只用两个向量 + int uniquePathsWithObstacles2(vector<vector<int>>& obstacleGrid) { + int row = obstacleGrid.size(); + int col = obstacleGrid[0].size(); + if (row == 0 || col == 0 || obstacleGrid[0][0] == 1 || obstacleGrid[row - 1][col - 1] == 1) return 0; + vector<int> cur(col, 0); + vector<int> pre(col, 1); + bool flag = true; + for (int i = 0; i < row; i++) { + for (int j = 0; j < col; j++) { + + if(i == 0 ){ + if(!obstacleGrid[i][j] && flag) cur[j] = 1; + if(obstacleGrid[i][j]) { + cur[j] = 0; + flag = false; + } + } + if(j == 0){ + if(!obstacleGrid[i][j] && pre[j]) cur[j] = 1; + if(obstacleGrid[i][j]) cur[j] = 0; + } + + if (i > 0 && j > 0) { + if (!obstacleGrid[i][j]) cur[j] = cur[j - 1] + pre[j]; + if (obstacleGrid[i][j]) cur[j] = 0; + } + + pre = cur; + } + } + + return cur[col - 1]; + } + + //空间优化 + //只用1个向量 + //[TODO]在i==0 || j == 0 的时候的处理有点问题 + int uniquePathsWithObstacles3(vector<vector<int>>& obstacleGrid) { + int row = obstacleGrid.size(); + int col = obstacleGrid[0].size(); + if (row == 0 || col == 0 || obstacleGrid[0][0] == 1 || obstacleGrid[row - 1][col - 1] == 1) return 0; + vector<int> cur(col, 1); + bool f = true; + + for (int i = 0; i < row; i++) { + for (int j = 0; j < col; j++) { + if (i == 0 || j == 0) { + if (obstacleGrid[i][j] == 0 && f &&cur[j]) { + cur[j] = 1; + } else { + cur[j] = 0; + } + if (obstacleGrid[i][j] == 1 && f) { + cur[j] = 0; + f = false; + } + } + + if (i > 0 && j > 0) { + if (obstacleGrid[i][j] == 0) cur[j] += cur[j - 1]; + if (obstacleGrid[i][j] == 1) cur[j] = 0; + } + } + } + return cur[col - 1]; + } +}; + +int main() { + Solution test; + + return 0; +} \ No newline at end of file diff --git a/week06/70_climStairs.cpp b/week06/70_climStairs.cpp new file mode 100644 index 00000000..c83c79dd --- /dev/null +++ b/week06/70_climStairs.cpp @@ -0,0 +1,18 @@ + +// +// Created by lewang on 11/29/20. +// + +class Solution { +public: + int climbStairs(int n) { + vector<int> dp(n+3); + dp[1]=1;//爬到1阶有一种方法 + dp[2]=2;//爬到2阶有2种方法 + //爬到n阶的方法等于,爬到你n-1和n-2的方法的和 + for (int i = 3; i <= n; ++i) { + dp[i] = dp[i-1] + dp[i-2]; + } + return dp[n]; + } +}; \ No newline at end of file diff --git a/week06/CMakeLists.txt b/week06/CMakeLists.txt new file mode 100644 index 00000000..319df8e1 --- /dev/null +++ b/week06/CMakeLists.txt @@ -0,0 +1,8 @@ +cmake_minimum_required (VERSION 2.8.11) +project (week06) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ) +#add_executable (move_zeros lc-283_move-zeros.cpp) +#target_link_libraries (move_zeros LINK_PUBLIC week01) + +add_executable (63_uniquePathsWithObstacles 63_uniquePathsWithObstacles.cpp) \ No newline at end of file diff --git a/week06/NOTE.md b/week06/NOTE.md index 50de3041..6bfef0ec 100644 --- a/week06/NOTE.md +++ b/week06/NOTE.md @@ -1 +1,111 @@ -学习笔记 \ No newline at end of file +学习笔记 +**这周没有做好时间管理!!!作业后面补全!!** + +递归 +分支 +模板要熟记 +面试的时候如果又很难的问题那么一定可以拆分成小的子问题 + +# 动态规划 Dynamic Programming + +关键点 +- 动态规划和递归或者分治没有根本上的区别(关键看有无最优的子结构) +- 共性: 找到重复子问题 +- 差异性: 最优子结构\中途可图淘汰次优解 + +# 实战 +1. 斐波那契数列 +递归 - O(2^n) +可以加一个memory 数组,记忆中间状态, 变成O(n) +循环 自底向上 o(n) + +2. 62.count the path 不同路径 + a. 最优子结构 opt[n] = best_of(opt[n-1],p[t[n-2],...] + b. 储存中间状态 opt[i] + c. 递推公式: + opt[i][j] = opt[i+1][j] + opt[i][j+1] (且判断a[i][j]是否有障碍物) + + + +3. 1143.最长公共子序列 + +动态规划小结 +1. 打破自己的思维习惯,形成机器思维 +2. 理解复杂逻辑的关键 +3. 也是职业进阶的要点要领 + +mit动态规划 + + +70 爬楼梯 +1. 每次可以上1 2 3 阶 +2. 还是1,2,3,但相邻两步不能相同 + + +三角形最小路径法 minimumTotal +1. brute-force 递归 n层 left or right +2. DP + a. 重复性(分治) + b. 定义状态数组 + c. dp状态方程 + + +和最大子数组 + +乘积最大子数组 + +零钱兑换 + - 暴力递归 + - BFS + - dp + + + + + ## 本周作业 + + ### 中等 + + - [最小路径和](https://leetcode-cn.com/problems/minimum-path-sum/)(亚马逊、高盛集团、谷歌在半年内面试中考过) + - [解码方法](https://leetcode-cn.com/problems/decode-ways)(亚马逊、Facebook、字节跳动在半年内面试中考过) + - [最大正方形](https://leetcode-cn.com/problems/maximal-square/)(华为、谷歌、字节跳动在半年内面试中考过) + - [任务调度器](https://leetcode-cn.com/problems/task-scheduler/)(Facebook 在半年内面试中常考) + - [回文子串](https://leetcode-cn.com/problems/palindromic-substrings/)(Facebook、苹果、字节跳动在半年内面试中考过) + + ### 困难 + + - [最长有效括号](https://leetcode-cn.com/problems/longest-valid-parentheses/)(字节跳动、亚马逊、微软在半年内面试中考过) + - [编辑距离](https://leetcode-cn.com/problems/edit-distance/)(字节跳动、亚马逊、谷歌在半年内面试中考过) + - [矩形区域不超过 K 的最大数值和](https://leetcode-cn.com/problems/max-sum-of-rectangle-no-larger-than-k/)(谷歌在半年内面试中考过) + - [青蛙过河](https://leetcode-cn.com/problems/frog-jump/)(亚马逊、苹果、字节跳动在半年内面试中考过) + - [分割数组的最大值](https://leetcode-cn.com/problems/split-array-largest-sum)(谷歌、亚马逊、Facebook 在半年内面试中考过) + - [学生出勤记录 II ](https://leetcode-cn.com/problems/student-attendance-record-ii/)(谷歌在半年内面试中考过) + - [最小覆盖子串](https://leetcode-cn.com/problems/minimum-window-substring/)(Facebook 在半年内面试中常考) + - [戳气球](https://leetcode-cn.com/problems/burst-balloons/)(亚马逊在半年内面试中考过) + + ## 下周预习 + + ### 预习题目: + + - [实现 Trie (前缀树)](https://leetcode-cn.com/problems/implement-trie-prefix-tree/#/description) + - [单词搜索 II](https://leetcode-cn.com/problems/word-search-ii/) + - [岛屿数量](https://leetcode-cn.com/problems/number-of-islands/) + - [有效的数独](https://leetcode-cn.com/problems/valid-sudoku/description/) + - [N 皇后](https://leetcode-cn.com/problems/n-queens/) + - [单词接龙](https://leetcode-cn.com/problems/word-ladder/) + - [二进制矩阵中的最短路径](https://leetcode-cn.com/problems/shortest-path-in-binary-matrix/) + + + + + + + + + + + + + + + diff --git a/week06/cmake-build-debug/62_uniquePath b/week06/cmake-build-debug/62_uniquePath new file mode 100755 index 0000000000000000000000000000000000000000..3df774cea6d8b48fd17283d0b758eb90c295424b GIT binary patch literal 33208 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 literal 0 HcmV?d00001 diff --git a/week06/cmake-build-debug/63_uniquePathsWithObstacles b/week06/cmake-build-debug/63_uniquePathsWithObstacles new file mode 100755 index 0000000000000000000000000000000000000000..1246f68c3648491a3618f6a93a77b92d45e1e3aa GIT binary patch literal 53544 zcmeIbcYIvM)dqa;u4J#QRk0<@a$npeTg8?v+p=+yi)=MpmSvhTEGjE`u^Q6K1&A>v z1cy!%AOr{y@&a!fA%PI8DIp}JkU)Thga9G57Xoh*h(q)DJZEO^-Yv4^eD#lS^;^x{ zIcLtCIdkUBnRfS_>W1|m+qTTdYpt~SwArUpsx)B7lRAQ+%Br-|@PDQ?!y1L>6iHL? zDir{#K8G}E6Kb-S7hvYA^eDXeaEeN{OlUY{n5tpPf^5G^HKAn%B!T(J>;4RRL>Q2W z39rz6T&qKqkB`iElg@XO&Syf);Oo%Tk9FgBt4@y(*8#?l35m<k=D$YT8Q(KT9uvX_ zm28>N<ZD7c@;TB^wnp5d%Nt5A`!)Y2H0?0IE8M!cVt!Y9NmsaMa8Jpe%Ecv%D@q4? zOUtF+q)*%pn~sx`*xp7|<T)2#rV*Zb>@Cmu8fL%z+e3#R%=~P^>SKd{o<tZ$z&xYz zy&`+R&pIYI&6kpraZ!p@MHriebk<b=?w!-q);@RtU#>dazwDayZ`c3j;OXaFcXoN} zi|^ih>HlWFaK?#KUi{@>ZhZTh_cAkbU%e4ohWuO)$c!Y=%aJxNN%}KL3nWSJMp`ob z=|kXuYY2SGF@SIU=U5~J;uG;qX(uc9L8NC}`Brvz0I}%j4Mdr4#ijpK(kEK^ap`X% zJ&*+daiot0r9Q2<MlbJ0`Zz1o+Mk99KItm3-bKiCV`qwVdX~-fbnAUKy6f|A#Ivo5 z3H+xDex~)lrXSLIrb~L3)voz5q{eIf({#GgNelWs5NU5KDxwZAwt~UV?%tl@K%}KV z5)4|w+N~Rd?V<iqXLukI>fgF?ZC7tkXlqMrS4hE<L$+;dj#P$w2ZF6F1EGrAo^WJc zS@kX}n3%qn>ENNw6yLU|CD;-P?FmP~3m-bdJuO|~Gf`fUc$&5DmT-?147ImJTEIvn zQrp8l!NGx0yA`b472Kj3Ufb0&Fc2C*USg`e$kqd_VC%quNl=vA1_py+@M=opGfEFz z8yafYtUd9>;KI@h6%Uq|mX|J~Y(3IbqrKc~*+cxPmQYZ(snX-f+^b+Zz1D2B4?l!| z9-*;QgOkE&VUJa&;l^$od%Ib;|3%t9oAhUO`W12M**e{)_1oZ^=O?oQWJ7GfE>fPK zcBQkn=JSFp-90|N>`Hgr=QmyHZdHHZm2P-q8HZfynsq7qUY$-FjxHm9(3NibA~V#S z|BkQb;?#FX2dtXUAB=boKV5VF<G#lTlF#8qR{?Z*_LuQLYkC!8eBMFWTQ48RXZ9EQ zOp(0xv^<}O=Z-5RGyavmTYKO)r`8;JwdVZS-ru~n;nLKPfLn8E#`zMg@FO@pz5{vw znKgYKAuA5xq2|(52FKORJydhxuQlf%%G@;`Y%V4UY^I%Z_~j14KjkrU)lr%?{Q@Zx z`D-QrqBSc2XUzY|XWp6v@7Fx?=BgU|iJISh7Rd)OTNCpuVk&<;z5OfxJt|;Xg9SC` zuegn|<3KOsueo@|AMo^M2CDpK4gQ_-MC#K>u>X<B&*~H~ef}zIF#WAlfvNaL`7OX_ zW!@sm!%v^`Ru!O((?(jSJjN)RC;PzXJ~=RW=={%pVh@&|`?*7h4}+b#sAnq~IQz51 zhifh!zmc>qUDU|n;?(&J4*c}ZMgXt)nGkx2*&b#yy?HCy1)KX>%<2<XA76Xm`PIj* zM%&EZ=cUXqEx8b3^Xdbi)*kq<VJ?~Q)jaa4_sw5_io!nsZX{6lqLFvQfsYyve7Nqw zd#exU{;}r#$LyM=e;Rz7I&|_WtGBN{W%a46gO6PiZJ&QYwS=D5GFxk@J=uFKeHiNa zwJ7FVgij(oi0}o3)Hoj)e*s|*!b1qRBg{vY_8_c8_$I>rtRg=21NgDe++x{#vhB(K z(Y`C}(b-I=54i(0%@{+x<oK2~OXDB<<nZAIM9j=ypP65mmA>1z-&!^4*m(<Q&0sR~ zLwzj^blv@wWo^f|5KSRt-RjKj3q5NyMy&@!NGJSkd~*P=MQ9ngXPqDrem%a+0Uz&% zZ&vwP<^%Xv0xo0Sn#}CWJ!>-aFY{Js1};rmlUaC4YE9;X3rE#tR-Qk4V`f!<X65S4 z1*<a)*JK8O2mCdeKC!DQklksZ<F*?t^8f$*KPLe*Zkch)j7x?Ct=<?7)yIS!8~O38 z!10&#G{y0ICTh4DFDL6~Gp<h3&t`n2{_$gU`h(97_ww1yi_F;O(~(gG;&VtVk#V<H zXhw~{m#@$)(P<rLV8+m!^mt`-QTiU>rk{@1c_!%apiVI9_i9EA-#%Tw87ocs({z4= z_wiv>KcGtzx`WhrkERC`BhQAf_x1C74ga@(PSJG#uMV7fW*p%;x&n($MdIK``)K^0 z4Qtmf3ltvLI@l8#3@j>LRJx#~tb9-&%jT+tK>32QC1nfB7Ffk7MF~c6VVwN%5T#$a zNll6&Yx}H1#Fv#=){i%0R<4`LozVkV)|zbj=0Qmwz;q||PbsN?ss!a!Z`CgsGr0IT z2`;@Dsj1$}ZkFKk2PL@TZ3(VST}s$hMG|~zy#!xwmEbG;B)Iy^5?phW1lK+x!B_uB zg6sUtnEh)@B)EQy1UK%G;HCo--26=mZaFByt*=XP+bA;Z{qG_PzFjZDcRM7w^IQqO zf13n%JtDymUX<X6A4qU_)^cXQXRZW4dP{<PKa=3cQ&$jn-*O4=KUsnYE|lQGn<RMn z5eXjoqXdtBEWu+lRx;n?Yb5wdiv&;Xmf)w?Nbuy3B>36$68!vM5<Hc;iuryqTY_J% zmEcz`68!oc37)<I!6>iKJ}6<D{i1|pY)=)_^KJ4o$~)Pna7KBj*%Zqt?=dz7GRiw! z=bNMR6-d6(cU3?^7Jmo>;rk(?zLfg+5l{QtY9w!LM$21cn4Z%3IoN<!s9`t0>2pz} zU!WPcpiibWy}udi1;~X4YGn+}0AR~~^_KNjB!1liWPY1Dww^M_vPj_`03IN4K4@B5 zQrNaJGvH%9jnwA|VQCt&eOE0YZzJ^s1Mx44f`iXNAMG^MAQxZ7=BJ41+-;-L3+zH9 zEOfwC%$<GhB=FR?9d>>_p6z;ok9Sa{0EH5{KcG>10N(4M2$igz3qj>9t{T~w0(7kb zr{7OOW~H*?`~Exy;BN!;BLnucOl$1CGJwB0Wvyj3;Mx8)z`rAk2xi<_C4hb@YbvBh z=vxlN%2@(YSg9$?80OYwA^y~{z!{&5VIs$eLi1Xn0`{ot5aJVlHx}x!p$7=LJMs~& zVQHDm7_B=F=3*|8>hW#DH+=vwD?hlkPk5Rb4DON$=#B$8?+n&uRP}?14?*`DV2rBU z3d?makiLQM9r&j2O-|Rga!v<$(grApJ-@;G2+&3^$bB75r2f>V9r7)h3)M{Zl~qVk zzDk0HbrLN4y#$M2lVHhv5>$R9!LoBDIQ9|=mR}>mid!UDwP6iuR+UMx<~T`Qdzu96 zc1lpaOM(rlf>M($LG5G->gGt$@Et+fc&`MT9+RN)R}wUB5tJ><8Kf=RDZ%1v*Yat} zT?leN!<d`;<YZWb++Qt$%ub*nQpfE2h&W?*&s)dftcxYsce@1VJ}SX^&r5LrI}%)A zR}=HXA_)$xm*C><5?r=hg3GUx;EKB>xazkOeB~b!T${R{*{>Tb!PjO=aQ#{dZfKR@ z#&adO=^6=c{*eTqZA0m!#(3?67)eHrNwI&6<WXZr+3!j?+OFEbXP@nnFwH(j!ZG$X zgsJJRZ5&9_+cIkygeFSRQ6@p>dI@%Hmmu6P!RcR+VCM}IbUh?N_e&C-aY%yxsjwBP z>5=6U3~rZT*Lf1`xmJR`-<9C(`y|-+v;^nBD!~Q+lHl`W>qzAbGbOlanFJRHCAjo- z2`)beLGEqyQNeBO7L$X=ms|c-DgIUGj>cRhT!fxW3y`sNfzPt0er^<$dul6EJyTCO z2C%8)(_wk1j!uOknz|cg0#mO6dezi<Ik2kJ-e`jQ+tWH{An;5pfgP|?rk#r_TE1!L zL2In+X&gYUz_jXe1XWY71InFK*Nw5Px@qTvP>Mah6qX4@tm&RAtPC7Jd`{pWV01q| zd#ovoGYo^h=aRu&;Xc|^-w%+%Lb!%0Q!i{JgRdf<JvFTmMNMxP*AWD3G3p4xI@=*w zhsIPj{^}DX_*MF&Q&++=*;6OMC-zMJpdJ|0Ph%y>RR%;NM9zjC)?7V>GE*8TwnzR> zA|FDQ*3|EzJJ?hIjHqY&^eP0%ZXI(6m^c|ioUt?$2^lAO?32<gYvzds$lc<340&c= zfzmTtJv4T+h?Q}QXCnqsdod7~<C}gR8qu0vNzkdD-{k?c(IhMTZOz$&Q7&VxeK|O> z3-*KOjP-T|NVc8B@(SBSZB|CDO7awJL)&IFsHc>|9icr|Mx%Q26^ub!XKYnZ*#&3L z$J2@GDNxwk7O^r;R!>z0CD4J4pnBRr_igAxMyq<V?762yCo($pqi5~{G<?SC`Y~nh z1rTpWw|?}^{XBFfqfb9(&&`6)WDMxXz}y<>PR4HiSXFQXNu8-4?=08=UCQ{Jda9dy z0UKq%dP=e9d;~FOTxL^s?1I%4^Hug2kpWWaMNlvmEuQfemE<WngqF{^PCca*To292 zxIsNxbJjr-GrnW9m)M0ZeSKEOo%XYe(vJ}oVx`u~_<>6D6g*2d?p04Ig;=1?xL-Z^ z3VR13!iUsTc7eYTh>xhJz?|nXB4zy2refNKt)WgU<7s;-bO&S4Gz5ihgZ);<Gb+h0 z<l=3{bLz=srDksVRvpYiX7f!FY!%-)bNeIm6nasD9Un*#9)p_t-a?<r&w8#G^-Rrr z?w@Ec1bH(hxC9D<r-Lf^6M}gU2cU$WA`Z-1ul|-wSd`U__+QQd)GpeH|5<;13o`<{ zXanP~|5M_ZfNs_snNTCU==s%%zm+5LeN2D555?I<7cl-mgA#ufqRV>cH!uNqQ9e3r z*56KNSy^it|MYcGus8X!t%h%UWdm3$7KqROXahiDBu5O$zmo8rQamf9@%A?{e%Y5H z;YJ5(24V_xmQXszE?_760g|7LMOxQjFmoP7b13wc_BpK2t3Z9%L9YX*hBw+<puV<; z`h&0V?B5)PH`}x40zLz<atF@*Zl1Q=f2C#K0E819Boc8W4cgaD2T~Uh&UTQ_flxKl z8cOgsdo%2qeI*dCH%Q8ch!>fC+kN2XcBqH_Lx3MPD1NC?34PJ5gZ2;5I)d{8;D2#& zq*e;&IlCaBaXtZjG)$MOIr*_>H9^s{-n4_zKzj;c#SUCrgM!vb<2@&PfwUS34GxkJ zDLHXDh|KitU1M2)M|0RAz;_xPOM#0$m!OM(M(_myeUaefNxhW4Cu@=CR1lHe-vH<i zC$|Ex^t=mH$^9rmPdd3vmV!ps2G4Ij@HG7({t7^EIJp&gv*+_gn4=JE!Ssy6SCw6I z3s}xN$@3zbOL9*KXg0y3&<fn@$wyAf&CzLHH1`RtcbDfPbTVP>6oA^IU@lx_4SKR* zQU!cAK<7olEFx>4rwH9lh<^>Bo1@^H$=Vk@J<~M!K7bBJ!ROBg_%hFFD4Q*1{~n+} zN5SV1{3XwOB^rDPpwAretgTRmteZW1*&%Y!F4OQ;YC&R_g5T|#O*LK!*xDGlU#Z1o zU@hx+o<>O9J`o6~8YHV^F)T&aOP+J#sS0<y0s0)l(&QxzFhXU$;d#G8Ph+kI=z0g7 z6^2q~ufDAmbnis!{e)0jeqpZU7-()*x_1C$(;ui$&jSAEWH^(&&#$$t*NJloaPL^n zfTA;NB^o9x;QbzS-;)p6%vgA7OT@}r?41ZErI=#@UQd)LD}qwvoi;|7aw@>#SSlr1 z0hH40{T}S4kU0<Viwqe{flv0ninb9(ZwBZ#L&7Q<15sqPd4F50a~}lgiD+&C@AUo@ zjV8JO4A5Vrxl>??v(EJX0)y{&>mh~D07@CBt6-G~_&o2AG4A}3;Hd!3Bv@K$Rw~QB z(t8WKmR*VDwI-)-e}R7kMgi~>0c&&M+tFCotcrEWf46rX<-Z58eFko2Pr~Szz4H^a zuypyW0r@Wj^|Q06B1(vt^`W<Uy+(W(NWYFnl(H1!=#<Bx_CoPZARUTDRJKYePEOg2 z4j_nQ;X2L1SGB4XO)b;q|B5PdX3F)|8haHm>te9262bXON-LZ@q1XoaKn#x5$eP8e zeb#@cbaLdp2nb(tkZ8iKS@*KA`%`|3I@`Ac_FV(FW}Q0^pmC{pL-Re4A^8~t5>?ji z5n!jDlDc9GklqBsKVp!qtQIt6_A3DxEzfA^`~-YetvSYP8spe7kJyu7d_2WKSnVLO zZtl{43h8D~@q81Ud5#BGi-W0p=|NbB>`k8A(R2+}z&R7}{RYP>@dUu^WvQu9Y~p*q z3eX({Q}<Lk`!P&fvmSu*W?i59OaYJ{0>aM>4gasek(K=vq?Uc@cVG<2q30EV-*Hfw zq*1<F3}YlHDbV*^d{yP8UV=BjmJ0vf)H74z;Q?Oh;K%@f5XqLp`Ely+QTqnKx5wh_ zg2SSgLg<$*IH$_8=rmbn-+@5wvG>`0DyKI!_CXb=7dQ4{o9N~A;>JE|v#XY;F#eSN zD;ThHdSYXLW3!nSR-g-yecOH?ee268`+0o*TtD-F8!-(&WM^S5hv1K6!2X+vQ?VBc zGB(BY>_W^!QLM^NY)yk>$JjZZGXW>jMZ`IXBCMRV@wjm7RDkDup00v-gXgUdxco%q z82cxw*CMCtKF+@FaUs@l-UAqq;6lCtYd7x9Pob~&l}Nq@-}Fydf`Xh~1nJt}Lh3yR z;{Pqdi%-EEZrpj_Tnz9N2BarmzQxcGc+qzU#9>Z>KM%iojtZ`yBTrAO;9UgsevMi> zUNmRk#*01|P~$}(H=l9kMV}^d<wc)a#&qRH-;7$@MaqlbkK&9M{dtKedeN;Y*m%)x zVAlRJH26Av)7kKj7kxg>!1s`Rp8@$_r&-O3;MsW5`!j*`ED~OGkai%ZFpU?z4P&4E zZzN|z*Q5}?Aicw$rfB*AHD2_UO+YUM>Ou$oH8Q5)jdm5ft6c+FvjhJ-8B_3P`%?5i zn`*tsfiu6Gr|tIfV}Nui5N>dgNW_gaXunepq`QFdsDt!H2vs9#FZ$oGAolY>c-0`q zc+s!G484Tn?T-LXooECgH8NiGy=XzfnFjb=2S;jUyy#muYn(NJZ**|TkK;w(Q-pF_ z0qb|*j-VYc`WmRI{RJRg<sb<W<3%5arKm)6*xv&D`v%AHq9>un*Ae`4fSx9pL$~8a z7gXxpZvph4liPUFMQ|4-w-57&Ong;t<3(Q%wcbwR1pt*0EGlWd=$k=rGr{WtYKZ36 zUi3E>>D(cJc1CjxxYcv@2A%r?fW8>bt-a{0Kv-D&20(X2!P<+ycCrRP3eb~Lu=b+= zfOZhpUIFNhC|G;Z-$IIjv5jSo!dKT@d(r=cF3*;-rvo%Q3f5lqmL(dz5}<Vs*m%*e z%s|eQklaoXB_{pL@uDXz1AH%F2V&rU_CITu_M*4U1=5W`xYZyzUi8NvUHpRpJw~uJ zx$&Z(DA!)}9|3yR0c$UMWd-Pdh*TScn~OQ)MSlo08er8Y0X{n!&LnRJ#++i}tOT5c zq%fc>slDhakdfz9!05cY;M$A63nZkNa{<1DC{a0SFWN@$ky362_<ONbj2E4SF<i(z z3HYxJ8OMu086%32cmtq!4GG7KzMxp=9)%&ykFQp5?L|L>E-txe15`w?lC$=rpMrX~ zqRH%a0M$ivYcKj*H0B_BpWOyf*vW0Y=qEX<>_hSalT)|9_M%H^>uv<>4hMcn^h0~m zn+bmiu*VJDc+vlWOvGUP5s-Hb)X%=8iZEXEf7u!_6*h4^zN!rbQOYu2bWx*5ECtfa zSVU#3v=@C3oPR0$1R!<AB1SEr@{rF=ISBJ1*q;aH6*1V37kvjD1i`rj@E^zENR1pX z`c?Ry_OF2Odk2Xo-0`9puLt~Zfc?|J9WQzgJatbRrnVFDjq0Ip5A8)SfVJ|J0%2(k zlJTO~jRJThK&Loh@uF3q)?W18=ysldAbi0=V%?&nuQf}1(RYJ$&-K8%&B3JntP<@- zKYpzCq7MT8gu!vV=whfQ@jZVA=skj|xvHEPFZvn?!;=z#qlK@kdM?Y+Ui1W58gl3< z0Jz*iVUqEpA783b>HyvrgW?xF<3)dGrDgR1zR$st0Y1iy{tm{Qs{p?x7ANXO(=QV* znog6ILmx7SE_7Z1zHok4&CZ#Kzl)~I&uZlA=MwR@)6(HxWNl%Bm3BW`JFA&-U)sMQ z#;mQ3XJ;^1*6}US$y_{7!Z+Q+4yORy9#{eCBeBu|{JtnO__z=IpMV_iKr;!g`~+H; z6>3C0<Un!>v2taJcH>LMi1tHwv+B8eo^v+P(pu1bS+_nFAeyYS_OKe6zsf@L8Lw{w zcOY>eFu4kx9w0ph9K`W4i+nu~0M~}o=Lm2f{%7s|v<}<LNc<<hA34B`?o<HJJ_Gg3 zz`&J*uOg`c=gfk)I0uPk2H-Cy%^XrvDCbQ<x32|wtAj$_*U$?`VS2%RsNFG8MMV*~ z_$jdPMS#EJposVs^s*m}#)2gvKX9Ps<Um2MdVD#003grBKsEU;*6r(^<8dSwV6LP~ z-IPa|S%yI<>$VruEsH9UPTj#*F#M_pyTE(acYA>`7m%e6l=uoI>)2I5`Oyx5yc_ZF zL<dJG$Tm3DG&%vwc{l)b`#$i-PeohiTmtI80eGX?IrBSbVWi=dB4;ssteu8CKUU7N zi-Bwvaq5t>h-B@wckn;w*l!@+C)19cC4!&vK@-wfX2a0@0kF66O&_xnyxxzPpXgSW zpsZPey4#;2Aq7PWj+IUCCuhT5nAZ@~o&v}WLbE}^%I2zWPW^>dSb!sR86Z^-bSYPD za~i7*^h7{Tb)fmdYKua!%D4r>c`y5~nfFRu&wJUy&AgX`>u~elN8!#~f^vS1uYU(J z_-{qbnfEqh;z;m6V!-}uiDTxy6%;qvQQ3*DY3O;c4S$M6ONi4Wx*x%#nfJbc!I94m z4%p0lSubgJF;>1hSW3)$e~#37g$uxdnfF>4JM05Uz8v55|7Hn#-kY5Q$TyJsT?6s& zCs@yW$9MpK$bj^`H;1L=HN!;19`Y!cv4@<;E)iC=J!FEhhm0G0$hfhGz5)!Pc%FxE z`kgFW+rwjEC|4k{#sK{HM4`b7Xw1ogbU4rl2-Ws*DW+(H4&+fnj6JM_@@adR1{vjC z0yJ$8Uqro(J!CbsJ$x9le-b2q4ouGH(|<*J+8%~sNy*n60C1L{{;U9%J=_9~yd8-t zsN)!X6;PR#v$Ho~;~0rE2@sMBaLzd7;?lxu1MvTWG;>Hvp`7=}^_F!K!0ir-+aB^B z#cn{p5Cc_I6oHF>oq-hqfWPUWi1-xrvb(^+y?{LCKwl;Y3VPKPn3LxKc|8WI$t!!9 z3XkC50CP=5>K0=Um#@aT8&qa8pj<8yj2L^Eg@I@(AhiyZ_%ZgdwG{U76u@^lI8l4Z zP9E(TIb3-eKfM_L?im9u3_yA?h5eWSX;Ua}v^IrTgI+RI_+6wMQz-b_6#g&=E8u{A zKt4W$ocvE9<|n!_g`?pS*l8#(3tz!8rf~H<bUk3&1%Q+gn&L8rx4<xvm|YD>y#v*z zu&r4`+W-kWP?|#4-^!uqoWn)vyfF(wB=^A|04a9~B$@lj-KqFb4<YwaRwkEwxVevA z1@;%612e)jEAQ4?X1nWcC)+*IY(Jv$RN3ym#AIWdwQOPumMt6qg<ROZeiRnw*rzh# z;?;fZ19bH5FsP|7KZAawj&{D1lKM&x#E|Meq|Ol9`YfQw_EZ7M!VoroR%%``n>RJD zge>H}0~NO?EV&%{CR_qbG-26U;CRAb3{De{m1r{-g(j@(0fh;NF&&;z#neSVg<^?t zQpY^Uvq7n2UgwdZ)G`0d6G5qC{?3Cysbl`Zb3mzMKH%}7)G;6OG|=+)@Gfi2Umjfx zClnc9LdpJ*F*3_PEAOiuOeeGlidYn+FrhQb#p%MuE#zXSq<)!fcR38b0$Esj-vn!* zz!Nw}P2o+U&<#xlg<Jm<3hxPpXTUkc`Z_5nv7SQ#DzQp*XtDAjoRxRTFBA%k9SRpl z8%Cl-Q~04!c%?=toF1hxz24zLqC->Y1h-b+@t}iRd^<{ER+NH7ho-=zZdTsOn3&u7 zK`tJr<_Edtjetwr2)Kg1geND|NyYrmix8Ktl)r;(+R`WTyPrUjxm?H1@A(CyInRKb z6?ehI$-nq+IK1??r-Hm%W?p&N3&3S7fVhN-FCZfStW_VO6X##aHJ}DmZdDsPXa1Mp zMc<OgEhsSmngbBAJboS8nSb4>=p6DmW(^*1*bjA;$I3E1-ZTZH9v}1G!ANN5-+mVg z%-zV*{0^?HJN~50q0IX#+azyU8gk^)Nz7Zp&M1}6Tg7#i+;=u2wTdpH)IV=E=f+b1 zyfs|<%=l$G5E}m#z;b#iO2Ie%ZKP{J(<k7(2#Jdg!2iBLf5B|WZ>Ymq0LWGY)#J$= z*tNWqE`(iq2DR7;=q_S>h^+p%kYZ&D#wnLHqQ~O-Qb4bDF#ahR+~3G+vmsZ~_#U7S z6NAk8pG1nEJ0eyF_b~Fh_dxK!1^875g_#7;%A`A&cg6~coB93?l*2?LH!iW}P^-r8 zK`V@Za4IsCC|#q&2JNDoiGc1T0(y;0=&~DK+mE=`HTscS*CGvC*7-eWBAT-b?WA>W zOBU9UK;;0ElxwGTZ7~wR!Nd!ZL;e|E<5}~DDo59DfcGkoO4q*V*N<A)U>XIgbnOC2 zNgkE1y|6?*=B?oXlz;m)R8s32y;;#UF~`xtI*;e{p=*Os)<j*CK}YGDGi>Fp=J=y^ zjU$-WwU@!mJ`{KXzUkK@-RRmw`PczM;w=W?zfqt{*J@Dk-GCf4&=_6otA=0zc^=<a ziE%5k`j11*=-Q2$SggbIzwu20EroHKU?^Q<X{0e3&>~`xIe!IGVsvdbdj3j)H#sQG zBzQ*GUV?pLz7SA$5{=xr#F|5`s@k&=p3B4+Jlr>0efwxEL%ryck=iqd&cMXKcpm0h zJ%>KP#MeB(lLz_+6aVV@IUi<CF2%zep6843@Eer#Jj+@LvR1Kx{>L+e7UCTw|I2{< zO9?OG8HkC8JZD1HZvn{8hEJ1+Z~8g`FGtUw_=)FI@bNu@=L57T3cdz|=0wYzH3c#S zzP$;ctprQqB?2Dp{Q;CvHpsdG+GD_e(X0}lqMhjXF3iy+t_1uVgJUUhj`xCbn#7#| z-EY8}1kZm=%=cD;8L7jwfd82|tb_k6;M*$6M6a1R#rwrkx|l<Ndm(V)RO9>*iZ?Of zt${%icBcSdKpYpHG74mtcX5-ZQw4Z^9G!x(z$x?|Ku-}m?SS{j(V0S?i@iJHqOc+C zivYjO;3y}LI<SZWmzi_bYoJOsd2&%yO~em$)Z`+!n%wAClP|f|B*YznLn!MrmY2tN zHfl1H8k7V0G<*f*pF+4%lQ&TI&ydSr0{9Bz6bM+W$$l)SJxB2I0Bw(gwVGT6n^MBc z4gz!*!BV(UlaFCBW$*OM0DawnW7WhvNt3u2@P`bJqb9GT1%<@(0KIC!v1)QW>LYdd z81PZ3kkrBd0Qh#)<XIRA;dDCS^N2%EHI7!3Vzi)?wHEMAadfnr%uCgDIsxyGqodWN zpjp$o81Sp(=x8<RLff+;?C$}7x50_d1)^$_LzZ%=cGjAJ_c)-g$xc}YC0dh`@+Fvw zHNKR`RpP@4<dVds7w8+V@r@pX;Q&D{{FA%~w!lzLws@2}?TQi@Ly1~xe}gBY;wfqW z3$l~tK8`PK9rCJpHi{aZg~zqN+%+q}cP@#n^G(fsdL0&05U);|I`(3O>+ep3mo<*y z^*7?*)Eq*sw42Z{Q?tZ8q&<V0PtEN@dWyAy9w@&xKK%1qYwS@s<iPVtNe%ZztlZy% z{M7NM0hIeJqSHpv70R86jz2y1FNo&N+Kda#fe+f?j-~x(8n%8uRAoGbIt4zy8OrNR zy99<Z@CoDDX*p=&z^9Dor%gsn20mjvke0Ox{|_@>SU0v9am(hzg1XZ&U<Yh@sI0pa zT|3~BhpM`<FzbO7d8nzo3@imw<zaK(CNCaF$-{|tmqWb+KKqX_n5We(AzNeYSMji; z?kw1yfZry=eRW(W4P?thq>hUWfpK=uYS`AgGvR9m^6VZ|aev+UYw<9_KCKGJ4C`)Z zq51Zkpmu&;0A?^S#Xf|Gi|Tfez-)UO2wYLu1<eVR*v%;C+PVQgl*+?Rb=0ZAe0jLN z?p!`BkcT_#F5*ME{UH?U-ntO<FR)N}J6Jb9fQLo)XDH`!E4L8xKV~$WVvT2X2<lw# z<0LDGm8$n~_L0NZZMYLwXvP$q$E102P<7vihH*%J-ow-%F_r(2?FHue8+^DK|Mc(< zBENq5N3sU%FGyXJk~$_2$iIMHo$*&8#4Ct?!W3S^7n=b3*u$Iwg5;krXbuu`h}*CU zgXN4Bf<<pg@@gi(4V9U(PC&fLs6eE$(P|hCwVBZ^FkWwrfo){vUJ#ym=TWh<=^>`R zB&iMG$wz#l2>Bo}xQ*kd$o+hTAb9bzVftub6$%!wNh(3ap*9q<mb0XZY>b(H{sV#0 z2y%qV<rHU=P$?sVh*M(j0!g;vmlWpf!XmF=x`jCnjX&cZ0r6U<fUJhorXY2bNP)LB z6>TA_#q<RhzFQD@e^a%AhP{q1F~jSn4)9W^pAjXihHp{w$4j=C2@)M)Ha{Oxy)4RS z6x-lt!Qws8c&vsXxoZ<RZ$id#r${wiNDjXvNW4B8<xs;XWB`7uz<G^Q!G(*4$RvR7 z5YV}CpaEE(86_fgS`)wg6W!De%)ZgM7nW^C3mfDSB1y}zmR4hBE+D5<b$MYm%9Pdk zDV5@ULU@PO4LOn3J%L1ct<_EK@)SVsXS?vGt1C}KUKJo~y##G?GC2+CXBwpa8iLJ{ zZmV+UXhzdMgT0-ZMjouR@1qrGj$u3{Z7K$vnc~9x(tMK<myYC5n^J^$263{}4nxOg zW-^|e_BR;(nKCxyr=69JcsA3gq`l`yd@SREv>sTunYmmlC`_A)l$qnHstc@~t>C2b zAF#_aULwPsNlDGD#@|!;Aqs+bc%y=l9%ePJ$^*EY)OoizDh&<39Do_ynVWZh<8wEh zg!Y+ng0$>@!lh*;CSudg%T{ch2~#@bVJ7pwaI_$+!H1@svDfBO()|vIF$kL_H*6-t zKAWpmyj`sF3PR&<2y@2oiS;odjJUuJ`w0HFO@Z+n1u3Jp#+MqNhXN)v1MT~^I15S8 z8iQ1`FOYZMV0M+lB&%T~^)nz=XE)*OyH>-S0i=2)^%{pLMWIC7@CTGUW0Xynf0T^s zyKI?sfj^%N{_81#X9@gY4qSSb;_5pz8}-s5d7E154qNS`orp*>Z&&N&6)Q85d^7)( zMP9g8!XiOyMKx>q6aFWZ_plX|Pnhth1Ntrg=QFQoyYu$KH=gk{{}akv+wQ!7g4WOY zH~$mLb=YWLEvUWJ!TmND3VFv{!KL{dvccVqAKP3Gl_gQq@Dt>;Z#&!f7TTtR_KYe7 z_(mxhw9%<csBOG4T<_zJ?<V=b<?T|O{gdP-`M<{YEQB7{`!Zle*4Vx;gKzk1S2OUW zUI{-VrvU}j`$B-%`*;yJN3<$?^ex26PTc|KMjwWkGkVE4ftfP8^5;OZa$lH+-Kbe~ zXma0$y3d+@5~CNOAJ3Z8$>@Hl!>j_jKe?M0B3dX`<5f(5X3eFanfnLOnN>tJ&%Nsy zM2lH)ZV-;!tQC@a&ss!RO6uKH5xqp=f}vTLO7sulVRk;*%DoT;&z^WcqnlCM>`A|2 z^p7ZF_T)DheGg2|$-k4)^T64hiBB;48rYdL>5q*55IoG8{C7qtq2&sSq;5|mwV+rk z^vQTcOQaTln7e}c!ox)3E|$vwnz&1(##{j{sFZ4^6L*=^VgSSo)(PGB;Y1d!7YaPc zTd+Z*TTuCe8j1E3w@K)}N8Dzi@GatQm1q-jkCSLA)&vS#BwGoi?ULF;gx*hCp?e|8 zf<E7BwtDto*{~_uf1d?E{45yT(+U^zB6He9=nsWUXc4Wn7cedqRx<8OyBfg4m5gVn zRluGXu46nutr+AAs~HcZ-N(G^881xZnb*P%j4w#Lig{}ouT0yDDMn!}<5g+R6A`at zye6$1#;UNML+a+VGZ=4RyeVxBIzizk#<!$x08@pV8E;N|bsgec7~h(fSBUsl#*a(; zJ$XBs@#E8GLu7^989yOyCFukiKQRsL;2I+1C#AhaI&F+^OB+WzA;wQm`yJ_YF}^+R z7}Dux{1mJ4M(9}KnPi$bzSZc+;mq24O$s2Ndl0GhKHd$_eXSg$b%453?|T->$F1|t zJN7IHhS$N<(m-h5azd@+`$OH<ycLY6Sh;5dW8TW&0cTzIytO<9!F%Hhe;wOb<5x58 zvvU2!Sf2_U;BTA{bH^PQg};dgM&ma!4*Uhcn74TmaLT_5OEGV@_YB1AeY^4h1oFW9 z>9Vw@*4G*ip)&I}i}AggApQgXZ3s?WI0u57cbta-^FHbzG&YR^B*X!dciY85wi=H^ z+s@lTOx|?YiQAaClhv`SO=80@fHSYm%b5?a!ABVq1FQapK*KtTTTSztyp$?$%BwbE z5mv*4=#BGsd)QptqomVQklO5}Sb3S=&ywYz)ewS==3V1uZeFmDy7gAW)95DiZV^X| zm+sYo>iF_j!}p2+zfQ99Hhw&O+YOM!ykot*qA#!Ah_A=Vb1BL$4=?X46Thj7P4yEQ zjkm30{HHcA^ZRL2tj6*xqzqEPE0`#(Fow2ag&Xf9{7zP`H3qJTH(ovk;2+XT@Ld4W z><ZlQi?IM_NOky<0M%3tyJjQxn<50hGeG%HGJt8X0>1XV8<h|oxD3Y)V<`0#yi`u^ z9=f&z8#}20ebi5GD5|0wb5fD`Bon#47|&nh`7o*TemMhm<hEl1cquD?7QHWSM@GR` z<7?z&9|z`0EM#4F(d2WQ@TwCer}3?tMN>G7x6&RTh4@r1U!eQ!2S(8}X5GFa4`%PW zyuYK)`GK3bN|5#q3`~KW8MV?rE<^klt{3>y{&zIu|3$URM)Q0NY4twNyk!lA^L|-F zVd|}TkW{`#K~i(9-1AXr@g_31E!BtU2c9B8{rrb4ZLmL$&%vS>|CA-HcR&pVsAciL zr0ep{3o1jy&mf!Pe@iM~#Gq0eUuGG<AOXIXL8D%U0*e168pwMhI`z%bNPSTV+-p+( zjDZ=l-7tf+Dx}}>bq-2RNLrVb2Bj>1lk6WNSX5W6Xv0TXhbX?#Lv7-#AL4t8)VOha zGm!qqINu8q&92$I4F;?D+p5-t6H#??vS2klRRH+Q0^jYx83X&DLy#kNI0QRf{CyAm z4_`E)X@7|Vc}WDq_fDwPO{Y{K^)*Rtn8~`Ymb&v@6jFC<+g~vd7mxPxwG_gy)%dNk zNV$R>@g)^Hk!#?^S22;Vtccdk+I9yzLh(HwzQRHkx@{Hw#^M?FGLxc8YWPPPlII97 ze8YvRJq?0%Y~`MAeG<K}`0Er*V+j4M_&Y@4D=;(>4z|VTh={IZYP9X@eLR?u`y#k6 znIk^N3CLQy;2xmW`yRmmoZnP|Y#+o>@^$9pje4~-z|&?{V>SHs(j}a4@RGfP@J7DX zxPg!g#(D2vi=>}~zQ(NF&Q^&zohTxQO_O4eE<sk`FVIJA+jk34vVVhN%})PGni`Vq ztw;;vn@*r#?(${7G9D<io2P4(-GH1Ii!$zdFHmZ4D%L1h$AVGU1xRV~U6Rgvb5Ee& zcXxm(ymi&&TZEJ*ANR4Fe23-#eFEiHc9Y;Y2|i?o3N-n+TU@XI6Q|zyl;D2>Ls+wq z=TMt;3gh*@hXIA7fx*AY$Frc#I)(f+`67P)e^UOR37lrlr;77Ze!Y)v1I$_c&%<<0 zKJJ7z`F6^Go{MYpaWk|@V{&n@-p4(%CLi}3>-B%))cbfGtjTxH94QO`n{*0KjMe*i zrU=W6g-l<K?$<0SO+H?pYVz^oQ?tmV+2=z_y^n`+>U}(ORPW=N9JnVE=W=?JZw8D+ z4mVrsecXO&@-eyI$0bozf<SK8U=2=yOg;swV%g$&?1x_P0~yH2zJ5P)oVwiugfQFG zb7ij;d=bLASYy^YnD+wnv^;QPcTswtE4xm69IauVc3AYct!H&U=z)Cf>sx;U8gyma zcseM}8yTY@ZJ)^F*zABjw@<^^)Ccic?Yj`WI1i*lC(VO;LqPIMl@3k~`@kySw9=kl zggbu7I;V3ZV!J`K!tT5r(VxNHU6<4T8$?Uc8LHYpMeGC!?3_>qbny**_wV1=xeDQj zIUsgUXcwa2ZBnJMr2XgYI2TC+OQa~2cK93|6t!n(=A?TwCufee$BoWLOL>;sUf;6x zW7BPr@h-KznS4OETxKznk5mj;COS%@sZ1S>jDpLIJ`Wz!(+!=p3{9strxLWrl-jE% zD&(Hb<rCW`w&yTYda6~MQ-L{zpAl?V$D%2uOm|{!&T^eM%bi@FZj!Uz$+bCAz}Q59 zVPjk(s2$wo%n_z?^PH;S1cL_;%fWG8PE38VK&h%%o3m;n;ra6|ua9+_xIiL2LpUi1 zNJ>Un7lNck>{x3{5n8o5MtV~Vfyf-wB$5idDG?aRfJ8FjQBmN_CsK@9?a_2o%cT`( zYHm^uH?y1?ruJk;WimT48Jei;i_GO<p}<XxS;<!+63M(2U=rshV1n^^Qy|33bW$pc z3X+e-@r9e_C~*VaO;{=bDYqxn4VdrFVKiX@S^!wQa9HLvRx0IH9<3n`9lP^Vy@*la zPE<*Y6geK)ap|&>CC;p<YGQuuhLRQRMoW^kbu8P<DjcPOSkd*5btk|xip{9_Sm7?f z@VnBTsPI;mTG1{?JlK$^p0JXuqwS>{Xw57uJ$)sN0~X@45TyaKmA>|5GDr0U{m6&) zI(s^`e1mP*N|&xV2JJl`S!*>hcp7!?f?(81o0%FMuAxVY>y5CI)+UE_NrzYAAR?ba z+>9pmMeR*fwx+q|SjZHHdX0X@0V*Q~C4}QJm|4ezBWVz2o=zCAxj&Ki{v;_)tG6m` zo5Mh=N;o;1@C6$ko&wo!^c!Q90|vu1v{m`ntP!MBqfP8VU4y0Qx)l=@%GC<xv{Xke zh|*GuM;8j_f~3K&T_L8X4ezJVA!a)xJz_X;B0-`s6dgJW<I$<3=$AWmbTlelf`Q6o zeN1P`{x~xO|7{z|_}cS#^md2lcZGJh^mNW|>FVt54@Y)%FDR>=zdID#xnQw1e{i6G zez>QtYp^{uA3rECe^HX8`K{r|Kx{gGLL<1iLjRsdXV0L@n*>p4&TkL34tB;;P=L^$ zh)TxK1kCSjYnz`yc#&Z*HhTgdd7K~F+lL<xh^bUk#26IVgoVMup70riq0KFk9Rnvo zMveG^g_gFi&_HP$UZ4e0;)f9;{h^j_NZM-K-L|8ppRv%MwoqRrj2~a<i}aW7z!toP zdbRcTbc8$ch=w6Y!AO4#C5Q|n2td$;ZSwO65h2*s+tz|#XCQ5)LKY?(?qzIXFMi0O zI~eNk@0DWBuQccqcek+=L5y?-cZJ#_y_y*vkF>RswU#cFqnS}zC8fnd=MO1_<%b*k z@#_i$!rK5yhVe5J#FC$e2#SzZ{=WWDdk8<b5NZ$h_6?}Cp3v@~n=TZ$XRtfeA9fXu zv^Zvv;x0*%f-FEDaj5z7*1>RBq$J!!KhoNb0}jCmAh1utU^iPU0y(RMxW`~{eQiUv z0ztIlUPR#^MiZqukq8rxMjmVf<!*&;stR<~S|~r#qw?#7!T1zKNVTYnLv-D!{qElW zb|gS4R2wT`a6{117hMb)1TU&tOAL1asuTsKwE9}Yx}o9HdW>7`eFHDuJE`<J%adY{ z>PYd7@}7DHT$CA}x%TopAIyXNq{m{V8@0{B+HiAAZMeD`|C`H#)zwS;1_ySasoQo| zHzL6bZfIy+v$`P|92jg3)&}KQJShIY;6SJ^*t$13(AUz2pZeIgseUPbilk={KLN6* zY)LTK)7#(O64jpC&Gq5th$&YWS{>d~-DP!jh9Yf3ApxO+KLTQYha@gD3gIuEbhHe1 zMS^(K9j;tecU!?``LU1z{QgJ~zY7AkqC^vGyO5c7S;UrJ6zLA`=*7$HL`Y@j!Q-Vn ziRK$Yt*xl;-csMZ0HSFQvM=_c<nG?~P_R3UA2`{z$t8x0py~{|+tpIY2{NcITLeli zUAtTM4g^DI47PL)QQ^hmo`Fz*q}pA=5Q1h)HipqTVmlvxEF}`^4D~NZxKb*~wqI8< zM1hqMF#7&LXxJjdqB~Y31haum9pSF7Ab!Us+!-g4a!4dOOW<P>`f|&jY9)Nr*okfC z(onPmRg^zcGc^9<e!QVD+@tE~(gv-Am2EB1;BaKG5kg$EM@hSSN;%|9MNq$F)3Ph1 zexYU<MwCRVn<Hgt%2;D7ozEI-99kG#N6pAl>O=RI<_b|-{#wxPmOiVii%a*E9<>0~ zfjEKS()s1ERm+wsTS1*E4oHGy;6;xDD-)7OmMyR{uo6~nplzV9$5JK}#t<BB47Rkl z_lG(dgKdbde4;|MG{aOa1m{%m#TDrGFyxWmF8pNB#$Z<nDyTYYM|Y&7tEF>5byTFG zGxYbgbZPW1Y0TYll0wqqS*)us57E;c#nX*a-CYZl7U}NmfxEEJEzIGnQC0zVyL+Ka zT2ELh=*klE+1U?U3h7{|>xtC1Hnf&i>yC01>Z+s^ZEuKLNrwInhfs7sD~OiZX|+Ux zXAFkhb_V5loxnj5@AT{s4(#o2?S-J+imodz?7KQXtz;O2z|T`fdOJF-HeQKEd9A&@ zT`gUGJMb$|!^$_wh|$*o@nSS0zgBZ^*B~7*iwt5!g1rg$^$v*9iT2w>je)LH7SQ){ zs11LNid~pLePwmGLUne_a5M}Bjsj(x1_t>sWCqbdpZ9e1cgsVU@YT`Z(iUtFchU(I z!NJ}`tS;ZNY+=kJxZ5nffFcj!ET_s9I~qlqOEgQ3?C2a-Aq&V#{zLGgPU&sEU0oKO z+m?QKlq3z4I8q%dTdH~_US=Nk@*KlDw5GQ0Y9$ux10C)f?3M;{`wI(W{Kh1M<Pxz6 z0|V7tq^DE=M$EJ$xNvu0mu`A3(?mNgh7i0a({PT5qTx~Nt+X5xhB=1{nGrAAI*H1+ zXk<ewl?!!+XI4qm21ihhtUciY#I|j!G|FFIG1RaDVL9dr4vX<%=!I|qBR%w^{)n2V zgnK%$@H&jcRNfL%P8K^$M>qr{3$=%(P9iT6we%1=OYY8Ijvf%_26S}wwnV}`owe=N zWsAiTKp*MDPuKNC$`({x{h?i<{(+D)8CmZ5n#-0Y_?jG+=IKFc*uhIiA=o9pTv}=o zr&qdr#aG59*%-mn^Q!FYg=<U~S}Rf<$!OlVzFW2sP0}9H<7=pTGuo+}owmPiN593N z`NQk6!*r|rdQnGfUre`2%Kp%0m7y%BBzQ8zw0s3j5q;$&w6tbm81shV8kRF&B`|y> z_{x};lrKQj^!4}lwRCcT(yohRa)$Q$DzyAD0EGwI>6XT890Vx7FsJh?tzEnO`jH|& zhnZAFyEz64c>0an)3=PvkEX%wt`*wJ8AO~2b=xlL=<n@`#0xIbER5KjGj;*~++yih z38v7kvXnChxbBwzogp=^Nj3+8c1z19y2p!*^SrN?KeR}94XVf?66+d0dPEz#8Ojz8 z?0{T%1|z*Noe5%ya%$#O&_b8f6*n$~tE1xpoC`R7=mz}xN4Ieq@#Isv5=n*<%~e8g z49oPgwWS@)O<30G>cYB@nq<0IPOisbsu?rpF3cyX#BIHOd)W&(dqMi%o;EC^?8ed) z401b`eG-(_n8)Sqy@U8EPfXs9Z|NF@%87>@GakpOVWOrv8p+iQILIvn%4-HEq23PG zEtwr0(vU!RP!sy!$;SZtfvUr!FYaw`*{l3*h;MjKjq=4da1s$Ga93SDgvj9<q5H~; z*1R|dbh~3wqT9hKp@@x{)PhO$8WM|ldX!5wMmmLn?ZTXU7t9K$14-qo#$mNI2yNLV z%Ai(=sFCrjFB}mAGJQCTaZw5$!djp~;X2dDG`@1#VrN?DTJC@euQbwwJF+0yy}4d2 z%`jp~;`w)XSBEVrkn689P`cNCV#SoG^+z|oT0r-xIoKcW+%XdKlAK*sG=9)=`Z0c$ zw=-Zm^I#7h$54AfmX>86TUK5fFv&xzoj9vlSnIYr+PZo%d)eI`>ZW}r9k@~O?7D-y z+2vw7&=FQ)2BNDlm@!~MYl*B9fD$c#cb_!?tKZItzSjPoGXAxqmSOxbuhd|;R#>d( zwrcVeiya*d#4;+I0mfZ}(h$uGo;pLpwjCk3Tw<g7;}zQT8`)aK|CuEW=t+WyqMOW_ zday?)PHT)Ou2$fhgPpy-GPZysf4W2La|g`x!g4jt98nTxt#qi_K)IqP_Ff3e+Oi^i z1Q$XzgIOeF%lA+Z=u~i}z+o)T$92X~^jKp*d;95S1X(RnP8l$Uo;5BKtA>6!^boDR za)lE2`_*)5*dK<pp<?HU)2|AyTaayZDX#Bs47!xf>W%E6SLI$ZL*){b329vGT7>mB z$_pd@&T!vu&dv3jv8!RV;1;);u@7CCSTbc7v12Eyom)<1M&^<-Gl*c}dH{VBJuw8; zL5HAe?&u3*@nryuXdRIdMqFfT4|jB^R*Tx;BUl8rE{pY3XGm0wfT&aKs?>6>>=Xw& zTDk^8E3s<GAxXB2unH2p*g3*wMMw;*F<ihi19lM`I?8off_tcZ5w#}l!W-$pD?`i? z)GeyxdMQD5j-C)EC$ZE2DCUuSeiTnrl)*8HI=C0H6TFR)E-C0``dA?zg>ZK1g|@Z< zSiBH?R_wQmxQ3nph-urkd!VhQ2Xm{q<wkZWH8UA-+IR&`Or$r_J=7gzQCoB(8g1eu zttf<&t|+iu>5&oEZ-g%0X1YBxSB@5)Z04HKLYT>N1`sn&a1vnFdWUFs$ND63t)mOB zBit8KtxtE{ayI$mI#e=UNaEY{_0b~6tX8wt+WPidy9Ufe8k6EsKit=$3<Wk@F^`d@ z`oS)z`HyT|Bu|WOp@pY;8^Do<_OP1aMuuBqt>FHLxTCB;dfRXrund8H%@)_PEw>9H zgpS?e_7Dn>PV9Oj7$-tp=tS#^%gs$?E>g27m)eX_*6l1NNGndGo#5C@2})?gE_KEE z{{OdoMlj$?yhED@cW+MUG-wq)!UeG(!EtyqCjD5nbT27bLD|%SXrO47YG6yCq}H4; zE}+*B;1}k^Xhm(W*l2BE5_dxrozBH-!ACZN)nF4{ja@XP|26D#th<vZ7K*VgxuL?6 zBgP@_WE`1*vx2u#xyrIPCaY5xPQVNfgxbqt7~nO?{OZWGAkZP1iRD9!)y#*Z9pFeN zyCbQ|R;@Pt@?s-b7iB6$M-{#_wu+E9T6DbQkf1Nz4IRQH>mviw?}FH*3}HCp0f=U- zZ|w<Ti))w(O9ht-6No1^chmt?9<yw0!l?^!hZF-zn8&&Hx_o-$QoC(Tf`e3vEj~=u z3<twoJ|hUW_7D^NvIVXsYtHdEtA(<G9lg8Rv&3nJg=Ex-Ep|0u_u=xmR!XwY!zJN_ zfz-WeDy^2#o=%5_=y*m&9Z6fv4RBfv%w@!>7H*BRdGaaJmM*PHX0el<YU%6Z9wj?a zoQX-`%S-^}EDIbPu5rWp>2K)_VIsS$!;GauY-lT5HpI>p*B6g&=j8v}!-*PD62z)a z%uu_Nv}a}p{hzdEAJ&~>%|~*@EaP5<*`e5?mg(sh!NpNNEsmyHrvJrJ9I<MN=XGS; zeAGJ$?A!5kG<_fiW2#!@=B!bfIyI;33&a249mbZNsEj%|CmjaVhB48LF^0pEX(KpH zlO%ILhuTMoIT|F5mN=7g+20`*$yv5>CS}9=RvZ8@8npEea>E{nPt3eq*@5JTIIzkX zv&dn3xK?PhSeCSX!qpb%^|HBtWPM2DM(K?QxYIptGN;3lpt$3Fu4YLXMPe+zSbOC~ z4_Qlf0ARzW;{t1oipt6Yi%J)jE(nw_C|gptplm^)q&qU$6I#(3g5w-+!($6JJXhfG zZpq?`KuKqy1g`1|*lo#M(t%Cuww)!IOGV^(9-!D_>(t5@C&MLe(V6qm^Dprp%_2n* zPQ#HUia`+`mvex`jcjaDvVE_iMVc@$RL6=KWy!2FikIjxC?8kOL2-pGiN#A|wxR?z z<0BehIb%w+7~yKuw`6f!{(%w8*_~3B1D!wa5Cx=9vl!j)A5Q)<T$){4=jf++e3*j9 zG@h=Onei!aJ<%$t{S>YVsEL}ZsYYs=l~T|RZ{{{Vyb5d?uh(bJ)BwN*a}4jpZ+u11 zEOxgh9!H8Z4>F^V9iWo&oWzhS=MLVFI`zgAT1V$Dpm~paTgeRKaUIoc*rOsNm`p7k z!DK4hhDTW5R2v>#-b^y0u_@`rs?!$3-KUs8+)aXHYY0}SvqFo)TG~$^9EhlMHObWY z=ob3)`2d%;Ct8h|2|@ho0=v?Pq}W|u8PsRoj<{Z*+|QLwF&Kfi-tNAZ{$NK>{473^ z?In73310G0^KD$WXzSuKO`+bZpBrl#5{VwQ<0L0AoLw53p~*4?t(lruv<`OY!=%la zZg(KjJy;~NU`7^8meIArRD)}x!A&&Y#sFi3o3};!L)gM=ANg{7OmmNLT@&6#GxR31 zqrZ2zoGYeVr`CDRF&T9@I$pU($kzW0i&pg6aU|JH1OwdIV4d8xjO`ln3kv2?JuYdq zmqD`;U~<b~p$aNguqaj^jA4(uEN*Sl&?Fn#I4L;PIbm*O!%f@;MYMtg@}D$^oXkh< zf!f;$uEpskS<wW?(owN9O<@e;#zlXdOz+)HCRJ(Y;BoXgV#1+0*A#syeaBXm*%X7O zy3CrE%%V_tpE}3CI(q5G!V!voFphgk{hj!RTF@<UI2#Mo=3<k&q2)RwvC`7VO^qfy zN5|C=DZL6~AJ#Xy>L{+3>T7DN6T2F?5Mu3%Io7M1I=SEzdvbM5Lkw}c1}>kvq%(Ar zCZQbTTJk)tI%YVGWzr`<-EFPK?y|+0)tS}9=(qu+AK&+r-v(0d2!;WfLz&A&knxD+ zn0VZTQg>-eqIx<?BX(SN$GM8!fum4yc}@Q-hX*TX4Y+_>jRP(4^{{}tv!{1=PY~|k z#vrGSI&<6#kfAZeLFzLGdT|^#rX_R^vv}(|H<BDLdSlAH5IE8%klhBj!Dr&+ZCv#e zMdzMd#UFG*w~*77W)>hfJ=CQPtd#PwukvzWYkRnF1dGz!hN|<RGftF1&61rwlEry0 zU#gL@bpXfMaWESFv85k0<XQkO+c}FF*p|hD40grgkz<yqHe!McaN7i@Z{(jjV-o<w zaTPXg#d{g9O@Fu?{h>~EWkAeHtcK}a(e5iNlF{C91Yfi(diciO%@PHVj=}>pm}_uD z%<&SUg(Mrh(KnKf)oMo4rLJV+EH_Rx@;+%Y9n?$T`_y8Hn&4oPBUdqiA1(d}b!>Cj zF`6S8!%0lnk&XjnP#b3531V9(+i<RO<JLA3%ZwghlcQ@GOF4+f9K4omP@LM~>Im2P zpvy5Ey{`3X2u+VVqHHcklJ(FeQ?~A~SzC^qKOOC5z2-$SQ-${|6-w6L&XCM4V`}-) zvnv-oV`wL8bIf_mBAoHiGl{YVv09jzbL4eatFb)PXRhLi-ph8)P~K3YF2tN=#F7lp zG76mz1acl4BZpW%_jRq9gE1qKW70hZS@V?3wQwli=E0aLuByiDjM5R8!&b5@ik(!L z!QKwDzhIp)*c)+t+@cl0<)!FY+KD0;?=$Y27grP2ai!sMYYQS?liIJs;sa0W5AwnU z_J`2D)J;G*t2;0jio=RYxNC#mtnkE*tO>1U_EymAc_B&`?8u)>iIXgdCEZ|(J*lCt zpBvZEndD&7XYF&g$RJKAg80g8tfOESt=7XgBj8e=o;q?VSxqjFhE%jjy^5_RfaA>l z{WucZLC#|vOskS}Ks-jz5_RF|yI=DX*`+?BLzZwMH_p%<-TcS7CmBa&#B+UhYDV3i zh2IymN2jD0d+t!2*lwKB|4$EmL{EQ1(O{t1L$Hd#nFo5f9Qf16Az~XZv3<;mP?#vP z1BFsUwVItfa~dixP&y)EOo}jeQStO~8Yxwd=(MYoI>skXvizIS0jqUycNR#*4z1>U zD9AaKU_?}$IiK(Wzgq9!Vmpd!9HOHmo>eVe;x;8ip4HJe8q@{MHoWA(b?-IWuiVE* z$`Y?rMFo<iY4iysOzgzYDfbi2>)Z?NZ9N^k8^blR(^b{Rx|z}rmraxuO>I^*63@sc zvK+PiBRp?r#@u9Qy%Whh%`E5pxVII;HDoG_a!TbbDr(KhNgd%5l3ek_*7_cEwI$9L zI7Mr%9L9~*w^{!qe@Gn-*cEAkfiOFSyw}&+-#gfc>yPYz?pHzZ8Cs|Za=otT9>W&m z2t)NAxw?2nt7;BAyGFlZU0-Mk#tdATG4~mz+a3)C_bdn|22Dv4E(%FT;Apqe!%^J4 zg}MsY23PFihJ-A1yyz=n^j>Dd`P32Hhp4yDg^{>DH_eZ0mznR_NaBmdT>y3a&2d6^ z-)M`Ym86Rt<;~%wyrEH(8s0G58t0~*xiii%@-;wea+9o<i{wbU+QpAHS|Zyc9%_xj zh^}dwj+#gm-eVGXH;I3w8x7S)Ya$Cyeg?TlqK?QP@hG6Ol1bXPoW|blKSl+{5{A=m zGYfZjawS4n_tiX`HJ@0bBb+GWj4l*P-%KzIQb%eg)!WrELRSwRVR0%qw^w7&c++j! z-6j)bs|$maY!0YBHB6Mv!7F0LPN_$BI909)U`G|Ug)U5w7?`1!qMU(t_+zOU;}h5T zhE}eqOF%(OW=GGkQE855j$nO4_rb)K>3J)ixmrmHeV~Ef;0`Qo!2-tg&BUJK+E|S? zzt%8y*wxvP=j(;E35~u>!)$|;tcY?T5_Bm^oK;IGN55l;2D?XIGLV3w^au9G8Qk?P z!uTN{vnt-D8K%;XZE~DX=Xm7ECu3y`v7Q}!d1<)rolq|fUa`l*DuUdW#W8txB?9Y3 z^1=~xhIqY|RZ{o_%O#?#Je&@pG^|#t)0VI+azj&Aq&ix{UD3O}!?-x27crH$^f?-^ zNiRgb&%~_IMD<@>;sha>sdyAGX+PnLRE&V*)GF*+f04D94mqxzC^=bz!E3G(R(MzP z0Qg=k8Y}%7PMA<iIZG_c7G*xh?~gw#CK;5eiCtTc-vi;m8n?NLlp*epLF0!#e$dw4 zvNKe|H|4dLr~|HQQXr=na80d)XIvpHysVE$OZAl;=ky0}lpWpakCEBvxH^t3Q-T;q zmW`gidZ9-WV?DH54zU{(V`H?%9I-Q_)(wVmwPch`SRjZ~_XK|3Z$E%{sutjzV=lf7 zbw>Lr=Dqrj5o$3|S-&HjVzZC{)e_@91op^VFxI$h!DFv;NMXio@fqhS<^?Rn*gGnK zdgqw7nK-E1IzZ3Pl0D@(yEH<dNL~dN9#GfvmEp9O;+2mbIJC(vMp`e}<|Gbg)SGhK z!y{~~sI4O&W9sPW!W$f^U;}Moyget}5#|w3bGT8z+cTL(OVBrCw!sbO@bR0_iLS;G z{9^ZeZQ`VvWDaP&WcT_6T82AQaJvJ1;ekv}f{~Wa*rzz!aa~Hk-AUQSUA<x4qveZq zU>xB+^3oxVq*)hrPur5Uc(P@Bvpti1aVu<=#P}A|BYeDg>1-ul{Tl!A;x(^ZlcsyE zNYeBa>)NF0sn(&S>7y(k-cB3;@!}n<>+zD-_>UKFVBM26J<Yl|Y5ExJAm3UX_wnM_ z0Qie9@gJ|{x3ck)*Z7au%CM@Ere|84lcr}`?Rcqb{Kt!*gXv3}KGxckG<}@)WYY8; zYkx){o;+T=n`>Q>G=02vZPN5S>!zgX6RexElF`STqxFv$xC{5<XUMaYrsIbRl6<_@ z<Rq#5QDOW@QIe0>!f(MP`FO2qNm5A%zw{CJ;ajRxtp7b6my8zY+p81hgLj}q`!lWm zaqUaanSL-X9lyIE>DhR7uKTkN54KA_<b$7PeC;IdbtckDe{&q23k5&1-M@+SWcB)q z;AdOrw<k=wFH8DF%lrt1Nq-ONEI0mFFs1{6=?TAb0sLg;E(E@9jkEj|tn0H{(i7!O zlw@=^3S)`=;xwU?Z~5Z%ty|I)^?8@ZkJr!hgnmv!fBBM5kMCdqC3F(|#REvsw(=A7 ze;Vvv0O|4l<uTxob=d*Dp;<n^MfwaKcL$|N9|!rH7cS#<`SQ5}^v79=cIIz_@1~&Q zGXy_suZlEEyQC-DLm$!uiDaxPNN0WH>vb8*&4!-m$F<8`!B4agi=^Dd0=7wdruDwo z|ByyG9qGyVxlrSurtKsi<#V;9>jzhG_Yia*A0qvwA?RR&8X1TTc65~TI9A=-Ey0G` z=B+r7)sAaRomj}kdL|}+cu!6b-&zoC?+tc#^|s<&dhIy$G7xMT+=JVRSiZp(%l6VG zix)3Rj)cn#Jz=$lirujYjve6zpWUHg`(SrBk0808<Q!5A>aZuow>3u^%9bWQicSzt zSv#*htH8oHH}pnu-YJZgz$EYS#*Y7%)f=mW)tlDw+?oi@#Bo<ASY4wLYSwL`FkDMc z>rUFVdSmTcq;B1~)*(PQ)2T0~nyv(}%A;+XjmGuso2$15x2|5(P>rHPvLegnK+F=t zJwaYZMs{Aghq&dX^i@?G8fw?94VIUdm*Uv0z|@{j9HeenaEos6wOx4KkZNtL_)=PA zA=o;A4NeuO?;W>)TUNbGQ#|p+;KI@hWWbB#+k$NagHj(%ySCDsHChD$P^Y$XOUI2% zJu%Nx8Wv8%J#oz9?YO)#NM_gsq@0{?BBSdP7_~~VPl>H1gm?k6ggZ=3yxcyk6drY` zboH9r5_rz~2^XtM)v7_b-74kNjuy-yO56ALfSwAmHXsn*+vU3q+z&y(u;SFh3_8}= z6|qX$_*N;RrJXowQi}aI{1>T|_V-GImxgxe{<5PTM9h=Qs*fp14ii7U4QME)1+Uac zgv<D)XicjWJ-3^$$}N?J51{jnP)Jvg@@i89YHh_Thk<nAT@5A<QMv5We;TDf0@I5z zT78TkZ^C$win#6%er=1tc;MtW{=NwVZe+yGcx95y5OL=>^8ypjGKe~i&%X}oA09s3 zYxp<w2NQ1B`OGvS&h4@`0nRbe<Ugb%Cd}5)oF1_5CO<|n`5ce`__+!vznPDia7CQJ z;vTJ2krzLg<?wIjEha3MQt-Q2Iy8Kma3|6~bLBVl8xvOPeB_^b4F5XWqQ6L)8hU0P zWI~^2*pzSboBCg%^RLka&3ws(`29EeFh70)%qidGzYJ+C!c4!+yvl^k<Nn0A{{aBq z`OW;xgr<B$1HS_*9}|8VPwxCxx`HM&_0`!N{!RJ~arw=B&V=KPU^M|#uA%phxcp|` zXTmr)KB52Iq4S$!%>2-Vrrk_=@$&nATz)f;G+~3usKfaD569&<^Gy@hX#Fu{jNHug z&k)JPmwkvI<2Uce&k6ApFE5kdgueq$7QQCGnZI74^BX+U;>SFj@D-$yMU&smbFUpH zKWXvvI=<9hli$pTZ_@cq$1?hD$~E=67J1#}-;@<ViiP>J1lDOPaQ>V8Cgi-!o!{}R zbpfUvL%`%S&mSPdG{e7{=Va@Q@%Svu{rLzFOk3biMBL;riAy*6P3T3$#NDVXboudg z<8j9gk-uB#{|XJf>l2@U+7S6YL6vE|X*f+IK7a8L`6q-_hO)R06Q93Q=Z~*vO<3js zJSY0DkIC;2P2YE+Sx-Npo;K@ss$=lD6kpSx#{Sa2n6_6r)c?TaD)hzyO}PelEFy6z R0-E_#g|Rj+L)@eFe*n4B0ZRY? literal 0 HcmV?d00001 diff --git a/week06/cmake-build-debug/CMakeCache.txt b/week06/cmake-build-debug/CMakeCache.txt new file mode 100644 index 00000000..f6348c86 --- /dev/null +++ b/week06/cmake-build-debug/CMakeCache.txt @@ -0,0 +1,380 @@ +# This is the CMakeCache file. +# For build in directory: /home/lewang/algorithm018/week06/cmake-build-debug +# It was generated by CMake: /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Debug + +//Id string of the compiler for the CodeBlocks IDE. Automatically +// detected when left empty +CMAKE_CODEBLOCKS_COMPILER_ID:STRING= + +//The CodeBlocks executable +CMAKE_CODEBLOCKS_EXECUTABLE:FILEPATH=CMAKE_CODEBLOCKS_EXECUTABLE-NOTFOUND + +//Additional command line arguments when CodeBlocks invokes make. +// Enter e.g. -j<some_number> to get parallel builds +CMAKE_CODEBLOCKS_MAKE_ARGUMENTS:STRING=-j12 + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-5 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-5 + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//C compiler +CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-5 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-5 + +//Flags used by the C compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the C compiler during DEBUG builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the C compiler during RELEASE builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=week06 + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Path to a program. +ProcessorCount_cmd_getconf:FILEPATH=/usr/bin/getconf + +//Path to a program. +ProcessorCount_cmd_sysctl:FILEPATH=/sbin/sysctl + +//Value Computed by CMake +week06_BINARY_DIR:STATIC=/home/lewang/algorithm018/week06/cmake-build-debug + +//Value Computed by CMake +week06_SOURCE_DIR:STATIC=/home/lewang/algorithm018/week06 + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/lewang/algorithm018/week06/cmake-build-debug +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=13 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL=CodeBlocks +//CXX compiler system defined macros +CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570815e+308L);__DBL_MIN__;((double)2.22507385850720138309e-308L);__DBL_EPSILON__;((double)2.22044604925031308085e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1;__STDC__;1;__cplusplus;199711L;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__GNUG__;5;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_WEAK__;1;__DEPRECATED;1;__GXX_RTTI;1;__cpp_rtti;199711;__cpp_binary_literals;201304;__cpp_runtime_arrays;198712;__cpp_threadsafe_static_init;200806;__EXCEPTIONS;1;__cpp_exceptions;199711;__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__GLIBCXX_TYPE_INT_N_0;__int128;__GLIBCXX_BITSIZE_INT_N_0;128;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;double(1.79769313486231570815e+308L);__DBL_MIN__;double(2.22507385850720138309e-308L);__DBL_EPSILON__;double(2.22044604925031308085e-16L);__DBL_DENORM_MIN__;double(4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_GNU_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_GNU_SOURCE;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1 +//CXX compiler system include directories +CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/include/c++/5;/usr/include/x86_64-linux-gnu/c++/5;/usr/include/c++/5/backward;/usr/lib/gcc/x86_64-linux-gnu/5/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include +//C compiler system defined macros +CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570815e+308L);__DBL_MIN__;((double)2.22507385850720138309e-308L);__DBL_EPSILON__;((double)2.22044604925031308085e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1 +//C compiler system include directories +CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/lib/gcc/x86_64-linux-gnu/5/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/lewang/algorithm018/week06 +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: ProcessorCount_cmd_getconf +ProcessorCount_cmd_getconf-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: ProcessorCount_cmd_sysctl +ProcessorCount_cmd_sysctl-ADVANCED:INTERNAL=1 + diff --git a/week06/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake b/week06/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake new file mode 100755 index 00000000..17a89374 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake @@ -0,0 +1,73 @@ +set(CMAKE_C_COMPILER "/usr/bin/cc") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "GNU") +set(CMAKE_C_COMPILER_VERSION "5.5.0") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-5") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-5") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCC 1) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/week06/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake b/week06/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake new file mode 100755 index 00000000..51738d56 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake @@ -0,0 +1,76 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "5.5.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "98") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-5") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-5") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/week06/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin b/week06/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..ce01f2ca7e5e788ef02f6a2691b09499318eb750 GIT binary patch literal 8464 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 literal 0 HcmV?d00001 diff --git a/week06/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin b/week06/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..40ee06d7308469781ca42b235f55a21909e5cb67 GIT binary patch literal 8472 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 literal 0 HcmV?d00001 diff --git a/week06/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake b/week06/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake new file mode 100755 index 00000000..c394a4a4 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-4.15.0-70-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "4.15.0-70-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-4.15.0-70-generic") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "4.15.0-70-generic") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/week06/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c b/week06/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 00000000..bfc6ebbf --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,623 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif +#if defined(__CLASSIC_C__) +/* cv-qualifiers did not exist in K&R C */ +# define const +# define volatile +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__ibmxl__) || (defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800) +# define COMPILER_ID "XL" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__ARMCC_VERSION) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if !defined(__STDC__) +# if (defined(_MSC_VER) && !defined(__clang__)) \ + || (defined(__ibmxl__) || defined(__IBMC__)) +# define C_DIALECT "90" +# else +# define C_DIALECT +# endif +#elif __STDC_VERSION__ >= 201000L +# define C_DIALECT "11" +#elif __STDC_VERSION__ >= 199901L +# define C_DIALECT "99" +#else +# define C_DIALECT "90" +#endif +const char* info_language_dialect_default = + "INFO" ":" "dialect_default[" C_DIALECT "]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/week06/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out b/week06/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out new file mode 100755 index 0000000000000000000000000000000000000000..b6682332a4d6181ed3894fb98c1ca0489587c43f GIT binary patch literal 8616 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 Ih5F_H3$g66L;wH) literal 0 HcmV?d00001 diff --git a/week06/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/week06/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 00000000..b728b632 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,602 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__ibmxl__) || (defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800) +# define COMPILER_ID "XL" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__ARMCC_VERSION) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if defined(_MSC_VER) && defined(_MSVC_LANG) +#define CXX_STD _MSVC_LANG +#else +#define CXX_STD __cplusplus +#endif + +const char* info_language_dialect_default = "INFO" ":" "dialect_default[" +#if CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} diff --git a/week06/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out b/week06/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out new file mode 100755 index 0000000000000000000000000000000000000000..4f752d048d3d136555ba6b13b7869c22a3d0b55a GIT binary patch literal 8632 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 PMm|kP+C^q0>XiQ<q>!mv literal 0 HcmV?d00001 diff --git a/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/62_uniquePath.cpp.o b/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/62_uniquePath.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..48dffd3f6dbe65a87bafad2f29878b1fca2a1049 GIT binary patch literal 38408 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 G>-<0GAG`zr literal 0 HcmV?d00001 diff --git a/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/CXX.includecache b/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/CXX.includecache new file mode 100644 index 00000000..793642d5 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/CXX.includecache @@ -0,0 +1,14 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week06/62_uniquePath.cpp +iostream +- +vector +- + diff --git a/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/DependInfo.cmake b/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/DependInfo.cmake new file mode 100644 index 00000000..e09dbeb5 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week06/62_uniquePath.cpp" "/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/62_uniquePath.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/build.make b/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/build.make new file mode 100644 index 00000000..3f7366d3 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week06 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week06/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/62_uniquePath.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/62_uniquePath.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/62_uniquePath.dir/flags.make + +CMakeFiles/62_uniquePath.dir/62_uniquePath.cpp.o: CMakeFiles/62_uniquePath.dir/flags.make +CMakeFiles/62_uniquePath.dir/62_uniquePath.cpp.o: ../62_uniquePath.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/62_uniquePath.dir/62_uniquePath.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/62_uniquePath.dir/62_uniquePath.cpp.o -c /home/lewang/algorithm018/week06/62_uniquePath.cpp + +CMakeFiles/62_uniquePath.dir/62_uniquePath.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/62_uniquePath.dir/62_uniquePath.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week06/62_uniquePath.cpp > CMakeFiles/62_uniquePath.dir/62_uniquePath.cpp.i + +CMakeFiles/62_uniquePath.dir/62_uniquePath.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/62_uniquePath.dir/62_uniquePath.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week06/62_uniquePath.cpp -o CMakeFiles/62_uniquePath.dir/62_uniquePath.cpp.s + +# Object files for target 62_uniquePath +62_uniquePath_OBJECTS = \ +"CMakeFiles/62_uniquePath.dir/62_uniquePath.cpp.o" + +# External object files for target 62_uniquePath +62_uniquePath_EXTERNAL_OBJECTS = + +62_uniquePath: CMakeFiles/62_uniquePath.dir/62_uniquePath.cpp.o +62_uniquePath: CMakeFiles/62_uniquePath.dir/build.make +62_uniquePath: CMakeFiles/62_uniquePath.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 62_uniquePath" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/62_uniquePath.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/62_uniquePath.dir/build: 62_uniquePath + +.PHONY : CMakeFiles/62_uniquePath.dir/build + +CMakeFiles/62_uniquePath.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/62_uniquePath.dir/cmake_clean.cmake +.PHONY : CMakeFiles/62_uniquePath.dir/clean + +CMakeFiles/62_uniquePath.dir/depend: + cd /home/lewang/algorithm018/week06/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week06 /home/lewang/algorithm018/week06 /home/lewang/algorithm018/week06/cmake-build-debug /home/lewang/algorithm018/week06/cmake-build-debug /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/62_uniquePath.dir/depend + diff --git a/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/cmake_clean.cmake b/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/cmake_clean.cmake new file mode 100644 index 00000000..77f8c139 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/62_uniquePath.dir/62_uniquePath.cpp.o" + "62_uniquePath.pdb" + "62_uniquePath" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/62_uniquePath.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/depend.internal b/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/depend.internal new file mode 100644 index 00000000..46855f4e --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/62_uniquePath.dir/62_uniquePath.cpp.o + /home/lewang/algorithm018/week06/62_uniquePath.cpp diff --git a/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/depend.make b/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/depend.make new file mode 100644 index 00000000..32e00f20 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/62_uniquePath.dir/62_uniquePath.cpp.o: ../62_uniquePath.cpp + diff --git a/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/flags.make b/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/link.txt b/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/link.txt new file mode 100644 index 00000000..f4a77f2b --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/62_uniquePath.dir/62_uniquePath.cpp.o -o 62_uniquePath diff --git a/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/progress.make b/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/62_uniquePath.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.o b/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..504dff59d2760f509483a913ae4d67e46a16cedc GIT binary patch literal 76128 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 IM{N541BtN^jsO4v literal 0 HcmV?d00001 diff --git a/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/CXX.includecache b/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/CXX.includecache new file mode 100644 index 00000000..dc04e58d --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/CXX.includecache @@ -0,0 +1,14 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week06/63_uniquePathsWithObstacles.cpp +iostream +- +vector +- + diff --git a/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/DependInfo.cmake b/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/DependInfo.cmake new file mode 100644 index 00000000..ee2685e1 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week06/63_uniquePathsWithObstacles.cpp" "/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/build.make b/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/build.make new file mode 100644 index 00000000..70217614 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week06 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week06/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/63_uniquePathsWithObstacles.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/63_uniquePathsWithObstacles.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/63_uniquePathsWithObstacles.dir/flags.make + +CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.o: CMakeFiles/63_uniquePathsWithObstacles.dir/flags.make +CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.o: ../63_uniquePathsWithObstacles.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.o -c /home/lewang/algorithm018/week06/63_uniquePathsWithObstacles.cpp + +CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week06/63_uniquePathsWithObstacles.cpp > CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.i + +CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week06/63_uniquePathsWithObstacles.cpp -o CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.s + +# Object files for target 63_uniquePathsWithObstacles +63_uniquePathsWithObstacles_OBJECTS = \ +"CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.o" + +# External object files for target 63_uniquePathsWithObstacles +63_uniquePathsWithObstacles_EXTERNAL_OBJECTS = + +63_uniquePathsWithObstacles: CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.o +63_uniquePathsWithObstacles: CMakeFiles/63_uniquePathsWithObstacles.dir/build.make +63_uniquePathsWithObstacles: CMakeFiles/63_uniquePathsWithObstacles.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 63_uniquePathsWithObstacles" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/63_uniquePathsWithObstacles.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/63_uniquePathsWithObstacles.dir/build: 63_uniquePathsWithObstacles + +.PHONY : CMakeFiles/63_uniquePathsWithObstacles.dir/build + +CMakeFiles/63_uniquePathsWithObstacles.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/63_uniquePathsWithObstacles.dir/cmake_clean.cmake +.PHONY : CMakeFiles/63_uniquePathsWithObstacles.dir/clean + +CMakeFiles/63_uniquePathsWithObstacles.dir/depend: + cd /home/lewang/algorithm018/week06/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week06 /home/lewang/algorithm018/week06 /home/lewang/algorithm018/week06/cmake-build-debug /home/lewang/algorithm018/week06/cmake-build-debug /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/63_uniquePathsWithObstacles.dir/depend + diff --git a/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/cmake_clean.cmake b/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/cmake_clean.cmake new file mode 100644 index 00000000..9717dc9a --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.o" + "63_uniquePathsWithObstacles.pdb" + "63_uniquePathsWithObstacles" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/63_uniquePathsWithObstacles.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/depend.internal b/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/depend.internal new file mode 100644 index 00000000..98b8e117 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.o + /home/lewang/algorithm018/week06/63_uniquePathsWithObstacles.cpp diff --git a/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/depend.make b/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/depend.make new file mode 100644 index 00000000..884004e0 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.o: ../63_uniquePathsWithObstacles.cpp + diff --git a/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/flags.make b/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/link.txt b/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/link.txt new file mode 100644 index 00000000..b4d09e22 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.o -o 63_uniquePathsWithObstacles diff --git a/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/progress.make b/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week06/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake b/week06/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 00000000..45bb950f --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/lewang/algorithm018/week06") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/lewang/algorithm018/week06/cmake-build-debug") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/week06/cmake-build-debug/CMakeFiles/CMakeOutput.log b/week06/cmake-build-debug/CMakeFiles/CMakeOutput.log new file mode 100644 index 00000000..50422e3c --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/CMakeOutput.log @@ -0,0 +1,625 @@ +The system is: Linux - 4.15.0-70-generic - x86_64 +Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. +Compiler: /usr/bin/cc +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" + +The C compiler identification is GNU, found in "/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out" + +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. +Compiler: /usr/bin/c++ +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + +The CXX compiler identification is GNU, found in "/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out" + +Determining if the C compiler works passed with the following output: +Change Dir: /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_e11c3/fast" +/usr/bin/make -f CMakeFiles/cmTC_e11c3.dir/build.make CMakeFiles/cmTC_e11c3.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_e11c3.dir/testCCompiler.c.o +/usr/bin/cc -o CMakeFiles/cmTC_e11c3.dir/testCCompiler.c.o -c /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp/testCCompiler.c +Linking C executable cmTC_e11c3 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e11c3.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_e11c3.dir/testCCompiler.c.o -o cmTC_e11c3 +make[1]: Leaving directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_7b573/fast" +/usr/bin/make -f CMakeFiles/cmTC_7b573.dir/build.make CMakeFiles/cmTC_7b573.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_7b573.dir/CMakeCCompilerABI.c.o +/usr/bin/cc -o CMakeFiles/cmTC_7b573.dir/CMakeCCompilerABI.c.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCCompilerABI.c +Linking C executable cmTC_7b573 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_7b573.dir/link.txt --verbose=1 +/usr/bin/cc -v -rdynamic CMakeFiles/cmTC_7b573.dir/CMakeCCompilerABI.c.o -o cmTC_7b573 +Using built-in specs. +COLLECT_GCC=/usr/bin/cc +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_7b573' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccW1VvYd.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_7b573 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_7b573.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o +make[1]: Leaving directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_7b573/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_7b573.dir/build.make CMakeFiles/cmTC_7b573.dir/build] + ignore line: [make[1]: Entering directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp'] + ignore line: [Building C object CMakeFiles/cmTC_7b573.dir/CMakeCCompilerABI.c.o] + ignore line: [/usr/bin/cc -o CMakeFiles/cmTC_7b573.dir/CMakeCCompilerABI.c.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCCompilerABI.c] + ignore line: [Linking C executable cmTC_7b573] + ignore line: [/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_7b573.dir/link.txt --verbose=1] + ignore line: [/usr/bin/cc -v -rdynamic CMakeFiles/cmTC_7b573.dir/CMakeCCompilerABI.c.o -o cmTC_7b573 ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_7b573' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccW1VvYd.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_7b573 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_7b573.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccW1VvYd.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_7b573] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] + arg [CMakeFiles/cmTC_7b573.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtend.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5] ==> [/usr/lib/gcc/x86_64-linux-gnu/5] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> [/usr/lib] + implicit libs: [gcc;gcc_s;c;gcc;gcc_s] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting C [-std=c11] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_b22c9/fast" +/usr/bin/make -f CMakeFiles/cmTC_b22c9.dir/build.make CMakeFiles/cmTC_b22c9.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_b22c9.dir/feature_tests.c.o +/usr/bin/cc -std=c11 -o CMakeFiles/cmTC_b22c9.dir/feature_tests.c.o -c /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_b22c9 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b22c9.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_b22c9.dir/feature_tests.c.o -o cmTC_b22c9 +make[1]: Leaving directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:1c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c99] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_eac77/fast" +/usr/bin/make -f CMakeFiles/cmTC_eac77.dir/build.make CMakeFiles/cmTC_eac77.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_eac77.dir/feature_tests.c.o +/usr/bin/cc -std=c99 -o CMakeFiles/cmTC_eac77.dir/feature_tests.c.o -c /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_eac77 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_eac77.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_eac77.dir/feature_tests.c.o -o cmTC_eac77 +make[1]: Leaving directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c90] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_7c42c/fast" +/usr/bin/make -f CMakeFiles/cmTC_7c42c.dir/build.make CMakeFiles/cmTC_7c42c.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_7c42c.dir/feature_tests.c.o +/usr/bin/cc -std=c90 -o CMakeFiles/cmTC_7c42c.dir/feature_tests.c.o -c /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_7c42c +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_7c42c.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_7c42c.dir/feature_tests.c.o -o cmTC_7c42c +make[1]: Leaving directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:0c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:0c_variadic_macros +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_f58b9/fast" +/usr/bin/make -f CMakeFiles/cmTC_f58b9.dir/build.make CMakeFiles/cmTC_f58b9.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_f58b9.dir/testCXXCompiler.cxx.o +/usr/bin/c++ -o CMakeFiles/cmTC_f58b9.dir/testCXXCompiler.cxx.o -c /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp/testCXXCompiler.cxx +Linking CXX executable cmTC_f58b9 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_f58b9.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_f58b9.dir/testCXXCompiler.cxx.o -o cmTC_f58b9 +make[1]: Leaving directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_e5073/fast" +/usr/bin/make -f CMakeFiles/cmTC_e5073.dir/build.make CMakeFiles/cmTC_e5073.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_e5073.dir/CMakeCXXCompilerABI.cpp.o +/usr/bin/c++ -o CMakeFiles/cmTC_e5073.dir/CMakeCXXCompilerABI.cpp.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXCompilerABI.cpp +Linking CXX executable cmTC_e5073 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e5073.dir/link.txt --verbose=1 +/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_e5073.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_e5073 +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_e5073' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/cc3jHr9m.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_e5073 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_e5073.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o +make[1]: Leaving directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_e5073/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_e5073.dir/build.make CMakeFiles/cmTC_e5073.dir/build] + ignore line: [make[1]: Entering directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp'] + ignore line: [Building CXX object CMakeFiles/cmTC_e5073.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -o CMakeFiles/cmTC_e5073.dir/CMakeCXXCompilerABI.cpp.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Linking CXX executable cmTC_e5073] + ignore line: [/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_e5073.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_e5073.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_e5073 ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_e5073' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/cc3jHr9m.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_e5073 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_e5073.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/cc3jHr9m.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_e5073] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] + arg [CMakeFiles/cmTC_e5073.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtend.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5] ==> [/usr/lib/gcc/x86_64-linux-gnu/5] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting CXX [-std=c++1z] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_ec60f/fast" +/usr/bin/make -f CMakeFiles/cmTC_ec60f.dir/build.make CMakeFiles/cmTC_ec60f.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_ec60f.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++1z -o CMakeFiles/cmTC_ec60f.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_ec60f +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_ec60f.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_ec60f.dir/feature_tests.cxx.o -o cmTC_ec60f +make[1]: Leaving directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++14] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_eb25c/fast" +/usr/bin/make -f CMakeFiles/cmTC_eb25c.dir/build.make CMakeFiles/cmTC_eb25c.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_eb25c.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++14 -o CMakeFiles/cmTC_eb25c.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_eb25c +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_eb25c.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_eb25c.dir/feature_tests.cxx.o -o cmTC_eb25c +make[1]: Leaving directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++11] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_1d211/fast" +/usr/bin/make -f CMakeFiles/cmTC_1d211.dir/build.make CMakeFiles/cmTC_1d211.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_1d211.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++11 -o CMakeFiles/cmTC_1d211.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_1d211 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_1d211.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_1d211.dir/feature_tests.cxx.o -o cmTC_1d211 +make[1]: Leaving directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++98] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_07a0c/fast" +/usr/bin/make -f CMakeFiles/cmTC_07a0c.dir/build.make CMakeFiles/cmTC_07a0c.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_07a0c.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++98 -o CMakeFiles/cmTC_07a0c.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_07a0c +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_07a0c.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_07a0c.dir/feature_tests.cxx.o -o cmTC_07a0c +make[1]: Leaving directory '/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:0cxx_alias_templates + Feature record: CXX_FEATURE:0cxx_alignas + Feature record: CXX_FEATURE:0cxx_alignof + Feature record: CXX_FEATURE:0cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:0cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:0cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:0cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:0cxx_default_function_template_args + Feature record: CXX_FEATURE:0cxx_defaulted_functions + Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:0cxx_delegating_constructors + Feature record: CXX_FEATURE:0cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:0cxx_enum_forward_declarations + Feature record: CXX_FEATURE:0cxx_explicit_conversions + Feature record: CXX_FEATURE:0cxx_extended_friend_declarations + Feature record: CXX_FEATURE:0cxx_extern_templates + Feature record: CXX_FEATURE:0cxx_final + Feature record: CXX_FEATURE:0cxx_func_identifier + Feature record: CXX_FEATURE:0cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:0cxx_inheriting_constructors + Feature record: CXX_FEATURE:0cxx_inline_namespaces + Feature record: CXX_FEATURE:0cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:0cxx_local_type_template_args + Feature record: CXX_FEATURE:0cxx_long_long_type + Feature record: CXX_FEATURE:0cxx_noexcept + Feature record: CXX_FEATURE:0cxx_nonstatic_member_init + Feature record: CXX_FEATURE:0cxx_nullptr + Feature record: CXX_FEATURE:0cxx_override + Feature record: CXX_FEATURE:0cxx_range_for + Feature record: CXX_FEATURE:0cxx_raw_string_literals + Feature record: CXX_FEATURE:0cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:0cxx_right_angle_brackets + Feature record: CXX_FEATURE:0cxx_rvalue_references + Feature record: CXX_FEATURE:0cxx_sizeof_member + Feature record: CXX_FEATURE:0cxx_static_assert + Feature record: CXX_FEATURE:0cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:0cxx_thread_local + Feature record: CXX_FEATURE:0cxx_trailing_return_types + Feature record: CXX_FEATURE:0cxx_unicode_literals + Feature record: CXX_FEATURE:0cxx_uniform_initialization + Feature record: CXX_FEATURE:0cxx_unrestricted_unions + Feature record: CXX_FEATURE:0cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:0cxx_variadic_macros + Feature record: CXX_FEATURE:0cxx_variadic_templates diff --git a/week06/cmake-build-debug/CMakeFiles/Makefile.cmake b/week06/cmake-build-debug/CMakeFiles/Makefile.cmake new file mode 100644 index 00000000..e733107f --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/Makefile.cmake @@ -0,0 +1,50 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "../CMakeLists.txt" + "CMakeFiles/3.13.2/CMakeCCompiler.cmake" + "CMakeFiles/3.13.2/CMakeCXXCompiler.cmake" + "CMakeFiles/3.13.2/CMakeSystem.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCommonLanguageInclude.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeFindCodeBlocks.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeGenericSystem.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeInitializeConfigs.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeLanguageInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeSystemSpecificInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeSystemSpecificInitialize.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU-C.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU-CXX.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU-C.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU-CXX.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/UnixPaths.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/ProcessorCount.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/63_uniquePathsWithObstacles.dir/DependInfo.cmake" + ) diff --git a/week06/cmake-build-debug/CMakeFiles/Makefile2 b/week06/cmake-build-debug/CMakeFiles/Makefile2 new file mode 100644 index 00000000..3f001111 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/Makefile2 @@ -0,0 +1,113 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# The main recursive all target +all: + +.PHONY : all + +# The main recursive preinstall target +preinstall: + +.PHONY : preinstall + +# The main recursive clean target +clean: + +.PHONY : clean + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week06 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week06/cmake-build-debug + +#============================================================================= +# Target rules for target CMakeFiles/63_uniquePathsWithObstacles.dir + +# All Build rule for target. +CMakeFiles/63_uniquePathsWithObstacles.dir/all: + $(MAKE) -f CMakeFiles/63_uniquePathsWithObstacles.dir/build.make CMakeFiles/63_uniquePathsWithObstacles.dir/depend + $(MAKE) -f CMakeFiles/63_uniquePathsWithObstacles.dir/build.make CMakeFiles/63_uniquePathsWithObstacles.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target 63_uniquePathsWithObstacles" +.PHONY : CMakeFiles/63_uniquePathsWithObstacles.dir/all + +# Include target in all. +all: CMakeFiles/63_uniquePathsWithObstacles.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/63_uniquePathsWithObstacles.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/63_uniquePathsWithObstacles.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/63_uniquePathsWithObstacles.dir/rule + +# Convenience name for target. +63_uniquePathsWithObstacles: CMakeFiles/63_uniquePathsWithObstacles.dir/rule + +.PHONY : 63_uniquePathsWithObstacles + +# clean rule for target. +CMakeFiles/63_uniquePathsWithObstacles.dir/clean: + $(MAKE) -f CMakeFiles/63_uniquePathsWithObstacles.dir/build.make CMakeFiles/63_uniquePathsWithObstacles.dir/clean +.PHONY : CMakeFiles/63_uniquePathsWithObstacles.dir/clean + +# clean rule for target. +clean: CMakeFiles/63_uniquePathsWithObstacles.dir/clean + +.PHONY : clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/week06/cmake-build-debug/CMakeFiles/TargetDirectories.txt b/week06/cmake-build-debug/CMakeFiles/TargetDirectories.txt new file mode 100644 index 00000000..de033303 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,3 @@ +/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/rebuild_cache.dir +/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/63_uniquePathsWithObstacles.dir +/home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/edit_cache.dir diff --git a/week06/cmake-build-debug/CMakeFiles/clion-environment.txt b/week06/cmake-build-debug/CMakeFiles/clion-environment.txt new file mode 100644 index 00000000..270d93c2 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/clion-environment.txt @@ -0,0 +1,3 @@ +ToolSet: 1.0 (local)Options: + +Options: \ No newline at end of file diff --git a/week06/cmake-build-debug/CMakeFiles/clion-log.txt b/week06/cmake-build-debug/CMakeFiles/clion-log.txt new file mode 100644 index 00000000..03db9879 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/clion-log.txt @@ -0,0 +1,4 @@ +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" /home/lewang/algorithm018/week06 +-- Configuring done +-- Generating done +-- Build files have been written to: /home/lewang/algorithm018/week06/cmake-build-debug diff --git a/week06/cmake-build-debug/CMakeFiles/cmake.check_cache b/week06/cmake-build-debug/CMakeFiles/cmake.check_cache new file mode 100644 index 00000000..3dccd731 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/week06/cmake-build-debug/CMakeFiles/feature_tests.bin b/week06/cmake-build-debug/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..c1bade88a09ced4221830cdf30b0fa11360b60ea GIT binary patch literal 12520 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 S*dX~wSGpXhnNd-{{J#MLk8ZjE literal 0 HcmV?d00001 diff --git a/week06/cmake-build-debug/CMakeFiles/feature_tests.c b/week06/cmake-build-debug/CMakeFiles/feature_tests.c new file mode 100644 index 00000000..83e86dd8 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/feature_tests.c @@ -0,0 +1,34 @@ + + const char features[] = {"\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/week06/cmake-build-debug/CMakeFiles/feature_tests.cxx b/week06/cmake-build-debug/CMakeFiles/feature_tests.cxx new file mode 100644 index 00000000..b93418c6 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/week06/cmake-build-debug/CMakeFiles/progress.marks b/week06/cmake-build-debug/CMakeFiles/progress.marks new file mode 100644 index 00000000..0cfbf088 --- /dev/null +++ b/week06/cmake-build-debug/CMakeFiles/progress.marks @@ -0,0 +1 @@ +2 diff --git a/week06/cmake-build-debug/Makefile b/week06/cmake-build-debug/Makefile new file mode 100644 index 00000000..2c0da08e --- /dev/null +++ b/week06/cmake-build-debug/Makefile @@ -0,0 +1,178 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week06 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week06/cmake-build-debug + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week06/cmake-build-debug/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named 63_uniquePathsWithObstacles + +# Build rule for target. +63_uniquePathsWithObstacles: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 63_uniquePathsWithObstacles +.PHONY : 63_uniquePathsWithObstacles + +# fast build rule for target. +63_uniquePathsWithObstacles/fast: + $(MAKE) -f CMakeFiles/63_uniquePathsWithObstacles.dir/build.make CMakeFiles/63_uniquePathsWithObstacles.dir/build +.PHONY : 63_uniquePathsWithObstacles/fast + +63_uniquePathsWithObstacles.o: 63_uniquePathsWithObstacles.cpp.o + +.PHONY : 63_uniquePathsWithObstacles.o + +# target to build an object file +63_uniquePathsWithObstacles.cpp.o: + $(MAKE) -f CMakeFiles/63_uniquePathsWithObstacles.dir/build.make CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.o +.PHONY : 63_uniquePathsWithObstacles.cpp.o + +63_uniquePathsWithObstacles.i: 63_uniquePathsWithObstacles.cpp.i + +.PHONY : 63_uniquePathsWithObstacles.i + +# target to preprocess a source file +63_uniquePathsWithObstacles.cpp.i: + $(MAKE) -f CMakeFiles/63_uniquePathsWithObstacles.dir/build.make CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.i +.PHONY : 63_uniquePathsWithObstacles.cpp.i + +63_uniquePathsWithObstacles.s: 63_uniquePathsWithObstacles.cpp.s + +.PHONY : 63_uniquePathsWithObstacles.s + +# target to generate assembly for a file +63_uniquePathsWithObstacles.cpp.s: + $(MAKE) -f CMakeFiles/63_uniquePathsWithObstacles.dir/build.make CMakeFiles/63_uniquePathsWithObstacles.dir/63_uniquePathsWithObstacles.cpp.s +.PHONY : 63_uniquePathsWithObstacles.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... rebuild_cache" + @echo "... 63_uniquePathsWithObstacles" + @echo "... edit_cache" + @echo "... 63_uniquePathsWithObstacles.o" + @echo "... 63_uniquePathsWithObstacles.i" + @echo "... 63_uniquePathsWithObstacles.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/week06/cmake-build-debug/cmake_install.cmake b/week06/cmake-build-debug/cmake_install.cmake new file mode 100644 index 00000000..26aef5ca --- /dev/null +++ b/week06/cmake-build-debug/cmake_install.cmake @@ -0,0 +1,49 @@ +# Install script for directory: /home/lewang/algorithm018/week06 + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/lewang/algorithm018/week06/cmake-build-debug/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/week06/cmake-build-debug/week06.cbp b/week06/cmake-build-debug/week06.cbp new file mode 100644 index 00000000..284ef179 --- /dev/null +++ b/week06/cmake-build-debug/week06.cbp @@ -0,0 +1,94 @@ +<?xml version="1.0" encoding="UTF-8"?> +<CodeBlocks_project_file> + <FileVersion major="1" minor="6"/> + <Project> + <Option title="week06"/> + <Option makefile_is_custom="1"/> + <Option compiler="gcc"/> + <Option virtualFolders="CMake Files\;"/> + <Build> + <Target title="all"> + <Option working_dir="/home/lewang/algorithm018/week06/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week06/cmake-build-debug/Makefile" VERBOSE=1 all"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week06/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week06/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week06/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="rebuild_cache"> + <Option working_dir="/home/lewang/algorithm018/week06/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week06/cmake-build-debug/Makefile" VERBOSE=1 rebuild_cache"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week06/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week06/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week06/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="63_uniquePathsWithObstacles"> + <Option output="/home/lewang/algorithm018/week06/cmake-build-debug/63_uniquePathsWithObstacles" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week06/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week06/cmake-build-debug/Makefile" VERBOSE=1 63_uniquePathsWithObstacles"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week06/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week06/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week06/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="63_uniquePathsWithObstacles/fast"> + <Option output="/home/lewang/algorithm018/week06/cmake-build-debug/63_uniquePathsWithObstacles" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week06/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week06/cmake-build-debug/Makefile" VERBOSE=1 63_uniquePathsWithObstacles/fast"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week06/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week06/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week06/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="edit_cache"> + <Option working_dir="/home/lewang/algorithm018/week06/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week06/cmake-build-debug/Makefile" VERBOSE=1 edit_cache"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week06/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week06/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week06/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + </Build> + <Unit filename="/home/lewang/algorithm018/week06/63_uniquePathsWithObstacles.cpp"> + <Option target="63_uniquePathsWithObstacles"/> + </Unit> + <Unit filename="/home/lewang/algorithm018/week06/CMakeLists.txt"> + <Option virtualFolder="CMake Files\"/> + </Unit> + </Project> +</CodeBlocks_project_file> From 2452b96df722fe0ee977f3a9e8f6989e2fe4838f Mon Sep 17 00:00:00 2001 From: Ella2le <1071444737@qq.com> Date: Sun, 6 Dec 2020 22:39:10 +0800 Subject: [PATCH 18/21] do some homeword --- week06/121_maxProfit.cpp | 12 ++ week06/212_findWords.cpp | 4 + week07/130_SurroundedRegions.cpp | 89 ++++++++++ week07/200_NumberOfIslands.cpp | 130 ++++++++++++++ week07/208_implement_trie.cpp | 63 +++++++ week07/212_finddWords.cpp | 293 +++++++++++++++++++++++++++++++ week07/547_findCircles.cpp | 59 +++++++ week07/NOTE.md | 194 +++++++++++++++++++- 8 files changed, 843 insertions(+), 1 deletion(-) create mode 100644 week06/212_findWords.cpp create mode 100644 week07/130_SurroundedRegions.cpp create mode 100644 week07/200_NumberOfIslands.cpp create mode 100644 week07/208_implement_trie.cpp create mode 100644 week07/212_finddWords.cpp create mode 100644 week07/547_findCircles.cpp diff --git a/week06/121_maxProfit.cpp b/week06/121_maxProfit.cpp index 4ef79931..fd76110a 100644 --- a/week06/121_maxProfit.cpp +++ b/week06/121_maxProfit.cpp @@ -2,3 +2,15 @@ // Created by lewang on 11/29/20. // +//1.暴力法 + +int maxProfit(vector<int>& prices) { + int n = (int)prices.size(), ans = 0; + + for(int i = 0; i < n; ++i) { + for(int j = i +1; j < n; ++j) { + ans = max(ans, prices[j] - prices[i]); + } + } + return ans; +} \ No newline at end of file diff --git a/week06/212_findWords.cpp b/week06/212_findWords.cpp new file mode 100644 index 00000000..4ef79931 --- /dev/null +++ b/week06/212_findWords.cpp @@ -0,0 +1,4 @@ +// +// Created by lewang on 11/29/20. +// + diff --git a/week07/130_SurroundedRegions.cpp b/week07/130_SurroundedRegions.cpp new file mode 100644 index 00000000..f498ceeb --- /dev/null +++ b/week07/130_SurroundedRegions.cpp @@ -0,0 +1,89 @@ +// +// Created by lewang on 12/6/20. +// + +//union find +class UF +{ +private: + int* id; // id[i] = parent of i + int* rank; // rank[i] = rank of subtree rooted at i (cannot be more than 31) + int count; // number of components +public: + UF(int N) + { + count = N; + id = new int[N]; + rank = new int[N]; + for (int i = 0; i < N; i++) { + id[i] = i; + rank[i] = 0; + } + } + ~UF() + { + delete [] id; + delete [] rank; + } + int find(int p) { + while (p != id[p]) { + id[p] = id[id[p]]; // path compression by halving + p = id[p]; + } + return p; + } + int getCount() { + return count; + } + bool connected(int p, int q) { + return find(p) == find(q); + } + void connect(int p, int q) { + int i = find(p); + int j = find(q); + if (i == j) return; + if (rank[i] < rank[j]) id[i] = j; + else if (rank[i] > rank[j]) id[j] = i; + else { + id[j] = i; + rank[i]++; + } + count--; + } +}; + +class Solution { +public: + void solve(vector<vector<char>> &board) { + int n = board.size(); + if(n==0) return; + int m = board[0].size(); + UF uf = UF(n*m+1); + + for(int i=0;i<n;i++){ + for(int j=0;j<m;j++){ + if((i==0||i==n-1||j==0||j==m-1)&&board[i][j]=='O') // if a 'O' node is on the boundry, connect it to the dummy node + uf.connect(i*m+j,n*m); + else if(board[i][j]=='O') // connect a 'O' node to its neighbour 'O' nodes + { + if(board[i-1][j]=='O') + uf.connect(i*m+j,(i-1)*m+j); + if(board[i+1][j]=='O') + uf.connect(i*m+j,(i+1)*m+j); + if(board[i][j-1]=='O') + uf.connect(i*m+j,i*m+j-1); + if(board[i][j+1]=='O') + uf.connect(i*m+j,i*m+j+1); + } + } + } + + for(int i=0;i<n;i++){ + for(int j=0;j<m;j++){ + if(!uf.connected(i*m+j,n*m)){ // if a 'O' node is not connected to the dummy node, it is captured + board[i][j]='X'; + } + } + } + } +}; diff --git a/week07/200_NumberOfIslands.cpp b/week07/200_NumberOfIslands.cpp new file mode 100644 index 00000000..83b16c4b --- /dev/null +++ b/week07/200_NumberOfIslands.cpp @@ -0,0 +1,130 @@ +// +// Created by lewang on 12/6/20. +// + +//bfs + +class Solution { +public: + int numIslands(vector<vector<char>>& grid) { + int m = grid.size(), n = m ? grid[0].size() : 0, islands = 0, offsets[] = {0, 1, 0, -1, 0}; + for (int i = 0; i < m; i++) { + for (int j = 0; j < n; j++) { + if (grid[i][j] == '1') { + islands++; + grid[i][j] = '0'; + queue<pair<int, int>> todo; + todo.push({i, j}); + while (!todo.empty()) { + pair<int, int> p = todo.front(); + todo.pop(); + for (int k = 0; k < 4; k++) { + int r = p.first + offsets[k], c = p.second + offsets[k + 1]; + if (r >= 0 && r < m && c >= 0 && c < n && grid[r][c] == '1') { + grid[r][c] = '0'; + todo.push({r, c}); + } + } + } + } + } + } + return islands; + } +}; + +//dfs + +class Solution { +public: + int numIslands(vector<vector<char>>& grid) { + int m = grid.size(), n = m ? grid[0].size() : 0, islands = 0; + for (int i = 0; i < m; i++) { + for (int j = 0; j < n; j++) { + if (grid[i][j] == '1') { + islands++; + eraseIslands(grid, i, j); + } + } + } + return islands; + } +private: + void eraseIslands(vector<vector<char>>& grid, int i, int j) { + int m = grid.size(), n = grid[0].size(); + if (i < 0 || i == m || j < 0 || j == n || grid[i][j] == '0') { + return; + } + grid[i][j] = '0'; + eraseIslands(grid, i - 1, j); + eraseIslands(grid, i + 1, j); + eraseIslands(grid, i, j - 1); + eraseIslands(grid, i, j + 1); + } +}; + +//union find + +public class Solution { +public int numIslands(char[][] g) { + if (g.length < 1 || g[0].length < 1) return 0; + int n = g.length, m = g[0].length, island = 0; + UnionFindSet uf = new UnionFindSet(n, m); + + for (int i = 0; i < n; i++) + for (int j = 0; j < m; j++) + if (g[i][j] == '1') { + uf.find(i, j); + if (i > 0 && g[i - 1][j] == '1') uf.merge(i - 1, j, i, j); + if (j > 0 && g[i][j - 1] == '1') uf.merge(i, j - 1, i, j); + } + + for (int i = 0; i < n; i++) + for (int j = 0; j < m; j++) + if (g[i][j] == '1' && uf.isSetHead(i, j)) island++; + + return island; + } + +private class UnionFindSet { // 2d + int n, m; + int[] size, p; + + public UnionFindSet(int nn, int mm) { + n = nn; m = mm; + size = new int[n * m]; p = new int[n * m]; + Arrays.fill(p, -1); + } + + private int id(int i, int j) { + return i * m + j; + } + + private int find(int i, int j) { + return find(id(i, j)); + } + + private int find(int x) { + if (p[x] == -1) { + size[x] = 1; + p[x] = x; + return x; + } + p[x] = (p[x] == x) ? x : find(p[x]); + return p[x]; + } + + private void merge(int i1, int j1, int i2, int j2) { + int s1 = find(i1, j1), s2 = find(i2, j2); + if (s1 == s2) return; + if (size[s1] > size[s2]) { + p[s2] = s1; size[s1] += size[s2]; + } else { + p[s1] = s2; size[s2] += size[s1]; + } + } + + private boolean isSetHead(int i, int j) { + return id(i, j) == find(i, j); + } + } diff --git a/week07/208_implement_trie.cpp b/week07/208_implement_trie.cpp new file mode 100644 index 00000000..16b8785a --- /dev/null +++ b/week07/208_implement_trie.cpp @@ -0,0 +1,63 @@ +// +// Created by lewang on 12/6/20. +// +//注意防止内存泄漏 +//要写析构函数 +struct TrieNode{ + bool end; + TrieNode* children[26]; + TrieNode(){ + end = false; + memset(children,NULL,sizeof(children)); + } +}; + +class Trie { +public: + /** Initialize your data structure here. */ + Trie() { + root = new TrieNode(); + } + ~Trie(){ + clear(root); + } + void clear(TrieNode* root){ + for(int i=0;i<26;i++){ + if(root->children[i]) clear(root->children[i]); + } + delete root; + } + + /** Inserts a word into the trie. */ + void insert(string word) { + TrieNode* dummy = root; + for(char c:word){ + if(!dummy->children[c-'a']) + dummy->children[c-'a'] = new TrieNode(); + dummy = dummy->children[c-'a']; + } + dummy->end = true; + } + + /** Returns if the word is in the trie. */ + bool search(string word) { + TrieNode* dummy = root; + for(char c:word){ + if(!dummy->children[c-'a']) return false; + dummy = dummy->children[c-'a']; + } + return dummy && dummy->end; + } + + /** Returns if there is any word in the trie that starts with the given prefix. */ + bool startsWith(string prefix) { + TrieNode* dummy = root; + for(char c:prefix){ + if(!dummy->children[c-'a']) return false; + dummy = dummy->children[c-'a']; + } + return dummy; + } +private: + TrieNode* root; +}; diff --git a/week07/212_finddWords.cpp b/week07/212_finddWords.cpp new file mode 100644 index 00000000..41a0c5c3 --- /dev/null +++ b/week07/212_finddWords.cpp @@ -0,0 +1,293 @@ +// +// Created by lewang on 12/6/20. +// +//----------------stander bfs-------------- +class Solution { +private: + unordered_set<string> wordList; + vector<vector<string>> ans; + unordered_set<string> visited; + + int level = 1; + int minLevel = INT_MAX; + +public: + vector<vector<string>> findLadders(string beginWord, string endWord,vector<string> &words ) { + + //Putting all words in a set + for(auto word: words) + wordList.insert(word); + //wordList.insert(endWord); Cant insert endWord now + + //Queue of Paths + queue<vector<string>> q; + q.push({beginWord}); + + + while (!q.empty()) + { + vector<string> path = q.front(); q.pop(); + + if (path.size() > level) + { + //reach a new level + for (string w : visited) + wordList.erase(w); + + //visited.clear(); + if (path.size() > minLevel) + break; + else + level = path.size(); + } + + + string lastWord = path.back(); + + addNeighboursToQ(lastWord,path,q,endWord); + } + + return ans; + } + + void addNeighboursToQ(string curr,vector<string> path,queue<vector<string>> &q,const string &endWord) + { + for(int i=0;i<curr.size();i++) + { + char originalChar = curr[i]; + + for(int j=0;j<26;j++) + { + curr[i] = j + 'a'; + + if(wordList.find(curr)!=wordList.end()) + { + //cout<<curr<<" added"<<endl; + vector<string> newpath = path; + newpath.push_back(curr); + + visited.insert(curr); + + + if (curr == endWord) { + minLevel = level; + ans.push_back(newpath); + } + else + q.push(newpath); + + } + } + + curr[i] = originalChar; + }//i + } +}; +//------------------ends----------------- + +//------------two-end bfs------------------ +class Solution { +public: + std::vector<std::vector<std::string> > findLadders(std::string beginWord, std::string endWord, std::unordered_set<std::string> &dict) { + std::vector<std::vector<std::string> > paths; + std::vector<std::string> path(1, beginWord); + if (beginWord == endWord) { + paths.push_back(path); + return paths; + } + std::unordered_set<std::string> words1, words2; + words1.insert(beginWord); + words2.insert(endWord); + std::unordered_map<std::string, std::vector<std::string> > nexts; + bool words1IsBegin = false; + if (findLaddersHelper(words1, words2, dict, nexts, words1IsBegin)) + getPath(beginWord, endWord, nexts, path, paths); + return paths; + } +private: + bool findLaddersHelper( + std::unordered_set<std::string> &words1, + std::unordered_set<std::string> &words2, + std::unordered_set<std::string> &dict, + std::unordered_map<std::string, std::vector<std::string> > &nexts, + bool &words1IsBegin) { + words1IsBegin = !words1IsBegin; + if (words1.empty()) + return false; + if (words1.size() > words2.size()) + return findLaddersHelper(words2, words1, dict, nexts, words1IsBegin); + for (auto it = words1.begin(); it != words1.end(); ++it) + dict.erase(*it); + for (auto it = words2.begin(); it != words2.end(); ++it) + dict.erase(*it); + std::unordered_set<std::string> words3; + bool reach = false; + for (auto it = words1.begin(); it != words1.end(); ++it) { + std::string word = *it; + for (auto ch = word.begin(); ch != word.end(); ++ch) { + char tmp = *ch; + for (*ch = 'a'; *ch <= 'z'; ++(*ch)) + if (*ch != tmp) + if (words2.find(word) != words2.end()) { + reach = true; + words1IsBegin ? nexts[*it].push_back(word) : nexts[word].push_back(*it); + } + else if (!reach && dict.find(word) != dict.end()) { + words3.insert(word); + words1IsBegin ? nexts[*it].push_back(word) : nexts[word].push_back(*it); + } + *ch = tmp; + } + } + return reach || findLaddersHelper(words2, words3, dict, nexts, words1IsBegin); + } + void getPath( + std::string beginWord, + std::string &endWord, + std::unordered_map<std::string, std::vector<std::string> > &nexts, + std::vector<std::string> &path, + std::vector<std::vector<std::string> > &paths) { + if (beginWord == endWord) + paths.push_back(path); + else + for (auto it = nexts[beginWord].begin(); it != nexts[beginWord].end(); ++it) { + path.push_back(*it); + getPath(*it, endWord, nexts, path, paths); + path.pop_back(); + } + } +}; +//---------------------end------------------ + +//------------trie------------------ +class Node; + +typedef vector<string> Ladder; +typedef unordered_set<string> StringSet; +typedef bool (*NodeCmper) (Node*, Node*); +typedef set<Node*, NodeCmper> NodeSet; + +class Node +{ +public: + string word; + vector<Node*> parents; + + Node(string w) : word(w) {} + void addparent(Node* parent) { parents.push_back(parent); } + + // Yield all children of this node, and: + // 1) If the child is found in $targetlayer, which means we found ladders that + // connect BEGIN-WORD and END-WORD, then we get all paths through this node + // to its ROOT node, and all paths through the target child node to its ROOT + // node, and combine the two group of paths to a group of ladders, and append + // these ladders to $ladders. + // 2) Elif the $ladders is empty: + // 2.1) If the child is found in $nextlayer, then get that child, and add + // this node to its parents. + // 2.2) Else, add the child to nextlayer, and add this node to its parents. + // 3) Else, do nothing. + void yieldchildren(NodeSet& nextlayer, StringSet& wordlist, NodeSet& targetlayer, + vector<Ladder>& ladders, bool forward) + { + string nextword = word; + for (int i = 0, n = nextword.length(); i < n; i++) { + char oldchar = nextword[i]; + for (nextword[i] = 'a'; nextword[i] <= 'z'; nextword[i]++) { + if (wordlist.count(nextword)) { + // now we found a valid child-word, let's yield a child. + Node* child = new Node(nextword); + yield1(child, nextlayer, targetlayer, ladders, forward); + } + } + nextword[i] = oldchar; + } + } + + // yield one child, see comment of function `yieldchildren` + void yield1(Node* child, NodeSet& nextlayer, NodeSet& targetlayer, + vector<Ladder>& ladders, bool forward) { + auto itr = targetlayer.find(child); + if (itr != targetlayer.end()) { + for (Ladder path1 : this->getpaths()) { + for (Ladder path2 : (*itr)->getpaths()) { + if (forward) { + ladders.push_back(path1); + ladders.back().insert(ladders.back().end(), path2.rbegin(), path2.rend()); + } else { + ladders.push_back(path2); + ladders.back().insert(ladders.back().end(), path1.rbegin(), path1.rend()); + } + } + } + } else if (ladders.empty()) { + auto itr = nextlayer.find(child); + if (itr != nextlayer.end()) { + (*itr)->addparent(this); + } else { + child->addparent(this); + nextlayer.insert(child); + } + } + } + + vector<Ladder> getpaths() + { + vector<Ladder> ladders; + if (parents.empty()) { + ladders.push_back(Ladder(1, word)); + } else { + for (Node* parent : parents) { + for (Ladder ladder : parent->getpaths()) { + ladders.push_back(ladder); + ladders.back().push_back(word); + } + } + } + return ladders; + } +}; + +bool nodecmp(Node* pa, Node* pb) +{ + return pa->word < pb->word; +} + +class Solution { +public: + vector<Ladder> findLadders(string begin, string end, StringSet& wordlist) { + vector<Ladder> ladders; + Node headroot(begin), tailroot(end); + NodeSet frontlayer(nodecmp), backlayer(nodecmp); + NodeSet *ptr_layerA = &frontlayer, *ptr_layerB = &backlayer; + bool forward = true; + + if (begin == end) { + ladders.push_back(Ladder(1, begin)); + return ladders; + } + + frontlayer.insert(&headroot); + backlayer.insert(&tailroot); + wordlist.insert(end); + while (!ptr_layerA->empty() && !ptr_layerB->empty() && ladders.empty()) { + NodeSet nextlayer(nodecmp); + if (ptr_layerA->size() > ptr_layerB->size()) { + swap(ptr_layerA, ptr_layerB); + forward = ! forward; + } + for (Node* node : *ptr_layerA) { + wordlist.erase(node->word); + } + for (Node* node : *ptr_layerA) { + node->yieldchildren(nextlayer, wordlist, *ptr_layerB, ladders, forward); + } + swap(*ptr_layerA, nextlayer); + } + + return ladders; + } +}; + + + diff --git a/week07/547_findCircles.cpp b/week07/547_findCircles.cpp new file mode 100644 index 00000000..caddd179 --- /dev/null +++ b/week07/547_findCircles.cpp @@ -0,0 +1,59 @@ +// +// Created by lewang on 12/6/20. +// +//------------dfs-------------------- + +class Solution { +public: + int findCircleNum(vector<vector<int>>& M) { + if (M.empty()) return 0; + int n = M.size(); + vector<bool> visited(n, false); + int groups = 0; + for (int i = 0; i < visited.size(); i++) { + groups += !visited[i] ? dfs(i, M, visited), 1 : 0; + } + return groups; + } + +private: + void dfs(int i, vector<vector<int>>& M, vector<bool>& visited) { + visited[i] = true; + for (int j = 0; j < visited.size(); j++) { + if (i != j && M[i][j] && !visited[j]) { + dfs(j, M, visited); + } + } + } +}; +//------------------Union find-------------------- +class Solution { +public: + int findCircleNum(vector<vector<int>>& M) { + if (M.empty()) return 0; + int n = M.size(); + + vector<int> leads(n, 0); + for (int i = 0; i < n; i++) { leads[i] = i; } // initialize leads for every kid as themselves + + int groups = n; + for (int i = 0; i < n; i++) { + for (int j = i + 1; j < n; j++) { // avoid recalculate M[i][j], M[j][i] + if (M[i][j]) { + int lead1 = find(i, leads); + int lead2 = find(j, leads); + if (lead1 != lead2) { // if 2 group belongs 2 different leads, merge 2 group to 1 + leads[lead1] = lead2; + groups--; + } + } + } + } + return groups; + } + +private: + int find(int x, vector<int>& parents) { + return parents[x] == x ? x : find(parents[x], parents); + } +}; diff --git a/week07/NOTE.md b/week07/NOTE.md index 50de3041..f489b2bf 100644 --- a/week07/NOTE.md +++ b/week07/NOTE.md @@ -1 +1,193 @@ -学习笔记 \ No newline at end of file +学习笔记 +# 字典树 Trie +按层次打印二叉树 bfs + +1. 字典树的数据结构 +字典树,即trie树 + +# 并查集 + +# 高级搜索 +初级搜索 +1.朴素搜索 +2.优化方式: 不重复(fibonacci),剪枝(生成括号) +3.搜索方向: +DFS +BFS +双向搜索 +启发式搜索 +动态规划 +coin change +Alpha zero + +回溯法 +回溯法采用试错的思想,他尝试分布的去解决一个问题.在分布解决问题的过程中,当它通过尝试发现现有的分布答案不能 +得到有效的正确的解答的时候,它将取消上一步甚至上几步的计算,再通过其他的可能的分布解答再次尝试寻找问题的答案 + +回溯法通常用最简单的递归方法来实现,在反复重复上述的步骤后可能出现两种情况: +1. 找到一个可能存在的正确的答案 +2. 在尝试了所有可能的分布方法后宣告该问题没有答案 +在最坏的情况下,回溯法会导致一次复杂度为指数时间的计算 +## 剪枝 +爬楼梯 + +括号生成 +### 参考链接 + +- [DFS 代码模板](https://shimo.im/docs/UdY2UUKtliYXmk8t) +- [BFS 代码模板](https://shimo.im/docs/ZBghMEZWix0Lc2jQ) +- [AlphaZero Explained](https://nikcheerla.github.io/deeplearningschool/2018/01/01/AlphaZero-Explained/) +- [棋类复杂度](https://en.wikipedia.org/wiki/Game_complexity) + +### 实战题目 + +- [爬楼梯](https://leetcode-cn.com/problems/climbing-stairs/)(阿里巴巴、腾讯、字节跳动在半年内面试常考) +- [括号生成](https://leetcode-cn.com/problems/generate-parentheses/)(亚马逊、Facebook、字节跳动在半年内面试中考过) +- [N 皇后](https://leetcode-cn.com/problems/n-queens/)(亚马逊、苹果、字节跳动在半年内面试中考过) +- [有效的数独](https://leetcode-cn.com/problems/valid-sudoku/description/)(亚马逊、苹果、微软在半年内面试中考过) +- [解数独](https://leetcode-cn.com/problems/sudoku-solver/#/description)(亚马逊、华为、微软在半年内面试中考过) + +## 双向BFS +单词接龙 +1. BFS +2. DFS +3. 双向BFS + +433.最小基因变换 +### 实战题目 + +- [单词接龙](https://leetcode-cn.com/problems/word-ladder/)(亚马逊、Facebook、谷歌在半年内面试中考过) +- [最小基因变化](https://leetcode-cn.com/problems/minimum-genetic-mutation/)(谷歌、Twitter、腾讯在半年内面试中考过) + +### 课后作业 + +- 总结双向 BFS 代码模版,请同学们提交在学习总结中。 + +## 启发式搜索( Heuristic Search A*) +基于BFS代码 + +模板: + +**估价函数/优先级函数**: h(n),它用来评价那些结点最优希望是我们要找的结点, +h(n)会返回一个非负实数,也可以认为是从结点的目标结点路径的估计成本 + +启发式函数是一种告知搜索方向的方法.它提供了一种明智的方法来猜测哪个邻居结点会 +导向一个目标 + +1091.二进制矩阵中的最短路径 +1.dp +2.BFS +3.A* + + +773.滑动谜题 +slidingPuzzle +1.BFS +2.A* +### 参考链接 + +- [A* 代码模板](https://shimo.im/docs/8CzMlrcvbWwFXA8r) +- [相似度测量方法](https://dataaspirant.com/2015/04/11/five-most-popular-similarity-measures-implementation-in-python/) +- [二进制矩阵中的最短路径的 A* 解法](https://leetcode.com/problems/shortest-path-in-binary-matrix/discuss/313347/A*-search-in-Python) +- [8 puzzles 解法比较](https://zxi.mytechroad.com/blog/searching/8-puzzles-bidirectional-astar-vs-bidirectional-bfs/) + +### 实战题目 + +- [二进制矩阵中的最短路径](https://leetcode-cn.com/problems/shortest-path-in-binary-matrix/)(亚马逊、字节跳动、Facebook 在半年内面试中考过) +- [滑动谜题](https://leetcode-cn.com/problems/sliding-puzzle/)(微软、谷歌、Facebook 在半年内面试中考过) +- [解数独](https://leetcode-cn.com/problems/sudoku-solver/)(微软、华为、亚马逊在半年内面试中考过) + + +# 高级树,AVL树和红黑树 +树 + +二叉树 + +二叉树遍历 +代码模板 + +二叉搜索树,有序 + +保证性能的关键 +1.保证二维维度 -> 左右子树结点平衡 +2.balanced +3.wiki/self-balancing_binary_search_tree 平衡二叉树 + +## AVL树 +1.发明者: G.M.Adelson-Velsky 和 Evgenii Landis +2.Balance Factor(平衡因子) +是它的左子树的高度减去它的右子树的高度(有时相反) +balance factor = {-1, 0, 1} +3.通过旋转操作来进行平衡(四种) + 右右子树 -> 左旋 + 左左子树 -> 右旋 + 左右子树 -> 左右旋 + 右左子树 -> 右左旋 + +*注意有左右子树的的旋转,有需要换父节点 + 不要求代码实现 +不足: 结点需要储存额外信息,且调整次数频繁 + +## 红黑树(近似平衡二叉树) +红黑树是一种近似平衡的二叉搜索数(binary search tree), 它能够确保任何一个结点的左右子树 +的高度差小于两倍.具体来说,红黑树是满足如下条件的二叉搜索树: +- 每个结点要么是红色,要么是黑色 +- 根节点是黑色 +- 每个叶结点(NIL结点,空结点),是黑色 +- 不能有相邻的两个红色结点 +- 从任一结点到其每个叶子的所有路径都包含相同数目的黑色结点-> 高度差小于两倍 + +对比红黑树和AVL +- AVL trees provide faster lookups than Red Black Trees because they are more strictly' balanced +- Red Black Trees provide faster insertion and removal operations than AVL trees as fewer rotations are +done due to relatively relaxed balancing +- AVL trees store balance factors or heights with each node thus requires storage for +an integer per node whereas Red Black Tree requires only 1 bit of information per +node. +- RedBlack Trees are used in most of the language libraries +like map, multimap, multisetin c++ whereas AVL trees are used in databases +where faster retrievals are required. + + + + + +## 本周作业 + +### 简单 + +- [爬楼梯](https://leetcode-cn.com/problems/climbing-stairs/)(阿里巴巴、腾讯、字节跳动在半年内面试常考) + +### 中等 + +- [实现 Trie (前缀树) ](https://leetcode-cn.com/problems/implement-trie-prefix-tree/#/description)(亚马逊、微软、谷歌在半年内面试中考过) +- [朋友圈](https://leetcode-cn.com/problems/friend-circles)(亚马逊、Facebook、字节跳动在半年内面试中考过) +- [岛屿数量](https://leetcode-cn.com/problems/number-of-islands/)(近半年内,亚马逊在面试中考查此题达到 361 次) +- [被围绕的区域](https://leetcode-cn.com/problems/surrounded-regions/)(亚马逊、eBay、谷歌在半年内面试中考过) +- [有效的数独](https://leetcode-cn.com/problems/valid-sudoku/description/)(亚马逊、苹果、微软在半年内面试中考过) +- [括号生成](https://leetcode-cn.com/problems/generate-parentheses/)(亚马逊、Facebook、字节跳动在半年内面试中考过) +- [单词接龙](https://leetcode-cn.com/problems/word-ladder/)(亚马逊、Facebook、谷歌在半年内面试中考过) +- [最小基因变化](https://leetcode-cn.com/problems/minimum-genetic-mutation/)(谷歌、Twitter、腾讯在半年内面试中考过) + +### 困难 + +- [单词搜索 II ](https://leetcode-cn.com/problems/word-search-ii/)(亚马逊、微软、苹果在半年内面试中考过) +- [N 皇后](https://leetcode-cn.com/problems/n-queens/)(亚马逊、苹果、字节跳动在半年内面试中考过) +- [解数独](https://leetcode-cn.com/problems/sudoku-solver/#/description)(亚马逊、华为、微软在半年内面试中考过) + +## 下周预习题目 + +- [LRU 缓存机制](https://leetcode-cn.com/problems/lru-cache/#/) +- [有效的字母异位词](https://leetcode-cn.com/problems/valid-anagram/) + + + + + + + + + + + + From a6697bf3147d80b56f0354747e16537f9cfffa18 Mon Sep 17 00:00:00 2001 From: Ella2le <1071444737@qq.com> Date: Sun, 13 Dec 2020 13:30:14 +0800 Subject: [PATCH 19/21] do week8 homework --- week06/122_maxProfit2.cpp | 1 + week08/146_LRU_Cache.cpp | 94 +++ week08/190_ReverseBits.cpp | 44 ++ week08/191_number_of_1_bit.cpp | 37 ++ week08/231_power_of_2.cpp | 29 + week08/242_isAnagram.cpp | 38 ++ week08/338_CountingBits.cpp | 90 +++ week08/493_Reverse_Pair.cpp | 141 ++++ week08/51_N_Queen.cpp | 99 +++ week08/52_totalN_Queens.cpp | 55 ++ week08/56_Merge_Intervals.cpp | 26 + week08/CMakeLists.txt | 15 + week08/Insetion_Sort_template.cpp | 45 ++ week08/Merge_Sort_template.cpp | 38 ++ week08/NOTE.md | 240 ++++++- week08/Selection_Sort_template.cpp | 47 ++ week08/bubble_sort_template.cpp | 54 ++ week08/cmake-build-debug/493_Reverse_Pair | Bin 0 -> 130832 bytes week08/cmake-build-debug/51_N_Queen | Bin 0 -> 181504 bytes week08/cmake-build-debug/52_totalN_Queens | Bin 0 -> 82504 bytes week08/cmake-build-debug/CMakeCache.txt | 380 +++++++++++ .../242_isAnagram.dir/DependInfo.cmake | 20 + .../CMakeFiles/242_isAnagram.dir/build.make | 98 +++ .../242_isAnagram.dir/cmake_clean.cmake | 10 + .../CMakeFiles/242_isAnagram.dir/depend.make | 2 + .../CMakeFiles/242_isAnagram.dir/flags.make | 10 + .../CMakeFiles/242_isAnagram.dir/link.txt | 1 + .../242_isAnagram.dir/progress.make | 3 + .../CMakeFiles/3.13.2/CMakeCCompiler.cmake | 73 ++ .../CMakeFiles/3.13.2/CMakeCXXCompiler.cmake | 76 +++ .../3.13.2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 8464 bytes .../3.13.2/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 8472 bytes .../CMakeFiles/3.13.2/CMakeSystem.cmake | 15 + .../3.13.2/CompilerIdC/CMakeCCompilerId.c | 623 +++++++++++++++++ .../CMakeFiles/3.13.2/CompilerIdC/a.out | Bin 0 -> 8616 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 602 +++++++++++++++++ .../CMakeFiles/3.13.2/CompilerIdCXX/a.out | Bin 0 -> 8632 bytes .../493_Reverse_Pair.cpp.o | Bin 0 -> 206200 bytes .../493_Reverse_Pair.dir/CXX.includecache | 18 + .../493_Reverse_Pair.dir/DependInfo.cmake | 20 + .../493_Reverse_Pair.dir/build.make | 98 +++ .../493_Reverse_Pair.dir/cmake_clean.cmake | 10 + .../493_Reverse_Pair.dir/depend.internal | 5 + .../493_Reverse_Pair.dir/depend.make | 5 + .../493_Reverse_Pair.dir/flags.make | 10 + .../CMakeFiles/493_Reverse_Pair.dir/link.txt | 1 + .../493_Reverse_Pair.dir/progress.make | 3 + .../51_N_Queen.dir/51_N_Queen.cpp.o | Bin 0 -> 269600 bytes .../51_N_Queen.dir/CXX.includecache | 18 + .../51_N_Queen.dir/DependInfo.cmake | 20 + .../CMakeFiles/51_N_Queen.dir/build.make | 98 +++ .../51_N_Queen.dir/cmake_clean.cmake | 10 + .../CMakeFiles/51_N_Queen.dir/depend.internal | 5 + .../CMakeFiles/51_N_Queen.dir/depend.make | 5 + .../CMakeFiles/51_N_Queen.dir/flags.make | 10 + .../CMakeFiles/51_N_Queen.dir/link.txt | 1 + .../CMakeFiles/51_N_Queen.dir/progress.make | 3 + .../52_totalN_Queens.cpp.o | Bin 0 -> 119352 bytes .../52_totalN_Queens.dir/CXX.includecache | 14 + .../52_totalN_Queens.dir/DependInfo.cmake | 20 + .../52_totalN_Queens.dir/build.make | 98 +++ .../52_totalN_Queens.dir/cmake_clean.cmake | 10 + .../52_totalN_Queens.dir/depend.internal | 5 + .../52_totalN_Queens.dir/depend.make | 5 + .../52_totalN_Queens.dir/flags.make | 10 + .../CMakeFiles/52_totalN_Queens.dir/link.txt | 1 + .../52_totalN_Queens.dir/progress.make | 3 + .../CMakeDirectoryInformation.cmake | 16 + .../CMakeFiles/CMakeOutput.log | 625 ++++++++++++++++++ .../CXX.includecache | 16 + .../DependInfo.cmake | 20 + .../Insetion_Sort_template.cpp.o | Bin 0 -> 172520 bytes .../Insetion_Sort_template.dir/build.make | 98 +++ .../cmake_clean.cmake | 10 + .../depend.internal | 5 + .../Insetion_Sort_template.dir/depend.make | 5 + .../Insetion_Sort_template.dir/flags.make | 10 + .../Insetion_Sort_template.dir/link.txt | 1 + .../Insetion_Sort_template.dir/progress.make | 3 + .../CMakeFiles/Makefile.cmake | 57 ++ week08/cmake-build-debug/CMakeFiles/Makefile2 | 372 +++++++++++ .../CXX.includecache | 16 + .../DependInfo.cmake | 20 + .../Selection_Sort_template.cpp.o | Bin 0 -> 178312 bytes .../Selection_Sort_template.dir/build.make | 98 +++ .../cmake_clean.cmake | 10 + .../depend.internal | 5 + .../Selection_Sort_template.dir/depend.make | 5 + .../Selection_Sort_template.dir/flags.make | 10 + .../Selection_Sort_template.dir/link.txt | 1 + .../Selection_Sort_template.dir/progress.make | 3 + .../CMakeFiles/TargetDirectories.txt | 10 + .../bubble_sort_template.dir/CXX.includecache | 16 + .../bubble_sort_template.dir/DependInfo.cmake | 20 + .../bubble_sort_template.cpp.o | Bin 0 -> 137864 bytes .../bubble_sort_template.dir/build.make | 98 +++ .../cmake_clean.cmake | 10 + .../bubble_sort_template.dir/depend.internal | 5 + .../bubble_sort_template.dir/depend.make | 5 + .../bubble_sort_template.dir/flags.make | 10 + .../bubble_sort_template.dir/link.txt | 1 + .../bubble_sort_template.dir/progress.make | 3 + .../CMakeFiles/clion-environment.txt | 3 + .../CMakeFiles/clion-log.txt | 4 + .../CMakeFiles/cmake.check_cache | 1 + .../CMakeFiles/feature_tests.bin | Bin 0 -> 12520 bytes .../CMakeFiles/feature_tests.c | 34 + .../CMakeFiles/feature_tests.cxx | 405 ++++++++++++ .../CMakeFiles/note.dir/CXX.includecache | 14 + .../CMakeFiles/note.dir/DependInfo.cmake | 20 + .../CMakeFiles/note.dir/build.make | 98 +++ .../CMakeFiles/note.dir/cmake_clean.cmake | 10 + .../CMakeFiles/note.dir/depend.internal | 5 + .../CMakeFiles/note.dir/depend.make | 5 + .../CMakeFiles/note.dir/flags.make | 10 + .../CMakeFiles/note.dir/link.txt | 1 + .../CMakeFiles/note.dir/note.cpp.o | Bin 0 -> 164200 bytes .../CMakeFiles/note.dir/progress.make | 3 + .../CMakeFiles/progress.marks | 1 + .../cmake-build-debug/Insetion_Sort_template | Bin 0 -> 115752 bytes week08/cmake-build-debug/Makefile | 486 ++++++++++++++ .../cmake-build-debug/Selection_Sort_template | Bin 0 -> 118264 bytes week08/cmake-build-debug/bubble_sort_template | Bin 0 -> 90928 bytes week08/cmake-build-debug/cmake_install.cmake | 49 ++ week08/cmake-build-debug/note | Bin 0 -> 106496 bytes week08/cmake-build-debug/week08.cbp | 437 ++++++++++++ week08/heap_Sort_template.cpp | 44 ++ week08/note.cpp | 111 ++++ week08/quick_sort_template.cpp | 28 + 129 files changed, 6864 insertions(+), 1 deletion(-) create mode 100644 week08/146_LRU_Cache.cpp create mode 100644 week08/190_ReverseBits.cpp create mode 100644 week08/191_number_of_1_bit.cpp create mode 100644 week08/231_power_of_2.cpp create mode 100644 week08/242_isAnagram.cpp create mode 100644 week08/338_CountingBits.cpp create mode 100644 week08/493_Reverse_Pair.cpp create mode 100644 week08/51_N_Queen.cpp create mode 100644 week08/52_totalN_Queens.cpp create mode 100644 week08/56_Merge_Intervals.cpp create mode 100644 week08/CMakeLists.txt create mode 100644 week08/Insetion_Sort_template.cpp create mode 100644 week08/Merge_Sort_template.cpp create mode 100644 week08/Selection_Sort_template.cpp create mode 100644 week08/bubble_sort_template.cpp create mode 100755 week08/cmake-build-debug/493_Reverse_Pair create mode 100755 week08/cmake-build-debug/51_N_Queen create mode 100755 week08/cmake-build-debug/52_totalN_Queens create mode 100644 week08/cmake-build-debug/CMakeCache.txt create mode 100644 week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/DependInfo.cmake create mode 100644 week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/build.make create mode 100644 week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/cmake_clean.cmake create mode 100644 week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/depend.make create mode 100644 week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/flags.make create mode 100644 week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/link.txt create mode 100644 week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/progress.make create mode 100755 week08/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake create mode 100755 week08/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake create mode 100755 week08/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin create mode 100755 week08/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin create mode 100755 week08/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake create mode 100644 week08/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c create mode 100755 week08/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out create mode 100644 week08/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100755 week08/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out create mode 100644 week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.o create mode 100644 week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/CXX.includecache create mode 100644 week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/DependInfo.cmake create mode 100644 week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/build.make create mode 100644 week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/cmake_clean.cmake create mode 100644 week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/depend.internal create mode 100644 week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/depend.make create mode 100644 week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/flags.make create mode 100644 week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/link.txt create mode 100644 week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/progress.make create mode 100644 week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.o create mode 100644 week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/CXX.includecache create mode 100644 week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/DependInfo.cmake create mode 100644 week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/build.make create mode 100644 week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/cmake_clean.cmake create mode 100644 week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/depend.internal create mode 100644 week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/depend.make create mode 100644 week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/flags.make create mode 100644 week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/link.txt create mode 100644 week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/progress.make create mode 100644 week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.o create mode 100644 week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/CXX.includecache create mode 100644 week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/DependInfo.cmake create mode 100644 week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/build.make create mode 100644 week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/cmake_clean.cmake create mode 100644 week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/depend.internal create mode 100644 week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/depend.make create mode 100644 week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/flags.make create mode 100644 week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/link.txt create mode 100644 week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/progress.make create mode 100644 week08/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 week08/cmake-build-debug/CMakeFiles/CMakeOutput.log create mode 100644 week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/CXX.includecache create mode 100644 week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/DependInfo.cmake create mode 100644 week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.o create mode 100644 week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/build.make create mode 100644 week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/cmake_clean.cmake create mode 100644 week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/depend.internal create mode 100644 week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/depend.make create mode 100644 week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/flags.make create mode 100644 week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/link.txt create mode 100644 week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/progress.make create mode 100644 week08/cmake-build-debug/CMakeFiles/Makefile.cmake create mode 100644 week08/cmake-build-debug/CMakeFiles/Makefile2 create mode 100644 week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/CXX.includecache create mode 100644 week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/DependInfo.cmake create mode 100644 week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.o create mode 100644 week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/build.make create mode 100644 week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/cmake_clean.cmake create mode 100644 week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/depend.internal create mode 100644 week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/depend.make create mode 100644 week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/flags.make create mode 100644 week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/link.txt create mode 100644 week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/progress.make create mode 100644 week08/cmake-build-debug/CMakeFiles/TargetDirectories.txt create mode 100644 week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/CXX.includecache create mode 100644 week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/DependInfo.cmake create mode 100644 week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.o create mode 100644 week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/build.make create mode 100644 week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/cmake_clean.cmake create mode 100644 week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/depend.internal create mode 100644 week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/depend.make create mode 100644 week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/flags.make create mode 100644 week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/link.txt create mode 100644 week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/progress.make create mode 100644 week08/cmake-build-debug/CMakeFiles/clion-environment.txt create mode 100644 week08/cmake-build-debug/CMakeFiles/clion-log.txt create mode 100644 week08/cmake-build-debug/CMakeFiles/cmake.check_cache create mode 100755 week08/cmake-build-debug/CMakeFiles/feature_tests.bin create mode 100644 week08/cmake-build-debug/CMakeFiles/feature_tests.c create mode 100644 week08/cmake-build-debug/CMakeFiles/feature_tests.cxx create mode 100644 week08/cmake-build-debug/CMakeFiles/note.dir/CXX.includecache create mode 100644 week08/cmake-build-debug/CMakeFiles/note.dir/DependInfo.cmake create mode 100644 week08/cmake-build-debug/CMakeFiles/note.dir/build.make create mode 100644 week08/cmake-build-debug/CMakeFiles/note.dir/cmake_clean.cmake create mode 100644 week08/cmake-build-debug/CMakeFiles/note.dir/depend.internal create mode 100644 week08/cmake-build-debug/CMakeFiles/note.dir/depend.make create mode 100644 week08/cmake-build-debug/CMakeFiles/note.dir/flags.make create mode 100644 week08/cmake-build-debug/CMakeFiles/note.dir/link.txt create mode 100644 week08/cmake-build-debug/CMakeFiles/note.dir/note.cpp.o create mode 100644 week08/cmake-build-debug/CMakeFiles/note.dir/progress.make create mode 100644 week08/cmake-build-debug/CMakeFiles/progress.marks create mode 100755 week08/cmake-build-debug/Insetion_Sort_template create mode 100644 week08/cmake-build-debug/Makefile create mode 100755 week08/cmake-build-debug/Selection_Sort_template create mode 100755 week08/cmake-build-debug/bubble_sort_template create mode 100644 week08/cmake-build-debug/cmake_install.cmake create mode 100755 week08/cmake-build-debug/note create mode 100644 week08/cmake-build-debug/week08.cbp create mode 100644 week08/heap_Sort_template.cpp create mode 100644 week08/note.cpp create mode 100644 week08/quick_sort_template.cpp diff --git a/week06/122_maxProfit2.cpp b/week06/122_maxProfit2.cpp index 18aecf33..afb85b68 100644 --- a/week06/122_maxProfit2.cpp +++ b/week06/122_maxProfit2.cpp @@ -9,3 +9,4 @@ int maxProfit(vector<int>& prices) { } return sum; } + diff --git a/week08/146_LRU_Cache.cpp b/week08/146_LRU_Cache.cpp new file mode 100644 index 00000000..3c27f202 --- /dev/null +++ b/week08/146_LRU_Cache.cpp @@ -0,0 +1,94 @@ + +// +// Created by lewang on 12/12/20. +// +//为什么要用双向链表,单向不行么??? + +struct DLinkedNode { + int key, value; + DLinkedNode* prev; + DLinkedNode* next; + //构造函数 + DLinkedNode(): key(0), value(0), prev(nullptr),next(nullptr) {} + // + DLinkedNode(int _key, int _value): key(_key),value(_value),prev(nullptr),next(nullptr) {} +}; +class LRUCache { +private: + unordered_map<int, DLinkedNode*> cache; + DLinkedNode* head; + DLinkedNode* tail; + int size; + int capacity; +public: + //初始化 + LRUCache(int _capacity): capacity(_capacity),size(0) { + //使用伪头部和伪部结点 + head = new DLinkedNode(); + tail = new DLinkedNode(); + head->next = tail; + tail->prev = head; + } + + int get(int key) { + //现在hashmap中查找是否有这个目标, + if(!cache.count(key)){ + //如果没有直接返回 + return -1; + } + //如果有,将这个目标移到双端链表的头部 + DLinkedNode* node = cache[key]; + moveToHead(node); + //返回查询的目标的值 + return node->value; + } + + + void put(int key, int value) { + //如果cache中没有目标,进行插入 + if(!cache.count(key)) { + DLinkedNode* node = new DLinkedNode(key, value); + + cache[key] = node; + addToHead(node); + ++size; + //判断是否超过缓存的size + if(size > capacity) { + DLinkedNode* removed = removeTail(); + cache.erase(removed->key); + delete removed; + --size; + } + } + //如果cache中有目标,将其移到最前面 + else { + DLinkedNode* node = cache[key]; + node->value = value; + moveToHead(node); + } + } + + void addToHead(DLinkedNode* node) { + node->prev = head; + node->next = head->next; + head->next->prev = node; + head->next = node; + } + + void removeNode(DLinkedNode* node) { + node->prev->next= node->next; + node->next->prev = node->prev; + } + + void moveToHead(DLinkedNode* node) { + removeNode(node); + addToHead(node); + } + + DLinkedNode* removeTail() { + DLinkedNode* node = tail->prev; + removeNode(node); + return node; + } + +}; \ No newline at end of file diff --git a/week08/190_ReverseBits.cpp b/week08/190_ReverseBits.cpp new file mode 100644 index 00000000..c25adf74 --- /dev/null +++ b/week08/190_ReverseBits.cpp @@ -0,0 +1,44 @@ +// +// Created by lewang on 12/11/20. +// + +//1 当成字符串 int -> string -> int +// 2. 位运算 + +class Solution { +public: + uint32_t reverseBits(uint32_t n) { + +// 2.获取x的第n位值(0或者1): (x>>n)&1 +// 3.获取x的第n位值的幂值: x&(1<<n) + uint32_t res = 0; + for(int i = 0; i < 32; i++) { + uint32_t t = (n >> i) & 1;//得到n的最后一位 + //注意索引从0开始 + res = (t << (31-i)) | res; + } + return res; + } +}; +//神奇的操作暂时还没看懂,mark!! 希望老师有机会讲解一下. +class Solution { +public: + uint32_t reverseByte(uint32_t byte, map<uint32_t, uint32_t> cache) { + if(cache.find(byte) != cache.end()){ + return cache[byte]; + } + uint32_t value = (byte * 0x0202020202 & 0x010884422010) % 1023; + cache.emplace(byte,value); + return value; + } + uint32_t reverseBits(uint32_t n) { + uint32_t ret = 0, power = 24; + map<uint32_t, uint32_t> cache; + while(n != 0) { + ret += reverseByte( n & 0xff, cache) << power; + n = n >> 8; + power -= 8; + } + return ret; + } +}; \ No newline at end of file diff --git a/week08/191_number_of_1_bit.cpp b/week08/191_number_of_1_bit.cpp new file mode 100644 index 00000000..67bc9aa2 --- /dev/null +++ b/week08/191_number_of_1_bit.cpp @@ -0,0 +1,37 @@ +// +// Created by lewang on 12/11/20. +// + +int hammingWeight(uint32_t n) { + //1. for loop + int count = 0; + uint32_t mask = 1; + for(int i = 0; i < 32; i++) { + if((n & mask) != 0 ) { + count++; + } + mask = mask << 1; + } + return count; +} + + +class Solution { +public: + int hammingWeight(uint32_t n) { + //清零n的最低位 n = n&(n-1) + int count = 0; + while(n > 0) { + count ++; + n &= (n-1); + } + return count; + } +}; +//zb法,不用刻意记住,时间和空间都没有优势 +class Solution { +public: + int hammingWeight(uint32_t n) { + return (n>0) ? 1+ hammingWeight(n&(n-1)) : 0; + } +}; \ No newline at end of file diff --git a/week08/231_power_of_2.cpp b/week08/231_power_of_2.cpp new file mode 100644 index 00000000..23164813 --- /dev/null +++ b/week08/231_power_of_2.cpp @@ -0,0 +1,29 @@ +// +// Created by lewang on 12/11/20. +// + +class Solution { +public: + bool isPowerOfTwo(int n) { + //n是2的次幂,那么其有且仅有一个位为1 + if(n > 0) { + return !(n & (n -1)); //清零最低位的1,如果是2的次幂那么得到的应该是0 + } + else{ + return false; + } + + + } +}; + +class Solution { +public: + bool isPowerOfTwo(int n) { + if(n == 0)return false; + long x = n; + //n是2的次幂,那么其有且仅有一个位为1 + //x & (-x) 取得最低位的1, 如果x仅有一个1,那么得到的数应该等于原来的x + return (x & (-x)) == x; + } +}; \ No newline at end of file diff --git a/week08/242_isAnagram.cpp b/week08/242_isAnagram.cpp new file mode 100644 index 00000000..0ac3d9c9 --- /dev/null +++ b/week08/242_isAnagram.cpp @@ -0,0 +1,38 @@ +// +// Created by lewang on 12/12/20. +// +#include <iostream> +#include <string> +#include <cstring> +#include <vector> +using namespace std; + +class Solution { +public: + bool isAnagram(string s, string t) { + int s_len = s.size(); + int t_len = t.size(); + if(s_len != t_len) return false; + char s_char ;//= s[0]; + char t_char ;//= t[0]; + int size=0; + vector<int> cache (26,0); + for (int i = 0; i < s_len; ++i) { + s_char = s[i]; + t_char = t[i]; + if(cache[s_char-'a']++ < 0) { + size++; + } + if(cache[t_char-'a']-- > 0) { + size++; + } + } + if(size == s_len) { + return true; + } else { + return false; + } + + + } +}; \ No newline at end of file diff --git a/week08/338_CountingBits.cpp b/week08/338_CountingBits.cpp new file mode 100644 index 00000000..e7f8f084 --- /dev/null +++ b/week08/338_CountingBits.cpp @@ -0,0 +1,90 @@ +// +// Created by lewang on 12/12/20. +// + +//课上推荐的最优解法 +//dp +//状态转移方程 +//p(x) = p(x & (x-1)) + 1 +class Solution { +public: + vector<int> countBits(int num) { + vector<int> bits(num+1,0); + for(int i = 1; i <= num; i++) { + bits[i] += bits[i & (i - 1)] +1; + } + return bits; + } +}; +//体验了一下__builtin_popcount()和上面的方法其实是一样的 +class Solution { +public: + vector<int> countBits(int num) { + vector<int> bits(num+1,0); + for(int i = 1; i <= num; i++) { + bits[i] = __builtin_popcount(i); + } + return bits; + } +}; + + + +//超出时间限制?? +class Solution { +public: + vector<int> countBits(int num) { + vector<int> bits(num+1,0); + for(int i = 1; i <= num; i++) { + int count = 0; + while(i){ + count ++; + i = i & (i-1); + } + bits[i] = count; + } + return bits; + } +}; + +//dp +//状态转移方程 +//p(x+b) = p(x)+1,b=2的m次幂 +//超出时长?? +//leetcode submit region begin(Prohibit modification and deletion) +class Solution { +public: + vector<int> countBits(int num) { + vector<int> ans (num+1,0); + int i = 0, b = 1; + + while(b <= num){ + while(i < b && i+b <= num){ + ans[i+b] = ans[i] +1; + ++i; + } + i = 0; + b << 1; + } + return ans; + + } +}; + +//dp +//状态转移方程 +//p(x) = p(x/2) + (x mod 2) +class Solution { +public: + vector<int> countBits(int num) { + vector<int> bits(num+1,0); + for(int i = 1; i <= num; i++) { + bits[i] = bits[i>>1] + (i & 1); + } + return bits; + } +}; + + + + diff --git a/week08/493_Reverse_Pair.cpp b/week08/493_Reverse_Pair.cpp new file mode 100644 index 00000000..2ed6937e --- /dev/null +++ b/week08/493_Reverse_Pair.cpp @@ -0,0 +1,141 @@ +// +// Created by lewang on 12/12/20. +// +//1.两个嵌套循环 O(n^2) + +//2. merge-sort O(NlogN) + +//3. 树状数组 O(NlogN) +#include <iostream> +#include <vector> +#include <random> +#include <string.h> +#include <algorithm> + +using namespace std; +// +//class Solution1{ +//public: +// int reversePair(vector<int> nums){ +// return mergeSort(nums,0,nums.size() - 1); +// } +//private: +// int mergeSort(vector<int> nums, int s, int e) { +// if(s >= e) return 0; +// int mid = s + ((e - s)>>1); +// int cnt = mergeSort(nums, s, mid) + mergeSort(nums, mid+1, e); +// for(int i = s; j = mid + 1; i <= mid; i++) { +// while(j <= e && nums[i]/2.0 > num[j]) j++; +// cnt += j - (mid + 1); +// } +// sort(nums.begin(),nums.end());//这里偷懒使用sort把整个算法的时间复杂度从nlogn变成nlogn * logn +// return cnt; +// } +//}; +//自己写merge就是之前的模板里的 +//public class Solution { + + + +//} + + + +class Solution2 { +public: + int reversePairs(vector<int> nums){ + if(nums.empty() || nums.size() == 0) return 0; + return mergeSort(nums,0,nums.size() - 1); + } +private: + int mergeSort(vector<int> nums, int l, int r) { + if(l >= r) return 0; + int mid = (r-l)/2 + 1; + int count = mergeSort(nums, l, mid) + mergeSort(nums, mid+1, r); + vector<int> cache (r-l+1, 0); + int i = l, t = l, c =0; + for(int j = mid +1; j <= r; j++, c++) { + cout<<j<<" "; + while(i <= mid && nums[i] <= 2*(long)nums[j]) i++; + while(t <= mid && nums[t] < nums[j]) cache[c++] = nums[t++]; + cache[c] = nums[j]; + count += mid - i + 1; + } + while (t <= mid) cache[c++] = nums[t++]; + //memcpy(nums,cache,sizeof(cache)); + //System.arraycopy(cache,0 , nums, l,r-l+1); + for(int p = 0; p < cache.size(); p++) { + nums[l + p] = cache[p]; + } + return count; + } +}; +class Solution3 { +public: + int reversePairs(vector<int> nums){ + if(nums.empty()) return 0; + return mergeSort(nums,0,(int)nums.size() - 1); + } +private: + int mergeSort(vector<int> nums, int l, int r) { + if(l >= r) return 0; + int mid = 1+((r-1)>>1); + int count = mergeSort(nums, l, mid) + mergeSort(nums, mid+1, r); + + vector<int> cache (r-l+1, 0); + int i = l, j = mid + 1, k = 0, p = mid + 1; + + while(i <= mid) { + while(p <= r && nums[i] > (long)2*nums[p]) p++; + count += p - (mid + 1); + + while(j <= r && nums[i] >= nums[j]) cache[k++] = nums[j++]; + cache[k++] = nums[i++]; + } + while (j <= r) { + cache[k++] = nums[j++]; + } + + return count; + } +}; +class Solution{ +public: + int sort_and_count(vector<int>::iterator begin, vector<int>::iterator end) { + if(end - begin <= 1) { + return 0; + } + auto mid = begin + (end - begin)/2; + int count = sort_and_count(begin,mid) + sort_and_count(mid,end); + for(auto i = begin, j = mid; i != mid; ++i) { + while(j != end and *i>2L * *j) { + ++j; + } + count += j -mid; + } + inplace_merge(begin,mid,end); + return count; + } + int reversePair(vector<int>& nums) { + return sort_and_count(nums.begin(), nums.end()); + } +}; + + + +int main() { + random_device a; + uniform_int_distribution<int> u(1,100); + vector<int> arr; + for(int i = 0; i < 10; i++){ + int x = u(a); + cout<<x<<" "; + arr.push_back(x); + } + + Solution3 test; + int r = test.reversePairs(arr); + + cout<<"\n"<<r; + return 0; +} \ No newline at end of file diff --git a/week08/51_N_Queen.cpp b/week08/51_N_Queen.cpp new file mode 100644 index 00000000..1ba96384 --- /dev/null +++ b/week08/51_N_Queen.cpp @@ -0,0 +1,99 @@ +// +// Created by lewang on 12/12/20. +// +//用数组进行判断 +//注意左上到右下的斜线满足,行下标与列下标之差相等, ex. (0,0),(3,3) +//左下到右上的斜线满足,行下标和列下标之和相等, ex,(3,0),(1,2) +#include <iostream> +#include <bitset> +#include <vector> +#include <string> + +using namespace std; + +class Solution1 { +public: + vector<vector<string>> solveNQueens(int n) { + //这里一定要初始化不然会出错 + vector<vector<string>> res; + vector<int> mainDiag(2 * n, 0); + vector<int> subDiag(2 * n,0); + vector<int> col(n,0); + vector<string> ans(n,string(n,'.')); + //从第0行开始排放Queen + dfs(0,n,res,ans,col,mainDiag,subDiag); + + return res; + } + +private: + void dfs(int row, int n, vector<vector<string>>& res,vector<string> ans, vector<int> col, vector<int> mainDiag,vector<int> subDiag){ + //terminator + if(row == n){ + res.push_back(ans); + return; + } + //process + for(int i = 0; i < n; i++){ + //不同行不同列不同主副对角线 + if(!col[i] && !mainDiag[row - i + n] && !subDiag[row + i]) { + //这里注意当前行标row,减去 当前的列标col的差值可能是负数,所以需要加上n,这里n相当于方阵的维 + col[i] = mainDiag[row - i + n ] = subDiag[row + i] = 1;//将不能放的位置都设置成1,标记为不能放置 + ans[row][i] = 'Q';//在这个位置放上Q + //drill down + dfs(row+1,n,res,ans,col,mainDiag,subDiag); //深度优先搜索-- 到下一行开始搜索 + //reverse state + col[i] = mainDiag[row - i + n] = subDiag[row + i] = 0;//重置以便下次查找该行合适位置 + ans[row][i] = '.'; + } + + } + + } + +}; + +//用位运算进行加速 + +class Solution2 { +public: + vector<vector<string>> solveNQueens(int n) { + //这里一定要初始化不然会出错 + vector<vector<string>> res; + vector<string> ans(n,string(n,'.')); + //从第0行开始排放Queen + dfs(0,n,res,ans,0,0,0); + + return res; + } + +private: + void dfs(int row, int n, vector<vector<string>>& res,vector<string> ans, int col, int mainDiag,int subDiag){ + if(row == n){ + res.push_back(ans); + return; + } + //process + int bits = (~(col|mainDiag|subDiag))&((1<<n)-1); + for(int i = 0, b = 1; i < n; ++i, b<<=1){ + //这里用了一个额外的int 来标识 在ans中那个位子放Q + int p = bits & -bits; + if(b == p) { + ans[row][i] = 'Q'; + bits = bits & (bits-1); + dfs(row+1,n,res,ans,col|p,(mainDiag|p)<<1,(subDiag|p)>>1); + ans[row][i] = '.'; + } + + } + + } + +}; + + +int main(){ + Solution2 test; + vector<vector<string>> res = test.solveNQueens(4); + return 0; +} \ No newline at end of file diff --git a/week08/52_totalN_Queens.cpp b/week08/52_totalN_Queens.cpp new file mode 100644 index 00000000..36db9408 --- /dev/null +++ b/week08/52_totalN_Queens.cpp @@ -0,0 +1,55 @@ +// +// Created by lewang on 12/12/20. +// +#include<iostream> +#include<bitset> + +using namespace std; + +class Solution { + int count = 0; +public: + int totalNQueens(int n) { + + dfs(n, 0,0,0,0); + return count; + } + + void dfs(int &n, int row, int cols, int pie, int na){ + cout<<"-------------row:"<<row<<"----------"<<endl; + if(row >= n) { + count+=1; + cout<<"count:"<<count<<endl; + return; + } + //bits上1的位置代表可以放置 + int bits = (~(cols|pie|na)) & ((1<<n) - 1); + cout<< "where can put in bits: " << bits << "|" << bitset<4>(bits) << endl; + cout<<"*******************"<<endl; + while(bits){ + int p = bits & -bits;//得到最低位的1 + cout<< "where to put p: " << p << "|" << bitset<4>(p) << endl; + bits = bits & (bits-1); //清零最低位的1 + cout<< "After put P bits: " << bits << "|" << bitset<4>(bits) << endl; + dfs(n,row+1,cols|p, (pie|p)<<1,(na|p)>>1); + + + } + } + +}; +//col|p = 0000|0001 = 0001; +//(pie|p)<<1 = 0010; +//(na|p) >>1 = 0000; +//~(col|pie|na) = ~(0011)=1100 //第一次放在第一列的最右边后0001,下一次只能放第二列的1100 + +int main(){ + Solution test; + int n = 4; + cout<<(1<<n) - 1<<"|"<< bitset<4>((1<<n) - 1)<<endl; + //将x最高位到第n位(含)清零:x & ((1 << n) - 1) + cout<<(1<<n) <<"|"<< bitset<5>((1<<n))<<endl; + int res = test.totalNQueens(4); + cout << res << endl; + return 0; +} diff --git a/week08/56_Merge_Intervals.cpp b/week08/56_Merge_Intervals.cpp new file mode 100644 index 00000000..8add1d55 --- /dev/null +++ b/week08/56_Merge_Intervals.cpp @@ -0,0 +1,26 @@ +// +// Created by lewang on 12/12/20. +// + +class Solution { +public: + vector<vector<int>> merge(vector<vector<int>>& intervals) { + if(intervals.size() == 0) { + return {}; + } + sort(intervals.begin(),intervals.end()); + vector<vector<int>> merged; + for(int i = 0; i < intervals.size(); ++i) { + int l = intervals[i][0],r = intervals[i][1]; + if(!merged.size() || merged.back()[1] < l) { + merged.push_back({l,r}); + } + else{ + merged.back()[1] = max(merged.back()[1],r); + } + } + return merged; + + + } +}; \ No newline at end of file diff --git a/week08/CMakeLists.txt b/week08/CMakeLists.txt new file mode 100644 index 00000000..a623f3a1 --- /dev/null +++ b/week08/CMakeLists.txt @@ -0,0 +1,15 @@ +cmake_minimum_required (VERSION 2.8.11) +project (week08) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ) +#add_executable (move_zeros lc-283_move-zeros.cpp) +#target_link_libraries (move_zeros LINK_PUBLIC week01) + +add_executable (note note.cpp) +add_executable (52_totalN_Queens 52_totalN_Queens.cpp) +add_executable (51_N_Queen 51_N_Queen.cpp) +add_executable (bubble_sort_template bubble_sort_template.cpp) +add_executable (Selection_Sort_template Selection_Sort_template.cpp) +add_executable (Insetion_Sort_template Insetion_Sort_template.cpp) +add_executable (493_Reverse_Pair 493_Reverse_Pair.cpp) +add_executable(242_isAnagram 242_isAnagram.cpp) diff --git a/week08/Insetion_Sort_template.cpp b/week08/Insetion_Sort_template.cpp new file mode 100644 index 00000000..126ff65d --- /dev/null +++ b/week08/Insetion_Sort_template.cpp @@ -0,0 +1,45 @@ +// +// Created by lewang on 12/13/20. +// + +#include <iostream> +#include <vector> +#include <random> + +using namespace std; + +void insertionSort(vector<int> &arr){ + int len = (int)arr.size(); + + int preIndex, curr; + + for(int i = 1; i < len; i++) { + preIndex = i - 1; + curr = arr[i]; + while(preIndex >= 0 && arr[preIndex] > curr) { + arr[preIndex + 1] = arr[preIndex]; + preIndex--; + } + arr[preIndex + 1] = curr; + + } + +} + +int main(){ + random_device a; + uniform_int_distribution<unsigned> u(1,100); + vector<int> arr; + for(int i = 0; i < 10; i++) { + int x = u(a); + cout<<x<<" "; + arr.push_back(x); + } + cout<<endl; + insertionSort(arr); + for(auto a: arr){ + cout << a << " "; + } + + return 0; +} \ No newline at end of file diff --git a/week08/Merge_Sort_template.cpp b/week08/Merge_Sort_template.cpp new file mode 100644 index 00000000..a68ccf50 --- /dev/null +++ b/week08/Merge_Sort_template.cpp @@ -0,0 +1,38 @@ +// +// Created by lewang on 12/12/20. +// + +public static void mergeSort(vector<int> array, int left, int right) { + if(right <= left) return; + int mid = (left + right) >> 1; + + mergeSort(array,left,mid); + mergeSort(array, mid + 1, right); + merge(array, left, mid ,right); +} +//归并模板!!!一定记住 +//left ----mid ---- right ,都是有序的两段 +public static void merge(vector<int> arr, int left, int mid, int right) { + //额外的内存空间 + vector<int> temp = new int[right - left +1];//中间数组?? 只是一个数??; + int i = left; //左边有序数组的起始位 + int j = mid + 1;//右边有序数组的起始位 + int k =0;//k是已经填入数组temp中的个数 + + while(i <= mid && j <= right) { + temp[k++] = arr[i] <= arr[j] ? arr[i++] : arr[j++]; + } + + + while(i <= mid) temp[k++] = arr[i++]; + while (j <= right) temp[k++] = arr[j++]; + //把temp中的元素拷贝到原来需要排序的数组array中去 + for(int p = 0; p < temp.size(); p++) { + arr[left + p] = temp[p]; + } + //也可以用system.arraycopy(a,start1,b,start2,length) 不知道c++是否有对应的函数,到时候用memcpy试试 + //memcpy( dst, a, a_len ); + //memcpy( dst+a_len, b, b_len ); + + +} \ No newline at end of file diff --git a/week08/NOTE.md b/week08/NOTE.md index 50de3041..124a76b5 100644 --- a/week08/NOTE.md +++ b/week08/NOTE.md @@ -1 +1,239 @@ -学习笔记 \ No newline at end of file +学习笔记 + + +# 位运算 +十进制转二进制 + +位运算: +- 与 & +- 或 | +- 非 ~ +- 异或 ^ +- 左移 << +- 右移 >> + + +异或的一些操作 +x ^ 0 =x +x ^ 1s = ~x //注意 1s = ~0 +x ^ (~x) = 1s +x ^ x = 0 +c = a ^ b => a ^ c = b, b ^ c = a //异或操作来 交换两个数 +a ^b ^ c = a ^ (b ^ c) = (a ^ b) ^c //满足结合律 + +指定位置的位运算: +1.将x最右边的n位清零:x&(~0<<n) +2.获取x的第n位值(0或者1): (x>>n)&1 +3.获取x的第n位值的幂值: x&(1<<n) +4.仅将第n位设为1: x|(1<<n) +5.仅将第n为设为0: x & (~(1<<n)) +6.将x最高位到第n位(含)清零:x & ((1 << n) - 1) + +实战位运算要点 +- 判断奇偶 +x % 2 == 1 --> (x & 1) == 1 +x % 2 == 0 --> (x & 1) == 0 +- 除以二 +x>>1 --> x/2 +mid = (left + right) / 2 --> mid = (left + right) >> 1 +- 清零最低位的1 +x = x & (x-1) + +- 得到最低位的1 +x & -x + +- x & ~x = 0 +x & -x + +位运算实战例题 +## 实战题目 / 课后作业 + +- [位 1 的个数](https://leetcode-cn.com/problems/number-of-1-bits/)(Facebook、苹果在半年内面试中考过) +- [2 的幂](https://leetcode-cn.com/problems/power-of-two/)(谷歌、亚马逊、苹果在半年内面试中考过) +- [颠倒二进制位](https://leetcode-cn.com/problems/reverse-bits/)(苹果在半年内面试中考过) +- [N 皇后](https://leetcode-cn.com/problems/n-queens/description/)(字节跳动、亚马逊、百度在半年内面试中考过) +- [N 皇后 II ](https://leetcode-cn.com/problems/n-queens-ii/description/)(亚马逊在半年内面试中考过) +- [比特位计数](https://leetcode-cn.com/problems/counting-bits/description/)(字节跳动、Facebook、MathWorks 在半年内面试中考过) + + +# 布隆过滤器 +Bloom filter +和hash map 对比 + +hashTable + 拉链存储重复元素,没有误差,一一对应 +大,存储所有目标,以及目标对应的所有值 +只需要查询表中有还是没有这个目标--> bloom filter +**布隆过滤器** +一个很长的**二进制向量**和一系列随机映射函数.布隆过滤器可以用于检索一个元素是否在一个集合中 +优点是空间效率和查询时间都**远远**超过一般的算法 +缺点是有一定的误识别率和删除困难 + +布隆过滤器只是试试放在外面当一个很快的判断来使用,节省后序访问数据库的时间, + +案例 +1. 比特币网络 +2. 分布式系统(Map_reduce) -- Hadoop ,search engine +3. Redis 缓存 +4. 垃圾邮箱\评论等的过滤. + + + +## 参考链接 + +- [布隆过滤器的原理和实现](https://www.cnblogs.com/cpselvis/p/6265825.html) +- [使用布隆过滤器解决缓存击穿、垃圾邮件识别、集合判重](https://blog.csdn.net/tianyaleixiaowu/article/details/74721877) +- [布隆过滤器 Python 代码示例](https://shimo.im/docs/UITYMj1eK88JCJTH) +- [布隆过滤器 Python 实现示例](https://www.geeksforgeeks.org/bloom-filters-introduction-and-python-implementation/) +- [高性能布隆过滤器 Python 实现示例](https://github.com/jhgg/pybloof) +- [布隆过滤器 Java 实现示例 1](https://github.com/lovasoa/bloomfilter/blob/master/src/main/java/BloomFilter.java) +- [布隆过滤器 Java 实现示例 2](https://github.com/Baqend/Orestes-Bloomfilter) + + + +# LRUCache +Cache 缓存 +1. 记忆 +2. 钱包- 储物柜 +3. 代码模块 + +CPU socket + +- 两个要素: 大小\ 替换策略(决定哪些放在更优先的cache, 因为我们能存(人能记)的东西优先) +- Hash Table + Double LinkedList +- O(1) 查询,修改,更新 + +LRU - Least Recently Used +LFU - Least Frequently Used + + +## 参考链接 + +- [Understanding the Meltdown exploit](https://www.sqlpassion.at/archive/2018/01/06/understanding-the-meltdown-exploit-in-my-own-simple-words/) +- [替换算法总揽](https://en.wikipedia.org/wiki/Cache_replacement_policies) +- [LRU Cache Python 代码示例](https://shimo.im/docs/CoyPAyXooGcDuLQo) + +## 实战题目 / 课后作业 + +- [LRU 缓存机制](https://leetcode-cn.com/problems/lru-cache/#/)(亚马逊、字节跳动、Facebook、微软在半年内面试中常考) + + +# 排序算法 - 初级排序和高级排序 +1. 比较类排序: + 通过比较来决定元素间的相对次序,由于其时间复杂度不能突破O(nlogn), + 因此也被称为非线性时间比较类排序 +2. 非比较类排序: + 不通过比较来决定元素间的相对次序,他可以突破基于比较排序时的时间下界, + 以线性时间运行,因此也被称为线性时间非比较类排序 + +## 初级排序 +1. 选择排序(Selection Sort) + 每次找最小值,然后放到待排序数组的起始位置 +2. 插入排序(Insertion Sort) + 从前到后逐步构建有序序列;对于未排序数据,在已经排序序列中从后向前 + 扫描,找到相应位置并插入 +3. 冒泡排序(Bubble Sort) + 嵌套循环,每次查看相邻的元素如果逆序,则交换 + +## 高级排序 (O(N*logN)) +1. 快速排序(Quick Sort) + 数组取标杆pivot,将小元素放在pivot的左边,大元素放右侧,然后一次对右边和右边的子数组继续快排; + 以达到整个序列有序 +**注意** 正常情况下数组的prepend操作的时间复杂度是O(n),但是可以进行特殊优化到 + O(1).采用的方式申请稍大一些的内存空间,然后在数组最开始预留一部分空间,然后prepend + 操作则是把头下标前移一个位置即可 (主定理证明时间复杂度(O(N*logN))) +2. 归并排序(Merge Sort) -- 分治 + 1.把长度为n的输入序列分成两个长度为n/2的子序列; + 2.对这两个序列分别采用归并排序; + 3.将两个排序好的子序列合并成一个最终的排序序列 + + 归并和快排具有相似性, 但步骤顺序相反 + 归并: 先排序左右子数组,然后合并两个有序子数组 + 快排:先调配出左右子数组,然后对于左右子数组进行排序 + +3. 堆排序 (Heap Sort) -- 堆插入O(logN),取最大/小值O(1) + 1.数组元素一次建立小顶堆 + 2.依次取堆顶元素,并删除 + +## 特殊排序 +1. 计数排序(Counting Sort) + 计数排序奥球输入的数据必须是有确定范围的整数. + 将输入的数据值转化为键存储在额外开辟的数组空间中,然后依次把计数大于1的 + 填充回原数组 +2. 桶排序(Bucket Sort) + 桶排序假设输入数据服从均匀分布,将数据分到 + 有限数量的桶,每个桶分别排序,(有可能再其使用别的排序 + 算法或是以递归的方式继续使用桶排序进行排序). +3. 基数排序(Radix Sort) + 基数排序按照地位优先排序,然后手机;再按照高位排序,然后再收集;依次类推, + 直到最高位.有时候有些属性是有优先级顺序的,先按照优先级排序,再按照 + 高优先级排序. + + + + +## 参考链接 + +- [十大经典排序算法](https://www.cnblogs.com/onepixel/p/7674659.html) +- [快速排序代码示例](https://shimo.im/docs/TX9bDbSC7C0CR5XO) +- [归并排序代码示例](https://shimo.im/docs/sDXxjjiKf3gLVVAU) +- [堆排序代码示例](https://shimo.im/docs/M2xfacKvwzAykhz6) + + +# 特殊排序&实战 + +## 参考链接 + +- [十大经典排序算法](https://www.cnblogs.com/onepixel/p/7674659.html) +- [9 种经典排序算法可视化动画](https://www.bilibili.com/video/av25136272) +- [6 分钟看完 15 种排序算法动画展示](https://www.bilibili.com/video/av63851336) + +## 实战题目 / 课后作业 + +- [数组的相对排序](https://leetcode-cn.com/problems/relative-sort-array/)(谷歌在半年内面试中考过) +- [有效的字母异位词](https://leetcode-cn.com/problems/valid-anagram/)(Facebook、亚马逊、谷歌在半年内面试中考过) +- [力扣排行榜](https://leetcode-cn.com/problems/design-a-leaderboard/)(此题选做;Bloomberg 在半年内面试中考过) +- [合并区间](https://leetcode-cn.com/problems/merge-intervals/)(Facebook、字节跳动、亚马逊在半年内面试中常考) +- [翻转对](https://leetcode-cn.com/problems/reverse-pairs/)(字节跳动在半年内面试中考过) + + + + + +# 本周作业 + +简单 + +- [位 1 的个数](https://leetcode-cn.com/problems/number-of-1-bits/) +(Facebook、苹果在半年内面试中考过)√ +- [2 的幂](https://leetcode-cn.com/problems/power-of-two/) +(谷歌、亚马逊、苹果在半年内面试中考过)√ +- [颠倒二进制位](https://leetcode-cn.com/problems/reverse-bits/)(苹果在半年内面试中考过) +- 用自己熟悉的编程语言,手写各种初级排序代码,提交到学习总结中。√ +- [数组的相对排序](https://leetcode-cn.com/problems/relative-sort-array/)(谷歌在半年内面试中考过) +- [有效的字母异位词](https://leetcode-cn.com/problems/valid-anagram/) +(Facebook、亚马逊、谷歌在半年内面试中考过)√ + +中等 + +- [LRU 缓存机制](https://leetcode-cn.com/problems/lru-cache/#/) +(亚马逊、字节跳动、Facebook、微软在半年内面试中常考)√ +- [力扣排行榜](https://leetcode-cn.com/problems/design-a-leaderboard/)(Bloomberg 在半年内面试中考过) +- [合并区间](https://leetcode-cn.com/problems/merge-intervals/) +(Facebook、字节跳动、亚马逊在半年内面试中常考)√ + +困难 + +- [N 皇后](https://leetcode-cn.com/problems/n-queens/description/) +(字节跳动、亚马逊、百度在半年内面试中考过)√ +- [N 皇后 II ](https://leetcode-cn.com/problems/n-queens-ii/description/) +(亚马逊在半年内面试中考过)√ +- [翻转对](https://leetcode-cn.com/problems/reverse-pairs/) +(字节跳动在半年内面试中考过)√ + +## 下周预习题目: + +- [不同路径](http://leetcode-cn.com/problems/unique-paths/) +- [最小路径和](http://leetcode-cn.com/problems/minimum-path-sum/) + + + diff --git a/week08/Selection_Sort_template.cpp b/week08/Selection_Sort_template.cpp new file mode 100644 index 00000000..99fff307 --- /dev/null +++ b/week08/Selection_Sort_template.cpp @@ -0,0 +1,47 @@ +// +// Created by lewang on 12/13/20. +// +#include <iostream> +#include <vector> +#include <random> + +using namespace std; + +void SelectionSort(vector<int>& arr) { + int len = arr.size(); + int minIndex, temp; + for(int i = 0; i < len - 1; i++) { + minIndex = i; + int j=0; + for(j = i +1; j < len; j++){ + if(arr[j]<arr[minIndex]) { + minIndex = j; + } + } + temp = arr[i]; + arr[i] = arr[minIndex]; + arr[minIndex] =temp; + + } +} + +int main() { + default_random_engine e; + uniform_int_distribution<int> u(1,100); + random_device a; + vector<int> arr; + for(int i = 0; i < 10; i++) { + int x = u(a); + cout<<x<<" "; + arr.push_back(x); + } + cout<<endl; + + + SelectionSort(arr); + for(auto a: arr){ + cout<<a<<" "; + } + + return 0; +} \ No newline at end of file diff --git a/week08/bubble_sort_template.cpp b/week08/bubble_sort_template.cpp new file mode 100644 index 00000000..4dd8b502 --- /dev/null +++ b/week08/bubble_sort_template.cpp @@ -0,0 +1,54 @@ +// +// Created by lewang on 12/13/20. +// + +#include <iostream> +#include <vector> +#include <random> //可以产生更好的随机数 + + +#define random(x) rand()%(x) //产生的是伪随机数 +using namespace std; +//随机数产生范围 +//[a,b) (rand()%(b-a)) + a +//[a,b] (rand()%(b-a+1)) + a +//(a,b] (rand()%(b-a)) + a + 1 + +void BubbleSort(vector<int> &arr) { + int len = (int)arr.size(); + + for(int i = 0; i < len; i++) { + for(int j = 0; j < len -1- i; j++) { + if(arr[j] > arr[j+1]) { + int temp = arr[j+1]; + arr[j+1] = arr[j]; + arr[j] = temp; + } + } + } + + //return arr; +} + +int main(){ + srand((unsigned)time(0)); //产生随机种子,让rand每次生成的数不一样. ( 把0 换成null也可以) + vector<int> array; + default_random_engine e; + uniform_int_distribution<unsigned> u(0,100); + for(int i = 0; i < 10 ; i++) { + cout<<e() <<"|"; + cout<<u(e)<<" "; + } + cout<<endl; + for (int i = 0; i < 10; i++){ + int x = random(100); + array.push_back(x); + } + + BubbleSort(array); + for(auto a:array){ + cout<<a<<" "; + } + + return 0; +} diff --git a/week08/cmake-build-debug/493_Reverse_Pair b/week08/cmake-build-debug/493_Reverse_Pair new file mode 100755 index 0000000000000000000000000000000000000000..bcaa63e98c47ead86bb879b7c53572c733336825 GIT binary patch literal 130832 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 literal 0 HcmV?d00001 diff --git a/week08/cmake-build-debug/51_N_Queen b/week08/cmake-build-debug/51_N_Queen new file mode 100755 index 0000000000000000000000000000000000000000..5ff2f57c7bea0a50e4404c307459c474ae6f2148 GIT binary patch literal 181504 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 literal 0 HcmV?d00001 diff --git a/week08/cmake-build-debug/52_totalN_Queens b/week08/cmake-build-debug/52_totalN_Queens new file mode 100755 index 0000000000000000000000000000000000000000..bffa7289e060d70b3a3dba084fc3286314c583bd GIT binary patch literal 82504 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�?c71a8d8=+l*h1WLK_#2=_YnYJ7lvX*R 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 literal 0 HcmV?d00001 diff --git a/week08/cmake-build-debug/CMakeCache.txt b/week08/cmake-build-debug/CMakeCache.txt new file mode 100644 index 00000000..32bed87f --- /dev/null +++ b/week08/cmake-build-debug/CMakeCache.txt @@ -0,0 +1,380 @@ +# This is the CMakeCache file. +# For build in directory: /home/lewang/algorithm018/week08/cmake-build-debug +# It was generated by CMake: /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Debug + +//Id string of the compiler for the CodeBlocks IDE. Automatically +// detected when left empty +CMAKE_CODEBLOCKS_COMPILER_ID:STRING= + +//The CodeBlocks executable +CMAKE_CODEBLOCKS_EXECUTABLE:FILEPATH=CMAKE_CODEBLOCKS_EXECUTABLE-NOTFOUND + +//Additional command line arguments when CodeBlocks invokes make. +// Enter e.g. -j<some_number> to get parallel builds +CMAKE_CODEBLOCKS_MAKE_ARGUMENTS:STRING=-j12 + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-5 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-5 + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//C compiler +CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-5 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-5 + +//Flags used by the C compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the C compiler during DEBUG builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the C compiler during RELEASE builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=week08 + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Path to a program. +ProcessorCount_cmd_getconf:FILEPATH=/usr/bin/getconf + +//Path to a program. +ProcessorCount_cmd_sysctl:FILEPATH=/sbin/sysctl + +//Value Computed by CMake +week08_BINARY_DIR:STATIC=/home/lewang/algorithm018/week08/cmake-build-debug + +//Value Computed by CMake +week08_SOURCE_DIR:STATIC=/home/lewang/algorithm018/week08 + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/lewang/algorithm018/week08/cmake-build-debug +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=13 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL=CodeBlocks +//CXX compiler system defined macros +CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570815e+308L);__DBL_MIN__;((double)2.22507385850720138309e-308L);__DBL_EPSILON__;((double)2.22044604925031308085e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1;__STDC__;1;__cplusplus;199711L;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__GNUG__;5;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_WEAK__;1;__DEPRECATED;1;__GXX_RTTI;1;__cpp_rtti;199711;__cpp_binary_literals;201304;__cpp_runtime_arrays;198712;__cpp_threadsafe_static_init;200806;__EXCEPTIONS;1;__cpp_exceptions;199711;__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__GLIBCXX_TYPE_INT_N_0;__int128;__GLIBCXX_BITSIZE_INT_N_0;128;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;double(1.79769313486231570815e+308L);__DBL_MIN__;double(2.22507385850720138309e-308L);__DBL_EPSILON__;double(2.22044604925031308085e-16L);__DBL_DENORM_MIN__;double(4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_GNU_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_GNU_SOURCE;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1 +//CXX compiler system include directories +CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/include/c++/5;/usr/include/x86_64-linux-gnu/c++/5;/usr/include/c++/5/backward;/usr/lib/gcc/x86_64-linux-gnu/5/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include +//C compiler system defined macros +CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570815e+308L);__DBL_MIN__;((double)2.22507385850720138309e-308L);__DBL_EPSILON__;((double)2.22044604925031308085e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1 +//C compiler system include directories +CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/lib/gcc/x86_64-linux-gnu/5/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/lewang/algorithm018/week08 +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: ProcessorCount_cmd_getconf +ProcessorCount_cmd_getconf-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: ProcessorCount_cmd_sysctl +ProcessorCount_cmd_sysctl-ADVANCED:INTERNAL=1 + diff --git a/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/DependInfo.cmake b/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/DependInfo.cmake new file mode 100644 index 00000000..652ad7c5 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week08/242_isAnagram.cpp" "/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/build.make b/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/build.make new file mode 100644 index 00000000..73687c50 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week08 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week08/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/242_isAnagram.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/242_isAnagram.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/242_isAnagram.dir/flags.make + +CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o: CMakeFiles/242_isAnagram.dir/flags.make +CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o: ../242_isAnagram.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o -c /home/lewang/algorithm018/week08/242_isAnagram.cpp + +CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week08/242_isAnagram.cpp > CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.i + +CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week08/242_isAnagram.cpp -o CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.s + +# Object files for target 242_isAnagram +242_isAnagram_OBJECTS = \ +"CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o" + +# External object files for target 242_isAnagram +242_isAnagram_EXTERNAL_OBJECTS = + +242_isAnagram: CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o +242_isAnagram: CMakeFiles/242_isAnagram.dir/build.make +242_isAnagram: CMakeFiles/242_isAnagram.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 242_isAnagram" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/242_isAnagram.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/242_isAnagram.dir/build: 242_isAnagram + +.PHONY : CMakeFiles/242_isAnagram.dir/build + +CMakeFiles/242_isAnagram.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/242_isAnagram.dir/cmake_clean.cmake +.PHONY : CMakeFiles/242_isAnagram.dir/clean + +CMakeFiles/242_isAnagram.dir/depend: + cd /home/lewang/algorithm018/week08/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week08 /home/lewang/algorithm018/week08 /home/lewang/algorithm018/week08/cmake-build-debug /home/lewang/algorithm018/week08/cmake-build-debug /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/242_isAnagram.dir/depend + diff --git a/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/cmake_clean.cmake b/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/cmake_clean.cmake new file mode 100644 index 00000000..d228a089 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o" + "242_isAnagram.pdb" + "242_isAnagram" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/242_isAnagram.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/depend.make b/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/depend.make new file mode 100644 index 00000000..e9a76e7d --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/depend.make @@ -0,0 +1,2 @@ +# Empty dependencies file for 242_isAnagram. +# This may be replaced when dependencies are built. diff --git a/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/flags.make b/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/link.txt b/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/link.txt new file mode 100644 index 00000000..95fd2043 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o -o 242_isAnagram diff --git a/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/progress.make b/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week08/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake b/week08/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake new file mode 100755 index 00000000..17a89374 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake @@ -0,0 +1,73 @@ +set(CMAKE_C_COMPILER "/usr/bin/cc") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "GNU") +set(CMAKE_C_COMPILER_VERSION "5.5.0") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-5") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-5") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCC 1) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/week08/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake b/week08/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake new file mode 100755 index 00000000..51738d56 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake @@ -0,0 +1,76 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "5.5.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "98") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-5") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-5") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/week08/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin b/week08/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..ce01f2ca7e5e788ef02f6a2691b09499318eb750 GIT binary patch literal 8464 zcmeHMZ){W76~B%X;y_{>1~dg$UKv%xw!AtS2^lTJj^pq`lhB2vWuoEnVmpbcV^jN? z21Hk+v<Q!;pzXuDRYLo)N^C<DAEqg+)07m{Rr{xO(>D5NQdWi(IuPkPSjHgUIrrV; zJU>5Fw)P`8$~*V|&YyekedpeH@9}e?_SO=IgHds^uP|)+$_>OX7?byk3J^bQVioZG zEL+7EK)aM<2H$TG;2LFCm?r8HxDzPqHI*2Em97$UM9D*>WrAl%PA@c2qKru#Kt1$z zs){#(O1whUXYqsd5JtUOp*Jh^h>i=#h|>6QZ1~?T>{@9H@URd?SuBrT)FW6Qtl-Te z`iKEDqNMj#&_h4(w0MPJm+0?y^CAiViHhN}hvKom#`O=yBen5ZA~Re&+|*dxxL!^t z<$6ADw2!h|I(v9e_`ZcH&R+^`#E}2QD<{|QnYcQ>@Iru9EPMLxmwv5pKpuu5>L5Mt zJ>+8dFJI&;Ev-6I%KV7ot6mKM&7nVD-cu3$(`y&Ld9ZThw-=py^uqW%zrApxzVF>D z=bzrOYR_}uJ$PpHLwDuU_fL#fmyP}X4_DowW?OJxB^%BPz?RtH&jKdd;6J|&K6x8_ z5#VcV?8E@`vU`}<D;03}3Y=N+A91{zRa@{B;1bxe%D)KsV&-8!5pNVvuK>P;Rk70| zprg>nvJd_dr~Tmz9A)e@P%o=4^7BC<zgyS|3Het!zL3pWg7%9-UK0LL%<KRh{qzfb znXuEy<=t$pzy-`0#Ag`8v5~22cvw^WV+k!DI}n8?vedM$rF3;jizNsNr!y!OV`^J> zhZ>2dq64wC9!+(31mnp>v|H<oM_DY<pH$OeC)uw?_Ub97MkAW8fej>vRcH(hB@?0x z73^(;dL))mGwEo=+#U3$gM|cwed#o*Z{4SMiOz#@EuD_04WDd1+S1<E98~M&dbxoQ zo@T5B*5B>^aBborzB8j_R>WWiOV|gZP5UD4XFgGx7W*IJGq@0;xJ0}WPVGsL#QFG| zu|F#3O*nasyeSiodjOSb6HYOTycrX2{w~a#aC3+$BbQyu(Xxv!i779P>m|8KW#pXe zEOo<j4L<}{?txSA^sM$n?e|dYKTZO5SK6{~?NYMuD<glKd91sAwCo)imNHru=44YP zkleDbgU&xat6Pw>=?BnIM$3@&DC=gG>_uf{*1c~TxY3C$aHFC(H`UMOd(UF8{jz8E z^Sn#Yk8%BmK0|*F^(W?>N_Iw>nBJ^7-ca6})2qSQ{lZwKVa(9C+B>xAUJzrM2bGac z|0;)C57^Tym7|+(Kx?`xm&;8n@aTP`Yz6?wN5%e}DFdfRHnYs4OS?eQ@EiL74#?wR zE}_ZXWbY+EaIv0!_Og=AO#L!+6Nhv(bXf^c!h}pf!}HV963;Kj9if|f_;m|>v-j-$ zbQ}*n5qP{U`{zJU0OtOI`@oeRWwaLQ_CWSlTlRYUI+$K~#}l`l)1J9pPI=*qF4etD z^Vy!g(Vo5DlD!(pEqzZJIqOiq{FlrJ7y~<d15XBe1G@t1+2ivaegvVx?TILH<iBD# z7RK5-TeodA?FT!3O}%+s>x=D#^A!S)mClFp+p+-uPu|MqjsP74iu>l9KyiPY1$W;B zit|5>e4svvCoK5A#Ns&6#T>(4$I8lb*KtR=7x7i_KL|ExFGe|gdB)ZX`D&2oYv1i{ zbysioEPBRuh;3f+@aMm@b`9ybU<Kr8O=A=LdJ_I?z*oMP2i)GnCBdo%C4TV8IL{me z{tn<rfwE?|_gG1@yZR+($SsYQHoI$HEK}UR!wVF5(@1%T+n;hb1>C-XyQbMKfgH#; zyIp)=ItS{9z>ax;K$CaN-5Iz$19vt9^xdZKG--)#CI3yX6bw3#iR(`OTt(MEIv1=I z^0YVL`4|hG4{)ErLi}rUxg@q<7K@p_)#pnQHTFfMvw|<KaqK#RQ1E<=rP?5j&VQoG z?-E!a6W@JtEMe8S;X)xl&Kpg*zZ!+?-6z^4_n(~MFU%8%U>oB8&kDz3Yvyg5#~IQ7 zo#6jlw9RK2(Z#1i=>GYs7y~18UfU83Zj@?z`Z5VUBQ?kkvahzTKEs=J>kL4u_tkBv z^VRu2u5Twq7v1a4vQGGh(tWrPcQV~(vv<Ock>aLMzAPUvh4=zSaaD+yGkQOTxQo$y zEyOGG@l%Kw-&>IHgedh=;F%PhtddE#`20P}Bo20L?lau}{5`Eu-kZ-86yl57NeXlm z!wEMyTE`|B`u$9P{TAX&*^D^%7vjqxFCv*CUU#zP`E_V!I&JQs$amV@8x5Rxop~#` z-b&erxp~B>;r``-Q;*e8v`_-~)!ml)$NdZO?^$qJ;MV;T&q5B9pS13`bG&%o4hTE6 z|3Z_O!|-(2%>S!^+l}iCm-nz8;yt>#6|`Y5|2mgn%udk;D&!|QUOYd@w(IvjuD7Hp z9<FdZ_vH5rE(VVq950RsC!eU|cw5f#;<#N0xWgvj(ZKQIxOx<D%tu)B1v>$k$T<@| z&GF(q$TNW3<rj_sZkK=Q0ep$gIz7g5Q-`AZV`0ade|ZgXsaTx-3UIr;%-ew5<z=S9 z2IgO^d7qyMd7p@Lx+7cy+%8{pO~_mGH8%ja^V1FcwH;mq_!^sWUEua@_RnxiPwScf zemM-ekgdTkwY_b7x2m%FJdCOjsbS2-KsH2;B-Md<vQLYv5j~kot6FB5g_A>j<54{t zkvB9pZm<{P86H(jrL_H!chOV(S$|3!imH*!(9nKRF|}08&J>6SJG7^w!60-Ki$_y| z<~DGaCxqal2fD3YfsT+G>TChGjWJNYz!D~VBI%?$s3jthQBqsJ)*0w%3j%5q<LN1Y zAU~>x6k%Fv=>iDyQPjzn_HE69c6D28>-JE$+8t<a4`J6l!SxB#S(YT3-*3({eUfaK zDbZzQ-~Oj;S79=*&?_dV_Ydh>A5cAI&_Sxj5|GK;%j85-kIL}oYISWuv<4Cxxi1rg zRCX-FWNZy;=|Lt(_9wueK_St{Is2libS#-DXsEzTMdKPOFqx<H<h^m7;X@usLPd`b z!;|M0<y4aA3+3pbh_%58=u^wkH-gU4p!%LLh(Qn9P%I1;%sI-CGGsDD{SZX5&070^ zAp9=E63u5h==?^M&h=y)WzFSt(7>$*mOn3a&Lb)boQOF7Q<K#}&8$!7L85E(l19a< zkKgI*aQ3GD>D)+kx6r5i2c7o?%sQchcMZ~?6&0dWV!(K<z$)p}J>qe|@XSy8bPgp- z_Zbl3#X5hx0L8ln>C<_YXpPV#|4EMMQ^3c&3bpB6OH>m2R{sUe@Z5rPO8RtvB1-os z>fbv4=Rp_8B(7cg{65_);mcc4tncp|z%}dBc{)!EwCD5JJeLK$V-|f$eD{cwzhs8m zL|?Y((|42TKP)ed`XzfOEc*1j1X1g8+&cd63w@e@`dx-7{@!6O*8Wcc6I~>I>+gt< zn3bV!?f+*MeY!soby>zw^G0URK?TpKbnm5m#*|1XSmmir6wj$1lRo7WrteT6&#mYp z^-uSKnUB#26<+=dPmEpCr~3{4{yQ$lPw`ED(|h<9=$iYde8d<I3W{Qo{FC&F;_okJ z{rq`RbU^)(0n(%P3{(&!|LJ!_uTZqgi{X$uy9PDHe0jvEkbbQNCw()e*fWdzMgNMJ qIQ-6FALI}1pSV8AceDPH<wmQ;Vx0OV*~Pcf|BdKijsyj@>i-w;HL=40 literal 0 HcmV?d00001 diff --git a/week08/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin b/week08/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..40ee06d7308469781ca42b235f55a21909e5cb67 GIT binary patch literal 8472 zcmeHMZ*Wvs6~DWikPRf81)+_AvPCLT&FdzT5NVO!Y&N`L5=uxaO2eC%-A%G|vm1Bc zVuENhla^siW0|UBtqy+Cj*cCtpByaH8Vo~m9LLm-7AVfdB2K7ax3*<sg{<e?chBbS z+m~q>>o;y@-?{g9{@io#yZ63xPaX-jwb*SoM#aItz<8@nM|^^D?&BoEn2$BGa(I4% zt!9e=E`gs<u+4N<m?r8Jat@%V*J#%PGhHp@h?0j$O9ju0j4swuqKtVsfO_cbbR};B z_3#Q&ugMS6Lm2gDh2E^tBRU}*BTD1LvEi>v*frB;;9(((vREFttc9`OSk9Y8^nM*? zL`iQK=%Jq<wz!30r|55?dGQGUiHhN}dt=ewhE4az!ZopIJUv`9+}Kdlut`cKq&hxs zw2!jeJGyyK_`ZcH&R-5~#E^gWg_G_xV^2K)?BYMZ{D-wa3%vA$;O~%!OAvLC9&?X6 z*<H)aoh2oeM@pCvF?`ia;nx)W)7Aaufj^(T^wgn>E#F)6+!rrRT=@N^<8{5SUpx2J zJ*)RW^30)Mjlb=xSpLTGf4usZ3se>?IIkWH?n=OxS>Q3iJQn!R7r=kL0KNq9wH9{v z0On?QGPm1Pz*Pj!O!zY#uV&RITm{?%cFgi$2Ye~3Vz8lkq4o4Qw3e|-2D8pfL?;X> z;{2sR{WAjp5l}a)F7k7|koO8ZK_UMgjxT0sO^f!kLOv_xY0Wfn+{NCd4JPa`Scf58 zb`4BXLc^-k7mcg2=)njyk)@<GHK{3sYBWwrD3wO3C{tRy+Ldr58R?Ivv`Dh6JrGO8 zBVB55474L*RZ~F)iEacM{ey|Pu&99gPN;{YaV4FKgpJn0xCR#D2==B@q`u>T(kc21 z#MD$OlG0tUbYOd1Yg0g}lj@{;eW)}OcGy?ee<-JO@LlL7y)p`K*3Qn0Hl26*X%v+i zajp?Qfg22pQ>-JxsXbNY;e333HeS;o=L|S`jGSo$j(eNRi~*;$hrFx-H=g&i2Hd!G z<gu$x`DkfnxrfP*O=$MqlstCYImvSM7n~lJyZa(MtJe6SW(SeJW7L1`wbsll`{c|U z^4Q<94|KJSmtKJ3$m5kEPPSG6$*uSWXun&vrWrX~&qG5VFGbQVZ=97gm*ufp*MSw# z{Wp;X-Iw>|ru(>j&m{KRCsnO^ly?dG-{<=EPwDz|sDEnCA!oAkshMrE?Tq}&oK_9S zb_rt@x-nhfY;SaHD~Pf5dU<T?daQMWJ*`4My7eAt%~a-cxfvNAJ!eWi0NCCs_UB3| zI6bzFrI%dU2a>wq(Eo4C^ub&~lewv$D?Z?2J@bvLawa|fa_|NY>1gn(9GZd&IR%ZX zUzXUbUYf84Z{*?MnBW^dlk?MY%>O0-gRPm@{M~+-`@1{9m2P>w2I+2p=4NZ=dfP^r zUU;{sZaQY}oXh3p$F6Cf+Sh45+cNLBWv(}8-ty;`UzEotZSv>;l7184{oWq`L;fEB zKEE<~Y`(*HCK(JC?D5rsYuC6+8Efrm*|{YJ=SQMX2@h$>z23$i93{uq-soP4mk_Y6 za@>dC3S5Ify_w4$0eS-H^FYr6#dCWW+&v2v=YIzIK)tY@u;BL(i|t@1vkkj#t18Nz z$82S8#8<;_0Bq3NigMQSjI9&$)gaIJyvyC<s@_qx<ZI4Rwr%Bo_k3>MTGDUE3dlK; zih_MT1iua7D?gk4F85)3pmLGj2OjD1$syqH0Y0AntjXnm(%$5%{+1)?@{E@>xi&me zD!aUg7s;;1v9flTFX?LZyS#qah9;K><Uqd3<>cqlX;2>pJB2fjMsJtfGjMwb{x35i zHamUKsSj}s<-gq(f<f_^xbEcRExP_u{IE*M(^-P?F&2s=@La({{P*T^32Z+tHa~sS zCrS|2&rzhaf-kOd>@tE-Fh0gotrNCFP$CploDlJW2wzxMbVPof6AI;mlD$ugHp%@b zr~3=@#34Agxc^ha9vtPoP4k!)?Pmr5-=a-^k)IzGrTgbcWsl;z?Sa4+&xY>abX-e& z>ZN+gTT@$?=FQrTI^e1E)^4u#)_OmvZwIU{y4M?J9q`Si`*0!dV4B6p!2vf$S~rFA zrTO(zh%aKat_txoM(?K(cQSgfg?M>>{S@NG_ZH+kV3kfAgHoa7U==KDiO=7o3hi6m zbGZHads?BqJD(>g#Fw&RTIdFb18#7%j}0*R|FQi3EyS0zthgT(;wvC8;xR(J?qGK? z+J{D_!{Yvle22xoQOD`jnYV)bt%SXun@98-o?kYIlFWXh1v}hVy>uW5MLfR{A2Q*R zz|H3+#!fbapS16HbG&%o4hlQ@0}$F+4#Ur8G5<dS+-h7ea``Ie7VnYHy;lXkLEtWE zV_9f^ra5mZJ46R73PbrP{H*2;c~<_sj|}ji&UxO1#}eq+2Je^75yGoEUc653;uBcB z4mWYUcs*|y_RV>a-5f7oZ&AQ8Phrj@i~#N-=M3~kju+=gz6-cj{v`$YGFH4#f5>rz zVNpFP?3nW}X94#Vi?i1Nx5~@>9dN6>%p$-s|6<PjoD%X(taG|kTo>}@`Lx6Ni}ua= znliwx{9LsFUJv+Mi*aSSKNja_D5<5ibYGtof~3igK&R5yy1PqJ*nECQ(FT<eW@sR7 zqJ$Gle=O0f#+0y@NTw7uJ<LLh!J$}0i-e`k4Go*Eg?Q#iQIkn^1QIk_a)k9I)xn4o zP7e-_fQq4|U>c`DG|;X-90}~%6M&AQu}IS2)GCFBhM4k|w%Uehyf2{`ZjOjHauBYK zV7aB!-yT$g9nCN(eS}mm=m&E~;Z#ByP~&0DLp6W7!{6Q-0MsDHlUe{l_EZVV!nEAn z2@qtlsFUq&JDdD%%FdRS-N7!U%iq)%#IAW-?ADTCrc9d8XUtChFF7(pdQ4Bz-BOOM zFymL~6_ZjUgPPh4R7>h~fNIe=r2B@L6i;Xo30`82ruK_ge>^SqrlXM8j)s|ptpPPP zz@+d<9PH^-OX{2hkz^{Gh!->z;3Xq56&0Ao6M@oDOk?<v`V&ymBE#_H2}miK;8{i~ zG9VV-Kp6C?rR(b}P}iXP{t$>k59(kv1QpCwN|0z|5^RA%Sk@LB?-n8aKEhVbXGbWG zBTDf-nMGM+`4lwp$bn;k7mD|YdIU~HTmz`dYN2M-r?`;ly1b-bG3(>^`Z~nm)IY_K zL^0=qMTG0-&ot`*9^N@fe^yk8;<=3l!#b?ey@Bo%4+4g<Kj~9EO7t@DjKw^E`+$je z4AQ5#mFTC1GWkz(L>~q|-dU(k@hwr0&^P-pV21Gv&ME0<MMp&G9!33|$Nwnk;+W7r z7P?mwg)ePEF~2|j|ASGV;%cHi*JZFkZK6+_^eO%(O8$}wY7>3hq)*>ZqW?0zFzT1= z9XILI|1F4`!*cWZe=PKA{^|cSMDhP2#$xXOIbfoTq;LLz;{8TtsGIwL!K6?32%=8Y z_-WqA>}jZAOiK4(x^GO2#DZC#+C-;77j8RweTp|{KBWFd&_x%if4UcBKR_Q;c=;<l zaqW^m-E-*wz!PHpw7$u2dJo?QU1R@rA3A}9f+FiA|0I2)Zvw}tpN|_w2h<N4AU$el zp@JCsPjQ}GD4ONPa7dlK2Q|dJc|@;}evJtyeIuo{XB72`{$(+7_?^MCp8TQn6ZZ%C eZqz?=hu+#{GEV)H?9v7F&x;P`NKjC-{(k|W1FuW~ literal 0 HcmV?d00001 diff --git a/week08/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake b/week08/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake new file mode 100755 index 00000000..c394a4a4 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-4.15.0-70-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "4.15.0-70-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-4.15.0-70-generic") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "4.15.0-70-generic") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/week08/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c b/week08/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 00000000..bfc6ebbf --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,623 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif +#if defined(__CLASSIC_C__) +/* cv-qualifiers did not exist in K&R C */ +# define const +# define volatile +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__ibmxl__) || (defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800) +# define COMPILER_ID "XL" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__ARMCC_VERSION) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if !defined(__STDC__) +# if (defined(_MSC_VER) && !defined(__clang__)) \ + || (defined(__ibmxl__) || defined(__IBMC__)) +# define C_DIALECT "90" +# else +# define C_DIALECT +# endif +#elif __STDC_VERSION__ >= 201000L +# define C_DIALECT "11" +#elif __STDC_VERSION__ >= 199901L +# define C_DIALECT "99" +#else +# define C_DIALECT "90" +#endif +const char* info_language_dialect_default = + "INFO" ":" "dialect_default[" C_DIALECT "]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/week08/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out b/week08/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out new file mode 100755 index 0000000000000000000000000000000000000000..b6682332a4d6181ed3894fb98c1ca0489587c43f GIT binary patch literal 8616 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 Ih5F_H3$g66L;wH) literal 0 HcmV?d00001 diff --git a/week08/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/week08/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 00000000..b728b632 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,602 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__ibmxl__) || (defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800) +# define COMPILER_ID "XL" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__ARMCC_VERSION) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if defined(_MSC_VER) && defined(_MSVC_LANG) +#define CXX_STD _MSVC_LANG +#else +#define CXX_STD __cplusplus +#endif + +const char* info_language_dialect_default = "INFO" ":" "dialect_default[" +#if CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} diff --git a/week08/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out b/week08/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out new file mode 100755 index 0000000000000000000000000000000000000000..4f752d048d3d136555ba6b13b7869c22a3d0b55a GIT binary patch literal 8632 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 PMm|kP+C^q0>XiQ<q>!mv literal 0 HcmV?d00001 diff --git a/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.o b/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..ae7d54eaa5039d67b65cf6995da8d88f228d0939 GIT binary patch literal 206200 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�OEiR4Ra``CQ=^qN8GcUon}w+ZB=^cY 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 literal 0 HcmV?d00001 diff --git a/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/CXX.includecache b/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/CXX.includecache new file mode 100644 index 00000000..6a8568dd --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/CXX.includecache @@ -0,0 +1,18 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week08/493_Reverse_Pair.cpp +iostream +- +vector +- +random +- +string.h +- + diff --git a/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/DependInfo.cmake b/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/DependInfo.cmake new file mode 100644 index 00000000..b311c379 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week08/493_Reverse_Pair.cpp" "/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/build.make b/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/build.make new file mode 100644 index 00000000..2f6d9dd3 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week08 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week08/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/493_Reverse_Pair.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/493_Reverse_Pair.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/493_Reverse_Pair.dir/flags.make + +CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.o: CMakeFiles/493_Reverse_Pair.dir/flags.make +CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.o: ../493_Reverse_Pair.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.o -c /home/lewang/algorithm018/week08/493_Reverse_Pair.cpp + +CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week08/493_Reverse_Pair.cpp > CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.i + +CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week08/493_Reverse_Pair.cpp -o CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.s + +# Object files for target 493_Reverse_Pair +493_Reverse_Pair_OBJECTS = \ +"CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.o" + +# External object files for target 493_Reverse_Pair +493_Reverse_Pair_EXTERNAL_OBJECTS = + +493_Reverse_Pair: CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.o +493_Reverse_Pair: CMakeFiles/493_Reverse_Pair.dir/build.make +493_Reverse_Pair: CMakeFiles/493_Reverse_Pair.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 493_Reverse_Pair" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/493_Reverse_Pair.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/493_Reverse_Pair.dir/build: 493_Reverse_Pair + +.PHONY : CMakeFiles/493_Reverse_Pair.dir/build + +CMakeFiles/493_Reverse_Pair.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/493_Reverse_Pair.dir/cmake_clean.cmake +.PHONY : CMakeFiles/493_Reverse_Pair.dir/clean + +CMakeFiles/493_Reverse_Pair.dir/depend: + cd /home/lewang/algorithm018/week08/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week08 /home/lewang/algorithm018/week08 /home/lewang/algorithm018/week08/cmake-build-debug /home/lewang/algorithm018/week08/cmake-build-debug /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/493_Reverse_Pair.dir/depend + diff --git a/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/cmake_clean.cmake b/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/cmake_clean.cmake new file mode 100644 index 00000000..6e581008 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.o" + "493_Reverse_Pair.pdb" + "493_Reverse_Pair" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/493_Reverse_Pair.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/depend.internal b/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/depend.internal new file mode 100644 index 00000000..3a357908 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.o + /home/lewang/algorithm018/week08/493_Reverse_Pair.cpp diff --git a/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/depend.make b/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/depend.make new file mode 100644 index 00000000..4664ebb4 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.o: ../493_Reverse_Pair.cpp + diff --git a/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/flags.make b/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/link.txt b/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/link.txt new file mode 100644 index 00000000..9ddf4f33 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.o -o 493_Reverse_Pair diff --git a/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/progress.make b/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/progress.make new file mode 100644 index 00000000..8c8fb6fb --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 3 +CMAKE_PROGRESS_2 = 4 + diff --git a/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.o b/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..4298aeec4aa19868768a1ed098f8063354b730ca GIT binary patch literal 269600 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 M(!)%A@X-4I4=h_|iU0rr literal 0 HcmV?d00001 diff --git a/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/CXX.includecache b/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/CXX.includecache new file mode 100644 index 00000000..90df2ce3 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/CXX.includecache @@ -0,0 +1,18 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week08/51_N_Queen.cpp +iostream +- +bitset +- +vector +- +string +- + diff --git a/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/DependInfo.cmake b/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/DependInfo.cmake new file mode 100644 index 00000000..e1b00a48 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week08/51_N_Queen.cpp" "/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/build.make b/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/build.make new file mode 100644 index 00000000..88b8fa9e --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week08 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week08/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/51_N_Queen.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/51_N_Queen.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/51_N_Queen.dir/flags.make + +CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.o: CMakeFiles/51_N_Queen.dir/flags.make +CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.o: ../51_N_Queen.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.o -c /home/lewang/algorithm018/week08/51_N_Queen.cpp + +CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week08/51_N_Queen.cpp > CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.i + +CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week08/51_N_Queen.cpp -o CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.s + +# Object files for target 51_N_Queen +51_N_Queen_OBJECTS = \ +"CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.o" + +# External object files for target 51_N_Queen +51_N_Queen_EXTERNAL_OBJECTS = + +51_N_Queen: CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.o +51_N_Queen: CMakeFiles/51_N_Queen.dir/build.make +51_N_Queen: CMakeFiles/51_N_Queen.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 51_N_Queen" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/51_N_Queen.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/51_N_Queen.dir/build: 51_N_Queen + +.PHONY : CMakeFiles/51_N_Queen.dir/build + +CMakeFiles/51_N_Queen.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/51_N_Queen.dir/cmake_clean.cmake +.PHONY : CMakeFiles/51_N_Queen.dir/clean + +CMakeFiles/51_N_Queen.dir/depend: + cd /home/lewang/algorithm018/week08/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week08 /home/lewang/algorithm018/week08 /home/lewang/algorithm018/week08/cmake-build-debug /home/lewang/algorithm018/week08/cmake-build-debug /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/51_N_Queen.dir/depend + diff --git a/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/cmake_clean.cmake b/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/cmake_clean.cmake new file mode 100644 index 00000000..c7fbaeed --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.o" + "51_N_Queen.pdb" + "51_N_Queen" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/51_N_Queen.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/depend.internal b/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/depend.internal new file mode 100644 index 00000000..eb34f3dd --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.o + /home/lewang/algorithm018/week08/51_N_Queen.cpp diff --git a/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/depend.make b/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/depend.make new file mode 100644 index 00000000..044695e3 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.o: ../51_N_Queen.cpp + diff --git a/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/flags.make b/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/link.txt b/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/link.txt new file mode 100644 index 00000000..a4c5abe6 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.o -o 51_N_Queen diff --git a/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/progress.make b/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/progress.make new file mode 100644 index 00000000..3a86673a --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 5 +CMAKE_PROGRESS_2 = 6 + diff --git a/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.o b/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..81971c70298aa620439260781a613135004d15fc GIT binary patch literal 119352 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 -#BZoBYM#1$w>gbLu?HEF7N9@5hH@v<j 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 p_m3H;z&GFC+8^%*5!; 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 ZLF)@2zr8;yEWM*ZBClJ=XFfRne*<z&p&|eP literal 0 HcmV?d00001 diff --git a/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/CXX.includecache b/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/CXX.includecache new file mode 100644 index 00000000..03d458bd --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/CXX.includecache @@ -0,0 +1,14 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week08/52_totalN_Queens.cpp +iostream +- +bitset +- + diff --git a/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/DependInfo.cmake b/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/DependInfo.cmake new file mode 100644 index 00000000..2f646287 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week08/52_totalN_Queens.cpp" "/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/build.make b/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/build.make new file mode 100644 index 00000000..712ba209 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week08 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week08/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/52_totalN_Queens.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/52_totalN_Queens.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/52_totalN_Queens.dir/flags.make + +CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.o: CMakeFiles/52_totalN_Queens.dir/flags.make +CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.o: ../52_totalN_Queens.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.o -c /home/lewang/algorithm018/week08/52_totalN_Queens.cpp + +CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week08/52_totalN_Queens.cpp > CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.i + +CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week08/52_totalN_Queens.cpp -o CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.s + +# Object files for target 52_totalN_Queens +52_totalN_Queens_OBJECTS = \ +"CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.o" + +# External object files for target 52_totalN_Queens +52_totalN_Queens_EXTERNAL_OBJECTS = + +52_totalN_Queens: CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.o +52_totalN_Queens: CMakeFiles/52_totalN_Queens.dir/build.make +52_totalN_Queens: CMakeFiles/52_totalN_Queens.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 52_totalN_Queens" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/52_totalN_Queens.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/52_totalN_Queens.dir/build: 52_totalN_Queens + +.PHONY : CMakeFiles/52_totalN_Queens.dir/build + +CMakeFiles/52_totalN_Queens.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/52_totalN_Queens.dir/cmake_clean.cmake +.PHONY : CMakeFiles/52_totalN_Queens.dir/clean + +CMakeFiles/52_totalN_Queens.dir/depend: + cd /home/lewang/algorithm018/week08/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week08 /home/lewang/algorithm018/week08 /home/lewang/algorithm018/week08/cmake-build-debug /home/lewang/algorithm018/week08/cmake-build-debug /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/52_totalN_Queens.dir/depend + diff --git a/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/cmake_clean.cmake b/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/cmake_clean.cmake new file mode 100644 index 00000000..53335693 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.o" + "52_totalN_Queens.pdb" + "52_totalN_Queens" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/52_totalN_Queens.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/depend.internal b/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/depend.internal new file mode 100644 index 00000000..7a1f299a --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.o + /home/lewang/algorithm018/week08/52_totalN_Queens.cpp diff --git a/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/depend.make b/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/depend.make new file mode 100644 index 00000000..71f8f925 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.o: ../52_totalN_Queens.cpp + diff --git a/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/flags.make b/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/link.txt b/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/link.txt new file mode 100644 index 00000000..3433aaaf --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.o -o 52_totalN_Queens diff --git a/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/progress.make b/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/progress.make new file mode 100644 index 00000000..72bb7dd0 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 7 +CMAKE_PROGRESS_2 = 8 + diff --git a/week08/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake b/week08/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 00000000..5694244b --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/lewang/algorithm018/week08") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/lewang/algorithm018/week08/cmake-build-debug") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/week08/cmake-build-debug/CMakeFiles/CMakeOutput.log b/week08/cmake-build-debug/CMakeFiles/CMakeOutput.log new file mode 100644 index 00000000..d793b68e --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/CMakeOutput.log @@ -0,0 +1,625 @@ +The system is: Linux - 4.15.0-70-generic - x86_64 +Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. +Compiler: /usr/bin/cc +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" + +The C compiler identification is GNU, found in "/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out" + +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. +Compiler: /usr/bin/c++ +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + +The CXX compiler identification is GNU, found in "/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out" + +Determining if the C compiler works passed with the following output: +Change Dir: /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_5b689/fast" +/usr/bin/make -f CMakeFiles/cmTC_5b689.dir/build.make CMakeFiles/cmTC_5b689.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_5b689.dir/testCCompiler.c.o +/usr/bin/cc -o CMakeFiles/cmTC_5b689.dir/testCCompiler.c.o -c /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp/testCCompiler.c +Linking C executable cmTC_5b689 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_5b689.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_5b689.dir/testCCompiler.c.o -o cmTC_5b689 +make[1]: Leaving directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_da3f2/fast" +/usr/bin/make -f CMakeFiles/cmTC_da3f2.dir/build.make CMakeFiles/cmTC_da3f2.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_da3f2.dir/CMakeCCompilerABI.c.o +/usr/bin/cc -o CMakeFiles/cmTC_da3f2.dir/CMakeCCompilerABI.c.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCCompilerABI.c +Linking C executable cmTC_da3f2 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_da3f2.dir/link.txt --verbose=1 +/usr/bin/cc -v -rdynamic CMakeFiles/cmTC_da3f2.dir/CMakeCCompilerABI.c.o -o cmTC_da3f2 +Using built-in specs. +COLLECT_GCC=/usr/bin/cc +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_da3f2' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccIuOaeA.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_da3f2 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_da3f2.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o +make[1]: Leaving directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_da3f2/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_da3f2.dir/build.make CMakeFiles/cmTC_da3f2.dir/build] + ignore line: [make[1]: Entering directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp'] + ignore line: [Building C object CMakeFiles/cmTC_da3f2.dir/CMakeCCompilerABI.c.o] + ignore line: [/usr/bin/cc -o CMakeFiles/cmTC_da3f2.dir/CMakeCCompilerABI.c.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCCompilerABI.c] + ignore line: [Linking C executable cmTC_da3f2] + ignore line: [/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_da3f2.dir/link.txt --verbose=1] + ignore line: [/usr/bin/cc -v -rdynamic CMakeFiles/cmTC_da3f2.dir/CMakeCCompilerABI.c.o -o cmTC_da3f2 ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_da3f2' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccIuOaeA.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_da3f2 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_da3f2.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccIuOaeA.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_da3f2] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] + arg [CMakeFiles/cmTC_da3f2.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtend.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5] ==> [/usr/lib/gcc/x86_64-linux-gnu/5] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> [/usr/lib] + implicit libs: [gcc;gcc_s;c;gcc;gcc_s] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting C [-std=c11] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_3c68e/fast" +/usr/bin/make -f CMakeFiles/cmTC_3c68e.dir/build.make CMakeFiles/cmTC_3c68e.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_3c68e.dir/feature_tests.c.o +/usr/bin/cc -std=c11 -o CMakeFiles/cmTC_3c68e.dir/feature_tests.c.o -c /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_3c68e +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_3c68e.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_3c68e.dir/feature_tests.c.o -o cmTC_3c68e +make[1]: Leaving directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:1c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c99] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_09668/fast" +/usr/bin/make -f CMakeFiles/cmTC_09668.dir/build.make CMakeFiles/cmTC_09668.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_09668.dir/feature_tests.c.o +/usr/bin/cc -std=c99 -o CMakeFiles/cmTC_09668.dir/feature_tests.c.o -c /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_09668 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_09668.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_09668.dir/feature_tests.c.o -o cmTC_09668 +make[1]: Leaving directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c90] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_d2650/fast" +/usr/bin/make -f CMakeFiles/cmTC_d2650.dir/build.make CMakeFiles/cmTC_d2650.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_d2650.dir/feature_tests.c.o +/usr/bin/cc -std=c90 -o CMakeFiles/cmTC_d2650.dir/feature_tests.c.o -c /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_d2650 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d2650.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_d2650.dir/feature_tests.c.o -o cmTC_d2650 +make[1]: Leaving directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:0c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:0c_variadic_macros +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_db580/fast" +/usr/bin/make -f CMakeFiles/cmTC_db580.dir/build.make CMakeFiles/cmTC_db580.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_db580.dir/testCXXCompiler.cxx.o +/usr/bin/c++ -o CMakeFiles/cmTC_db580.dir/testCXXCompiler.cxx.o -c /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp/testCXXCompiler.cxx +Linking CXX executable cmTC_db580 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_db580.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_db580.dir/testCXXCompiler.cxx.o -o cmTC_db580 +make[1]: Leaving directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_b3d53/fast" +/usr/bin/make -f CMakeFiles/cmTC_b3d53.dir/build.make CMakeFiles/cmTC_b3d53.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_b3d53.dir/CMakeCXXCompilerABI.cpp.o +/usr/bin/c++ -o CMakeFiles/cmTC_b3d53.dir/CMakeCXXCompilerABI.cpp.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXCompilerABI.cpp +Linking CXX executable cmTC_b3d53 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b3d53.dir/link.txt --verbose=1 +/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_b3d53.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_b3d53 +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_b3d53' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/cckKgVgO.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_b3d53 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_b3d53.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o +make[1]: Leaving directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_b3d53/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_b3d53.dir/build.make CMakeFiles/cmTC_b3d53.dir/build] + ignore line: [make[1]: Entering directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp'] + ignore line: [Building CXX object CMakeFiles/cmTC_b3d53.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -o CMakeFiles/cmTC_b3d53.dir/CMakeCXXCompilerABI.cpp.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Linking CXX executable cmTC_b3d53] + ignore line: [/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b3d53.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_b3d53.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_b3d53 ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_b3d53' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/cckKgVgO.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_b3d53 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_b3d53.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/cckKgVgO.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_b3d53] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] + arg [CMakeFiles/cmTC_b3d53.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtend.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5] ==> [/usr/lib/gcc/x86_64-linux-gnu/5] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting CXX [-std=c++1z] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_def70/fast" +/usr/bin/make -f CMakeFiles/cmTC_def70.dir/build.make CMakeFiles/cmTC_def70.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_def70.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++1z -o CMakeFiles/cmTC_def70.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_def70 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_def70.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_def70.dir/feature_tests.cxx.o -o cmTC_def70 +make[1]: Leaving directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++14] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_5b206/fast" +/usr/bin/make -f CMakeFiles/cmTC_5b206.dir/build.make CMakeFiles/cmTC_5b206.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_5b206.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++14 -o CMakeFiles/cmTC_5b206.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_5b206 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_5b206.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_5b206.dir/feature_tests.cxx.o -o cmTC_5b206 +make[1]: Leaving directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++11] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_d12bf/fast" +/usr/bin/make -f CMakeFiles/cmTC_d12bf.dir/build.make CMakeFiles/cmTC_d12bf.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_d12bf.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++11 -o CMakeFiles/cmTC_d12bf.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_d12bf +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d12bf.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_d12bf.dir/feature_tests.cxx.o -o cmTC_d12bf +make[1]: Leaving directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++98] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_3f245/fast" +/usr/bin/make -f CMakeFiles/cmTC_3f245.dir/build.make CMakeFiles/cmTC_3f245.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_3f245.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++98 -o CMakeFiles/cmTC_3f245.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_3f245 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_3f245.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_3f245.dir/feature_tests.cxx.o -o cmTC_3f245 +make[1]: Leaving directory '/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:0cxx_alias_templates + Feature record: CXX_FEATURE:0cxx_alignas + Feature record: CXX_FEATURE:0cxx_alignof + Feature record: CXX_FEATURE:0cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:0cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:0cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:0cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:0cxx_default_function_template_args + Feature record: CXX_FEATURE:0cxx_defaulted_functions + Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:0cxx_delegating_constructors + Feature record: CXX_FEATURE:0cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:0cxx_enum_forward_declarations + Feature record: CXX_FEATURE:0cxx_explicit_conversions + Feature record: CXX_FEATURE:0cxx_extended_friend_declarations + Feature record: CXX_FEATURE:0cxx_extern_templates + Feature record: CXX_FEATURE:0cxx_final + Feature record: CXX_FEATURE:0cxx_func_identifier + Feature record: CXX_FEATURE:0cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:0cxx_inheriting_constructors + Feature record: CXX_FEATURE:0cxx_inline_namespaces + Feature record: CXX_FEATURE:0cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:0cxx_local_type_template_args + Feature record: CXX_FEATURE:0cxx_long_long_type + Feature record: CXX_FEATURE:0cxx_noexcept + Feature record: CXX_FEATURE:0cxx_nonstatic_member_init + Feature record: CXX_FEATURE:0cxx_nullptr + Feature record: CXX_FEATURE:0cxx_override + Feature record: CXX_FEATURE:0cxx_range_for + Feature record: CXX_FEATURE:0cxx_raw_string_literals + Feature record: CXX_FEATURE:0cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:0cxx_right_angle_brackets + Feature record: CXX_FEATURE:0cxx_rvalue_references + Feature record: CXX_FEATURE:0cxx_sizeof_member + Feature record: CXX_FEATURE:0cxx_static_assert + Feature record: CXX_FEATURE:0cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:0cxx_thread_local + Feature record: CXX_FEATURE:0cxx_trailing_return_types + Feature record: CXX_FEATURE:0cxx_unicode_literals + Feature record: CXX_FEATURE:0cxx_uniform_initialization + Feature record: CXX_FEATURE:0cxx_unrestricted_unions + Feature record: CXX_FEATURE:0cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:0cxx_variadic_macros + Feature record: CXX_FEATURE:0cxx_variadic_templates diff --git a/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/CXX.includecache b/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/CXX.includecache new file mode 100644 index 00000000..f57905ce --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/CXX.includecache @@ -0,0 +1,16 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week08/Insetion_Sort_template.cpp +iostream +- +vector +- +random +- + diff --git a/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/DependInfo.cmake b/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/DependInfo.cmake new file mode 100644 index 00000000..3c8101fe --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week08/Insetion_Sort_template.cpp" "/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.o b/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..fc236933ebfbce930b7083d63ea60685deae11ba GIT binary patch literal 172520 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 G{r>>yx-?1v literal 0 HcmV?d00001 diff --git a/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/build.make b/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/build.make new file mode 100644 index 00000000..1485efcb --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week08 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week08/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/Insetion_Sort_template.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/Insetion_Sort_template.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/Insetion_Sort_template.dir/flags.make + +CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.o: CMakeFiles/Insetion_Sort_template.dir/flags.make +CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.o: ../Insetion_Sort_template.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.o -c /home/lewang/algorithm018/week08/Insetion_Sort_template.cpp + +CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week08/Insetion_Sort_template.cpp > CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.i + +CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week08/Insetion_Sort_template.cpp -o CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.s + +# Object files for target Insetion_Sort_template +Insetion_Sort_template_OBJECTS = \ +"CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.o" + +# External object files for target Insetion_Sort_template +Insetion_Sort_template_EXTERNAL_OBJECTS = + +Insetion_Sort_template: CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.o +Insetion_Sort_template: CMakeFiles/Insetion_Sort_template.dir/build.make +Insetion_Sort_template: CMakeFiles/Insetion_Sort_template.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable Insetion_Sort_template" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/Insetion_Sort_template.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/Insetion_Sort_template.dir/build: Insetion_Sort_template + +.PHONY : CMakeFiles/Insetion_Sort_template.dir/build + +CMakeFiles/Insetion_Sort_template.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/Insetion_Sort_template.dir/cmake_clean.cmake +.PHONY : CMakeFiles/Insetion_Sort_template.dir/clean + +CMakeFiles/Insetion_Sort_template.dir/depend: + cd /home/lewang/algorithm018/week08/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week08 /home/lewang/algorithm018/week08 /home/lewang/algorithm018/week08/cmake-build-debug /home/lewang/algorithm018/week08/cmake-build-debug /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/Insetion_Sort_template.dir/depend + diff --git a/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/cmake_clean.cmake b/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/cmake_clean.cmake new file mode 100644 index 00000000..4c985b19 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.o" + "Insetion_Sort_template.pdb" + "Insetion_Sort_template" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/Insetion_Sort_template.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/depend.internal b/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/depend.internal new file mode 100644 index 00000000..f12b4148 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.o + /home/lewang/algorithm018/week08/Insetion_Sort_template.cpp diff --git a/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/depend.make b/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/depend.make new file mode 100644 index 00000000..43794a27 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.o: ../Insetion_Sort_template.cpp + diff --git a/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/flags.make b/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/link.txt b/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/link.txt new file mode 100644 index 00000000..c9825d21 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.o -o Insetion_Sort_template diff --git a/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/progress.make b/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/progress.make new file mode 100644 index 00000000..b700c2c9 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 9 +CMAKE_PROGRESS_2 = 10 + diff --git a/week08/cmake-build-debug/CMakeFiles/Makefile.cmake b/week08/cmake-build-debug/CMakeFiles/Makefile.cmake new file mode 100644 index 00000000..16b5a177 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/Makefile.cmake @@ -0,0 +1,57 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "../CMakeLists.txt" + "CMakeFiles/3.13.2/CMakeCCompiler.cmake" + "CMakeFiles/3.13.2/CMakeCXXCompiler.cmake" + "CMakeFiles/3.13.2/CMakeSystem.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCommonLanguageInclude.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeFindCodeBlocks.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeGenericSystem.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeInitializeConfigs.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeLanguageInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeSystemSpecificInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeSystemSpecificInitialize.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU-C.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU-CXX.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU-C.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU-CXX.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/UnixPaths.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/ProcessorCount.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/242_isAnagram.dir/DependInfo.cmake" + "CMakeFiles/493_Reverse_Pair.dir/DependInfo.cmake" + "CMakeFiles/52_totalN_Queens.dir/DependInfo.cmake" + "CMakeFiles/note.dir/DependInfo.cmake" + "CMakeFiles/bubble_sort_template.dir/DependInfo.cmake" + "CMakeFiles/51_N_Queen.dir/DependInfo.cmake" + "CMakeFiles/Selection_Sort_template.dir/DependInfo.cmake" + "CMakeFiles/Insetion_Sort_template.dir/DependInfo.cmake" + ) diff --git a/week08/cmake-build-debug/CMakeFiles/Makefile2 b/week08/cmake-build-debug/CMakeFiles/Makefile2 new file mode 100644 index 00000000..6cce4ba7 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/Makefile2 @@ -0,0 +1,372 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# The main recursive all target +all: + +.PHONY : all + +# The main recursive preinstall target +preinstall: + +.PHONY : preinstall + +# The main recursive clean target +clean: + +.PHONY : clean + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week08 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week08/cmake-build-debug + +#============================================================================= +# Target rules for target CMakeFiles/242_isAnagram.dir + +# All Build rule for target. +CMakeFiles/242_isAnagram.dir/all: + $(MAKE) -f CMakeFiles/242_isAnagram.dir/build.make CMakeFiles/242_isAnagram.dir/depend + $(MAKE) -f CMakeFiles/242_isAnagram.dir/build.make CMakeFiles/242_isAnagram.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target 242_isAnagram" +.PHONY : CMakeFiles/242_isAnagram.dir/all + +# Include target in all. +all: CMakeFiles/242_isAnagram.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/242_isAnagram.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/242_isAnagram.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/242_isAnagram.dir/rule + +# Convenience name for target. +242_isAnagram: CMakeFiles/242_isAnagram.dir/rule + +.PHONY : 242_isAnagram + +# clean rule for target. +CMakeFiles/242_isAnagram.dir/clean: + $(MAKE) -f CMakeFiles/242_isAnagram.dir/build.make CMakeFiles/242_isAnagram.dir/clean +.PHONY : CMakeFiles/242_isAnagram.dir/clean + +# clean rule for target. +clean: CMakeFiles/242_isAnagram.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/493_Reverse_Pair.dir + +# All Build rule for target. +CMakeFiles/493_Reverse_Pair.dir/all: + $(MAKE) -f CMakeFiles/493_Reverse_Pair.dir/build.make CMakeFiles/493_Reverse_Pair.dir/depend + $(MAKE) -f CMakeFiles/493_Reverse_Pair.dir/build.make CMakeFiles/493_Reverse_Pair.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=3,4 "Built target 493_Reverse_Pair" +.PHONY : CMakeFiles/493_Reverse_Pair.dir/all + +# Include target in all. +all: CMakeFiles/493_Reverse_Pair.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/493_Reverse_Pair.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/493_Reverse_Pair.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/493_Reverse_Pair.dir/rule + +# Convenience name for target. +493_Reverse_Pair: CMakeFiles/493_Reverse_Pair.dir/rule + +.PHONY : 493_Reverse_Pair + +# clean rule for target. +CMakeFiles/493_Reverse_Pair.dir/clean: + $(MAKE) -f CMakeFiles/493_Reverse_Pair.dir/build.make CMakeFiles/493_Reverse_Pair.dir/clean +.PHONY : CMakeFiles/493_Reverse_Pair.dir/clean + +# clean rule for target. +clean: CMakeFiles/493_Reverse_Pair.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/52_totalN_Queens.dir + +# All Build rule for target. +CMakeFiles/52_totalN_Queens.dir/all: + $(MAKE) -f CMakeFiles/52_totalN_Queens.dir/build.make CMakeFiles/52_totalN_Queens.dir/depend + $(MAKE) -f CMakeFiles/52_totalN_Queens.dir/build.make CMakeFiles/52_totalN_Queens.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=7,8 "Built target 52_totalN_Queens" +.PHONY : CMakeFiles/52_totalN_Queens.dir/all + +# Include target in all. +all: CMakeFiles/52_totalN_Queens.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/52_totalN_Queens.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/52_totalN_Queens.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/52_totalN_Queens.dir/rule + +# Convenience name for target. +52_totalN_Queens: CMakeFiles/52_totalN_Queens.dir/rule + +.PHONY : 52_totalN_Queens + +# clean rule for target. +CMakeFiles/52_totalN_Queens.dir/clean: + $(MAKE) -f CMakeFiles/52_totalN_Queens.dir/build.make CMakeFiles/52_totalN_Queens.dir/clean +.PHONY : CMakeFiles/52_totalN_Queens.dir/clean + +# clean rule for target. +clean: CMakeFiles/52_totalN_Queens.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/note.dir + +# All Build rule for target. +CMakeFiles/note.dir/all: + $(MAKE) -f CMakeFiles/note.dir/build.make CMakeFiles/note.dir/depend + $(MAKE) -f CMakeFiles/note.dir/build.make CMakeFiles/note.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=15,16 "Built target note" +.PHONY : CMakeFiles/note.dir/all + +# Include target in all. +all: CMakeFiles/note.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/note.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/note.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/note.dir/rule + +# Convenience name for target. +note: CMakeFiles/note.dir/rule + +.PHONY : note + +# clean rule for target. +CMakeFiles/note.dir/clean: + $(MAKE) -f CMakeFiles/note.dir/build.make CMakeFiles/note.dir/clean +.PHONY : CMakeFiles/note.dir/clean + +# clean rule for target. +clean: CMakeFiles/note.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/bubble_sort_template.dir + +# All Build rule for target. +CMakeFiles/bubble_sort_template.dir/all: + $(MAKE) -f CMakeFiles/bubble_sort_template.dir/build.make CMakeFiles/bubble_sort_template.dir/depend + $(MAKE) -f CMakeFiles/bubble_sort_template.dir/build.make CMakeFiles/bubble_sort_template.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=13,14 "Built target bubble_sort_template" +.PHONY : CMakeFiles/bubble_sort_template.dir/all + +# Include target in all. +all: CMakeFiles/bubble_sort_template.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/bubble_sort_template.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/bubble_sort_template.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/bubble_sort_template.dir/rule + +# Convenience name for target. +bubble_sort_template: CMakeFiles/bubble_sort_template.dir/rule + +.PHONY : bubble_sort_template + +# clean rule for target. +CMakeFiles/bubble_sort_template.dir/clean: + $(MAKE) -f CMakeFiles/bubble_sort_template.dir/build.make CMakeFiles/bubble_sort_template.dir/clean +.PHONY : CMakeFiles/bubble_sort_template.dir/clean + +# clean rule for target. +clean: CMakeFiles/bubble_sort_template.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/51_N_Queen.dir + +# All Build rule for target. +CMakeFiles/51_N_Queen.dir/all: + $(MAKE) -f CMakeFiles/51_N_Queen.dir/build.make CMakeFiles/51_N_Queen.dir/depend + $(MAKE) -f CMakeFiles/51_N_Queen.dir/build.make CMakeFiles/51_N_Queen.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=5,6 "Built target 51_N_Queen" +.PHONY : CMakeFiles/51_N_Queen.dir/all + +# Include target in all. +all: CMakeFiles/51_N_Queen.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/51_N_Queen.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/51_N_Queen.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/51_N_Queen.dir/rule + +# Convenience name for target. +51_N_Queen: CMakeFiles/51_N_Queen.dir/rule + +.PHONY : 51_N_Queen + +# clean rule for target. +CMakeFiles/51_N_Queen.dir/clean: + $(MAKE) -f CMakeFiles/51_N_Queen.dir/build.make CMakeFiles/51_N_Queen.dir/clean +.PHONY : CMakeFiles/51_N_Queen.dir/clean + +# clean rule for target. +clean: CMakeFiles/51_N_Queen.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/Selection_Sort_template.dir + +# All Build rule for target. +CMakeFiles/Selection_Sort_template.dir/all: + $(MAKE) -f CMakeFiles/Selection_Sort_template.dir/build.make CMakeFiles/Selection_Sort_template.dir/depend + $(MAKE) -f CMakeFiles/Selection_Sort_template.dir/build.make CMakeFiles/Selection_Sort_template.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=11,12 "Built target Selection_Sort_template" +.PHONY : CMakeFiles/Selection_Sort_template.dir/all + +# Include target in all. +all: CMakeFiles/Selection_Sort_template.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/Selection_Sort_template.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/Selection_Sort_template.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/Selection_Sort_template.dir/rule + +# Convenience name for target. +Selection_Sort_template: CMakeFiles/Selection_Sort_template.dir/rule + +.PHONY : Selection_Sort_template + +# clean rule for target. +CMakeFiles/Selection_Sort_template.dir/clean: + $(MAKE) -f CMakeFiles/Selection_Sort_template.dir/build.make CMakeFiles/Selection_Sort_template.dir/clean +.PHONY : CMakeFiles/Selection_Sort_template.dir/clean + +# clean rule for target. +clean: CMakeFiles/Selection_Sort_template.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/Insetion_Sort_template.dir + +# All Build rule for target. +CMakeFiles/Insetion_Sort_template.dir/all: + $(MAKE) -f CMakeFiles/Insetion_Sort_template.dir/build.make CMakeFiles/Insetion_Sort_template.dir/depend + $(MAKE) -f CMakeFiles/Insetion_Sort_template.dir/build.make CMakeFiles/Insetion_Sort_template.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=9,10 "Built target Insetion_Sort_template" +.PHONY : CMakeFiles/Insetion_Sort_template.dir/all + +# Include target in all. +all: CMakeFiles/Insetion_Sort_template.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/Insetion_Sort_template.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/Insetion_Sort_template.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/Insetion_Sort_template.dir/rule + +# Convenience name for target. +Insetion_Sort_template: CMakeFiles/Insetion_Sort_template.dir/rule + +.PHONY : Insetion_Sort_template + +# clean rule for target. +CMakeFiles/Insetion_Sort_template.dir/clean: + $(MAKE) -f CMakeFiles/Insetion_Sort_template.dir/build.make CMakeFiles/Insetion_Sort_template.dir/clean +.PHONY : CMakeFiles/Insetion_Sort_template.dir/clean + +# clean rule for target. +clean: CMakeFiles/Insetion_Sort_template.dir/clean + +.PHONY : clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/CXX.includecache b/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/CXX.includecache new file mode 100644 index 00000000..b93f5bb9 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/CXX.includecache @@ -0,0 +1,16 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week08/Selection_Sort_template.cpp +iostream +- +vector +- +random +- + diff --git a/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/DependInfo.cmake b/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/DependInfo.cmake new file mode 100644 index 00000000..529924d8 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week08/Selection_Sort_template.cpp" "/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.o b/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..fdb92384cc48b969f28b146d6d6233ed666c978c GIT binary patch literal 178312 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 NBo|z5RSy8I{|~>)cs2k4 literal 0 HcmV?d00001 diff --git a/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/build.make b/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/build.make new file mode 100644 index 00000000..359663d0 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week08 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week08/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/Selection_Sort_template.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/Selection_Sort_template.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/Selection_Sort_template.dir/flags.make + +CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.o: CMakeFiles/Selection_Sort_template.dir/flags.make +CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.o: ../Selection_Sort_template.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.o -c /home/lewang/algorithm018/week08/Selection_Sort_template.cpp + +CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week08/Selection_Sort_template.cpp > CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.i + +CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week08/Selection_Sort_template.cpp -o CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.s + +# Object files for target Selection_Sort_template +Selection_Sort_template_OBJECTS = \ +"CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.o" + +# External object files for target Selection_Sort_template +Selection_Sort_template_EXTERNAL_OBJECTS = + +Selection_Sort_template: CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.o +Selection_Sort_template: CMakeFiles/Selection_Sort_template.dir/build.make +Selection_Sort_template: CMakeFiles/Selection_Sort_template.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable Selection_Sort_template" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/Selection_Sort_template.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/Selection_Sort_template.dir/build: Selection_Sort_template + +.PHONY : CMakeFiles/Selection_Sort_template.dir/build + +CMakeFiles/Selection_Sort_template.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/Selection_Sort_template.dir/cmake_clean.cmake +.PHONY : CMakeFiles/Selection_Sort_template.dir/clean + +CMakeFiles/Selection_Sort_template.dir/depend: + cd /home/lewang/algorithm018/week08/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week08 /home/lewang/algorithm018/week08 /home/lewang/algorithm018/week08/cmake-build-debug /home/lewang/algorithm018/week08/cmake-build-debug /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/Selection_Sort_template.dir/depend + diff --git a/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/cmake_clean.cmake b/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/cmake_clean.cmake new file mode 100644 index 00000000..afc0a6ff --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.o" + "Selection_Sort_template.pdb" + "Selection_Sort_template" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/Selection_Sort_template.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/depend.internal b/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/depend.internal new file mode 100644 index 00000000..788c49aa --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.o + /home/lewang/algorithm018/week08/Selection_Sort_template.cpp diff --git a/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/depend.make b/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/depend.make new file mode 100644 index 00000000..ed9d4a9b --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.o: ../Selection_Sort_template.cpp + diff --git a/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/flags.make b/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/link.txt b/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/link.txt new file mode 100644 index 00000000..cf623de4 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.o -o Selection_Sort_template diff --git a/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/progress.make b/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/progress.make new file mode 100644 index 00000000..596289c0 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 11 +CMAKE_PROGRESS_2 = 12 + diff --git a/week08/cmake-build-debug/CMakeFiles/TargetDirectories.txt b/week08/cmake-build-debug/CMakeFiles/TargetDirectories.txt new file mode 100644 index 00000000..d0c6cd14 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,10 @@ +/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/rebuild_cache.dir +/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/edit_cache.dir +/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/242_isAnagram.dir +/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/493_Reverse_Pair.dir +/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/52_totalN_Queens.dir +/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/note.dir +/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir +/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/51_N_Queen.dir +/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/Selection_Sort_template.dir +/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/Insetion_Sort_template.dir diff --git a/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/CXX.includecache b/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/CXX.includecache new file mode 100644 index 00000000..4c0c2ed0 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/CXX.includecache @@ -0,0 +1,16 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week08/bubble_sort_template.cpp +iostream +- +vector +- +random +- + diff --git a/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/DependInfo.cmake b/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/DependInfo.cmake new file mode 100644 index 00000000..a3f05d17 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week08/bubble_sort_template.cpp" "/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.o b/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..54cd62ed6f28b3ee1081473215a34b4e82127509 GIT binary patch literal 137864 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 literal 0 HcmV?d00001 diff --git a/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/build.make b/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/build.make new file mode 100644 index 00000000..5f4ddfbe --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week08 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week08/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/bubble_sort_template.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/bubble_sort_template.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/bubble_sort_template.dir/flags.make + +CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.o: CMakeFiles/bubble_sort_template.dir/flags.make +CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.o: ../bubble_sort_template.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.o -c /home/lewang/algorithm018/week08/bubble_sort_template.cpp + +CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week08/bubble_sort_template.cpp > CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.i + +CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week08/bubble_sort_template.cpp -o CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.s + +# Object files for target bubble_sort_template +bubble_sort_template_OBJECTS = \ +"CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.o" + +# External object files for target bubble_sort_template +bubble_sort_template_EXTERNAL_OBJECTS = + +bubble_sort_template: CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.o +bubble_sort_template: CMakeFiles/bubble_sort_template.dir/build.make +bubble_sort_template: CMakeFiles/bubble_sort_template.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable bubble_sort_template" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/bubble_sort_template.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/bubble_sort_template.dir/build: bubble_sort_template + +.PHONY : CMakeFiles/bubble_sort_template.dir/build + +CMakeFiles/bubble_sort_template.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/bubble_sort_template.dir/cmake_clean.cmake +.PHONY : CMakeFiles/bubble_sort_template.dir/clean + +CMakeFiles/bubble_sort_template.dir/depend: + cd /home/lewang/algorithm018/week08/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week08 /home/lewang/algorithm018/week08 /home/lewang/algorithm018/week08/cmake-build-debug /home/lewang/algorithm018/week08/cmake-build-debug /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/bubble_sort_template.dir/depend + diff --git a/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/cmake_clean.cmake b/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/cmake_clean.cmake new file mode 100644 index 00000000..8b34d03a --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.o" + "bubble_sort_template.pdb" + "bubble_sort_template" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/bubble_sort_template.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/depend.internal b/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/depend.internal new file mode 100644 index 00000000..f382f200 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.o + /home/lewang/algorithm018/week08/bubble_sort_template.cpp diff --git a/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/depend.make b/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/depend.make new file mode 100644 index 00000000..56e58258 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.o: ../bubble_sort_template.cpp + diff --git a/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/flags.make b/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/link.txt b/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/link.txt new file mode 100644 index 00000000..af8061d4 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.o -o bubble_sort_template diff --git a/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/progress.make b/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/progress.make new file mode 100644 index 00000000..d92f75a2 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/bubble_sort_template.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 13 +CMAKE_PROGRESS_2 = 14 + diff --git a/week08/cmake-build-debug/CMakeFiles/clion-environment.txt b/week08/cmake-build-debug/CMakeFiles/clion-environment.txt new file mode 100644 index 00000000..270d93c2 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/clion-environment.txt @@ -0,0 +1,3 @@ +ToolSet: 1.0 (local)Options: + +Options: \ No newline at end of file diff --git a/week08/cmake-build-debug/CMakeFiles/clion-log.txt b/week08/cmake-build-debug/CMakeFiles/clion-log.txt new file mode 100644 index 00000000..c3c07818 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/clion-log.txt @@ -0,0 +1,4 @@ +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" /home/lewang/algorithm018/week08 +-- Configuring done +-- Generating done +-- Build files have been written to: /home/lewang/algorithm018/week08/cmake-build-debug diff --git a/week08/cmake-build-debug/CMakeFiles/cmake.check_cache b/week08/cmake-build-debug/CMakeFiles/cmake.check_cache new file mode 100644 index 00000000..3dccd731 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/week08/cmake-build-debug/CMakeFiles/feature_tests.bin b/week08/cmake-build-debug/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..c1bade88a09ced4221830cdf30b0fa11360b60ea GIT binary patch literal 12520 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 S*dX~wSGpXhnNd-{{J#MLk8ZjE literal 0 HcmV?d00001 diff --git a/week08/cmake-build-debug/CMakeFiles/feature_tests.c b/week08/cmake-build-debug/CMakeFiles/feature_tests.c new file mode 100644 index 00000000..83e86dd8 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/feature_tests.c @@ -0,0 +1,34 @@ + + const char features[] = {"\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/week08/cmake-build-debug/CMakeFiles/feature_tests.cxx b/week08/cmake-build-debug/CMakeFiles/feature_tests.cxx new file mode 100644 index 00000000..b93418c6 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/week08/cmake-build-debug/CMakeFiles/note.dir/CXX.includecache b/week08/cmake-build-debug/CMakeFiles/note.dir/CXX.includecache new file mode 100644 index 00000000..bfb973a3 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/note.dir/CXX.includecache @@ -0,0 +1,14 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week08/note.cpp +iostream +- +bitset +- + diff --git a/week08/cmake-build-debug/CMakeFiles/note.dir/DependInfo.cmake b/week08/cmake-build-debug/CMakeFiles/note.dir/DependInfo.cmake new file mode 100644 index 00000000..11735b48 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/note.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week08/note.cpp" "/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/note.dir/note.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week08/cmake-build-debug/CMakeFiles/note.dir/build.make b/week08/cmake-build-debug/CMakeFiles/note.dir/build.make new file mode 100644 index 00000000..904fe858 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/note.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week08 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week08/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/note.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/note.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/note.dir/flags.make + +CMakeFiles/note.dir/note.cpp.o: CMakeFiles/note.dir/flags.make +CMakeFiles/note.dir/note.cpp.o: ../note.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/note.dir/note.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/note.dir/note.cpp.o -c /home/lewang/algorithm018/week08/note.cpp + +CMakeFiles/note.dir/note.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/note.dir/note.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week08/note.cpp > CMakeFiles/note.dir/note.cpp.i + +CMakeFiles/note.dir/note.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/note.dir/note.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week08/note.cpp -o CMakeFiles/note.dir/note.cpp.s + +# Object files for target note +note_OBJECTS = \ +"CMakeFiles/note.dir/note.cpp.o" + +# External object files for target note +note_EXTERNAL_OBJECTS = + +note: CMakeFiles/note.dir/note.cpp.o +note: CMakeFiles/note.dir/build.make +note: CMakeFiles/note.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable note" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/note.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/note.dir/build: note + +.PHONY : CMakeFiles/note.dir/build + +CMakeFiles/note.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/note.dir/cmake_clean.cmake +.PHONY : CMakeFiles/note.dir/clean + +CMakeFiles/note.dir/depend: + cd /home/lewang/algorithm018/week08/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week08 /home/lewang/algorithm018/week08 /home/lewang/algorithm018/week08/cmake-build-debug /home/lewang/algorithm018/week08/cmake-build-debug /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/note.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/note.dir/depend + diff --git a/week08/cmake-build-debug/CMakeFiles/note.dir/cmake_clean.cmake b/week08/cmake-build-debug/CMakeFiles/note.dir/cmake_clean.cmake new file mode 100644 index 00000000..50a8d9ae --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/note.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/note.dir/note.cpp.o" + "note.pdb" + "note" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/note.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week08/cmake-build-debug/CMakeFiles/note.dir/depend.internal b/week08/cmake-build-debug/CMakeFiles/note.dir/depend.internal new file mode 100644 index 00000000..58438ec0 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/note.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/note.dir/note.cpp.o + /home/lewang/algorithm018/week08/note.cpp diff --git a/week08/cmake-build-debug/CMakeFiles/note.dir/depend.make b/week08/cmake-build-debug/CMakeFiles/note.dir/depend.make new file mode 100644 index 00000000..74cc9f5d --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/note.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/note.dir/note.cpp.o: ../note.cpp + diff --git a/week08/cmake-build-debug/CMakeFiles/note.dir/flags.make b/week08/cmake-build-debug/CMakeFiles/note.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/note.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week08/cmake-build-debug/CMakeFiles/note.dir/link.txt b/week08/cmake-build-debug/CMakeFiles/note.dir/link.txt new file mode 100644 index 00000000..7cb23b84 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/note.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/note.dir/note.cpp.o -o note diff --git a/week08/cmake-build-debug/CMakeFiles/note.dir/note.cpp.o b/week08/cmake-build-debug/CMakeFiles/note.dir/note.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..6d667fc68409c920801b7c5ba4495e7f80a04a75 GIT binary patch literal 164200 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 Q&mIjQOeIq5D((0G0g<N*kN^Mx literal 0 HcmV?d00001 diff --git a/week08/cmake-build-debug/CMakeFiles/note.dir/progress.make b/week08/cmake-build-debug/CMakeFiles/note.dir/progress.make new file mode 100644 index 00000000..a35c33b9 --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/note.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 15 +CMAKE_PROGRESS_2 = 16 + diff --git a/week08/cmake-build-debug/CMakeFiles/progress.marks b/week08/cmake-build-debug/CMakeFiles/progress.marks new file mode 100644 index 00000000..b6a7d89c --- /dev/null +++ b/week08/cmake-build-debug/CMakeFiles/progress.marks @@ -0,0 +1 @@ +16 diff --git a/week08/cmake-build-debug/Insetion_Sort_template b/week08/cmake-build-debug/Insetion_Sort_template new file mode 100755 index 0000000000000000000000000000000000000000..08e6348285020b964bbc04c220fd8d3874083702 GIT binary patch literal 115752 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 literal 0 HcmV?d00001 diff --git a/week08/cmake-build-debug/Makefile b/week08/cmake-build-debug/Makefile new file mode 100644 index 00000000..3bc3fabf --- /dev/null +++ b/week08/cmake-build-debug/Makefile @@ -0,0 +1,486 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week08 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week08/cmake-build-debug + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week08/cmake-build-debug/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named 242_isAnagram + +# Build rule for target. +242_isAnagram: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 242_isAnagram +.PHONY : 242_isAnagram + +# fast build rule for target. +242_isAnagram/fast: + $(MAKE) -f CMakeFiles/242_isAnagram.dir/build.make CMakeFiles/242_isAnagram.dir/build +.PHONY : 242_isAnagram/fast + +#============================================================================= +# Target rules for targets named 493_Reverse_Pair + +# Build rule for target. +493_Reverse_Pair: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 493_Reverse_Pair +.PHONY : 493_Reverse_Pair + +# fast build rule for target. +493_Reverse_Pair/fast: + $(MAKE) -f CMakeFiles/493_Reverse_Pair.dir/build.make CMakeFiles/493_Reverse_Pair.dir/build +.PHONY : 493_Reverse_Pair/fast + +#============================================================================= +# Target rules for targets named 52_totalN_Queens + +# Build rule for target. +52_totalN_Queens: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 52_totalN_Queens +.PHONY : 52_totalN_Queens + +# fast build rule for target. +52_totalN_Queens/fast: + $(MAKE) -f CMakeFiles/52_totalN_Queens.dir/build.make CMakeFiles/52_totalN_Queens.dir/build +.PHONY : 52_totalN_Queens/fast + +#============================================================================= +# Target rules for targets named note + +# Build rule for target. +note: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 note +.PHONY : note + +# fast build rule for target. +note/fast: + $(MAKE) -f CMakeFiles/note.dir/build.make CMakeFiles/note.dir/build +.PHONY : note/fast + +#============================================================================= +# Target rules for targets named bubble_sort_template + +# Build rule for target. +bubble_sort_template: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 bubble_sort_template +.PHONY : bubble_sort_template + +# fast build rule for target. +bubble_sort_template/fast: + $(MAKE) -f CMakeFiles/bubble_sort_template.dir/build.make CMakeFiles/bubble_sort_template.dir/build +.PHONY : bubble_sort_template/fast + +#============================================================================= +# Target rules for targets named 51_N_Queen + +# Build rule for target. +51_N_Queen: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 51_N_Queen +.PHONY : 51_N_Queen + +# fast build rule for target. +51_N_Queen/fast: + $(MAKE) -f CMakeFiles/51_N_Queen.dir/build.make CMakeFiles/51_N_Queen.dir/build +.PHONY : 51_N_Queen/fast + +#============================================================================= +# Target rules for targets named Selection_Sort_template + +# Build rule for target. +Selection_Sort_template: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 Selection_Sort_template +.PHONY : Selection_Sort_template + +# fast build rule for target. +Selection_Sort_template/fast: + $(MAKE) -f CMakeFiles/Selection_Sort_template.dir/build.make CMakeFiles/Selection_Sort_template.dir/build +.PHONY : Selection_Sort_template/fast + +#============================================================================= +# Target rules for targets named Insetion_Sort_template + +# Build rule for target. +Insetion_Sort_template: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 Insetion_Sort_template +.PHONY : Insetion_Sort_template + +# fast build rule for target. +Insetion_Sort_template/fast: + $(MAKE) -f CMakeFiles/Insetion_Sort_template.dir/build.make CMakeFiles/Insetion_Sort_template.dir/build +.PHONY : Insetion_Sort_template/fast + +242_isAnagram.o: 242_isAnagram.cpp.o + +.PHONY : 242_isAnagram.o + +# target to build an object file +242_isAnagram.cpp.o: + $(MAKE) -f CMakeFiles/242_isAnagram.dir/build.make CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.o +.PHONY : 242_isAnagram.cpp.o + +242_isAnagram.i: 242_isAnagram.cpp.i + +.PHONY : 242_isAnagram.i + +# target to preprocess a source file +242_isAnagram.cpp.i: + $(MAKE) -f CMakeFiles/242_isAnagram.dir/build.make CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.i +.PHONY : 242_isAnagram.cpp.i + +242_isAnagram.s: 242_isAnagram.cpp.s + +.PHONY : 242_isAnagram.s + +# target to generate assembly for a file +242_isAnagram.cpp.s: + $(MAKE) -f CMakeFiles/242_isAnagram.dir/build.make CMakeFiles/242_isAnagram.dir/242_isAnagram.cpp.s +.PHONY : 242_isAnagram.cpp.s + +493_Reverse_Pair.o: 493_Reverse_Pair.cpp.o + +.PHONY : 493_Reverse_Pair.o + +# target to build an object file +493_Reverse_Pair.cpp.o: + $(MAKE) -f CMakeFiles/493_Reverse_Pair.dir/build.make CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.o +.PHONY : 493_Reverse_Pair.cpp.o + +493_Reverse_Pair.i: 493_Reverse_Pair.cpp.i + +.PHONY : 493_Reverse_Pair.i + +# target to preprocess a source file +493_Reverse_Pair.cpp.i: + $(MAKE) -f CMakeFiles/493_Reverse_Pair.dir/build.make CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.i +.PHONY : 493_Reverse_Pair.cpp.i + +493_Reverse_Pair.s: 493_Reverse_Pair.cpp.s + +.PHONY : 493_Reverse_Pair.s + +# target to generate assembly for a file +493_Reverse_Pair.cpp.s: + $(MAKE) -f CMakeFiles/493_Reverse_Pair.dir/build.make CMakeFiles/493_Reverse_Pair.dir/493_Reverse_Pair.cpp.s +.PHONY : 493_Reverse_Pair.cpp.s + +51_N_Queen.o: 51_N_Queen.cpp.o + +.PHONY : 51_N_Queen.o + +# target to build an object file +51_N_Queen.cpp.o: + $(MAKE) -f CMakeFiles/51_N_Queen.dir/build.make CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.o +.PHONY : 51_N_Queen.cpp.o + +51_N_Queen.i: 51_N_Queen.cpp.i + +.PHONY : 51_N_Queen.i + +# target to preprocess a source file +51_N_Queen.cpp.i: + $(MAKE) -f CMakeFiles/51_N_Queen.dir/build.make CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.i +.PHONY : 51_N_Queen.cpp.i + +51_N_Queen.s: 51_N_Queen.cpp.s + +.PHONY : 51_N_Queen.s + +# target to generate assembly for a file +51_N_Queen.cpp.s: + $(MAKE) -f CMakeFiles/51_N_Queen.dir/build.make CMakeFiles/51_N_Queen.dir/51_N_Queen.cpp.s +.PHONY : 51_N_Queen.cpp.s + +52_totalN_Queens.o: 52_totalN_Queens.cpp.o + +.PHONY : 52_totalN_Queens.o + +# target to build an object file +52_totalN_Queens.cpp.o: + $(MAKE) -f CMakeFiles/52_totalN_Queens.dir/build.make CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.o +.PHONY : 52_totalN_Queens.cpp.o + +52_totalN_Queens.i: 52_totalN_Queens.cpp.i + +.PHONY : 52_totalN_Queens.i + +# target to preprocess a source file +52_totalN_Queens.cpp.i: + $(MAKE) -f CMakeFiles/52_totalN_Queens.dir/build.make CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.i +.PHONY : 52_totalN_Queens.cpp.i + +52_totalN_Queens.s: 52_totalN_Queens.cpp.s + +.PHONY : 52_totalN_Queens.s + +# target to generate assembly for a file +52_totalN_Queens.cpp.s: + $(MAKE) -f CMakeFiles/52_totalN_Queens.dir/build.make CMakeFiles/52_totalN_Queens.dir/52_totalN_Queens.cpp.s +.PHONY : 52_totalN_Queens.cpp.s + +Insetion_Sort_template.o: Insetion_Sort_template.cpp.o + +.PHONY : Insetion_Sort_template.o + +# target to build an object file +Insetion_Sort_template.cpp.o: + $(MAKE) -f CMakeFiles/Insetion_Sort_template.dir/build.make CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.o +.PHONY : Insetion_Sort_template.cpp.o + +Insetion_Sort_template.i: Insetion_Sort_template.cpp.i + +.PHONY : Insetion_Sort_template.i + +# target to preprocess a source file +Insetion_Sort_template.cpp.i: + $(MAKE) -f CMakeFiles/Insetion_Sort_template.dir/build.make CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.i +.PHONY : Insetion_Sort_template.cpp.i + +Insetion_Sort_template.s: Insetion_Sort_template.cpp.s + +.PHONY : Insetion_Sort_template.s + +# target to generate assembly for a file +Insetion_Sort_template.cpp.s: + $(MAKE) -f CMakeFiles/Insetion_Sort_template.dir/build.make CMakeFiles/Insetion_Sort_template.dir/Insetion_Sort_template.cpp.s +.PHONY : Insetion_Sort_template.cpp.s + +Selection_Sort_template.o: Selection_Sort_template.cpp.o + +.PHONY : Selection_Sort_template.o + +# target to build an object file +Selection_Sort_template.cpp.o: + $(MAKE) -f CMakeFiles/Selection_Sort_template.dir/build.make CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.o +.PHONY : Selection_Sort_template.cpp.o + +Selection_Sort_template.i: Selection_Sort_template.cpp.i + +.PHONY : Selection_Sort_template.i + +# target to preprocess a source file +Selection_Sort_template.cpp.i: + $(MAKE) -f CMakeFiles/Selection_Sort_template.dir/build.make CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.i +.PHONY : Selection_Sort_template.cpp.i + +Selection_Sort_template.s: Selection_Sort_template.cpp.s + +.PHONY : Selection_Sort_template.s + +# target to generate assembly for a file +Selection_Sort_template.cpp.s: + $(MAKE) -f CMakeFiles/Selection_Sort_template.dir/build.make CMakeFiles/Selection_Sort_template.dir/Selection_Sort_template.cpp.s +.PHONY : Selection_Sort_template.cpp.s + +bubble_sort_template.o: bubble_sort_template.cpp.o + +.PHONY : bubble_sort_template.o + +# target to build an object file +bubble_sort_template.cpp.o: + $(MAKE) -f CMakeFiles/bubble_sort_template.dir/build.make CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.o +.PHONY : bubble_sort_template.cpp.o + +bubble_sort_template.i: bubble_sort_template.cpp.i + +.PHONY : bubble_sort_template.i + +# target to preprocess a source file +bubble_sort_template.cpp.i: + $(MAKE) -f CMakeFiles/bubble_sort_template.dir/build.make CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.i +.PHONY : bubble_sort_template.cpp.i + +bubble_sort_template.s: bubble_sort_template.cpp.s + +.PHONY : bubble_sort_template.s + +# target to generate assembly for a file +bubble_sort_template.cpp.s: + $(MAKE) -f CMakeFiles/bubble_sort_template.dir/build.make CMakeFiles/bubble_sort_template.dir/bubble_sort_template.cpp.s +.PHONY : bubble_sort_template.cpp.s + +note.o: note.cpp.o + +.PHONY : note.o + +# target to build an object file +note.cpp.o: + $(MAKE) -f CMakeFiles/note.dir/build.make CMakeFiles/note.dir/note.cpp.o +.PHONY : note.cpp.o + +note.i: note.cpp.i + +.PHONY : note.i + +# target to preprocess a source file +note.cpp.i: + $(MAKE) -f CMakeFiles/note.dir/build.make CMakeFiles/note.dir/note.cpp.i +.PHONY : note.cpp.i + +note.s: note.cpp.s + +.PHONY : note.s + +# target to generate assembly for a file +note.cpp.s: + $(MAKE) -f CMakeFiles/note.dir/build.make CMakeFiles/note.dir/note.cpp.s +.PHONY : note.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... rebuild_cache" + @echo "... edit_cache" + @echo "... 242_isAnagram" + @echo "... 493_Reverse_Pair" + @echo "... 52_totalN_Queens" + @echo "... note" + @echo "... bubble_sort_template" + @echo "... 51_N_Queen" + @echo "... Selection_Sort_template" + @echo "... Insetion_Sort_template" + @echo "... 242_isAnagram.o" + @echo "... 242_isAnagram.i" + @echo "... 242_isAnagram.s" + @echo "... 493_Reverse_Pair.o" + @echo "... 493_Reverse_Pair.i" + @echo "... 493_Reverse_Pair.s" + @echo "... 51_N_Queen.o" + @echo "... 51_N_Queen.i" + @echo "... 51_N_Queen.s" + @echo "... 52_totalN_Queens.o" + @echo "... 52_totalN_Queens.i" + @echo "... 52_totalN_Queens.s" + @echo "... Insetion_Sort_template.o" + @echo "... Insetion_Sort_template.i" + @echo "... Insetion_Sort_template.s" + @echo "... Selection_Sort_template.o" + @echo "... Selection_Sort_template.i" + @echo "... Selection_Sort_template.s" + @echo "... bubble_sort_template.o" + @echo "... bubble_sort_template.i" + @echo "... bubble_sort_template.s" + @echo "... note.o" + @echo "... note.i" + @echo "... note.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/week08/cmake-build-debug/Selection_Sort_template b/week08/cmake-build-debug/Selection_Sort_template new file mode 100755 index 0000000000000000000000000000000000000000..81e33c4ac6d581d83fc1f86ece9aaf65c8ed3837 GIT binary patch literal 118264 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�dn}hHo7p#VaQZ7ifpZpqjaM*YqU7;cxR~B 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 C(tslX literal 0 HcmV?d00001 diff --git a/week08/cmake-build-debug/bubble_sort_template b/week08/cmake-build-debug/bubble_sort_template new file mode 100755 index 0000000000000000000000000000000000000000..2723aa6306ee5eb6c05da0b70b86ed9b30b30281 GIT binary patch literal 90928 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 literal 0 HcmV?d00001 diff --git a/week08/cmake-build-debug/cmake_install.cmake b/week08/cmake-build-debug/cmake_install.cmake new file mode 100644 index 00000000..2161697d --- /dev/null +++ b/week08/cmake-build-debug/cmake_install.cmake @@ -0,0 +1,49 @@ +# Install script for directory: /home/lewang/algorithm018/week08 + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/lewang/algorithm018/week08/cmake-build-debug/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/week08/cmake-build-debug/note b/week08/cmake-build-debug/note new file mode 100755 index 0000000000000000000000000000000000000000..ec7e5b705968097a485358ae7c55e5c8bebad4c7 GIT binary patch literal 106496 zcmeFa2Y6IP+Xj5j?j~D+bRZ^yEG2~!NC*i5DS?o%KtgX)vZMi_1SFwX2`xm5sECLN zR#a3}M3f>Z?NwA>3xa}z2nIm~1w}yl@8_90XG;?NeE;wJuj{|AH+pu;ea|y9&ph*- zIkS6)dFh!M231wGKcmu7;Z!}5lPZC|Yh0XEB}K6+sY;a6Sn&mJ!lm)N!|Sq`7Fxii zKO-(Gmtvq)<uF2ID_W@4PN9#)stO{zid-#J6gy{7Icn?WOim)Sb3_YcsX_R2P^0+I z&Y#pgDi@H&NrZNe=%H+XfDE<%kr=uL$b9cmHdE0;;?iHAb0zr{zj`+(D}^Oe5n8B~ z>x**K&j0COfF$;l^;M^r0I3%(l+`OO#~0=%w{AH;KW=<s(Uj?N(^Hb;l3TYZp4g%l z_nYJsw_C4)ToZ|rs$e_>Y04w~-qq~}HT}pEyWJ9M44HQS8=JBs?~ei&j*IkZr7$95 z<3>vzyA?vI&+%RD@yfzQ^J5juB&A_Mm;DY^u>&}M+HTr!RyL-lV&q4@Yei5yw}q;k z49O(Zu8%7cS3_Kla5ct7b;jUof~zU6I9v(1w7*0|TFXQd!em@+akazM9#<z^U2vu0 zqQ9=VGH`XH1pXYj$o!-!DJv`;!rnafuPYDFEqpL?&G5rNeEPHB!jM_&h1s>AJoR~L zpRYbVyWwW70N;?cHPd1iAD?}x{h05^S<{Z4s+dtxv)v;#M!oS+-OgQ0%oVoyhK8QL zU!L^cIIu>&{oONGKH08T$hR9_U-skpi#?l895-*>?DapT4ed2+<d362eS2YGtw{sB z1kAs1CMVi5;PJI-KYZ0uIdSihh?kr8w`{L>HE-wH)w5sfd3JAN?pHsqAGxi(nSXr4 zwDiv}z4+I(sX;g1SQ#{?_JHfrEwiGI4amysyXc;`mS6Fs{#Et21LGA`1<)0PPrCR1 z8($6oW;OY5K|odV+dzI*`DBe%<xezJoqw(xesneRdsfrV6K2g5dG>f`HT52-CjYr= z<e#l3Ke?LxSF4dvbHeV~L{9yN&#LrRs~SD@uO^@Tf}JILevrGXDnF^3c76zcRqfdd zJvUVRl%X_v@fRopCB25o|DlD*(C0OrCh=R)WX4~b2$WcvUrdu8e|4Zo`g_|(_4+Fh z(ZqNA+lzdX(@hH2`2Moq3tsIRA@kdLwdWN$yCBH1OZf$|j(3nx@}KjP^BnXOsDvr@ zK6YjX$adC&<0SqGDPQyVAHqjczS2er)^vCV`~c-H+<=4}fhx*6DJMws$v4v9S>)TR z;J*S-OY$=%pZqEP{VL@wOA+Z6B2bpf_N2;wg~|NyrT#aPqs5=b|51+bYRRuHU?orL zznSbWddPo^WqV3wd$jT0%H!y#tde?$8u>3%wlln?NNeM`9QI88nknVW>Xngf=YC2& z-B9pnl@%Atetp+m<PR5tvRt<R5t*;8Z<fgM9VZ2AdYdBcBtz;=Yya<3{xW$(((>EL z{wBnW3bpp%CHW&-dFI!b{B5#5vY0Xp?FoQgg?ib;7m|Os)MudV*EBg^J7oR}ng0{? zNpe#9+GUOi_Mkn1KsHMKBguc?gHQI)H)-TFllg<B-o{D&OEoL+$?@{GpZg$??Ag2h zk4ih)A@!Uf<rm2D9WL!n)8~sa|0AhqtzXYdecterb5)MxWa&>dey+^lEZeWu`xf$p zlp4xbT9~;1VSQCxlAqVC8Lg?36{mCbgo#DY;*y-nB~GW}>^>mNnO`uuV02+|Nx|d+ zS!v@Z78MN0$sJ!Hu&R-v{Y%CdchBozl8}%$CTFs<WO7bn2{O|A=ino~AArQ%oZ`Yf z=fvWY$ptwRx({#;h<B#<Z{zIOvseF;Hcn^W^yvu+39SSRq{5=n-TSw8_D^ySNN}d7 zE6$<dC6Aw&movT~Eg`*M&;DpF<)su(EOw$;LF?{Cg(Y1R(x-C%#PP-HeKPv>pV;3i z3s+M~wXIIhDK0J?U6ei{kF+#>x^q&&<l>1%IpYgUW;mzDQ!PFFmn7wt%$QVwUM3_u zvz*fk^9zccg=h#jqkl>3f};HKRcYo9N=cSIlf9K)>R-}!N^ya6R8C$&Nq4t;p^5>} zqOP2(v;u_*tyHJ!YL%et^B<QioSr@bZDGr(Y#3E_KW_jmBFWjOClroyt@9>MDdFDG zSQhHBu^juy?O`3j`bX#GIg82o6BOsbqG^Ri`Oba?#Zx8}C;;=cS%C?WH_n+iW*ih= zI35O&H$BIhQ&KR!5KZF5s6sM@nV1(&Dk!JWgq*@6Y9Eb9F6IEnDsw_Ya(a3~5^BpE zQ;;{VAm3S1P+Y>=f&C`5a(03BI(2rd^z^h==`$)xNr8|yu(7;}lV&(eCZa-~B-IXG z`qX~aPc5E*JhLzd@jq&-ZVsdUtx$LMlQ>zJpX|U8eZIQSjwGHL=@{99{G5^;F@%-6 zo`9|=h^~9<Pvm#+jc(@`7CA8$@~aU7{XuYl=d>|}d1IzcoSZK-?J**x%c=(iG~J^l zk1i;I$B|RHY7Zwy_dimOn}Lvmt7%Zx7LpK;9!|(99tW-8$&wNhG)?G44@D%muCC(h z%^?vQ{$J_v|D`ooF$4cktD{?-vwsdeKYW67YR-6?_ZZg9+<0g>1*4FUDeH!7X6}8< z)NVWd^7^qOtja}To>Usx9#i4R#BDomJZ@bD#nOXRHOpW=Sx#8DYkE}GehhSGF4a|C z^Q*U!|I}erYAns>sv7I<HOY0b*L0G95#AWirii_Shsl%q{+~KhjF{Kd7S79=TU@L) zj8-m{`bw(yn%Cmql2<&17ZuXuRWdX(vpbEG=VahH|Nr@9K&^i}7hGzC{Ya(p&6N~@ z8!jyZs<%1n*FX15RT(~R*ngu?_aP>Os_M2y?a}fpTVNHppKfVs&cqh+O1I4JUDBMb zTC~<<ty&~0X+wr|?$X_v&>~S}4;cb->lO(K9?4c7Nv!-0*bg;eZ<9j$G+>__4^=YH zpqLS(y-y48n^Mf6s8#$|b#7J6|7jjQmJs(g8bJF9c3gd;XW+@yqCAdI`cu)G2s|qh zPS21bg@v_fr~Vn>ls6@;5KlTr<rST8LK%S}P(FQS9G)!A%1+78x&8=h^HmPY^u3%m zDWA)9Nt4xh@-rykNqO2nJ~G9hd>+4^Y3H<-zd%0cDp{WSd*$~X7WurZ@wN2c-hwYi zghlelVYhsAU;jJmmS0oP#s0Kgez05qX}A13Zuu2%`E}j$FT3T3y5(PY%h&c&2o8|_ zBAo}i@wI&;D4+MgH7G^O!DBa%la`<Amajdt6XtNsCt2EGAGdtco%T1xEuZSp{zkgx zYhysz7`J>FlKwZzEgz5e`rmZ7d}$(#&3DU(f$D!t-SYkPTt!*smhbPDzt%0E>|6WW z=$5bTtr51_EuX&o(Ehf%<!gIcgza$4$F7|I=P12oag_VSwYDpcMSDvOw~snX_gmi6 z@!LuL679<Er~&x&k4#03(qjm}aQZg>qIyu8%;3UNPIsX+xt0riIo*!ZWXcz|a=I0z zX{ax3<aAR?(-2=+#p#BWrlGwspVMKKrXjsBiPJ%prlGtrlG8Ry(-2<h!)XJhY3MGb za{5Lqq-n@5#B=%=O4Ag&VCVD?l%}D(5WwkgDeXsTh0|YBnuhAa<-d>-^$DeEh%TJw z^!rGUT7@+KCH&aE?BCgrvTq%w-(BuAAal9TOl-+Hme(?J(4i(Yb-VU<l)36p-zhql zcQ}KDW4R9n107ASJIc;EO0WA(t&L$>Ob~{}I^y=}QOqCl9*x4N7XFb7xjvNN#O0IL ziSmC@`F(#G9c7mt`zks))Ps(H|5XwSVSS~rnnIW;?=5eBheGI2nG)kD?eKE~Vgn(s zq^6_1LsJy5s09sFIPfvzpie4@>aUgCqqan&OFJo3YFx+$Q?wiPzY1~GnF}QH_R$eM zJ`{%yj?8zIo1$XTB}ZBM^@P2L(znqNA4=armf={Ql!g5)^mR96R2=^E_H9SmyXEQI z$__fpzNkpSIDnEul(It=&uj1w0pCS%*}G^#47EUHJ_J&E`VL3lQOEN1<BqapRPuKW zJEV%tqcZbbWJ3BGct13tJvE@4r~xHG;wIPwnDhpbAShZVKr|C>!-7O3o{YC^jqvA2 zY-{A*j)|hmS)$5+p+LoFw?rqnu`KZ=U1A@X#ND8w2Q|DU))NvFgv4niaX}@C!*q#% zwba`<PDuRysHduqV8%cz74Rj{N;C;fs3g#)3w+5XFszy;&J+?K7ZN{1fr@W#dUtvU z^@GQ9m`mbe&@h(e1Gkm!`}Er~ua@QuxxIwk*(7&KCAm}emKt4hC%MbL;VrkOkW1fL zKm(0QZp%t?>+5n~Y+=`iJ(T52Gt+Eu7F-e(x)V2Fi2EGuiqki|yZ;u|$=x6B68A6A zFy`JP)KmzZECenjfh#KsB*!NN)^G`&PBb#KLkBT`F?SACoPq;I>skn5ZAe&`O2Wc* zVSD22T4$R{VS6x-k$0$KwGed)s}FSa5||ag|KZ)yqttlrXt7JwX`(Gp+9yiBMkRO4 zlI1=<UA!I0Je0m`Jv)%Sbn8K>cSWh$RBDMRRi3^}Oir$UdD2TnK?}!d@LmBQ*DE>S z+^+SjKQhbH_j=BX?YQqis;2|lgiJJGkZ8b7h^X+D5?v1D8=;k^vI*y|duwD55m+NR zu10)BwB<<_A$lW;eo>Yz_i5|mJu7&(u@Z#NrxUMK=LNcWbD8Hc@&#!99yWvJ9Xe6L z_l2x4NfwlKx0K^@OsTcBmcH4{uBofBkbK(Bre?TFJ_lySBq4delzirQO$Vo?6TPKN z9^sPwKG9J79$JG?i(bcKKqQuTSWa?7h1^&vw@jC-Ip-BMwHEuh<W2?+1N=7iy(+(w ziE2D?Sj+Mb;Z)<Z+@_@MSb<TC>Q<^TLa*_`rn-(4StE6%sv5t<Es<(;;aubMkWkTD z)Yw(l_{?vb?zBF>pxaLaSB)z`^Xx+-&3ZMzbQVi5af_thb)dQu(Q{#n$C~JkPm`it zjjJSTt%s;zP`081T@s?oU81gEW2?Ro>snO#KJh-MEVlkU7w;%C(faa%yPz%d&udFh ztHfek<U4wlN0swP)D(+WWvENkA}>)8#JbI*636w*&&TTh?N6D@lWK}aMiDPw=k0Ov znhD8ngH}l|^Re1>srXBjtvE{U=KdDDM4i4WM$1FR+{|aGOoCp0Cs&y*D1&A`986Vo zm`l7e%3|4dUA%>rWY_SvgcDebxtf_sqMGQ<JQ8C^gLz@nR#e$TR9S;~b@VEqcJTr$ zRr&kTO1jDSsB{lXS8OA7ar+0mgzf*8`}t=O_j3*LHc=MyTDo}ak?A>yN-NY#wf=<X z6IWLqB(0;bR_mE)yVliSkaj42|D%|&<>~u9?*%V-$S{$N8`K$Y(c>-|Hg3`W-;Xy+ z-_L`20$4@9-uTHb>Nmeo<M(rmy=rUkQQI04alc+$OP7fC5Fu{G%R5XW)=gxHHd$S) zsmMH({`4a5*VCT;GI@+hbCNOBs`cwYl&+gr+}NkNv0ftfc{KI{%2c$`MJ#ZM`1uMC z>c~KdU*2IK@s3ayt8l1`cL<q>(l?{EO6i=Z75^10MZ;0IXWQx5n67c1L<09%w6<Ga z0;fV?Y5HchJe}I#ApL1XJSF{wWra&pG)XGaCB4(wu31QPNV+f@w~+Gm%{;m{fmJNl zd-0Hqs#50iq*eSV(cx3#eSKN$?RXdO1Tqh$A0CvvI<S1;VbKV7c4Ix-w3-B*Hfz0W z<`S@$1#BU89ZKIyLFt^Wk@NbMr*DNo_|hNBj*<gRKT@84gd3efvL4VI^GzeYf0@YK zVTXujRQQOvZCTT|l%{W0FK#YR-{L6Gx}NVytjP~|C3P<b&<*if7Imm%1Hy{C@bRzr z<bz;9*_>NtQ?8fJxus5Nb>AG^x$!XC1f%~MHK8MwTVDGKsviqM>QcGSecYNu6%YJ; z`}Qg!2n!ZPd58RD#naIJ2qC>}&UHuGl*^9t^vnL+0}xza8n9}_d#kjn9c~22@>NGs zoJjIHupz`#($!Srmt9_(ewDKQx2L8o+*=ajzdik`|MtC(@`2YKYyG!(HMG6hL`XSQ z(MgJMl;Z(;Z#)A3Jy|F{@Os%tc#yq)RLXX><2u00jxuT{w~`Q4R(iUV%qYDCg^Em4 z>=)>*ywx~9{nk-dr9{P37+UKkOe%>4ehPs+-*i0;MUGUnR<r+`|42e;WeL@d0$T8S zr4}5=1HD%ZwDRtnJB0DW2p&qsyp$uUE3@h`M{Unls*McDtF|(9w^|96H5Th?Z-4A{ z41wA<!w@&R?|D=t?8QvpODb>sBOBUgwvr0$+=zQd`euhpOPj6I9y4f<fs=<SMqQ#& z!b87I`w9^|_9RfxA+tNk{(FwYc6RKEmw8E?hy9N!u-5dAWhaPe^Fe{-11Se>WVh0t zg}<jY&&ElJ%Bpb9>sA+=Im(EF)*Y%?0?I|~K<Q<UU8MG5NqMN^MPL=tB%^fykYU2` z{wG>#L`A4kG<T}kN<3{s$Y%86T3uSXOli`9rj<mHy|og_d0tvM$oCBott7H=y@ywS zfNb>e4qCYvB|NmUSC)ZR9tKtsKqCK{R%%g^zt>6_ZA?h5wBuS`TKSUF?pmn_vbR>O zoad#L1(mf@kA>@6`T7E6-&rfeP{KniFUT^`$~<5dHz@tjwDLO@`FpLH#MT6xY-6s~ zrIr0cgv(aUAbV@&S3Ji1@A1;gYn8QPX5qS44p;oGR?<<zLn{x-GSEsPu!`>}{m-;= zhKl^XR(|5AWigTcxK@`|UKS!;TDbzUw^mMZo|jgNDr@D+_oN10E3a|#jx(qws`t>! zTv-NM=?|>pBT5Ucuzx1U5(;-)0e5>EeXqdn^t5zq-%&qNeR(=^4pqEN$p*)<LGAzW zUdRZAZ_<2xye6XT@X~=Nm!=>0-!t$e6{N)@`_}_h@uBqVoGzVnT`B1e{JLX#A5uB0 zXHQy)TM5<(aXXmSjBcsemZtg{-pIX?kFWeFl}=Cfr4z2J7hjOKpgZ*_$g@W$sqjDU z5mukvqhHU99&!5bd&IO#J^F}*ppUN2p<>#Y_#gKumAc>>Binz}qg2_W2C_$-{`(#= ztx}I}o%8O|CVK4l=#jQ8!uKz})vv5Raa(DWn~u6I{a`r%WP$g$mOhhf(k=ZNO8#TJ zm@l>X)psZjOXu|8YmsS{w78vwc-X}-+9B}J;+-r#mbW_e9{oav|8bA(vPV|gBToN) zkC;}eN8g?G?ok;%!RtNJzOU;%xbvXyWnXk2*csmqM(qiv@BEg>9Yol_bJ?HW%YMsj zLf?m39Q*z>Rye<fh($k^*b~0e%4e3{$SnJ<YuV48Z-<<8l)k4r+Mb&71N@a`*oe-< zJCEp`-P!rxD%baezrKg*O!DNny7apW{_9$hS2!VOd^>xNy@Oq8ZqKEl3x3-=d4|l( zu}4#`l4GCE;ap<ck<1q49DDorTC8J7EtYMM=Q7#$xq1Wzxfq4=FV6LM{{AKBUS9Xz z?&aU_e);=#3lXV!XVv#FKjLEOF-33nbkXV}_f~VB&aEnf_wQPq+q!uA`StV9t$e*= z&s(Uk2o;{+vFO5M+uKc#j-4CdzI{;>WwzGNRxK)4ym@Zrn(1JEzhw)N&&}Tz8-IT3 znu__05}LHL$4>9qv8YLOf}M*bR>?=<b8js`!FG1kk-$}m8d|sbZs#I2Ny@HxdCzw{ z-cA5*wg*i~a_8-MTkzt+!yv`Z72GBenXL8i!i#IEtxLB`$+72Fz1T$SCl!iKpz$ke zVvn;YG*RqTsY~YBl{<i_Qw=xXJqZunafqM%=JxGfh~GMW`}TJTYo57%`+kJ&Vamg? z21v&fyak&QD-gyad<x+$;Cm59z%(x-Y>zM#n<2vyjzTya;WUKn5pF=Z3*qYsPa@op z@D{>r2<i7izSwnYkFX8G;RrJj&PF&5;d+FN5$-~`4dF?I=MdgP_#46qv@Zs;c0R%m za4DM+(l+l=goU_oT}L<%w;(&7k=D??7U7o&>DLSNozYT+TM%wW*bd9Z!wBahtUy>3 z3up_r5bGnPcfq<LbRZmpkbdnjAK_Aj`w?zN*bk2(hY_wpSb?xP9@a9Uuk{EYLa6=b zL!H@AQKtu};Wf>cRjN6F@*{9f$2c@YsQp#V7w@SOKlE$#3*(^p1!VYz_VBMU%`#u< z6n1yh#KsLt29@uMD*$r&d73iuM`efOdg3SOk1{&@1uQnC)$$#T1|dm#vvI8l9*<DR z$GPzJ$ld~cxI1nT0;v2hTou6a<+ZE)Kv(&b$o>{Mwh3K$rVGD?>`#HmxZ}AlJOcgx z5;*@}Mr(f`7v3KD$9IrFoa`4kJyz=d8}BMV8~DHPP<}n|ckfVs7jSC7pS%3-F8L?_ zru?nHDIbCPL-o`A)!RSDCBHrJqjzZEaNuWv(;84O-_uooHt<jGP@amZGy7z+C7U1n z(BH0v3wu@+JFv#Mj-R@Ho8E;pb;4xT#>i;$qgn`e;36BO_tQ*wyK&M>jmDZPH->nV za4p9+9P{X<TTPZ1Z!LJU;ER|SSUqnqc!lsi%)5n-RwJ(hyut7>%=^A-9@+Y4RFwfA zl!mywtQqJ5;fH~b1-`-^H<WSz2(JKs{0`+UCivz%l#c~I7QU~#`W?Vm0I#n8F(e;2 zzK3zOKZ~2kzF;ZvpMcZ7O7CC33*QX<ci`2{<-@=$fLAw{D}Y}HUS0bw@WmnU>D9GA z7We|-)s=SufA$XL#{f^l1A2G&{u#P*2kppP3OpNlRlbIbbj7s=9Qw|&fHJ!H1*|l5 z@e5sHO!u=dH+Augz2C>-7r)ro;g?cs&hks0?3dEnFTS&1Y!^Q}c;I*Ov+!?ZuR@N3 z`xdNC|GRx#jYve}wy9aage%V(*5F=p&6;&1Tsdlc4N3>@Kh)<NRhiZKvZ^dHK*axM zmfnv4M*gdT|7zgB8u+gU{;PriYT&;b`2Vd2<a<HddqCQIKU#nAIKqG4p|&W~@*}Wr zr$78IkpHyv8}N%q{?pEf!LN<^PkTQ}JLZ9(y@2pDGBL93^vP>(3bkkUYk%FINa?k5 zQAkTf`df>i2htz58u-tFbu|6iM4()jxC|8h5SagX9V_D$$Zjb1-geH_)}Cu+N40$j zEIauRzg*?NP}y)T|FEn;Yj+=6-m39sDAlj`58Ef)KhU`-zIx|$tdxhnZ%%9N#3LT3 zm&%4<`-ao9`?8k*y+AwX&0FGmIgr1}(3c+O@K;BM(K1YyVTKF`$#9emr^;}#4A;o; zSs8AZ;XxT5li_(8idz5Qe`@c!X_D}YBeqHh=1wUpnPN|Bk<=nSE}_*FP9`)F8TMB3 z32hSMancNJ7zo1=!>=8NGulsx^FHjx`>+}BLvp+ibMZdR$@`ET@56we<DC)Li*DYB zy?7tS<b8-svlgP=viV9ondS{6K;yjdnKCV_RlE;*@jisf`w%Mc!-l*M@9{oV%KH!> z??bA*4+Zi*yvF;G8}CDwybr_jKFr4Z@F?%Yp}Y?V@;(g8`!FW&Lxa2zJMum>N;6U| zj95gk!_uEcUD6rx<2g9?Pj{^v4MvJXDHOX>JP?j==2CdeQ{&*EO<9H5xH5Meh`3LG zd|1q5%TUO7n;oC#PX73qNEwQSQ1kdanE7-ht*uHRgAiNy353@u!yc}A(3gX;K~^)s zJbfGTYJCF-WuB1&YOQyQ5uHi7N{zKm5$|`IsD7Et5O*Fyw(3u)xm_+kCif(wc}fvJ ziYeO?@Gw3D0?(8qr^hQpAf-PxAk2M#Mz&hxS_<L=Zj!_rx5pwr&=(Z7Mg?vP=E3JU zzbm?G9`X_AUrt1P=(VB5Nv8Z^pEja+dx{S~PVvB>h%+h~?m6hk0f^3B0VAJ|WGODI zqeS*!2^tFpm=_FQh%Im+n{<@gtpsz~#gF9Rhw@0$p@8&@e`_z4SAxe{QFK{cUjcp& z;41=2xC9@1W&pP0k@*X*>jZMipq>RNxj`KUMZo{m!6ll+l?L5FUFIj3;#kHeKw5jE z!I!!LeSXqBd>4TJ_5|9O7@|qT>H>V(GD9?pUXPrv7axFj*+dNiQ$c(6nOgWcG2jO@ ziV|dl@tJqzU<dtaWWJ&Sve@~~KtI~*#5OLFPdrfDF=Q)2gRnp_f8YK-eB%N5S{0Pw zUqV6o;o%rX8HyIw#2qpSmsA^rKV@bp%1D4s0JJ2Kd*^=xHH2J?Msb7Mx*s-|kj?}= zT%&M1ZR>N8U;6<pA<Q+^8Q@I<zQ~h9MFlbBct;RxtLtHHl>0b{FI6ThA@i4jS5NKL zL}>m1I7f9J*I6eEcQ<pi+P4&&gMe(i^JOhUfps3BDcMrR8}>>7CVnOS`eNWIs!waY zjIQI{RMu{t0rvv$seaNFFS6@+Q`nV_J`{oXR{LS*PSSCj1UCAR_yF|{V5@YT8%ZA$ zAEMTSiEY(!>Y7kh-JfW7j!<7mGf!c-KPC=0k3N*zGur?jtBwNeEFk)IyRhp~B?Ny( zmODY6lm&-|^<V@pm)X09PUx!kB@CSTUiB~<9uH<}WwsJ}6qDLKOWlSF)qx-k(@4r) z3@ug{`2w1R>{%KlT%IVpLVXo3QC$V>F&*c|3j8tk(R|=rfgSL`-FhvUFREwyfcYg@ zv>oc|wu|Xr@ou%14RkA7S09(4v!Yp@?3IP!L+aTcU?zf<=E-y;{abAj4AKw~Cg>!V zM0Vp|@hR0B0_Fm+mg~&%G(4iZ>*|+yG*F)e_L`2LYUC;8mRbWj>LC!m&`G2=_nH)g z73QE`0^ycUqM9V>V;Z{_hMAEd1)5<FxL6NXGA$+S6)d^U$%cctnM_70H3@jC#<B4r z3C;*ZAf_F2?g5^!b9hb)&KScF^(1Ew@TEG3=at~hG=$8RoK3*D=p0s$;A}Pg41?ji z4gjauXT;c%ij=Ss<VtoM3a8;9Uf8XA0r<}vN5TgTQ!y`SKB^YT!XCPGZ{c*9jQK-D z-(|9N44^oI`Hmvs&kZ9Q$kG{r=-5Z$9K+ru-}1HL_gF>gMZyaJjU$*#3;27(Gp(@I zPw+xO%Lr!I8g?`lr7s&+LDO9NDL~J=N;CY2;a|9KaOrme9d?x-PW?6*r@{!iV{|I# z_bzw?)-7h6@n&-g)5*xbxMbbispY}O-gs}0g+~I4a={-{(;|#%xZg9}5l~kb{PP6B zQO1?+g!@)U0LpX069{f*?AcPnvjHt|!8d9FjyDdPE#b!iZPMY;9hlVSj>b>W0d+gF z4-&+yhiw>danBQ^p2m5&>#ARYaNdKYgvKs`kiN!ExFM-GfvK4Ka#VU10LnKmYcH!0 z17s(dM<w*vY{0XPV=_@F3E8PyN%ksA=w__!%?pgz#{eG)Y?y{CVF#uFT4vmIkGNZ@ zC4goUEXMnuE`T33PMn3iFPX!GfHr8bkRHaI7mRlg$7m7fP2lemM^}Ino>QWj-!V2Q zlVZLEe9lu0Q$91+DwR_H1Z;sS+@yrvrq$Ya#!vB3$~83r9;0y-0ber4ERwaP0?Hs* z^u;F+rLP*7FO#L6fC^lt8NOvihecQC0$S)QeR(8Gn@#JY<h-VnVK!@}rJrF=fGK6E z<m>}}MCS-U!<@TJC9pU459ff>ZieWm@H5PbHocFQGRF#E8-h!4gb&#?8tsWUz1muG z;(({<9O3tv)7f-#gyi%EKFWi`Lnz0Q*;%GJa8X?AJTO=4Z2hjIgfVfbX(9YJ6E}nO zx(88m#+hEkh%@I1@RK^nH7kU$DW(Hh5Hj%^ND5|~TVF#J8o5=bkMD+c)dptQaiOm{ zw4ivx^r+U)w!pjU9H9&5ykg40Vw&q20i0ep7xj#XLsP<-bI@cMFFE%CU!!yQ&c!XK z56M1e%F|l@3YhQcY&U(e*z=}7@Lyc@agfe>5T&r+O$9-cL+=*X^wXN>rY{y2?9*<P zBu0T0uM>rB;HXf=9P4B1CGQa3foJO+Ug)_bhBAAqPgA&jwHT~Yoyki^H<8PHf^e7O zKCB06i%w)|LeDI1lTVjUl6U~5Zz>br4UdcL@Od;u7P$_3EhtM24a;`ZCbK{Aao`bz zTM`Xsa%Hv>#>BHeH?$G&4N|@*(WM2!zUI?&lGNE8FqiA>p>S-%jfef*56Z3OYeXZt z{%1j=Ta#OBNvtA>^?bW7mJ&Y(=}VnR5+x_z*Dzgjeg$rXK?z}8D-%PPc15kJzAt0e ztDzv&*GNj(i>San$Tve%UmHM~8tl@u^ij+n?;F`&HopMOh1IZKg=H;^eCMOp-0jCv z=FKX~xs4Q8wZZr4g|f&|(9cy<L{_lf*M!GDuHY{)LjyHc@JP8n#JuMU4*Rau)^!P> zXXr(A?YZ~-q;G7RtiTE8j4IgPJ@~~pVt_2N8uaI?DI$AdHh<MpviE}dWfg4hhFcF( z&9uYCo&FW{TJQm0<1d~7`Qb|pcTcmek1P@mdTJF#xEu7LS%|q;ZCT_V(2J`m;(A0B zwd9!BV!^`=yC3vtt0=<Ggg#^~GtCJw5iar$=%49DbfS$NN=QS{%*)M3ala+@B@lgs zwT`<6+NG<I&1B~fn5Xs^CF+BnQbh^Z@P%xkd*s9B4LwAOK46d3OSpJpePBT5XU)-A zS5STG43Jh3kroa@_j-$z(1jzx-fCW!3+7W`y{wC*jwoS&j0OI-`BQX|>QD~>|4@^r zgk2s0c)z(FZdMGR2Xx5=U!!f056mAz6zyZEJ|Wos!6g?lYvA_GUzt0=PPP%;7*Jac z=EraMNz3dC^PhM+Wp+O>b9MHp67-Jpl`tm$ZvFsEC(2M~fmDu5XuwTXOte@!^p?b@ zLE5Gh$*85ohpC~pEe(Ao@k5YK=|s1xnHX*9iM8`Ks`@vOYQR#xs&*HfXj!*FvKxch zx-we{W3gQ=HDJIjHVdQ?I?=76+4rNN{Vd^wBylQ8i*=$~Lz$Ro@oy-JPk^*dC+a$q z4Q2Ku%V{jEx&9BqJXM*kgfX$y64F2te*?)E&p4w0ZVg?IKATrt@}Xmv7zt8Ko#@t3 zCO&0p+CdT>AdS$8-VJ5;R?9C~_OaNhU@orAR>GM0p5+8qw@iEjq*rvJTSM>biH82$ zva_uu9tP>SPIPN16Th_#DVM}6Ao<qSy6)XjW?#0vho^7Re=u8CW-DP#RIT&yRK!FF zNJDg@TSHH!prHZQABRZdy&&DE6Wtoh#0J)Fk&?I$q*rvJcSD)o(z;tSl*3>iugq4$ zn3!rkGFghf0+NdPUuo#yhH;qtSdDjye}zX41F5M_q)tk!yF$Jv&uX3{cHY!9kb3Dv z>X8!0oKovjtcz$1MI8-%w$9Oo$-5@AAGf9?NcO{EZmWjPjc{+tE7o~%R9wr4D05sd zM=FyoIb@wbMRKkH_eCE?|6MI{V}EPi4+2Y!M5JvsY|)5_&q@`A#=G7Uc-uegA+ib; zZ?mIv|4#S_JQjzi%pMf=9|}=QecP$l2qLYiKciTrwR{=}%b!EBNb8E-9IQOS!7ATe z%6y;!2dler@L(<n56$J^;dLCW*~-BqyEs_;EeDU9u}Y7$u8Za1vHl#aFXCXsLJl@Q z!@;I~96WiFgQpGf=8@Lt8glSLHx9Op=HTT89Bh4@gIC|<;I&g6y#6}}+XAtd5NUm* z83)_bIe61&6lLxR<KV5f9K1b*gPqej*!3g_yLWN$&M6M|UFYE4y13CsTHou)!TxLx z4$R@;;Da0-dYyyApK|c8UpaU`7&{V?)(@I;aHKN_A38bsXbuM-KgPk)w-DH^7WE{D zR`qudZEF2O$`4hkJ$7rjO3JZY>#L*|yS0Hz3b9+GWVvWrE{4k)GciqSBsYXzn0g^< zsnIh6aq|c~wARR)f{|AmP=1ZxYw$$40;_{Zaar+i04O#_gOZy7?b{lYZVQmtG*k&H z=ntS@Q}prxGC$CP;PzOH)EKZDhE5W`1yDg?Psmgna%Dp&-HS<i3%Ld?OSm?P4EIGv zY8~V@&=6Z+S3&3XUVxJTrRs1K^hcJ?dlyqt9RSFw!^5d`Bicf(G086lYXhX!X@D2# z6s|x}O7^voly!ig(J3sY;TCxP8nYgVg@m^N?bl$jPup<eNWgOq6969vbXJ3HRHxGT z5j^kKSa!aN+=jXdSVh}~Vxm$91ATD8P(_(YEv&60ihmvyr9{?fM`0kHH)Z=^FgVeZ zW@1ja2GM82Jt$H${Q<;ddO^1}yDbAD@EGnoH68TjSny_w_UK##$4i1V4c8o8)|J4N zSm%IA{1sXgr*kStAh#o6pW9Fv<X%9$8o48|mr=9FU3jK@38as4eU8ieaMf~E#eWUp zrt9sHo1EFKGai8MiuWmWAgNwB5Q#R&8W6uo9xZU!5JWGLBWzAv0_rb2y1^Y{ByIa3 z-gb!U@V6ozS8y*DRj)-0%?=|5fr1e?zC=-PyqqAw>7HO+^8KnoEgLC3?s|ehq_X@$ zEmG>z#;Iyk8+V4OBV)V9QR>oCQT0<hS+V>@p)WPWMm$k{-G`tXwT_yG>GCN!e-Vcw z?lsWrT&=Hui<=`s4XLy@hgA@*Mhq0344uPuks6e`QKY;UYC2j<86$~v0s<BP5G3oq zMG9@LemEU_ZAi~^HFD}8ASvoW7#Eq#2Cbkd-J)RPC`E0r=64YVTehKkQq>d9MOv_w zz-~=Y-=RiMSZl5LJZLtuRzeX6t!8kLxR8US;BkZ{*XN*36An^ZbI@)lQ|>;<LHmDm z(BUKpo$g~w>NpO%tmMqJbsThkhJ*C29CYi%6h{vZx)0=_$4Cw`zh_F;FC6sxlY`zC z#`@mRLBFXK_$58VLGmZ?jgfwBE+Gg!0uN+6+y-vXv>0jCzaXLkwx@PrSQNG4AED6o z%*~jX>Q{EWql3$u2J=w_GW!h}ym}3}3JNhIz5`152=?i};7lUm01XmuMe*MTeq_K@ z+E0xPnD#UWvwVsuHMb!L_qFF>L0=9^M{%%l76*%;;h=0U2j#~&SaF4el{F`llvT|+ zSe?ni!xK1IJCB2P<s3ZrI0x%@bMW{{4mRB6U}NAUlCmj*gTFpQ1MLAubs0RGJ;0=9 zBHJF|tB&T-tiH{mMV-x|Reg*@oBA2T$iUo1ITYkAg&T_uEO?NEQ7>{ZdM^iKj&V?U ziG#5!)|Qch<LYuSK81q`LpZp1G6$0%;h<zY2UCu5F!dG((}Rks_>5Q%X1C^GZVwJh zhjXy-UJe$ObFk!b4wi1?p!@^}%fI7b<sS%IrIR-fdRwL6VkFYfJA!trG=_=fkAvP( z$+;!c?@WT;RcXT`k$&D0bU>vwVB%cL|3Iw|B_`4jOoINc(gd$N#Eke4>bX{ma-|{e ze~@hpDZxi=#3X!Oy^IM=aJ~m@vl6Ec{R><{Cd2NL*bdWiVoMqH4Ny?D;b+)33Ee=P zFjS%Vp8%<Ddw7qamWJ8A6@}8fbvSYI3?Qetj}iLnGx~k>BzmP06J>fCzU2>Yd7v?F zarE<*;AHBmYR=C?yxj!|5<jL1PNJ@==E3(P|85m@OAY#oOK=<J2hCo9c*j$5*cAch zz-66ID!2<V_-BY|$doSr;~-`@GIBMJ(ulqt3+~n*eI%wj6Cd*lol8AzMBi5i_q-mD z`w^jQ@v%Wi>7SNTf_pc`oMCi3kX<?&i+}cthE(yVZ68x|AetT0u|0ZU<6tTrWEwB! zlb(W82+92!#c&rqh9IfzKIG(aj+&G<4~cwE7?S!VBT>K!Q&N#15~Da_N%{jmCuB4y z0+K%Ji^LdC*pqX{kH?w)oaof%3(Te15Q9PW#bPDpRV#RP48hQVlJXEdRY+aKXXv&i zW%>vtLJg$$fRyk6B<^A)G$kq+i7>;PnBn%erPR`J!$y>8+kqMyA>uu#o%KYVPVf$? zFXF#aD<ehxFg4OH;+HAjz;GIJYX6jicw+<o^O?T5bJxUWT}ES3`+7GZv4*;LqiW<v zyAbMDNU~unylgw<_RtX9Zz#w&U8Od2+87?mz!w6*i*ydzkUJ;E&=2d51;Cf<98!c* z`xsTz&Jb0OZ$JTU(O}__MGfr@dr*2Wpbs>dTcOmZwPr{s!wXCCtpK1OJmHX^VVfac z48Qn`Tdg4m<A6){{pLuZS%&jz_!$6ln`?;e7WI(KMyb6s6`VeX1#{pAfcNp_Tx1;@ z=YrGU(4#ec0q_z}&Wp@ZFr7jM8GcU3&j5h0)j0&)zGM#lE1)5x4DZ0Qw*cRza|o8& z48{}<8Dr>%Q8^0yE1hGQg66hkxX|!bsiIueA$m06Ck(NnM`Huqr0-@zl2kT>w#|kj zk-~|#h0_tgTf|=(iFjxAF*Km<#stLss1{iE-G%v>cVDUMNiz9O(0<4zcAZMw8>5i; zSta`yqw|XzmW35Ch)Z!<4^v-0qW-prkdUitmJfag1LRpxv;(0x)J|xu`Zl1w8mx3Y zorfy^RR0JQYee;Pf>_Ope;VR#yR`!$Po*go?T5i>NPZ$@%7t2x<%@MwO<dOP)CPgf z?bH>B9l6ak#I}pzPF%1|fjdz<0qUW{tVB`zkp)WuX9FtMVJa=O&1NLzJT(#Padinu zt99Z+S1Vp^HU{vsfOhII%OQ?1M^WM4tf?S=4AOU=L}qh^4NKdi$NxUm55(&r8F6>x z9*b$k4`3lDhuUFf5Uz#;j@Brm>y7@TxpU2l8AV$eYDd6biSjPBxKY<7KySx&5)(@u z4rH{33ISm+bpyqscEB{Jb*?%ec)2Ghbv)TxGxf|cMR}jR^|Qc5@y;#CBoovlvt%2) z@K_8`zkywU0NODUMT2N#6Ha>>78f#D-Go&^nqPm!hpMe$cy$L*{s?t2b|y$Q7Thc3 z+-{F#$Vl}i41NT16L1NEtVfqJ{eOf}`S*@Ozx}C|U7dqkDYZM*uidFLiliU6;!Z^O z9Yfp8NN2Q#>eY-{m|ljA7&O+DQQ98$X6&g0$DgqTwrS6xZyQoG7UM=ZzuQn)g`#%b z6@<XhEeW5Bsarp2O|f)qnt>poTQSt6*t?w`f*>{H3hoeFGj_oUdUQ+1IG9vNFZgc= zQ5*+gi+BrQUiT%ae?I=EE9slz{zL;Oc5aRa{!&g2Txg~S-djcuRG=?QMjo0IkTDl^ z*&Tmjj<LX5FaQ>K0FQ-IU^0eA2z+!g2`nI!$XL;V#CC<T7&3a!2E(xo_Zt=x5BV(Q zLwE-%<Q@1ZQxU0c-)kh~lX)xz3R5%Az||NW6Ue2ZQ%aBhnec5baqh*7xT&dzdkpGb zahT`iYYaJjuWj3_5#qT9vb0cQ8AcdRKu_v#kbMi6)sLk0e1V{B!)=U$S_?8bTQ2^? zq6xfd*p53bTVpE_Qiya8x>ho8Lo<dnwKoP?&1#QPHe{&%0jsJ%v3lhf<SB;kBFm7~ z6g@Fyij=9>n1bnwp|?m`vi89g3<E?eAZr;KV;CY*_Ffb7N)*E|kxI=f!<ZPHA~nDF z2$+f?SELlRH+>~$7$uX2-YICLVXRD=dJlvN879c2rFR@m$uLPK1A0%T&J@d}z4zH6 zNKTW<)U2yeonfX(Zq0fJ-8ak;sUE%C!sHC|MG8+G6&Pg03Y9EN&3XVfU|6jdwqULF zLXg#s4B}ytWytCU!!WE9DO1)M7>?m_ky0|lJ0tayN|Q+Kl{0CQV%Vy_E+nl*&<p=i zrDAwpWErxq^a6W_NSS&S7Ac0EB4O!8|H7tWk4Ob%-A6s$CsOvz&x?`zP$j!nd*v34 zRt!hgP?#1Lihoiic~d4UhEGM7+KU#WhGQaSP$KK}i-Z+L*6AO@!2sUQtus7{Qw6;_ z7*ohW;amj%WZ6AdVhry`6_xjol^#zvgj)iZNqaHImkqSIRl^p*5RGGuAEhbE!_>B& z_&A8m8ZnK$7dT4q3lqTEXP7XM+O8_Cwm2|{O(m*dBA#Zt!5^5Ws<b_j($ydFY3f;& zS87+l4Vq@C$6*Ws@pw+bWqk@QmB?K6Hy}-so1`JOj+jzP-R=P>xLEyRrnu?$1}v5& zbw5CH(=v5*4S^K85R_9)E7S#p1XAikmW2UXty&ji>kjRDTt`BlC<3xZ-5!iz0z&W` zK=$I|Mv4jrWu5vxU@CkZ@L8g~f(%J{4<6g}gz7sH5|Dcnu$mw#ia(VKSqbN1dRjHW znyI4tfEyEqwIR^W>Z{NOvD*Xbq6?_~bA6QEq8=EhD1(rjqm{Gmge0Z*(!PMVs+s7@ z6hQO6;MckU-li7eR`L*_C%oW+c$PQqP#eHUybfrO4vPhIGVVjBUFx40+D`zT@`B%` zZtYc*(U2>Ee%D~7Ha)?b_N#xP+8TJW4a6mf{up)VuzC!BC<?jFbR^_)Sf%NRI%<)) zho=GQMJTJ9I~$Tusy?P3$rhARfX8bTC4|1XFny`+8!t>?A&_M*^ihAHU#q)d%4Dif z0@>_BU&qjx&Z;j#|73%EfgE(9p_s^~3bh$rA}Qu;AQv=LSV5oNnE9q()CZCT<xdY- zaPW8t@qJ&%&B$W9Xm~qCQG6*!PNB;NYF9M9D^i<Y0Wke#cqa?D5zMh+xU7evW)>uV zs$M$?e$!+&2G+#ZGVm$H`G{;H^e38lBa96ez!H}sdzBZIYwS7_&@;&1szGAvg<b21 zqWg``$@l>TWU2oG{+Z7ClEjCFm4owv@j3Vh=KKi!x)-N04f7|)f#?8p0$al;;o=tB zgq(YE8#SFVZi63ZP7?4`ox>IwcAiG<C*xJPOXl1IJl~7+azk(orl(ZNnFD-jRUE4+ z0ZxGBYywU{Kosqvx@@$pQo@>$5e1u!Hc5ORq|ZHwN?1uAIANyTu9EW;@ISmbDNw$t zf$3~-xgrfp!dG~>T*Ih@<KH$`OwCMR!>YMa$-vtahlf$XZA}YDOL!ol0u2_HKuZuM ztTnYc%`{b$GZ&<V8d1W1O*dksoW}ue)?i_pVe_a<!%UyTjc`-;0Y9X16akMh(VHp^ zp9XYMgQbYoc8Hi{IuA+oXsDW!p;TPlV}*ZfYbrH86NH^Kf*S#%*V$YnAUR7+w=fxb z8Q%?fKTU+J<_WTh)ux-7VjipGfZwZel(4r@*7S&}9U4OuSzQKbl?(oaCe{hlDA-CT zs7`$z&?{c>X;bbH2_FV@T!Z;$D1S=V2wgClee$6YG9L8`NWW`D{5TF?##Ga1w^hOc zSkTtNC3QhhG^QY*(cNV~TLNmQ!E$!cBaNw!PXwGQ>!LsKY%fk48<|fQo?DnR4fq0` z!!szH_K!?0d`4nv#GJ=~Z_+sUd2`VW>}~m!V~NS|+kp1!a2V}wnL7Hcfps%{0?;=u z_)*L!Q&*pSw1da|Iv^t)n46V{y@NHD$>Bpgdd!Ic9^=J%t^qjxeLBN-Se>cB>0Lvq zucrnA&h~j0D-DL7fW~UDu#3>3F5t}aX#}fO*8zJ4m%a*$(7r|2_c28a>1R)F!`j5z zE0^yM7R8_1+A1s%(o9bou0UAbmgLi(HPl@uOzS-Igx7Q{*7x&N;oaAE{9Etdaw6XU zg5K#N&U$(Zq*3QQz57eySk?mXPn`4M=-&O|G&F4tvWvW+T;q0v=&5{#26=k-U!m<w zkflBc{575P3yIgfy93UIIUfK&=EafTeKY1DbAASX!;2%m`>=+R6O224eO%lNIhUn( z{~20lIc<P<@#0AD-o;OHh5;W{6~}5S*6NxEoL-l3)#d5kx8R=16>bLUbq}KM-Gl9t za|HMoUL5J&YePvqEiMDUNgRC`b?-i*vy>A8>kY#thEenG@i7uk1eB)1!V*Zd?%l6o zj&YlZgOsZgb?@#sTEepcE!JSEXX)Laz+IF@JOTU}jiY;aI<}7CJ%IkD!BWI(r~}^p zi@sRv!SK~@fmaZRdaQeQf4IN^7=o%|8=@vI*9hp|eO?c#v?$>5#BnJtOnUcD2I<|q z1MjVIbno63E``1O7(hiXSbF#9nbLhP0kqr;K5g1RN5ann+OENFZXis0_mBEZfAcX& zpKC<jyFUh#WOwuvpsOxediN2S%xoOBu)qn$CHg65ne^`G(G=z+0B`Tbk=}j#Jjodd ze5B5yn&G~Mckc{u!*XT-pQmwj?|w5|!fOF-&|%HHXJEv*^qYWoyI|?v3!rTt^J9R{ zXt1;k>D{MBNX`x5K4^{mpi1vP4tF%xSAF1(HI5P{z5A5m67B%Vp~0dW&ASKX!?vaa zTaN2a-knXVI`1B!_)~vcHNxVIy!*!xrg`_FIl{E|BhSmb2Pl0<`3mno6-&RrS-YRX z(%0Mxf^k`|W0G)BJiYr6OqXWB6NvK{O(bpYei5dpW*|G$3(7UNgr8A!kUd_5JiWVL zE6miX;4A{ZO6S;+rF-{!7;)x24}6;!M|$^`wIt_5;K#i<(!0;ax`5?e0e(y8ux)B< z_inW0qW08IRTMie?x{2%>D`k|lG7G=*Qz*HQ>}iIGXnSo500mIC+El&E(YlV52Ehf z4Y`u@0`NDyIMTb@9dcTH1pEYX^kLM!dwnb*xUOG-U)SVFxUK0hER5km+yxroa`oLt zGfwyJzA!8%wgV|uBkJBgDnP>b0Ls^3sYB`AjXshy2Y9K*(Y^aHO~va0J*UA^g!Jy; z<>R+LFno0{@Povm9_!w{bp~E}CiojbKX{3tcj-(^O!E=2FEJwGhs#ZAns<-vD!qFQ z@Hma5d-vL?lf8QepiCDmy?ZWf7nX+iKLL&Nf=`=TVd>5ALO>5`a24L2e!0%>=p~R| z*ND1zPlJbG_z0j+T(I=+S7G_w&x?S5(_ovJWzxGZRwc(D3$id=LKlJ~z5BkQl9LF$ zqt4+Oq<QxYY$<VFgMp9GIJ$Q~)=R=u0nOH7&AUGUZF6Z_F+S#krFWkKhs|TY4bVFp zEbT&i_r+K^Fy}b%vtAtO-9wg2ecb|XK%LTdq<4>jt7CPB1B%vQQH|!^FV(@Q4gxj~ z*PXmO&%^4xd#d73ZEa<q4{4^y4D_9g@a`K7OQs9cdJ=hF-aS?ExmtwPi>VvE#UIGK zn%!wf#>|_VnRKFr62yC&z5c=m%UOuHfXixk0sSII!3`qQoGt-TNk87vbat91bYKT6 zdftyWH1p<4<+ODHs7x`9o{5zVX|10N;O)$DXVAm9P|-LY2<F|)iS!n1G+ML(z;ayN zJW-io6u*F8QqiY@zCw)Vpi2htWlnz-y=aBZgFugH48@-c1@l(sob$z^mI|Oh5rdT= z!26zoxf0h0?xF@Ru0RRmjm$+eC*v^ynN0|wQnnO)C_%iBd4JCsEQ5e_^FnzW^TEx{ z@dY7}0xy(zF)y8%hqFL{l<Fu?qT0NP>8ti^qbT&_fhRrTAl}5>*r+9L13-3as1n3` zn9tGaFdrfFGZ(;Hm@hxyR8hW1=8rlM%sZH`1?GtPW`Y^{;}ZJiUIz09=AmL}jAmps z(B>LL3FiIFqgPVJkf#CYu7e@Gec3?$c!_YGIY36cP~N_5uD(7<nD;y&i(DvgU$$3Y zxKBua9LQ!36$2l_+n1SY?Ztw!7w}OJis0c%cN#w+8x((<SAD;R6Ai#-<`S%Sd?}~; z&CHhvVtIpGYAh~mM;dt=AI}BR=Yui+z`GEqD;b8iAflg@tAmj}!VAhZ9wKNmvgc@! z=Yr_1`uJi5veY%eH|d-{Bwl;m9TFuuZv#Kz#gPl5mlsLS*T64$apZ#N58M^GE(7*< zYT@Eu2<2%DqDOJJU`{mf1TT(U5GCUYl{r0t53Gt~HSK94IYq$ddT=}!MC)L0EbI}G zp7bEP7DVt0%-IS2pch9jh$?ExJIOb|e;|%NjQWDeW{`4>c+9iX#lxsQ?$Z7dSJMzs zD-9NwKvP0r5cS7wW@1l}`f5adL1fq9v4Ey%u++0$5bc7GWDzTXKcsQ=1<_ayehJVH z4VEHS+u?pEnU;nt%4y64_20n1AP)6dUl17w;JapmF9W*iB|<KU9)i{I?Kh++zRttt zrZjCqG!RcubgNNQfOph5`hw`=WHGJP!GK1%V7VZ=vQVygrUIJn1)nypjF#}jfS%Fd zDi%Zusbcc0dqCQ+5%mR81$H9&4t@&ISr;r9L@S{O?&mE)=1i@hVwTAT(WE%Zu>)`B z#gPl5rO+wM=?c8J&S77!Er>qH7%+#<jVRJM`hw^>29Mz-fR^j9wjiR@D;Rzj&=wag z7esH(mt%ea&`}MRb|Du;ONu4u0`RL|9JwHx0++)2ss-N|j7!>%To9G^k#KWBZ8TU^ zqb-PNpHm$TY&NbtEr@s?R<|IUulSP<w|aCgq+vm{2g0-kQQJ6STCXF|Ye6($>3e^O zc-*CTLjLA)cNUE2Hwf|Vg^muwB;lTTdUyI|XBcohafZ`G(!6`~k!V^HvhVhSa*e|X z>VxcI8szESm*HtI7qZk6;PZ6O7!t2}_rOk)vljSMUL5J&f1V{dyMQ0^;z;k_1TKT? zIt~1y&SBfsyn79-B$#8uv!6dM?x{2%>D{wOOHM5C#Hu(}(;Ha&v7Aic!#y~j-hE9I zNt^=Gd=H}T-KUI`oJWB_?ZuJa{b{Vscv|cRP7kiGVbr}l{oarpbq4tNnjHOcx0}{x z1;!nK%hh+!$KACU9hTDsq?Q^{_wEH6>;TkXgQX6ocVCIs42u{Ke6q&Ty?X-<E(f$m zgQW=R-4_?(D{t7W`U>zjh(m^}d-s1K=M=#oA##FXvRNrYdiMw6>{w~P0RNLXy6r2P zcmE<udiOfmJdMC5tC3$-`5C2mPXcte3zpvf8vG&57w<m-8tMg~HoX9|Ww;nnsRmc! z-Pe>#f3qH>CpDt(-H#MVcqgEJE?9c^O?6~HzXWtngKc7#N$>u?#`%kI?A8cf2#)mb ztFUZheKiCgr*k~K`~HcNlK~w6mWkAt_Ei;pk`Pe<Xq*mf-o1Ufgckx@=7ObnKZ&~` zkNH!8Ue;hasM5P%!y<(_^qa;{yg1Uk2Vv34-u)u*D;h`N%<MK^!Zx_h+PK{8Li6sU zu-H}8fepoVC-2TCRh@UY(?5L-?|ym|q+v62J%nkSneXQc(|Q1TUf$iV_|!L{MBUdu z1sHe$O0B#7c{`%?21DI9=>>*B`Yl4;9Z?g|yjLe-YZ!ToPmY<2?Y6-#MX`OZV(-## zRYkG)nrX%O_pAQ&tE9SputqZ7@Tr5f&V$(H=>Zv)JMQ{A%|;~geQ4cMtT$0~4(yb2 z7u~sNfGEnF?RD?N4If4CX)cQHy>ro2QPf7Rpl<IaT=aERPPN{=bJ6*tD6e_yz8lI# z-}4nklLy|huXa(CCrkgDm?g=*(@+9G75k|kRQe`{ICS|W=x{(o_+Z}-_3-HcVW3Yd zBzx>c-~4$N8Pj~Av(wkIvBKh$RL|76otX<}r1iRZ1yz-=k{Z<dg&>8(48j^mhBv3; zk>PPPnx+M?Up2g45KNTMLk;i1#?Hs6hIb-E5T}=hr_$((6HdcBlck6gPQ$y<@T(0Q z!nneF_r>i;4H<-ba9I<8C<5ub#~(-w<hIoiTN{QOP{Bb(Xp5Q!Xov>O9~E2S^TO{r z5|0%cX=xJRSw!i8!nO)zDUFyiqI3vOZz9TrfH&xrt4yJnZ^H9F%#>2L13pL;YN2gE zC^mXuM`=iJ*o03w2F0ph0{=nhP~}Wi8qr%e;rI4V#nPFoGeC0|T-+k@DyDdugx)Cg z`OOAOM4Nj+h?zPDhS82rV2xP;EaGmCzPAL?PV~BG%+5K8rc!Q1D>Q+BrxF=(jNZqJ z3^-4(VMPX9p|`Li1Ad{GuOb6}rFX9)1Fq34S&;$1(HmHC`Gr%JfU_qTU@HR!H=|}- zT}bB-#V5Q58dT3o$InLAbJAN#2<UAi1oTpo?~#U31iyJ&Z}d6D*-g|NbA_Vxo>RTT zKPgJDHq{$TuNkoys5il0f+(GNTdyb@QU8xoalc~BiF)O)*~JU(Em5g>U9S1ukpNbN z;GWi<GMl3We<*{3Nbm!H)ECZukYfRo53R*lMsznBbpJg_K4OD!=VUERj(Y1da%D1* z$d8*Kkx@q!k{iv_MABzn1M2$b{eT0fwE*<|ZZw}?p5+nKe=?x-4Q!7=t$*A=C-V*t zO~OvrR|a;9hRg#{PyMro%`jUvll*4=?+kl5LH@M<Im7Fe2px{GtpB~?ZuCZtLZh4E zvM!#A!gn!r(Qq;ZP%5%}YLM-I!o#|t@Aa=69t*=l8*NqdfsZB5BMh&*7w|2^5j4?= zT(uM*WiGfFnys%G4U_Q;NbuDs0c|FjD-UDXY<vbn_z2>CfR1ReTyL(xtgm0wcoma@ zMVteEQR66K3<n!m17;B>D9Ile*C0jEs;Pdc@q-Ss53#@#i9>y`T|l>R$_%wM!Wf33 z;A%2~57y-fPA2KXZaj(c=ei~VpXDXz1U0v@u?A*0%XtX+6JBx#k(^j#gKQ~h2k`g2 z<jlcprhaqdI4t*RAk>q<ztuRd8)F20w@NE9oK~DJ%p_uj%S`wtsGG?*?q+h$-AsOP zH<NX64Ql2v%otqOA{uASOg=_c>S$z7)*xF6;hLFDtP4v9q?Y630piSLSenVDiTLR) z!7t!rs|%K9vKEtSK6UnAfIcReE7#1V0B(p+r>+3>s|I_T$sgrXL`@7*5H2Y~nn{yl zDWVymWDWK-lON%?xDUO74<!!u!4`lDbu-!6SXNUEe6B7>aHN@B0iT=u2=FJp<VZ6y z2T3_QfgkjeBhBQ@ASve?;6HfDk!JFyAKuC$%^5NHR=Qa4ynZ4ZaG8nERNOJti2Q7j zV&)qGjdpqdvF!Qj`1FWzoO@paqT}_OfYFIQ`IKWl00|ra6A3n!a6fJ{knrt)A|a3^ zr1vBVZ5m?=$y?cDbkh>IGLBY%D{I6OPGK@Z!YG%7CtWu~j#e*$J+#kzm~fD=*(Kr8 zDS8_?TD^o)v{vz1KaM5*;F7SxC4r;WOQ4s=6@M}?e{x335W8_Je8!Lf)05!{Or{N~ z2rQ<GS)6$m0l!iod7Sz`#9}5FjNls^8saoyp=Vd<WfgM)=CFt=W?K&}ZZh|^P@G=1 zvzS-IE<`*4Rhi2n>K;qr%Wd&>a|j6;YH8>fG!G_?cuiBoz?Tr#s)Kb#!ytldwa2Zh zVKAYJxj`c0{=B|0XWol=$O`0}lwqW0x`sE!hfx`#`i{pfa)imJu&6`{44DUN?FE1W z>mb_5_dAOISfnV8eSAiuPuB|Y1A?e)i!iD<;Riqb{!P>o7>xK$x`A5EpQEo)w<sQ9 zE`j!<{-k)Q`5pMfsJ|#~H-C(_M%|`(Y)bA-#1($eIzHt-WJRf*NJ-g6r45`&P1&4` zgozW5l*==a@Zm(ClzUVpd^s^BrD7ox7IhFhJu>C>21wY{;Yf^0nS>=sR85r{JSn9o zx)&9|iIS9}IY<PlS!40FQ_3#f*rMvF^p^De6w5Ls>Z-G0SqoCy!dFIxs=1I>n(|pq zBqG$wNGwg6Oah|RArP=CWqvy(;#3;cwJGJeheoyF#Kx2sFwLlzoY<U_M2UD#Y)xrT ziB@VT%Irv)M2bq}w(U)!f8-@9Nu7>*_A7yZK>yKZ8j2wX^LuCyk8!qz=9WK=tMd#Q zdxT2wn9xB%!VNpmLdP**7%2Bs%B2q_+j4_SjDZ!$Ts8cGEV^v`L0ZySw~;%<<WsjR z$cOI+`5X(PBZq8+37&Iydq6i0RI)um{2?pqf((D+I=?l5)qz>L#Ny_#5jkr?aWP#P zqA$<{L{dg7&Sx<VVkR&~#~FEG-%;m|bDQXlBhj23IyfcfYtD71HbFd*)q9c{<i2gB zY#Sw^2s&uVxeYTeCYD)rERs-!7u7kVCrFKXaOx3>J|LhG0)Li5Uxmc<Whq&@6pp!9 zNMfDz%e<KL+(bHZ$z7R_Qb3m&qVLNXQk;AHAh#E5flg%-Eo8A$O~Hden8pM;uStx7 z#Fk+R5@R%y4bUM@Hi`&cIct*U2XV1m1o5CyF&ib(y#&(FGc*R9nAH%|)SKmehgz4% zcsIh?ko49GQO+Q0;Y&;!O(d?xRh4rq{BBG(;|p}0Tj4xTru{rak9$Gqu)c_iW2KW* z5yvI6ZJrbZOmidmfxcknP_s@EiQ7k2E4e2eK*o|8(g9VjMk%>7F|}h#386Eq+>uwQ zyMsvx9b@GoEdj_*>N%Zk<yOY|Q7n)&BSB;JLM|0i9<;5D!m;2b6O<JEYv72QOAYXo z;&Iu0t{dV!t4(HK+^%A4P}?l#E$}_DH7Q=xJP|sMtwr$wbBB8n_oH}-`9;cSj}dCV z7j_&QK=~2or{K$C11WAdkAY{64WS!hta&F|8(W)9HD2+bgtq0jj6(arrUug~UEDJz zcPNU)6p$j?Ql_p}o?%LEJ+iwAB%RLka%n@t-=_l}PKD@<FYnUMZ?Pd4GnhwqJ>fjO z9AmY~;iXZ`?T#IYn0F|9mq$g4^KCqV#LQ4>q4b3gQ4Gqanw`brAk0;1Ek>t_iAFLZ zcP2q6h*cL#acdvL&ie@7qLRYsa+MUGcZkL3?YXF6T|>}bRcV<(Um1AQa_KmWm?hM9 zI<d^H7Rpkb^io2MoxKhnWyW(?ah@WpH*hYUZ04<6XC@7duS#vFBhM;H9bX@K4aVs# zv`Y9C!u=T!#vlruXO(D`AGwX5JR#}yG_HT7;-ufA$CPk(XIFN=mpUMO6MfQX(E)3s z!6Z=W2NP6c4$vo|b99taO25l?pfA!VrRg{}_p&qZ0(z7_38hooT&hs|`QmmO^9Owr zN*iacvcd+PHh8(1`6?}g=}b3)i}CG=rG3m>Ds8avCJV{15u}gr8#KNjk}CG9^kX-= zToN>z`M#-SZFw-4Yzv+6md~FBPp9HX@SL5`pF>o`MpT(?X$#H})sokU0^b4(3_dH% zaGRm6k8BGaC6;ZWgTMTF@fl!#-T+R3Ph-q%<46qMU2W(TuKIVS{00*0qXVb%Ep71$ z>HH~jMn=N9)m)5U@-(J}PGEN<qES;Q>Tn<$O$+NlBjv`>vM6vT?5;^H&FH`b6m3H5 z&%mcTAli&3LEzQth&HEY1*XDnH0i*(qtW*!9XYqD4bl5K_c^%HCd)bMhc+|~{f27m zfr^{nb&aCCQAN|R8t`v{&!CE?;SDI-6U}KB`U4SsD0-Jdxre}Q7FLI%zo8Ay!kbg{ z8n(%rH{-rJaSv(UoI7+o8qqlJ#icStTZ*O=H<>%1P24uz<G+ZT!ri<`+;-fHmQ4}u z%5rC;z0EUN!WtNH^KKj^Gj8tSXba-@Wx2D6+n*&oOxyt+olV?<99=a6(Ht(elA`&X z+Xb3zKCumTs1TZLKB)_$Lkt1Iix8Ls;xOz!c#2d;#wF5mSmsZMVXv?a`Afxo6aFJE zh2j=-w;qUhq<Db&nE=GQQasdbv?HEQajeg&YzD<+&Ga%<TsMlxo71SQgW@UXv~h@c zr+BKF*2Hl=DDE(?!90xXNjKa+=5-X$q<CNR<4{~&FN*gwUxlg0^`UrwGkuE{*N@@@ z%yqGpiyJ`kf#%P!5{TmmmO<tl80Wa*lt0+~D9LeBd<gy(5X5sRevf%A$;qSmP;)TJ zDWLc;^HGvBp5nvJzmc2?6d$4FCI%uglNx;q`r?TyzU3ah6S|C>^E-00Ep)<IU@|gV zB(bfms)O%26aEAi_$?+;yq$8hEsbF}WAZH|I-i&0*%sO#&bQFUd$#=C1{Gu8H=u{P zguAoxK!UrxVs4U%Uk|k>IZEN=f(c4O2a21NKqnXp9eaZ_G$0|ZC>Y=P>in)`ACjL= zaf=c-5sZY4d4iuc2X{T%Ar|s`k^7ST-V_IaE*J@YUI8cZ-D!wM880H9ZMlNavD5}S z!;E*%#rC=Lljc-_U3)k|^Z|YY1mo(4!YUI68YrN$bmEyH<bDsGB^1!@m(D*EO3q#2 zhs-g=q|?x3=B=T~97o-uv(ZGRb2X+$LV}T=sOYFPSA)bFo^D3AZ_s3AJZ+69^fi)J z=`=Mlrc{OEJPDIXn8usDbi$ex{TvK5p}&#TN(ZjlsAm39oNu%R^oWs4(;;kJK;AD* zSd=6@$;&u8m`&Um^(O_zN$)HqtmC3|Vw*QU;V9fx!rewX#!Vct!(DLoqbQtIIo?1A zyonn~&cGSSIl%Y&2?Hp8NPV18@<~c=8C*)j6jCr92PK+HF^mn_cP{;eD`6{jj?RU1 z;X-)sg;c=X$ji`qao(`glnJ;NcZUv=V_b2*l!n}ASP68loLHIh?NO`_I@AWfK`24T z`DX8Ymb5<DNXALucDQ|gk-HgfOqfLWNne17s&e0KhRnm1NneL}w=cKvT)-dFeV4u_ zsRW1A06fcx-qF`5E*K94BzG>|_J8t3h6c0>PtL=Sec;#3o$tn%vJtd9pqP)8B3_TS zMKFEZfYGWx6`j~P3XkdQd=9|Zghp+o-3Rk#O#i4&6jjXcj6?iM+J~^1yFgsjvt(8Q z7@jEPWm|kk!c&p&p#22io1xtLNN_G4wa2-^N?<!wn%IjPHX)=NqSp+x)o-H@6rr7& z+;3Bne~4<J<M;&R{Mn4m-+AgDbLEbyhul9nmk#R_+}w3bk$Z#$(9wNTz*^W);wiR3 zI>}Gw-hz8e{E7v%(sFGSLu07f&LEg_Vr!mvbmX5f6A~@!%7rl}R#5ZlC_phfG?f(R zDp*P4Vgp$d9S`U|Q@F>uMX@0LL~%Mh&{bSEFAA<Baf|3R;Y1XZoSL9GFT#%}o@V@t zj#CWH{~dup_u;1&V7+Rf`4dzur6|rvNg-deLg;KlQDe@l^O5@<=Q@L_@142tbY3C% zU6~M=gj}<cjxOZ(D!F3@A!ik}=w4UmN7zS8TuqtfTBe{+c(N&w?FKsLP*ghM3(`VE zl}<bqU8GsBIBVkmkr>Twp;HiDkZ_DVPe&i_0@4$tnB4x*d*Vw}mX1jj&2@&SA#)z9 zh<->din8+aEp*IazGXur`lRmz^DTjx0r{3~c2ZzZw1Mr{fpToW{>bfw+-wW|L!jUx zo^QFqpY%$4KIe~OPQGNGg7j?5fyRUupj5Vn4pqvwtbtH}vJ`*%m%xU-iVr%@YZ4$j zV9cKq*%msIC*MM6{bkF~G=TX`$+plLY1rKWI_wIf7iD>p<xh!xOEQ-fpOz`argNRL zE%Y^g;3;USbu_Qej`yR}Pnt3#9-scSV9lLw1>p%A!`{dfTP`7pDY-NHfZvApU<!34 zl95@2w5Ir6LU=CZ&LlyPQBnRO1!v}4=vM^(w3ziL)6BNe85H>zI(j7ALMOUpTj>0f ze2&-mF*jk&(`gmi7J4Z<Uw(?5wH+y+UZ=~KpCX6ekju8vix?PV{-m5?^j-k{>Yv9| z1%rMwo^PS-Yzw`3k!_(j4)SH3epa4sp<gfN%TJL*KS<2B(C=RI<)_G@P568s<7^A< z<>y-{C)+~%^7)q4sMw$E6kB%;Que)(_2DTnF7y{60!3Z_6}Xel!SH3jP}K0in8`Ic zb(&Kn6@Pk6@~88Nvn}JGyJ9*f%KP6>#=p6V6;fSXCEHU)#P9&h(jiaT7TW+6dlF^8 zlhxxZrT?e4Z;!I;D(^dYMk9|cEXf*d%f^ARdD$3^bVoCzkvtN%<ZCn56O9ZG#2oJ2 zduQfa_vQPTkz^wo^NLL%n9yQYMDc2xK$}2lN_YesU}dpLRtur4ZAhBcuCSVflKexO ztTauU(BJnuXP?KN(YaXH9-VXc+0So(`+M(w_?NqUABsF`#pnhd==pxh!%;m%@rRx( zd)w%Qo>e+lXQ+j{_u+4iTA`bBcVPW(y2z@fw~fx3IlqYHj{`5`-*C=d{w&^n4SyG? z8Z>m_JYV18Jx&Mg#J};JyZje;{RHth9JoVaAt>TKNhj`{1qkT(TDbs>H=eVs9|^L) zlMdO5e;GP=c?wzQ@yC#&8&rEyst3e=9Yc8hKh9$7nznI6(8hV>eS*jPD?`N2sXMD5 z2Bz|MpHJW|gN1GcEQ`aG4c;2md5KDYeHs>Ytrw`zzue_-;>{o6?*i=_BCvdzuK>%x z0Yd*U(T^N>QlcNUJAY^!-n<%r+z+~m_Jj8IU!u~#b_@2=C;D+5Z{Ci-3sepDV<%tH z5BjuH{FB(Z%g^Ao^y6QI@SuI9Lm$JN&)|>yK{wHU{1f$qN<Rkvb^zRqejz;mE8hG$ z{w`28)Q=bVihg|jIObmSZ<S)0`x_uTC;CBKriNaDH`Dmze$dTRIiA1MGA~3R&Qs}^ zf>&P9dKE0F_ffoQ;O_!eL;bjuukY|yAAKVdp2X8f@W++YO>~g79pMrczv%!XAQFT8 zExh>;_`5*WQ04FCD+aj+n)64Re|s><zs2jsq*E00(55F~@5CSXgKnbzpjgsNRQmq_ z`QqOl&s{!@0t@)NK-Ew`uIKAJym#exjX=d>!>)bK{o1Y4pWNkxPr~PvD|#c$aEG7! zSC^j7Ee21Y#?v`(<St?@!_WO1o*Kc^=ja_?9+j7$r<ZuUAder#W2aa5Mt)kJpQqQz zy-3G%4?p)MJhm$xZ=@{GmoL3L_v@fF^g~<xdpcM3Mk-SL1-$>NzCRYc?|LIkQvR!# zkoe>_(8u@}*mIY^h#{^QH2B0M)O&>cQNH2lp1%aLdCuGP4<ldY=MP_cPp<p3$ncLN zSP{tZIV7C81qr#$-{KsfzT|BqcDapCDJnCO-u4Z=dGaB2C;kEW+~o(}xo&s1TX!g* z+nuBQyk2)sagLxn6w4?bq1eX<bzR<+6Y%9O|Ni<Nxz{>E`P`2Dmkm4eN70T@WTbS2 zA}Jr8ln#U)dF0}{5P8ZvLiyZ|Jj&1OL1dA01Q4M(OXWp+UE=@)k7`|EdP+&V(} z+>ZSDh8_9KXh$e&lRMI(W1ybJAN|0A`Io!A4d{F~{+PAV&Cqj?2m`%+lW@3G-Znbl zt3#*Sd`HWFC@B9JihK)yNwg1w)7+|o@f~l|lOt4Q=($r*{Nrsv?{|)f+;HrPi`O`h zZ+v&|AGE!<YkTj_`F_>g^wfy)c5hp|i@tsD0OYo5$rO(5FVV;~PwCj`CT(nF+UU@k z4lii=aBL5t$S>h<qp@k#Ha0491!McRwztvPe)C>AjmpC>9NV|h$p6G21D9^n#zvcw zJG7&@J%hsdg=4$pU7+#!+h}ZBwT+F6T*25rsqJkrw#R8RvbT@B=IxLRxaeomNSlQ? z-{!eP8-{mi&bxw~-$u^=g+GP@-GCiQ$xa}i(H`Q*Y5Vd$T09ibZhqPtTDFFsr2Wjt zH0NuBhVBb;p0%7E+KSlKoZ-a013BqPc<vJ2q)iNMit5nLsxN8zaALlKB0Jx`@x*A= zHZfG>3MS^yw7m@`rb8QX=#(q^g=3pTBah&Z$3{14W1}qr9okp$td<YQ_AwOs8~kmA zbXv8Ijfz~s*uJRkZ7{a?<vvk@XIJ$a%pw1BmnYu?WOx_Y?MRa(fuZMW?Ss&a?P<k( zf9~ZY5Mi|7jX}Ym%^i9eJ3Ue6nH+`EUpxHi{qpje+#)~c-!#q%&*mQbDOmPFth{G) z{}Q*G@R$2Q?v-zWGy$+Zh2OcK%T3_%yI8e!R`9dA`A4DXTtt}62Xi05?Vmu9oXUML z_ifz&F4oNbW6$QcVaUIUs_uO@cMopg`Eso759Hdo{cXs>Pd#<<gSmI&;SXPpI`QK3 zxc}~&G)GN7b?HO7uOaOlw{x3l_Q#jJ+zq)`Zynn*y!B;UAHMm9-1eIRlKr{i(F0rV z*^(OrSHi<qd)PFDhb>#|abzs=xcN43er$FNi1GEFl#$2LiQF4*k%Y$9xm(Jp_1Y0+ zox&tsM>mM@zbPm&i3(nFb1rP<`mi>f=Mg@<;g-oQbEsn5Yq*N-*K6xHgmr<I#M`DZ zjk$^QW7H)|erb?A(%2d%-{>Y=-kYL{RQzT)iHcL=PB)SID^1-JPcG?;TiqA)V_}Jx z@e7(3?p*ldw%q_7!SJW#=H&p%%MW-oM>~=FiqYV9oNq@c_4c5dEi@(8`W<d^*u*Q{ zWVchVO1`kF5Ih!6x|IQT523d-Yp-=Dk`nGj_eW_QckSVu+kgkJ8$)iv1c)#D6-VGh zbSoD?@8TpzTbVq9{=|fbP6R-sW_AZfb&}x<6TBtF%Li`(7XbiF<pG+HP^EhnzecFD zQ_*Ham`%ImqhuP-3=+AE^J9X&l(;WgR3nqT<Yu)f8lcsL4|4P3!Q&flp&=XyI*B33 zdb$U7j546Kj=7*;numIR&`k`xddRIWoT@hj$qEab+Ixc+0V-1M_c5@ERs_j7M#0S+ zBH9r*FOBJbOfEwPu}7Pjs?3iWnR(z&0DvI%Am4yE<7hynY=*UlZ?4BaE&`%p!cn(L zo5N$_q|rPdcVTL?b3$i_0d0vV6FJfTDYprs6cluC)R58SbdU$&Gjgynr8rCpw_OL< zu_aI*ncjyjiSl4)NdPLX2fpO6PqSNSIFG!_+p^^lh&Z^;Hr#@fj41_eY^Aw*TP`=x zH120^2bJ8743BD&QCN1U2qCi{bQvHJV7_A~m{>9B0;j_Y9Arc}$ymZ75e#G;E^pU5 zEB9c;aFrg`=jEU-F6wzJ2vP8=3VNgw%0G6acK0l?-x{~ZtJqqr2OSuZ<{M$c`*T<& zH0Y)=0vOl9^1R0<au1H(klS(1y*od4m~*s8g6SB-Ks#ZE^4LF@EM3Y%yoxgP@Sy#m z$5qNdzC}p-nq`EUMXLq0U`CqA<;NOZrQPzFwtQj4%a2hVPlS2t@yW0Y+JSe5DM9Ir z#5F1VrD)|^<f)ui%Cq_|e7DU=@w|>-Gd`UIt|>vH>fW8(0(pSGQ~w@%!)sX@davcg zm?-D_Q0eg2sas@NTHX6|6DZ^)BF32OA=I8?+Vu>cALJUI<+}zi><`#IR`So;J(l+e z?H+6HLw1kedB2FIGvvKx6U3_AKR_nP;fG}W<#zWv?cLQzsn#o3c9-tHd-wG2#cH?X zCDXm#E6sXkcdfEkY%K3C)|Q*?YImi+CqKJ;tx`F=XEs{q-0X}$GqtN$ZS>CVT5j~# zuY7m8ve;XW)*!v9;2c`+Os%@Od%0BFov3))`X4Qx$VcPa-96ue*()--)QpiVh|^pt zw*79qh$<#l2yoSA$6qXVD)LlomWs8Czf>$$ECaQM<D!Q=uhHyQCQA5Z!7vx=wkyRt zrK5PY<afI5YGYZdk^7~!vOJd7s9DMiP?VaDr7GpaELP5yDy?p{+3;K4w&bO8X$QGL zr(332e<~}Tqgxz4iH>%gTBd|dfNGGx8RUr$wNdR>i?!;7O53khJ6x#_xKt~4Iu!*; z=X|GIsr!|7yD6PsD^ahg(oVPLSG$!qwasAjc^;(e040V@*%%3s2>fleE9J^kwNWYi z&6YOMsI2+!5P<THUcJ%=6oaWj8fS^5xXnwO7&)rPJ(kDZVy{~3?y5EpVNG~z0Gr>% z8<2Y6uP=7G__Ty2#2$VBf%#(v$qPVMo4CCeDq@hx6Np5tKg?~fgqrJ;-NujXGF525 z+mP~_(2J)?MFM)cZ*^CIO=YLDWu)xF(2Bhp4FbplnAZWJwPu^p3JEgnQi1=VA0U=? zg$9BC%H-{`5#Xhy$XkMFt5{V;f`&3=9=YMa%H_T?v>h~N(-4x)!8ZK&Be}mG8mHu8 zB%1?m_y?PFqc8o+=)tdyer0Hg-fqHM^LP#a<52FmKQlCJ>E_uQ{@`%#-9y(}vU#zF zpBqNgFSBIxSPg%il7rmlj~f2v5w{X^Ck=mpGdg;^RbpPFSZ;Ir#B!T&XZRCT_hzfa zTr;uU=7EXjHV4Y^fAVr)3wvU&k60z<;gAlFT9f9WaB`0TvgUxe_31zR-q2gd;Pe>U zJalpguABZ8|7;!|$G_KY9z8*qq0=vQFK>!GJt9w!+{9T<%9Ca}E>B10-JR6Tb>HKB z>oj?kGu$afrOeP<xu{(pk*Bs^v=Mna8Yy>F5+~CVr=p2BO0!bnc;x8>=j?HYgHq~l z$#+C9ui@;PA@b(V8+)G|x_9j8b3+HWzJ2I5V?%e2^@a|NQP$zjUHm(QsDAuAdI$ZB z4E!)#yLaf$9e;rP+~%cCn>P=??ZcZ!hF?8&S8nd1U}nw1GW>tH<VJV=;J1gkGeet4 zX%=&%bDKwx4qq63<m(4V_y51q`p`=ZBg_+$wVXLFvX(PHL)LQU7RXx8toXw(jOIqi zhVB>>B1H7W4D`c)e_d|$90FDdz)x@Pjee5AKD2B5T1aEeV4hNq*}|`+nu!@=CNKyk zdt+wjE2+lJz{CFo8^njMv$-^z@9_WjK&)=DWV7WC|2gFjD4rQ^hyTKJ>7!X`Q@Usd z*emIx8AMa6F<a*b)%Xkk+Df&w0+9(!rqfz%pY{B=o;bSDoe?Q&{#bqQWTCJZ-##d; zdNpvYRS$(aE6uf5lf)d!y$|sg=g#Hx`AJu_nlCMM^La;rn=cg>iuk86wOA~jMTIE6 z(9K$SU%S$(LEbCW>!*&E>R!3Jv{Y$V8YKt|B=y7xke{5T5!7nZ;L-iQ52=_tjHVmS zcD)$NNb{(2fIbxpty-bx`MpN3Qz=h+{`^V5Q(Ue1^r@<NhtQq<-KNT)+9?;}GgE~^ zqf$71bYYJ#APQ##W%E=1!;R8PrF0e|8YJC9eK0uA`o|$MLXrj`<IM=nsPa`0U6nax z;QGxD$<;o65Ia7w{7j)Ri|oBxv$0GiQ34XtI6kUgWC7Oi7MG(>2++nDN`zD-*yE3- zJ_g%yzuNIDkN1iItPf;Er^b7YPIVcwsdiXIvT1+5-m2wiFrZ?&?6)h559q?uTD4pu zoq?+LP>J6{do6$Qyx(a7iBL01dnjwT9KxC~pC+mY;ho3B=o-GqTud$1sx6uTu4R@g zL9ZKVtyc3(Ma)tHNGLU3YW5lgT8O#DbAGwH43!03qFq_7v^$kRV4n*x^}vAyrq0o% zyzcem5Gv^{ufGEa-1WyfG=sAWIr)&L2U5MHjvu1`&@YJoUZ6LKj4uu1B`w+z3WTlw zP%@e;02Wi2tjm5HpM|S72xx;4jr?9<SgF}M&$!$voGL9$`}jX?G}2Er^x(0RhwnQE z7jbXVpT|^H8=n8>Vy%Zs1qEz(7kgL(MohFO!N|#K`N&kbg0B+EX%(s-cO+OA<4TjA z2KPpkH&EaFo^nN}y#hES);>+>G(uE(@yim=JXdWfkYyVGlwbFRmCVgd^=iN#aF0r@ z0)-4pG)>50^C{5XOY^tTt##5^jj*oM;6Zz3Re%VP1z`S+e`b$gSeWtAzW|XRIg|Gb zg~2*AgB4$CgAnt8p-dZiQ<u;<xM-*QI$mWBpwfa*q{)X?M~vgGC!D!U<4=RJr+OW@ zvZO@&YPGQHH9^3ZYE4)R+RON>6bA!ne$u~>EGGU6sCOH4eX0b|@@#|lWW`3ol__28 zSxXle3P2%Danu%rg(PE(OE^=E`Xrg0Uck0)f2men?hspG%HWra-J)0RsD-B464T7w z-1r96T363;;%>}7sC5T_kJX7CbzmzZ5;+fE`ar#_ZO1Y)bDwH7A!8^t4e2z=7c-80 zA#{KkTytqjc;rA6!0-sC5EFbDl7}BinP9c~Jpj^jrAzh_k!diztg}TzO|4q5Vlmb| zf(DC(yyAS8SSxLeC2G7P*`l&sY0u$$h|EP@l5ND`rPi!D=CTQ9sdJFu$2GJeM{-NW zMt6Sk*y5f-p|rYaFis3Pk0DQD^@{|4z6&{w(1ayBzgB6$pfup>+1puxY4fZP*<}fk z;7N|43S&Ti+L`BWr4tB}QEZq(pURL{i?jd)yP^VsRF)J<4Yx%?NkC|BvDvJ>ejLWR z%Ao@XR*9{O{7&*147#1}-bo-F<il#G4BIEO{jh5!Yo=o=)){Lt*^vi?qR&!ys884h zVw9DW%H^Rxb({FakgUp7dJ(M7IR1fR7Q3)T&+*M6FMu3@Xh0mG#Z<0#T209Jw#r2| z!6;Wfk~?X63|9MeU%i25C5Z~a@@m=dR_kaF@-c*UVte#uX4pupCj2ic!Sd@QXvK*Z zY7PL1cN_4q0kt?NrUox8m_F+o3s=|malb_aS|jDT)8bBN$GRC<@}bidKq3heb?{KC z6l=~@DWT^lTa`w=32mm-W>J_x<Uk=I=Ly>b3o>*%bm*W=_lzKds!c>Ph3IsO^@`uX zKZG$zB>e@fE4thr@sQYpxQ~pC5$)!pB;t_ST}o%A;tojathC|#&uzbRzP_mIfvgBJ zz5%)V48CLyC9~gp$3!T-gX&tFo9!8;@*oxq^k`%QFsM*GV8MHU8upc%^%i6+K^U4G zP;x)wnab~tJOWZDQ)~%DLfZ?%Y8^zvWW88Mk@`FtMF!E=3<K&|6H)wwgi<|6ofb0` zEm+DD4qy_{h%tC0u=5q-8LV_y&b1%_LG#~J02Y_>^pDtW$ge~0J!*kI`;L`BYeE-7 zR#XP;>ngm?(Dv!T&XBdDnNmanP8BDj5|rv);Logh#Rw{|<G>Ix$Q&_R4JuYURy@&~ zw6}XFwX*{dQd7f7*o@*tJ`Je{)1-v#fUH7<Z`K##2(8tCErZI&0UR6*PVMc{5|rse zVPU_20;=mg3>f@)SP5WU4aw&#kCR}_G8JT$>cXVuoC)Mum2T(7Dm!axYvDAg1&pgI zH>9E(8QZ|3YL%rfj3Lz}l^zG8XTr~j>G<SDrS;cjb1qFHY79j#GRajQH^T~~3P|ql z1{nxbG6ptO2pLIZCE-5+4K_zsA+TC7EXZJKmIMJ$VfA!><&$j+Y(iMr=i`57f*1)j z`{fqtPT(8d$&gO<ndSa%^fjj!3T0y1uz`b4vF({*sJ3VDhnNw5iiQlG+SW<-r50dq zy&h2Lh)}T?fF+d~d<oXW!l_dy7W`?B(g3+-g6?LQH3gj0dEAJh5%NJ(#F$OC*;s*A z!omf^U<Pe4Gckrq5ctBD^98bngL)AM!9R}SLMso^7raXy5hO4Yi(w#1j0a@NC7L%D zc$V75k{X7+8XvnMPzw}hV%|sc1vZ}zwCGfbP$vqlW~hMe=J^eyjdqvn#j}-N6uVJI zzyn1Oao;k-&>`0>_!c{735;wzWYBG}RtBTryi}B22oAznJ5A_X20kqTtvb+3{KtFM z(pg|H&Ff%-o-Q(SuCRB2R4#V25jA3U@vK~u)QeT>Qj;kn%PvR|Acwfb3UD9gJnK|U zFSVQEkQhV`fQ3wT7qjO^Xf_YVbqgu*BdFZ&h#dM8kfJMRpdxViKH{pH0@nVT-ZWb# zm}p^C>#;(z`@!DQ7DEc8(^3`kWp$}qg5i}zvv`@P^2H=?5L!<i4j0DcR6^KgOG~9a zUoXr;J!9XJ(%h_Qfr%{z6!z^<9-*^`mLSrMg14^=?(Pomb`d{^r&VagTD?+d-Ii{Y z8(z^kN(Bh?SUiQGVpC&73?dhA@r20*ESa$76681x!XloG{ujk18@3IDMa0;r;?N`* zx!-CxTg7DxL{oQ#ui84xMug`=Lqyg9+c)Pps|(R}0E!*TE`uzz`^j=M7&XezFnS_t zunX-D&X*-xv!G3+S;Kb@cW9_xI|3I|8P`x~4$qjp1^B19N(DARBdj=<J{_PZ>=isZ z<L4K>R<%;9tW{woW}B+S@I{fo&%{BniaVL811z$4+NBk+-B|CLL}`%2fbiWLE`I{9 zC?J^stZQyBStUr8TLd`~r>y5c5Rev+{Fg9~iTn`-$2zp27OWu*&lRX?e#3<`5Tnb- zhAw!O(oRin4e|Dq2E(c_#$FA_v?7MUzz_+0cySj3)s}s-L~flTM<O|=fOY4gx0L-g z#AidFC|8@F1uTq{2R@)+bNGV&KrNcxDiqzL#ypaYBk>1V=Ar0q@^x0E%uj~YLn((? z`4D^Ep&*JVQjwO1No8sq_Zy^f(EXD2T(hkd9MaLbr8f80p&01(i)EN<9W%q!I{i@( zI6`?q$KXvNq=a8a*+{#(yrQZv%{++eN*j*P&RP*R;V3+qyfjZ6drBid`Mk5ph013~ zM~q5En=2F%IxbmoAl-){?!h=C43P$Foed>Z(yYy{7;?xdQce#~bDRp5k$@l2dp2ql zgD0>>IVQ1nCseAW#=y8fJIQRdL>7)fk55!aNLgbkQ_bBTJDO@0^E9DH#oAi&d=PVl z$O34}JtzPRkn7F`K}Vt30phurumolxp7I1Tp-nQcL+S`{JBAz7Ev|z>0&XldWnQ7G z5{H^?FfYP{L8@2>=TIrr!Gn<i&KmMzBqE&7ga}~1Lf}G`wxVbVN3=wU?jT4V2wmq% zyQS%t0fxE5wpqB@*qqIR0{ns(V8Ert2$hY!>R6sj>|?@|aA;0+6`~yj^dPi;CbUv< zm>K-=UVX7m1c4lB1KV}6@_``L&SSkssT<n#L-;T?P4&q~$H!DAjhD)@+Q_D&F0I%K zXXBWNys}=%G0SmoE{RDsWeujD15Z~KpcHS|h6pI~dW!NzY=)uNL{x-Q>p`YA864(l zSZQOU*fF-g&azY+C0ZZ~aZxytfeDdBC9F2#8nw^_SYY5q*679rHG$*t$RtcYk}Fic z4jlrVvW5<77}8Y=AY3OZi`c^;QCSIaVEPl112i=?*(A-L`!sG9OcFllfn?pOl8EO* z?GaPxcnJ|JO-qpDKJv5R88KZsu+@c2o0n{0rshhs5`MB^6ZL~R*SjcjZa@zhvXvvH z1uhXUP!~yD7I$Ja9eE&4@)~S;v)~0$31K+<*sdAS%@8UqKLqxmFr65Y#b&bo%+|>U z?oa5S?EYNpRwO{f9W=Ot$trF#5#2C74fQx&2~*4p@t|t?jKuj6ukPowoGUkbi?s^J z-GYuJx<X+@WWGdKI9|YwRnCk|7Fxdn{R8%xGfK?=5duf^7slIX7h?soVvQE7VA{BK z^{-SpUQ8yyLD__PVIM-n!6iC{(=0_&m1%3k4Kt363W(yaRJ_X!U31*mB~X+t!(<f> zebJ!f%d&Amf+yjDhC+#*q!lQSLUdxjoXJ`j^o(WSi-BK{G!<;;fT#uMM9K~XraM72 z4WjPJRTG!XXc}G9K=uJ!T<k{Jq{x&$Ap=rsM_eP3Ab*8UPm(7?zZF)c#9BVyYbty) zPdcW6%$_ffyKN&#hU*gk;rm!PVdte-4#kodY%hR74y(URd)8s?$FMAJsg&*lB#lJr ziR{k?(}7=^?GbRfBy<qMH!~5%S6(DqHEUnZW)kSek=m)*z$}Y!T-rm8o{L?Sp%cjt zG60G2s(FoBDp`-lvmvGduWHJ!9rVp{35JZ5m|4sL6X$hS&P^wNE1@<qy_`S>BF$Dw z=?bg!W#Ct>#=-1S&4lw`sXYjN#rR`kv9_JcqJ1zWv$S7`o@b!{LB|z+H!@dD<|48< z#cV8kb=dN|E6pBkQ{@hA2O4Y*K#V#GHmJrwrZQ<^%`BloLkaCg#MGcea@gNsO&dys z5hpDv5<MB2N!|h%S}Gz?Vo@g$w>DA}AxvSwv@y-c4t2JBL~5hC4me8;Z+Jeg=IQ~O ztid2r;qa}{WGN00hPk^vj2!KiWjAWujY*b?2^SF!EHr8?_!OI4thH8ni$eqiET@Ly z^^tc}i(}DR^)8BehFXhc#9CH|#Ol&or&MgfXUyR|FgmailJjRJh53C974}k^ABf3f z-9t05=QO$;DU(2+H2Oee!5V=1XTk5Hb97{c9K<28>*G{KSbX4ArA;pgy<6ZoB85TL zF&Vb8N`PQ2Z9KjdNls2P76f!;Y92z6x!3>znHUX{B}KDcAx2IcFl4(aOYI1-_WZXX z?DdQ-#2}10h`)&<QF_#Rlw#7FbY-tNYQ(7TQmfZpQ{!k>@a=E)Ix8Tg*pQ1F;udz< z^mi4E1RnPpuv_p~DrWl4+V|N~5t}$+fmGt}$p5G+;Vc+XWu-VHS)N(@m*O``+E-~A ziD4Q<rC5ed*7J`*FoT<qH>+Sx&P<8-L4B9*>I9t#gr=)9d`JMgq(U?%^bA^cdqbp8 zRX+(=rTJwOdKAA!0Wn|lf-pxtm!}E)1-9v}yB~`7sP?T9v!$DW`j7$=G02xumxv>< zW7Q4gmC`svnlBVu$bv|WB4B4$1Whjr)j%3cX5^w6JMeVfD<qoo1}HG#wg^ypa0v+@ zjgTUq$8b9{Amnr)p@PqnvTIw^V*HLk9qdFX(9V93BcHIFvQ#4{@SPfHdzaT;se*2V z$^{Nqs^Cnl^Vk?cBv+gobNLwxBwoTHOb8HXiz(d6vWye*H6euZ28)O`$CRQ_OzSqg z4a;9Nd2yFieiFtQ*>sJ*o5eA)RK#fg;E9LFkKBECK0iJ^F+H(od~#2IUw%)1&-ku- zx7Vl~T&{o;R7-d)B7ET>j?LONGc~?zd3+aq%m)!-!)13ZVcU7>>@Ildy4YXaY~w8y zJQxB=ThaX(ezAAXpN!)<Popg8xMs8NGVHgBJn(bB?a_4j?M29BKvhG!LZr|%jtHzs zeid^Z8@k{rMj%A5O$tY^-oPfY)>5^me(22Wh%^&ZQ~@3+R#0er4X72w5Gl%uX-(F8 zgBaN>SK1e5B?LAyc92x8zf}o|z&Tin$&(Bg2|CRo6WAX!O-COzh^aHBbj6uTLUtRn zE}v=zyW&Z*r{D`dbd3r|Ry$2kQje61g+%z_NoT=f9PVH+jZiScI1c3ittL)n0Pd!? z7}5PzD&y5!YD)M4(Iy|^J#5qu>CZahFxAlS9hVXq->;r;L`RrLfk?y@PpPa77jB|C zr8)uQc4Jm*u$fg32EfxH!kk9QcG^efS~p%q!m|VWj2k#YY`k-}+FDCspSxs%ELj%` zgyC33b})DsVS!yBwI(|ypa<EWpy%3x(=Fw^ka#_$)q%HQB4lfY8Az5*=J6!XnLxjJ zKR|3Pk)#AHW*dqGjhc`dl0%;Lz&2%}akp#eP@Lu1mZ{U&ZiGdD+^_fe&=Yvdc|#>* z7Xww8XH=O<i?>T%j*;~ngaQE1FqLXdjG!2RiYP-SD13?|FR(+QGntDqe`a@1gy4`+ zFlB8VhOI|8jL+qRO+xXu#5h6r?>d`x9D1<MzOZuozOX^WvViP6R{q%Bg9;{Qb>j^T zBG9aN-UZ`JM%OAsz6Nc~*`$)Pb}$j_dItZ2hZ^7|90G@ATiSBF*=v!@(NJ{b!K7|U z3k;4Fg|B=o>jES?pnE%wVq~XELT-Rc6x9cR03AKVILuqp_3X!Bk5WGhOrE&N$t;Ix zH~aZ=@jPre9d@}StTBltM@xW3qKlC&ot{uf$aPFMvJX-0c-Xxshlf(T;ZjM9c{nwg z_B{9&P%I>zsshgmll=%c1nmqq-kTXXHiD$`5$tZWoox|PgEiStw1KlCw0b(S6g&B8 z8g>5;x#|M$<%U)TePzxw2u2Gjhh)k)tr~IyS7;1Cf8NY3DpaZjm&lSGdrX7f2xrtE zrB33jf?&2~AA2zAB)C5D1Zqn~P<0WCqDTN6gbjcQ+)o}<C&Yu5N<Fhep`Ud&W&gLG zy42S#xp$v?N|G9bpzhECR;J707-F-<GgbyDM>3fcml((MR1W?VvAQcn1MFRehJ*hR zrU_3>yVziHGSWYhbYspX;!S}K41z2u1D##5+UaAm4v6MJ3l0+x(vOp?$UXxOApRvm znyk}}&@%VrA0iKMQt<Xn_GPh-M!b|mMA>g&?D7skoQ~B&ge5jXU}K(lk&M&eMZLz^ zMsuy<gD;^TL^+CopU>C89`#OfSvIOiVG4RFyU7s9N+)IGXa_c#K<6V?qzpZYME#=) zv%(>jE@iC*h^y2suz9heh-X;^K{ntka*5Ft@(OFsdfH(iq`U@lH0>bvXhRZPR_Q51 z&Ap3}!_zoFypDRDpv5dFtv^!{k3Xr}6lM(j1fSnA5K?kbjD_derp>_L<@iM%^#RlF z+U8sqN+be!uEK*;hAb_i2`1|d1;TG8ijZJrOaubKpQY!lJxN)35-68wjEF_VCC8pk zS?>LGEF7ChwxM#T>94?vET$){xvagMmV@$$t3%2WggS0cG>SFUy+7n-PjsB2lw4TZ zdod&Q6bDrhNfl=!kaU3Y#P<RT9R<Cn1wqm;T<@N9Fo8lj-B)KZ0Cboam0csrS^AaG z-Z6(v9g<OSu0<NtlW+<RXcDhi$t{9oH;c~ED}30P5cBY0gv7iN!d*=-c$AI{Lrq3s zkdDR9%ZT8gzVid14R^ROZ9|N<bBbeM`6MxRP#0&d$%YPhh7w|X7`6wa#;Wmq7}ued zsfiI(5Qg!yaF$UT&UeLWN{FcLaQIsf=lrxwOne8!=;X#pMQYOJC@e3Cy4&EaICL&G z+F+?z>ri-SEb`tq5)H5lrz`bV;1kVG4&sYg^k^KPO5dEoZe~7R5GM?>b!jj<G0m<T zVLuok@XJ|6kmU2x1B@p3q^-1|c*wqptp$9epI%PJs6%w}*noz8F+Q8;S+&!wl;5m% z6hWk`Bx@DHK~QRGVp|N{WmP)RIyjyiTwiPjGt0H+VzI{7a%wR<Vwlz!ocWQp$0k@{ z%ELKhOK42szXF<++@8$_O$|yEW9n5=IOU}8fr!ZzN9v<*#^d!2zB6nYWt-?vaFmdt z6w{{xXIM>VLgK{UepP@d>~kO>ro}LA=o$zdD{53qFeZsy;A8IBGqHkyWi+r3Mj&I6 zBg%3HTD34!B^<yc>TzWWL5jkp(jyk5Vg(5?X$k}Ygk&|bgo|9WpAWRJyYD8Bhd@l@ zb4e{Kpl@J62tEKdf(M0)tMtELTzBM@YdX)0PP#Vx^xaVX(j1_Q6$zk_z(y`pJC8nM zb`k0-Cw}A1`+5r-T@|>=4MH>6A4DMTvp<Lr57J&_C9c6vpw*3!@IgeRd>M;@7)}%M zPcY+zgVsr*1q5A0l&My&$0i(yMyw-2y4!1sd9&3+0_+FE>?z)Vd|Eju5GVm}pxt`# z4np6=xh@;;BFu?p^_ZJ(Kfc|x1o<+>)ClZPIQ8I<Xt$xc$Z<!W14{CK3#NoKz~Z_r zESw;KV_{37Q36j`Fwi&UtR@_<NzZ%wRe?naludfo&`Glfk@4IjUD9`okel)<#=EN# zi|rS-I(O}o5oKKffSU2Gpepv2MrM>yT!udo_YwQ8(PPp=D5!}Sgasq&d?;PWv+6`2 z8KGUm7ORBQ*w<q-#Ek~xGa(`o=2~d1d)PJ`4(UT_(#<ql7t-}UZ<V}fogfoXuu>sP znx##?ZO7-Sn+u=1MruLaE<kix&$tXFDcysYFwRjJe8hN9C%^^9d&C^tLF!QCuo*xd z{viNq4%|)g=+6dfirVPd)|WJ`F)2wo8#&5Xu{Z<My?HWOR~b-QnYGv&>rh{pLl~V0 z>_&h;M~%RVj-v}JdZ4yy60*>+@nHZRf)JnM5rSjB*|5*yRtRBU>_DY1@xkW~PXVI6 zSazEbx3gmJG)IO2jO>5``b2kJN4_dKSkxRWG8}qE=zn!a-=gC>$VvjaE3}dj25yAg zGUxU|qK$I17oPT8YLs7gU6X5&gRz;|vhh$2fZ1!4S*I_+@X^U0fBiF<NR8)Lf|y2{ zq&)3b*bDT<WlAp79^?QJGHeSVc*Z6!Vay7VFC;Te7Scqne&!1fE5IDWWYh_cxk!*o z4T%DAguGz#s(DX>gT7_RSyzJ5apSf^tz$z<X!Nem&+Z30y)xoo(a<241vkPlfbx_m z`6+yYB<xr`FCD<j=1y^y;pmX=6?=kB&J^rVNE0!GCRs}3?4Bes+3GzQ#IbE23Y+Vn zqI%L;Bn@4Sy}TV<zr<C<rXevlgs0x<F&^%`h_N^g8>O|hwV@}L$*jdWHo8OVCwn(T zEJV-|!i5}&L|{rQLL@W}F_JUo(?{zF1iTGg6|WE#!A|YS0QqLD=gLBJcGz@3NXCQ> z?nGEQNeC~7|0VPJBcu@X`6IH$Hvv7{eQ&O3B@?cp{Y7M{E!`lKoh+L{abs@B!zI(R ze#;o-7bK9wvE+1BzJ0uduX1@8`HUlR>q356E3pTd7tGb+sxWJkF9?z1^l32nJ7b`4 zI6Ts24_Cx#!*h*y@kW;ox;<EA7G!}~#Po|8_Qiq*lZ0@&U@f|P+EVB?mNW7FDAS59 zx&*(p_)yN5m6fHOi%GUb?n4-yN4T@W91QA4r0;SGDGvd~R5&~lSEX*I5~12e@;np- z`LH;4UIyAHiR<NR8+cFdNHJ3MhjkD$4gR>wbb`muHlC<vLOk0&Kr10~gtLdz=-#w` z?qI=RZZ>6K8|~6)@R_?2ngz@VhnsZ@r)bv?L1Qok*bAxKz=%WIte$W-Xxzl&qo09H zjGh=Te{?4}5+>xd5*iKm4Rec5k7I4gI^e)A%3&ZLJNt<21Rs)upH!Uq^+gKpQONY| zF{vH;%`MEmd^0GD@f&WXz=s*BMBr<JbOzxt*p%Ul7_@!^wVGwwM4YTv6~wbSMeyaK zMGiow0h85esagrlc3A=GV2-o8*D+wahdc_Vq%SOhTBpMROR&k>J@+UY7lK$V;ig1Y zY5XM|X>i4pCda`Bla{$-^7*HYNumfT`{CdO4Pfsh-SuGlVM>E-<87RJC)1rY-eTdc zdze;8q%AxKvk}{<m(M$)0>DW$#)q-9(ZP0VO9!$-fjAZ1*l<V`P9u7UqsS1O*g;rh zS&S!$<Xa-^D(SAvbsYP?gh&`V*H`GxV9f@>I#)c~a>^&qHkn(o&#Fh;t>n8o?vjOA zX~u!bCvsyPn8aR3=V6NJ;wLTFz=joss8KKzGo)%`$xdC5YYQj{z0D{Y$NkVb3JfUy z<Wp*EX>p36Y83>>Q<#fwjZdY3DNA)@VnDlx)prFuExJq_1!7<#)k9?y?u5m<X2r8q zr#ZpcnFBi+RYiq;8ma*r#l%&P5EFb085`B%hNgohXYHHDuaU?^p{3OtXtn|(YgM87 zQKvX-1%t#MA|RQl(?F6#z=p*>6^md2or#$&Js&4K+AbT~proG*3|3&|s0seWdFU?C zqmzQod8l5F_D`T)Y;|ggmAgJEM|hN3=m+J{U_p|su*d!g4rJloM0y5CxQf>MBG*#- z&Z~&w9`Z0*?ln*<lo_A_4mfvdF$5gu1oGokL^P<nNzUPdVYxhzU4Zd8xl_M1rr&u@ z-&w6iOtj1jTsCFF^~?^X6akgy(<lu(h0lb^BqqomkyqMp3H>SzPo(WN5optwW&>a& zx9t<g*66{IV~~Z}$3p~SPSIOB>#>=ULo^0j%hPNSCfJJhqkBGNykRp$F`W}Kv(rmV zi4%*#Q5cLxtg7{I%`j)Z84a~n+b|V9*+y*7IJK?(Sg+Gnu^Ikh{aC#&{%DwIyhmVZ zQcV~jKpc*Uf8<<nClV_$Rj7j}D%51f0qF4n_yZNe*SfN<6epaT+6^htUZ|plbBe#= zeA3Es7iabfoh(vtG9SOAc$vKp`do#6EQo1PT#z8F3*z`iDWWe@!ZL&)On*VueSD@~ z0y2-FBWHBx#0Ra6CH_sWRR}I*Nfg;7MUxSg);%W$U2{1J<}yw6;#^thj>Ks_4K)nZ znVXY=WUVY9IiezKe6UGi4g%122S<*Aa}UrHbzK>3p5rS9k&T>>Dxr8{?Gkj;gNh=y z5oS6j1G>QH7eAr=7JiKs0tMKqx&+d?OUy&hndOxlIfF3k{OAXSofVpDdsH(wQDx;q zgP{WqGlB1q&rP($E2X-$sUdU>ZDa2Dv{}@pFE$GewNR6T2ZQjkjkiCuM1uv)_7*<* zo#e${osN0YFmfC$tY3w8M0hFUob*f62AdLmkMenfelwSJ3B{=l7J^|}1pmnV1w4Hq z_ymm^KC;d^d|0Gl`aVMB@GpM|B0{FrXoO5vZ)pjUWe5Wx233~x!D4bUL{13a<dPG+ znkn<PD+`0j+QV4TWe`-FwH{##=zF+jySexn&g7xKLjQ-79Swd_$7gV42W#Q2$OgcH zXsR6(iD=Kz7|Es&bPh(^zyr71Wd~vSol4NFL@*tlZB9fhJ$A9d-qk_uT&@E#E2y#i z7YEl3s4)T~G0rrfX0Vi>)WbGZu@+8hhXh8}3Co6&Qy;UArJqs~vcqwl_jKR@==3@p zNe&!fKa}o`Az?tQO_~78*W#eVP&n#CdIzvr7C>A@h^8YdLx~hxueayr9{)b}`snrF z>GS9H`lqq$y}Km8UEiwDc0H@lcKwJx+x1iWY}YU8vt56v&vyNLeYWe}6Vkq2_v`Zk zy`GI-&+GFAy?#ospVsRi#jZcp=fBYF%XUk9c7^=GKf6AdmuI^^Iw{X~?d+9jyFN1| z&(G@h+j{+uUVmm<-rMz)`uu`kCuZcmT_4xywqCt`^4_jH^x3ZW=(Amq>9bus`rOs) z7xnrjy*@B2_1pCseSTK2JNIk*nJ&X#&YK-d78&-2yfdlk!(KNveUtZmYWj%x#!YGU zZ}y(wl9qmr_p>*rrH^`d?o3O+*8APm^y|Exx2EOa;(hLAY3VQVzMGnUz4xQr((-Th zyq`)--{yTZWhREb?cNKi={I<Pb5B}5JG_;HY3XC$3rEt@U+Vqn*m&Z_uy>>99ZyTY z$s0{gzuDWKn!eK;Kbcm~EuMEOE&Wz+JT*N9$msR3mjYx?PXRKgD;dST`y2LN;XVfU z!`^ss@7@f1x4VygpTobKyubQ!{KZR<kn@so0|c;Iwt9PFU8RvydMlPr1dh_b9!tNU z>%Z08^QLj!QCsp`;QQn}UO+n4<HbPnKF*)ShhIi|+PFT;`L}zYR{XSfe~;5|_42X) z{2|h*-Tkk}4Sw@-@kUXQ(x29J^q7DB;CUNf<h&i;<rqG{j?<HHrpnU#KSK?8$#pc( z_1xl(#_;gXn!a7rN2xe|ZB9?({}Y;jXRMz0Bi-{}npj`YYkGV={wmj#Tu0wP`W=9q zaUKK54>jF5s4`^l8qitFZ=CBx)D8T4nr<BMChmvleN)p-qWBrf?)`V9Z})ET;^X>L z&2N&1k<p=HY1brzyw>v@*LvPK>WR~VTao_;hwd30xJ&B^IHlIJpy|e;k7)V@r0>vs z_wpN@-%XMG?`S<HNvYuA{Xo-Af-v~p3^?roJWVpY7E6kLGw5(yyBCp8@Hb9<M6!FI z(sbkKuhsP5*L36jH)#6bX}U=iR?ql|)NhiD^|OiewEld#Px^n;dQ5^aJb7rd)NhiF zrGFa)ZikoTUtiYzCgCY~ydNPwtv}aYlb-$s;0eLm_~zXThl_pk|4yIu?<1YyZxXa| zj!js|lx`BS!Fd<b)B3p`^2ZJ@DG$u|$$tUq<JxEU@*!>4ByFR6Uqt#1UdRWx>w5f- z<~Ip=yH>Ud@S*;j#B1|@TGLIEyi4;x!SHl@BKIHB{PFesIi%BikFV2TK)<%5pR-Em zt;T=fr~YfMlYW}yY523M=_cVDefW8#r@{X-NT+t=^ykZ3k7+Wm)ee2XPd%G?9=Ceq z%D*a_|0bjpJWb;<d^oD<Cb?Vxe~as}(TCSR*8HaV82;bD>m|%*cXuM4+BMC};P3{d zk6R|^`nEpx{A!={-{JJF-iLL(AlLl+&q$|sO(Qb=x#N0CH_guA@Cee==4DOun<i%c z|9MR}jnC3Qh4gXlgM0ZxpY-o)J*LSR-TOPFr}gJB0G^hPbFRCcZf|L6f~;u|9XahE zn_oDCBcaOpF2QoOgAiHR*l=6}LMLGICU>6%-}q&m3f-Y2pt1F#-l`!&qCBy0W@cY{ zCVcd?QI*Y$h*s<3+_a@OzTxVZd-XbYfcef7taMdG(a}Cf&FbthUFaUm?@#%hH;jLH zg^$z+-=CU-_w@=lJysDm`QWjWhwnRvBE3a_9(KPfHemP<oWAdP!7rS+pU%i)=-54u z+4c)>)C_OD|1^y{JizDvw@hHW$^<@Hf9{-*GebJf2Da>V&-<%z0Nnr6C+<5we*`7Y z96u6N9vL+DS-McbFc6AtT|D`~0}F*S{+as@A1heAf#ZdM8w$4ds8bDYCARq`jMFg0 zAEB>6rWkOq=1$FZzUauFh=H~%rW{sXp`Cqwh7Rjv+J{KUjVI}dHlojNH~e15KG&ND zKcpq%^CHGPa%`ne$U=8Ns+JR)<`=p_|6z+hLtg^2!#3`{_rYWHhmSn+h`)DY3YbCX z1YtSxCQyCnPfkouOzSiTzFPNdMho3qXTAgzWh|%-ADYC7GXor-Ge!_rEv?3ND~pXK z7Usm0pAIZo5L2Na{q{m%EQi-25(*Yac=k;6nWcV!BP(rYzztvty+2=AjlgYU65qLT zBV_X&Asfk)SkeO9tGN9-K9@v@u4;2>egzukx`Cd&dJvI=FT2LqPQN9>U%gvrruVJ8 zdlhl3_{8s-yk96pCP*fc+f1&?wAM;z`~qr%ODj?jV?q;Q5T_nEz0h3nqpb*@#20<A z=}wOKCR9o+E^#SG7Y#8~e7(N3a+U-1LI8p+@$?5Y3?853J|9TQj4Y18c_8pZtNv*f zF^<q_P{Co7sa?_CQ$Y;0eos9KiWFxP7V3K5ru8<@gLr3O;vn6LF_6nUK86zuG;fck zjUgV*O5BPWHGiO&=7A)FK|Ew&ZmHBH!n269UG2r|$Sf2&;V@%~G)a&>u)f6(9Ms|1 z6Hq3kP2mUuN1U36Y?*)nDy~%*OYo8Q7+ZDGWOQ1lvXrYx08@m^d+&vmaNps1KR<!J z#k{N&gV-n%9;FB?t0`C+&R8&C^Jfrt5U2_eXh~5xLk{4<u+u10Jxb)5SU%jK@3(_! zbP(Kt?j1P-fd~S1IC-RGpxu6i{8*jXeD?L6%4jw?eMdUQxXRjuf-@A<-0&M(ZVvtj zn^ma0l8%^viV-K&=kt02cGJ(|Ku<2@RJmpVL4;yDB4`l^BGCnwT)Eyv=X@P;0l4C; z^n6{hJ90s{Tiyg~c|hJ>-Qu!7;d4Y2i@j>CybDLqOwiLx5s@4d<?{{HC)aLU-p~mO zIKn3K;Nu<6%Pmp?y=&FF-UKOI-UMzZmhmm#2}lF@myu_p-DI6%qOzho=}H-u*b{0m zl{6H?=QszcOpoQ^I_&<j5(=W>VjbrkPDrhwU)}`t<vMg=q*WGs%gA2D_koZukG!S9 zUM()-Xb5{#!$;ig9>B9(E$&(k2EQkN3z^u=9%6n?yPBQQTA;k{@0ECfX)!2o{!hD( zyP0th^KIlu_7JyxS36?YS4DCs%ioXpfBWMfH?9BXPqpjkw8Jp#@(*Uj$nON6V5$oG zZ+=(1o}$j-2eU21$;zAi^vy^g#$V7rRfeDWX@8{8k{bG_?D_4u`LWY~^W)m}vSzgY zTRV0=i}(NJlsA8`U0=}h)PL%y^<R@c@`ur!SbgRfw(F@r@U!v1N6R193eA6PSMlq3 z9`&EfSo>C<?1<C^^^bn$XSQqHtxbJ(f6w5-EpPs4yN+xBt&G`??fTJJdGlM_)%t7Y z?b)uMh?O@xy<I;NTR_&X)%Q!W^5zG(E6mA}Uwr)kTFcw~nZMkwr|pH-V*R#C|81<i z`PJ>(jlnP8{?}sV&HrxKS)15C?f+h^y!q+vdP&RKCDtA9kMV+R%Y@tXGyma_j>&Tz z-Zp-_{s7sw;m^tke*fcA-tx&)h`*Np*LXpFvho%mFuFl`tMBh{V{4PrERJBimfx=P zXJE8;ZCuZzjN87&8;qZ%+C1-1_}}m!D{t2v3cKY4KgTI4W9!svuyXc%4GL45jo;!I zc3OF=-1&_=_jLObZGTTJ-OBHZrCW7&y-~}@vUvq<|EU=MTRF@Bsy^kvd0KLezt?ig zHC}#CpYnh9J<0!t7{KD?5A`Yki+>{JKMDVh`-_)<NXy6Jci=CjRPE>7(lXbSV)Z=S zr~O}9lN_xL;77S)S-8QS7o_|j!oNblSK@CDe+CZ2E23|PJGc#gKYE{(U#7+F{3JC@ UxB<6m<=^tpBxfmBAol3}f48BiG5`Po literal 0 HcmV?d00001 diff --git a/week08/cmake-build-debug/week08.cbp b/week08/cmake-build-debug/week08.cbp new file mode 100644 index 00000000..861ca55d --- /dev/null +++ b/week08/cmake-build-debug/week08.cbp @@ -0,0 +1,437 @@ +<?xml version="1.0" encoding="UTF-8"?> +<CodeBlocks_project_file> + <FileVersion major="1" minor="6"/> + <Project> + <Option title="week08"/> + <Option makefile_is_custom="1"/> + <Option compiler="gcc"/> + <Option virtualFolders="CMake Files\;"/> + <Build> + <Target title="all"> + <Option working_dir="/home/lewang/algorithm018/week08/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 all"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="rebuild_cache"> + <Option working_dir="/home/lewang/algorithm018/week08/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 rebuild_cache"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="edit_cache"> + <Option working_dir="/home/lewang/algorithm018/week08/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 edit_cache"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="242_isAnagram"> + <Option output="/home/lewang/algorithm018/week08/cmake-build-debug/242_isAnagram" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week08/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 242_isAnagram"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="242_isAnagram/fast"> + <Option output="/home/lewang/algorithm018/week08/cmake-build-debug/242_isAnagram" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week08/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 242_isAnagram/fast"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="493_Reverse_Pair"> + <Option output="/home/lewang/algorithm018/week08/cmake-build-debug/493_Reverse_Pair" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week08/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 493_Reverse_Pair"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="493_Reverse_Pair/fast"> + <Option output="/home/lewang/algorithm018/week08/cmake-build-debug/493_Reverse_Pair" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week08/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 493_Reverse_Pair/fast"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="52_totalN_Queens"> + <Option output="/home/lewang/algorithm018/week08/cmake-build-debug/52_totalN_Queens" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week08/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 52_totalN_Queens"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="52_totalN_Queens/fast"> + <Option output="/home/lewang/algorithm018/week08/cmake-build-debug/52_totalN_Queens" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week08/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 52_totalN_Queens/fast"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="note"> + <Option output="/home/lewang/algorithm018/week08/cmake-build-debug/note" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week08/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 note"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="note/fast"> + <Option output="/home/lewang/algorithm018/week08/cmake-build-debug/note" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week08/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 note/fast"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="bubble_sort_template"> + <Option output="/home/lewang/algorithm018/week08/cmake-build-debug/bubble_sort_template" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week08/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 bubble_sort_template"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="bubble_sort_template/fast"> + <Option output="/home/lewang/algorithm018/week08/cmake-build-debug/bubble_sort_template" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week08/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 bubble_sort_template/fast"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="51_N_Queen"> + <Option output="/home/lewang/algorithm018/week08/cmake-build-debug/51_N_Queen" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week08/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 51_N_Queen"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="51_N_Queen/fast"> + <Option output="/home/lewang/algorithm018/week08/cmake-build-debug/51_N_Queen" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week08/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 51_N_Queen/fast"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="Selection_Sort_template"> + <Option output="/home/lewang/algorithm018/week08/cmake-build-debug/Selection_Sort_template" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week08/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 Selection_Sort_template"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="Selection_Sort_template/fast"> + <Option output="/home/lewang/algorithm018/week08/cmake-build-debug/Selection_Sort_template" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week08/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 Selection_Sort_template/fast"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="Insetion_Sort_template"> + <Option output="/home/lewang/algorithm018/week08/cmake-build-debug/Insetion_Sort_template" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week08/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 Insetion_Sort_template"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="Insetion_Sort_template/fast"> + <Option output="/home/lewang/algorithm018/week08/cmake-build-debug/Insetion_Sort_template" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week08/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 Insetion_Sort_template/fast"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week08/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + </Build> + <Unit filename="/home/lewang/algorithm018/week08/242_isAnagram.cpp"> + <Option target="242_isAnagram"/> + </Unit> + <Unit filename="/home/lewang/algorithm018/week08/493_Reverse_Pair.cpp"> + <Option target="493_Reverse_Pair"/> + </Unit> + <Unit filename="/home/lewang/algorithm018/week08/51_N_Queen.cpp"> + <Option target="51_N_Queen"/> + </Unit> + <Unit filename="/home/lewang/algorithm018/week08/52_totalN_Queens.cpp"> + <Option target="52_totalN_Queens"/> + </Unit> + <Unit filename="/home/lewang/algorithm018/week08/Insetion_Sort_template.cpp"> + <Option target="Insetion_Sort_template"/> + </Unit> + <Unit filename="/home/lewang/algorithm018/week08/Selection_Sort_template.cpp"> + <Option target="Selection_Sort_template"/> + </Unit> + <Unit filename="/home/lewang/algorithm018/week08/bubble_sort_template.cpp"> + <Option target="bubble_sort_template"/> + </Unit> + <Unit filename="/home/lewang/algorithm018/week08/note.cpp"> + <Option target="note"/> + </Unit> + <Unit filename="/home/lewang/algorithm018/week08/CMakeLists.txt"> + <Option virtualFolder="CMake Files\"/> + </Unit> + </Project> +</CodeBlocks_project_file> diff --git a/week08/heap_Sort_template.cpp b/week08/heap_Sort_template.cpp new file mode 100644 index 00000000..7d8ceed2 --- /dev/null +++ b/week08/heap_Sort_template.cpp @@ -0,0 +1,44 @@ +// +// Created by lewang on 12/12/20. +//c++模板直接调用现成的数据结构 +void heap_sort(int a[], int len) { + priority_queue<int, vector<int>, greater<int>> q; + for(int i = 0; i < len; i++) { + q.push(a[i]); + } + for(int i = 0; i < len; i++) { + a[i] = q.pop(); + } +} + +//手动维护heap + +static void heapify(int array[], int length, int i) { + int left = 2 * i + 1, right = 2 * i + 2; + int largest = i;; + if(left < length && array[left] > array[largest]) { + largest = leftChild; + } + if(right < length && array[right] > array[largest]) { + largest = right; + } + if(largest != i) { + int temp = array[i]; array[i] = array[largest];array[largest] = temp; + heapify(array,length, largest); + } + +} + +public: + static void heapSort(int array[]) { + if(array.length == 0) return; + + int length = array.length; + for(int i = length / 2 - 1; i >= 0; i--){ + heapify(array,length,i); + } + for(int i = length - 1; i >= 0; i--) { + int temp = array[0]; array[0] = array[i]; array[i] = temp; + heapify(array, i, 0); + } +} \ No newline at end of file diff --git a/week08/note.cpp b/week08/note.cpp new file mode 100644 index 00000000..dc074a88 --- /dev/null +++ b/week08/note.cpp @@ -0,0 +1,111 @@ +// +// Created by lewang on 12/11/20. +// + +#include <iostream> +#include <bitset> +using namespace std; + +int main(){ + int a = 8,b=5; + cout << "Decimal: a = " << a << ", b = " << b << endl; + cout << "Binary: a = "<< bitset<8>(a) << ", b = " <<bitset<8>(b) << endl; + +//位运算: +//- 与 & + cout << "a & b =" << bitset<8>(a & b)<<endl; +//- 或 | + cout << "a | b =" << bitset<8>(a | b) << endl; +//- 非 ~ + cout << "~a = " << bitset<8>(~a) << endl; +//- 异或 ^ + cout << "a ^ b = " << bitset<8>(a | b) << endl; +//- 左移 << + cout << "a << b = " << bitset<16>(a << b) << endl; +//- 右移 >> + cout << "a >> b = " << bitset<16>(a >> b) << endl; + +// 异或的一些操作 +// x ^ 0 =x + cout << "a ^ 0 =" << bitset<8>(a ^ 0) << endl; +// x ^ 1s = ~x //注意 1s = ~0 + cout << "a ^ ~0 =" << bitset<8>(a ^ ~0) << endl; +// x ^ (~x) = 1s + cout << "a ^ ~a =" << bitset<8>(a ^ (~a)) << endl; +// x ^ x = 0 + cout << "a ^ a =" << bitset<8>(a ^ a) << endl; +// c = a ^ b => a ^ c = b, b ^ c = a //异或操作来 交换两个数 +// a ^b ^ c = a ^ (b ^ c) = (a ^ b) ^c //满足结合律 +// + cout<<"-----------指定位置的位运算-------------------"<<endl; + int x = 156, n =3; + cout << "Decimal: x = " << x << ", n = " << n << endl; + cout << "Binary: x = "<< bitset<8>(x) << ", n = " <<bitset<8>(n) << endl; + cout<<"-----------------------------"<<endl; +// 指定位置的位运算: + cout <<"1.将x最右边的n位清零:x&(~0<<n)"<<endl; + cout<< ~0 << "|" <<bitset<64>(~0) <<endl; + cout<< ~0 << "|" <<bitset<128>(~0) <<endl; + cout << 1 << "|" << bitset<64>(1) <<endl; + cout<< (~0 << n) << "|"<< bitset<64>(~0<<n)<<endl; + cout<< (1 << n) << "|" << bitset<64>(1<<n)<<endl; + //注意~0 和 1 不一样!!!! 十进制差了一个符号,二进制差了64-1 = 63 个1!!! + cout << bitset<8>(x&(~0<<n)) << endl; + cout << bitset<8>(x&(1<<n)) << endl;//只保留第n+1位上的数,其余都为0 + + cout << "2.获取x的第n位值(0或者1): (x>>n)&1 " << endl; + cout << bitset<8>((x>>n)&1) << endl; + cout << ((x>>n)&1) << endl; + + cout <<"3.获取x的第n位值的幂值: x&(1<<n)" <<endl; + cout << bitset<8>(x&(1<<n)) << endl; + cout << (x&(1<<n)) << endl; + + cout<<"4.仅将第n位设为1: x|(1<<n)"<<endl; + cout << bitset<8>(x|(1<<n)) << endl; + + + cout<<"5.仅将第n为设为0: x & (~(1<<n))" <<endl; + cout << bitset<8>(x & (~(1<<n))) << endl; + + + cout<<"6.将x最高位到第n位(含)清零:x & ((1 << n) - 1)"<<endl; + cout << bitset<8>(x & ((1 << n) - 1)) << endl; + + int xx = 153; + cout << bitset<8>(xx)<<endl; + // -xx 为xx的补码, 将 -xx = ~xx + 1 + cout << (xx & -xx) << endl; + cout<< bitset<8>(xx & (xx-1))<< endl; + cout<<(xx&~xx)<<endl; + + //uint32_t + int nn = 133; + cout<<bitset<32>(nn)<<endl; + cout<<bitset<32>(nn&(nn-1))<<endl; + cout<< " --------------------------- "<<endl; + + + int sum = 0; + while(nn > 0) { + cout<<bitset<32>(nn-1)<<endl; + sum ++; + nn &=(nn-1); + cout<<bitset<32>(nn)<<endl; + } + cout<<sum<<endl; + cout<<"---------------------------"<<endl; + uint32_t nx = 4589762134; + cout<<bitset<32>(nx)<<endl; + uint32_t res = 0; + for(int i = 0; i < 32; i++) { + uint32_t t = (nx >> i) & 1;//得到n的最后一位 + //nx >>= i; + cout<<t<<endl; + res = (t << (32-i)) | res; + } + return res; + + + return 0; +} \ No newline at end of file diff --git a/week08/quick_sort_template.cpp b/week08/quick_sort_template.cpp new file mode 100644 index 00000000..6d2fa9e6 --- /dev/null +++ b/week08/quick_sort_template.cpp @@ -0,0 +1,28 @@ + +// +// Created by lewang on 12/12/20. +// +//参考课堂上分享的java改写 +//这里不申请新的空间进行操作,所以会有一些小技巧 +public static void quickSort(vector<int> array, int begin, int end) { + if(end <= begin) return;//?? + int pivot = partition(array,begin,end); + quickSort(aray,begin,pivot - 1); + quickSort(array,pivot + 1, end); +} + +static int partition(vector<int> a, int begin, int end) +{ + int pivot = end, counter = begin; + for(int i = begin; i < end; i++) { + if(a[i] < a[pivot]) { + int temp = a[counter]; a[counter] = a[i]; a[i] = temp; + counter ++; + } + } + int temp = a[pivot]; a[pivot] = a[counter]; a[counter] = temp; + return counter; +} + +//调用 +//quickSort(a,0,a.size() -1); \ No newline at end of file From 87cbf64f49b9ab30b41306923388566a85190134 Mon Sep 17 00:00:00 2001 From: Ella2le <1071444737@qq.com> Date: Sun, 20 Dec 2020 01:41:15 +0800 Subject: [PATCH 20/21] do week9 some homework --- week09/151_reverseWords.cpp | 106 +++ week09/186_reverseWord2.cpp | 45 ++ week09/205_isIosmorphic.cpp | 58 ++ week09/300_lengthOfLIS.cpp | 42 ++ week09/387_firstuniquechar.cpp | 32 + week09/541_reverseStr.cpp | 57 ++ week09/557_reverseWords3.cpp | 24 + week09/5_longestPalidrome.cpp | 63 ++ week09/680_validPalindrome.cpp | 74 +++ week09/8_myAtoi.cpp | 122 ++++ week09/917_reverseOnlyLetters.cpp | 43 ++ week09/CMakeLists.txt | 14 + week09/NOTE.md | 30 +- week09/cmake-build-debug/151_reverseWords | Bin 0 -> 62272 bytes week09/cmake-build-debug/205_isIosmorphic | Bin 0 -> 61304 bytes week09/cmake-build-debug/387_firstuniquechar | Bin 0 -> 219960 bytes week09/cmake-build-debug/541_reverseStr | Bin 0 -> 61664 bytes week09/cmake-build-debug/680_validPalindrome | Bin 0 -> 61232 bytes week09/cmake-build-debug/8_myAtoi | Bin 0 -> 61488 bytes .../cmake-build-debug/917_reverseOnlyLetters | Bin 0 -> 61784 bytes week09/cmake-build-debug/CMakeCache.txt | 380 +++++++++++ .../151_reverseWords.cpp.o | Bin 0 -> 83864 bytes .../151_reverseWords.dir/CXX.includecache | 16 + .../151_reverseWords.dir/DependInfo.cmake | 20 + .../151_reverseWords.dir/build.make | 98 +++ .../151_reverseWords.dir/cmake_clean.cmake | 10 + .../151_reverseWords.dir/depend.internal | 5 + .../151_reverseWords.dir/depend.make | 5 + .../151_reverseWords.dir/flags.make | 10 + .../CMakeFiles/151_reverseWords.dir/link.txt | 1 + .../151_reverseWords.dir/progress.make | 3 + .../205_isIosmorphic.cpp.o | Bin 0 -> 80328 bytes .../205_isIosmorphic.dir/CXX.includecache | 18 + .../205_isIosmorphic.dir/DependInfo.cmake | 20 + .../205_isIosmorphic.dir/build.make | 98 +++ .../205_isIosmorphic.dir/cmake_clean.cmake | 10 + .../205_isIosmorphic.dir/depend.internal | 5 + .../205_isIosmorphic.dir/depend.make | 5 + .../205_isIosmorphic.dir/flags.make | 10 + .../CMakeFiles/205_isIosmorphic.dir/link.txt | 1 + .../205_isIosmorphic.dir/progress.make | 3 + .../CMakeFiles/3.13.2/CMakeCCompiler.cmake | 73 ++ .../CMakeFiles/3.13.2/CMakeCXXCompiler.cmake | 76 +++ .../3.13.2/CMakeDetermineCompilerABI_C.bin | Bin 0 -> 8464 bytes .../3.13.2/CMakeDetermineCompilerABI_CXX.bin | Bin 0 -> 8472 bytes .../CMakeFiles/3.13.2/CMakeSystem.cmake | 15 + .../3.13.2/CompilerIdC/CMakeCCompilerId.c | 623 +++++++++++++++++ .../CMakeFiles/3.13.2/CompilerIdC/a.out | Bin 0 -> 8616 bytes .../CompilerIdCXX/CMakeCXXCompilerId.cpp | 602 +++++++++++++++++ .../CMakeFiles/3.13.2/CompilerIdCXX/a.out | Bin 0 -> 8632 bytes .../387_firstuniquechar.cpp.o | Bin 0 -> 322224 bytes .../387_firstuniquechar.dir/CXX.includecache | 16 + .../387_firstuniquechar.dir/DependInfo.cmake | 20 + .../387_firstuniquechar.dir/build.make | 98 +++ .../387_firstuniquechar.dir/cmake_clean.cmake | 10 + .../387_firstuniquechar.dir/depend.internal | 5 + .../387_firstuniquechar.dir/depend.make | 5 + .../387_firstuniquechar.dir/flags.make | 10 + .../387_firstuniquechar.dir/link.txt | 1 + .../387_firstuniquechar.dir/progress.make | 3 + .../541_reverseStr.dir/541_reverseStr.cpp.o | Bin 0 -> 81248 bytes .../541_reverseStr.dir/CXX.includecache | 14 + .../541_reverseStr.dir/DependInfo.cmake | 20 + .../CMakeFiles/541_reverseStr.dir/build.make | 98 +++ .../541_reverseStr.dir/cmake_clean.cmake | 10 + .../541_reverseStr.dir/depend.internal | 5 + .../CMakeFiles/541_reverseStr.dir/depend.make | 5 + .../CMakeFiles/541_reverseStr.dir/flags.make | 10 + .../CMakeFiles/541_reverseStr.dir/link.txt | 1 + .../541_reverseStr.dir/progress.make | 3 + .../680_validPalindrome.cpp.o | Bin 0 -> 82200 bytes .../680_validPalindrome.dir/CXX.includecache | 14 + .../680_validPalindrome.dir/DependInfo.cmake | 20 + .../680_validPalindrome.dir/build.make | 98 +++ .../680_validPalindrome.dir/cmake_clean.cmake | 10 + .../680_validPalindrome.dir/depend.internal | 5 + .../680_validPalindrome.dir/depend.make | 5 + .../680_validPalindrome.dir/flags.make | 10 + .../680_validPalindrome.dir/link.txt | 1 + .../680_validPalindrome.dir/progress.make | 3 + .../CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.o | Bin 0 -> 80880 bytes .../CMakeFiles/8_myAtoi.dir/CXX.includecache | 14 + .../CMakeFiles/8_myAtoi.dir/DependInfo.cmake | 20 + .../CMakeFiles/8_myAtoi.dir/build.make | 98 +++ .../CMakeFiles/8_myAtoi.dir/cmake_clean.cmake | 10 + .../CMakeFiles/8_myAtoi.dir/depend.internal | 5 + .../CMakeFiles/8_myAtoi.dir/depend.make | 5 + .../CMakeFiles/8_myAtoi.dir/flags.make | 10 + .../CMakeFiles/8_myAtoi.dir/link.txt | 1 + .../CMakeFiles/8_myAtoi.dir/progress.make | 3 + .../917_reverseOnlyLetters.cpp.o | Bin 0 -> 81528 bytes .../CXX.includecache | 14 + .../DependInfo.cmake | 20 + .../917_reverseOnlyLetters.dir/build.make | 98 +++ .../cmake_clean.cmake | 10 + .../depend.internal | 5 + .../917_reverseOnlyLetters.dir/depend.make | 5 + .../917_reverseOnlyLetters.dir/flags.make | 10 + .../917_reverseOnlyLetters.dir/link.txt | 1 + .../917_reverseOnlyLetters.dir/progress.make | 3 + .../CMakeDirectoryInformation.cmake | 16 + .../CMakeFiles/CMakeOutput.log | 625 ++++++++++++++++++ .../CMakeFiles/Makefile.cmake | 56 ++ week09/cmake-build-debug/CMakeFiles/Makefile2 | 335 ++++++++++ .../CMakeFiles/TargetDirectories.txt | 9 + .../CMakeFiles/clion-environment.txt | 3 + .../CMakeFiles/clion-log.txt | 4 + .../CMakeFiles/cmake.check_cache | 1 + .../CMakeFiles/feature_tests.bin | Bin 0 -> 12520 bytes .../CMakeFiles/feature_tests.c | 34 + .../CMakeFiles/feature_tests.cxx | 405 ++++++++++++ .../CMakeFiles/progress.marks | 1 + week09/cmake-build-debug/Makefile | 442 +++++++++++++ week09/cmake-build-debug/cmake_install.cmake | 49 ++ week09/cmake-build-debug/week09.cbp | 388 +++++++++++ 115 files changed, 6016 insertions(+), 1 deletion(-) create mode 100644 week09/151_reverseWords.cpp create mode 100644 week09/186_reverseWord2.cpp create mode 100644 week09/205_isIosmorphic.cpp create mode 100644 week09/300_lengthOfLIS.cpp create mode 100644 week09/387_firstuniquechar.cpp create mode 100644 week09/541_reverseStr.cpp create mode 100644 week09/557_reverseWords3.cpp create mode 100644 week09/5_longestPalidrome.cpp create mode 100644 week09/680_validPalindrome.cpp create mode 100644 week09/8_myAtoi.cpp create mode 100644 week09/917_reverseOnlyLetters.cpp create mode 100644 week09/CMakeLists.txt create mode 100755 week09/cmake-build-debug/151_reverseWords create mode 100755 week09/cmake-build-debug/205_isIosmorphic create mode 100755 week09/cmake-build-debug/387_firstuniquechar create mode 100755 week09/cmake-build-debug/541_reverseStr create mode 100755 week09/cmake-build-debug/680_validPalindrome create mode 100755 week09/cmake-build-debug/8_myAtoi create mode 100755 week09/cmake-build-debug/917_reverseOnlyLetters create mode 100644 week09/cmake-build-debug/CMakeCache.txt create mode 100644 week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.o create mode 100644 week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/CXX.includecache create mode 100644 week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/DependInfo.cmake create mode 100644 week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/build.make create mode 100644 week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/cmake_clean.cmake create mode 100644 week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/depend.internal create mode 100644 week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/depend.make create mode 100644 week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/flags.make create mode 100644 week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/link.txt create mode 100644 week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/progress.make create mode 100644 week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.o create mode 100644 week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/CXX.includecache create mode 100644 week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/DependInfo.cmake create mode 100644 week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/build.make create mode 100644 week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/cmake_clean.cmake create mode 100644 week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/depend.internal create mode 100644 week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/depend.make create mode 100644 week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/flags.make create mode 100644 week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/link.txt create mode 100644 week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/progress.make create mode 100755 week09/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake create mode 100755 week09/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake create mode 100755 week09/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin create mode 100755 week09/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin create mode 100755 week09/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake create mode 100644 week09/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c create mode 100755 week09/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out create mode 100644 week09/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp create mode 100755 week09/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out create mode 100644 week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.o create mode 100644 week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/CXX.includecache create mode 100644 week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/DependInfo.cmake create mode 100644 week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/build.make create mode 100644 week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/cmake_clean.cmake create mode 100644 week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/depend.internal create mode 100644 week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/depend.make create mode 100644 week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/flags.make create mode 100644 week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/link.txt create mode 100644 week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/progress.make create mode 100644 week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.o create mode 100644 week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/CXX.includecache create mode 100644 week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/DependInfo.cmake create mode 100644 week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/build.make create mode 100644 week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/cmake_clean.cmake create mode 100644 week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/depend.internal create mode 100644 week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/depend.make create mode 100644 week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/flags.make create mode 100644 week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/link.txt create mode 100644 week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/progress.make create mode 100644 week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.o create mode 100644 week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/CXX.includecache create mode 100644 week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/DependInfo.cmake create mode 100644 week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/build.make create mode 100644 week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/cmake_clean.cmake create mode 100644 week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/depend.internal create mode 100644 week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/depend.make create mode 100644 week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/flags.make create mode 100644 week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/link.txt create mode 100644 week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/progress.make create mode 100644 week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.o create mode 100644 week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/CXX.includecache create mode 100644 week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/DependInfo.cmake create mode 100644 week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/build.make create mode 100644 week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/cmake_clean.cmake create mode 100644 week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/depend.internal create mode 100644 week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/depend.make create mode 100644 week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/flags.make create mode 100644 week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/link.txt create mode 100644 week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/progress.make create mode 100644 week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.o create mode 100644 week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/CXX.includecache create mode 100644 week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/DependInfo.cmake create mode 100644 week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/build.make create mode 100644 week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/cmake_clean.cmake create mode 100644 week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/depend.internal create mode 100644 week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/depend.make create mode 100644 week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/flags.make create mode 100644 week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/link.txt create mode 100644 week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/progress.make create mode 100644 week09/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake create mode 100644 week09/cmake-build-debug/CMakeFiles/CMakeOutput.log create mode 100644 week09/cmake-build-debug/CMakeFiles/Makefile.cmake create mode 100644 week09/cmake-build-debug/CMakeFiles/Makefile2 create mode 100644 week09/cmake-build-debug/CMakeFiles/TargetDirectories.txt create mode 100644 week09/cmake-build-debug/CMakeFiles/clion-environment.txt create mode 100644 week09/cmake-build-debug/CMakeFiles/clion-log.txt create mode 100644 week09/cmake-build-debug/CMakeFiles/cmake.check_cache create mode 100755 week09/cmake-build-debug/CMakeFiles/feature_tests.bin create mode 100644 week09/cmake-build-debug/CMakeFiles/feature_tests.c create mode 100644 week09/cmake-build-debug/CMakeFiles/feature_tests.cxx create mode 100644 week09/cmake-build-debug/CMakeFiles/progress.marks create mode 100644 week09/cmake-build-debug/Makefile create mode 100644 week09/cmake-build-debug/cmake_install.cmake create mode 100644 week09/cmake-build-debug/week09.cbp diff --git a/week09/151_reverseWords.cpp b/week09/151_reverseWords.cpp new file mode 100644 index 00000000..62fa3ad9 --- /dev/null +++ b/week09/151_reverseWords.cpp @@ -0,0 +1,106 @@ +// +// Created by lewang on 12/19/20. +// +#include <iostream> +#include <string> +#include <vector> +using namespace std; + + +class Solution { +public: + string reverseWords(string s) { + //Brute-force + int len = s.size(); + //cout << len; + bool flag = false; + vector<string> ss; + string temp; + for(int i = 0; i < len; i++) { + if(s[i] != ' '){ + temp += s[i]; + if(i == len - 1){ + + ss.push_back(temp); + } + + + }else if(s[i] == ' ' && !temp.empty()) { //|| (i = len - 1 &&!temp.empty()) + ss.push_back(temp); + temp.erase(temp.begin(),temp.end()); + }else { + continue; + } + + } + string res; + + for(int j = ss.size()-1; j >=0; j--) { + res += ss[j]; + if(j > 0) res +=' '; + + } + return res; + } + + + //进阶用o(1)空间复杂度解决问题 + //即在原数组上进行操作 + string reverseWords1(string s) { + int len = s.size(); + //reverse the whole string; + for(int i = 0, j = len-1; i < j; i++, j--) { + swap(s[i],s[j]); + } + cout << s.size() << ", |" << s <<"|"<<endl; + //remove the extra space + for(int i = 0; i < len; i++) { + if(s[i]==' '&& (s[i + 1]==' '||(i+1) == s.size() || i == 0)){ + s.erase(i,1); + i--; + } + } + cout << s.size() << ", |" << s <<"|"<<endl; + //reverse every word + cout<<"s new lenght : " << s.size()<<endl; + + int l = 0,r = 0; + for(int j = 0; j < s.size(); j++) { + + if(s[j] == ' ') { + r = j - 1; + while(l < r) { + swap(s[l],s[r]); + l++; + r--; + } + l = j + 1; + } + if(j == s.size()-1){ + r = j; + while(l < r) { + swap(s[l],s[r]); + l++; + r--; + } + l = j + 1; + } + } + + return s; + } + //还可以用双指针, + //c++ 有函数 reverse(), 可以实现快速反转,不用自己写循环 +}; + + +int main() { + Solution test; + string s = " the sky is blue "; + cout<<"s length:" << s.size()<<endl; + cout << s << endl; + string res = test.reverseWords1(s); + cout << "After reverse:\n" << res; + + return 0; +} \ No newline at end of file diff --git a/week09/186_reverseWord2.cpp b/week09/186_reverseWord2.cpp new file mode 100644 index 00000000..0cdb6aeb --- /dev/null +++ b/week09/186_reverseWord2.cpp @@ -0,0 +1,45 @@ +// +// Created by lewang on 12/19/20. +// +#include <iostream> +#include <vector> +#include <string> +using namespace std; +class Solution { +public: + void reverseWords(vector<char>& s) { + int len = s.size(); + //cout << len; + bool flag = false; + vector<string> ss; + string temp; + for(int i = 0; i < len; i++) { + if(s[i] != ' '){ + temp += s[i]; + if(i == len - 1){ + ss.push_back(temp); + } + }else if(s[i] == ' ' && !temp.empty()) { //|| (i = len - 1 &&!temp.empty()) + ss.push_back(temp); + temp.erase(temp.begin(),temp.end()); + }else { + continue; + } + + } + s.erase(s.begin(),s.end()); + for(int j = ss.size()-1; j >=0; j--) { + for(int i = 0; i < ss[j].size(); i++ ){ + char temp = ss[j][i]; + s.push_back(temp); + } + if(j > 0) s.push_back(' '); + + } + //return res; + + } +}; + +//进阶用o(1)空间复杂度解决问题 +//即在原数组上进行操作 \ No newline at end of file diff --git a/week09/205_isIosmorphic.cpp b/week09/205_isIosmorphic.cpp new file mode 100644 index 00000000..43511e49 --- /dev/null +++ b/week09/205_isIosmorphic.cpp @@ -0,0 +1,58 @@ +// +// Created by lewang on 12/19/20. +// +#include <iostream> +#include <map> +#include <string> +#include <unordered_map> +using namespace std; + +class Solution { +public: + bool isIsomorphic(string s, string t) { + if(s.size()!= t.size()) return false; + map<char,char> s2t; + map<char,char> t2s; + + for(int i = 0; i < s.size(); i++){ + if((s2t.find(s[i])!=s2t.end() && s2t[s[i]] != t[i]) || ((t2s.find(t[i])!=t2s.end() && t2s[t[i]] != s[i]))) { + return false; + }else { + s2t[s[i]] = t[i]; + t2s[t[i]] = s[i]; + + } + + } + return true; + } + + //记录一个字符上次出现的位置,如果两个字符串中的字符上次出现的位置一样,那么就属于同构。 + //用一个数组来记录会比之前用map快很多!!! + bool isIsomorphic1(string s, string t) { + + int preIndexOfs[256]; + int preIndexOft[256]; + for (int i = 0; i < s.size(); i++) { + preIndexOfs[s[i]] = i + 1; + preIndexOft[t[i]] = i + 1; + } + for( int i = 0; i < s.size(); i++) { + if (preIndexOfs[s[i]] != preIndexOft[t[i]]) { + return false; + } + } + + return true; + } +}; + +int main(){ + Solution test; + string a = "ab"; + string b = "cb"; + bool res = test.isIsomorphic1(a,b); + cout <<res; + + return 0; +} \ No newline at end of file diff --git a/week09/300_lengthOfLIS.cpp b/week09/300_lengthOfLIS.cpp new file mode 100644 index 00000000..e8e77c40 --- /dev/null +++ b/week09/300_lengthOfLIS.cpp @@ -0,0 +1,42 @@ +// +// Created by lewang on 12/20/20. +// +//二分法 +class Solution { +public: + int lengthOfLIS(vector<int>& nums) { + int n = nums.size(); + vector<int> tails(n,0); + int res = 0; + for(int num : nums) { + int i = 0, j = res; + while(i < j) { + int m = (i + j) / 2; + if(tails[m] < num) i = m + 1; + else j = m; + } + tails[i] = num; + if(res == j) res++; + } + return res; + } +}; +//动态规划 + +class Solution { +public: + int lengthOfLIS(vector<int>& nums) { + int n=(int)nums.size(); + if (n == 0) return 0; + vector<int> dp(n, 0); + for (int i = 0; i < n; ++i) { + dp[i] = 1; + for (int j = 0; j < i; ++j) { + if (nums[j] < nums[i]) { + dp[i] = max(dp[i], dp[j] + 1); + } + } + } + return *max_element(dp.begin(), dp.end()); + } +}; \ No newline at end of file diff --git a/week09/387_firstuniquechar.cpp b/week09/387_firstuniquechar.cpp new file mode 100644 index 00000000..4a38e863 --- /dev/null +++ b/week09/387_firstuniquechar.cpp @@ -0,0 +1,32 @@ +// +// Created by lewang on 12/19/20. +// +#include <iostream> +#include <unordered_map> +#include <string> + +using namespace std; + +class Solution { +public: + int firstUniqChar(string s) { + // int res = -1; + unordered_map<char,int> m; + for(int i = 0; i < s.size(); ++i) { + m[s[i]] += 1; + } + for(int i = 0; i < s.size(); ++i) { + if(m[s[i]] == 1) return i; + } + return -1; + } +}; + +int main(){ + Solution test; + string s = "hahafirst"; + int res = test.firstUniqChar(s); + + cout << res << endl; + return 0; +} \ No newline at end of file diff --git a/week09/541_reverseStr.cpp b/week09/541_reverseStr.cpp new file mode 100644 index 00000000..084db806 --- /dev/null +++ b/week09/541_reverseStr.cpp @@ -0,0 +1,57 @@ +// +// Created by lewang on 12/19/20. +// + +//a. 暴力 +//1) len(s的长度) mod 2k 余数为0 +//2) len mod 2k 后 余数等于k, +//3) len mod 2k 后 余数大于k,前k个数还需要反转 (可以和1)&2)合并); +//4) len mod 2k 后 余数小于k,不用再反转 + +#include <iostream> +#include <string> +using namespace std; +class Solution { +public: + string reverseStr(string s, int k) { + int len = (int)s.size(); + int m = len % (2*k); + int n = len / (2*k); + + for(int i = 0; i < n * 2* k; i += (2*k)) { + cout << " p1 " << endl; + cout<< i << endl; + for(int l = i,r = i + k -1; l < r; l++,r--){ + cout<< " q1 "<<endl; + cout << l <<" " << r << endl; + char temp = s[l]; + s[l] = s[r]; + s[r] = temp; + } + } + cout << "fend" << endl; + int left; + if(m >= k) { + left = k; + }else { + left = m; + } + for(int l = n*2*k,r = n*2*k + left -1; l < r; l++,r--){ + char temp = s[l]; + s[l] = s[r]; + s[r] = temp; + } + return s; + + } +}; + +int main(){ + Solution test; + string s = "abcdefgh"; + string res; + + res = test.reverseStr(s,8); + cout << res; + return 0; +} \ No newline at end of file diff --git a/week09/557_reverseWords3.cpp b/week09/557_reverseWords3.cpp new file mode 100644 index 00000000..a8cd5d6c --- /dev/null +++ b/week09/557_reverseWords3.cpp @@ -0,0 +1,24 @@ + +// +// Created by lewang on 12/19/20. +// + +class Solution { +public: + string reverseWords(string s) { + int len = s.size(); + int j = 0; + for(int i = 0; i < len; ++i) { + if(s[i] == ' '){ + reverse(s.begin()+j,s.begin()+i); + j = i + 1; + } + if(i == len -1){ + reverse(s.begin()+j,s.end()); + j = i + 1; + } + + } + return s; + } +}; \ No newline at end of file diff --git a/week09/5_longestPalidrome.cpp b/week09/5_longestPalidrome.cpp new file mode 100644 index 00000000..3679dc55 --- /dev/null +++ b/week09/5_longestPalidrome.cpp @@ -0,0 +1,63 @@ +// +// Created by lewang on 12/20/20. +// + + +//暴力: +//先找所有子串中的回文子串,再拿出最长的返回 + +// +class Solution { +public: + string longestPalindrome(string s) { + int l = i, r = j; + while(l < r) { + if(s[l] == s[r]){ + l++; + r++; + }else{ + isPalidrome(s,l+1,r); + isPalidrome(s,l,r-1); + } + } + return s.substr(i,j); + } +// string isPalidrome(string& s, int i, int j){ +// int l = i, r = j; +// while(l < r) { +// if(s[l] == s[r]){ +// l++; +// r++; +// }else{ +// isPalidrome(s,l+1,r); +// isPalidrome(s,l,r-1); +// } +// } +// return s.substr(i,j); +// } +}; + +class Solution { +public: + string longestPalindrome(string s) { + int n = s.size(); + vector<vector<int>> dp(n, vector<int>(n)); + string ans; + for (int l = 0; l < n; ++l) { + for (int i = 0; i + l < n; ++i) { + int j = i + l; + if (l == 0) { + dp[i][j] = 1; + } else if (l == 1) { + dp[i][j] = (s[i] == s[j]); + } else { + dp[i][j] = (s[i] == s[j] && dp[i + 1][j - 1]); + } + if (dp[i][j] && l + 1 > ans.size()) { + ans = s.substr(i, l + 1); + } + } + } + return ans; + } +}; diff --git a/week09/680_validPalindrome.cpp b/week09/680_validPalindrome.cpp new file mode 100644 index 00000000..0b5d8f23 --- /dev/null +++ b/week09/680_validPalindrome.cpp @@ -0,0 +1,74 @@ +// +// Created by lewang on 12/19/20. +// +#include <iostream> +#include <string> + +using namespace std; + +class Solution { +public: + bool validPalindrome(string s) { + int len = s.size(); + bool isSwaped = false; + for(int i = 0, j = len - 1; i < j; i++, j--) { + cout << s[i] << " " << s[j]<<endl; + if(s[i] == s[j]){ + cout << "P1 i= " << i << " j = "<<j << endl; + continue; + }else if(!isSwaped){ + int l = i + 1; + int r = j - 1; + //if(l == r)return true; + isSwaped = true; + cout << "P2 i= " << i << " j = "<<j << endl; + if(s[l] == s[j]){ + i++; + cout << "P2-1 i= " << i << " j = "<<j << endl; + continue; + + }else if(s[i] == s[r]){ + j--; + cout << "P2-2 i= " << i << " j = "<<j << endl; + continue; + } + else { + cout << "P3 i= " << i << " j = "<<j << endl; + return false; + } + }else if(isSwaped && s[i] != s[j]) { + cout << "P4 i= " << i << " j = "<<j << endl; + return false; + } + + } + return true; + } +}; +//暴力的时候有问题 + +class Solution2 { +public: + bool palindrome(const std::string& s, int i, int j) + { + for ( ; i < j && s[i] == s[j]; ++i, --j); + return i >= j; + } + + bool validPalindrome(string s) { + int i = 0, j = s.size() - 1; + for ( ; i < j && s[i] == s[j]; ++i, --j); + return palindrome(s, i, j - 1) || palindrome(s, i + 1, j); + } +}; + +int main() { + Solution test; +// cout << " i= " << i << " j = "<<j << endl; + string s = "aguokepatgbnvfqmgmlcupuufxoohdfpgjdmysgvhmvffcnqxjjxqncffvmhvgsymdjgpfdhooxfuupuculmgmqfvnbgtapekouga"; + + bool res = test.validPalindrome(s); + cout << s[21] << " " << s[80] << endl; + cout << res; + return 0; +} \ No newline at end of file diff --git a/week09/8_myAtoi.cpp b/week09/8_myAtoi.cpp new file mode 100644 index 00000000..a8a863d4 --- /dev/null +++ b/week09/8_myAtoi.cpp @@ -0,0 +1,122 @@ +// +// Created by lewang on 12/20/20. +// +#include <iostream> +#include <string> +#include <vector> +#include <unordered_map> +#include <climits> +// 如果第一个非空字符为正或者负号时,则将该符号与之后面尽可能多的连续数字字符组合起来,形成一个有符号整数。 +// 假如第一个非空字符是数字,则直接将其与之后连续的数字字符组合起来,形成一个整数。 +// 该字符串在有效的整数部分之后也可能会存在多余的字符,那么这些字符可以被忽略,它们对函数不应该造成影响。 +// 注意:假如该字符串中的第一个非空格字符不是一个有效整数字符、字符串为空或字符串仅包含空白字符时,则你的函数不需要进行转换,即无法进行有效转换。 +// 在任何情况下,若函数不能进行有效的转换时,请返回 0 。 +// 提示: +// 本题中的空白字符只包括空格字符 ' ' 。 +// 假设我们的环境只能存储 32 位大小的有符号整数,那么其数值范围为 [−231, 231 − 1]。如果数值超过这个范围,请返回 INT_MAX (231 +// − 1) 或 INT_MIN (−231) 。 +using namespace std; +//我的暴力解法 +//[TODO]边界问题还是比较难考虑全的,后面可以再完善一下 +class Solution { +public: + int myAtoi(string s) { + //排除s为空 + if(s.empty()) return 0; + int res = 0; + int sign = 1; + int limit = 0; + //移除开头的空字符 + unsigned long spacePos=0; + for(int i = 0; i < s.size(); i++) { + if(s[i] != ' ') { + spacePos = (unsigned long)i; + break; + } + + } + s.erase(0,spacePos); + cout <<s<<endl; + + + //排除第一个非空字符不合法 + if(s[0] != '-'&&s[0] != '+' && s[0] - '0' > 9 && s[0] - '0' < 0 ) { + cout<<s[0] - '0'<<endl; + cout << "the first char "<<s[0]<<" is illegal"<<endl; + return 0; + } + + + for(int i = 0; i < s.size(); i++) { + // cout << i << ": " << s[i]<<endl; + if(s[0] == '-' ) { + sign = -1; + continue; + } + if(s[0] == '+'){ + continue; + } + if(s[i] - '0' < 9 && s[i] - '0' > 0){ + res = res*10 + int(s[i] - '0'); + limit++; + if(limit > 31) + cout <<res <<endl; + }else { + break; + } + + } + + return res*sign; + } +}; +//官方自动机 +class Automaton { + string state = "start"; + unordered_map<string, vector<string>> table = { + {"start", {"start", "signed", "in_number", "end"}}, + {"signed", {"end", "end", "in_number", "end"}}, + {"in_number", {"end", "end", "in_number", "end"}}, + {"end", {"end", "end", "end", "end"}} + }; + + int get_col(char c) { + if (isspace(c)) return 0; + if (c == '+' or c == '-') return 1; + if (isdigit(c)) return 2; + return 3; + } +public: + int sign = 1; + long long ans = 0; + + void get(char c) { + state = table[state][get_col(c)]; + if (state == "in_number") { + ans = ans * 10 + c - '0'; + ans = sign == 1 ? min(ans, (long long)INT_MAX) : min(ans, -(long long)INT_MIN); + } + else if (state == "signed") + sign = c == '+' ? 1 : -1; + } +}; + +class Solution2 { +public: + int myAtoi(string str) { + Automaton automaton; + for (char c : str) + automaton.get(c); + return automaton.sign * automaton.ans; + } +}; + + + +int main() { + Solution test; + string s = " 21432"; + int res = test.myAtoi(s); + cout<<res; + return 0; +} \ No newline at end of file diff --git a/week09/917_reverseOnlyLetters.cpp b/week09/917_reverseOnlyLetters.cpp new file mode 100644 index 00000000..a7e17d11 --- /dev/null +++ b/week09/917_reverseOnlyLetters.cpp @@ -0,0 +1,43 @@ +// +// Created by lewang on 12/19/20. +// +#include <iostream> +#include <string> +using namespace std; +class Solution { +public: + string reverseOnlyLetters(string S) { + int len = S.size(); + int i = 0, j = len - 1; + while(i < j) { + char l = S[i]; + char r = S[j]; + + if((int)(l-'A') < 0 || (int)(l- 'a') > 25 ||( (int) (l - 'a') < 0 && (int)(l - 'A' > 25)) ){ + i++; + continue; + } + if ((int)(r-'A') < 0 || (int)(r- 'a') > 25 ||( (int) (r - 'a') < 0 && (int)(r - 'A' > 25)) ){ + j--; + continue; + } + swap(S[i],S[j]); + i++; + j--; + } + return S; + } +}; +//c++ 自己的函数 isalpha 可以判断是否是字母,不用自己写if +//还可以用栈来反转字母,奇妙,自己没想到 + +int main(){ + Solution test; + string s = "a-bC-dEf-ghIj"; + //Expected:"j-Ih-gfE-dCba" + cout << s << endl; + string res = test.reverseOnlyLetters(s); + cout << res <<endl; + + return 0; +} \ No newline at end of file diff --git a/week09/CMakeLists.txt b/week09/CMakeLists.txt new file mode 100644 index 00000000..c6eea354 --- /dev/null +++ b/week09/CMakeLists.txt @@ -0,0 +1,14 @@ +cmake_minimum_required (VERSION 2.8.11) +project (week09) +set(CMAKE_CXX_STANDARD 11) +set(CMAKE_CXX_STANDARD_REQUIRED ) +#add_executable (move_zeros lc-283_move-zeros.cpp) +#target_link_libraries (move_zeros LINK_PUBLIC week01) + +add_executable (387_firstuniquechar 387_firstuniquechar.cpp) +add_executable(541_reverseStr 541_reverseStr.cpp) +add_executable(151_reverseWords 151_reverseWords.cpp) +add_executable(917_reverseOnlyLetters 917_reverseOnlyLetters.cpp) +add_executable(205_isIosmorphic 205_isIosmorphic.cpp) +add_executable(680_validPalindrome 680_validPalindrome.cpp) +add_executable(8_myAtoi 8_myAtoi.cpp) \ No newline at end of file diff --git a/week09/NOTE.md b/week09/NOTE.md index 50de3041..14198721 100644 --- a/week09/NOTE.md +++ b/week09/NOTE.md @@ -1 +1,29 @@ -学习笔记 \ No newline at end of file +学习笔记 + +## 本周作业 + +简单 + +- √ [字符串中的第一个唯一字符](https://leetcode-cn.com/problems/first-unique-character-in-a-string/)(亚马逊、微软、Facebook 在半年内面试中考过) +- √ [反转字符串 II ](https://leetcode-cn.com/problems/reverse-string-ii/)(亚马逊在半年内面试中考过) +- √ [翻转字符串里的单词](https://leetcode-cn.com/problems/reverse-words-in-a-string/)(微软、字节跳动、苹果在半年内面试中考过) +- √ [反转字符串中的单词 III ](https://leetcode-cn.com/problems/reverse-words-in-a-string-iii/)(微软、字节跳动、华为在半年内面试中考过) +- √ [仅仅反转字母](https://leetcode-cn.com/problems/reverse-only-letters/)(字节跳动在半年内面试中考过) +- √ [同构字符串](https://leetcode-cn.com/problems/isomorphic-strings/)(谷歌、亚马逊、微软在半年内面试中考过) +- √ [验证回文字符串 Ⅱ](https://leetcode-cn.com/problems/valid-palindrome-ii/)(Facebook 在半年内面试中常考) + +中等 + +- 在学习总结中,写出[不同路径 2 ](https://leetcode-cn.com/problems/unique-paths-ii/)这道题目的状态转移方程。 +- √ [最长上升子序列](https://leetcode-cn.com/problems/longest-increasing-subsequence/)(字节跳动、亚马逊、微软在半年内面试中考过) +- [解码方法](https://leetcode-cn.com/problems/decode-ways/)(字节跳动、亚马逊、Facebook 在半年内面试中考过) +- √ [字符串转换整数 (atoi) ](https://leetcode-cn.com/problems/string-to-integer-atoi/)(亚马逊、微软、Facebook 在半年内面试中考过) +- [找到字符串中所有字母异位词](https://leetcode-cn.com/problems/find-all-anagrams-in-a-string/)(Facebook 在半年内面试中常考) +- [最长回文子串](https://leetcode-cn.com/problems/longest-palindromic-substring/)(亚马逊、字节跳动、华为在半年内面试中常考) + +困难 + +- [最长有效括号](https://leetcode-cn.com/problems/longest-valid-parentheses/)(亚马逊、字节跳动、华为在半年内面试中考过) +- [赛车](https://leetcode-cn.com/problems/race-car/)(谷歌在半年内面试中考过) +- [通配符匹配](https://leetcode-cn.com/problems/wildcard-matching/)(Facebook、微软、字节跳动在半年内面试中考过) +- [不同的子序列](https://leetcode-cn.com/problems/distinct-subsequences/)(MathWorks 在半年内面试中考过) \ No newline at end of file diff --git a/week09/cmake-build-debug/151_reverseWords b/week09/cmake-build-debug/151_reverseWords new file mode 100755 index 0000000000000000000000000000000000000000..3827ef2186d70f2e697585506dc53331d6398e7f GIT binary patch literal 62272 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 UpXxeR{+o`e{Qjs6QAy+f0~gV>?*IS* literal 0 HcmV?d00001 diff --git a/week09/cmake-build-debug/205_isIosmorphic b/week09/cmake-build-debug/205_isIosmorphic new file mode 100755 index 0000000000000000000000000000000000000000..2f3b9028f883e7b9970f93822a3608bd6ed6d598 GIT binary patch literal 61304 zcmeHwd3@Bx`Tu-&lk6ryPLL1+S*{qsgj^)yP6B}h!j*(maGPv4$x4z9yBjVQQ9Md5 zidL)js@h9itw*h555*H}wPLLnwYJ`Z+HbX1#gpIrd1mIbpKLaz*|vZDUau}>=XjoZ z=9!sio_Xe(`RwQHn)-z{!w~vo7jp%r4h@qzl?qVtmWm*#6cr*7-;=~dk$`j@=Sg^_ z3;>m%V~Vs6ohsjskjhoqWJY9|t?+cHIixUN!J-A5M#x+p3gO}mDo4D!#&8m$iz7Nb zrufJtrX+;FDVxews&bX8oDNe}IUVZu5gGbxQt-%d0bumeA>q<z#ham4im%AvWWTUU zW(ytaaw}1e`21HtsS2?{)i+STyrTHmp&o~6oxYZ`(rKNo`JKM*-fj8YD$4T9N(+Mi zf?{qr(I?zR%T{qsG~S97!-peHc?1u%m)$!yxw^E?mHNx0xBO(>ocq7CiC{F8RK|h7 zeX0ALV%&&CXI$K{ug8fM1RI4v7yhbio_p`~#QD$v;`PhUJo~E+V}{PWa>%VqUO#a9 z*;k)g-15?2_wW56`S9ko*)Kiy`t|QT`?uubR}Gy%Z1`)}qv(L2xu|%26lgLUl^!L3 z^8opm05=+b5$H$Dr{0Q|?-~HV7x}Iz{5&-Popl57xnltQ9OS$37x{4vz)$@E^#3+M z{?Y;Hko>qJD@A(N0Qo-|fPM?`qxGj7^`=6CGF>iUgg<*!zKF>GHs@!FigB(mGGg~4 zf4oQ*6Vqh&UhqMmi;(Xk35}rBhWs?tT&d=_p1<pnpAI@AMV5a|(YZwBYkfRbg2kPj zKSUfJsxnk?4f0b(R=;-rNYOc<I>W2*M_{6*qta5vkEZq}>Q4h5m*PKF@iT<+lSQGz z2U+=nJ_v?dJyWNW4k#0DcYBw=+Z_xw2SRSQaMv|0b+>v0-gaLw<P9_}o!{y2_BJ)Q zbb2K$I%NH_#^yRt&4QwuEy9gNsKVzDx?7rq-qN~mUr6S=+qZ3V_jm(Ae|K}IFSOmg zrI3)9G=|FEZqK%DMMXu$DB|;gn}Dyoz0T7ZDk}1HGzZ+FK(j9tL=9X`O=-}#!>g+r zY~lGuH7k~Q8kRJcpt;0r3<OZRRF<Y@gJRTXhw}$pMYtmeThh0!rVGt#43&EPy&-O( zzcX0VA~5dl9&{}Ydy#Oj>fY+>Zgn?!gS}l|0(!JOKomTi+@6k2?zU!MCj`W^t=Zii z@^15i94Fd*G=MuG5pF7|gr}?7*Dc)M*5*(%L}fX0TYcT`-k`TtxEF6hO;V)hcQyxu z-XO{nrYwtM-N16U1cN$5QuYLU-988qwWFfZ-`N}T`MZlse8IY)zsn!!>F{}qYGN3| zn#SoEzHl9Akxwj|Ki^$aP$=fFU0YRM=PoKJ5sT{Us*yx?sWo0uTqKk3Vhup7xL`U> zF&oxP`e(!XNfwYDA+7ihgmJu1$~;3v{}+dRT9Xa&DI!|GuE^a!glLSW1()G=#v^zo z{+_*k6Dms(69A{Y(B#Wt;>3vpmEL^pN~i$4m}!=`iIb2+xbzwB^TCpg7j+81H_Mku zZD~~a+WyjZ(;=up`s67)OXsI3{aP52zfa*im7dc0I{kQ#i|J8MDHX=)LzaA9h5&~x z`Bv5XiX~sSjqs0H@)e7eE#9}}Ti2gsmVB~-^e0vEPds8k%#YT;G~(mTTp>CX9kPu~ z9gKL7C0}(hm)d5@*J};|c3JYN4*mJMCEsdS?z7}m-THHtB_9K9er~YjCz-iI+-%8L zTMdTZVaZoR%lZ2)`D%&e`~#MJ>k?MG`#opvMe*?&E>U~_fspO^q1xS#I3E_rr?;fL z#PLb3_)f{GM2ylMMC<4)$MKo8p3*c7M-Oqjfzs5)M-Om%F{P<%kKV!QYD!a=9=(Cn zGbv47d2}DAiz!WAcyt%1r%;-@?r0CE$5Wa_@aWe#okeNt!lNrVola@$x}%kxPNFo4 z$k9Sh+mLSChcthR{#v)^nbT_byjHvWjrUhH)$fg83|?yY4to|X*6y7%6fHYG;;l57 z_(w|40?tYUf!e+C6s)S9e5`iQo3*=-C2tvl?z;zg)P0E?kH6B!_!}RlUTZ5z$vKbf z1IcFyY47wW5TN{5RQ|!Q?6rH|uYK^yyjtV2+GoBBWrEl_ir7#|OqP$Nw`<OKz=!BP zxpw!QlTiR9_q-VzT6@u)^++8Vh9)1W#n;Bi;(LH-eAu6#=49}*d!FbWa`ZG{O1@G5 ztEsXvM~UR|LmRn2Dc)Fn&U-hbHLbN5#ZAgXq;^luk)i{&d(WrxwR;X8Y5NM{-YYn{ z_k0>BG}uW!3g9RPnz-+LNl-I6)mpS>7s@>g;h}P`_C>slldFJHbD(z5^Mv8%tSe-F zH8-f-I*ADWmfm1i^gF_D#NdAYd^fX4=m(GFGcFN4cw`*nDfcjV&tn+3ap;dD*CO+m zXtF@Hy9n#^FPMF<6Uq0G+;h10qNPV#YfFZ5@1&f!8~E>@S-a<9v-*QaKBRKMM43FQ zv=8uk0N*X*JjvG;lmQt51<BlbmJH@2Nc2=+gJvrwCHdbVdgO9SpYsR}+o>BLrcuO< zPu+9Y7khe-?LO-Zqqq2+vyL4<4oRAfrY@qUp2HMJq^G#h*y*Jt4Hw1#gM<b2Cjz+d zH%#b$D)s<rfFs{WS4!$6Bej^NwR?X3_$S25&kt~L#eM`4f^+cv!^lK=aS_LAJ?Oym zCH}!9KmHuWXFQy8*@5#8gaR7lkcq(~KLYHe+#^!%KXB0%L~Qp%M(tI5E<gVj#H~fB zb|n_Cfo{|y$luL;7)LwNo`dKA$>fe=eYqQI<*w%<#;x^4aJSX0s`jdju2oD)T7+p~ zYN-|Tyz^f{5>3B?n(o+7J@jtcZmz>P+6~_JQ?K_Cwov?$TRsDm=R88akD(5$9@a-y zYpPb)?fGNXsw(KZNz0N*2kp&Yjj*w5&zE(3KCYiklHsg<@JsuVw?74?^Zy!h6}_bO zSN)#P>i2xSV9(#Gjt~D+?e2$-+8HnRzC&xpsT->{RBfy}t;+rIzHp@<J`4tl9<L^3 zQ}F8B+#)<J)E;BBeHQs<NP*vg>TW>Tg9bc~a2LWJgm<79CZeTVFi&W|`~bpEgnvNz z3gM$C_96WW!ovvZqiqFaM}si7r5dA$I-L6qM=IrK<If4&QwdRhqT>sA>?Hm%OpZf@ zo1D5ZIdgH!kgd*LVqVs)DJ2ufQ#O@ffIn&jI^O)a5Zi!1(hI!Ttx8V4z&3waLhWw5 zeU|~QBz-Di>{wCH+&ZqgWr$0RmOM)yh>!EYGwpNZNC8>t+!v-p{WczT)gd%-Yzw#^ z7qX7vZwcV!4>I8^7)&|b23qqDqi?;GQJtK6iLE+0^J05VvTJW#b#mS}<7<-(FG#3O zuGsBZnp_!3uBb{btV+(SPIdtg_|?fywr87YETGPL#EBL@$B!E)SI7U-CU(Rhwux(v z_>1l0E+hU+n|RWQf6pe4bI!B2R*C+<@Bj6{|9aqmJ@CIC_+JnFuLu4==mG7I(*7sy zZ_=zQ^UU-u=`{J+=%dr*6QhszDQUmG_I+soJDq9KNBhM_%cSW~%Tj6W2P4~$KH5h6 z=&R#?N?)bw(>|SA<-{?4Ipo2>NBd;lDou_B`ee$0&)`&)1BE75D8Gxgg<Ptk+V0f8 zp^>WaennX4?@|?OzAIFD?K{%-k5%P09!zI$AJ91q<`}2nR|R1*b6WHHzDnP$;4o(y z9%pUTe=x4kg(FEOsDVC7g}Ev$Q{h4tu2x~23b&~60u_E+g+El`Jt~Z>Z?I|YFV*GX zw4Uk8Th-Fr9qM&WFPL6Xm|s-f%gLh2GQ(9|SX5qASX3xxqm&c`HB2dz%tR#}k%wct z5*=37%foVvsWJ8x#7C?UV(StO4u>{4|KSFGdNN$j=hVP2{c;;7Oq`<<6UM%172@$v z0Oquxz6XU8Zg=6^u?$^g_fv*&64c)L&>A7OA(^<X7Bhe#NtaX+e8{P%0=~KoJQzb$ z?c44~-mtfFk+*#(P=`6-%C+yHTruQvY=i6#^@N&iZ$#YvB(jYZf;y_H&H%T-(SyB- zJxJNk)GP3vn)U!rRqcz1<b%o>qPX&JRC35DY>MnnYlz~I42rL6;dndPwXdn-_;bX} z+9@b%3^@(`ZePE08pRJ%{;9v4K=G$2zTsJlr)?mdwlYkYbYDH9JFlrm+mYOjzr>4m z`$hW3^?;r`B~OTN19GDY<;G@k*$d79Bh*{8O~0QoE=PHh(MXN`#%G8V@Hqfp(!~|< z@<(ueVk|QMj=y6B<dW%67og<zyJnyxAS$FIB}-gs`U{xE_M5J)6JjzTrG23pPZ7hn z9Dt}jG6#D=KvxomWU0Ckz@Ps1WXTe_Z?~Dnuck)J8h(rsvfmkkZld$rOEro}ZztmW z_hVSUkIdUOKoxsuEug>q2t)J`AiwVeO)4%$C!|-nfb#Y&7@Ic%{wNAc#*<Tl^3E5i z;|6dv6pc;CA9sL|!2k0V3-Ln$Cj&5zfZV#2&rrkgDs-dWW>hB#L5-;gc!Ne^K9i2o zxzUI_(ttPA_$@SX58&tb#i61Sarj-R$Uee&AN*79bwIqWKe8B}O$5gnX;@mQ=N|>m zArp`5JZS>Whg{?7@i+(pC}|W%m}`+8c#^jq@M*?JPRs^q;(qYADgm!B7GdZMO*pg4 zy?atGN%azAA6Qsn!l$4^lITlF_;TZ>acHv%r%8}RUkcu2Y{KfY&xA9R^rhfyjSH8; zS!2SfX|k(ECZwYNjmDRAg_wcvdYW*UJ^B(OE-wN2bmJUM{MP~cKm19#z7<_8M*Qj| zfV+${G5$8RARB*Su@4WO?5h#4WCMG%v0?%G0+^Nku|?)d)Zb?qt(BPatAKE-MiQeK zbb&$ZuhE0-Gc-u5JX!Q&qY;NK+@IH&aAsD*uQ9eQ2K)}d9_<6Sv|3{R#Ari@7%u|r z9|K@oEB>|d-3p*5LWsxWPj&-$G<PR!Wl8v;aRG$JC;`^|zL*xIXN*P5fwUF~T_zG! zBDt|v{IX$d0Oq;C+G}Fc3{ahU%y3l$eiLAKnef9C`V#rV=w1h;gFyJBiA3FItx4Dp zQ{TP^gfC1as!1V@ps_2kx#j~Y4dzic{<t3!Nwh>(!*IaMY%3>0@1m439q>wxlf;80 zaW>ixWh$I?fVY}BJSQbihs{7X(>V)~ubVhLuO!Y6TL9{cac%_sRuhN2N8;RJTa1as zIFAB;$i$&85?Kotg6Ch`Zbh4DLK;T_|C`29;74sDR|uMqhSLc@B>tp&8%>Ay_NQ#G zV3Kj^lL5*nFfCU?f}gX+L&bCHg#gtPn3ZGJjjK@ipKYFTLM$WVUVt_cm`h9W+qUtm z;R+=1c>sMQT>2qeB;U6^hndf%zX#AQ;nEEL)V5->D*X^ZkB3Xor*_-yvuhM<uLAUT z7;MA%+mq}S;E*{dFL46?6z4Y(=Na~&tW?Bv0GbpAKS-=)+dpwB@LYfvgu&0`0X)h6 z1;&mf-q;9`Ck*}?t!Pv26`02iJ`<pG!{Dc=bfKNxw+y}ppc_qa=Isz+`&|2WY)6cH zko_2es6(X!VCj)aOYB8Zd&WyZc&iVR$oz~Xd8K_1ddK)2Favu4H7dU+L!i~3h1Hy^ z&jQFrU>?)VF4FgB+V7+4rz5*kmy|j(^C{Ai=h|Il7Oev8R1Ftd_hE+GzhVC&)F-W0 zMhKuC1eVgW?__|#WA8vy(n%b?1<>^xEU9NP&X4VTA+8C8b1&cz5sujbVsvvz*dMTW zBA3a$h{&6SLbXUTjPeKjvojTyF9CK!D_f{!k?-C9hMg``a82U?KUw1l34YIh01GhJ zQVGyP0?W4inA-9W`!|-U(r$pf;nEEL!v5N1ReC2t=Y>o6pqSkew+nUx&+F>|x>=W2 zdWLaQ<EBqkI1d8;q=_T-4C9Q78>My8n}EM>;z&KiIJt3IMT$=1P#84$lYJp|$Wxf1 z_QJS%=ym2NAMgqjN9sMssfwF}8N)a$0dMPrBjuB1N@Owi(zu!p3j1teUSeXKtByik zA9tZfyctM8>w~CpHpOL(QpBDF{7)thRVXb%S!-|Hx1k!C$B%#{U@=?Tn)w47xqWfR zG493)z+5I=_ScnUP<%JeHAT^w0r&zFNA?Bd+#Yu~Y!a?#Bj6n-j?~?Z^H|(jrzo6r z0H+<L<b~*1`-`!kkK2p6$rNt~<^v|SrN0>Qt+=Z(IT-OUkY4YDD6$ymlel}QE1WL? zADXPIw)7VxX2dUo(Zs|i0jbbLl(KOXW`I2}{!GXruMl;BpJw8aZk6qjdWo^O#6Jbo z&Ikf)w~0xGlPn~^5q~BY9j^9TAl+&rGJmq4nc9u<PTkLs0_iXP5v?7`MfS%}*Hh~l z(1$_Qg{Qv7IL>11-^O1FVPH;jfmzlcTS&y$<BOmb8F4v~TKghe`jyFk6#qHq6ZhF! zz}#zMucw}n!uC2T(_snK^Ay=10_h$Tktx!b$YR7X3C}K86rTptizXsbR5*nRuB8g+ zL%{9mW7%}Bl@T+Ct^lAi;UF1#nLrq;kwliQ9-!3;Lt(9RJIev8*WhqJD;>qyoe6(l zrm(%hJZ}K(aA8%;`3adBs@!!bb8nP#7P;rDu1{#j=9U>d1oSrtD55I3C*j&Gh5Z#U zGa<+pDKI-%4Fy;5c*19kRFNW}FEopoy=QItpAwu<FwBk{nA@XZN4DVa33H~YB9{UE zM*|d5EpRyQg`L6`&_eWL6l{ysaSJLP+p*kpkq?1B3_g#D@s~S5-h9d7UgCHRyCg1> z3-rn;MYtLCr6t7ik=C*6fF6uegy%bbsUppec&toZ%Qu1k!ze{qnb4OivcvH<7A7w8 z0MP$n7BLZ}LK)r#<JZ2|K|@B^?*TCZvNiB%4?n&HB`$S*s^;@pU{^#b5gxwbPtY29 zh2zUgSqD8d@-?$W7%wZg5qLjzTvMpbtL;F#m=M`K;f=2;da%==dF*#M8nLt)-vic9 z36pIdYKX|XA9~FG3&$^!pgN3$fIp?FiL6eVu8%mJWeWTjK<|aYPfrE-w~p(<Gx;%$ z_~G#W;7=JbKPv_JCC521lZYi_B0w`VIIJdl=87!FKH|9aRE15Or4|$0T+kHaCypP2 zsk@2n89=(oM6`4jQ*=5@U@J1>_knb`iAWk!Recwt_7P5RgF<`?NH3d+mZ}*s*SQY! z{%)%JV;~I~p*!EK+Df*>8G@c<?1{iE?T;<8nCt>)IfRB0mjY>{iD+T;Gc?8C;CvGn zFe7dO(gh}>g;7TIIKK@^WyJ3S>24D-l2OL)adr+@*iQlT<^I?rixGD_o!ICz*^hyg zaFTAnh0*(<;O&<={{Z=6#2g?^GZ8I}GUE4~OEjakK-y>`Ml#CScQ`k~>B?lc0P}+W z*w`vi{SP~P^AzHDfpoixXkm2tDj+`N+zD%)DLxLQ!zQAIQAT{t`Ie^m0gw_fd*r-} zWR$VrcfMVw+YiiX{jo(BBN~b8VPbRrwLn^HB3c+dEgy`gCZ1HP5H|zq923#PC?k$b ztk(+SY9QTiB1SUG*wYeksM75R=HdR>B8w3#6Bk1-Gov2>$pF`~{T4<?6ob(fi6^fW z0%nIWvVb(jM5MB6dL&}ew0jb3(2?XGG3EnlnTbd(5?PG1JMlhvOc<vf@H0&ulbBjH z8T-1#ztt)1D}Z_T0NBigm6O{O?;WnnJ%uud&2rRbij#whQy?hJ$p?TZK&{I5hdHre zzn1t?fx^xK=8OTbB@@~EA=K23W8Q~WJq9~u%%7kSZg-*b6za&d>_(iAET$+NY%c>- z<iuAlL6{SN(X%BK?6pJQa^f!@#la=hIoQ|2!KG($aM|}b_}2X#T>c^lSA5LDw}+Nf z@hdYqxN0s3-|=v8^?4jzb2|suKEc8DuW)dKQ9<Qy9K*p)6&!s3G!A~WlY<|BkAqtu z=HRD)=HQM`Ik+=t1{J?+1_wWD<lycu4t{<i2lw2_!M)8`N^;`&Z{gs+D>(SY-5mUq zcH=qmzxs-UUuVvu)B`g(c(93shk_hDd^HD;{DOl=U*O=ezj1IdWj2+2d>RM8S<b-| zehz+n0S8ZB$H7y-<luKNaPage92^<}1?`G=8WkKS8jTz#89O-4G>9Kp{AhzZ#}z-; zpl)%+k29!4T=A1sxm;E5WG-iKK$9G0W5!_kn-Fz6mW)K)@c@i<$I@po@?sq2JC+BX zI3yV@#O3%)yb)C<F*JQGa2zXVuY*Ad$ZZ-b($B>X!qM<blMn}x`IrgF_%*g{j;5>O zUmyxE1MoTle*~IhJXf~<63j{C6Xbqr7L$+-&tV-k(z4<I#GmBjws1lB|3TLng#gVm z!4uIQMb~rPYJismwB7{or_vM1AaL~1({uMDZ3F;5%S7P{Buc1pf<n0h;2TU7rZWC* z^t9uQEl~T$-2gqH!O}%Lo(v|(&fPA6p9Sd88k|IRii!I%-5lTe0-JaCKz$7G7lgtc zGilj4K)?0nS|NT*9Hx%Z5Rq~kI!WX>W>T288-`@UZ+`}y+{d6TQ>Fniej92woHgG> z{NzL!sm?`j0U>QQ(#~3{EhCSji;qD)tUxS)zis$Se0L5==ee7Dn5W5Z_ZE(T?hJtA zUxZ!(-8T>)fUZDmor|A_@Z1cfC-8R&e~BN=iAvWHDVG8~WjIzsV|e}4PoSkn7RG-G zIWZEC9zbnrZy_u3T~cOg4^Z?y(wL`^Hz4uvN0-A0!s?tfW-h)a;7g>$A)W8tED}Hd z=6u<+s|kaE5+lDeBoaS6fCYm(BG?x=lGJ{p&A1z?kt({9z>}#ge-TGwB>7AelZ?$U zNGRh@jUz^qm6(`p(3u6{Kc^u{geR*X*#SM5c#^R=39C48J|!HASZg4|JaMe?0fdi0 zW2kf_4tGJWu@LH(KvgCV*G1hRM!rrxR$%M|4rQE5IMabFQc{o{`6~jK8qJsnl-?0$ z@?y-^#0ujvw1;}>JG!7OUEuY%iNx8)-H=WyIPLC}fL>{QA00z!i6zqhj+zn<o{h1} zNh*9`E(JwTa8Udl2PLm?Fx@|oU}ZZvC_kTrihUf+9Ld3~@f^&~=U`3+2lHO$pz<IG z)$cN~`5$wzz~Ic9p&Tr_hJ)H4a!_|C2aA8jLH&FVmM-I9**XrEw{o!Z2nP+nr(no* zqmqKM0%)C_A?39Q(lQ{w36Fnk7JB$VCd78AcjP#DriNo$3uFAVQ{m3qkp`hMo_E0$ zh`+==C?+K2%rhaQ#{0<qTtnpXPtjx8+Ydc=HRh2q1oXI&R4XEd*72NSTYdpLIm5QT z!@(I#swuUzgM)L<<>1^aIoN$G2j@M=!3FPfuqOdk=M1|jn}dtXIk=>OgM9%GF1w6_ zD}KhoRgZFT^)nn?^EwCD+Od7e8Ft-x4z91_;D$9E+_;s4ud+~|Yna`53w_}l7H3?B zY}c>^<2DW*hJfSWHOy%|#OXxiRSuJkEac}Tx4a6IDJR+UJ5G6D;GpdT4%!o7LFOcP zWOLvv=HT>29BkUiLFY~mx~}J7^L`EjFLMz3f`i^{^mR`1mTC^Rt>s{QHwS0#;9%!I z4tC$f!Fl&`aQ-tKT=+T%Ung%&PVz-LwG`}~!oel;5EQ>Q7NeN*3xlp<l+ewNlwTV( zh9#trQywr#xs{xHD&h|rwCOIPn;j{S8f5;Jtf2hg8m$=R61rQG@{B<fd}I!leaG+s z{N8x1f1sVT9<?Q<BBsE{jK5?_u)7a9DUNVXA}b&z&i2lHA<j18L`>13!=IE~+hQ1= zMD#m^^EFf<QvLv>k<XwBDbs9)7*<N}H^C*HSQk@X<~C-VhG*^ruo-gigBL39o@7u= zopxX%cD!_RCAEy2YB;_J;;A#=03msgCUrVB)o?r+hx}PzAm7QiTT;szKmBd!o7A~w zP^cv!H6MS8_fr=PM=XiZ#dt=kp5*|UHOSqlal`~V7)xFB*V$Ngfob#tat1*kp%zY{ zqsr7JqtM|*%=i|*zGFg5=_oRFxgT?!p?3muuL;d_*Rb&|Qpklo-MzY4q|F<fHt$hj zl#PQ+Esj=}^ckT^LX<laK)w8RC{kPb1R%tfH$YmP<!{HK{_?+LMR%1~!z!pOcaFfL zA{8&7$-=1E4Yq}?;=CdRaTTAeMBuErlv1e`E%On$DoW6$DE0$n-ckPX5Fr*<T!R%W z&X}<l!vi8>Mh2t<H{;HpNlyXp!e^T(yA)$18T3C&3=SPd48DVw*vjWZ&Bv8@fLUjG zV<s{9FwN;1S0kSZ-i0~91XB!?;QN)D;CGTR*5wTtQc*sf+dT`D!B(EXiZH%GjUcYp z#VaC@p(hkqKSG^xPhcTQf3S>*-0LJFe_Teqy^E-AMqMQW6c@AJ1{2@K;Li5LSz@HG zvl-W+$Q%zwE4|sa4ijn4-ZaEpY_zmx5?1;~+s|A;-T}m2_)C16gkWwrfljlfjt1yb zovpO+yhC6qeZKK52F<8UN<d<vu^&i=kwW!VwR$}wy-sG?DszFBUN2K|RUO`KB7M0` zIV;~m@25A(RBGi%81wYCGUclBdqN`pRGF%*B>zylTc&nZ{|T~?-Xc@NsHQDNdYekx zsxQRAr=PBpan+xpd(*pA(ph~uL3>m(wb~1rNe`-|tGW!blfG3YD=Tj%<Q+13N9CuG zrS!98YH{`Tkg4=tG8JdcJD!H*#RiFvQ8|)&<uc=UCv&g-3_;~wjClGLGRsz3h>=gf zTBhPES3xq;uahY;@4FDh^xF)YB}P?qPmf5y!^p(2qJO^xr7HYJfJpzD%(7L|qMyEB zrsAsb(*WtelnG}Q{V+lL{W6tW`4}WN{Xv;>%{v35p8k|Uf@xH>c-uw#A>%BnM5MGJ zsPgm%MEbKb%c!DhpZ>f|*+fo8!z&PzoQ%fjIB4RHbH;{`Ips}-=O8DeV+sepc?f1@ z4~I4e+5Y=;F=bu@Y8`R%{O18TPU?-DnhN>KoEG1di1ettW=)2zQHifn_k15br_pjT z>Rwtc(&&ERsQsHD*VzxxL=<@<{v8Ju`*px9_F%Z!L!>=rv4=P7Vw5LRj$%nza5{#2 z_;M<0h_rT)%i4PgT-7`W$+XQmgzxhJTbPHTwk@WE*af#kf=5ighfAbT3m4Jac+y#M zzmZx0K$fuAg1dxQR$>-U<y)Gsj!k&=MIhwFACr4rL+w><yjPw2D=dSfC+1|ILaRVd zc0RQr?pM$|M)u5Z3?tvQ%$~z*1Ygn2o=1&0hS2(%UCC<%-=55_qTZ3WC$p=m$;S9= zVDx4$ufUu!dY~D$;4g72AVNY`j#&W6H;{XUh9sTE;H#<NY6qm#xCNlQHCXC}2_K?A zve#7u^%OviC-L=1LfMU+qy>lxiL&u8BjCp;l)vHYGZSS6qtNP}?WsY7nMyiZJ05?` zVG^D9CXqoP#?um>-StjB$dm!T(8Qr)j3_41GM>G8A_RsC8m9rLmGFooxz{5DM5K_( z8b84R%9!$>1L5S`u<neR`5^@3<TX$=V`g!*umI6{w4XfrI`q+)O3KZ?1;Rkf8jQi` z$>7Tw_7>TBIm136GcRY@-yh=OLo)7ihJ8dfU(T?P$;8WV^=%QuUN2q_IYYs?Q^0r- z)cH%qZ?6DDW8HMMHD|1w%p3${&LAMGCE*}!54p7++x`mTJT=C4kR6jof-u&1jG|;a zjXj<07?%98U2V09W=uqGcPFALQ&Dm4r4ZY(7mb5XyWNG80OE!3k)84nI{+7VV^02n zG6N{VU!v}ID5J5L?nmd*a#DA8HIkSA3E!Oj5yW-um486zbMoLaB(J7>u$;UF6^*^_ z>=i0miJlyL!wP&8G@kC48e?y!>nmwB(3@j#AsdT#=R9Iz+iG$0EUd{nhi!E0cggim z^v+8*Rs^<rq%?9~x24idoJYDM=M7sfCrF3nylERviOg(F>zuc3D=_B9IjHeM{3ZUW z4t+a{LGRjjBFDHEUq8~Iq}K?Zb?X=uJ!ZQjLx={#Ie@Rn2<NX1Uf2lm7q*AcZ*Btr z1z&H5!8Ifi!hUm-5FY~H_zIvn$e64=i@^^2+lg=!Q0XxM<!Nvdi(FO*IxuIb{d_RP zB&q;kq;Z4<XV`xa31AXm189>5D-v{>CnwVm1ufff9^jV{4z(ev1~rQ;x}K7gZNC?_ zaWyvs{xia%Zc;cOVw`eZ_SIO9xUMGw|0Cg8=**%HnP`6t!q0Tx2mJF0I$si<Jo{%D z6{a&B1Dk_CE1ipo=Tq!=LtWEA7!`oe)i~kBAp1)Q)I2mmEdCgiiNs_ZifA!m#cztq zqRAkn#bhHVl$bP7LW@cIG9+$BT|cGz9zpG<nCya#8V@7;cN&!R1i`hKTo3)f9U$Xv zeEpSh4l!7X3As=&AaFt<cEI>kU?nC2OpND&Z%hJcDuKCjEhd-D#(i%py#S!)8r)Y* zzUfdTIsot1IHs6f2&08bTnNx*8r)Y*mNuz2`~>iO2#4B`)QOr+F`=6Z%<0pBzeqU5 zslriWl7Sh{b$tl<SA=7sqr~K<QHst;4BB}7S?MS-SqF(?I<o*@NH`WcN=z<X4u2f= zoEvbj#*tz|G7uJ%_y^EDV@&HWfOPWBtDxiC!<zqe*8HT~$86$UM+Tyu<|5$6@QV0D z7$#8oA{Gj5OyQPcOkpl2z@T~PVhX<1M4@~aQIJd7C*VpgWgH!NDI=eih@YCw6dnpw z_zE4RC~$OO3ap{y?`&WSaUiF7Xu=RE3LG7n!e79xh)?C7EMFL=ur5r2qXSbQuarn3 z!AKz`BI;fCUf5vusd0atj36$~gO=4h<8}fMncESt&(3w2+F$Q<`~_+Q!6{fZ;>D@3 zN5=`;ggLIkxXP$-*vII2oTCd{@p0_tcRD^mSs717RgO21T<T2w$s!2xa3ZqIIU#xd z3Z!5)42_$RmWXiJ0;~cP(g{55%rrzZ2r3+p!mOK+!phzOhmn{t{2idgiRIMG^ta*y zr0t^KNXQz2sSp?M>kf&u4In>Z#Ge65I}Oo^36(%i`wR5$r1)k;<9`CC4(EPEE+)rH z=*HZSWgX<M&;6VhP^V)#hA{UFil;ixg~rYOlH!?;&*KpPisCNEDA)zL$0?rI@Cmv* z7q&MNg$-|_gL4f|R5ZMffy=dVqO##bsF~b2PSiGZp;vO_IkBSQZI~Ll37lBl@B;S0 zxlZF+@cgxgz-T0rjGK_?Xjs{Z#8876?rHcltj^q2PJ|l1j^^a18@FH$+SV{L5s8zG z_mH=%;S8wl+>yp%$ke$F7gD8}#?7F%yP-24iELv(5?^olCJ~rq(4E134VP0Q-=MRb zs~WDML;)vmXt;?I(>QT+!!493<is5fcTl3(2%*gWhF7U$OPIF<4V`&NOgHXFJ&%aA z+tL3gJ7_5CZH_-+zVaA1I%#gD(6}~zfZoi@HfU=_Cy`POH*FY>+&|hVcN*o=muPgZ zrV_cU0Q-k+6|(3riNC0qG}fuet&fX829vg_Wi^oBWI}YNnM5#&*R-$+pwDeo@+!*Z zFICa?$VegFrr)}NHHWe27?jH@Ca;CC<Sk$j9gRv5QCTILdPr2d7)Ix%ePA1h19q5s zqC-^4&T0?k{+V-|et;>LSHj&}K^UaIlc=+kD2a}slia2b5YEeEEIN0U9T9=rbmuxC zP2|DZPDu0x0%s#gVJbgw0>VnBa*IiYW7Z0ZY?Eg-P~Tz}=}gz!nZ4rydXGVL&dVUt z^h^$NmvJx9v9IKi$*OL;jVj;D2y`GU$3Ve8#~jVG+errKlsJhZvag!1p`KsO#mLtc z?%gDIeKk7w0=LOeV{jv5?Tmuebcnd~Fr1E7Be;{Knr<ZyZ(}4nj}CLF;ES<@<ekQF zI+vAj=A!A`l>ptsAUeFZg03S_K6g6l5qS-cWm63>&5bonpwsf2Nxo+g5(_$Yj#%@p zlK?rLM3+v$!%T@a_hWC6x0@hzC~k%Ph?={Gh|oE?mD;t?ba}s|aiODgOPQw2uz$&$ zZzs@WW+8I`lPC|uv;k|*+EACMnCzgaW6?MqkIC(_<7XJf$vk1=9LIq@c?j|5bo?DE zYVuHu4|U8gKzta*Qyo{VMm(9~!yW7ABhDHl)A3q5;;EFM?f43&!{juIyBt47t0oVp zg)q-C5xqKj1c_>)NO=;xt=YdA`F|#c=^6mHOsu&D3O~<F9YL1@!X3dgOsv7LpJM6~ z^}BT$*(F3qtQk&{zJW^9C4$J(O}*6sui=qBMsOZpj&ZlC;iXYr^Al8&_W)&Qf_-bZ z&qs&kZ8ykJDltJ6LuXUXO&1WtPJ?VQx~?G0GQyf^q)=ZVtRO)sVgWam5%^Z)TY%AD z7$lWiy)!-sw42g40PRkL%mljn5Q(;C8Hw42#5>vZmRh)znsyce>|(7$cO`i4il*0S zcWdL^l-Zgnb%pHtCffGpB^bo=G=hhDmsImc13rY|%cH@AF2GY5?l<8)t7Q4>NNp_P z2}!<GZWMI&W=Kk2h_mUshRUveWF)e0q;F!8Zg9w6AcCTH8$lnXZ-Uar4hf}{sQn(6 z-n^gCH>K&mhqdglu}0<{qHluIH4tmr-;DtDQ~D+-InKgmRYx742b5g~nZa~vM8bLa zn>JJebe};E7Iv}_jU)n@<C{g}n?%asfN?d@=r2q`qd8tg9gR-9g3#!sD<tdqd;Q%o zcuwW)b^Kj#*dBx&H#$p!Q*Suaz&EV43<_-VZs?B`@^v&i>8?VflWrEIu<@Dd$RV86 z_`~QWdozY+WH}x4j~!X@0gzB1ooKIf()mBA^S8{QQ|`36&@odclA)7!2)4$QNzYL9 z-Gzwel3|^8GN$pAlgTVfdtoi2c{HQb$Tu-%GTEPLr$AdwnM#u&Z8PlODW?!yX)mIE zQ|54P?s7!ua&8&b_D#-xAM8%q%h5{YPR*PJrqlk4il>fRNzs>3+tjRfiWZ=XsiV)L z=<mVgDVYl?IvJduGHL@wUj;j-WCbW11P`Z-{yIfHP#pPFxoz_&A$kfo=<-pB=5s6Z z(-ED<JhTvQ88^O~aLc*H-y+-!*-XNn$*nlF1knXdcQeEye<4#?1OqaE5l8=q?P`84 zN1rC#l}xvXa2uJzLc(q0=>HM!Dvp*<MzooWl~J^nbN_^%%=dqb8kC2g%<s7#(Ry3z z^EB*nso$)Fef|S<(ANq|=)B$WO=$Ika?+Q=@z-p`D=6-CY=&qQ%%ym$V^=)l3n-rH zNP}z@)KJ{z_&SwcNbx+!Q7XHL;)RYbDqBnO3dbh!UQkEzO2<8ru!6-DuXT8!$_ke7 zCd1KA@p_7{bZi`p_%ez&IPNE!D=6OR_*x3$4HR#3yb3pJK@-JSIWp0ff>SBJ+A*yW z@eLGT<5)*@+!SBy_yy5vruaI?2BPDk_<G07M8`|<Qys&JPAA1TIHnSvE{bmyYtDk? z73^T9(O*1K<#Wj!zK;dG;H*aEHaZO`fV8#cP@yi8l}6|3$lkclNkrDM;oayYPw+Y? zx!4=k_w6pqp_>iMoQ1RMz$V>3aJ&eqEu2ks#AyL<mnfV=@i>vT7#M|fuK>=n)WZ2Y z(9LvBLE<kUNl^GT6nBcWGk{UJ@KK4s^cyF^je><z;x8jbrSO+i9QYRjqj1GXz%O|d z8>zxc_9EanI?M6xCLZWI1pCOPqrB-UNJHTYR^rVBqA%dLBlz0L0K}$nm5l-_d#;JF z#y%7fFD<lJQYP6BVoe>Sps<55>0*V-yqhpLQFG{;h0JVP29Yi-veVv)Ze4^KlGZvc zJ4urO5Y6NSFI;J-UZsl}a`dPQ(eyfIe&JSj=VlX#nP{rUm=-qLsaxspMiSM`U!tiB zQ>XAsJC&yU99%%H3>z8%x`_=oy5k|2P$H<{?@t5#YA#BbKO*5RPeGj&&a%^u5WWu> z*$z)Hb!DfG?uy8zVl`crE_{?%^_HJf{GdU1N0LbUh&4Zl9x3dl4*rrdnH7p*Y)F#V zyif2usBz;LSmBcRnq$!Qg?E!ap{pn1;u736VmQFVxH)SyTr@p`m9_8(+zDGLmnxDg zoU{XOP6qsX*$F0`m-VKqIDppJNjT|T!*Wou#y=jQ9+J<82qH!0L&ATYGU?zWlD{?Y zK=~FvMJp^Fi1Y(LPK`gqjn>gYNf<2FJVJDL(gI)F7qTq1X!Lu~5bKcbxD$d}ludpB z;kXYIplA#^Krns&3XGz$RJ7HJ)h74q_@~h3%-kEu&)|3!iX`_&iVDXkkd54%$m8I2 z+y!#EKP0hA#qexGUZa!t?(Bsj&jEX3D7O^}&ZS#BoSPxi-bbay%ZRa-$3Ut0Bip-( zC(##*kPl|f!4b$mNHx&S9tmpdfy@<u!c&(n`l#F_w5Rw}&ZT=lGIz~m>yi5;5ujT@ z3iWJMQ2a7WAYBSlx%BvU@k>l#o6b$57?>fpn?9vtr9AKG_K*}4BCYD8Tjj+^h<&<M zBu7Wi&E7SDTwo(<qMJsMGlg5cX3hp6{U62Y8dA8pV(%ce?^fArj0fk+Nlq+?raWlp z;#U}6Zo(-B_U9l-;Wi8#1FSo3G=Jz`lcK$gTJ~q|5W40hb60P}G$?+9bDKURj4EzB zU47!Vi<T7BT<oyZEhy$!tVte@oPER*-HB3}<UA<8j56sIINUPPas@O~@jW)WF(oT) z8HJftJl>$oQ?iLP8AVezCR1@P^FkM@!XT*_d7f@)!2Y-RyVQeglHw7)jmpxEE6HwC z8429k+(mpdDm-@UoOEMpos+IKt#i`J-#TX(f73z-{|R_t`K8C3SbkHG3yT-u^m9V% zoOdI>&Pm<0&PhMPvX1jlWt?>ildk_XI_Z{E3dscs<YMiuLzk80vI$fS)=LZDMIDXK z5AdBrR^ggukl~W=60@o3F6q~x8wO$xJ#JZAPL2+`RUjdB1pymbf|OF6E*hwDSV4rY zp`zqzmYFGJE2fY<j5VB-Q8ex~d>Ka4{Xm%zp!m>@8S((q*n_<9;4hJYN$b&Y{t}b6 z6#y^id{80d-MB3Z4w~decB7Nr&+D8|fQv@wLa@G$a~hrGkzVIK0-O{YH*`7!Dcehx zM*cdKacw4c>o?)AEhSGz?3eEMw+F!qu@-mf9sY#&keRyKpU@G6gc##~gfjL^5BWR( zREXqwmE7uUN<(w;xn2h1T;QGV6UJ2Pd;6u2`^BceE0k*$3W19y_(?xFr;b@p>3dO@ z1?9Nt#8?PJT16Da=P^Tu#<gh>t&TG>?#3MI9{Z)g+j)AkFy>MVz~j!-TX6g)6YuXl zJ%Be?7?sq=_Di4MDZ0*q2tJl7X`wWKjBD#av)hk;GZqjlwo5y^-+|ESREGek;8isR zDwaRSwLQ*8c_)AK*2x%T`vQzReKudu$)a&CN{P+4aI!{2f62*(DjBGOin(+O@B-H% zR-A>3gJ(lIt#`oVjL){vH<0?3O<w8>(0#Pwm>9XeZzI+_6mo0yPR3p!155dWjKC&D z@v<mU8MqSP-7s&?4*m|YBN)3~yLR@zfcQ|D5y#ICrj}qS!5`JapR>1&Mlt}g$0aoS zoQ-D(j7iBEL+r_;lUI#QGg7f3x6Lr@&Y44I4KdIJI}*t{5obeU$Pk^3&*+m($QE@O z6+^Hn4imDBOgam2U@9}ZlV^`=1=U2n*&?Hq<_kq|Q{^PHL@@{q9chGX85X97pF0UB z=8Y;IG8-gPa+yTxFjae6m=^9XMb=Gi%CKhEWe`i0J>1NW?@kV9kFaKI+>`odQt^@2 zEGkZ!nbu6=S5`GDGTWm7Syn(@M!3Xi2GFoDb74UCG;|&H;TRbii!K>EQ_vXEGub&# zGwR}KJmrovs~JK=qH7;-%??*F!J2JlYGQwYCN-%)hz33vuVX=lIMuKYBxU4*eJ8bJ zav?{uAqP`3fGs5fj({0TMzGJf5|<sF&si+Ca`3443kn1z&+Ig+W|~=44KnORDYqne zMJ5#eB0B(6))e!2B3h#4E1sAw?OScQ&!&T0<_33K<9M3XW$1ZRo`;rD`zknsrFjNN z5`>t^5$wii(NvR7n{Cdz_+p-ub5!4fgL$K<QFBeU(J0OKyfB~Cv`T9s!XXB#kjdRc zlyoM3gpX${ljlruINux!Bo>sap&&8OPJ(f+GpO$+PYZPx;lSKfNf4DqYE7Qe)q1+r z@qn?uk(s!Y5pF&8{*o|r6+@_9^%KRAA#<U?aD1AAD0b8tN_%uCQ;Fq<QOEOp#W-k) zX+T)1ia4?Vvy#IiOB85an@sMQVWP7t6FPjg$sp&$vM>=*PL9`F$cr<qzt*KHn(Jqw z*WjV3R_P5UEiMW#1I!<Bni>-1kuG(QP~3lw)}>~yO^ukWt;J*@US@d085bH558}O5 z>qOWN1;(O`G$Y+nnc150?P><M#e*|a$TqaG9SN4)x(rHogvXJRz9CpK(j7$fbU-YK zn<PYtPLlz&LDr<|=_-IwmyYU_*G+ZP%#hXj3y`#+;P93hAgL;4S>KFTKQUtgigfcl z3aTjPO-MyCmwHtc0=q>;vE+)sVrys<v{5yT&#|5u_#hj9#<UK9mv>sHcWZNZ`?TiH zc7MPZ>gXygs+hLb>)lj1Lrm)p2B!JCJ)OO+-f4Jg+qCIXvZl4*<!F8L@tQ|>S!up} z=VN<!uPhq{k!enA^|ti3_oW~K-fbb7jTe1Q!~4Ug^&>o8v)8wHKRn`bT4;L@45&Vh zii+3=1q!inx*PBO@(0yBzY09KeT@FYOXflWZ*v#AS6JU1SI{A_1CVc#Yunl?lb)^g zDmg+$(>(s}HeWjc7!~g}kGF?jEavVB1tc!<sa`tA1;X#3Q?&TyW+8@k`aR8fJ09pZ zcTzm$S42EOLbovz;rmS-MOxCL_nZ0neQE)`kSxeVgWK`;y)L&m5b!g{`fYlu_N^Xb zkjMo?o$j7ypQ;frTMN1)xCr(3NbY!yK>*U((H!gu(L4RzJ^oIgXS*azw0wB!AGLtr z-RI`vQe66j=t-)wC*W=M;)QA6R=2+=D52fnt$pgnWa!3w<pOw@pL}&6(2&Qh^~tf; zskvwcdBibwX1DbEIz#!sZgQ9iys$3h4gmr+>UMYGHHNrxt}`N%Zui2v`WlIgG4S~j zO~g$sGn0h@nOI98C%qm}?vm)b(Lk4@jQT^}vb@UZjm(jRq$J2VI<X6_-|7#L_(95~ zFi4<#k=qnNRShu+UgXH;YwiG)IT8vx)~0u1c5D~_ZXf!Fu*KODu1~OyA8sqju$81d zhzx@>GHlp40vb3#S?dzsu%$rvfCOG6$shYH;}>r+y6u#74&S728-C2h7H3beO{PqQ z6&cR@ru&?kHvD`O)#gl3IDVh=+iyHi*a>aO`8F($9k$8F?8Q!0;a*g~yt=C1?GE;~ zxa-{V#ejIx;|#oPvb&dG^@!IRcKZWe&0&eFTj7c2MSeAS;bEt+z7SBfwR=MzdSl>! zrM|ANnk_=Vicq*4`PGH=K1z3pYYvJ~m%GD{#}x3aZgXcZ-jdkprupmd@pgClTfOcs zJPd*6_n9Af%VEgd?hVXFI9Irr;{A(W&nA9-<DlP9+1yxz7iX45>J_}GGB$c;cwwWj zy_?>e8PThyZaM4Kl&+I+=Pa6z7B_cpZQdSqdpGwsccR1SJ)b8SjwP{;e@`dIKc@G1 zqMw%2Ydizq7Q6~`HmwfmdaKwJqk+-Ksm@n39XhCaTa6%PfLCP(LuI890cz;rUn%-; zz0h=eTfpBPLMO8f1u&<eT%a7gL$h1_{?1ceZOxrQFE?%QoI#9&-ax3Pi${N{JLnC$ zJH6fQp$_?y&*m*&`SQ+2H@!x7YjaO*gE6D0H`swy$Fr%%BRV_j^d+W2)xtW^4A|-k zdV)ROLh5RC)RyqF?QRaV)7*ppphY3%@5D<<mr`@}9B%6hwRJYP2jv{byvD2z;AN-^ z9fF7#pKgT_=j8<ys-UME=1FWqQB;J=TYbUPd%Ha$Is2q0A+v{;K8T-iqam9_bI859 z*N4}(@>^O-An}}3z#ZJ))#8tFb`+Ih7JK|X+o6h@1Hl@o=YKwd@k&+9rka|@3b*jk zgIOp~^4Hwi(}6d_BGKFmBTx=&<a>QfVNkSE8@n1Bi}=mDG0dV0tv8jlTBmYRv=t{t zm4hX~2MzA=clF@i#BJR)?dgTLG#BWd$FWH+)Di2~0VH>RsZ^ukK{%my@^!Pu51054 zcLFqyHW#Ip$2!!-+Gh&un^*=BQtejncZLz=g8>xW))wGNBwsR39l<&`(CoqdXs68& z>k2G9m;e@IzNn;65?#0gY6XicCWjaIk;zi%@zcAA`5PjN2M$R?_&Ym=r_<XUfCa8* zZ&7(a^;*|b-%?al<Jr<8hi35FwH(u;%fH2o*+sH1h%?AlXKz<`cwH$ehJZ!uY4kDp z#_j=fM=Nw}a#tSk_H;ITyfr77-(XPA?-}kDp2jMkq$d!q7+3Tjo?ftl)v!jq1H80P zkHxg!7B^!>BkKRH2E@2}#V{6)Gu-$e+t3#k$`uAu6#MJcOKa4-)Jek!u`~2y*~H9k zi;bsPx}d@xF_^{B1QCW?Tc^J{L~oUEttl#F(+#?!2QRnp4iy#F5W}6Y1h?Sz^j>op zJlou`%$(V8!@|mL$|){v><G#)u%9{8>V{wpg<yG&y|gq{zPVeMxvshNk8~8h9lfWs z7s_d=8#Wcp5b`r{cJygcR21@)LBhLsjEP5d!6L&$?>^dQ_4ol2JNs<Z`|m<@C(Z8k zcelG*{k`xJD8unY$`#8O<e<<^+aF)B6@HAq)2pOU)!2+I-~}ymm{`eTA0(~uEn9m6 z$ca&upzpyFEPQtz_Fv1@{!8eM7;UZnT`d@OT5hnU^!39i7HDPfY7T7j@<K3p6%Qt8 zm!alJOxmi#)7;bS@rAalg|FM~3A*8i@xT!i6g%s{ICXXmi|zD)X?KZ`AN>(%?&ifb z23l;c`hrqUX+b3Okt`%>4>e=R(HE>3PoQ;UG|PJGW8Ddwn;a!B>*0xrv`~vXLo}%x zi(}NaB`}Gp^<k49)6a)lsZC-SsH{VZimf`N&eNY2waqRCEwy&Ln|rs_bai#XfOKQs zY=QT!vlHG-vP>JX4d{lbxVOT$>?RMEAF@uHI^kX|9TdvlU~cSUlO=N-Dz_)pRHfZe zxfWr|Zi{`GynBYFrMJ)Ur}*1wo8S+1$SD_#C>E1gyE{SE?Qi341uqb>kSbwPZN7k& z7IfV9*5>VU+lQ_uox*<8sb(x6LqVo&c#-)x*TXK_f^#z}wEL;3*y{MIiN$}0T^s9; z6HLk2EV)*)DsT-I7Os#kZRMtigpl8!RqQ|uB$h$x`-Bkd?w!LX`&N&D;m$tN81-IJ zlu?b5RJl@eyg?6kV7c1l#zNdi)4I_e@U?e@L~l2l=iXKqt!gywVRIB$xO8@Gf>9>d zEwW?bmI<NacFP1F{6aN@=BxDdNj2E!>4aS<wsv{DJRJc+yu)&mON~Wb`Yr6`&8@BA zEyy-VA0yzO>{x@QKMlPGf84)28nOxH>`4O8w5jWY85QA*B{xM7YhEj^>x4-2P+xZS zl6NJxL5a<JC6@_0YVc!bE?le{(8!*aK#X2vte&#ZJS0rqVHot-%nI0weU}uhP2e!L zHi9vfgnJRc8WbZt<rW=I1C2F-G-)G@D1T3LJNeSI^RkbXs!hOHh6eU9HyN&Q99G6Q zx+qCj11;;Zuuw|w*qR2ifWylydlNv;GK2q<uCY4UV35OZo^3Fl$vr8p5IO@1`%lSr z=_anUN`aX(poe8TAEdA|D~2W9V&wAjIrwR2&T465v3Xc#?%evGepG0i2OVGNhS)1t zKn1m*Hpr!9uk+@IG%K%-F^#S{_engUoTbhjeB;b@Bt|Ji=fIeR4=cvbWhaF8L1`lg z)7=vi({T(S7n~DFYi#C;+>Wp>9|j#A%RwI9Jvig&akp%D2eIk$N;e?;cVV%#(iH(( zBVg@eX`~Hy2xomktRO)uhLxTz6VcWKCDVq(644g&!ahW?R$p5i8q@040%BS<(uIJ! zz3l^@-priIbAUJZv1tQ~5R+o+Y6;N6hPJGxh;A<wq1BZb!&Jkefz?qVcYA{uNeioL zN7m@3U+9y=W8M75G;{hNZP3{T3}Nf8LE8%EVGGSK=?Dl~H!*=`_@8I96UfvEa@}A9 zHW>2L{-BS-{b$}OZ&dFTma2BYUmu^uGBEvjM7+fJY$tzBdl%ewuzlvk#A}j)KG>yu zCR>8q4Kt98;syo$M0{q}8{Q24bGha+eZ?9^1D#ybb&S3}R@BeP469jIv7}0Awgqu* zs@11lH79ae>Gcs#E0&|aDw?%J+g4vI_AcH|FK&onwu8SAG_9As^mH_)*~RT4q7lQ$ zO!wd@f;|JIF-Y6d_Mie03``I|SxIhzX3Mz-Z<}M1`?3JeH*hGVR-{2Y90q$L2sI;5 z3~*S$HUXp!gS4fkw@t9KAjU2;w_MVyB-br8Z12CfBaC7rvhIm-Ril#~5)t!c$7*r? zGX>BVT>-Goaf0(Ln4HVW1KUU0{3p-+FeT6@@PP52Q0}M9tx}}Jtkl|ko+$8EwRs`! zSXI$GZN6<@?7rZ7ja{O#H((>1ElGX<V({yYHl<E%6tg_T;KC~J#nk~E90q)JX>+^O zAcLM#d}OVa2zl|`#boY>&GoQ(JXqS02DNzpE3%_qvoUBe%XBm=jDgJbe@i))slAfo zfIOq*Rg7^Pk4t4;Ld$I5Ga=#T8z9AG1<E5CQfJEL5t|eYQv7I1pnG)k(k|Jc?E!yp z5Bxu(j4sa58iJh{o2#_pFm1e3H;OH7dMP*W+w|K9^U5YYL9w-mJV{v9pc!f!y1GQD z!xt1iJ{(tU_2F>MTr-K!Shlr9US2_>Ek|!RZoRf*IAU6Ti~8C{@Csm|QvMG*91043 z9Rc06l?*&wbY&-5tQAICXQ0B+O*H4F%bs=$Qcs%Zehl-eRM{2Y&E~0~;`u~&Q5iZI z3XbfAD!S6_?tl>ln+lSTGgNpkV{CgVU+;?1`p_4<)C7lX)!XLr_u^1fj(pS$kNVJs zHDGl2LSapf#l2wJXGXu=SWF9hAGeWZx=70kV|Ah)mRCk-f5;b4n7x4<3MJ+LlKDx> zUK_H5T`FisNw24L)L~jR!mELMXQbsI3i==ix6x@2hKqjIEwa0bH$i$J2JC0q>P5>| zx#mxuT2$nkUNF6&&{bSmR9;kAROrg@3iWn-=d^oaUi&;qHU~T%bMSmXep#t2zulFO zP1YPJJ}#TzhC6VcP5Bs#5NvaQ08m_m#QnWkR7xM=!dxVgvWNou^FMT3xrb*}EG$mv z`$&+m@FrEdGBGd1N7r;!z-nnmwf<uEmO#Ylavob-QT&MgHfcqLVQ&Wv;V#^|#I*wc zf*46F5_<wP0NxWmA)!qVRy5MWAwRAV{?nOJp>?y8ed}RZkt7l0%>gYBq?u_7n5UN{ z7=yPjEf$ibNcRyIs=K6;(M>Xl@v^4rF!>iPSh_S6>zPAQF?EQxS;<=MYN5LWY;?%G zuXL;uTTf|)tqq76$rP1E&XRxY5Lj<zpc!!OqOQBuyKQ+JFFau-al*4LbsKZ=(t}M7 zRumYCeeb8xef}s`733)7Zy^O9?C@`u*M2Cm$=9<rDB4ZGB=VYDPwx$e<b^F7u5e@i zgK7hdK3^`wvmj(w_0yz%_0>P=#jctPx4Q0GBiIs&SvVpWHE31blj@{>Xr8(`F<DRw znzhZ3Y8pcj0XlyoQ;M_>qA;;x`Kt@Rjj%|iMErMpvCBtyTW~;2N2{#V!h`is`mB>r zRax@%;VyStxNy{wj`0ExANSKSu{se^$7i@2L65P;rVygcWVQf#jUN15k{*mwcUKpv zl(1Who(AA+Q06|#Mc3Ae-~Lx`ii#}eG?pEox(^h?qCi{!PG6S~H&NN%>cwGSz{6YC zMwlC+jsW%=`hg0|fJL`UVR7~?MYbp&V9>`9@KiLn7D0d!V6#L)i400*FkLoyu%@G4 zDd`X@NIPNoeC;BQal}jM=A*Qv`}e=D4#or@VerDk-V%BOC+sYVbVd~w<4%SYO-ySV zxLCQPg@qTB7zq>&umP0aA63mmXr<Xu6@I9Y6g;0D;%-d<+7R2)Ks)}t&A4!bXHH^t ze8{Tg+~5f?Sb3=E@#FA}9^>JCUJUah@@@`UVC-_CCigi+CNo1mye0Q15M(}r(duV_ zLz$S`rN%(@3_ZsucJ_I=0F_7V5m^1Hry>3e*Mx<-L`6QGpr^UJjhvDs;!=_ZJ8*n` zQ`@=ZSb>eFcGrVfv;V3`OPvo4VBMIvufa^;z7G3G>7b;IFYdq-w5i*_wcE`O@E8Oy z{0tIWU#FgI5u1a4x+xjUmQ6in5LGVz8yCmr_DbH`CXU1R1WWpCjsBY#1!FWF^uE}# z&h^_(VhTd1$gPKYMIQ=)Zy%6yU{4Iq09;{~<}bTH(GwQ3(f0DOGR+UF@QyI5-Zr1= z9O#m}-U-M0tdx{kQjq_}CQ_dd@GQk_{e%GR+UY(l@4EC|+1MtHRvl!Zk)0-5f_M%~ zJ`42Uv8`i&f>>K4{1`DVEj9;YJqIde@#Wj{Y!1evZl?346fTY{e7MWu2|I?6!Z`u1 zso>N=9<WookasckqX=@WBCRIVZvpcIhOX6rqwlV|$dME9w#%m<+5TYP4W0qQ<O2(+ z4JQ-477ldNcc4dM^n$Mr_4zqtNjye3iPRu5xp0a~`nW+!6JZ0bP6EiCgTL6Xjq=@F zdD%}|dVP1}{ZwK2iY?4;>)ih*dqGe5hHY#;5Z$MuB<BQ2)9CpH-E{cRTZCAo8x#ic zf|xrwJh4qDHW-*b4tg?^&7q2=>T>MVcvG?>qPL5p@5TC`5m;EzJDb7UXMAH2dUh-6 zSv0X1?jY{WJ`aKLXsAbR&@bv@OXR#R_HM=&DE4Pr`X1F54RmtR$NfvUA;|^YM_l{g z>%lOCZ+MyY#k8qYrGyQ(zi4}HQHb(6;UZ`}%Ok@v7>U!pT|N9D7TOU*@yN}MT;#}S zM^9eK6VVvRmU;Byc?jyAjHGSbim=;{McRu>`aH$JHW%63WNB~i^%HfyVw}LNitU`C zi>?sM_D}<2=#3~oBPn<>Y-H56f&o+y`T{)@b~_AKNMrEZFKaAw<F|6;#j0vdaPmW9 zzuimQZXEVQ$MUrVH~`=P4oDpVYuIvy4M#3mMqyLonm^blsf&0n0xnLm)4a|oa5Uqm z$N0Fhbo|>*zY9itacN+alPUJwH!*YqPn#H}gYR~bD>V=xixqkXSND`FE=H2m+02Pm zv-iI=+l9w&`99&`1r`T8`Y9gvk<oUDkLm)reIbu!22YeZgkV{&T`2E&>?b{@ZON`! zw)A70?PcmN2>Y7`-!{46aQ&DR-0xU8%wLi4x15gS<=8Z-GRRN7`{c<StL(Awnx1Dl z(T@pE^K><D^5)ZTs<r0J%R^+?_=5EKzr4KLil=~SlFNH1Fx}}fe$%~5D}cNaLTIKp zRThOwu5KiOsJhM%&kVc%<?n5HaHZb-K^n`_5#5Nw!9=9iQkDU$HQsj+`*0S^(TOy2 zv|PZTCUw^q@{v;%_YUb2i#qfQyUgWt7`$)7oqxJIBXB*#OFyl{zo`?OY(`u!QmcJT z%ktoaDfXX)=y%DN_I~BckR0s#rtcu3#g+jFl?Yd99V&_8@wXcJM7e1y&Jpe{@^=l@ z!xu62w0TVln$+?uW+Xch<k(b!xyD(v9bcnRhl$qyDZw4Snr(PKDi-Sv>a5EHIm6i& z%Ad$#5@WCHGhODe-@MZgk%A2mexODk2b@?tMg5UaOkDh;CT@lFwE6HemT*#sfB4bd zBIM^=j^+913oODmfOfGSm(kppi?^j*G$D;mMsa?RUnrDM7QvFD-x}(sdoDZh<0I0h zV%v!y9pVk<;1{tzw_o8i+oDbcAhKko;g5eXjI`QT4{wu2C$4btk{N@6UG6cTB$$EU zvTQ?(q!B5v9Pkhfz7Y^zcBGkhCm(5H$<dctiGBK=Ph2+PDq`SVJqu`VyYQeQ#H*i! z6Qjky#%L}z|Kg9JNMi!m@Vfb4pSv~acXz<+2GQMVb%(Jo!P5cyHk~OJT9xI`2}?KX zCgJa<iwOU%87=P@#G-KIZwQf7(Z4<BM*!80)9^JzOvg5QqC<}J38rO?T8w`=6wfxv z!!rmLCI(B^fbMQK9sWg8P>(h8C3I>H{UC+(jH_#V^y6dHK3F8pzE1Vacrl1{DgD@< z-g}(r;wgKP)a-@W)9MrUjKnhh=E8R31zv7hXSnIAKur7k@bgP78z2)oQhMI<!HU&I zJ(m>jb{r(gRrN&O#HxsH(_)**ZdoBUft94BG+2u$hW;AJ_rQ1X<PSUHc6J-x_m8n- zO$R5P_25UHV`~~N23oF*qYGDPLj)TGJT-?M0yMe2A;^!>#wG;vBAL20BOiLU=!XH8 zdpcjifrok^zR1n?5nT4}#y$@WM*PxT2@aNN?&_PG>;RD$UmMXT2%zOAq<nfujlhWn zthg}RV}1YXEau|^z6qvF3|0)~LZyF}3c8PfhlqWfIL+z%#LJ0)1?|6g$pO#M`hxOj zV5GWYSB?7pS?vDgx<j2FmVtkA1|sjn(XaMKHC@X|HPe{W{h+os{Q4Sxf^aF_PG*-H z>FS`zhhL2IwfQ_)yZc_qglWZh-}vSre#6{FKLE`?>Fy3SxA#r4n1osG?*|XxZQi0D zMB3u_;qi0&88`h?WCJ?h!w<*uZxAS%9ITAU)8+7<)xvJ{Sq7nwIC|mvwuQFe^cb|_ zBkEbXd87b6CS7u|tVY@n)`w_=H$p8G_}N7B2^>r7|8rXd{v}!cbL{$;-F0|py8M~; zL4VuvZiEW_Qh(&fj-T&uikfd1p{V(B;;N|mc!vO9un_sN<2U|m@iYICA3J`_|7QG@ zedNcEU-ExHYJQ^Fg&)I@{Mhje`TOyTlE{x;3=xO%-m1utT?`fPN6jB54&c=tksrHA z7Kftdr-)L#e<bo_$7>fWqvofH6;bok#m!OkGeo6+3z(%6yBIE9V_cRT8MTWMqA+Uy zNunZZ{zy?7H9u3V$caWD@6T~X%g;h~wEWSMv50TG$d1U7NxQ&%$)bGhVr-OL5;eSu zEXv0&Tv2ife_X$O137WxgX56^5)VW4?>F=SW((e)ga6hKwUqKJBk~JW{=SI(1;{t> zhWf&BF2wk)FB~><y#F}vKt9nw6hY?##_ul=KR|x8cKw3!Q}F^fL^v+P=Qy4v^t<G! zU+D7&{tU>oeyN<!|5WAcx6A4L1Vo6>$d})hsr-H~w*#GMd@csQA=1U{2>D;j`TfTQ zWTMh(1wP*8*l*r#WjdpT)8!%r^K+icPgVJNrwD&;;Qapc<ramXsqi(SpCcb{a_cuA z<qHP;kJk%Kr~kbB8}d`dC=p5jIp|pz@+0Tt$G}gs=pVdcgg^1n*W*>(8jM4JwDqJ0 zbkZ@7dJ)nuM)VJWf8PN4@mLblK_pU7I>3LldSBrDu)dwDm>o9&{;UD=N2B5CQS|>B z;Jd6HpyHd5pN9FU^;jy}PoHxKp#LoLX<Q=v|3Q>X1)Yj<E-G$*USa&Ke&hJw0QA$C z|73AMb&^+68pru2Su;X!nI4bv(ni8w#s9aF?=rE%k-G+<^TYu8Zw!$CIp-&fLZwe2 z2K*Vq;~uV0$EG0Pr4yEL#sK+^1JJo{fP9?Mgo2^owzdLt11z53;I6N0Y{K1NJgJNy zIl=3b@Dxgy8$V&#jo-+{(Ujla-sx|lUr@%wqCwiM!LIJYyOBcP)`Ie~vhwIi@Y!_x z<XJK9pM`M2uPuPv_3qZ*t}c3V(URiZc70Hzy0qzOqWYp4(H`Am5T0@}e-@T7OZxaj zVM8OcOrOZFFNH_^U%c$+!!r-j-pu1(*if~!#$B^)0bQNuzSMC%tLv_*RS2~U8mN!L zF3kmN3h*#e0j_Cp+vdi@D?vYAg@NC~aBsmin+5BZRV}TXj}lEw=bOZ7&t!HH+!fY7 zLo?{6wPJDk!i9}BP41?u>iQb6<&_70a3Ihx*mk?=p??&opT@xm@$0iHD;L$*RnK=9 z7Zex7_%zG>B06I%bt_V9*SbpzN(+i(yh*d5sAfwvO0hWk<QozCQ{x_xXO#WhPZz=Z zF@at~PvcklJRO_Z^%yQ!D%^{=xEs{`nUCMk#S6t);`s5mKDE<kZt&YHbTIa2d_L8O z8uu|D<`Q!x2JV(%P{*mJh#zN)>{=ASd%isQW$a#-DWv;LWo703wQH-Y>)b^JCB*-K z{(^j66FDWc27=_1{%N9DtqJ$4Zn}Yi?hWGAPiX!8`H(Km6ts?S?DcOFApXu^O-rAy zvbL0zlTLHL!K3TzR_J;n;OD)_^+nxE6P#F#&R{G9O1EkHuxHMez5~`@3`GHM1K_k4 zA?_J)*r8+W<meFv@W*%yFkty`pr{mn0H8o#Veqwz0!q=_>_kE9_HNLVA)Yg32>G$- zm$|G7H(>Z}m}V-VVm+N9Q9znW6d+pAjyrAzIQ7Rj_isVK&&sF3+o9BbM=OZv6sUVV z>c$8hJv7uzOsY9aL&s0|pdc!4#=GGVp}PwOkaJOhrKpSENK(M}GJuX3LSpKvBtM0! zK`kwC&}j%>@QCVUA#|ROs^XS)H`XZacgV!h>%I0X=rD4Jr_2$vx(SHUOE7hL?SIgr z%fyrsm>GROcqMh8^4d?K!-;*cX>ZW?vjEADj~^#<mOt8`p~F^{4>N;5dLN*YVi_Xj za?s^XzX$9&`qZkB+#b|+U7p_EN}tvEBNSa;`$u%>R^<toK9T)*8uIYoY?FWON73Oz zE+y!#j{MQ}=x`Hqzp|9q{uUkXQ{{+%Vny?>vIXr&sZTXM?U&JEg<@FOugmN9pQp-K zD}vg8qeGXaJe7$oe=+h1h4`b7_VefvuMh9@AzrPYJxEx~Yk!aq4_T2BPgQ9hULH|i z`;By{`PF1}T8Gy~l-K?x9k%F>i>O!A`(8wOy}#07r28zg{kN#{di=D%N{5l|uE_Ft zMwHinEgd##MpYPD{(*?{+W)1)tJL^wGP>V%`Zp2fwVzCfdf%w=Bgl!D03cV2o@Uyg z=29*wJ<htku3v|513<6K)aA9`tx%QMcmtLH5CGyym)HKeiW8LA^o}8-=O*Q8KVGHg zUk$9DADSQCuB%YSTEF)9txzttJBX;|qs!~iKw)cnb06%Ih4ehvBy>5QcAzlj>Gr!^ zE(T@FKx7he%g1GjQ*<ccgi;uhugm90<ZE&|9HGibpoton%&Ck3=yE!H;sE8(cS(!| z^%_%#k>v{qDF2&IiT`&!aEeT1`MCp>|7B1X_#k4!MV6QTwf_Bg>o!?_+D27zME#o1 zssZYMi5!XeM2?FtC!uoewC>S)6sA6}Qc8hMK$70_tK~<_6@j(vs1h8c{zax9iqM~t U^`{L`{`YUl@}7tS5lQj?07v))0ssI2 literal 0 HcmV?d00001 diff --git a/week09/cmake-build-debug/387_firstuniquechar b/week09/cmake-build-debug/387_firstuniquechar new file mode 100755 index 0000000000000000000000000000000000000000..af1f0ba5c5fdc7f7de92d4aa9f214b4d6ed375d9 GIT binary patch literal 219960 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%0AvC0P_Jn=Hj% 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 GqyG;t4P43q literal 0 HcmV?d00001 diff --git a/week09/cmake-build-debug/541_reverseStr b/week09/cmake-build-debug/541_reverseStr new file mode 100755 index 0000000000000000000000000000000000000000..c1d25524d9aad4bd08d4b601f3154fab863acec0 GIT binary patch literal 61664 zcmeHwd0>>q`TxATNp_QvlPd%yOAI$THVGu$Nnj!23^@Q%T$0TuEF{^G-9S)56tz-{ zg7vPq)@oZT9<?5Ay|1bjtF_dtctf=<wTgK1`#jIg`|i7&O_BZD|9%VEIi6>pnR(`! zXP$Xx-hIz@Et+T1G@*a2VwRv(QHIQ^P=FggR1pLfqFf~6d$h<C2}s9ro`hG(08sfk zsz~dhUFBO5Qn_-A%!mv}C_FvXTS#HNf<+6iA0~74PzVQSP&sPrK}GQ32$`>kMbsdC zYN=8Daqu@akILCk;v_-`NAxgVwO<eQ{t+4aYf$jWa4u63LJtX-KDF-$TPVJJC@1@b z4KiEkp<Zqo%27MN>nB|y)~WjX<4cy}iyrFZP}uHko>E%a-jd($>+I>x?=7E_Kc%!F z;4diVeiMDdoxh}!Ya%j=6$~GQH02TeBJHNKmg+@Aesk^emn`R=cjiY2AI~Eg4HcEK z;cs{PZo9Z~aH2gfF6F{FQ9-aA{Efk1mFv$RuS=Zs>O=2da@K%pS0w*(;k%ElJNxRh zikn~m$Njthow|R+$`P->@a}bgfB9djgRUGfXTYF$uDgB3t}9Wr-_L7kKyDQ1SLjq` zl>A5f$v+((h=%`@e)8k`q4NUT6O9gWH(GvLKlpF;ga1H3`M>RlP6h<efijVw?ftaB zs-OH*`=LLtAO8Fc6-MjtvVQ20j5s12iS*6=;7{$R-b4N1lblDRKfRy)KlelbDd0!z z*H@@FT?`Xhj__JWga4E-BJztlKU<WK3dbMI<JA}6g8U3n>Qed!N&Xz+{-%mGs!{7T znLiN-nIhF#A0{gN#hjlk_NA!|6_g=AU1axZ{~Sf<@DPdURrsqpKTWi#_UP2+qdgg* z<52xgSM8}+bk-<*u$Mm`<maND6G+kE^MDS3-U<X;JQF99u9_m;?zRqpr#ldA>JGZy z!d=s_*xlmo_O|%~L2q}%;yLa9PH#g~bGui<qC-~I2ipTRp8BBE=~>&<?GAP~`GUxB z)i>eGRR=&xb5p?Qar*<oZf{dZO@q6k$nB~xbJs0gQXedHyFI<VPN%b2Vgbq5*;Z3u z>aL&cZg9F?F5zCago({{x;AnmSnl%&+`#vi)^z%UM!vs2;HsThSMRTPqm;X?x7Xd} z?GE@mo7#QB&F+mwRC-~*b@tnd(tz&_uU>aQ4eqz_9H*;xp{H(PeF=Dsp7ht_ehD<y zyOx3-C|n;b^>((jN8|Q?Vf2(3>qW!SYOYxF9~n{kAIgt`H>ztf@WmMR6XvL|*VV!7 zgyi-W+-R)yG(ch}yD^Y*7(D)-Ade=AoR4EC+zMtJ=46}4;||c2bP9K4=O$lgi@VMn z=;`nZ06qF##WeM-cYD^ZceghA+9BPZ-X?cb(A(=nLpaguBRM|<v(-%n)x_>-@^uQg zx1}lAglW7Kxh=j<cTd3EBHRl$q9!@r=d?Ek0^R`15~eJRVx7QpHwOZGhNSEX^tgSP zczR8gM(xap@_K)JPtfP@bQX1cH)8gA>x12{7={;Yoj+%eyQH8<%vrgzvZ}`IEGQB4 z7u8fDiR@Byyr9@AlkQ?2fLL+CWavK&tgSfw(LWiFLz*mUnHL8u7b+9BR-Cfa2w#i( zPv!#|AHukd*C-(zNY{?poJ>^iCSv$#piior*2xO|y?p0-RGJ_j1f24M<1c~994DSs z=?zD(fTp&JmyGfjakrumbTP>1OQ9XW0fpa_?MtNI{axYf_PlO~7pe8@u(J2{{6T76 zI2w_ESnYf4YMs&X_4Fe-4r&JP3DgqA>1Ry&Xs+?uXUa#zjn95lzG@1?4w&-IOW;9M zewIN+h{L9QtnS9=s40KAkqe%yeo@=a_J+Q$l0=L(;TI`7WP|HVD1pmO`HJ;is=|~{ zwDeE4Dc`(LsWs(O9r|abDPJE0f~_&-W8jU?T2p?Kkt;-(DIbDqe0oj!1B_fDwwdx% zP5Bp^^35jBZc{$Vv;Mi#l&?gJK{uH42kOWOZ!_f&Hs$X%<ttN(q4%5evrYKb+dsBf z?~G4LcZllq9|>BH?W^AYg#B>?<Jja0X%2C0^dx+z<y0U>>9qtubl@01qjM=u;&Esn zr?V+dLx1QIPG?e@MEuZRPA5^CMBva3oVHM!hW^lQPJfw-G!6NoZJhpu(lpeEx;XuJ zO4AS@TEppgC{06qsFu^OQJRMIPz9&|L}?nzLq(ka1EpyQ4>>sf7^P{d9ZKi)gOpCC zwBYpJluo1c;ct;K`sb9Up*wVd(>GC?hV0NjPG605>u#j^<NQa>j+aia-tkWL_V*6g zHZ0l|pN+m%?@GBDU9R3Wa{xGZZ14pr^J!YnT+X@+iRxYP6f{<kKU%%x{p#&UQ#TIA zFfAt#hADCNu>-A)zxr_+mDYl^ob$LokleuKC$E#`zoqhzerv7Xak%=?gR`r(r>bB2 zHkbusqZF|Ll9((XNpIWCsTd#8Gq!sB%!gADYXrUEfa;wyzeMU_3OI7G8eglQicbfk z_Mg7(c{T}+-acFOBp*5*n6lld{~QpY&Kx3=$M&t}@uGNr^*JBkhTgPP?~EHg4w32| zu7l1;s&}35M)~R;PaoU}PFL@`jFY?0UqiXOCVvQ_B48o|4ctF`Lr~W?0)5Nz%VYu9 z4b?kdrQC560~IvhP`&HdMD+m@FoI3N_#huJqQK}^>F5Bb$T%oHeNdBepgo0A_|E{a zXC$&70ws`;4S4fwYK&|#iu@7D9s8?yE<V^&T{3|C8a(}@71cW)H+43V=mHD)og4*_ z+Wz#xi&6X|j4WlK+NTe04JYrXq%2vAk_TU;^f^xuZ%<wQII$YjKYhoRuXpqu-M-~( zt*7{$Ek}<X!*GvB52|Q@-(ZS^Q_vf*xR8cyXZ*jC5umz40Czvjgnm!O9ws$#@D}iI z_2awcNN)dlW%Z6N_gC-e*;~D%@wOd{Z>iqtx{V6I^A-B;dT*!emR$qHPS<-^eg4Ic z#)Dx=*T+x0o+tM0bbYKnl6I%-mg%nN(=J-WV>0;zC>b>KhiJ^fCqb-w$75*Q$=tT5 zs(1Y5;3LS~>3W`rqlK_?m>-1o4ap<`z`9ytx%TaBd>++n`?ep{cDP>I>Do8l^-9{V z_fbE(zD3qHg6OO;YWsDFP94+P$F&_n_QAUdYuDr&Dv18(%0fF`ugH2YF^F`9h@?m& z)t-HlO)PL%A~WqiaiQxEXj3?73ln)9M8osFs))4@WFeP$EbTtmA1<_PckR=*cf6t< zO2e2@-yhLj&mX#oC(z_en9VaMP+z=X>im5?(cs(~WbSkwobI~iEISJCaP9vn0cnKB zc<pe#5sE*y)3sl5_rOlq8`E6}w)7wjZ}~4klso%eAJA@Y1Uh>lyhyJqg3d-jPUjNT z+2^RUZ=kaWw2!t|?`*sc{Do99f6Ko>=P0@TiItcaA!VADBPv%^F0a|~m&(RU=<d-U z#FI|mmH$tK^_4rmso8O4(Ri9f_UcE!u^zk=lc)Ope*_)Q*L8ioXvdd}b{v_z<6o7> z2E9?e{c){&>YF`(r#1G})s?4JuC6@2(*5}EP?i6|(#!PJDy)$e<>+!cgkuAJiB{TP zG&Or#ysd3(VJ{E2PH%vO(gL^!)!%?{H~RAo!W$5FA>0Qp<Y6$UL;M#ZJP%<z!mAM; z0G!m}Zlw1i+>ekxx{axwQ75$CbZz(mn|-%tOQ(GDrH%vbiG-*=(eVX5{u2NG&yO7| zBHF3x^HQ@Gq$O{%Zxge#r%x!!%Ow(2elGqVK_Bdtp*{|Tr{V8zh%NhMDpS)hu*^wG zaBa6*@3f#*l0KnpXVfm@*4lpJvpK|Y*=E@WYR4^TGx??BNG0oZszK*;&7ebk`w;x9 zL1^Gu<}%!Ytb_PVM_btD(rMH(7!cV9TGO9_zV%W@RciXhma5dOi>$6x$F8`l)NwzG zuTCwxAfY<7e7kLNYDITyd1Y!*W$L)9R0r^YUzKX-y-ow@90naofbltYOdDPmf4)To z;_tDDi?#ThEaC-?;@4Vc8(9B8^8Y#T|2gn~;ehT3(D(iNK3}Ivs*FC7A^A4U`Q(eB z&j1-1{%(D5ulud_y}0g=(D&f!s+_)O)BO*mgXyE|%Fn(%=BM<PN?Fi`iav+c=2->u z5DocB3>D%?oQx!^wC*b~?<onSx*@XEK2q07dldt8{jcxIbzg*oc2fB0`TG<j^mf;( z^7`IfuYaU0X7mp#m-`2FE(#Nc(-n#ymM%`~?L4f~AE=H&^)p;`S5g1|0{wh9l461y zz#%FeqrxdFoTtL&Dr{BZMipM5!pl{7s|xQ^;ZrJnRfQj@@Q4Z%lrv$7*{KlO$QaVP ze@ib4uj4ewxW?w5&R~yYa>3++qI_p@4=0`DWrm};$XVtrau$ghC?y3*ih+J;^sEww zK8G-REh?O}NFJ6$7PK5#A#sOL@He{1nUF1T+=`RLCF3E$C8xj(_hu_5THL?qz^1a! zZ$v!47L2i5*X=;5ggYJhw*3fm!|JCDVJE1y{SM5gUL+HzS7YW7B&n{F;K>~)0lxeT zv_Tt?ZtcAnc`0LoWZhhe@04i^5j}%)Me^S;Wvz8-lYp9f$tuL%&m&t)BdBde1v0vU zjd<I9!~>LVPrnS`=^2MkMb3ghqG<Bid_<T13)x!o?JmR{vWa5y%@l7O&G8OQHtUKw zjvqu<tt<b*@ueptzG_e*;lD=tr~VN+TJiykpY}4vGZy39+Dg0L%#CG;Zry>I*o!0` z)Fv*|`!6#8GY`;npIR=&<$&C1K)JI6x$Fh|V382F?g#Yugs}qU#lU-^jI2NOmP+8C z0eD?6u7H;opze{#`~-h=6-1WI+*gT`*KM8-MnHas;7>M*E6wa7uHN+f@j{FTq%<5l z@J|JR-hNfR5I>kH#6m!q5r%A1C8mq@S0^o%O(OSIuTgw8bz0W&k3~ScYh@yKqyX>H zQAFmSNlxysbHK<%=AAk~7268=u>SF@SwcJp$e+TXNuQN~Cz<)lK>6^u4MMyR@Mlp_ z27XFy{JR}1g9j}dU_~kXF$07I{__J!hY!H<02C6CdzbblY8dnsmJq8&i<>M2b!HL3 zr|Br%&ZLI`5`+Ik(lbD-L81%r^TTnds6-sJ3XHZ6)=maK<z5TKJNhDvLHDl&-bq?2 z<exbIByjc_cwFa@t#EBx$7rdLro#Xwy-}`ekqjL2SDKQA+OAy8259g;@JpzQa;@cL zTtqV9+*Ic7kjrWSU#J~M6X?Q@EI$Eql|)}c!k22l#?0$7;4}%6=u5#HGzZ$Y+kkT; z=}W;^YLyVNy#}1RCRsJ~5}KW>wZ&-W*BI^>35T0UUt(~39>D9gBw)P@&_D4f<=Rj4 zW$>dUxgFXsoY0!_*zVvjB=(`9le`-IEvmI{(1xSoMZm1+i!HLA!=$#JsjYNj$~OYx zR2@kSW6%X!9@?OFA^S`nBvqa)dXe@OvbEj#`iTMO#!C24v`LkK?*;71Fu1AL67v_D zqZF900qfI#FwGVJPJ0{5LrcWhNc>4QFr%5Btd%9<r?uHdz$^jQoN!DN(o0$y3^8pb z5IPJbrbKdMuJ}#u1;RWRSi20&9vU85-BIm!JK#3~cDDiF4|y~b`C40&1*E5e@D~G# z*k(o&mI)9C?PDN(Z6Hxi3h56tb_JFNgMpNRxi<oT%!fo0Es?!{5a3fR|3dH2L@8}D z;1xPf5)YEZS#7Dpv}2r80B<pHcuq>3wU#1~W1KC3UufX)yplL)SZeAN&W(Wo(!gQ% zNSwWvspt#Sc@pq_1`e@EWM_~n`JLtM#X``8)D8juFC9mLpR~LUtw{4xvxC*xBP;bb zoIE1d7c5sm{d4KD0Ob>ymMbB_f401e;}9-A51>T^X62ZDm~_iqmft|HE+OJxfYuY3 zOH1&FmQ1J~x|5`x2ha~grB_Zs>BE+{uyk|jn*kz8P^B6Cg=IZD#-$$v=$TOIbn3Uo zdNxFhoAx$9ABMnR(+Zqqorw`=FnM_r@TXe-FKYQf>;5!FJO`lBA@B-n+6e1krYZ0& zfaZq4Hy~;qZCy7;s&8#I(w-3b$UJ~2T7Q<Kz-Iw;ZU}r0qShkoz-0>j6Qpl6z*%Xf z0MD{&(2m-D$bO1IY&{sWOGu=J)(f!eYOe#~gD@nKbq&;|b(z%)hG<^_rlG%zuP;{u z)MCAHtg1d6AP0eYOtXH5rPg|uwG<jtn~dxVy`<EUSxZI%ey;VJIe<3;cB&4?^r0pG zht>*kjaDly2+$b>meR6^mh!8tKdQy*OXBcjfUeWQl6p4d{M>pq%-jUR`3>NY5stwC zF}x`#tPfj%0h^S`yaw?5;ba))73<55ipn<t+hHY`sAQjx*<*dr8i#qzHH`v%td1ij z_+xA13RO!5K=TMJ`|_&_l>XHEGUg4Jb_3)Mm1gkQR?G|8#;pLI7b^W57<X1%-1{)1 zd0t-&&~18YrDqr?J??W1B;z~^`11yi)H94TEbbe~8{@nW_+bM_>KVov6PJFf!buze zg9d++7gC2@S%vl##oY;(Fr9qB%MBc<_ZX)#E)n9vILiQU4Z|@lP}z*VIPPBPY{ott zm=_z^#;PME;;Oif(A$i78<6e^LsU5H<0gaIjPpF;Zx}eCSs{t_#Qg{?V8qXWB%mNn zea*U^Ms9c9KQMQ-!GJjoxa5}~EwNr7_Y?$}X-oxtu7M+Y!8muu{eHT_Sq(UygUWiO z?q-~);tKS!IS25|4IH9l<`-kX8aGXE`JKRg*uXaNixEGFyAl%3&D#&8cf$}xHsgFA zcP)C)I9~%kAXRUkiC>I3F#dgL1V$VUq#^@R%EpVtuW|9G6sr}Y2Jq7j9MY|_AI!Zh z#@-lz#VBw$0Icl>CM_>XCXzplZ-$-3)m{UnUmA$qKFMdMc4K_+c!l^Rkp9*e(acCL za({d+u$cByL{gyTLsOsaN-iR@8T+~T1K5Hv_84GJ>5Hup-;F;7dWjL20;we&(Zp9K z`&s;tG042CZUN>l1A7&5LJFHU1<XxJ_$f3rlf4y4_Zf&xk-kJWBc7D-7Ss__d=W^m z8Hhwt;S?pfmnfY70B*&`M|PcSWyGv0`2bWT{1mfZ%L2kk9Z6)nXx&(zkfgJ(44_3i zIK*eAqZqqA;fzAnd@nH1>jyhjSk-cV0yMbn_O&SUn<(W>a?e#=mtY42m{a?J{(e72 zR0a1XoC5^L{uYre46;cI4Cbn#;0m5exInk-oIsyv6fwAG?)e)DnUhonZeVVXf*sj| zPZA!(kaL?Z0s7DSDWZB{vwa8~g0UX~=4(-~O;X1_sIdJB<`x(E571L^@hD>a<qnQF zUvjt?+I|4*my3)6dPS5X+ztBDCBzmF;o>5v06h?;2+w!=Qbn3<jmuP#9|8T=C`DMA z(3dK5hV8R@RpeoyzhV?I5T!yH^a0SUyKIk4l-M5wF#+S)|7Z`YB01k<Tc-wNB(Te) zln4#qpv!2Dyv+8clJ#0(uQ5u5@UqWAruA0a6=(yEjkX!-iwKbn2g!Rw^hDMvWC`rG z`6_^UGq8R|m~871b4B*GF2EnOZD|mK>d>AB`~{tw$lgp=?i03+SgaWQ0YD#zz@J0x zt<TwpFB0NQYD@eecz^JxjF<wn(fYdWBP=@9BrOl1sX92MCY7#a?1Q#*D;0JfFq;i* zV?h(yjQF|jQcTr*iR_s`+G!w~SjC8T``5(^@fIN6Yao(_R8{9wLkHUrSQX+6Kzh?a zG*!)rW9;{UE%#E@M}U-!-JWE=QMH+DiTx~?iHw~G%+kKtBAdz1wZB}e5Elb!wSj1A zXzOWcXq|mQxkB6sqzep0Q$rciW2dY1T=n%py4OIAY$#)Q+0TYy&Dbvh^Uc24BAXGn z+jn8V#)wCNlz@cnzp0`AMl|#i`<<}n7%>M(g$AOjp^SL5y>gsFtOn9*12M9pjJ?-> z1ZE$T-3ZJJ`eMUGq52=Ud$0sB;`Knf(?B#e^p8bAe969Vv_gCaNc#;$Q$rc?9s3&C zxlHljKuQ36qYph}AGW_&r?7K?S=bj_WHX|cxI|}EHIP;sh^B_NqlMP=#2cq7iW`7* zj)7=uC?k$aJP$*|4ZRvjcN&P19A)gnM4@x^8DQ@3i!HJlu_AHz0=@r0(om|;(2oVc zTALV;)d9*!XxTuTU?5VH)bzNFbdM+T38-yyk7#p%L{1n<k$NPu8E1PU9ZN7y8{lUd zI0iAbYBKh<i61x=_GQ4NErO&Nj?IlQx8%-5+LmxFFQCkRqa3kJwdCo<A4AtM&c6Xq zzy>Rlwh8;4#EZcM#?Are)PAsKBSx%Q4(BrXaMHcdwntAw<XQ0VPV_~j5hF8R8j16f z1r&vY?afjIIq?;#2y^0hUXFq}@w=WvQ*+`kdV_<Dk8-ek^c2e6Q^CO{tsMOL91bqM zmV?V4;NbEXIk@6=4zAS7sN7X!IJkN~2S4fN;F?_=Tz4}EH$1_?jR!cm=_?Ly8C6cj ze^$xC&s#b8<pmu4>P8Os{+5Hg-r?ZxuQ|A92qZiw{@x-Ee!YN$`&u~oO&&B<PW=5- zIe1_t2M=!I;GxSo`0b+{{O)xQ9{!qxM~7l3l@tHi6b>F=&A}5}IC%0J4xYN3gQx$* z!84z5@N6dJE+_sE#T-0W!@=`wICx<z2Y<YVgBKs<VBdZOj(EHF6^Du15R9cGK1rL& zVU|Yial{YTh&hh<ks7hZ5kE>JhB)F!t8!yhxv^Z%ng}gon{pCFA}$$GyKUi6#BCp* zg0IDwV&ugr%C{~30XBm>h6`~i{t{bIWfDU(k05PZwtp@RLd5RSp(67XjI^z;38u#* z$b8BG415)4h^^rXtnWnOO#t2{;5yJ0xm?+*n`<y<KS%C2MllIF?dPaS%NPOwC;ntR zx<UorFBJn^1kiK?oQM7>x}Gk~LTxEPs|@g&RQhD{p4z&e!~Xdkq_u8<w-_i~fkX+m z<S3NO0KUOMVJf)?pzv*H_Mpw$y#PI|gQbf$mkcJ`)(62z?PY-8(!ohor^s7?os{i| z%aO|-s3VAcO(@Km(In5d9}k%hi;P;Bev%FmX{Vz?kz<=iVa8Y3{v<p{R@IoXSo6~g zffzpuqM_McKSF%$#o(=d{_Q}>c<WR|tEskudnvl$DL7wifz*w^Ui>Bg3NSIw-O$Bt z8t-;*<Ot|a1vvg<EF7Tw9^(DbZLkyFR&4oi1JWPxw-0}bq=%x=)kNAJfG12H0=mvc z6Gy|m8&VXX3W?DY4?P0jXRLvZo%j(cvy3iG+{BMb2TmeyK;kEt6~G9BCQCX1@<|_1 z9cgh$=X*DZ#3Q$6OU^DQ3<64w{Pv(o{IX$`1O~!^LrLu?TC~$KbX3t51pb)H@)xy8 z3?-jwVv_di1c*8^?$U9@P_hyeQ?(rlFl|xj&pITD@MQHv-vDnChiGM(E}sDB3&Np@ zxdt-K6Gv)p%ozfmM5QBfm<40B^PnLKRB7OFUBm`4bTu)rK>HjmrHoSv=O~axS{jl= zJBXpB+B-{-f%F-nM(&05C6;UC3?Om2N-ro&7kK@xB5{Ux4K^`Uuy7sKQ=tt<oYE3Y zWY{3i2~Ssnk2y(2=gy+Qxr>A1D>*2+nS;s2vk5k3CI@BJ9F*5{Fzq!)nf^WpGY)ew zlMY#Pl4jq)C>1~Cpz2qgIp+Zm=03rJ>qQRc(}3nARr@%o339ODYz`JBaIiRogC!$4 zSUQ%2WxwE{?lKCJCqKc#lz&%Hsw}w@Liq?ZP{K3Ir-Q?rXr>SF4uxnH{bfA3tmS@% z5gc%a6BAQ=)d5c+{t_3Vn2?aO&Vs;ehmrf04w1({&LD^kIJW{`PAwTxE+o~8NTYQ; zCuQRn(8)>JbO#4#rb6-Nq->qY!8tAt&Rxa9c0UK_oyWlizv5uWvmEUF8wVGC$-%{g z=Ma_MlR3Dgk%P-Na&YB^99(@V2S2%$gKM7R;M(^&xGoObIw$3ZYz}Um#=*C5qJfSS zt9Co2#gP)HH6q)QlAv{QXwx3&(5{`&VWM^mhe_I-2y;@KZz0Pg)w2f^Gbh!14F|3F za?tiH2W$Vvf$uX8)+J#Wa#GhjIB2irpreU{4QF!DeFF!<hdJo^8wVTX=To`f;T&vs za&Xp64z|{Fu-(hSd1r8N{-qrJ;8qSU{2d27-{D}_KRCG90?V`b3rsUD?Lm#MVU*C# zj<nxtG=?RlkJBF3NV%2J6_d2bH1c(n(9MptCp9wvN}4JEIc+SMSVDJ8(q7VNf)Bkd z4)MQhb-7SA_?r&eNhhJUq;$j-_^9?XOke`L!@x;#gfrw;A`xdf4?=ym0VixlgARYv z##lb6!f`y{R}s$1s6wQ@0;HiC=vG>xWjb0<>H7_E$>ybiyvcnWVHloc&PPwi)LAf5 zEUQ2<z3`Dd?0D(sO8OM)s%Cqt0`Y0@fsnjMlRlZcs@dG9A%FVU$hRlc?UwX1#?L&x z5%F33M}jpVH3xr*=MW19A(lkwB9~FB?tx@zE0DWd#}Oyf!C3lyI%gwHtp|`Z3Hk%- z;mLGVnZEEb2M!>Rsr?vVR~b-x(paP~bzzJddKVzSF`(n{fHe)NNFx{WWcTu7kuiH@ z#_T77G3B`g^q*Fi%&EcALX_QsFRko7w8Bz$6bn{dnG=hey=)>BM|xTF7)+J2q7-<# z%JR^nZRNvZxCpKMO&B)9Ql5%$5m!EKFamq|8xSp#UjEb)1dj4cF+3<X96Z`vcKTu= z7L@;dC9t)r&w?t5h^b3Y!Ba`cj-5U2FzVliPp_ErHkK#ZK>w4}z%L=ATG=1tsDWPr zKd#J%mCIf>lo(X@66$hH6%bA)cnNyI1c@7p;2);x1g}a$#brGUfm`;YaYUA!mX@-g zLgwS9KBFljd7#fkra|x&k^1F8*+p!7bP5sqTRjoch7*w=i~^CV+pw9UHi+p#rx4eJ z{EVN|xMrSW(XK_2nTtU!v&k|7ZJoI%3-M+PEp1tZmATqt1)sDtfVd5RiI<QN%(|UG zr(5nqj<!e7R$6%WAP9Np9PMTFRIAtvR%Oo9?k7wwjq0mx@p?pNjm)xCd<D*AE|RIZ z%C+8Jk-1c+>=gwV>&yn3O0V#uaOO&xa#Z>~L6Lc?OjT5j1=BO#GPSL0BxE78S*C<m zbpSGv*{YJ3DzH{$u2adls+o|H%np^bSN#pLlG&w_=~d5S95Vwd>8QE_vXi+<B`YdM zf;X9G$mHINCdg9e7MWU5bq8cBbDK=XX|vzP2xMNQk?3d@7h@DMFVX%umbr2df{Ge6 zEAuj$WvRFgBcFM-OvP37LNYS1l_@d%1sE-vcW5+Aw92NgE|Ixc%Oa`K(!K$uN<7~! zGVhUDmWn@M8P2?4rs67nog(ugnXp&V<LH^cm#OrMSE#3t%9LYvEmiq~MuMqTHhbGd z=00r;RU*=w5mb75x<%&8GE1wZX`lJ3Oj$(Ez`C2Ov1AOazmkIn-Z&3D?Ey}CU*=%# zKREDNY9N{U7`~6kVK38Xe=g!HhN0F$cb^QDjMb3qLHFI_K$Mn+LBF9@A%pG#4!XYp z@;l-S5T!g3e-|dEHt2VBNlO-cG*s*{(vq^+<E45r$`f<mDiFfCv<;=u(?h5u;}gu9 z!MpaMb#wm%S+&gkC%)T(;JRoOk_%>oMZ)@HE3BOZgD?>%@<q$HM<%>|Es%2JkIHST zrnZ|F-fm8O9qN8)UQX5|Qsg;V`P8_$z&uo&HO&cofUiqt&15ytw=A<}Q@^xiS^~2w zSk3bV$gE20xV!+FRYkqga)&@sWG(#=Y|%;}EK~89I1LaXA<I68D$^Dtm#$|pB&mYI zgQ?*1cQGThc7QhNU^%r<_Mk&qr(BMv{)-rNF~C<7$~+WKvLPlU%IY#qldlNnZe;$> zKpDs=v_NNhwt%fn<<H1`pHQfUN$;Xm60PYXmsa7dj=f;4_65Pg6^TQ|7*U)|D{<C_ zK>$-hZ4_|E5+1ckZmZ;iLsn<}nP8nZtgM%ia_0y!Y}$Po^RY*;Q5ZIzqaUqAbT(}X z$4<ns4y&Nt5$B=_v@*ehdzEaqoRkm9RLe>EH(6>qDW8ymmXq=yvd?l-J|nX&C*=rP zY56U_jUwgU-#21=kAhF5W*GD8OT^zm4a#=Y?bMuXH(4qO$Ra^NhDXBFxu}(Qr`c@> z5ND~+UQ4D(1_?s8?<hsd{K;NNrU(mlcE@;3gABS7o84K6Xxcwf@w{QsrrA4}4w3$@ zC8$)I)RSmGk$ur3*y3v`b23Wsmze(vW<&O#e?XnmiZH(l{m8!bl^H5I0s1ccibhNa zhQ5VJ_SNGmbSNQT`&S4pLtn%+&c5Mx6rp7Nz@gOj+ulWm87nXavTr9di8t6hVj=UW zx^OI()#3XsbaA)l3t$a@-NJL+GMn_l@OLdoF*&u_qy~n+XGtYNm`&<o`1=+sC9;Oq zA@QN*T(C)-3;n(Te~FuFz}sOA`pEL*RDj&bUZ;bSwh%mf9r`}}sHFt^*TDd3+wrx7 za4ux<CXDLvuPyJQiMa&6317E`z_ei-F02z4z*zx&?NNZ9CNNi?&0w4L1%UX5@&SN8 z(!ohAa@nJ(h5^=D@rpzoh9n7piUflPTHlCMBu)mXKnE)lbRTDUmi2CMiTf}g@H)bw zJ|x*up~$8iCc{Tqzl6!iEnN@zMuU#T2@)?H)+~%4H}_(|ua2P8PR-4;UV(YTbnXHC z_Yriq5}k3@=`dB8&R+n3CxXteOMx@Vx*9W^215G^a18<=`EKa>5tpM=XgVGmoQ-~v zm`sOa(Zz&yx*;Zo<3U3g6Bj3xm`tODE+(_)Ah8~GZJ_$xsNE2g3n8xB1<2l`gOa=i z*Tv*Z)I9?r?dSN~OE~Kpti+@gGpmNc&*JOF5Lk)H3}}oEz}F4}^iKkF<+_;Q_X7oA zUbhutZN?vi!^K3yhJZ;-1RPHq=p=M8fgm!81pqbb;BYZ1Knu7Joq%s99O^?-A=+bz zi5rudtGNX5YYjRQM~TUGz~{Q|1N_klI!a8oEmU+~1N{96I!a91VBs>IZwU?to7<zr zBrXXzw}^AOfREF0q&Yw`5E7I4@rghi)<VnA*f|yqZCgn5uVc-hi@82*J?9pVLbTmj z1afH+i2o}@6BHhfg~E8I@C23_P|#qSop2k9m;&(~OW7QvAeXWSF)P(l#?k(lGIBeK z_{Ql>;rtMVN5LpXfusFXU=1C=7ZVO`csfL3D26~$;AsC8ZbEBCd@|WP!^#rTAk~Wz zAqpJrp8`3SL>dW38YvO6z+rt91G6AK?u$$WadCfxj4rUpJzvY2Pa|Nr+lc+t{{?p2 z+{GOH08=7<&wQ8>Ckfg|+5QfaGAeA38Syw9UGzSQJ@s~51>{1;(@~YJ2Ba3+GaknT z9XW`IEVAdMeu5S5eZ&XE<zzgMFl8(3jGRmYr+krz=s<!B+cvD=IccoyZM)F@oI!UW zKTa$rF4NzV8hlyB0xjXrEFqT0#rrygBI8q#&l!9pKp966btG8P`-~r=BctN;5RHEW zns|TiXXGWa-I0Lx>4>Z&8=T1fiWX42tu7t$uPL5x`y~qHenasr+dZ%YbHAmy!*)7) zm3xfh<7(+PTdrVVOi}G1RFJE2qP+G6DsACJMQt3qmm9~4>e|njA`#Dt+FH72nVZ0g zm9>Az@aNh!cm>3oS_e9jo1}S>SX(=g&<1GK;I7(|dL+_05v-k9heW2<4(DZW?N9KX zJ4Cw^UEEf?eH9WzwVyz;&aK^HMIuXE4{F<M=}vO)2<=QHF03si0;9D}D7w4$R2X@= z`5GO+Tv_{Ptf9FDoVcO(Pe9Hs<iu^Yf2BkbC-&AJphU4&hBEipwh*IAxNVQreuLr6 zovfV$geOGC0kG#}8x6$*i;W%*;W1ujr@56z<68IOA{=&%&}er=hlx@R*SRo0d4I7` z?kAK>Ut*bk7zov!Pq0rdS*Vr%lK6|bq+^Xl?t-}Z98Ar+574>1_n8nKOC}La;?-RZ zdnNBH3za;Ta`{VD)P#&Q!mXpHlJaIU7M)~rS=Go~qCJ;Ebh;@)M5SKTJv17y4u;W@ zXBccAbzncYiOxY~a~evp@a4V5xpnk(eO?K(_bb96^_@h_PNF0jL5Hz*%Q55f#xWKh zok~VTpw>NA1f)D3oEd~fUm#G0AdRU!kLjJajH$F6R5)g?kjU13NFDxwn@Gp9W@b7E z1N1S2=%|)KqHZXfnYV<wKqt4dg-lklsR}bHZxbWXnXViI1)J6gnAJ)$KnJ}^6p_5D z8$}IS&c%j<LWsLbltlMxfm`<=jlqqKMQ6j2San0FbsmP(>1agjB&j+onRf>x(UEef zg$hpR#d)VQoQ_r{oLf=%7K!%l4Ek*ZXbf~*UOqFOl#0Af#j>denC3>~gVew#lJBnx zi3OdQBN|I-(AJUY(jj)JQKGR7Q#)@vLFioD46zfn6-0!Ny3N$i9tFrlG%nN|Q<*wC z#m$>zCD0C|kTHNslm~9-OcP>xutSuOwo%m9jX5(~ZkKJ(!Db!J6DH1fN)_VC)Hb`V z77AkY0E!Q=U5DO{PN8_Z?cX3dI+fysY)9}tnl(n2?e~!5(dm>w!ge)u+2{<4J8XVv z*3pA#AslDB9<3ccm_)Tmq+JX`jn522``@Al(@8$}Of)v3NS>D%LFf7*M(_+1je}tN z=5-KtI`0p0LxEp`TFE<&O4B`n$kKJ6qV~KMJhBfFoQIcV%r-T=G>VOTV6f#qOxbjY zAXJg4TaC?N-e!#qr6UH2VqiAaT=yQ9_q?qd*<y6#K$c~M#*YZ}SHhY?5Q><<b)OLU zml`pQ{z4$B)E3y|Uxx(M{e39V?$XFipxX<PXpJj~u|J@;UlU#nWr?~>EPi<o);e_E zf#<HM8%a`c;as}?Ac+zyBx~zlTLO53Mop$`5vI0Fs&CS?Pi8pXm*@k(ZV=#U45y0} z63(+qmOq)wFXRbHH!Qe*=<45+o(OU_-MCQM^L~L{Ro;#CO--ar7_z}cP|U-h$a|8$ z2}*Y}LfsMb{s<oC{er#;N>?__Wmjhax{tmIN;f&oWmAxs_XT|ulpJTFvWijnQ~+h0 zMrQC3EcFu3!(aC;=0@HF8aY_l$wD-eScpiXVe`emO5=MQvEmVJHPGlUL_rq=+ia{Z z%j|TEV3~dBNkXjP@0Ar3ggAw>SMc`&%~GF8IHkZ@pxJNDq9EZm3M}!%R$-YTU&k^# zT{l=}r^^9pY<#BMwt(*o(&M*bW?L`B&<!c0llqZE%Kr@{)JKQXE9`WH59<6abLgNt z<IgK_UX(|MPDT-SFk?nvO3_O}X3Q8etTW!B=vXp~GOUohG2^KJ87UMUPxfcVjTqT6 z6KN7;Btj#MnMBRXc(M}FnVh>n6VX|m`_}|Sf5f@p0&C1Jj{XI07@PGi)pj{*8#`<e z462NHR53Pt0!42|6=R22P_!709G688on*WR+;PKlD4GV`aoLk8nv6D#8@`aD<uG8! zPvpLJV+|QUi956}8_|63MFIw4d?B}?jBuxL=Qj{;8Ta@_!Y$`+#uM%|?!}x_5S`0( zM-?JEk16be#EhTM(eY4y<EuGZMYzkDu7hyvnZl0<w}GSM2)B`=zXJ!xH*vAwQnZD0 zp9Uw#`<GLPUIQn`cQqlpz>>ZQTw4&Az5~M^4{~D7gpz+lo^1;u=@ZIGUkcj@=#L5I z6t~;nM)ebBQ9Rvt1%`gYT#9GeULK6Ni{cL3d@4JS;^S;tRCYeai)?RF*=mZH+g4(q zJ)wr;6}B@+BEEp))i%2AK4Bp(xV5$|6kkN~Wwx=9-3d!5US}JH(VI|9@p{`?;P`|( ziZ|GjYY}gtc%$vYsfeFS@#VJbV9ZT8jp8e8Clehv#aG%+B05bJKgHHdbUYMaWwQ|- zFU3!_okw)qDSn#mYNFFY@ztX7?PMg*phnZ(0-mVy(c)FVgtnfrWe9SY+36NS#`^K_ z!8=G+mf7=>ed-E35m~{8_cA+qf>+qd#lB2^-|3(nx}31cK52R<SVb2IY!~L@I?W8$ z9H(`AJH(`!6ps@beqc<RwGuds(kIQ?l!D7%2L4=<1R?QV6t|0vUSLd`ccH{zJPm9h zU$CUVgcOy+UrKS{PY1@N+WUc1l7m%Y(rD|ah%d8$iSO0a2D;I}K62?OuN#CBom9(8 zJdZ&11^fvJP9N&Q%$U?@p@7QL{RfHASe6cmmlj&O4I$at_)#J<*Ak{blo>=vCatIL z&`k-6SvLifV3N~HdndX$5o!=CYWZ~#O%`r)f=^mzC9cxl3ORaIg{Yf_!Jo8=-MMt% zLXrL<L~&BRmDozxFOsNc{t|V6fa08Vg_TOvl?*PRR)()i0lJ9|HoB%Emq24rfc+40 z;%Y8R_ctQpYqFq_CQY}}r4GK*7uk=dRwB@Dq3a%Usc0aF*Q6(TRbNv;@uxMq{*gr5 zM>MwDkkdm9euOf)DHOxlkR&&LOz^$bIl3hhf=l9!PeOZ5x|j4x9Hv4fxGvuba0+)P zTZfCfvnL_<r_6+DluH%K6;9d#pQZwSon(Rm=ViTa2XTFcm4uVdHB1K;jn`uoCUuc~ z(oqLDMKo?X37OAOCLMf4wy*I5thJL~pcR%5MEZcQqRyY0i{8;eNeC<&dx-8<THrqq zhb&6ZAO27UtY8<WPYyIf{s{5|2-`T!u>6zA0fOoCTVUjmq@vBg8-@+})$yC5RkCt# zAU}g`B&L7vjT99&@?YoPL>>pb%>i<`w~|<;V|WUXx6Dp^clN@N=YYL1lsgs)&ZUbt zoI6ltJd8>UmQcgil!I!)XO>?fo<v_LLOz(r-(xrno~9b;a*hPmO^rw9=R9@)7Rnuu zRkGj<&ZVn661Q>sDad`E2+&0yMc`9NUBR0yfpo7&<-UYbFL<2^OxJUhD2B#Rv+MR? zRVpauc}Ew3q?j;iZgQh<Dc}bwekOrgbm>df1t28_7g$J|=(14cOp(Pqh6CxJ6sMa+ zq2j7}BOvYtzm&ZuI3dbOPE8PXcO$dl0K>mD;1omi1(uF9*#|6$1$S9!{?OGVMf)>i z$Xm=1x~U{{8+sa$`yS`kT|#}Y<i6AGCGNXe^U2A`wOQ#R6Sr41UO`OUO)a8pO)7IC zlxD#tlu4JILOl~}4vhfhJ_}uXl9jI6OI*m+=>C)JB27k7*NXL{U<|i~?nH$^QZe#8 zU3LFNAYD(4X?zT;TEQJu)=~|0NhBHbyx?qR5npZ!jok`6T{>D}r&~!Y>~!+C!d?XI z74|zF#6Z+8<(HmNV);!&F6zKH{UXo``@M*-uz$(l^eZYWIR6yJS)nlL2G24(T~taV zxd4GNSbNu0;LhV1Hi2ei`WF@b3Uw^A-;3`wvI-j?O8~<4)L6O&ApIJ2NkB9%umiu0 z936BqKtkvifoP=PDkv(YINcRc<M0F#`Uw>!PqWNSBU>?z<YA<if_X0D?#EozwA538 zGCBio)6zF<SnkkEtr~fW1W2N!RJmyCIOHs|lUsR(eHW-NvnQfSD>!GFojlDe?Aw8p zM#BJS6ay*SQ;OWkA8yjFxd*w=E`WET4%43^);%|z?G2zMRBhazE6+~wu1AVkV%>A; z*{$u~PTcFJq-9S-YX|P>$oR@u<PVhb)7t1Rj5bQ9s@M9VFX%&^qt6!9)9S;c(S%^# z^V_q1uPTgqh0)rM^DbGuqP5$I&-EQqi2Efa(dL4wsSPI!%DU&lvytl?Gep9!S13el ztfaMwXsLLuuT~+h52H0s(t3z!rO^Pa+X5NWoJ3&_rY3##x2I^=42QV3&A_D7ifL%9 zdtThy3htE<_pE#NZEfu)W|qq2;jLo*s}({#H;}0a6yT3`O+Co8w?K7iQ)Nrr+v_kp z_0(F?(TPS3Qk_SaRk_Yv%jE5R|Elqj7i$pKCVl)DaMC%-K`GJY!kSfzF%ezYBK9fj z*EUp5#3Lq);F`v#w|g;CHZX)PaCNQ4+I=x5$e6&-5t|NaE7bxYBYJ26u9*z%!b_pV z-yu{LU8@kg70o((!yd$*gj(LVZEN5f#81XP=h)dBUPd&3iL8Zc+IDvEEo2p-p{R;J zXG5N}(WwKIt*OIP8;53S>3~_LYF7KS<mt&8+G<52RZqlOkVsC}lko$?k_jV3&A{?x z^d&{eGBRl|&}I*l8J(#!hP8ldVmwewX>w5nmirK+L@@{q7^;P8NeNMdeH%*59#)(@ z10>SMFp2aOReMH=7S2K=>!v;pG-uWfq$W}JAR{}zGc}Yw*qp874hhes;zP|@RGc!i z%$d|)S=F$}Y>xtDn*lWgLnVeYfQE$|7XpkZ1nY>0C&|c2uw>*kL1UDK+#I_Rb#OGE zaz`1}B-4=Swd05*G*Y1|PBv$o8<p1=ppzQi7eoU;1~1G&h1ma_2a+<zq4{>|$M_<S zjDQ?W7zk`B3D~$zRWbq-&`ex1I-j#xY~|n)_i@_+{V|wE)f5^<)gWU5k#b9d=QN<; zi(~-qA{$~JPee<Ue8p2^OT()T@oX|$%dLUKDUPQ}%|LzLl#N4AsDI@giH94OBUrbl zaRfH&bed|iYcq^l7hlYCa;D-PS}=PUb!wK;Y;;O*_UuqQscRMHLWDyNs6-~ShbZZp zRedng!a1di`y|;TlAwz83}UxzhD*;P95@4wR)LxNgun%pkcdgV>QMiPzcr!i%af_) z3-UyA@+_z*oTR29ip}*vr5`#|sl;MUtKk{EWE6BjArO|TA}|kX&E&8y69pQ%I-_-9 zqhxe_7PNGO(Lm0JkzpXBoJ3p>iLi$>)QWUPbLDg}2~LbEm0o4g;-YXk&^mCMVmk6j zTdp3gT7NpNEpDz&jft#njnRO3nb8!=_<;riARaX9S`X$%fi{0&hL&lo$Z8pQc@=|O z;?Xivxfb-%iv-JN%|J@FV%SW{w$LaNbZs)0h)f&R;geA;%SHpx2U(M<XMF+0wscrn zUOUxIvM;OaC_vJLB19+ENJ3P~((K2Zc(`F*6zSxdvOz^LGrCn2vn8OSkk6os+Q7q4 z<FJU~a2+eH_7zqP4IgCVPb*yO@9-A3dp9+8wiPzDxB0t$!L=Pl&ho-dUhjIG4HfnT zx(j`sp7x#=Zy{c7Rya9IR$((<Nfw@umo~bml&Uv4wsrQ%vQZG3W?_rBxu-3hf&_Sb zgEAYhTq?wyoC^C8o~$=7ym%ixYGYw=a~F)Duuerq3`4;M{8Fbo^tPn}4{j2Jdw5A2 zzi|!B73P<#6|5DokmQTjS~s=Gq-PVozKu}PF^|8q)z=09#>Cs}@pjP*o!ni)Zi!2+ zR4;nt0-^W5DO&uJsUXAJ{hlVgK@N1A+9@9ND<U2sfoY6H_<jRNk(RXRJySk@uT?i* zJ{4f1fz5bBU5DG--R<WV>u-ZowQurJ1BqN9*zWe>Wp-36zc0?s3|5r=0rZ~Gcyy5o zx$Nrp;^*jno!%C=zbhaSJH4CS=Eg&kJMnt1ZoJb@zU>ZZ$YYeS9CP)O6gmp>h(qpY zH23)0gZaKra(oE9_bccQ0s<ZAc6T)6eP2N^S!P5e-R^lci(C=}7W({%CPIN5nLL)r zgx<$6_jo|LL!#^b2f7?2)F14W<yA&cWR4^x2U5nt&kpo{lfRp!2SS3PXov*5=erI0 zQPofb(H1!{`FiUBlsOVg-0EubDe-{OY0>v!)-=uD^ZxrE2uqxn5KOR-vWy#O88Z+` zYl3|S0!zX}^o?u|TpZZ1=R~ngJWh!xt;x?=#tqtj-dd!r2^QQBqr%(iI~@JVo9#uG zWT+xEL*L3+i?j!28!VHkpqB7Heg76;pjAv+2qzA-7dAX#&$2kvzJ0)c`FpQ2W-F?( zX6%M(;kS&}W?+k~X`4KOuIBFbq8;qQi}mW=fwlfkU4FU~6ytjeoAHh~mwHFviN1@k ztlQhw-sJJRIy&&0J9<Cfl7&<862;CQenBJ1b^5zInnDw*257Oo*Ui<{?!pV~dOGPP zbj9+ebWIz*@?~?aKJ1$PvAs~Q+`Sk&0dIvw7evsHm*vs>C`lD``h#wIo-^3t4&ad$ zbnW|mO&vy#G!Us<nzQr-Me8PCi<cEJJ;HIkRje?I{w8(Mh1Pbtn>V`yT^Jas1)7@W z?w}}ZZ-*xy5on60UU=o(uz28(s9FOIoj1c6ziHF@jNc66&xA=1%w2-=TR5jpGcOd3 zp%6?j_vGwZD&J6yGS@MS{-Isao-s=CWIUtd>x@;5oh29!kH2d(4?o@q>cM*(@n5*- zFIrkvxybDf^fbF`z&AWV<6hp>-UG&B;&lg`ds@+MCGUc>96g-@UmF$!hnke82~iTZ zEZ|+I&Y~8t;)WO1${BRxult<bjpe6BzIu~soH&U&rBpoD_l-{Rbq2iML05--`)8<A z!dOb>vd1Itfbt3i;SmJeN!H!a;WVpPEiv&bn(~NEcXV{Pe0XsT=JNlrhK<6HH&?c{ z`?2nKx8cu=cW1`(>Q-m5yOOLP_gbifZVXH9|K&xna#%}ae4Q&^Ba3&PVsOLlDG09Y zTjcwDOIZwQDX6P=qR!U#rZ!CJ#cnnP_%)%z7f`mAy9NqyUPn+Nx&5uJq@7~n8F7g! z)de_)_w~|3(C+K-L54fX01EnB1dFMgS66R0q%_=u!|P0g-ZpRd41}{}5mE+blWqp< z$v*0iI*BGa%a}qp)<>?XsWVv9yr{Xz<??K7hA!h)VAWd;wdBQ%T(Qcv1=q&LA!kWo zEnbqm-i<Y`6`kCO#SY`p-P9Qne!TFQtX-+q`?P6Bv)|u7$pM?tJ8RmsjimkL3P~#q z-YgpkmK0;)uul2{Eikreu-C`dN{nMa@+OBC)=$vi4wgv%MH5Wpy~~lKg{j#T#A~8w zaAa1f*VMh(n(HjW*tGZpU4GaP8wD+^^w#Ith)p)k5NJhuNESnax8q7Xp;b*2cL%LN z|1&GAl-`dmSJD3E)2YiRI^P9rJP_#OHl6sIGX?Jt#!^Xhmpa-34GPl^T48CIx3j|! zYsk~h3p;h$v^4ZtMx~Y`jf2_BFC^x@H_aScX=pbS+n|_QDA!ebLAk6gMwL1RkL<$Q z>rc)_z#EjiCLZP!=V?d<$7)QJdHfw+Sij`3kUDlwcDuv2^v;s7Bp9-^z9?pfNFnH8 z8KCV931Rq%7o!0Y%2%JxHC~r<iZp4xy<K?wd}q*Egyo6eK24@Yy_+5thy0v4E77eE zwf0WYZD&?IC%R3V;xWuqyiI!({84J>5@V}kfB(5@!zL}Ym>6SNd$j0=kCgNKGuw<w zjdjZ3(G34ddpq1ovDyem*Ug$FT5A`2@B(|6tA46`N&OUe4K@RutWxqFY4bRp-VJ05 z@R|r4+E-t!V@@$ve&yn+sVDv6Dp&blyf(hbjjc0pzhf|3%9MU2l?_*bx7`c34ZLo& zm*J%Y7D_kX@J?$9cCubtouLz9n__Bodpn!(!gzYYJ2G12UYe)7)3k9zdrOHN%us!_ zPkbgByzl6sX)agq<0zFWXla|5EEO3ExziMZ6P|_G#9=KU`wq;)b^zW}VYan-Een#N z7czLU!r_d$sYS4@)7|7z8)w10=@?sLXjt8C0xJSz)9uHg#iA0-^AW8NZSBb%=Qf%a z&uAha+rFxWOodjAQLMXmU9f0G*iS(gRFH;&#Fc~fGJt`G%>)cMXK{IKJeu6v?eAo1 ziiN}22q_~)POVsI7?a?;D<G4O?q{<AV{9^;<XG~c0X#mef4)|q2m4+2bjKu5=&i@F zk0%(hiAF3R!$D3DdBj2U1-nEVxejj!3>X@rki-?2_F24vPdg{*7AOG>y33$EQ%M4o z3nSwM8S~ys>C)md^t-Fu-__IxrKT%Cx3VlZimslZJf$G^u&*=#McC05n-tA0HLT+k zRX@%tG#lOR*e}5=3N_uzd)5wt-%^1p_P}GexuaQbMMBJT_OW&KCWLVQ3xj<IgS&iQ zk9U(V;0>9?awQGX>4(Eu(j(Uvaut!a9g{WWEMZ2p`ntgha3N-|R|(nC8?lZxgR#<; zD9D3{Es|9A-&qdZ4K{s0U80q;Lr6OwJCKdX_vU&!n$~;s>2#+hU(PC4e?9HO=`<bf z#LDvMvKQMNkak(ATW-loHa2&9aQ3wc$E>ir=~T{efs!E+TP^xNNjExTu#TL?p&6%U zTU2)>9FbslZ)^8=v1MaDzgR@)7cjNRIU?6My6Ok+K^Ls;hSxB#sR_0Qt#Pq2tZR|< z|5EADoc=GmAz&8zP>FuDKyeY;8m4Ed!K4kPhXPI{-m;TAmmP>Sl#9I^&_WNJ$I7K8 z*oD;Y)qO~y)zrSJX>-8s-OvNG)xD}d2qU2fEUAavs@Dr^2A+ES_!K&M;$|oo6}Blu zrX;l=z4Fl=fz6`D*NSBmx>z~5VEIwERCkVJud-f-6YLD^K}nukgFaZ-SPl7%AeQD% zk<Jfl<6?JHOG~%6Rdh6WliZM-NviKy=7kgV;I>-V)9DH7yL|HZ9H)oUD;XwU-|u!0 zE>G?k9lv#Bv69AX4CCDAJjXO6qBWV0dw7#q?p99UjecK?;rW%0*cRoGZAaVS>c>i| zpKTof$V{Dh{BI7<VE6RWR)%COa?+KlV@%qZ5=IQ-QtFZGY^N6%mJf%n<g<%y0+x~B zH3gfnnG{>ir-rKW(Hy#1ZuB+4q@=#TT@3VQyMPXcho6^R-Y^}1GQdV=pI2+p3x_oA z4#|!)*>Ev%dW!V$(}a&jU&OG%kh}31W*B?E<(}2W%cl9<zmLsY#@Z_oaMc;R|7b&P zKE;iJeWq<SZ=85rNn6U0V-Qof%^jed1AIW|!P2AFlE{fu+#b|dtF49`ha?0SFnHaj zBYW(8aP>l;dndXh(6{Z!QBJx8s{ezy7<gq`TUc#;M^_bkjO7@YO*ZuSW3*FfH$k5M z@5iBZJl=(zd0=Cubj*<tPVS=QUdYhnaP`1P5ZmONO16tS&hTJbZLNu2F4Pf$-2LNl zj;^dhbIOe(+6Oa|Wtbi1<Q;7m9q{@E*ZO+`O`R<Px&jhgFQ9D6xvWfkSRLG>*l3w7 z_`XJ>JjVJ?Y8H*5vjsP{@y*nd<E#R)8t7fPBtV>%?s+(x@eED)ex0T}9392w#uX3J z``$M50j~M5lzL5vi%soaYn#Nz)=dFVQz!gdv{(dT$?*mtrX|@~X4*n4XM$9DR1NIe z&LAB{OGls_y?*>hIBYijM|2CrNsVszw(=~9L9gh?ue_APVJ|B$r@Kxht)(<8<lKum z*d%pI?jt?~Y-O)aY+^UHt0%A)mEl$!7MsWmXzV8VUtC}k+~!z4q2-<?T-U-LM6Uhj z#q@i$bd>uuhGC7emBy+M@os8iFZvwlP552-mIQ=vN~zr9de-vl`oHOpuNQ`!JXxcr z@Gh~F?p7nw?Q2^bR2P{2FyFmR9X#^=T}-3vXX^fkP__z=20}MhV-rPvftR<U$Q+5q zti$cJ#n9+Mb^inAR%qAEj3%?*q!jyDU*%*2(as9Og^LC4biHw$I!zldf@^&NoU^kz z6He&+lRW)iL93@7S0&^=3a%~PXCV0!X@Tk1FgxC(?QNXJ<_nv=!<oON(J^P@M5og+ zxnOcZk)ycCS>`Nq7CG`ef<2wynQdOksLz9BQ@3aBOx%;tpHk|`Z*%0saWxYzZ7!SN zio;{i`h2)Mf;dt0cLNH`pp6${{X&7esi)UnY&fn@T^+p_B{*mT--8`pbWJrz2`GgG zsH?VAEsn5YVf1w3=!Na+6Sv=E*ecYQyF26#2{+5BA10BDCMhwl!_vDbk5EH3{1-P? zhpSv)>0D?Z-`@>AHz02+b@_2679-lvdhoy7ol}Kj*Z#?Z;7eojt|(IMeC+hd1KYrQ zU)QEs7m?`ht$H{8sy^>@U`fU(fPEY)n3VNpu*w34cdO6zRn~AFu26VHy}!MO9tfc+ z)X~FNGvF)Z+f0jbZ%keg6j2T-NSlYb9r>QFvP(_p)XM*F+)3jDqyX->!K}chO&<7| z1PZ>ch><aFl(a;@Q4)*pHs)D}u?Dnu(M?A>CBr<zHAA$Hn1Z>?Mtobhzo!e=)I^(s zM@OtN&hx3DtacN+6XnE}h4jFvJ%KWT1+kv*{q^CaF5&Ian1-cHm!W6T9l^~lO`ECb zylw7d#fq(A7mH$(R=8%^7#8xGpV)|C<Zz=I+td!alF!C#gwpG~&KlP`^eY`F&TASl zIX|G}dB~LcLY13W`R`HX@;QD?ripIg9Dglf_bL`G?5oJj4)YL)c1_*t!o%@A&yc{m z>~f63bd?w4<RK&WoBcUDO3KXFXOuO|7imHVrqEv`S+U-9GnB!1WEXBAVbR5Znm3zh z-ry05)>gx~#*zUcr3<GU1IDH=7A+;$+)_6ysaPKYU^A7EJf({lPE7q~k@8bu`wQb7 z5Am$;^l$2PWAy+6)(?5}s6TZ)qs8BYt@12V8cJKnv}dLZ-h7YRMe~ZM(}_<{2&$rD zSmQdi(ApC1grPRJD>fZ9*yCV@z&gQJmwH%<7DaeaXunKbtgT^>l`s%03u=p>E$a6` zt~AUIM;0cX#KA`8tG6*J1ild+`B0eQRAD)YiEeCDC)Pox4Oh4%%VP@&FAPkg+V`Nv zxG7A|KNzF|zk4l=4{7qpptjT_J+uU1-^iz`bPgjchw|q~ubjnTDITiC_5>zFji+z3 z<b}g2QcvJIE2#?UhC(l5XjbIq4dr#hFXYkXZ8GV|#=~K4ldqjT1E#x?=!K`Z$#jvJ zAG0IlhVN{LZ78DO^}*~5otLxl;>6H&>9Jp}&4OT>pnaC^&;bQh!$w`1VtWa*MQ$NT zS7Fn*9xe{b!((<h1*6;M+}$2r>hAWad&{w~weJND#aS|$=#auVgHTsV`+Ky6t*<B^ z$=0U!0F-EKqdplIrVQUy3|ced#*Z{b>7qaW<TdS>gmE&vEtJdb_`YOZVTdAuR6KI+ zVJ70q9x`%g(dAj?$2`$_hr2siE_BykjQ$^8v*@?JV-T;%lQG_Dz!l`9XLF6GhfjQ9 zb^A}<>OFA+@Zm96Omj2()bD%EkLJIA;=%`}$Fq)OTY=?+$1#a#DIayCZ4KQ`^kWjV zH~l|cVAth9?rmaPM)e~Zsau%yF-TLi(+9GzaXtlGxxJ^Olk8I3JjJMPBD~E?6UNkI zC!2lYK08_l;d<m}-X>0@)e47aeEo{6h;(EalLu-GmzUHm?sp>*_DC<?@2AIljp}BS zClL4U)y4A|8D!j}pxcjp7p0!=txGGVtGy@EKNo#Y@p5XuZv|B-pUsq4i%xtxm-3yk zI&AiE?^d0{kogJ)+9IanM;=<SU=ne7CAzz@p^=XbLjlt=07Hhn0{qJzNMTT5K*^i& zcz}!2MY?UPdyeJSL2V=0ywo|JpHI9!@h*h+LdKxw&kRLlT|wn8RF`BjE66F&oY2<? z-VV|4am3beT|Lkq*I=Vp{s0ONymihQy8=3a#X*U;RUYWW&cN}p@(&(wKd#Jt-Y(Gk zsXLi?sf=;0EZ3d1ay_SRMA|(1<1@y22Kb51I0USd9DH!9;l~tVE2C?MACPy;%>kHD z(sDPgG~c5O1yaLn(22|2WcJLWG(V|`@d&?K7WN}N|Mdu~zu#66FtF7P_%IXud+dD| z-2;V4yP-xyRx$6Aj&r3@&Nkhlay+qPZzkV^jFsC=LEh5fxyU;f_N>IHD=_Nx(-Hi@ zq~ML1F_7vishrJG=cJSxI(9FC*di#E!DK3964XB16;&|8fvsDu?07|jb=8SWq^?M$ zvg#0F&IM%>%Z2jzgIkLSgy8B{8@%J2==uUe5+Qe6>>QW(;$qW_xZj7fGLlZdXG}kZ zg4V<Ai8>_enF44uxu;fc9wptL0L~)t90i`%!bq{MrcEq<p2^{MZ*1Zpn{o%6+QL(@ zwY%?+l9)vz`s|gLSm~OR?!ZvTGsm-yV?3<uiur*medq8U`vjLtjrvV4Fdl=cjvi=S zIl3W$Ut^IDF{}ieJnS&zfi}&f=uC^jNN~CM@&S!G{}zn-*JI>pA5WF(3&wF;7vr9V z?=pp{kZ4_xnYg^C&F&jHl|cQ3{83S!g^~{X<FF$}G36hCAtOcpnjD^0F>Ed}8CrbZ z0vZaIr+&E^Dr+OnoXP4Jlj_}Ve!slwa$K&)+D7v9vRXY+W|q?34Y?r3vY9J^eV}v3 z-wirVLHC9pAD&X-Tje3mDIdv`*R~Yf^k;@+sMpw4@iCWR2NOJR(l^=BOrCz;(8yoc zAkKtj<G<VnkPp1!r=VzE4m&sI4IVFzeGVpZw7>_kRE9PYtv)aIE3t{TX*5C&?&p~r z-hi2(|B2PC30<64wurkG*FnEC)8ylC%(Pg{Aoa^7rU8n20us84OMLFZPLCI-dN?%k zAd1x8bPIy*#)wDIolcW4mhNR^6(GrE>t6qH6j}5{rw^Hg@`-p?9bE0anZP+!D{V2! zJZ$U0!^o}JXVX)La-zgmk>P~@&f_AV(Bg5SEiNvw^w2#P9MO<D17kbvm)?NF&+*gM zRnpB^CR^pN;;A1k*+^RfFP=supF2%2^PK8WMCq|F<sQMW6*%4W6JcDQeGD;7e0KTq z6qE;h)QlL&sPhrIY{XFBd?}7a?nLD#mLn+~=uU-k7E^}}g(){K5x>ZS`4I6_i^2`3 zi+<GvQVq`>9VPNlK1tnh;#-3zdgukt9oWV}zq;KU(sKXpS6W)5-l;*eur2S#ld`xf z!e0>V82J;;D=7~e_y@*{nQW-BQB_oI7Ey;!F5NLmAs-Ov*PlrHV*&E=JwwxVKWh1j zk5w%48GTPgYJ*NfVjP&sye*D(X~WOqK|kvbTyotqH^Og}OKTbrV6?332?W*h9ez|O zuS=5Fi?9n!=Lk@%;Xia|dIUiJdSDDgY&yuLriUc31jePSS3N9yqS~jp2|rX9qhNpo zVZZ1?2XXbv4tCGMKsWG6hguqSuEc8Rs>yQV0!<6GdO$ALo`>B`;45s>sEtV>n}1Ox z2Du3RP?y}%D#yf$^X0_MFEXkX8)6e5_<jwKm-;OobsID67Y1pb@r_C~8$(YV(^3_F zCsx0CIm2WYz<EXYLdl;<PkqOt0pa<<0suO^Hx;d|I2c(Q@(eS>Bc4K0cV%K2&WJOs znC%iZv2oGI_ziV`^E%u@=d}Tz?MNM^JaWc;Vzv#t++nV&Sh%O36_Um^KYt+H8-q=_ zkfoazorZJoM0J?%Ym23Ic%mTopRI;q^yB_x#dqRUus_=)bny4ze_K;t&ItQ)O;*Hm zyP+<iV0puD^oK1W->YKope34BtX%f=A80XN%S7*`qt65tzN=pFBy+#>w-xUhD9118 zM}DmMS^b8n`Bo8(nja^wjGB+%<j2bjB0pCA;QnF!=6>YIiXYbh059o?{8;g``W1K~ zQ{=~r-_73_H9tu>@M@6Ak5wd#eQA-o)WiYeaMb)1;lR79B0pA<DvF}!r->HzVk&bP zE8b<;6*WIY?2ekBDGo->A1JorT`!Rzs~98>j&MX~qhEu?(Wv>5my@F54;A*P`B@?> zCmKE)<A|1@jqGUoc-2>wk5%B6eNjGEfp>UC`B=rsD7iF_IsN22`pF;FCm(O#z$+2{ zeJm0{Vy20{e52v8Kpxga$OHA1@^6U9FHrf1Bl71m{cKS*%7GZaKZV13j`tnMGmua8 zi!vF___~1c`^v*lksqyJ_cMOF&|j!V{in~%_|rtT(BG`4=f8t|syFi0Zka%!{64R4 z1Aer6#{gdwnc}Pnc`oJrzI+CmsB|j0VSVROJ<}N`><$MNH9l)pe!9xX3p@C87U%bs z|ML}omcrKw?Lj`?V%BGV-K6p(=i{%LPTzU-9P-n}FcC?A9aN_S`H}PMPr%PG=@Y!Z zgFkO0KUc-g!8gc{5D^BC;(W-h0_t!2TL?WK4gbge<R9oKe**M=G&;MX_cKLbJ=xn2 z{w4k7cY;5eB>!q2O;nvu07IhHyRe^pUqAWV`^o>3>+QRaTn~JQnei%qPd{|%bu}57 zUk-;Xm5%YC&rqf><L2+R$R{~L0duyv7Uj}Gr+id+eosGi9%ee(edO)Ae((=-eyTXE zOboAHJCCED2!*5i$uCEKcnf8jhJNtd`^mq6^C7oteT4Y&=kk8=e~tWH$cb($J)jE2 z;T=8>Rn{B~>?c1T`O)NRQ$P85kT)0z_O!MZ(7tEEoI3ZSn)(JjYJpb?;0+mg1rmNg zx5JIca69=3yT$KrYxg(f7HA6|a}ChLrMSP)(bWz|aZ5qjlqqE(69oxB#?|SQcero{ z6vT5pt=;%BS$9iMM+ZHoVoLFyt}xUnZ!V!9`dZ|i8uj@<0^t!)<Cj+O-m33<UCf7{ zbcpr}5BI#f%Ed0XYsp-C3WfQk$MFQQ+f}U)s^`{G|3i2A=dLKgjj00s`ekpg8&?Pe ze*C&F9@}?s#MQL9r!1*lTr&qH8Wztnh|_+}=sy2sOeh1l-f(KIH*x8_dG)RacSB{> zA{UzFrR$@7DU5zpuhUJhz5#8zLl5rr>#Zs(<}a$Ln&U1mC@$bjBPYIfnd6iX%PCST zSGr3IN(+kdI}r5SYdBeKkM>vrjsk+t68Z1}u5i=y^)+aDk=uozOb#Oz+twYeB1dx= zCE2JLJfU-)u8q+s#jwj)KX1{O8V`&7Aua_p2BkjO9*D+6`DjM}j4Z>?u=L+sa0kCy z*5Jf1RrhTTh7NUNh$4>Bq79p;0fRQ#4NplJ9UeD-J6?t}udd!-?+&kpq5L~Kk-UY3 zLaK3k>{+{>p8^T7qg1#TY;@NtJv0Zugc=|v6wCHs9Yln+*brL!!N4#`Y;`~e!4#af zltht3e#VV@O7l0C9)Nljp>#I~;PVPmjc{{EmI1Tz3N;U$Jw2>uk?yOQDk|ozTv=IF z<8~I5a9e3qeGv?*X@G;ySR<gnXoYAXKaX%XcG6GrVc-IA+o9Z?InWW%cjz{sEdIAv z(K?~GlKX{gUA|6LxiLk)-&bql$d*nliHrP@A-bk7e&HR9W!&iaGK_bIS_&VlK1v6# zs>Kid!gYoa$7dX_)nhpJ@^*KL0$c|07GSLMafwW&@S_w3@^@i<Euw%@Yn$N4ENI!> z33@Wbi7!Lw?kGKEZ%()Y!;^hYR6xbL+JmBi)+JGZXh9o(%BujsA&74tu7YkqFFgg` zwQ3<>+X5nb3e-Iw<(|Z4Hxdyhrml1|4L!cjgMz5I39tS`gch^{h`1<#k<kIe0eSSM z4xr;@olpiU$tTx3sJR)JVs%J6eq=_EgL!&X6*rqyF~w>B4AT~SO8L?KRC*ZcF(6#? z=VT;cni=JFf0iCP%*cqtOb`1wkusMLs)p!cUKn=Y@^b+{a_pF2Z@=yz)58{39_BTF z^nIvGiY17UD@-qM_|dQ*qR(L!!n|cZ>E-bfS^g}?H=*d|b$^>49*O91B>zrFS-i8{ zXus~4)58X?MbI{eKYBfSxE{IRn#$|`J3ZX3%2E5NoqGFKwjlooHBqOh`}y>+RyA0! zUoWrs|2$Q`N)dD@f1n=jHI=6_k>xK!9-&bC=%f1$^)S*s7r{=k17*zRb^oFs7ODD~ zIKI+VL=P{GDDP1FTs_p=tC!c)dU$O_d3~R(hsAowBI?!Y-5gO~_iO4QUjG^PiR}OF zs=Pjay8lxTBRzGI<?o6pulq^$P?tZw5s~E|jwrADQ}yu52>$DQ)9F1MQGT29Q|V!3 z`y<GS*HNBCPEAw8KYLIqE`6N!`t<ts@IwH|C9Rj&{kTU}c^$96^8W#V+N75^{JqMh z+FyB{-cdyKxk-7tU)Zk7r>lY0#Ym^8_v=cOG1ssAkFylx4iZt*M=!638VZ}s8-5Rm zETqqKorGRaPuozK^7Q`eewHkU#K<DzrjNrEr|1Axe^ErfUOqn}Uni%BgH`zmG~sf{ zoQep5UQW->>!<wr4vA5;NXL|6WO>prk$Hsq>voC%iau~M*#~!4Kjn7>WPzg*6E3o@ z1*&``|IX=^<%6fGiX-aR=`{9J|7Wkr0+Dp}aynH?>$*qJqj21xWvW*xu#=ITfj?b- obh#q1E<3V>{J!BW8D2xif$0-jKdI|z<!5{#3wa_6L?p%k1C6A1qyPW_ literal 0 HcmV?d00001 diff --git a/week09/cmake-build-debug/680_validPalindrome b/week09/cmake-build-debug/680_validPalindrome new file mode 100755 index 0000000000000000000000000000000000000000..541c20e0918c2bc20a95894748ec51f431d7a438 GIT binary patch literal 61232 zcmeIb33!{uwKqPmWLvTmuh|@Dv106y&5rGOOUPm;QDQrr<AsDQ2wRqIC6?vbvg3q8 zfB+?>fk2_9l)YS9?k!u(rL=5erwcUwXn|XnQXr7D(1x-!toeTD%*?CTvfR|V^m+cz z|M`?yGjq<FGiT0hXU@#4caMAZ3Y%dF{jrP1f>MW4C8SazjvZDJ1eKyfB;q?y<cb8O z;}|CKl`;TUevT{FI&><y9U<kbut`8<I9bu@P)kT*yuw8b3bG_rheEg*K>0}4<BH+& z$r7$Z7YT$<B?-kJ7k`s@lrM7%ClR_hqQf*LzYcZ%hz<QUDtu(PoVf_0L!zZm-QiFx z#a)@491=E4u+X8-w;uUO&VTijrU>g*dBf?&sq~^l-41g*{VioBb30q}JN;dK1Nj3L zW%*?#1--$7Vy-vwC)$;3o46!mqg288u}Bk)@IPEu_VBsO=6Kw1l|S=`4`<#q<Bwae zCLA>-<#FKeK-vMPm^Loa85fs)NnBhd;iyS+@we3d`**h`E_>mDH?REK=mp;y^`lj9 z9^AI)+OHM2y!_t%``=G_X~)LNFF*U{4S#<AZz*H18NF=u*f(xiHSx=>$U5xD1_5%S zU^k&s8ByTb!@xfn27VKGMC0=jDjW^oJ`8;KFnmbs(fGVI44;RFk#j!u-~zA6&uaig z<NqJS@VRst`kxFVPd4aX_>27fY8d)!hAH><Vd&FQuW0g9zjZ|xiu7s2!1IUU-vat* z{7*r-X=0+tbh$tg{;W}O5dq)C@GMa=%@rm_Y#rb(@QI|K1$a72=$;_S_53gu@C=bc zNd5#288#@mp6_Q%u;^p>C~*z4SU(=X(=ak4<=?LO92+mGeJayM3{MrUN*>MYM(8aa zd|ax&X-b~66`!*dJ;?ZTDd0Jf|JO>X6LiHe5A}vxy|ZW2+*2kzp7ubn%hMZb?g@E3 z!c)_@#?$KS@wNMVL%yEIHOo4KUB1TVmQJ6<MaOJf+t6I&buTY+_X`gap$dPn*VEG6 z>no}0@`p@#u(Q`)x1zow*x+$f(E|gXZeLGtu&cS#AKK;VFQnY78bakBk9T08sHmtI zJp5jW*W>SMukkj7ii*4)%{`t_PqRPNiz2yPcS)~*w@;Tn(#*?>+;ywG^{X1@q5hj1 zLM6Vg*3M{Ux$9B>JSkBSBKevFHI1IeLXW$ljIyHMF_evhOJr_RA%uylLIrOKb@tW_ z)j~AMyp52n)Z>j!Ftf=<TqXa2JHUDzsibHGsef;<FT_$)cWE(Weu2K*?nQ5)u3IEL zO<g<vU9FyaUvFQ)M@X;k)9B9L?H+H(c28TgzY{&pJJ9TD4*3TBV9bd&KlQoY=+z#| zs0Kiw+218RzSibYGrIdaKwJG?p1xjRtMJtJqa-;jmUTAw_WF8}mndakWa|Qzr=_=7 z10-i}Z=c7HL7+>bG)nhVy($`loqZvHu&b!FAL6vu;j62)Cm8U#W9Uq7v2xim&%A;{ zv25eUs--oaqJnv1<?5QHNCI49jTaOb$)u-PBM>VtD8=kygQXFNKRaS^{4btu5P~Lf z%)wAO*AUc*`cJ~;d_)uvA%k8o>Zb1+MV88In5XDtpfsA&2w#c6=kMAMvo%4y4Lrd@ zGp~fH7$@FW=^e+v18#Qlg_++b{-F4ST#WVmlgaWOjd_pq_htDLsb=HVJgDthZGRpj zBKjzMRm1O7^QSWcen8PX)qJe!b^2hoi`kKlsita9KVyL_(HVZo0w2u~`Sp?ou9hN3 zyl#Pyv(O*0z}3>i*kcyBb!j<nfn#+vKWVC7B)i($Fix*Ow5P~3snKSN580k*2J=&G zf$JrRkaZR~@zS4-7P!?uKg$BAGW4gz0@rOoxNZv^4R3x1Ebt@~D#UpfI69{Jxx@lT zhcZ70EO6_Re~ksMyA)-*$pW|9IX|?($C%uOxZ46J+h2d~x4_kwhf&pg-*r}B8t+bb ziRz0EhHNJeRquVm`M5Yyx;xD!PUL+J->KP^h*7$O@*I8r1U`8^l%{4rdWh58C{0ax z^dP5OC{11U=-r&&L}_Zuqc?H7p3>BWM-OnimeSO8N6+K*Qc6>k9qs1y0!mX;9X*TF z#gwKdI$Fo+S(K)xIa<l-97<D@94+K@7Nu#39CdLzgVNMAN7Fc+L}_Z0qk_{mN>dj; zdhAO8@;*&<iM9hs^QY*&nti`LvwGhf)qCGMR@b<CfBbI9TD?En&cUM5(9DT(ZzIo# zsoBd3vnU-5tM|uK&{RG1c=f)+)q9Vp^pAu3?*kpFKXL1c*V~wW>*J*Lwu02`3%NYx z|1A;iFa0F~<o}ZLKl-J;df&0?M~^J2HlC{f?U$iUFgsr{8!eg1{E__5Tl8JXA^J|O z-n%Fp8NhPi;n3*nOBZcI>PRwbe54v*Tc3*W2BGo6P<iH$hCF+hh`v!r&jh8E8|D8g zMONl0u{?2TE4K&58_?N0TB|RO%bS5ZRqt~jDLPoa-+e>%zNe3LLdVtnn{Gh*CRFkw zbOZvAW3VLopD&mMX!pVDeJ>EYO@b5`26>?POWZd~qNk5EGKKr5hwHe=r;nThj;Z&F z)Q4Z9q8_F>kT{Lj;Dh^~g02Io!;wokZ|Tp`Nr_}WlKWnxSdb9=9z$K<OLhVGRQ0|W zkIVuv^*;BFoIjuP{}7M|z+Z5sknicw!QrLqOV=D}t)4fUwGdkU7kBl($3ekr_y`o$ zAOUeL7eW}+_UR*+0`nKNHUVxT!0s?<Hb{^BlG1yh=-9mVaZ)yPowo0s&-e8m-+RvI zMqlyy=NvzA0u4SBwY!O=WBUE$wo?uEm+l7$^;yI9dHTpAFgx%IX7n&+dxQr1kz1)l zJbpm8WkvPAbDpW**LSe`QYqs<K12Q7Z$0IHSv>82g=&7O`>nl4jD7CcFLl3in)~(C z{lCJDaH;$CYVRSLiQDXQlqTB*WP?#5jgsy1d-S;@$50GJ&cS3tiny6d<#u_I5c{ZI zny7EecDWM3A#A5G+sq-7#LMC;9#6gM;DrZ6TTskHkQh4KOeL4e0>Do4{x+rem)=4o zkYs{Jzb?@`Wg7B4Im(pB2H?@3VxmN6d3o<K<HCcf7t+!Prh5-URYxEc>+D_V(E#^a zDZn4V;>dr0$~80v7$*gorUdx5Mk@h6mT3sEJS@QZ0AA`oGFZ=}!6@~<p$hpB#Aq6= zkhAu>Um=+uhQLtD3X*A>E>tOn_=99Wkw7UnjaD+X$TVcSJIPead!Illx1f^^X{lb2 zvtaKI7I-tmErJDJC&A`Q!R`R-BbR_Fx`U~#Bb44>`XP!T!TcJn1p9?dL$C>9!5RTP znn*eJm%hruqV>dkj?Szq{Y^^mFD3T~@lMug#XBI=;Qc_NS?S{#k@wRmIr?*aop;X5 zB6Ql&`XgtwhS|(;)Ia37ABBp)#4{^&+A|@?0x9ZkDD24jD8{OWKT&#r>3hgTqPA$X z67?~ehNx*_QP%*-{Qr_cJzy`CeRL+q3Kxx8rvkH1c(F>&7F8RnPOsVbVpUTW*2cV# z<7v&>pZ_JohN^vE)a?6s^-P+goYjwhVL!6-ACTyx_d>3sm-TwLdf%t3_kFy4-`}cE zjD4kg@8d@G{8#(_Ot#79tyNp9wpN{4<$3%-xX2G4M{S57TQ6igqa)DACF+V?F8?Bz zaBXwpyRKNK>WcFf95D@>r*I`QME2(PzTkFWcXOz{rK`VfN1#2>>Fw+8>uVbb20L2Y zy4$z426pwf_jd&P+uFQcI|jCG8`#n1ZENcfbo96P?h3SSYwvDr?Fa@3+WL^u+t&#m zJKFlYTG~U+-M;O?zV>F6V@$H2M!se;XbyaQ;>1k|Z-QE$L3lU9ZiKI+5pvP6YtZ#q zBc##ZiSS1VUkCmW*02Lell}7&Li%VM(AZrsjDa*`(rAbCfZ<3Z_+<Q5fcI=7RG;Yd z(*H~JM?N}nf_+FSX)97PYg0$<be<=cWSur^UTzMtp#016cL;TG5<q=i2)E$x33OZb zDOIJUU2I#HoZ#MTw<pIzDk%?<8@uaPv$T%y{ZE2ROp-E78FGQY7c!GyEshpfD<7|6 z@*%x_0)5pWG-+(h8Set<2>x;)3-5t6k2*#JBkMpmTm_a^9|4x8q+M=Xnv!{$-JRmv zAGb7R#y8`uQwlFms7|Ta>sXUg*^^RHl~P!hGGl3q3v{4gn&RX=WFz>T1wN`r5;vHb zMpjw;bvDry|FjKu@O?IMiP4SdJ+?w7_<vvjPXqry(17-jXn%<If9R^IY0C6<=rs9! z=%dr*qoL1e8JPa^WR=!_Z|#fFews-NpQb`O&!Ug^%g~%gA3axn^yP^lrLR%tX&=Ku z<y0_z3$VE8lOzK{#wdM8$v|YP(CT9$kjf@zsQtK}6V6i=)$=cHeCeZoE}5#L8vcwb zNXuQP@@t=kE`O?IW7ZF59@h`#oE1w3rz;dcEFGNIavoFZH&jJ2Winn>S8@O90)5^a z$?>Ta33)+<Z>#WQ6(*!g{CE{kS7Dh7SE%rG6}G9cUxgQ|@Y^c9O@;TVFjAga)7sCc z^TYGHz%`?(rLQa0=PE5IEhx+{D(>TC(M$<&6&Dtj7Zny2iiOA}JB(`fbjjvds_};$ z+UQbLc>OAQSdO+g?wp1AcjgIErn{Jh*ainSj(xA3i4N;N1OC)k+c2==?p`K@%f7M+ z@%Z0iL^<u-_90ioT`qh(($GchK>`RTVeOqo7(D|>CZ1M}kwTcH`YOVYdKcr)e)=b~ zF~CQs*$3_gEcxw~fbFURY4Rtvi0&q+7<DF*)~C(^Y09me5cm8VU?Y{Vj+d7J(1U6r zKArOS64;q`HNMl*KidpQ?Q_UF>OOqg*Z&P*V^oJ5@y0CTII4x>O?e!DAA{SzA&%oe zKvnG<-{bgeIf!o>JD2FcOYqIlokH;&DZb@-il@IqG;L*Qh>Y@bM9+0%<P9LX7k`QC zb^S%gk5>SD!AqyZd;{iY6U&ty!+9^h7PTU6k#+qrQEWhdF{Xm#`^NMViTphfFYD|I zdDY*_gqRB8-|=^xkeoB)@+#!KVcBU=1p3c-{7I3x(2TE>R&QA|Q;3<slnlm>X)XZv z_Wx=S;_HiqSOx5QqL3mziQ!?tbM87R61o2d%<NmK(z1jTt3h_pD^Be1fWAVLh>SDP zgYEbKHd}~W0lZ5iRJLUF5BqaZE*9c3VE)e_Y|=;QyCUNr>U8fs*C@ncpy^aUTr){B zW`O$QpTCZo-wTOG+mQ=@OeQ4quYLJK_<@`W#9Tsh?NUEQ31i*JXtx<pLhV$U)j)62 zBrIpr1EqkE+li^!KH5k^q8oTRkYzTKhO$b+u}5csaGdc2v?f8X2jLw<iN)AoZUo&F zV?UNK()^R4Ib_mtnd5D6{o1D+F7&2jKqb9Wp-Pbo9KV&cGuIfMgVBH)dkFqkDx$*p z0Qf=^&!Vz+$2Zmhzsd+=2-cbSS?E_u^d%&Ioe{#w>o)N;2$JYa;Tw(X(JTi{JPS!* z3ct}f1ohu-;;Cv<RTI|J=-g^}Am-<2?%xm%i$`B#+-Ii%z0LT=av|OX>aX~dtsg{N zig9(+a|6bLBFvhYi6-OE(m9w9mnE4!f@1AEj7bo@5R{cesYPZj2DSZcV}ct)z6k`I zHIbOesEdu8(F{g6z-MceobqJW%Zxn$8wc?9JrmEuO8obXzf=N$H*il5!dq%BDgVp( z6BJ_n0aPCjLuoDeA;X96W+dWkD*mJz%*tCSpEjPOiEbXKmJO!lsaux*TjPPzAle9m zfJwv(rG8^&_o}fTmWy!#sP>zbebhXX({Ur;3H&X<{n*66gm$$u`P_IGi<I#+2wpUa zNNrXkVfz`f8SjGNbCZZlQbaY>b_KRyj0I6T#_DAJu^tksYl*BaK-kM{=N6*vkjp3q zzEaa9aU)5Zt+uCd62mlS0N-lT@R*b|9kzSND4KJCzr>{BaV2SX+cwuLnwx?Dkx9eq zku-PP9zyGKSx*9g$fO|^iL9GuK<0;RAFL6A2BdKm_`hiyg?`d@CWar4N5kn90((+5 zy-lKnXZy3Z+cEuf?o)xH)?lp&iT=H<3CDq)dj(Ld&D>cbnp<A8m0@~XOU!*hZ8vjE z^gFgIreW($=nH}RMmYC7SZ(abY{#&4bMEg0b$d8Bqd&2ogNkwP$AEe!ocqQZ$Zdn; zK#BGzpxz0iAEFgF$^PIJg(j~`0{-N*p4Cf|kFjsT+QrPXfyxV`-<}EdWc$qv6nZgG z%fskgMD2O@Px9pSZEQu_8%F>43ZQ4(r(;Q@0bzU%s0+eq7ozq;d)|75{vOgdo9N6# z=!*8m_Qy~G<350&A{1K>=I9cVXqEjMth&a_Ab5Kak;uH0X7%;<ucIRvp8;o}zOqfT zuB-y8)n0h2Dn1J+7omB<%iMvb*8Vm7;}`=*DZrIFr(91mpLGF$fqnBb;G2Nktnni2 z&$PsU!=41K(Q0K-_t;Hn=A7lCrTn}08|tw7Qg`?kP&a6_<SuFc)7}a*H-Tt=3jAY4 zV=6#QY7PneBld@2lQNq>0DX8c8z%Xk{cw}w@&(Y&QG>W-y@v(Q{+9g`jAJfo8t|uT z8X?i|+S@m%QYwL3L1<Z*KqYd2Xg`c`!?`^``NFvw{ka|ELdtk9P#1=CpHC*MBd!%j zG>_}+f%>7&t>zh~NsCKFHJRp7;D2q>$a#ioCdNI8{>C(ifj?%_$a#iorpM)MRy2v2 zwa4O5YE;f48<s+z!nnnlP?%3X@D(PFocEZfD(-nSEYqw9zHJbVWr50K>NRomG8Oe6 zP+o3Qo2!nHgqz~xa~0taLG+VBgo<W++)5~$i~cq6ub4F9Q6ZW2#ic<7O!yIq1SSYe zT{AnV<qpJsZ900_IN)3+Uh3;hD8YVX+yPzB`M@tXX{0Wg=B~I)PE+M<1)k24WjS*0 zW}2ts-g7IO^MU`iNke?B`eN!A;vPmvWy$XX<s&AwMPE$#cHCr5_!5ZT97HIxnC2gG z(@=Y6_BrsQu}KaOB54*&!ZGo;Vn$%XJP;L{gtBj3M*5l&e*_j3uMjoBpJ~#tp%-p} zOs4LSA3qJ+?FH3dlaewgSy+A}{*QK5>~$dekx9thq@J1E&GC+zittGg{c$LvRgs+K z{`lXa%3P)6AWz0DZ>hUQn@s(y_*QH|n0h)W%Z5^mEGB$2{uInhOt=n2t%C`}T9DKq z#n+>eS!d^fa=%GU_nK7$JVpj*a>7i^(9D)x4&-jINK0%*786cMIELwnIsOJje=rG& zqoOHH*s)g8d;q*18z0GxOJ%~$C+7fBnb3++Z)AdCswTovqjlr-gv+%0%7I#~(P2HS zIf|(}6B6et@qM7Ya2V=vW>v~X37FbswXa8>pGL`NX(=x1hJ-9AfHg%<#lyp7Q3c$W z5Dx;T{t}T)G;)MqrA%_%a{<pJBx#$i2;?iwET;CXHGd`H=Gm$M4=8s<p^mJ<-xKy? zd(JXl3GyEdlSS3Q;b?;m!PEyq`G+XfmR`p-sC2By!p2!X0C_T&w}|$aJ3!ui$>v_= z7!Q+!vrGqhWt1#j4f@hO#IX<KinE*n^4=&}c)Zh>%F^s;U$3%!6Xdr=$-<KfeW@(F z9gaqo<q?qo&dg#G$_Zuc@dotT{f>32HQohb0@`u-)*jnP{rn2YY}FW3L0u6gN4WXM zHqsh-wPT;^>vf<$%ghm`%Zdlkew$+wWT3V&b|HNk5t88`b<b@^Un27qvIOpS%%}wA z_d#_hQL?Q=%EgWZ%ZL5vj?1A3D#Lgh_-8dYk+lFuqWuX+B^E12zYWy8Vf5MP_V!;n z@>dJ-DYzN&W8wY5pE6>8j1FRd*%8EYNzxd(K+V@^-hNvLEmI$HR8=YJdQi5Q)aHUF zvY7B6j@vL)?<KZpgXmI|(4s0PbUH6BR)n{L=w6eMh9#FTvhE>4$2qrR!MK+=J`18( zO+ri2OgP;cf?AmHV-SrRr<HFOZDl*pd0CU9&IM)3P-<2Fa_8YXMYsk;TTMcXpaWYV zXuWe(g(B<+(ZwdAMNlU6I{%1`6$^SJi0(BBBL!vZZf6Y)Yo>k{l&=n@7FkTV*Ew3V z{TM_ENXX7-5%l~f2zsS+7mR)8m<^)2CZR=8Cj7qhklrm+gJ`Qs7%3=I-|g&!*~e`A zL3!~|YLUf+k30LY1jzb>=q{7cBIwpa2>M&6M{l*B0ntk)p+!(8e8brTJC`}W52Az# zy6TaFGW9X%$Mw4Ypqx9DT4XVyk(j9!RSlwzCZR>p&tSpY(-ODOR~&bM=zNpVA}AA1 zOSGeDSkP-hbeBmODJWCVP22+lrhW#ImxfY{EGDc>Tvw|I-v^O_b{Nw1w?Q%Xy2O2$ z8!-6@BMU^cOhPI|4Ua~ed%TG+VA>}4h_MVrYfVC`k;r12y@|hsCCoJKz<<r8F`21V zlc}#y^tlxE)u6n07;5X(!};z?yay8%m+~y~ykzDhl_^P{PW%tdbxiX<@Cg%j{lk)2 zsNYB&gNcQyvq3q37;34G$vvmTxePr_ITy3-@hOOW3;MeYbrGqg$n-jRm*Q$E3J2S( zB?z+PD^n0=$6xwwWXz7={}e>cj=$^`4lX~=!GXLo0$x$c!If<seCvD;uDYIstAED9 zw|~RIcV6b;8l#-@eRnzs*RJH?dp#Unx1WO>zR$r;PjGPa>m1zj83(sctDx*ZsN z+c@~q#T?vuGY5A+$iY2taPZ^LIrzzV^ziKXdkZ=E?^+J-YvtglxtO7{<L{r(!Ou2w z@bjG<Jn(G}9(<I8hhFC3k<U4JbOQQMcKl;y96Y|2gD1}6;K}Pac<RR-JpF$-c;@dM z{2~MPcy|0Ri#hmJ4F|tIi-Tv+<>0yNIQY%aIXLtZ0$04#_>99uV?5f@6`y1*;xN-7 zd0g?63{s9OeyTxgam7zFNFlEHJe6;{%6BT~vrob-;wYPfE)h2cQKw_o1jHSmoPn=3 zSE1#_G=e+Ut-wZo-y|Wf!e3%5icDf`Mjz6S_1{?zgAlPhG*)C}p`{)5E|?w%0es3t zjPbz?aWqzA3=@Y}fq0XU+rU%gaABKTYA|O10q7TIHi_BdM?psVWcWYvC*|l4XY`y^ z40It-r<v$n)JO64euz<MtOIJ3i9VZhpF-YKNB1VogXbe{^Z<R1Nx}t4lF*wNC`@uS z&^MVR%q1s?3Ey${hgsloFHnzYv~<ztkiq0QcNY|CJP*`s8l6N8MecJ>puh2Z)R;X` z9|Qe4k+5R&&Os|WzV$lV_%f0(ZHmT-)H9JqWIGm6n7#+bZNjhmK{I`R9ftQ@5XS!n zUEFZGzlr#%YoS}`%G*JZerz+M)l}M;$0%A`3!hsZh<flhfWO2$ffF-4jomEMOpm9Z zBj7t9==iBv+Q9cM#E0Sg5;!_*|BOxI4?*-x{2jty;=PNa@-;;26+q9re;oK0t)6{5 zTm|C`<F7A3GV$oaY{+~TZ0y9p&}5dr0JTbdm*&7Z<TgnBdoJio&_GGAgMHH5R7PqX z()qp}BJtxqv<ubsbfO@nq{#0KiNsHzcS&ULVB`dvz7uW63^W}T^c_OKOL_T=BoY(I zXPTH~_-3K218|R~5fjKtOiVG76JXjR)9*DViRfhU6V5^%6UQ4gq5d5-pAZd2tR;|P zo;cNb6T4zUO`+V8G^~Q@h8r^^p{h(8E{oJ4CTu0;6&M#oQUYuyn&TiAsi{a#C?|!M z7$2?$0O{RfA$OqnB~};)1RxcDS7(&D3w*&gk+{&9jZF+?oV$(6sWh&gBGZyeq+g5< zn(*{e=rKE~@Pfq@6z%7r_!<u8eV>EU;w6MDTf{+mH3t<994z<)lbm*#gN4U9So9eO zOKxJ4%5QM6^iBpY`xytzpWwj#8xB^U$t2Z&4r)Ri)b8P6bpi)#(m7Z=nS*twa<Klt zIH<pxf>EVUa8UMsC8f$oVSACj4l_`~GpC;h4VTeKAMKkk4W6kNXF|(H&K}HqqjxXE zz%*WP!4rtT#MQ_qB<5>$0mnE7=w})ukAI3jKzj5Azrp_47zKWuNlq&w^)BGDll#vB zpX}tFcW`ia3MSs{<a1|paK4*^3pR1EH^{+-7jkg%ogD1@1qYY@k%P-V<>2yh%ZST? zQVy<c;^69j4z9U`gKMwi;Cr`maNScJTz{B@8{#lqXD8p3#lg)BIQa5a2<S?-8@Hpk zxRT?HCV*YZ2}U=E4&!kSoyJ8RCK|VLm}I<)FgvB?R<b-&yjNggW~cbB<Dl(c4%&ag zLB}6C@PEX?wj?w|cFJ}a2c1<M1e!V6aW)4%H*pYpgoD06a?l^YlJX5q;$T-12VYyn z!MP0_?DcVQ;cgBtx{8CZ-^Rfu4{>nm8yxI^kAur?usn+&r`b65=LTKFm`67|QXev? z4d>B(ocf4CliNJHVv_opLB5W8bh9J%NrTM4d4D4KuZ&Zn#CdeLB=xrj4e$whaftuf z`0X@IH91)Sz&mLQN=r&ZOreh(voU}P?HPnliX)owrx1%c+gfz$Jtm&06%RW6Nu6%{ z4|EM;`dy+qg-q$x-+^et|ADBfb8WxG0HE~!CVJkb>wtNc>p0moJg3KDc9{Mf0|RC3 zCU8ufdoUL}Ub?xGRz_7d92Zq0zThn|lJ{uRN~x-bW5*W2Px~Bj=P0_}l2*?28Qo2Y zFWxW}ssXEI_)9#WR4^8?BqA3%OtQ2GJ;T@l=vGZ5PN9Rbw3T$mN0de%FlQ6?>r}&2 z=%_MnRh0_|5C9tA!q<0AEIm3c($>YHjTw6nFh4c1Gw{$iHK|A?7jmiR^kR{|WNP}7 zCqYrR4ow?JD@(@wP@WLw3-M)?(}Q8Q@|{?);>r)^qnhP+q2bcX-v`!Je(z{_y2^h7 ziO#FIaSRw670mz%TSW@KMO?+hux5m_Vmoq*w2GH7oeNjRndo)MmJc1>UEaM$h}wz= zH-g%jzi~P+!VvSD&!C&VC-y7|q5Sjk84zVYEKgFv;FBcaXz1Q3Ulm6JCZpZr%AY}7 zIm>S&1(m;vvRv~YsZ<QpQ3GbU0(DgkuUeoPem4mPmzS&parq=<H_CsB>CskBhHKpX zUFaDs)nV{wCZC|sD<;0vL9(CJ_GlR~dB1^}oQL9!@&pV4+x#oBnWF6CG<%T{bmF>j zKDBGc88+j3WLY#C-8iG!HW^G8rDY=CVxy%klc+Mb+Qvao#%>Uvhrh%ttHEq>1)<Kg zRRUsMp}}evUNRk>JY$*hJZfrGE`h2tRv7marIAYIRkixOBBMrvY?ZqqYQ}1rimU4I z4Ty|&GUcrNG1@w#QKr%=KO|NgWy)0*^oB&nW|^w2ybsmN@W|A8OK(A6$Y_x%VJvM$ zpU7xaN!wDGA|hj(O2#dH6n!Kkppwp|UFa(r-71;3^kuYTMz2b`mNujBWb9PQ%F06M zCS$iu-d)*?zLar}Ow}%Z1br&wJei6!mRyMz$hgd)u47bAC2_Abo;#Jb@)HD=&!WXM zu9hHMr5`Pyaji_nRhFY?WLz&(V#yX5Eg5$hG)j!B=I(Bhakr5PhS2X9;8ca@+(pJu zB*<2I24<m*`(-Mw3XivEJRlR!DtgR5<6)Uft9+Yk`lw8~mZVaV&l=P*jj9%3yT~|X zoI{0()D{F)-o74@@w@~XRW$4~UXUr9$R1Pw{c0>3V;ZjEppiGuW48Q^Q@-ap=y;C< zzpVy6^T8RIjqx{he=g!5L6<bf{`i!cuqj?aXBm6ntu91qSs43MS{2gi9^lyf3($Wj z-w&n)6Y&KYn8w(LHksKT4QG3dW=Wat@e-YlU}9OIK!~Ds?Z}0i9>v6*em+Lcxc!G9 z-SQq3Z(9_=cP9wk$<vUmT>=%sX=I1B^ZHl}#Myk&@=sF}{&YQvvg41-ZK|QRn>OBV z&faJfVnS|q<{X;HvorHaxVYjKC^mCJ5$plJE}6NAr+L0*nYo1OWsIUFFtd`UdA<Od zSw$6>7a%j2Qf-W!7g3eWb+<t+#yoVE`S?p*0F02B^=D%$Gu8mQQDc%S8T|rfJiTQc z(49c-)Mz=hPx(8Pka@;9i265D(B(j1OC&3hImv;TkR)4=L)6cR<i`L$WRi?w5?Y`$ zy`!O4=JI<04-*MVnDi!cCDEELa%dIK4CF(x#wUb_RwNB&V?uEXt;Cr-z7GIpG^T;( zRH7q^<aSLiIAnFkpMdI&iRA-C^e0Su6Bpcv`kwkzY!oJ*#?db}BD#dOgs1*I57A13 zPNoMwXk~&0_X62$*~xE{sg|AmK3Qtn$$uvUEj#%Gvd^-UKO(a&JNaX>((+sV{UZ6z zLrvJ;BjeL38OFT&67jhX2$bca+o{=E9<o#rkVS%k43C7Tb5JVpPP5uyN1S_oRtK3P z>C_Rj{KqLu=1<l(GDWykX9Z?r7^Ksc*sQL(h^GD(1+TasvuW0)&!KVea={6RLZwMP zXA10`tjo@XE#5)EQsm$-vGRP3hO8@gV1}d>VPzxgk#*G#3srI<=DV!#{BEL3ZpFCB zy7nC~W8#HGeEqfP37lLDvaFjPKo&~IUpbzt{=+v>VEPNNQ?hO+Gl@6Y++tz#sQTgQ zSXL*!WTT6_HJ5;D(#tj;<F+L<A541Fb{zfESVGglq_=D-)Df1@^f2kL%}$BT+4V@g zV>19VmScXe#b07i4Rkw^QGc;bNCC<N@HUM~8X$buU$K--I&S+Z7L9R08GG@yk7)KX zx(uy4>2q5T=G`1Z--53nhS3>N#w1}s3fg`6Gad!%X+m@1S&VkrzX=rIP<|b#zi4z4 zce$+BE5Ty4{joU3A`VTGgg?cC(PQjq0L?5;0jfZw6$`qvGbz(v1ubzMRsvs7G*pKq zCkliwpCp}Z--V`NNw)*vZ}O2e$4M71`x|I~F6(mOuZ`d{n-r33-&m^n`~>)iBly_R zpC-+)uW3+xUIhM)2tNHKpqXQTcP9KVq`A+4H_!p3-pzS_GCh0^(ecnAT@R;javCNU z-A#B-H@nGPFf+S}n-i*=ETDw$CSNQ?Vmr#(LFH{i>EUjIGK`A>zCxpt&LX_-Ci_tK zLZFQQ#Mj+K)5d7kO+Hu&(FpwueElYjR^8;YWms51ZyW*YuY~5pbvL;@7t0)=hNBQ` zGyWJoxSNdGqFBrZ9#0x*7OI<kuU4_B1*%D-2X_-%m$?pI!0#d&szcITlx%jB*D_Tx zR|0>%$w$(tZgK<YS={@8e>8%R>LyE8DL#Jy{%`~z)lGK6!eu^R5*`Y+%A>l;C5br5 zCC%jkKSR?<bAb9lxSPb^;RM;l)^k8~>Olid+a8|zxADw>TRNcI8G5G+(N1#_$e~3b z{#tZRaCjsZ4l|j<3s`2r!GLKtVi^jV!!+muOW88wAeXYA)1oDpGL8<vl#$y>#Am}X z0}dC3IXntQDGnSRo&(R&@k=mqfWy;a4inG>iUUW7=Wq+874g3$3uR(?A_P*km>lN7 z(cw9eV@ae^$4I5gNYuLQ7ocHk)8fv_KoA#qCKjApXWVOb4E!Gi>~@>{64k%f={S82 z2P-fn;_EOlGp7jJM>%$ZrHsOzZ^q*s+3^G?PrcLeh)c)QP?TdcSgmrV*XQBTXe=>V z?aWT0v%|xPkB-Yu|24woC9pHHGYFl035Ig^7{Ut2iD`(Z@?`H=jp}EQy#w$#v4*rv ze`{;-Wf!$ZLIH-|y100MS4gDyf_?V5n}JI2L)4XENA1&VP?2fzxroMp4>R#gIUkXi z$Wa7aA?IUR#vEuO=QCPBosJh$5&xXxX^sFg<$OW$Oh*Vu7CB#1+~s%=vgVwi_>8(` z$%qT~#T3>(Ux|dliHf?*D7TFhm3803BApY*iR!vUDleWBb#-*lGADr(8|!XgfrQh5 zS3sOqcOwjf9Qclr=%^b*WTOodxVz5XfJ7Q6LUoJkk;pJQ7h_$h^Wi&Zym1$*cwXJr zn~<1bd=EYAg1Q7d5}C$!aNAo)_n~tp8)qYNNnI5&$TM~#>w&sI=OK}AP@`T`SC2I` zr+^bT)sa^%XD%mxSa%I23OR9i-HnteHp-Fb{yIAL%bCZr9jyBT&6!hboDYI0MEZ@; z|0xb?idvf^3-WLquXobeN~LzK|70}|J0=^nJEFrxIStoufWC5Hv=Q|01f?&r-Z>GB z>c2y{4{ez!mHv|Wi?pPvrUF_U7k?*4M13FZrrg8Kh>j(b2q)?4XTn~|{me!=Hxrb< zR6)%Eq!MlYH_-~Yi<pW|GC8jj@}4}PmNSY@HzkU=G>H0I!UY&dN1lUl8>s>>u}pLh zD#dC1I~Km&*BDyAXA<J`SiPSS1x?>cr0gV0LJ@QrTi<~Zmpg;0=;%}`B7(G@7P#D8 zZk&ZgL|<UA6hSI;*^J?xyPmmpnp`+$Es)sO_meW;W)bOF)~d|^9t+gFjH07jMv3~D zAad?n)&iZ}N(q^*Qj;AcDt9Ln(3!4m1BF}N1f1PYeSi*nlPDr}Rev{W_jJxS2^_-O zO`;^KR|neq8lt+HspxDtlB)hilFrL`axz6oCt20ofXTgsiRef<ETO{Z%?JKW#?#TN z#IqFj$Ea)H&Zq|?P={e(<mR)|X;P85skm>d2BxvmbT(Q!x0(9)=S0LEos=V*9)~5E zyN$Xo9b$)t5=}K2+PQlPL+9F7%mWzOxf_TH9d%o|edz+`0csaI{kG((pH3ZdnVnGk z%uHqjCJ_wU&R&3Xv`|1)<T)tn=)suDliOv-CP<pc118Rq38OM^6v^gvq`DCwP4UqV z4{Dc}Oz||w17Mk#Lh-SVi}0PtGe)Lk4f=6j8o?(!reZG3OQ*QYasE2Q$I?PL!!Z@o z=8dDSS}0O42cxEy6CwX=Bru)ibIn9kFS6wNND*|dA65j9Fwyipq|6NvcRKG6YeS*E z`9N=>+;k5hGI#xdqx9Sj+_Dc4o|~6rtTxrW)QU~xl0f<hf$0uGxFAvg%2Z%>8DuDZ zY@#RzWmC!Z9a!FT&o#&vqZ<b@FB3Ec3H3ijRYn+!SkU$Tg#M913ZuU;N=|CE&iMDx zgX;YgKz5HoW&+(_h$L%zArttolk9Y>!BPr=ME%WJ{Bm79>(F%v9=oFcRqFLNhSKc^ z$&^$fRa^h=THq555}B?=4B^^I^Uo;8(|w5{_#B#qQW;MdDI}gpm6YnoG$E|w0ZBJ3 zxO~jjs|XxoFx|LN;1vsI0DLojlZbQ)Lkdg`1y*ffpQLZX(%p=3b;OF-p~Kw&qHn^| zl?`j&KcxYCh`tF+H#w|%pQ9f134Ifm9B1LYN>M$PAUV$<Gk83fdWq-eufG6eBll+p zIat`qLOhbV6H$+b%@==!+P9okdC=GjGWrX1(A~hX9;?fGC*2}g@0>72hz<O`@i#Mt zID^3(_`BAyy@(>$J4--QYdG`JF<_;gN`WnY_9iSd<m*`Pr0WLjopd=Mm5t9d$7txi zHZ49CBilY2O*g)rPU@$QuXrCsD31=MH#q4CAKdv{Lg=76{hbXsFUloDC;bjgH`DX3 zqG%@AOrK7Mb$S~`PbIS`{jq99XHfmqe@)SuWPhd?&OmfF4TAJZm=UJWA+gdgtU`1V zL$_ogx|pF`6A=9-Ln-g{{Tw|C8BWdol1j@$X{SycyBN_YP{gTOvnX1OB2JxDNzuC? z<c!Qjigti@#>8xjJ_p(vS)~-60vTpZT1C-+pm)uj&2_sFYskzwT%mPYh~{%Gu0|uw zoXawNOtfWO`MpG2&NW_3v=v;<tB7_1*P`hRM3*z)yD=@#T)`aDortdF=n+hPGpjk; zNVMyj?_EUOz#P(uwvnUn5N#7jsexxUbGC~q+RD(2p~;!S)2TvdLX$JQn-Q(GrJV__ z)yAb|qS@oYPMkGs-uvj!j&bPev&w0{6psJG{4uM7;!a2RT*MbsJk2p4O+RZn#WNlC z;}CaK+~r88yelX^!|?;kyOQFCj!w#3P4NoH1njeC)lj_B@#z%AYbjps_yXf_)+$<X z>l_BQy|Y$Re7$2n`tGc?6t8#OfYzH;NAU*7Y1m%Os;79PV@e(3jTCQk)MLS!wVC3l zJGL%Id<(@lI7*3+hvFL@*Aky*il5;qCq7<^Z*oi|K0b<XcB~~nofO~VID_~ED85xR z(PLS&c9YO_w}1z#e6)DeY|PfP&KVErdMDjNNdI&OeDE&nE9;&40B_#lBqkf!@LumE zPw)mOx!BjM@4H+Cq00%YopVmhhpOlTfy0r5>of~_=GfBX3y3+3C>|%$3qUbv@kY?B zPMfprv(dQhWzsLFo**Q>o8nH9{y8Y-thhwdulcDVeZi9dTAHX7{W^++o_;N0PTl>W zpI3xcVNRa?L&VoRKgIV}l7VhCu#a3i%Im*{7M)YalXxzn=nM3-5S%%o4<lnvlZ^t( zOZOinLDK`N!1!pPrP~lvolU_+06T~>7zQpzMdoa$>Rf07>pwztPLZAVPIPf1ED%rB z^6Lmh79Mhf&slFLt<v2J*?LrjsINog&)LcDT)J-|g{V(KSDe#eC$-Y`izF(UzeN2R zm^kNr$4<HFN=A5lAnG410qPbu*yx&uTmsEKfv7)Dnz)v;(*2D{{8=wn1Am&GE_Lvg zzQ}qs4-kV+8(sI1OGP7jHs?IatNK|FQT%Cxu74!a>?4}~jG1#zA1U}C0a+A^p>3!q zH+4IJzndyYw?x8t$-Jo%haPk8rTK(zk3^#DA1nkqnX5zBN*FKdQ|18rAFKqrWg=}b zUI?WfFpvWL4N?gvo|pCdWYYQuI~`QexrXJSqUlVu!kljEpLEnAi)x}fd2^m2ART-} z%GY!a*4jDG(h5rlB16zqsPbp$pmuan5=M)r4~g%&w7~ykFlKdH{-oWNu!7wfp5KQB znLnBQ0K)O3(TGnW2MC7G*`UauN?BVLPQ-@%+W2LdRWfsKB0q!U4$KZYH&awNrlQ4i zZXu6@({U@<<=jTyDh<t30N8pb?cLc6L!JZn!VvUSBp6CA0)~ze>F1)*g0&>rS>)d@ z_{erA;z{&{EaZb}qVu+br>O+GoFh^7_r(GD4<5RI3`6f21L!9VrK>xVwrR~7fc}~o z&_y1_U@vC*f>*f*(!Cx9y%OE4;ALiTnuaD(48oAu_2aNA6_oI}qYFT?n=oq@x#{e6 zz#pOb*@Wh<OJAb?A8Ei`Y@^;pmxUrnip>5l*5HD_Qk-rQg|jR1UPgB+_>rtN;fYWV zauPw*?*Opib;f^c;wc941(uFfu0t9Y#DaTlG=Au6lHz?KDdaU)2;EeY(8jMf0{Rw1 z>&H{wtGMoTdx`5V&N}}TKpl3v$i(uBrj4Y;10)e$Yf?aZX0PB%0@5X?aLvS79q6_N z_u1&ulPvVCxsw3NG3fr2tRjtiQJ;tPqhLDALU*FVC^<3mINh`o3sk|4q?o2}VpS`+ zgYw!iLrHP#uO<8*RuNxr3b)+`CtW();G|ng8=Q3Vx4~J6Sz&|oE*B{frOW<HPbhK! zO$8KX;G2FCXoK@!#5XuU<!|~Gl?@C(gK0J>O1i<b-bojgQmJ2n!E~&>*_F8SIGs(P z^%(wzg?FNi_0D_ook~_=(~1NT+(^PcPjz9x23-;mP0u+%UrqozfRGrvMIf5!#}W!l zC{A|;R6A4?qwi5x@-$0eD%pyu)E}lA^th>rqmwSfNNfa2-XqY8F^YaViEK8b8ZbsA zZ9=6<${B#HcaleWgL6L^uXiRwnhgwD?<6Pl2Isk;Nu{QMABvF#_Lcw|`I}9~b$0@~ zpcamWKh2a8`xW=^!CM22QB-2w6?gARXzTQK34>h$wksOj3+6+xWD?JI#j1{D=%@5~ z2TeeqHoq{~J7BwFb=x*GUe`f;KmOQc(AJ5Y52Rz;6&u@n@PxFCZvi%yRN?;=ghmlT zBVTV~T=z{#+<p+f+$bi6*sr*3Pa9+|A(`!09N5#=LscjvA?;UOzDI1kx)MJgqC`ao z{utLi0XEx@V6HG0$kIEv{}z*iPIZXRzd(rlR6dxqDqo<zTwaIoqMI9u_5ql8^y#{o zlSR{9loCPr6s#+G6uTa=fiYm+y%c>t30pV58nt5$QuNps-Ixk?6yfI?&?Be!{3l|+ zM7Jn0dfr7efTd&k7<vnn*oCI73~oYf78JUt`wGNfTu1EA?YR!|TcCjxd%B-Tbjey- z3YB!;p5E60x??;Sh0;#!!Nq(dFJ;Uqd&;DgrU~gr8Y*F%Z`hp+Mx8dwfUI^TQgkBD zhQz2*IvGD^P%>e%s2M}Q>gGrmGLK9;3ydWbC7>&1;lx&OO^gR=38YM-2u$ViW{zSo z7(KxVmy#Uj27@x3STeDA6fK*n)0stDvMN12%nOH)k!4ez##n(hV@M<dk2S&ZT`6Jk zI4fAwjvox9>=UdY%1*#cE0E-sMNNzZdle$fil`YA&M}D*)GRDq7%_P+R7X0TA|q3w zlBo*>wNWOZ*-kU+;%GcUr<ui!q9)O$<4hskQsE*_v4X8a<qkz?R(V5F)bP{s#tsyS z4Y#!+2`~fVJE<Ns3pp|w{b1G@P|Kcxozi^OM__YVnM+0IGl;vbY&_CFt{0#_rqZaG zxn@??$e6KZzom{>WMZKgsQ_I5HM@B{F`cLSS3C(@GPu~V&PpLIO9Ky291oM4F?!sT z&p=J6eia;vhu@PUSSaAg0xB67&1k5}sx34}U3@W*$wf+ckYLF~s?=grY*b2%y(BCr zRjtyRiD*cGDgaqM#7P5}4xxmE%Sx2?sb|yAK`hq*QnwVttwBTs@0%$Vl&J><*12#O zlXTVL`jLKX!o^pNBFSrW#i&t>F-76%G8IwmX2+=cp(}-QtTBul9>Hs;VGfuJf^{m3 z6Yc^lJFJGpfm*KKln!c?if+inEZt}d$Z)LcCL!`k!qd?soZ%U2Lz?2b@iZt2UW277 z4Y#_ktgPy0m>yz_QaaetY`JxulKxCuTRdEvY7<%7S*8H-63`q5eBD3?ARV;mSr3bR zfw6K-x{=|i%xoR=?WK%vjfZ43<=Rk39}?U*YsOHr4b5grwuf7hupOhYL}b9Q@tdVW zaLHaV-&TOWS~77EY&#W59bT5vS%9R41j`u}Lp`U2yKooY`NPr#DbmHmqgzEW9CoNE zhDeW!qEq&&D5MkbVt-;2>G(E`&#+7w_yCMQV{S(<;G5g&+u7XJKDW8EJ=o(9bp#5F zD(3F=`L^Q(W^P|^&s=|(x3jO+Hy1A)n_C(MG`9us@fr-rs}VhACF(ti?OlB`Zxll2 zIk(l<($_wigGBfSLK2J@Jk7;>qvj4_T&l$zoP7u#$v8K(s~eWjph`t097KY7s-n;n z@ouLAFD~sug?L9AzeEfg7S{Ki6?6!geDa-VZ97|K(z}yhd`6_Goj2Ik=5GfA4dWZ| z`nu^IQl9QmkEA70)hp6CL->tpiWk4vD#W<Xptl(>cLU$%PKt+uiisCQ&>RyHebA&) ztR*jcwUwV=rPYJ?UG*~4-d%WkT)^Y&=?SvL`eksc^qpQ3kl6KxIz4{8XO2qc*Ts2Q z%ZhWb7qurcZejq@IlFs&tv<Xy%h&1&cK1rcF5ga%Rd{sgF1!(}2QQA3?}-B$U`#Ry zVl7^>LPfzIadiHLEq(sZP`<y5d<+7w8Vh+sz+m?CcmjBd9`0FdKt$5xSy8jvEoq@b ze-P0`Ox-4s+Y&&`_-N)nFE|GzxvoFRWh0^dP?yZF0DX}V$w)S&j6<IR)P85Mhk6e> z39>>EiS(@WnEgi;Ljpn;*)aK9Iv^!PVo6)w&3@HAU~by<p2wbKIL91bC2Vm<!rv1f zu=R|w%^zdiFy@TIS6sOYAyO1<QsHLAZ(`y$eA{g$83^LgbK(*<CJ-TFHoGrm&wl0% zn*(zWiqabud!cdQ9pH@w+bNXINO+LGZKagSp5SDdlla=43kmcVzT$33aISJrYk0+0 zkn*Lo^XD%BW+b%5*%It&2Vh5Z+h!UIYn>=*r?<DerDwb7gof}Qz6MWkM{s9%kZ#<> z_-4WuyopY~(r=`12Q2ULb$2#<eeOU2FUO;|>aAThAFoa9>f_fVf?ZdzC(s-oLp30a z<;8LC?oKyelh@ZpuevLiufA*U_sLh<wfV724f1RFM*K3s3eOr$19%T4svtr^ypoSz z-bkarD;V<7(~_Zprxy=|K-Dx$(3D8yiXJFv+v#uh@gzx4G|=$t25GmaWtXS78(P6I zq@hsZ35oK~PB@tn!N_bLfWx^RGd8Y2_W1hodP$!-$1F6Jw_w2#<t-%PX3cS7tPqx8 zK)GOnbz)`;MPPXiC4(0$xH%C?sB1C(gIt)cV(dbtc>KcO6>A?Vng`W-gWbDW_jvuL z7cYgxf8klVdfn2h)gDi8UyG*(dc(6Jp3|E<`=D6#`kqirUmN6BolP*v)z{VQZ^z{8 zQX|6B8|Mw0hVd%PqQX|6(uNPk%I-VzS7es<V7hO0^J_Ah$H-YME1~TCde0a}N14B? z*Vhwr2jrVN!<7=|(j}J}ZgCf8j@}TQT~IsqTMy<;8d96qT67g{<i<8|0|B>Rw9!Dq z)aC8o_3tdGUj#9n+B$<+ZhPAC=fhhvV|nXoQL(3rj15l*MtBcer_Ox+Y7FfoTUWh9 zb;L7NbAuc2Q$-sOHe=9#W!)lQI9tNKk*4GNh9Zojw$A2ujO;ZYUVr(8pu*p)OdL-Q z=Cl=okRtK~+uCT7ibZFnB`Q?+;~3tOOOtV@Kj24K4v^gu3bqRFtsY+Cd_Cx_gAFIV zxHRNz_w_79xL9VPIl*d4E#&EP$gD?|gos7u%%KNs6qnT86{=}j-BRdwd;423rLh!P zdDdWd^5K=OSZUfr9kFSsXkKpzUK70CgLS42mF&lYgLdd??&=jmyk?k;OgXs^k!fK| zFxWZA1yjtoc)<dg>wPfoXqBP`2JevV4b3Y?!(pxR_qM{urN-VKo0MqBVfveFS`6b* zuoEhg`is^v&9@y#wibqFa|ka=UdWNf;aXGmViUKh5N*@y@9hp^4euAUy3)IrV`Elo zngW;{=`m0=3EqP%m;N?2OgsTvi2iMsP6-xt^{VLM`)85vpQwB{&8)rMEYrxBo-({C z7%L`?U8-mRGbqd}%nIweeO-Yd3><F{ukTc4%L*}MHI=g*%{UmX{OV!e_tMCr1&1~f zu{DZCLb<&1Yp8j}l&_^8@swJIhf-m{4cE^_uP-DwE8NT@*J*ePj@70p_XY#qSifYm z&~#i>>hTQPNf*r<l!W@%H5A6I5ZMU=+y`h&L7i}Lix)$Hh{;zE=Ng~8s7zY6zJYGM zkG(5YREXt?-ZM=WMuUeQhDQGxxhheufLeRYv<b}<&q%i_WnR-t#e1`N!WX1=4>3x$ zPQMg=#J$h5X_5w8Oo}m$K3a4Kw^Y$rXT6z&8tYUr&;qwbXD7TkvDye`)vYs0G-+3P zp<cJUVZLWAUR_^<Jpm_|s{S2m^Ar{Nc91E+Ya&c(e?zgREHhVr<yom|p!vgHq2NBe zn!eD3?JK|4J_e(uT+NTP|G{?L*Xe_|1kNtn((uv&3#A9|a;LQfyGb9d&X^Nnn__76 z__~_$YIu5;I{>Y6Kg+|t$g+Qfyd}gAW~grMk&h%(_kjQnbGdq-WKt=Er0qVkRAeOV z#ZnALJPNUw!&*T09h8M#0X&z&YHRaa79vA0Z17@*!=Y|-D{ryedYZjz|15Y@9it@X z469uiup-blJwe`~j9k6e@d)X|JA5+7Sw_p^8Li95w!La4Q=tuQ6zk?)cPwfVc2|%E z6{2RK?#jV-8NfipW&#FWQE>%TXyiI7ZR-hkac_zxH#S1bNRdM;79Qpx_}3>O%N#w- zW&y@nDVyY2@-PE<{aF9}ZGJDdz3gC)Nmr<?*R+pknX%bsEFaB5z7Ki4K;s3wL~6N! zF8~9ES}5G(ic5wp-n_@~^<ZwnB!EVDo17P^p1|w|u_*!@>)uMurN!l_cXv;)ySW{c znx6bT%ChVi-F+c>I6&%Qe<k<Uk$0fwB{UVqwEh>B(LnTcVygtFBxdL~-mV4&ekcU9 zuophNU4a(43kmD3Xo#7sMF`XU6W#hv-FEwZUf)hXTz#fBEEmx*pJ9}X)jV=pA!iX8 z+Oa8O9xI~F-vdoR3o-k>=8*~Ak0q=Hij~epK|Va}j^r%=FL%LCQ%zq@m1vO+2x-DY z-TmTZM}c#_f#&VLd^%5Q&6fj;XTH8pQB-6(Oo>(H(fb~88~GTJCRvF`?#8Ka?CSF3 zv}q?!H(_woIhg4LB^x5PQuG!{+Z!<$Mn%Qp5vN95REH#7kx=$PThG5@#>RSlu$qn! zU}ceCL@sZ1vkltAT+q=2hhgu|W|$eYyv3%l?$y!*Ou55j`k%}Vz1B`2&N0j^P+SOE z2TidgFwKV2IRXC>@78H1mlcS#k&AshAfcBnW97|~-lI;Rb{~OPbLY<HUA-RPjy_nd zo=puQ*a!F(CScn913nls@YUm&m163-SWnoT3|o;TKWgQtqxoH;)!&8{6LYchZNccH zYN_g+#8l;Z8UC-`*nU!fY76;cSYsjNQ-W9qTAB2Fkc?|Q&8@9HzBUnP>7jl@9ws?` z$1*O8zz-g)ZGBzdklx^vtLG#&ln%*3-RrB}>A~B{^&-Dw4;CwFw~l;<8hWB*84=M$ zrUM_|-&J^&zqdc=Z#A91(g)kBe6gL7ZKQ{0>dfQcb94riXMlDw)W;$RUAa0%q&+E7 z#L!(zymFoG^1-<B<II!Xb+HY=a_V@^p=RtO#ktmVLnVAPUoMs#y#`n&sjqGWgL$)4 zU=D_JpO;+TE1i5Wz&vJmS6j#jUo>s~$&Rzwa4~4QOgi^zz{fIQ#IU!J8}S%M7(2b? zcGb<xruEo;h|OBgvsZ7gyWZURM{8>9Ic^N<v+SsO&%`@Q+D(Rif*88(o?be*=d(F4 zmL9d1L=K$d&X8WM&NV$a)I)Ipf!A$1fXAi>Hy`xa8?i4!9h;tHa?-x1;m_b=(3NFv z;c4Sv^irY5SdMYmV@F>wMmvRe6XfLoYJ5p2(_Pq)2Q^lC1h&ck);fH3wf5k49uG8f z$H`rl+#8vfA>j3ayCAl~IG=18b+X~bFgv#<_I{#H3#20e=X7*w3^S?RI6^*{mE5P< zXHJgN77>60Fw_z3>uv68?WId0vDE^TFZr33sShiJYZMzVi$y=wXp|>f|I)MzVd$8_ zgB^VfNpg}^Ay$LE8`lO%v(i%!pEDjW8N7d|;SZljafNy5gVq6GyY(#BdTvU!rgO&T z&hCz8(ciYS*W26$7Z)uaAy{_2A&6;-E-JTdsg-j<PJvVm?Axvook~leplrQiTuC^0 zHeE?{FQbTr?)0_sD2QR6(I>IIw8D2U3$LJ?Ow?OTXjI6t7jec((<^zB_&l(U9XPRd zyZPOHy&WhFm&~yEMBWEux52;TN|RujV|9vFc$;y73wsi23s@J|uh8;Qp3oSYHOkf+ zRsgzpb1OU4mto$7ABHbXp!1cL$Stq8gIC*sPj&nQFy!PR8;QcZ#xA<zj6{#Wy(6Tq z5C>t-`<esX^21$KqYG*3Du__F3r-2bcSd9Dil&QRj!m|kVz9mDK{V_u)m0FfUwj9H zchRh9GV?8y;t*@Bf@~t%X`yrBjzK5g<Cvii)@F)Ohrbs`?rh!+X7ttdJblHW&D)7v z6LMb#SC{r7s2M8a1WH@S?1PWC*C{Ht-k;<h&&st;u4S`l7Ztfm3rY(LUB!h(<wb=> zg|7TSsISYnsNIJ?>h~hq+~e(7gzM`0WhJisc2_<eS&QJ^=DhiBI7jww&xiXXgu}I9 z53sNd+IbPycMCkteFL6i(}%rzYxG*o!<iHG9tw2Rt<l)}5nMEDa9qbXU#VD}X2HVf z>%u7v+t(xSQ!#8E8Y(;ixnsiJZmNf+%SG!cF|NbX+bB;{!zKI^w^qPip;tOL<m2nK z;hX#N(o%O2mt@hR!>kAYzTG+%IOyU%SrB}GOx_+vik*>Nd{Ggu)$RW7ov|(=(cN7Q z9{LG+-ub|ijIjd_xiX7E*-#Fvtk?8*MQ*6{Et-1Vrtpe}U}qmal0ic#(8sql;5*}s zO>1z4Ox_g~Q4TF=HXr1M<eR(7F0~w4tMdT!dK#Z4_2Q}<%nEGc0&EalIuv|g5iMh0 zE@_Q^x#WMfMGwfkve=@wb<?FsIxxdH!i_^nM@qq1W+T46C)n4G8*8H7q@&Z;7{~d1 za8|ns?Nk~0WFb8=YEPg{U_q+qD}Y1vsC#%PW=zvkrt8s*>AK*q*5+MQbKXV|v0}x! zgYFo`)?4AK;RRR7r*2|nf*BHboUv^U(1m+8ULz*Gq3f)9!$aTh7`d*g!Q}YBB+pHz z%oi%$y2^irQ!XFrgZ;>*)dtSV*8+C8V$s6BioEVH4{?as+@tP3oXiuA9=M!ckTIC9 z@@||wbi{shILF7la_dbRWzF)Pn(zTC<}d15v0i$MZPCTLOXFrIjT<~P(bmQ`-$@S` zhkMEn-I{Kz_V=3G#8?_$uF@qQp4MW0i~w$X>m_m8`siy(%CmtDGt7BBg|odYxU<WH z^#%l3apbk7;U@5ft-(HQt{2lZqvqF`cG+}0oG)R!X(aLh9QhDI*H&Ci`(1MjuSU_% zDC%OnpA)FTt_W)iRu;C?)YC?^jKb$aJ8asNojd5!6h>l_!$il=8V!4-S2D<vM>Z+# zLSWVMz1^6m5WY?w`BazbhT(n?6W`bdTda*dv?t4h4|HCbq{MaTQH?f`@E{O5Dq4Gk zo(`BRa+46lM5i7LqD2EcO+J^UlN?z%mJ5D-tEd<%#e<O8(7?#3@eUPB-c~G=^91g~ z(o`WGSExk{ViiSP|B!oOIOf^YLq;H3g*fhQ_IHvm!E&(@weSu!TW%rq69{Au@rCa} zTaf4%g)sWUC+^&Napq{bF*)o!&mF-sK!+^$;Uf-A4gGpD_4hX5lpM#_*qOrOk-HC? zw6NdY4(|xT@XQ_#)acGS*Sil_!+X5y_H!)y9eUS8shF%SI`1%#Gt`CD;T}+7!!3$4 zv#q(a7qe+>&0p#ZbenFi7^csN-XpD8dRzd1^0IeKy|R=&9?IKxayK+?LqzF{ls$40 zVkP4FAhM4a(-mCh0v+i9#5EwS8`>)vqw7ddG5YR!4Bad8kc~Gf@FMx?DO>Y7;E^}1 zHXYU7;E^+c`;WC^8KlwYfT5QKX(G^vHGKAZGQ&EyrC2^f98>o!;Zt+S*4WcbKL<hE z+W*Bhc-;@=wkW3cRG;R^xrH?!LvM<9a6zUyj<#TCclHIkurTnxE5_+2!cnbe!kB7Y z#P;7{cOR{X@LKYdb9kjK78jhm@l7r+BGLz94jxQfxCf<1@vwW4LC*)%Qv&piuvy$9 zaw6jPzPi31qk_yU8R%TnM(OVCi}dG3A4t5ITJLLN{*#Y&%Bx8uAHyYlr>q{ELtNQa zr#57~V%BUG^YOC`ZCE9VIlLG>J=g%r6LieFH21@dAuj^|)&^2&37AjvQazsiqI99Q zY_+FZZXDDmf{jb9-u!%0=*X)O-U*p4mA@z)jdj_SyH?$O$(A4|K5IfR3cMMjU(kq6 za6Ko`p4e2QPyS>H4#>6U%sl~}*y3Qt*CsCnz_`G1v%XAmlAC18$mh)hEt=XX#p`2? z3uJ|M>dHl&su5}E=qGQ?^AG3~n|E}uE^-LM3Fjl1FnJ+Ozaj6gTY6zPNxR*$ynKZ& z7xWrlct+meO4*Z(+<dJY?J@Xj+Mu7!`KL!-!~HsgfO)Mh&kr)Nzrxyg(>+pjX%FVk zuqn)Yq?2?cIoh-X=45Uo_I~m`%2>6{9OSJI9*g9O39u(7#<>EmPCq`u&sqxJhM5hi zuA<7(9Cb{}UPH(9^U!S(l*piz@>n|Rkj;w97~$~NrYbvXk>I&%<ULYPByzF}h(WFe zWe3aE@#KwLhi8l68dux9liTHb0ihltw^-~<m-p&on-_6E5NB)DJNbl_eoO_@!`6w~ zB<h(2%xH2)t(-incYAwrc7f+G@Sqo3isx$D!r}*&Tps)e7XLhyC)C_NI2D`RBfbPn zHVI#X#Wg9&&rdIqbB(KO=}lkdz>oP^EWKT@cJt_hah>2$sZqb81;wK=)lmhtD@S+q z;`dynI}9tqPA|L5{*5)~%L>%y{A)7S-=C4KeX^-cFBm6jml!uHeD`V46cSChF*BF< zyxDmphZ4At$Qu>qSt{w!KZ!bGJcH(+kRc;Q{{9=Dbun!&G8tO^JpwZnEKhwo8dFw3 zjhs^Tn@bIz_Fz!nj5(=RW0jHoywGNaK3OfIdtBDLj_w$&*%)of61qMj*VtG#h4Wx? zXk`a`z^6In+0p06gEM^5Jv<r92L$EKG1U_K3Fa8eHFsxx(k9qZ1y`PQb_QDL=z#Y~ z^0z)n+2QW?Pc9_LXYla*RJ7C&I=beKBCobX&PH)o!DqpghxR3Hejm0#v5gi>YlH<J z<}sf^4pQEY#cG$DzjmO^8&4Z<r2flFlTYNa(qgf!)bFTR8Yt?KieB;NW5sL0v65dt ztkVF;D4vax%YppGC@l98*O7{fEIwVjDvpJPdM0le^iQ==eMfFVk(DW*&v)0uchCD1 z9DKFWu9Ym#_5dD@Zi8op9(<GoCANZ0ul~Q>F7lx<ZWr1$;|@(9U8TX94_QdC-v|Bt z97y<A1?cuHP4`%N+vM-$sh?2kr`?4Q4@i;|pN5xpObypX=}9!@X2EYK6nW@(%Q!!~ zEn*n>>^kHjC{GGWj2PIc0~fgx#gN~6FE6Hk6U!MF?x|DnkEz1ugemtz5x)<E@euLj zi^2mxj=t@JUJVZ)olWu&P|3Mr<YNVwJJ_2Ib2}7N7mUNR+&}xxn6{|bdLR~d`aO7f z7q?aT3mrQ~{Y3L_$^#4jxwB$s8x}U|6cwA174S=IAckJZ2MziL7Omk}fP8$_(Q@OE zBp-QO#nL~cZ?kCHpc9oC8>W<Z+OawT@Z)@#pS2^HT)?c2!I#>lfsSWDTDSG}hSc&s z`0P>M*rZu6!Y;6!M_^hV{Ih$Orx5V-7_p68%gHct2=~Bwuvgs!>iOM~8s){!_}M(E zijiieXMzU(z6>4cH7L{CvkVR0$W;wX8g;D1YC5aIGV%^h3$=P?FV>n5y6V8U=%i5_ z(}ZmOeUli5e)wm@<R)49I!3OSk(pm)R4X;a)_vekHl1kdmwnWQ&_Ta<NaKtzb*j-A zeh8YDs=?QC_2tin7PA2UFuIybE=qb3J(d{|&Lk`V;KSQp(bk5umX5HqnH3)KAdI?v z6GL-GoPEV?m#Be_n?vRgsRvuO;UYY*4RDr6&QZ$AXI^P$+pya+$omzG_Vk$}&A8S_ zAcUts)QlTm+O+60{e>f)h_w4I7U}R%L+n3fjgB#lN0BGKkq^P)Y>)5(;y?eTPkG5> z&`*8xL@c)(>LLr4H~dilpe5uhotOi(MDr9Ymp%QPG3HyDew9JLJRg3y)SGz6Pz)bC zUN%sHpV5!}*zw!?jZxut5sC_r6W2tA<A?dxORB78*zv3T2l2!EksmvLUH=XI+<fH6 zj^Ea&cXvd7?D+BgXQINBL?&Ki5&5x;QQ{iBF(mS17o)}9QQ^sg-gp)Hv5OROC@MTv zw5s<~S@YQO?!fM-@O0s#x1dCP>>@)9M1_wLX?R&y<i{??isO@AkzlBPoN!Kw1|Kid zqQWPL%&728F(W$~AG~+Q6%C#Ra5Okxd>7?o7n7qvsq5esUQs@FF*OR5=<(*iC?C6U zMS&9iv>|W<kT~)FiAV%q2ZqryRBzA#MhiL*UTJ3iP)!M5838X)@B<O><$xO^OB7CX zA;xb~;jn?@L)&pT;Kct>1fPqUerSLA55S|<>mjC36Z(B>RDb%sgg=s}XqpSLusrV| zPUS|v*=+(c5`4&;+dv<!+}WTv(9cIl^ym2uAF5}PAsQby3p{ijZDc+Zh12Dttmen3 z;Askuw|4O7e1;G0|KCvbnTlRB`ZnNriP@0x^#cWu9FIR|K10XRA;8nbL=nmVR=k|U z1vmzhE|S9+L7#4!Pe8_>w*k*lacf}1ysTCWD_BeieFoY~zds{@G=1uZp{Myh8lN|Y zfqw^6e}))39~NRgh{orKs0hiU=hfL#98o(A{pG{J?-&OD^f2&0bGbv;g*S(xpU&-~ zgtG(-08htwak*R!O;h?@&-^WfDtZgx)b5e(dkgZVfltLW*Pu*yF@4sMe)7OD{9k8y zia4fB1E1n{Y#91<Zm&T_a$*MHuAyMDd>HyI!@&E8f$wK{ia1NHkLXVPxqcY>2LX2} z8f);YVc>@W&q2S^ucVoP`qQTZ_D8gSc)>7mJR2P94fVCP70^DWc3Hh=bxlJfp2fh6 z3h){Zyw?c7&KvOH$=)tL<!%jn+B<_SxE<PxCue)<c~x9-2y}PC@!MKZURG8PHc^Q1 zdtY6CdCd!FIw3q7gkN3__&lwBfdD=EVoC9}uR)~4J?%n2D7Lz2e$?j*357>T&0lmW z!4L2Ki`UBh_^F6!FAMRksIOY%_PEzBr)O1ISvrm<lRfTgMNqxGo|F*2@xOdS0d7_m z;0HDb20XZ5*c-$T_~PdPJpH)Bw)~8>RcmUNAxGnyWhQglgqb?vpQZ@|Pz{`JYZ2G2 zSkd5a^fXp2UG0WgKDt}Vm&fSG`?@^zh8ysvoAzh|6uaA3S-Em`&C+F_;)3D=zFac$ z{m8N+`4FCBwQ-|oUO`DgF@9fye&Y?tg`LqJK7fBeR5VXMq7a0O7tih2K=MM58^6jt zh*fO+@#RJC{y}V{M6r1P)h}HP<;I$nztN?TrXCwYoxL?fkCvj<+S`aamwMnm7*qmR zJJ^Z0)~u*+2sU`!L$UnxHj(v21EW*mMAh4|ogcLbi&nx-GE%`J#j5T1)T`-W8GiG$ zm*xWfYkosz9Pw|MqdP$rICq#gxEpZ$@o$V#{ixG>T6*ELk#XAAN4RODC<gBV^TJut z$I}WJ3>|}&mCH76tXf**DJqy}wtzpPS~ZPuFqv~AhAPd7jpU~go~ADPbvtON7j7ry zTeb|t0Ye)C^2yjxseqwoZiy%aSB8|ZG+jbiPIGl}0m|Q{$aRmy(IK6jkv910If$qy z?ZE>6f8-(ooy-lYu^OL|%{XKn<0Y*4IbC>#5aMKr!wwz8iH@(QTNL1za(o47#(Z44 zQYrl8LxKDiR)4D~pj1aQJah%EySl(nhB(Y*4BfP(N7$_i4{&%2u9-5ZSa)Yg6wvG} z3J@)5#}8)};1~Pw%}rL&6XXfFz}KPHw2oFV(J65EdX?u5SHr0HFf(-lntAB>HZL-w z;AXtq4iTEx3()&T0oL09)=<Fcl^7t$8!0g$Rgw>7HL9frS4cGmKa+*xWF{z2M^$!d zKm2dMX@5v2qPBOmA4Z3fJ7S`>eojGxUc{;MYk!RnT~=bmmDyuL@rvs~`L$n1hq)%D zj6~*N4)Dh(P6T!N+W(`&R+S&-7k~6VOC`lxM96ic^J6nEKPo(^LYQN$C!JrrMNS8t zNOXSfPtsvdgus#dI}>^FN^Vnr?RU~)9q{zg^6PSRxE;7JE%~*7N{0tHw}7Wh%Bkg7 zU_twL5>fNhek>i<DS>tQI=`;}g)0A2#ZddZba<X6Kjn$ce;HszLh{i^`^9t^>8^@U zr`U%)*8JLkrbE5|VdnVKZVDY<6_H>2*>tGo)%kT=hu25s*ZW2tUP*()^3mmL(DxCs z%CG%)I>b9J2Yn*zf4j=B+fV!Vba>~W++qD|@I4XvwI5K2jhaw}k>x)Ukze}@b$E?x zf6YegO{aemkze~2br|Vki(n^SMt*n?%wenj9mmzg6{&Asz7ENcL@rb{%uPRvQ@Q*! z9Z2}2(>nYBP?AaK*Z$13ljN7&ggB0f9-9Qye$PymKTS2P9v`|~U9W49$6CJjkIqmo z$d`zz<)icK&_HHue$x-&l9_1CT0c6UhB=U#V7mU=?~v(|6q&@_@^M+>6dkR~FN}ce z{P_`Z%}$5oRQ?Du;dV(#WduU!)8O1;@?YeV6gRKZlroIWUpP$u>7A1P7rNmTo5=i& zhspo99+`psB-T%4{#unkQh$HkDRW)C#hP2TH9<6=reVtW{Z8hK<g4>(u9VhukA_ir yjmlrGCa_ZgTZlj1e{{bhwC+2InxEHSmC+xZM1ScZi<bZEZ^``L2!SJ#;{O5>;eK-f literal 0 HcmV?d00001 diff --git a/week09/cmake-build-debug/8_myAtoi b/week09/cmake-build-debug/8_myAtoi new file mode 100755 index 0000000000000000000000000000000000000000..c5bfd5434d4e2f82874b6a834c987503fd270663 GIT binary patch literal 61488 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 K5d|WW;{OAUQ6QWE literal 0 HcmV?d00001 diff --git a/week09/cmake-build-debug/917_reverseOnlyLetters b/week09/cmake-build-debug/917_reverseOnlyLetters new file mode 100755 index 0000000000000000000000000000000000000000..1fb3eb2fdad4b64dd520728f408a2d0a80832b85 GIT binary patch literal 61784 zcmeHwd0>>q`TxATo9re)4#E)vlI2La%pFL$6G9+?03ipL;*xAO$x1GEHymDAQ7bA6 zR;~BZQ(IfHwH~#tctW)v{d!ibU%#Rj)K;vm;>qvxJTvp|o6SaKfA+t=kezwwdFGjC zo|$>(nP=vG-|dw(i)@A=^ko<G1l=7;mMLWlkbX!-5R{2hk$~SUF;T?h-oa@SUM2%T z<#kk%)}c$K+YwT}QkzVO496%u9cm6Kj8m{^!JQ*zst$#4a{}cfUR@{gEkZX(beKX6 z;mRkb_;T|vu}AqPt9+AHJ{_hg{&lG9M`Y-)LBS)#g@DneL&Bx2_U%v$=Nm5X8zRCM znJjdu^Q}Za;`5tcDGISpl{b)Fjw=3jsM{g0!{0okIIp86r^DaXyESKP>5QBi#ks-m z+(NE5(I?!+%Nw~Q60ah~@L{;8G=lrzNW7r9?eV|7Hu$JF`Q@Wd-#g>B5G-BgaU$HE zvfJevH$1@=zi`M!j=^OFqrNc_e+w#Kct3D$Vb$pg6)!$;@QSkr&-(tLJC+{Ycl!40 z&MItv_3u?1=iPJPt`C!5-n3@St4|%g>D}i(NE&v{;EKV+-n{9DmketHi2<*1U}St0 z=pRtIp;6Lz43It!m5+vh+5qW}0q6_^Khfxrl%u7;K0x~Y1Ekvrp#KKa-N+MpEf|2$ zgaPXH0SH9nGZX3VNaDDEcK|wH3{Y<V0Q^&bj7ER<0O{8ZQ10WvkH-H3l$#<(iF9}0 zQq~}SyhsxNRGG@bH(mcy_#y(|z<^E>8KQKYo6yYbW8k|%KN7zh>8Z$3ru2l?2Xm1= z6y>^8C5ezK_cN8Q_4_nc!Y`3dd=}Bb#FZoiF$M&Oib3LKouJa=6`zsy9m@DgVxOYp zQ}`!yda@{1e5z#eKag`O>g!f=NKt%_S9J0fKG66oL^|<VuIL9eA?TxEsKq;N8tI@J z!sBV{?C$aeLrsB@$0Iz|4a+<&zJRaI9}M{d4a+Jzy1RT0P0bxX35yO{S0CyKR(tD1 z1qI&rrhq3DX!3`UP+8xEpUOG_ikh2(ey^uH7z+5BI;$Hz4f&qR`Vvpw(&hD`5|78b zb!$OEL7~I~lE161y1v*`Ki$(%;Hj(>o^{Ka*usL!&3qFo^>+t7!1onbclkqRdUr># zvUX8jeRsVFxjb!Kw|aVffnax6Q-?pa&9gb5axWdQ%mFJ=9Q2>z(`669@PL^s3My-t zdh3?f7eU65R<W<Er6ZcazD8CvDC@w&`ns}FaIwry?Ez+@iZGlWL-khZ5(a9_0r@jq z?u2vtw^nvaaeBLZLjqm9&Fl39sb?1mPh-~>e^-mA&KK<M^bydjyF7ZkccaJKzR}a# z<nKTy@osJMG=+Ry{ULSJ>Zk5<20FcmGOF>>+2rpM9$!mSs0pKC1yWo5U7p^cuZ3Es zw7$EeH{|c`Dku&3Hlxe=R&;f2tMP>}kb;#lG#qt$bd}ET&A#e7Z{-S*D3}rO(Y+_& zYsDz-^7=56DvLwgdVG~D>I>1vOE#m%a`aYoGzEjcAnHII%Q}GlE^zB<4hD6Ctf4p9 z>+xe8=^E2Lq~Mo41h+KxpyzC^Yw*+;c*Nq03QtjPzNlEUrhGxQry#dTEUu|ufLkON zTjRNf1@hKYr~!x-=1zw`vca-(;E(>vxPxt0N+lc3iBRe@N-+lfCt*^-5!PRkNzY@o z+1myYrA5$(bQvg%R42j9@b}!E8(}8Li{*e*T4>4@Fijm|t-9ZI^!uP@7d|t;O?;~8 z16>UB`-hOF9a8wc8U6&S**OYd+s)eEJwk=xO3`+;ycMshc`rR8eXqiIDZQ`h==*({ zZl*x;Qd0uoAF!lj$}+EKE$M^JR3Torq^lws`i3Pv&4Pc(lCGv0h90q`Tc@z2mUOlB zVEhzSFXCM-r8r&BbF_xZ;uQH)tLTuei)JvdHI{TGdWLPVq!TTDwOi7y>wz9iI+dZX zt(J7%1_V3Tl8%NquZt|{iDoM7b4xlprg>dsNk@k=uUjnXR@34(OS&>$IL}^7y4C)= z&yqgEq%K6&j`v+vm&C=Tx<%Cm`$D#3&sObt)b)rsHhoEoTO7-(!EbVA8DezbPB{<1 zaST`10=lPWJNzu)&!T&3lEeG>zL4&z>mA<9_fzSfn&$8=d_SJ<sYwp+=KBn~r=~c3 zF5eHOduoEiJ$#=?_ayqm8~ENv_aySewS50sGVV##hs*f>pL9<mKAg|@@6tVW`NM9$ zf0OP>)Q3~}{uSJ}?#4Y|1%I#J`RCKBcD`A)<E<mL4K=&srh?b1T|<72Dpc*7I~X-T zHvDnq`B!r0LQeV+H&wghC}^yja<ppa+f_S`CT$)L@m@_Jh&N&Vu{T;7fBhpQ)z;kP z%=5WCki3iYPyd<B{}ttb=qr2G&LdS19hzTdJYMzZuR`e{)})9Hmc(TKNP6ea-3IxH z-bqzE<{nEztP%7=gR3r?I}6zl4MCL;RpDp-<8ie>G(PIj&y>MnddGaxJLvFfz?6KW z{D(k}Dsz}f9(#5@%bVi$Ro{94BGjg(>JmrRWJIcVRvs$YSGDVc?Z{uXbN`{uUm@Ie z72ocvJhy7s^uy>O1UZ=@CgPW05+X2mJ`Ty;j1mt$K}kCw1_PzU0028*I`kOhHG)#* zzN(!s5~Vts^_Hq#jVOATEc$7JOhubX#QleAG!_>yj|%Xc1-vxGET9F651=ZP@fISI zCNqMw{fC^0?|ixHl4XZls)`14l|vieTU)jB5lfv5ne5Ai-^Nh@iP`;!4t#O!*n7hm zThhLl642s=!3F#T2~{Wo$kUMb(8qNDokvN?r>uX3WRCHhvh(aOcJ?0KarPHRZ{c^& zK6>mJ+I<SdwvB3akh1I=zL2W4YkDh*?vl7{uHgPdtpM)+BNO@qWqXju^PwN1wIua= zkT0#;c{VuceYR?6<AJJ6Di07hCn4j`%J=tIzD2URr1Je8hYU3KC6#Z@t~`{y>mVn- zRpotFX5fa|i9E^oh>I%Uyrl9_Ur?6@9Zdd1<(oSWm0z%L>jW8X+HrK$_K_-n!M<%n z6$X;eiQiHAmhoN)DF?%O5H<5qT;(AQnWyuR@m^U!7T)`uMEwYA(3iF6IQ@01^i0%> zO56bohf}FbU&0cBbhv_tKBJ_{m!UyRb@S{z`zVr*nvLa#G!H?VZ&(M(Q4A7d2xaUC zSr*bKNO^-&e#0p#gm6&`I>slIc#E0%#ziT+sRZ;uIp{)hhn@i=e|#jYT#_?I`Rejj z)jMA*Z!Cu{%bMXL9knZG9>V(aonKb({J3Tc^(9x;Ltokt{q0j!<buD4+y$>{{ZzB_ zvznbBFWmV-`LSVtt=jR3Q8n|m-gjxPIAwkLspad-Pb>F4vO8SlM~?_OxA1I2wh5+& zrkv)AoR-SgoVNDr(~&mXK6?XXN=o_$6nO{2OTqf{bdT^Xgnxqg^U*8I(EYDLxD(-h z2ya68KH&cgy|D)Oe@D0#VFv{BSA>5>I1xo^+r&7dP8eHLjM0OguHA++h0@6{mX30! zA=FoNeCa<U{6iRCM+iA7Wl>W4lH@^KT<41U8MCJrO&m|jlpoW9*o*qmWTh`RBB$c- zXXxqW;7^n%rCeyM7!qH(!)`Azz?I|&5Mi8ATf^KsufI0IEk;Y8B@Yt;zY;u?pThCE zg-#Xdw1w#$0BAd8l!VYMtD1}9dLKe^C*bTC(7f0>O+H+pe+y(^ZOw06$Z$8(CIkLQ zz}d#r`D-P8%0e=z0nSAz!$%1Vl2R_WEl5hg%wCz~-sM=3H2KoFs-*l2<ExTNcQ}_N zl?9SY%aiiUlO``nasv<e3zA%HlV1rsdqIbc3w<3sW{jR6cc~41>PegUp%HhxO+0L5 z{MIIZWGmN5{|)~uf&WV2zY_Sb1im#1X#a)wS7`r)E&!^UugH*mGIZ&5@}bZ*SO%uw zT(5n#{~MlszO)}@w7S<miVStH{U$U=(}n4juYZ4ateYaVPeGUV0US_^e!cd0(MlDU zUaMd1koS6xPWxzdS$!IGud<0!wZ7JKRIRG0wkNbNLHj-~QWe$drAiQ*Z=IhOxOD0A z$I4r?ewc!}ekhK!!VKd3+Z5w4gZN(ac|_gUDLBj&hO6o->fc_V_kSZP#wW{^5h~19 z;S3cnQsF8UwyJQm3NKXQ)hhgn3hz<j<0^bng^}gQdawO%IzK$2v)q##n|r%Lz3%C` z({uB43JQDqwqS}(a2MtmloaF_<g)=NJBVy%z3KEns<T9HenoCF_1nzRT&OTmBRA90 z7mPYswT{ptAzsp5&Vp=%=UR*vA5K9B{>@tWM_+5jKy#G9YI8dlHzFQakqRn~(|00Q z{GD$6I=5qNIJzl8xCrX#Sc1{C6}Ji3Rbk{1B=N3tf)Cn-V*rj-Yfi?1ADrUYdN<OB z+zuqiwp;K!<abLEJ%dukpko-aj=C;FO&WFz;+{Vt*+?d+v$+fj0bnD3croHZN_M4O zh2NCa&9JB)OLB5RWdnX3D?dQ8G3bLz#2dB|#X*ND-grL8H(;<iR(m;~i>f--)F78J zsCxq9>w<X{cT@T)Pb0+`luhwdpQCtcC*ictKtm1PUxMg4w__yIf`c})6ZY!*i=n;5 z<#|=Bg}54!TTLieHjVRMIIau}8L&zV8QLIExCi+~+E1a392ehHEP*co@T$(PfLCru z*<+FTPy8JvAm<!9VgYjA^u%lk0{v?Q{v=CW=+IBr0r~@K>?wd0_l2enLcJZgk8Tj+ zow-6R1#~50NS2DBXC1%1d4*(&+<RNi?7yQ*%M!Ym0qw4(32+4fyho#mp$Dj++!t^Q znB_v;sR1h6UDQXPu9+{y!+_8hXPE882FO7Sbq@l{-{v(6@ixH!j)Ic*H{$W#$(R`) z21kSK$b~<qBqZ=3nYlt70B{Nbc?9IzC4YtzhP{I+#9=cUrwc)qsR8&@jlz5;X3RkP z@OP;93^uL<UJu|G^u?j95^>lr2--2+7y*1ry%C7N=#MOh&BDNQoMhyp|C8h&1J1K1 z9+x@dhj6(&vW?xVaL@>##Mv`dDN=wV{zOAE&-lf7j0Q&(_%JG>)Hr{FJg_74Gpj7! z5hIrXzSKy;XstE#lbbA&euRXtFiIf09urQ3Ad!9)yur8;&9d8sGn4eA;A@OCApX53 zoT?^8HS%Q|o$HNf*1(@tEW|T}!|c(I7=GzQfKNASfprj|f8bAckf*_r82%Z^Iy#Ln z3a}LrhvhT=Ed7V+a9NVr3KZ+uWQ+#m`M@mek1f*Q!=QGYY1~waA>RmuQ#6to#h?of zYDuF9$!BViRCzM%WyUo~Hg@CZdK1pfO8E6gpd9eMfIZd+ZmG4z{JF8I7?`gB>t6$4 zS_}TY@jR4=k$|7E_>*EVD{sZzZ|u$oW)ZL|`eL%`mZksMm^uVVYk<&cBC$ZJ-&o1L zX6z%(^MJL>#C)EbM^ZX!+~5NI2Y~&`gujgbXeIK6(FOa)*bju4Oe7MU6-n5ZpgS1v z1K|r3iAqvP?^4_4+D;!1q*RQ(G5BLSBv9898D9<qe1@$Iz2z0;GNuDwrg0LvktEJ~ zTN{QQ<E#a|#l+z;DRJ6ujUdN3X9IqbiNoVc;+$c7vQFXL3iur+4vR<P?6tj!)@3@6 z0sgFsLn0Cx3rUsy-sW8{1Pw^zFyJ3(90h*NMrWgFJQ^;D8a@-H-bT|-uj47(C`_uH zdlEo71g7aqNbn1`k4LE7ivX%2Fe}H5gQQztx4i_tx}1pn0NO}k&Mm=zvlT-1(Ag&A ze1I+v=e}erav!m6s8P9p2+-}}+zkHI_IJ!1ocm#b4uo@8P`z#T0J;`e?Ee7zTNu2o z6yQYrdbBu$amrG}<4<w^CUKr-e==DS&jctd48E9H8)Ki0*^<ki2hhSW_<M*tvg|iz zOZ9E6$GtZU-ntmzY4-g%h;=ulXq*Mmd13J7h&uA^SFKdw>v4ap2~OXDuIQL&uR{fl zdyxD%f!KN=Vsg%tNK5UmS|Gg&gm?NNiS)6g)mPd-Mn^C{2h2cyRjZ6z08oql`AMqy z41nAO<~B_~IuGEp>=$4R7}JqlrgO^qB)w}K;OE)jtN^?buv0W#WUNC|IWD&EnI&f{ zBLvVH1eU$!QJTuHwI`w8L#aD_51^YgSW?emoS)g>n}gOOoO=O(m~c!1h|x_U;ds!V z1B->pyaMpseaSG&^Y+G7iprM&yI>_)sAQaj(c^f_J_X~LOBx6GB#k2^_<j3JFw(e` zGJqBlSk~oVWyt+6dn3jT=k@^P3+HC=7j}#bnfn}o&JX8yQEsOr4rT?9>l*>0)tKZ@ z>KVpKaco0FGR{MQ|H;IWdWLaEIkuy}G0xk7A2D&Ho?)D9#}(j|aS{f@puwLkOX`r< zsY~QLo`FahCkJp^ZCd$ZoN~uHbPvW^33zKC9Lofi!Pv_j&qHT3_I6-iZep9Wj*y7! z99KhcGvaMP`gI>fg|pFdFIt>&{sj16O`Pzkki>c&+aUr*{5OyU6ojR&=^v2ncRSqZ z{>E^?+$LPg>vC}7xY;pM*K;P|3r!r^HjHzpBN@Gv%UKUN?Gwv#r0!;%#~phYDV*;B zezl21bgc4X>=zw5n)5q>`JjnykryMr<G3VIk$o9R2m2t3495Ayu^Y8#_PzjoaFS-v zA}>Zvi<^e#XT&TZ<(r7IZwxPoJSNBetWeDm)qtO7;*f5Y^<e3xGxp}Vd&fb#L167L zG1+9aki0nVJ-aIQ1|Z#GA~Jtc&P?srxSvl^h>rp3fBPd^1<6_Ni>m+@SLrAsL!jkl z(=cs|G#UHJxHuexVC-yQ&ghRVG8pk-+|P82uK-d@Uqp*s8T;RH!>g6d&IaZ#6MG%W zOm?=q84&J}_-mk{xqNa_kbA<yEs+%&jCfM~hBb=fGeCO9L?ns|CqMrGmMff(0Jme| zBZ+aTjF{e?gHp@l-$Sz-=|C8(kwnIR6yR7D|0Q}1GgJaljRuG1tZX61?uh?&p2GG4 z^ZWs@!<khn7sNxg$x?1ao_nL@v$PZ!byNJs(8tW!vp|1)fGnzjd*VYtVC=6DNl(?H z;Fb#i$fn=|4#fXl+jRv%Uu0%6rDv`AU*juJRt0!~xh)EIWDWiqpN8c*^K=E!e>y-G zRRgEf=~meLfcZ)kY)h}>8k9NzIbLP?2<Su5vm@GHuJCyAC7XMx^W`FyB^&5vQL=C~ z=tuVuCygtv##*2Uqh#UnPCqJ3lk=sOD$Aun|4EcAtW4-fWjVvSr9owR5a`dFSxm%4 zRw%>Tf#%rd{AilQejkYOXvc_AWYJT@9;JT1$N2!NM70<T?9wPX!p%4ARhlEOaxTr6 zIckBu!ORiH%lHWr9Y1mY4m?oX7~61v86lG4U|C%gP^AA1jt$3N=bdH1q?P<H36pId zVoPKktOWeG&SR(`m0|1${3%UMWITb+<apG%AHD$wzXQ<wVeq@?_Kqi=H`WO88K@a? z!{GhFpE6?V!K33<=j)hsh#O-fKr=O%m*3Vw%h-pU2g((89Wa|sY;!^r8I1Uea|A?u zH<3LPNSBz17Ev*x%eAaXA^r$RcbkYbEV+DWHez(R%Z~};Zld@UkX|zpEk!e8w#!kf z5I+XeAguPJ@XeyFWQ$y1H7e|hz@$xu2y9jULRTX?Fqgj!Nb5~R3!@*M3P$T(*X!~( z1L;B&(ZVPrdR^y^R1|Lp(%mLvB%_So<9c?M!hQ;vul2_k8H~8Y^@|Y-@nayx<3`rV z!sv&MVDt)?K=<PsWdbSBM6@u<h(C0NCM(1$AgwnMBN=7vy{-|X6!vCdUf3U7WH90* zuD3A-aQQa_=}r^T!f0jz82z)$u9sQ|fb_D7XknBQ-*o*Qb}m!=5J>S5Z$x9Nrf2LU zuGV^moe9jm{@5ae5sieKVGc6cDj=;f5iN|~oCQWx68<?;A#MWFcT7YJql`E%;YVm1 zrg$BY=n=c<j52m!f;(Md9{}dd{jo&`BbFr$U8)d21d@SV{hEF;0FK&(qtFd#ePLt( zX{w1xEGZeiO1j6Ju&54;yka0$0BO02NHr1}jI$$QCF~-`X#@N$6UQW`W=+PvF(H1O z!oCWacMpKgOjtR&Gr<jmmP>gGd0sa2Q72TK>`xfJOyPV8cs%-{tbdpj3-+4{=V6Lu zikZNiIRLg~V$7SX@CYL0a8exl!cn+GPs%7m%ehf_G6^#E!?D;CSwc}U*7+JRMP__i zC&JA5Oa2WVml=;!RTNw{n}f?&bFlk-4))y4!4;2j@Vz%Uxbh1Qu1YVVd{^gk@cmgF zT(g0LYcJs7x}R`x{hv9w;e8HnvXxT4TPARD>wFG=u#STtoy);bZ{gr)k8yCv+Z_B- zpciMx?;Xv-UF977>J$!s-OIt<mviu&+c~)B5f1L%0S%QIf8RA6+<z|zzkQK|2mZ~$ z@7%Kq<@d8Vc<>Ys9@@;o!&h<e$nQ9K^sgK|_BjWSr=p8x#_uoS-~e^F%=kZU;^2ur z96Wg&2Y-5ygQs5O;OWmfcxDu)$jta>OAxr@UB)^N6O3LC6O9`<OgD%hcl>CBgyW7M zYmivn@#72<h&w(@<;zz2CUHLdB^V*D87G~D;j)XOuB9Upcly^MzU(8kycoynD-y6! z-#Hqmv+$Sj2#QQ(=+F^kfVpxk#@kN;`Gtmxp+7_OyXt-l(_<eJA2$JMlVFCp8pviQ z3a<fhkbr*#O);JeTbH#2WA+oIeraZtkW-H=1SAz@j=`Vg<C$<q&v;NY@&TG{f+wOr zimum-QE03HXq^dug>p|I@2RWjE3BX2z`YRw_-qq}3y>(G^D`C7RRG^&qA->51yJ~| zGp_>A#@zrtsKL@jJDv<C*Ew?_NaHzxUf1A6DpO3Hi<Ok?;>}2<{SxD2M7|&t7EIO< zw4&>KZL@I}kf5}uAt569G!!T@U9%`m{RfO&=aVl0C;RqV4DUQ3#s$!SjfBce5ucO_ z*(NM@K@p^GJQdL@DlKg;MVH*~#7+s20{GjCzl0$`6O%m+J<QV-k7qMSKzAm<aSvnS z0Nu9`AAs&+7tvjdCI4+edIEpX;x8dBI$c8~?*Vw~+7X~zSTijh=H1BrxW!nc8HtDY zLH4N|U}Gn~N6IYqA&4aLebRv^lQ$sopHJt)2!bX{oDcGel~hKu1NS+;O(OB*$1|j4 zR}lsQB}Pt1NF;t1f?g*<1p5L<lG;zS8F!-TsG#o?cq!%OAL2-iB%f(wqLBa-o)YfT zIASDOiHS)@c06_-k?92uNhCa3{K#h@o5T^uMHntCf%7ThP{djS8Rm&&jXI1O0-Z#; zBXL*+*~Sado&+j4akwlJgBZD<gqLef1*ep73gN5<vPe$G?Z`inK#Pr*6-dDS8DS<3 zf|MFPSeBENuGJZ3?p$AYt4N$<JOjFvG4FILr_7j*INeJukva+8*}4B#jM2<N`TsYM zf`a!sDEx$jBHMgQoW6&H88>iH@>32<f5pM9nH<bs$ibWy9L!zE!Te(!lpW?^!4M8A z(m7Z-frH9i4i^8OgQ^1@R6obTlGiz?@o})MhlAy3a<Jk;4pt_X5rcLAqPxM<C(zyC z8MWmUl$?$rH5IjU9{3H$spC`l&x|3yk>lW*nlTkpHpc%0EjZ+iUt?ezFS_9g#9zYC zkxfX*S>5RH#u21`t|4;!r{GEu8FJnRcsY$hh;k;WRzxz*<C#gD{|Y*pNm~X(<7OtE z*~!5<7jy8PA8~Nr{T%FgnuGHXa&Y003d*o^G6$E;<KVKj99$maVE2_ATyZxCSG~Z& zHGkvax{o-xJ`RdGGwFsb4sKk?!A)KcZrR4ct=Dq!)f^P-PO=*=I3V0f4&!blyOZLL zXE<~k<1ysiNiO3pzE3dhe4l8{L717`Y$vlK*?WZVe4lgBng&s4Cbv!IpnV<({ss<C z_j9muI|m)NaL~DrgH5k+5IDv`Xe<VDW^(U54mP)Nu=NZMw(aKNtQ$Bu=T{u;c$9<l z|H8oqA93*AI9QjN$rp{`;F59<cGYljc@u)dC8Uj0erwP%j3PSOk@9<k+OUZ9ams@R zDYqgzVv_Q(LB5V6I@yu(m_g=W(Rq~qq;Vk{yNJ$~r2N^S0Y0+8f%v;dU_4gQ_?r#d ziD#j-#1zC7_^5Fm1~7p=eZYwh!WofABpkLE(6_gnaKctJX!9o}+jepV0>G~&obynG zNPZqjBb&i$N}laf3;?>n&jc5J4uz8P8rN}5Mwv1^vww`5WItnIpq#%B@YKA06S3l@ zlPjq+sH%o@Fe;fk>n#wH=V(%=Q&kP;`;b%W>@Se+;?pguC5%7x4Xg}P=N*N{DFUeq z{3X0WA{d5PBB6`%jI!WU^crI|QrBx7F@ZM5QWt;f!mJBSqZg1f3HlDzZ~|>rrY?Qc zjSUDS8sEduwI-AvcNVED_M`n7dKVz~n$XF3P@9@mB$LNyx@T3P7&?FK(D{!6W5yri zQGc3Q(q@LTgeZ9fKSs$*;Kf#wj``eCaylk8R|)w!Q%bJN#?UC401szb$!c(PZfV&t z5H?Dmg<&IXrAhe3i3ktYXTnuF963cwX%(a|+@)`$d64Z!$Y^iL8(3;ADLr{Du#K5t zfGUWHnSaJTPSkCmbr9vBi)*Wx@jRv{$zb<m#Nc-!d!uBdgBUy;?dB+1gSK*&ECD+y zCG{xFJ#!J-jS2oLLlJxlbyWmMlWOD|Uz>=6OFmf&+>!?;6WN(q)7VNrhT-a%xeYyo ziS&X#b9L?llgJCJfbu?iTG~T1h)7cd5g7-886`g*2O=|Vs3Bz+vmb+1b~DJ&d4k$C zZLQ6q&Cj{t1GTg!+nL~X?p^7KH`{1xODC+f^|lKjC*uqto{PVP52+K(`y+u)v%Q5B zV~<W&T6q4|sCrt3@f>PulpTbq(iR!_5vGw$<(0SiydteyCfUkHgVnSedFLo^_iYtv zE99N4Y#iD;twG+UlwE_&X=~)2yS&>Q5^1N%yRx!%5PF(N-krOk0(~K^S>6d_!E@*n zX|3wkwg93PX{W1O$AV_`k+e>A>spYGzLM6XZc`R4rOE`=t$P7I8<e(1-IkTz0@<XU zA#eAV9fYLQ&X#ve7UZE1rJXD99LD@B&;n_f8Ps)*vWL+MX;&CePhzS38bR3{u$6X| zOtO`Iik45iPTo1nK10t)yHVa@y$|Ce?H2}(5~IASr$?miHPWfq7|CCPQaK)Q7iqti zNsuq~jr-)Cqa4q*r#&EVT;=pEecB)7T}s(1s_8@W&OQHssK}=b>X=4(v#(90J!_mz zg^1*41m)h|fJl2zCK=^4?9*P9cQ%nZtj<;q)jzEMlPU@tc;P(k)O1et6>`vC!-2mE z!R!rFpp8Mc|N30SZ5V}8hyQ8<P*TrEXBmFakKBmTv@rZ$niW#%9N_T#cA@`{Ig_X% zO~lQ@z%+*co;rri_E0$6!=xo;wnx6Fvr(ET{5%iY5~jt6kgw=G4Dp1M<5_1_yl2B` z@;!%UdSVH70RiXb02P}^KjP#!PXWf>)hPIW4W+CMl_(2Gf_&kM#{q^Q52FgH6@{2^ zc0G&ASEiwM_PI&;eG&+ZemM@eOXi~mgnf)1#?%`@wB<BD$N7I_o&Wa*kTT<s%2lwT zR<kx<%}!ebX45BTjyjp<iOf+sRCmX}7opfuvv#BZ@M+9Zb9olwL!6`Llh}+wG{cT6 z<5`5ySB@&Dy2<mEqZW{`jPY%d)Tk9XMC}S#bJyT6;aZY_gsglQn$oxfsrPC~;>`?h zrHrfWBLIF9pcge*YK{pc(@|^h0jtXaG5&#{PYLD6$eh@Un2;#zF9NIU2qhI&8G}EG z5?~aX|3`VBhOT2O#Q-lP6yh*(0Z<ajWDw(Nk{{JM6M{9?0N!rmP&P&s6KJ9zwP`UD zD5G&Ma4sY~;z%~XoX^Opjq8HwjEs_(fH0}O0^Y1y!%^Q!i!qclW^=T2Eu!;j#X0FT zG;2l~rH&Z{7HArP)%YTrgqcb2kR_Oz^dT97nMwa7`!6%;BQpOolm1OsVP?|DWCZ54 z_&1BBgJr9r(~&V7c4XpJP~H3^;=V@=jrP#t*UZr#GK3J2!GnP8n)v<WQ7SKfN4LF! zI1j4P?PTesQb!o=KT1)uu123umJW}Z(VZ7zSf|p7+tFQ@A)34l1y>A)vL1a&HyZa& zH~b&O3!gMQ`A0CLMql<cO#S_ocqMZ1k61hnqha)(p-{jy;Vga>+H~}lS%~uO9Z;vE zzu$|QlW)I5Wb}1iWg1GzH%>)QVCV;<aC^(N<?=SJXe3qrwgsqq>J|)v(YKQo#sijH zENp#MHBZ8<J?3Q_oeQoWH4zQ+s*P2MZ9b`+F$Zl&F*uF+q-DmuWlKUQHRhA{8S}Qy zPB-b-!(TM!Z?+#mOvVpU;_diL_;WR6JBmT?*)B{1=nqK#qXs3uMDUEuF;k5>YFmTl zaR?yeP5c}poHrT#d-St0U)V-~f$tF5z~tn_p8{VC$&L~BJC-05@C`RW*#zdoGZ^f& zuK<`2K+gwgi3TTfm&<6Q5(e8}btn>E!2KFWNN}2c8^BEBJb-p-up&Xnea58Q-v*Oh zho1m`7vWGH65GJH$Z(YbXN)}qO~IT#0r(3h9f@--$--^-qy4$8e*pez1f5?IyA$n) zrYkx_(P$^(k87;T`XSMoZ2x_|qB8^Va>B9j6AuDoPPXsHxTS_L)&agj<AkS?F@Hp* zAY?q_x)t@HZgL$Ii|!^oWtiP0Zwd(MZc@oNs+-KB8{JLLufWX{DC=1&?|zhSc9RD% zK8&}Kd_;p1A0)W$CQC6_Tn~_ukdIM^zl6sathxzpPToe~$pGQ4EgG!4$$3yCPXgaq z4A3$HbK$z16lKBbL%CZ4+N8mKyUAsk5ShfqfYbR>MS^=#n*Fq;ip1>z-L1iWyUAW~ zz;$>E@RtdP>X3LDN;bR6b_`}N=0m{0FzHAf)lF^!KC?R<4dTY1m5%Brwi-oeCg2MR zhia_KQr+Y*lqb_!4|sb79o0=fNq`R%IgRfC{#}hDy9xDya5sq?15_iU<*z`Rw9i15 z+QORubk_WfG1fCSa_Wk4h<2Ehz;`gci@2%inxHTiZGFNNE@BFcFwKC%hFB<E&J+$p z=9tQUKosOuHi{-KIhApA;HiwfS|aWzvzfwMVG3>tN>SkGz!X?R#~mhxmr;@pa*Bt| zXaYrnqXSbgz^#Z|Nft^*Nqd+AnTLu3M+c@rek+ko9V3~Pkyzrk4@JW)Npa9IgC!2f zG4#<TF30kfoLG&3y?Q6TO!Z&laz4I{g9HqTxHJsR^s$1LY0lXYt&9q1ni+REOXDb= zHUeDE4d@p#o`RyBPlD7^SL(+YpqaynNR7*#G!!efg|He1JKU+$5Ds|;{!aH$0uMPE znC>)!3g<1D!QIKM?48M&3Eaa5Bi$jEk(B9g`EAHz7fX!zXFzg=BhKFy5~;%wcMlhU zr;b2$TzoS{2csh6<8~k#H+}(z?}UGo6Uw<H9;VsHvWy#Q5&xVfP?xhZ1@SK^p5pux znI?Qm@pPvHtWNlf;%?_2@H*ib#V6PPY6#+jT|N1=>!9i<7<^M&I~KB^VB?#z+KHH? zCph?~s&*Td7sofXwRDVgLOkEBsqI*d8<+8iN~reQG8hCC5{*Z3(_WiKXoC%6xTp3v z^|(pln^5g9>TomEcoO|*Yb|+XCyX$XP{ng=<4(cNNaHiiPUqFqgC`TxjVC~DNA1-v z+>9|^!OcarcM*Xs<3(iMU3(dfya_o5HR?6B0nDKja{1<#+H`cy33+^TTWu!Y<nztm z+HAThG_FRT`)YrKq9+tFZ~JP$L~~A<ZoGkV9u=wCkpDy{HN_H}GaLMH8?SWH*h;2$ zt@ESXWQ{Rs@kM);QVrMbhrF_0vQg?vN~IsM(zTUxIMIu<{$<;OB>GF_ACi*BIvc4= z9C2%MfIJFzQ`Xx|h;}^_2`2ICo+8laHp=;1O64C_&^{z26K>t5Xoak~jP-`jtC(zr z;IbAnh&E4|EK{i$b^pi$tdn81quK{{fGYPg^F-UMlAQ+fx@Nu3sda7`X<0=q-gSgQ z>N}Byok+J31nu?Ky-cE;%viKDD+LjOS~n6pK5HU3&h>;uKOk@`f@G$0Qa%t?GL<Jy zDjc&GNM!3WNMi3Wi?r)&73Qkp0KLy3+6iWmsA~tCS<6`pv@t9>WU?e|i0OMs&Dz2U zv}G*YK*4_32$<bYeSr3n6Dgvau7M=KinE<TAnqfSEs<_fy*q(h_jhW8TN#VCo+Gj9 z+K4+Z!)fz1f;&m7?g~J%e!)nzV;$yD!G8mtkaZfvY3EkLnTxs&)IPT}XmkYVHmLZl z92Pn$6?s^T`=)AO8XJv+pii=zsDGbANZiq>mZGr}DnILV>bkT?9%f23-jAW3wSyqE zZEl6ErRuIGBD9lkrFQc;KpvoWq0Mzmp1S>5TVz$(2}Dk%ND=W%XjZz;nI*)kP^T!( zc2d+Cz?jLF%VnnnoM!WYaX4>=Hpm`Cyt$lLLqTK@rubmz2M}!b5Q?Wb7l1%^62*r( z7vndZHAcEK8T~jrh0@13cR`nBr&8SQ{BQ;0!)PL$?0gX1W)IIm4f93vKfrI}p;6%f zbz+|m3UJLt<3VJ}@{u6u*g#kiJi<idI+(s$okX3E6NIIqz(Zi{XPrv9>6k%e?z&0< zvQ~4;W`HT#vK-@nubP)yvGM#wpgu^+bVMOskf=KwE0C;h1{q3?CWvC_+Ej8~LK+ax zF~}C90}V1SBQ&NE=r4qI6+tLs0oRQr@Eyi)0HeP!NGi1@uDJE}C?GK%Xm=T8Cj2!D zTH_WH?01QGIy7M^g_1;FAtt{pH*1~LIe^pH6?L~zueWh(0j2VY<sX^rRBD)bgIHck z@G$QZo<jO(5W_b`gFiA1@MMPXG2uL_Wd2p8HkR^$qyrpWK9tZ0q$fh0Ob0qta>eVD zk$fxt5{q=kLo!SR1^Nh}kI^qd>F7teI-;Vs9?+lDFG1-<h&69*DxlBOFG1;`h&AtN zNXz<^ehEsBvv6M72kSm91IoDunZb0dM8diG>psNT$hzMk2Maq{h(;oT%=TRauIgST zQS38*2Q>N%Q_yJ6hoHSyy6BL?N*5h6S<Sy|f>?~M<>b};yTq_9N+6tK;4Cp*kE7$j zN;^P-E$;etm}bcJvC>7S8CJUJ>_IXcpDE70ko%I9xIbe8vi|~2H?o8d0*oD5`XP`| z9_@LrcF_p|Q0HHnLi^yUtJlCto=ApH>Mx*fCS`p@(fdJWQZ^aZsZPvDlO~Z_lzIUf z)RSpMr(RCcDP(`9K9822G>ry9>LuuSlTIeKQU^gtO`6N8Uk*id9;f~(9??rVbp^;w z+Qree;9+w5dMfP!6g+uUkfPs35tB1^QuIX>F?lqd=u5p5OioE}r)UB=n=<MgitYjK zl#DAWx(hr^8T~Vg{&q1ARZQc${R@l3sV8%Vj$|O3!?l=+Mwpt%Jls#XGq~~}5pD_B z_yfW%<!Y7^?kujwV`~vz$aKk-Fm(}AI2S!;>SB&|qgzj{;^?D<yOQayCER+Zu$^!l zINC+HjT}t^(^H!`8=XLz+QO+rAjzrSzo7~pgCwW+>_c>kE#>Le2plP|pxNU<PHdP~ zL_6}%8!(2ZmC$r3oO7T*rj=6M<tzl^w0RUyao&rjpSF<V>CTTJ#%YxlcRR14yo)G4 z*;z_?7gIdnN&batRTM9EzJf*0v}%f%Ij<j!_!5d&IXf^8r!A!kx7OK1@fwP+bl#4> zJ8d}|sm`0wdedqtUhn)05}#H_@doFvTErVD-st=bs7*VC;;WqG44rl=#aBCjOmsXH zU*o)v=rmD$t@AUY<E8jI=T4&IqxdP#7l=*=#ZPs<L3BDPzFsswKL|Hx5Yu#Yfd{I5 za(UgKMgnqnFH%>!CO|i&-ZTZCemC_M3_K*Cvf4#NR<q%~(nX%&)h=?euT;Nxx+#Uu zKGe8!W*>p5=zN0nw(;=a&LKMDRJ`j~<jkeG11AuHku&dJ;MAn#RGdBp(>R)2;xDA0 zpztdx?t=Rk7&(jnCh?cuYe-+P#9vN|O5v}dIPmFZ1Ua=ML9^)A<%nk4>k(h+T8rQH z!~-3eU>~`3l-H4h$f;!|zJoyY1N@x`P8<0)Mn+DfjRML`$15a4<J1&Dd^FM0VGAkF z#@7>&*iM*q^g<;*hKl5Dr0N_r6YI{xAjm1O)7pv7WrP`$);di)iHm_QJmdt=S!pM! z($NjsdQ^m{+lR)_*~0EzI?f@>t2-NAF{j>6Vx`j^iBvNGh`KMKICH*lr`&YngEOd^ zp#~;n&JWmNqf;Pq3eBK7Ku&?}(CRtYaaKAW5((dM9TZZ|Y&)G9;S+<A^=LXoqU^BI zX%abAG_*rK<UGc+`i3@&?>FdlNg`<<(MS(1=k$_*>BXdyRf?f)s3$l6FTwXx<remV zOX7`3(NlBoCVfJOQ^MILxbB<+fQN8(X#J!__p6hU`ePOX9b%C-7*B*!2!Bfg{3a;` z6VB6m-B~2{)ppvbpnVO?Mn&V>NXzM={z;=-7S(v;Nk}|EiL~(%$zP+Z9^j{FhNTUW ze&9=~@@IYrwWE!aFjzERMRd=h34T>yNKH!aXak+-Oe8ypLL=mkAwPg{j>ZVfJ&7D3 z7(O;&<c_7R&99BZg8aI;Cm`(f3Ad1+!MPIJVZyBx70v@NXD9rCJPs~r8puuf33aO! zG|w)it#r}aoxL#RIbbggrCx{|PNj1_oSG(5<4|bca$;=5CQ!}$w{6HG)QWzPg?uoL zAEG()_EQOT_D6#1UUVSw6CS#B6iB5mABNOVIh9TZ$<)T*uSM#ghya}vQmB>rNPLZZ zARQZ0spC=OyjPjPbviYXVqk{YuDb`bQeH8SJ33z^y9tq2Wxclo@I%Btoja1PLqkc_ zwW62gU1+1;L}!sAM+(=tao1=d{e$9kP$`^UvDb_dly`@$HNgo{4sv2a)D<H!?+u2p zHQ^Kk`yK?zT!*_bA?Dp>qwzy0pA_vyB#_rxAaoE)rZ#-ifYi4*weDW3dpXyg4o7j_ z#fG61k?OS5IVt8B3#d}0>?V%>5>A{4rI~jHCDIwHaLvSq1a#ZHdu(*3N*21|S(3td zgN|3pD$=MIb%!v2<YhB2bmS@wl8TYX>ALr(0qJHEOk-LZqQ9WLbS6u(TQ?8mJa0RT zh|f-i+itas&NQud(V?f+F53B9?Yf+Q?{t#@QM&BE^Z*q1-(;lDN9sx!y>Mu?>u$tX zyFTMzdP&P_PG8G7s}&|45L)S?b5P0DFF+t0bMH^eV0mP-3G`5%5C!=|pi@`6((s#1 zR$=3B;(>58F-wOGq+f&1Ac)4fF5s8YVu{WjNC+KL5RLN*QcQ6=il7?jULtfoWhGCu zOiU(QF`4?qSR;N4vN}G*STqdhuYr>F9(XkpRwCaz)YAAV(h>-eNVmi#8Lul{<WXMj zdLM*Wy4u0bYED_{A}8}|*K5E@rlx=&ih-2u{T@;yUm0cGFk}gQl=y4803)9wwmoIO zdhkF6I`-VRJ-)TW*Ch;YcH5p)Tm8ad4}on@L+j~gd`(+n8Zn4t*fJ2U9l{twHjQmh zU28xXNitp!)~G`5@n|!HEg=0~EB!GQ;|4k!;m<=SHpWqX?R!2rr!|Np1H_Yk&yjOl z13uhl$=luAvEFH$0;7vhTMU!sCn+|J8|>&y<{1m0#}g7ZAEnv$w2Ndqmavgd3`D*x z%eY~+&PR+RUlX0m;CyRv*NnSU`L5Pq2l3kOm-TCtG?{S67*M|w1DP(=gD>NTYmu#U zH8hklh5DFnPe*3}gHYeKi>^;>SkJ0_Frrny?oZ&;BTJ@-4u&My7b;NC+k9Iv&drFM zDlx{}(9y*vn*2sVAV%QUY0y8*;DN@qHFyW^CXJBCz&7nKz?eX@WQP(8VXvTP6&oSi zBc$i*7p866h3HABVcDkp5qlEkwg-+Nwz!taofG;T@d_+wj%^PVg1I}F%TlPMbGP@- zMbdIuzc_J5*LIw?FtU=;2HBHFCpC^tHBtbx%{1(;S%YQ|GSbk#xJlACc+-+SY0w~j z8<*DSHhzq#PAeURNpgsgdE~7t*O)&_CUhmu8Px)+32{IzM)ygi2u`kyFmn`wz~GTa zxRfDbYIs3P_-6j7!a;LDA~~B$qzqA|r-o_a9S@OZQ=QVRiPdSu5+x5aljFLQ!pXy} z$r^V=-$cqj(waosDKXueNc_s8Mnxuj6(GY3s7?##7|j4`7G^FC7?TIlkqoh8PLZ(? z$=F$f+9(~VnJzQx=4c$Hjx&oHL`|YgA8$<#7l93qa06PIn%EzpNoDm1QNw5BQz0l2 z{oUG-lrS0WyQm&h@;NdF{a|Vuuw_rcf^8;ls9IR6S&2(Q=Wr5tTiJLd{oGsu#!aD7 zF?nWI)yS9<WWS}3S71UR7byVDI%YSIBcesBf5j2A#eItn%WOKhWo~c^*1^N1I!%w8 zlF6tE)vuHzad^OuBba7pabyTKcW9`|s?9M+U0flL$+=2);9&kJs?<D_ZB$CLJwMDR zRjtgLiExO4awM{Nh>}iR&<_(FR+vRVGP-wTGg1$9&`ZQ=H=RH@lD9=Vi84V=ag%U6 zN;+^UgzHE0tqvDoI*2&Oo1+E|ng<ny4bx;qG25pp{m_*}IhGklHILxs<DdibfUrVk zffZ0|C5JhfC{WAQnH7Q<rJ(EKgcA)WgPaaq!bC(qiMR?q!WGs~t5X!sHM1cPtUnj1 z`*kKQ&WhDE%>$<@p(Bm7<@(`@`_pIw@o;IXO=M{sOa|g)LQ^>5y9PP{$)H(lJ(w1` z#^SV8W2mz%y(R7H1q^P9181aiZK$IUH{3U?)9AJpEo8ZE8-zJws8fh`vlwtH=_zXd zaGMf=)58URUlzA9oT9RH<f1<pkLp9FlbE7GA^GUa#jOQJh;Ax}I#Mxr^B#Phh&jgF z)fT69@em5AD27Z>MKO#*DvFNVtD>loaNyo1#yT(s8=qq;F>oOne@0$=cc(9}!?&fW zt1YjoqpdsO54CsZ7nJ60@%c99&lGvR!9bqB%iGc0;>*Jq*z%_5HRCgBQPTS+;hT}3 z8O7=Yl5JhRU!OOx#n;^1)|Y}T%(pcplkrKbJbWoDuOH#*n!Uc+`{5DWdGyh#2<D?A z_MrtuRZxPjS4DmwE7ywy%a9^{+$y&nA{O|%8-FTJz^t@>6;49s7vfsCw8&fU7W(cS zp`xnZ?ygpU8vtk}-&U`$hd#>X=?MiSF7d6tP{$d<AFNZf__JOihIMp%oABv7&~56V zc&J+u@d62AWF*4xHgObbNsGRy<>xPn1@M`zAQKI4!>9E+J-$Gon>p5>u~VgQ@e+eX zE*R?Y`0?>DDwRKU=V6g6%H2WKp3u0xk%*qz6Y#b8@YOC~i>JFMC=t7STRc|g(YL$s zL9_rq#wS112Q;KHN}m*K@sboO3i60!B+O~<^>>7F{9WV<5%|(t$P)qt>eA!sY{nPX zLJ+b{h`9B57FE|&N)SZo??yBM=bFt#Zc8L$Hb67?dO^8UqU-ttT{aTR4|U1>Dxo(r zMG}$?DdUi5Cu+Z?J3ze$odj9Ihy;2Td(8f$iXjHUi)@%2%^iR;MM6nhJxzYqJz$^O z^wKQDwe;<e9&p|4x<%L=M*JQ4wfz=9_B-Mqz#B)Rq}fW-mf8bL>?vzpdA32&F`%Z` zRQ62cx9@N!+mxXkzGIu5#t~O80-I|${l-6Fn>?)X-q&mklD>3xzV#v_v^wnZ_Hnym zOn7Wlj5$kOAnmY$xPH;F{Vieau*K_Sy@aygX&C>sC%okv=UVDoY8wgo7H_bpIj~W5 zKv?*gV7({U-o2%#o6ZQu_<6-<e3MUqm+(ZtKUfm*^>j3OeU+V^_{<`G6L9&`nfUf& zS1*5866CtN1D#Fb;ZzN@SiZ<t+0#*p4+i#j(MSIZ<wpRU@Hswu&;g&z!@|0o3P16$ zOO|?;K_lQ}mZ*XVb>riN^chW31YO-B4?R8_>huKhgbYMY3WKyG4KXUXb&J2n$NG{U z@t~2|1JoW*^EOYg2U5X^q)}0dg>p$p2i)R_V30O#g^Romn!F%iD1~gQn>nWNX3gp+ zyg9_&)RWy9HU#A_cg~t+)zOTh5G)@A<>YxP-PB1k)jf~?fiEbo7`xDPJdfh<inR|F z6hXA!?w)NddwfIGi*JwOKTk=_V>Z}ZT(e?9d5y;t>}~c`Lxy;8#<QxaqZdNP2nd9l zds|Tl)$s%;xqG{U{x;}jw;COmo>|mKJL3zB1^F#LB^e)BkX`x2yVLXlW`UMU{_ZE! zIB^mc#gv`DR~kcqp5gBb`U0WKPWkE4aHWJfqsiHaCF_P335KRZzVyM%h>uO8S*Txo zpk8Unty^x9U$l`O+raMZtn`ak8fgE)5;hB%H-XlUZcNF6HvIYUA<<aWMM0sboD33A zJBEG$O;u}tTsDTrl1;6?5PQO3VQs3fqz{uunmXvrvTl*z1TN;TNqV}Dz9s5u?PzM_ zA^)HFfa)?2&;0xaRN)UQ<H}PF6}qT1q>A=*x3-c_jHM+=_EZ%;RATtDFzNmdf2SX# zrIRe4P<M;q0pZ~Z)fYhD?`yK*ORXVan=dd2;XIjz)Q;7Lo5R|<pOU3Yg2jRorVzlC z$R#y(g{qrtn)53wy_=h%L759objzR&efU-`CbqUvdu$RaC<?aYbIuz*nATcR$<3JG z&<=s7uAu0~r<uvTm2*iyp5`=ncXyoZh7stSH*3~r(z9|>r1=aV?+u2E3ej+w8vVf* zSl86p8)M@V?KnU$mQ4$TC)C{mkx2PP>+a?kq9a=i1HLJQ4_eRR$h>f^sd}-oTab^o zY4Hbpx?wVG7BrdD_o-teHr=#5plj(dTr>$j{3|VuRy9mKoix||#|*1t*bnOS+5`8` z0^L7R`5u_x!C(*bbmFty415|HlQNB6swgcxVa-7+tmyG|b#}v^@&?$PpekD?oPHCw z)SaZqFk1Or%e?%ikwbGDEni}56bpxP2Io(A^Q0_4<$c16dIlZ}hP^mYKNmq?NG_AO znNM7%VZ|P+*;3-|?(D&=D4T`Ualv$tr_UO`ps3F+#J{3GKW2f*PSDAHfL1Wn3H!Eq zAsC2IzIr%U`zi}&NJHAUwWqtw*A*(r$D~Ie)+U3c-a`+gqyL<^C{e9WHKWha7CS4R z6I~h2@R~+3K3Kj5E-AHGiIJ<=Kl5%`qe+`ECc&6?B~7}0TMB-q{>!}Bj6riyW1i~n zY=*<6qXYh<SZxHe>Q+q>joYQ(`eILIW&KRg^7<K`YAiwcc7f{Ok(N|Jfo~I;0z4<e zTKDr8;Ca~0FlT<{)2Xf}{ZUz}(tVY67&cffWAPqS$0||!k(OIn{rft6@YBG}Mk^?u zI$)s$x|%v@F2Ul}N3%0@A}n4E4Sc!2sgo4$3b+EBTIBMX`7W?57r}2ak%MuoTl>UE zk}3PnP8#NN_CAhMnE_7Qd}OJ}NZ5ZCqp)URxrn)d>^lexiwrnWh1G)RxhzD6Uf7Jr z42Ny;rWRh&w+5QLYPl|W4Id*XriRs?5?B#vn?N@jjn-Z?5mwiED_4;2oq+?0xJMhc z`p{%vUv-10vY5OQP`ZV&DqX!Y<f+%<f}mvq*UB>8MjIrt4e1s#E?Uv5v3eJDSEM#% ze+t=LA!<14;2dm}0Zck9YGCpe6qZtjPQ24jZw+*JasP`YHx^{dtdWB;78>TT`Q|Fi zqSXgjUch{t&PF^YN$3o(A2X)E)$hf+o1Nh?$qKdgnilm`Gd9hP<)AspAtU!iXoR6> zQ_FSwI$`oq3x#`JVR66do>wKl0JIU*1{%H6q&!#k1SZ#qOaaJPS7S>17M7siJ%R3? zrZ%WStu8&v7Tqj*dP8y}gT%uQRqm}P-hmbtlk$p5u@}ssf#~VL;tJC#bb2c<a61KF z?LtZbPQ`7V&2rrmmRmtT!&tKr#`zlA`c2vP_<dgA7Jtwewx8v+8>TaWa54W!PDJFv zBGWuJK@_ndTKxe?0#b<C8COI`_hw9b%@C~gb_#MbVm&42g>T#iJ4`WsJ5{1-wNpr= zAIp`^;&^+QdEU;ZjlLY(`)SFM1Bx|YZ-*!-ux$LqD)Q)kkEosa7?4I>u}7}osc&q< z6xQO|f^Aut=(J~NdS=P$h^-X8sL~cn4E~>j!tjVwqb;hJ6#h{Nduwapn;5>a?r+r4 z{s!za@}$V=jZO<fde8;!0XQznJBzb`nBHO&SWk^~OH=OfnEo2w5VUssaE<}AKw&<3 z?W1CeVbX@uodJ&%ukT5d%L+tV)rG!I;Lytkj`DvA_BVC-w8IIsnmV>LZ3}vQn|fj6 zvgzcd_htdo>fh>vA%o2XybCL)o{RZ}4bZUNN&KT$emYaIO|<x1l|d%GVK5V^TB<t7 zF>YBe!((;^7Od2tT0?%A;+P0|>mrtcHbZ(!h{t7~rj{0%i=wkRK>db%Qc``#GA;^0 z4?eEbd%L_L?Ghm8&~a)gU6_5k*SEVignyLlMcZ=$OjgovJ#h`yf6K`-BBHTOJ5szN zEcGZ4@#b!Si|HnoUfUMsz3l*Re9YnmcJ<Uo%ztKY4<^r6TK7;NiyU+%YMYZ*v4jyr zcPaMDdA7?3<I0a^3pw~=8-OL$@tQ(SSb2(btQ(t(`Dor>OgDNCuqdf-Zvg|n*&(2V zu^qruF0Yl2KNw&hvxBTP<b(H`oCRdZS!}o%Bt1iJ2hf0zMPJ0QwvbEr7)BVo$>jpK zlBZ4UxqyB)YYA(wV6d{zbQMHvYU@UG4C1q_!FkQZD@s~ThP{Xwx^12yoh;xzLNBHs zHJ3yVoWhQfo~_O?eLmDfa6p6SZ8{-<MGuZ<=&^@B$$Rz%h1RZJ?d?A*rO!zF+>WE1 zw6|*Dy}%e`Wtm%8ZG1z&7HW*?7>7|d^>)W-r_gGGydU3=_vv`D3w!<`#&YReA%~q@ zMai|0smI|Lf_osg!8em^7q$1{#jrZ3I`)2{_7mj7A3J$;pbeT+E)>BZ%t-FT>{TaM zYBLT~ba_JU-Mzu4u9hI3Qi-h=P`2cWR;E3y4z5vbv@8~Ue<KlVwEl+`WjV()L!f!V zAMH(eu&8gQOvjlRVzt?OaCCu$E#3QYREzL}LN4J+1HkQ3SZW?dp{c;vX59d`Znlyj zXmhfuqo=(|Y;N5W^fq<D%SH1?2*w?+31XV13rZ}jYUN*$T9Ar?iQ5&Tt!#NRNeOzu z&1%z|L}x<^i0KYrD-VnqRE^%g<=GVue_41bowlM5TucK+4#$X%QPQyFOyW(%R`%h@ zyeFz?XZG|4+ff(}!eRc2+{|Fl!GGe|m0+G@^^2Bzn{dbs%Mxi0Sm)Po(fCo$&={IE z%IX@10J?Wm3wz-!pi1G2;Zqjqd^3vWs@L1j6YhVeI{vM&<>byBvBC?-E;^o#n}ENq zJ)}-Ncf+FhHFa{!4|JT44$Z0aBSM)k*jfl5agD7j>N#JY-y#bo7E2EcoMlk*A$5KP z7Fc*8&4MON-=Y-z8Dyno7SUo0oeKvOI%w}<vf7QCB0}x{Aol6m!s$!s+v|DyTtch2 z14k|7(hA-#?M9Gti8RWzfy{3BXv>{~LhBh%Ui2(p-srBFHm#t*Jw11NZoa!Pzo4Wb zzaZb8(;4dR^384Yp^y5#xNQn}+vnn_ea?(xcTSr-2fnPiaBy?poK|c;dpG950}{fH zTz3Fa7z=GYFY5ydo~GWdo<h@&eaiaiwJ5?y733c3?4gsbG4_CB^Z<1_mx{#}7>thI zE^NfGiGAWGeGIFI`chA)Tr}Y*I@QC{<)ZbJ80TT>aFqLE;S#>av(;Hys%JXvh~Shv zooV5Nzv0IXq=%=c8^?Lkt^>>p|G8y571-x#0kR|b=$Sm*iaYj7c6sHtZ*Zf(XG^S8 zNp!zgy@%fZ&r2Yfm@#(4eusN8H0w)Xn*~j`SHD55%;Y*8#PEvx?v7r1j)VqMXD=V{ zfD?_+L@mSVGkMHVMA^L{o!-YE$!Cm}!D`v<RvQE6$u{0p3gVO;j0>#h&^P*Y+^;*A z(h~h#N-P@O9BrNEOc1##%#7n~bZZZtqof@*j4~Wz1lJ@ijC8j8+XCIaJvam>+Dts! zj*U?Z%mih%{Lo&P6IUhDWuq1m%0L#>Bz&rHz@Fa$eQMg#bf|kCoj}~y(zK0g&g<-c zHm*3Q&#|T0da+zl;GC{}geW#5Xi=QZ#=5qX9vNWMwr|hszm*q0G@=iToVcv1!Q{BX z6u?cUj2kN4Y6E<W3Yqu(LH@+K)#lIfXA1VmVoJlRi`?=s9<j^U6rkf2<mNn%s~SCU zA^Rv}Fl^;<JGm=~k_PgO6qQ&H=O|m3kLiSWSfSVSS~V7FnM&dtiVNqPFeT$Zjhihr zZt&PgYpZE`V=6%>rQ@udgXWSj7RKa^T<l@x73-r6Y{c>&sq_iM>#5HzDaQsD$1vUT zRM5t*?k!y&%ql>@yduvvMNXjl_~4wD?p`dU=aJG-+A^jUH60)4Q`(g@u6Q_|c!x(v zRa8t{T~iC2GSRjqYGXT&(^-ub5M~I>6Ks>Ir=MuDgv*6i)3g9Pr_bXt41~&p+Tv%Q z2He5pQ%t7cj_gm`x`PGF2YX{u2z=f;@+mXZ<-+|SCc3c=omd;0mScT;vfSrD=Y`>^ zR93_hJo6kfc?)5#2D?4&FiPZtAO^Li9!;Vt0IN#ghNX=gSvZvciMghwp1@&QQWerk zg?5O6t%8Wt9?B;rjUCcc@LW;{Y;E#)kl(;^@)EW1Zf&w0Q|9OP$hhGX;eD1H(a!~8 z^o2Lr+3AceM$3`P0kt-F1j_*Jw}1}sXh1b=*2)x%Pna!oX+gRQOUjLKfKVD99mKX7 zon`0h_TtERz^hJ0$0FALCpwg5$z-Bk4Rg~%9aJ6Y!4)tU)nD1#)DeUdjjh$E`#O6} z&s7XsGosT-Q<NSfz@Iz>9#dzW&Q1;GP&>XAfin+LdLU(woO@V^cy5S{+<9~~S9v*4 zbll;v52g$4_>0jyq&15^QyxS2irh-$l?EI|etOu~d>r}28&=zY>df$o6M%=0rD7SI z(T9HjBY}M6R;@jGhxK^YacncNe3Ch)?pe%x<KV3!&_pk=pf&6N$MJaG4_Gn8I1gC2 zqNKMnhTaryZ-VS=Y-qt&?&$5L%^+Sp#i(u~e9=l1#$-4Yu-Vtwqes&q9FzP+-Lz>m zTVc12&ueiJkq!=X@IY<hw38ae11==`Jeo{T576VuW^r@LPl!|f>R5Y>0x}O?pmRyn zq^F}d(q$KYAn_b(J(UIhCm;8e2aryD4D*A?cuoQfZgXRXY*uK^7BLeqifF|wNyOob z2n4W-ktf@sbxHT*4HM)F;J1I^4lMzzNglSxGhuX}uMJx5OqS~fwRT{eQj0eyC$@1B zUI3Xbl`}USjdj|TOHbW>$(A5LJxfAQ3cLoQcY4IexYh}@ur<Z#lP^)hwz!s@xfGyh z6R~&VYn9vnFfOpktdC3_XA!P!dtM{Zq^UhiJU_-bL6&Ndt(?TaW_=#s;($D{TZ|6Y zMczJm(tPCaB^RUV6yzmxa}aiuG}kTD%eUw^L9gM7=fsE1bavAsH$VJ{_UL;6t<Q^m zzIIn@pqE4lSk>x?d>^~|TdaK#ofbux_CR-rP2q3o&5>;=)$MV*9lJ33v}CN(W(x8w z2aiQwrm#CDMrR3Ho!)`L&tM8K)L6i5NOj;;j^?OiQuZ3!i7!I8MNlk*>6FLPQTwe? zRK@}J8Q9y3=9qW<!|7l1YN?p!SgnMlqU#iWyb;QV{zgrW8rI_JBlyPEitzY0y`FsN z{D@qhu{T|wyo*hz;shbK-l%8uNoIN<47i7#6ty|kQwz|B=mzlHE5DE$8Qvf^HSnYc z9v(w0v!16_FJ2Gj_INfo@yo6}p{BOJcd_w(!pCIEp5bG%bdXAWJk&nV@r>yh_x^ff zep*W}HLOD<x;EoF!3R^V-U$Z5qcPQ91+^<jHwEz;8tFmf{Y3V#aYI|iVDtiFaFkb8 z@>vFIbAAbq^%Xj@wZDN2oF|*(a2MkuhmS_}Q9seD9y4)y5}f@#awviN2|2K$JZ&XC z`o|GRjNO#qazh4=e48DfhB56mGB;ZM0RasKt5qMLhRWJZBWJpLZB)Idt-D(uoH?#k zW95-t!!haWVmb;UC(~F~e?_n@v}C#ipwkrcZ0hynIT${-9@d=lc|UmyOo>fD!W=`n z<}!@;#RPk#;Hs0(%+6-o8sNo{eAx#{Cfql^=5T?0qz>=HqB*_K1~jh-d0OqalZm|u z-npebv;b-K`>@uDt!rCaBh2ssPwn(^fa(W!VliUEN3)e3<7vf#({C&^`G6e@EvC}t zi&QKP6m`o)Pfs&3J=J5|$S<G0sfPy?kGe?RO~)zN=8SO17Zg~Ww{-FwvjFu>UK!|j zwaBa|s*A{+ln>}v*1?Cu3lVH=wbJsGOv|=TJn7sD7YIGaC<jVx1>w1JKGVe>hj8Ec zn$9er0poU|<uOje^wNPC?CFp>14F&f>+XQUuN9z^u%w$YO}5JS@~L;IY^G&|56?T2 zlb(i`bxaM^Md`sZ<xhcApuj`#M&tbKpNL`LvyYI6pxg;0Hew*7HdN%a5kvm)0yM@& zUo3lA*a4>AA5(=*g((+35if|rc!+q}qwv6CqtB+GSHqP@dyo7EDybVze4&e@80@x& zZ5--WhlMRY8B4#2<&56-t!|BaI0tNDNgu$oxHwzFKj_#o$|sr|Q|?Ug`_2lPY?#@o zDk?UMsM9Z}?ihL@?<nYVR5XWU0`l>(Ma$_y;{3$hDwh5keN9AagSJj$Y?$f1q>gp9 zk9Yn-KWmRK`FdFzeGjP1wKN{_XgR$%7*f-B-@Qe7`jWI>gk50Scz{}scyV#~i30hG z#2A{`vhz!<hkIZVjLXWc>T%o?owW*^@ZP)_I|d}s=LIvgb62nIU{3`ax`A6d%xToI z604o72Fr<eXqu?iBY3gayw6bvKJzAx+L#ow^>rmN^o#I&!{mxqIVMhAF6upYmYy|0 zd+|z|jA|u@*t!q=#-_JSz1l||>+JKwLmFqS{ncm;KhsQ8Ro}z4dX|`DF$>_Nrvs+s zi=^kuW6^-{{9pnA9bTJ?)>dq)w1>UQEbxejTGZj17@9L;lPhMsL=9}53^L#0-ramU z4z=^#0IztYj#3^u^I$UDhCQA>uBuq1rymd_jca|JL3lQYns9<kn-*QBbMHiTnD({B z!W|w^i2cRc=okaI{{*eV!amMe`azT@y~qp+ZyJ96TR-K&jy|vbWSuNm9_sK4W;%R0 zpwDbFz?hH0aHzznrrDact$e0VzYRv{_p$4@yz5ZEN?nKg9qKy#H9of#<7LMO5=!x9 zgviT|&m}ZOO}C3s)O3fqCTe<|aN&ajk(V9c2RMLF1VmnTd<UQopC5_5?Dz`6ZBf$` zL@7Q&6?xh5cKwU+^^M5OE(VF0^=H2<K)V<$jzmo#BHl>0AgZWcB#9$Y)00K9{u-Ah zn;joxEQ^|+DjK4u4;A-CO-~cM@inZ-%Pxiq*GcZkWPHnExJZwhK0>&orjHbpqo${e z(#&Y|@%0>cwDb%lM@z>?%%WU&F(yhXKJ+E<b+RazU5t&AO8EGcVwB4++)+{qe_X$G z11S#i;ju^nbu&Zsmm4I2(UK(G_!gb@qMB0rhKTfBmA*G3eIe2fks<QOxe?<Jz;Ia4 z@&4_22GWWCkq9~$GJgO5@MEM$tJglpPZ9c4aa4c0Ud12rQ!vhrSeT!85vOt^KU$Z8 zjFjH*qjbQJR&Flv4KY+)8quHUaC(0^6A#hoR58Q-$I&TFXOwWc-IUe5+EsdrO2_v_ z_&T4{`}hA{3O`-pYeLr|9p7i`H@<$R(j&*?@0m{jar7M0Q^Y6{NxvOmUvVQna(ul4 z{8WoR!PiFkI*j!3DsBzppqGbQ6I6T(@Q0$k^t7Wttyn(*{`CW-9~vON5PCmaxjE4L zLq&f*c`oqBgC9NZm4iRJUL1hVkpa>>AUCR)*3Z)<8PNhkMdRl@q*J+idezgw-2>o1 zJwW;|x!nHq%e%mLD;})DS4dCA_;R}?G)2{SIMcCW%6Kc%sh>plhaV$f3h0!MlXP^> zAmeBB>sQ+cp#LLIPZIl-IpI@;?j8XD1*G>aQD*pX0Q>}Qcg<ZmoWSWxB45pS=uUhU zA)VSqn>hiMzIXsStw?t(9Ba@!K>Fna(D};%>3A$S6b$vYw&v2ZXGuk!r>45T0gq<j za|!rL2)@9CxA}H@@KA3T?_jrdd)hj>n{jHi1rN;z=}}c2edz4zfS<S}w`9hQ5|D|4 zgtvWl`Q`C1YypMv+z;N=+UfJO^mcaAV=b0DJ`UCg^=r>7)Q4&cW=4IU5btTN!Gojb zD_x55=Dlxt;>?d1MMV3AiDyw=`Laq+<?@B}^a{&M$MIaUr?N^RR4uF{IfS19ShzYD zhpuw*hRv;8Jve$8?8ZBP@iG9<W}I$YxORE@vg!)tXjoQZ5~pRGDF%KwO*jG7z~;4P zamAuV^_2~thVlh9m0-(9$4>cN8NI!)%R}Gb0c|>ak5=HXY?YNQuBl#7;VH~5%;j?@ zC+<Y3D4<87iam<dnl+xH+~V9qyj_CckBbe)j%aVn!Hz(vpa?q>IQEC5-}KZzUY6UC z@2SL#ocoZ9Z3Pdm$lu(Dl4L4|b<M(p%FWRz#jwazFU^QX?LYB34{mJv9x+v<+0^x+ zj$pKwk?$}XxOqzO7MX!%2$|!hYYhc>D|fUy;;CSKDQHn$eRsX5FM{kY<WfDM*D3Qm ze<GU)og4!L`_SI@jr;&gxbDTmvt+ZUPN}pCytOq*`i#0Ny^pXD&oTErtlBXoilX#B zej<*TqfzT=4#G_(<K)SR@JvUk6~4OWg@2}(RU-)WS0ZI)6>HX%FR1nu<Q8G*H^6yj zDsU(jQr`{agAty_E_x9kL=l8b4fU?5z`%tP0w=ud_jSdS5|=_FuLsVTZmw(a@S9_C zkO?eurEm<(-xZcTD;VsF(v~3AnIHQDe|mc9%Uvv<9oir4(}3oH?<?7U!x^8g#XEZ8 zn?i{FDGu9p4EsvHK#$19yLWuKkZcZ4X{kHBL?Tzd+ST78a_O$U34X%dmTg_2Cqrzh zGK3Cx(&O;f8xLT3)~<;%s8~-&NaT{n7rBV$w&87Dxp)mAep%+Zfo@jnxxRKaRkpW) zh`s}LuUGm1aGH$TnTe_M)=WdkPxm4t3U0!;{Scw4A{QM}<YF4{#MF#5`Z5R5@qJE= z5p~O3!y44wj1#LG(t(%4=s1L@qbj@AX!-w$)4G#PNo_}I|BenLSK5SYy(Zv>zDug} zYd??<-Bx78VaE2k@Tu@V`L(}DhZFl?_s_o&@Q;rj>(=FKzmg6+RDPJ5eChR@x)sY2 zAy<*kul-Lt+=q1oT`==lPC7q*XP2&3_#+gZU;C+acyUC9BjtA*^5QGzCjZ)>rNdgl z>C*h`a&)*6u&*rnwcksJyE(VypZL`Lt7Jib0b)_p)BZ6X)+&Z|`8vO@|M@Ea0!2{! z(R66dPkAEqUxqX)g5*n=_P6OUV!7Y1|LjB_YkuvQGef2t{?YCa9bOrcU;FQLsQJ|t z^t}#mjL5Iokvd$U1*Zt;ay7jlM&#H2Kpo;MpM9=~?j&wk`E~ngzo8ECUFAMkWd6G% z@@xO14qN)<?mzw>jL5J3kUD%hqQh&sX|jKe$glmCI*jztMUZ2^6RpA3Fg5*}F69c0 zl(#Nlhkrv}a?R@e+W(oZ@@qVx@TKo{_z_ZxC!JsWN!`cEFR2M}6cOtCI=}X(PS*UZ zhSlRkm#gb_4f0yc*M8ShCAb5+AQkHTIy8{kn&0#nxMc=C&NUgGPv1L{nbI`>+CP!* zmKf<o+;X`saf%LB<>yDF>-;$p>6)AlhpYS%Xrj_BQ#M2ZbUvLtae(|kc1w)SH5yZf zk@@on$UnMM;{RPYoFWsMf8GH3T_Ksl6`?;O^Dj~PBjuN}P4T;46&z8%rqeh;`Kd3; z47Gi;b6>G05go02tm*A4f0a^T69AlpKiz+Hzap^iJJ$Sr|5x69bsYJn4v_zs@5uaK LT~S3m;#T}Wf^53F literal 0 HcmV?d00001 diff --git a/week09/cmake-build-debug/CMakeCache.txt b/week09/cmake-build-debug/CMakeCache.txt new file mode 100644 index 00000000..88a291b7 --- /dev/null +++ b/week09/cmake-build-debug/CMakeCache.txt @@ -0,0 +1,380 @@ +# This is the CMakeCache file. +# For build in directory: /home/lewang/algorithm018/week09/cmake-build-debug +# It was generated by CMake: /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake +# You can edit this file to change values found and used by cmake. +# If you do not want to change any of the values, simply exit the editor. +# If you do want to change a value, simply edit, save, and exit the editor. +# The syntax for the file is as follows: +# KEY:TYPE=VALUE +# KEY is the name of a variable in the cache. +# TYPE is a hint to GUIs for the type of VALUE, DO NOT EDIT TYPE!. +# VALUE is the current value for the KEY. + +######################## +# EXTERNAL cache entries +######################## + +//Path to a program. +CMAKE_AR:FILEPATH=/usr/bin/ar + +//Choose the type of build, options are: None Debug Release RelWithDebInfo +// MinSizeRel ... +CMAKE_BUILD_TYPE:STRING=Debug + +//Id string of the compiler for the CodeBlocks IDE. Automatically +// detected when left empty +CMAKE_CODEBLOCKS_COMPILER_ID:STRING= + +//The CodeBlocks executable +CMAKE_CODEBLOCKS_EXECUTABLE:FILEPATH=CMAKE_CODEBLOCKS_EXECUTABLE-NOTFOUND + +//Additional command line arguments when CodeBlocks invokes make. +// Enter e.g. -j<some_number> to get parallel builds +CMAKE_CODEBLOCKS_MAKE_ARGUMENTS:STRING=-j12 + +//Enable/Disable color output during build. +CMAKE_COLOR_MAKEFILE:BOOL=ON + +//CXX compiler +CMAKE_CXX_COMPILER:FILEPATH=/usr/bin/c++ + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-5 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_CXX_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-5 + +//Flags used by the CXX compiler during all build types. +CMAKE_CXX_FLAGS:STRING= + +//Flags used by the CXX compiler during DEBUG builds. +CMAKE_CXX_FLAGS_DEBUG:STRING=-g + +//Flags used by the CXX compiler during MINSIZEREL builds. +CMAKE_CXX_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the CXX compiler during RELEASE builds. +CMAKE_CXX_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the CXX compiler during RELWITHDEBINFO builds. +CMAKE_CXX_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//C compiler +CMAKE_C_COMPILER:FILEPATH=/usr/bin/cc + +//A wrapper around 'ar' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_AR:FILEPATH=/usr/bin/gcc-ar-5 + +//A wrapper around 'ranlib' adding the appropriate '--plugin' option +// for the GCC compiler +CMAKE_C_COMPILER_RANLIB:FILEPATH=/usr/bin/gcc-ranlib-5 + +//Flags used by the C compiler during all build types. +CMAKE_C_FLAGS:STRING= + +//Flags used by the C compiler during DEBUG builds. +CMAKE_C_FLAGS_DEBUG:STRING=-g + +//Flags used by the C compiler during MINSIZEREL builds. +CMAKE_C_FLAGS_MINSIZEREL:STRING=-Os -DNDEBUG + +//Flags used by the C compiler during RELEASE builds. +CMAKE_C_FLAGS_RELEASE:STRING=-O3 -DNDEBUG + +//Flags used by the C compiler during RELWITHDEBINFO builds. +CMAKE_C_FLAGS_RELWITHDEBINFO:STRING=-O2 -g -DNDEBUG + +//Flags used by the linker during all build types. +CMAKE_EXE_LINKER_FLAGS:STRING= + +//Flags used by the linker during DEBUG builds. +CMAKE_EXE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during MINSIZEREL builds. +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during RELEASE builds. +CMAKE_EXE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during RELWITHDEBINFO builds. +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Enable/Disable output of compile commands during generation. +CMAKE_EXPORT_COMPILE_COMMANDS:BOOL=OFF + +//Install path prefix, prepended onto install directories. +CMAKE_INSTALL_PREFIX:PATH=/usr/local + +//Path to a program. +CMAKE_LINKER:FILEPATH=/usr/bin/ld + +//Path to a program. +CMAKE_MAKE_PROGRAM:FILEPATH=/usr/bin/make + +//Flags used by the linker during the creation of modules during +// all build types. +CMAKE_MODULE_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of modules during +// DEBUG builds. +CMAKE_MODULE_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of modules during +// MINSIZEREL builds. +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of modules during +// RELEASE builds. +CMAKE_MODULE_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of modules during +// RELWITHDEBINFO builds. +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_NM:FILEPATH=/usr/bin/nm + +//Path to a program. +CMAKE_OBJCOPY:FILEPATH=/usr/bin/objcopy + +//Path to a program. +CMAKE_OBJDUMP:FILEPATH=/usr/bin/objdump + +//Value Computed by CMake +CMAKE_PROJECT_DESCRIPTION:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_HOMEPAGE_URL:STATIC= + +//Value Computed by CMake +CMAKE_PROJECT_NAME:STATIC=week09 + +//Path to a program. +CMAKE_RANLIB:FILEPATH=/usr/bin/ranlib + +//Flags used by the linker during the creation of shared libraries +// during all build types. +CMAKE_SHARED_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of shared libraries +// during DEBUG builds. +CMAKE_SHARED_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of shared libraries +// during MINSIZEREL builds. +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELEASE builds. +CMAKE_SHARED_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of shared libraries +// during RELWITHDEBINFO builds. +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//If set, runtime paths are not added when installing shared libraries, +// but are added when building. +CMAKE_SKIP_INSTALL_RPATH:BOOL=NO + +//If set, runtime paths are not added when using shared libraries. +CMAKE_SKIP_RPATH:BOOL=NO + +//Flags used by the linker during the creation of static libraries +// during all build types. +CMAKE_STATIC_LINKER_FLAGS:STRING= + +//Flags used by the linker during the creation of static libraries +// during DEBUG builds. +CMAKE_STATIC_LINKER_FLAGS_DEBUG:STRING= + +//Flags used by the linker during the creation of static libraries +// during MINSIZEREL builds. +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELEASE builds. +CMAKE_STATIC_LINKER_FLAGS_RELEASE:STRING= + +//Flags used by the linker during the creation of static libraries +// during RELWITHDEBINFO builds. +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO:STRING= + +//Path to a program. +CMAKE_STRIP:FILEPATH=/usr/bin/strip + +//If this value is on, makefiles will be generated without the +// .SILENT directive, and all commands will be echoed to the console +// during the make. This is useful for debugging only. With Visual +// Studio IDE projects all commands are done without /nologo. +CMAKE_VERBOSE_MAKEFILE:BOOL=FALSE + +//Path to a program. +ProcessorCount_cmd_getconf:FILEPATH=/usr/bin/getconf + +//Path to a program. +ProcessorCount_cmd_sysctl:FILEPATH=/sbin/sysctl + +//Value Computed by CMake +week09_BINARY_DIR:STATIC=/home/lewang/algorithm018/week09/cmake-build-debug + +//Value Computed by CMake +week09_SOURCE_DIR:STATIC=/home/lewang/algorithm018/week09 + + +######################## +# INTERNAL cache entries +######################## + +//ADVANCED property for variable: CMAKE_AR +CMAKE_AR-ADVANCED:INTERNAL=1 +//This is the directory where this CMakeCache.txt was created +CMAKE_CACHEFILE_DIR:INTERNAL=/home/lewang/algorithm018/week09/cmake-build-debug +//Major version of cmake used to create the current loaded cache +CMAKE_CACHE_MAJOR_VERSION:INTERNAL=3 +//Minor version of cmake used to create the current loaded cache +CMAKE_CACHE_MINOR_VERSION:INTERNAL=13 +//Patch version of cmake used to create the current loaded cache +CMAKE_CACHE_PATCH_VERSION:INTERNAL=2 +//ADVANCED property for variable: CMAKE_COLOR_MAKEFILE +CMAKE_COLOR_MAKEFILE-ADVANCED:INTERNAL=1 +//Path to CMake executable. +CMAKE_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake +//Path to cpack program executable. +CMAKE_CPACK_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cpack +//Path to ctest program executable. +CMAKE_CTEST_COMMAND:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/ctest +//ADVANCED property for variable: CMAKE_CXX_COMPILER +CMAKE_CXX_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_AR +CMAKE_CXX_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_COMPILER_RANLIB +CMAKE_CXX_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS +CMAKE_CXX_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_DEBUG +CMAKE_CXX_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_MINSIZEREL +CMAKE_CXX_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELEASE +CMAKE_CXX_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_CXX_FLAGS_RELWITHDEBINFO +CMAKE_CXX_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER +CMAKE_C_COMPILER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_AR +CMAKE_C_COMPILER_AR-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_COMPILER_RANLIB +CMAKE_C_COMPILER_RANLIB-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS +CMAKE_C_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_DEBUG +CMAKE_C_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_MINSIZEREL +CMAKE_C_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELEASE +CMAKE_C_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_C_FLAGS_RELWITHDEBINFO +CMAKE_C_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//Executable file format +CMAKE_EXECUTABLE_FORMAT:INTERNAL=ELF +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS +CMAKE_EXE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_DEBUG +CMAKE_EXE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_MINSIZEREL +CMAKE_EXE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELEASE +CMAKE_EXE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_EXE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_EXPORT_COMPILE_COMMANDS +CMAKE_EXPORT_COMPILE_COMMANDS-ADVANCED:INTERNAL=1 +//Name of external makefile project generator. +CMAKE_EXTRA_GENERATOR:INTERNAL=CodeBlocks +//CXX compiler system defined macros +CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570815e+308L);__DBL_MIN__;((double)2.22507385850720138309e-308L);__DBL_EPSILON__;((double)2.22044604925031308085e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1;__STDC__;1;__cplusplus;199711L;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__GNUG__;5;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_WEAK__;1;__DEPRECATED;1;__GXX_RTTI;1;__cpp_rtti;199711;__cpp_binary_literals;201304;__cpp_runtime_arrays;198712;__cpp_threadsafe_static_init;200806;__EXCEPTIONS;1;__cpp_exceptions;199711;__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__GLIBCXX_TYPE_INT_N_0;__int128;__GLIBCXX_BITSIZE_INT_N_0;128;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;double(1.79769313486231570815e+308L);__DBL_MIN__;double(2.22507385850720138309e-308L);__DBL_EPSILON__;double(2.22044604925031308085e-16L);__DBL_DENORM_MIN__;double(4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_GNU_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_GNU_SOURCE;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1 +//CXX compiler system include directories +CMAKE_EXTRA_GENERATOR_CXX_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/include/c++/5;/usr/include/x86_64-linux-gnu/c++/5;/usr/include/c++/5/backward;/usr/lib/gcc/x86_64-linux-gnu/5/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include +//C compiler system defined macros +CMAKE_EXTRA_GENERATOR_C_SYSTEM_DEFINED_MACROS:INTERNAL=__STDC__;1;__STDC_VERSION__;201112L;__STDC_UTF_16__;1;__STDC_UTF_32__;1;__STDC_HOSTED__;1;__GNUC__;5;__GNUC_MINOR__;5;__GNUC_PATCHLEVEL__;0;__VERSION__;"5.5.0 20171010";__ATOMIC_RELAXED;0;__ATOMIC_SEQ_CST;5;__ATOMIC_ACQUIRE;2;__ATOMIC_RELEASE;3;__ATOMIC_ACQ_REL;4;__ATOMIC_CONSUME;1;__pic__;2;__PIC__;2;__pie__;2;__PIE__;2;__FINITE_MATH_ONLY__;0;_LP64;1;__LP64__;1;__SIZEOF_INT__;4;__SIZEOF_LONG__;8;__SIZEOF_LONG_LONG__;8;__SIZEOF_SHORT__;2;__SIZEOF_FLOAT__;4;__SIZEOF_DOUBLE__;8;__SIZEOF_LONG_DOUBLE__;16;__SIZEOF_SIZE_T__;8;__CHAR_BIT__;8;__BIGGEST_ALIGNMENT__;16;__ORDER_LITTLE_ENDIAN__;1234;__ORDER_BIG_ENDIAN__;4321;__ORDER_PDP_ENDIAN__;3412;__BYTE_ORDER__;__ORDER_LITTLE_ENDIAN__;__FLOAT_WORD_ORDER__;__ORDER_LITTLE_ENDIAN__;__SIZEOF_POINTER__;8;__SIZE_TYPE__;long unsigned int;__PTRDIFF_TYPE__;long int;__WCHAR_TYPE__;int;__WINT_TYPE__;unsigned int;__INTMAX_TYPE__;long int;__UINTMAX_TYPE__;long unsigned int;__CHAR16_TYPE__;short unsigned int;__CHAR32_TYPE__;unsigned int;__SIG_ATOMIC_TYPE__;int;__INT8_TYPE__;signed char;__INT16_TYPE__;short int;__INT32_TYPE__;int;__INT64_TYPE__;long int;__UINT8_TYPE__;unsigned char;__UINT16_TYPE__;short unsigned int;__UINT32_TYPE__;unsigned int;__UINT64_TYPE__;long unsigned int;__INT_LEAST8_TYPE__;signed char;__INT_LEAST16_TYPE__;short int;__INT_LEAST32_TYPE__;int;__INT_LEAST64_TYPE__;long int;__UINT_LEAST8_TYPE__;unsigned char;__UINT_LEAST16_TYPE__;short unsigned int;__UINT_LEAST32_TYPE__;unsigned int;__UINT_LEAST64_TYPE__;long unsigned int;__INT_FAST8_TYPE__;signed char;__INT_FAST16_TYPE__;long int;__INT_FAST32_TYPE__;long int;__INT_FAST64_TYPE__;long int;__UINT_FAST8_TYPE__;unsigned char;__UINT_FAST16_TYPE__;long unsigned int;__UINT_FAST32_TYPE__;long unsigned int;__UINT_FAST64_TYPE__;long unsigned int;__INTPTR_TYPE__;long int;__UINTPTR_TYPE__;long unsigned int;__has_include(STR);__has_include__(STR);__has_include_next(STR);__has_include_next__(STR);__GXX_ABI_VERSION;1009;__SCHAR_MAX__;0x7f;__SHRT_MAX__;0x7fff;__INT_MAX__;0x7fffffff;__LONG_MAX__;0x7fffffffffffffffL;__LONG_LONG_MAX__;0x7fffffffffffffffLL;__WCHAR_MAX__;0x7fffffff;__WCHAR_MIN__;(-__WCHAR_MAX__ - 1);__WINT_MAX__;0xffffffffU;__WINT_MIN__;0U;__PTRDIFF_MAX__;0x7fffffffffffffffL;__SIZE_MAX__;0xffffffffffffffffUL;__INTMAX_MAX__;0x7fffffffffffffffL;__INTMAX_C(c);c ## L;__UINTMAX_MAX__;0xffffffffffffffffUL;__UINTMAX_C(c);c ## UL;__SIG_ATOMIC_MAX__;0x7fffffff;__SIG_ATOMIC_MIN__;(-__SIG_ATOMIC_MAX__ - 1);__INT8_MAX__;0x7f;__INT16_MAX__;0x7fff;__INT32_MAX__;0x7fffffff;__INT64_MAX__;0x7fffffffffffffffL;__UINT8_MAX__;0xff;__UINT16_MAX__;0xffff;__UINT32_MAX__;0xffffffffU;__UINT64_MAX__;0xffffffffffffffffUL;__INT_LEAST8_MAX__;0x7f;__INT8_C(c);c;__INT_LEAST16_MAX__;0x7fff;__INT16_C(c);c;__INT_LEAST32_MAX__;0x7fffffff;__INT32_C(c);c;__INT_LEAST64_MAX__;0x7fffffffffffffffL;__INT64_C(c);c ## L;__UINT_LEAST8_MAX__;0xff;__UINT8_C(c);c;__UINT_LEAST16_MAX__;0xffff;__UINT16_C(c);c;__UINT_LEAST32_MAX__;0xffffffffU;__UINT32_C(c);c ## U;__UINT_LEAST64_MAX__;0xffffffffffffffffUL;__UINT64_C(c);c ## UL;__INT_FAST8_MAX__;0x7f;__INT_FAST16_MAX__;0x7fffffffffffffffL;__INT_FAST32_MAX__;0x7fffffffffffffffL;__INT_FAST64_MAX__;0x7fffffffffffffffL;__UINT_FAST8_MAX__;0xff;__UINT_FAST16_MAX__;0xffffffffffffffffUL;__UINT_FAST32_MAX__;0xffffffffffffffffUL;__UINT_FAST64_MAX__;0xffffffffffffffffUL;__INTPTR_MAX__;0x7fffffffffffffffL;__UINTPTR_MAX__;0xffffffffffffffffUL;__GCC_IEC_559;2;__GCC_IEC_559_COMPLEX;2;__FLT_EVAL_METHOD__;0;__DEC_EVAL_METHOD__;2;__FLT_RADIX__;2;__FLT_MANT_DIG__;24;__FLT_DIG__;6;__FLT_MIN_EXP__;(-125);__FLT_MIN_10_EXP__;(-37);__FLT_MAX_EXP__;128;__FLT_MAX_10_EXP__;38;__FLT_DECIMAL_DIG__;9;__FLT_MAX__;3.40282346638528859812e+38F;__FLT_MIN__;1.17549435082228750797e-38F;__FLT_EPSILON__;1.19209289550781250000e-7F;__FLT_DENORM_MIN__;1.40129846432481707092e-45F;__FLT_HAS_DENORM__;1;__FLT_HAS_INFINITY__;1;__FLT_HAS_QUIET_NAN__;1;__DBL_MANT_DIG__;53;__DBL_DIG__;15;__DBL_MIN_EXP__;(-1021);__DBL_MIN_10_EXP__;(-307);__DBL_MAX_EXP__;1024;__DBL_MAX_10_EXP__;308;__DBL_DECIMAL_DIG__;17;__DBL_MAX__;((double)1.79769313486231570815e+308L);__DBL_MIN__;((double)2.22507385850720138309e-308L);__DBL_EPSILON__;((double)2.22044604925031308085e-16L);__DBL_DENORM_MIN__;((double)4.94065645841246544177e-324L);__DBL_HAS_DENORM__;1;__DBL_HAS_INFINITY__;1;__DBL_HAS_QUIET_NAN__;1;__LDBL_MANT_DIG__;64;__LDBL_DIG__;18;__LDBL_MIN_EXP__;(-16381);__LDBL_MIN_10_EXP__;(-4931);__LDBL_MAX_EXP__;16384;__LDBL_MAX_10_EXP__;4932;__DECIMAL_DIG__;21;__LDBL_MAX__;1.18973149535723176502e+4932L;__LDBL_MIN__;3.36210314311209350626e-4932L;__LDBL_EPSILON__;1.08420217248550443401e-19L;__LDBL_DENORM_MIN__;3.64519953188247460253e-4951L;__LDBL_HAS_DENORM__;1;__LDBL_HAS_INFINITY__;1;__LDBL_HAS_QUIET_NAN__;1;__DEC32_MANT_DIG__;7;__DEC32_MIN_EXP__;(-94);__DEC32_MAX_EXP__;97;__DEC32_MIN__;1E-95DF;__DEC32_MAX__;9.999999E96DF;__DEC32_EPSILON__;1E-6DF;__DEC32_SUBNORMAL_MIN__;0.000001E-95DF;__DEC64_MANT_DIG__;16;__DEC64_MIN_EXP__;(-382);__DEC64_MAX_EXP__;385;__DEC64_MIN__;1E-383DD;__DEC64_MAX__;9.999999999999999E384DD;__DEC64_EPSILON__;1E-15DD;__DEC64_SUBNORMAL_MIN__;0.000000000000001E-383DD;__DEC128_MANT_DIG__;34;__DEC128_MIN_EXP__;(-6142);__DEC128_MAX_EXP__;6145;__DEC128_MIN__;1E-6143DL;__DEC128_MAX__;9.999999999999999999999999999999999E6144DL;__DEC128_EPSILON__;1E-33DL;__DEC128_SUBNORMAL_MIN__;0.000000000000000000000000000000001E-6143DL;__REGISTER_PREFIX__; ;__USER_LABEL_PREFIX__; ;__GNUC_STDC_INLINE__;1;__NO_INLINE__;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4;1;__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8;1;__GCC_ATOMIC_BOOL_LOCK_FREE;2;__GCC_ATOMIC_CHAR_LOCK_FREE;2;__GCC_ATOMIC_CHAR16_T_LOCK_FREE;2;__GCC_ATOMIC_CHAR32_T_LOCK_FREE;2;__GCC_ATOMIC_WCHAR_T_LOCK_FREE;2;__GCC_ATOMIC_SHORT_LOCK_FREE;2;__GCC_ATOMIC_INT_LOCK_FREE;2;__GCC_ATOMIC_LONG_LOCK_FREE;2;__GCC_ATOMIC_LLONG_LOCK_FREE;2;__GCC_ATOMIC_TEST_AND_SET_TRUEVAL;1;__GCC_ATOMIC_POINTER_LOCK_FREE;2;__GCC_HAVE_DWARF2_CFI_ASM;1;__PRAGMA_REDEFINE_EXTNAME;1;__SSP_STRONG__;3;__SIZEOF_INT128__;16;__SIZEOF_WCHAR_T__;4;__SIZEOF_WINT_T__;4;__SIZEOF_PTRDIFF_T__;8;__amd64;1;__amd64__;1;__x86_64;1;__x86_64__;1;__SIZEOF_FLOAT80__;16;__SIZEOF_FLOAT128__;16;__ATOMIC_HLE_ACQUIRE;65536;__ATOMIC_HLE_RELEASE;131072;__k8;1;__k8__;1;__code_model_small__;1;__MMX__;1;__SSE__;1;__SSE2__;1;__FXSR__;1;__SSE_MATH__;1;__SSE2_MATH__;1;__gnu_linux__;1;__linux;1;__linux__;1;linux;1;__unix;1;__unix__;1;unix;1;__ELF__;1;__DECIMAL_BID_FORMAT__;1;_STDC_PREDEF_H;1;__STDC_IEC_559__;1;__STDC_IEC_559_COMPLEX__;1;__STDC_ISO_10646__;201706L;__STDC_NO_THREADS__;1 +//C compiler system include directories +CMAKE_EXTRA_GENERATOR_C_SYSTEM_INCLUDE_DIRS:INTERNAL=/usr/lib/gcc/x86_64-linux-gnu/5/include;/usr/local/include;/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed;/usr/include/x86_64-linux-gnu;/usr/include +//Name of generator. +CMAKE_GENERATOR:INTERNAL=Unix Makefiles +//Generator instance identifier. +CMAKE_GENERATOR_INSTANCE:INTERNAL= +//Name of generator platform. +CMAKE_GENERATOR_PLATFORM:INTERNAL= +//Name of generator toolset. +CMAKE_GENERATOR_TOOLSET:INTERNAL= +//Source directory with the top level CMakeLists.txt file for this +// project +CMAKE_HOME_DIRECTORY:INTERNAL=/home/lewang/algorithm018/week09 +//Install .so files without execute permission. +CMAKE_INSTALL_SO_NO_EXE:INTERNAL=1 +//ADVANCED property for variable: CMAKE_LINKER +CMAKE_LINKER-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MAKE_PROGRAM +CMAKE_MAKE_PROGRAM-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS +CMAKE_MODULE_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_DEBUG +CMAKE_MODULE_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL +CMAKE_MODULE_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELEASE +CMAKE_MODULE_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_MODULE_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_NM +CMAKE_NM-ADVANCED:INTERNAL=1 +//number of local generators +CMAKE_NUMBER_OF_MAKEFILES:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJCOPY +CMAKE_OBJCOPY-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_OBJDUMP +CMAKE_OBJDUMP-ADVANCED:INTERNAL=1 +//Platform information initialized +CMAKE_PLATFORM_INFO_INITIALIZED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_RANLIB +CMAKE_RANLIB-ADVANCED:INTERNAL=1 +//Path to CMake installation. +CMAKE_ROOT:INTERNAL=/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS +CMAKE_SHARED_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_DEBUG +CMAKE_SHARED_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL +CMAKE_SHARED_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELEASE +CMAKE_SHARED_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_SHARED_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_INSTALL_RPATH +CMAKE_SKIP_INSTALL_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_SKIP_RPATH +CMAKE_SKIP_RPATH-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS +CMAKE_STATIC_LINKER_FLAGS-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_DEBUG +CMAKE_STATIC_LINKER_FLAGS_DEBUG-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL +CMAKE_STATIC_LINKER_FLAGS_MINSIZEREL-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELEASE +CMAKE_STATIC_LINKER_FLAGS_RELEASE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO +CMAKE_STATIC_LINKER_FLAGS_RELWITHDEBINFO-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: CMAKE_STRIP +CMAKE_STRIP-ADVANCED:INTERNAL=1 +//uname command +CMAKE_UNAME:INTERNAL=/bin/uname +//ADVANCED property for variable: CMAKE_VERBOSE_MAKEFILE +CMAKE_VERBOSE_MAKEFILE-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: ProcessorCount_cmd_getconf +ProcessorCount_cmd_getconf-ADVANCED:INTERNAL=1 +//ADVANCED property for variable: ProcessorCount_cmd_sysctl +ProcessorCount_cmd_sysctl-ADVANCED:INTERNAL=1 + diff --git a/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.o b/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..5e1b0178d4418b6da98f749981ed5531e0c76d53 GIT binary patch literal 83864 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 bk9M(ih~NszbtgN!l=072g6D%HxN7nXYOpk@ literal 0 HcmV?d00001 diff --git a/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/CXX.includecache b/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/CXX.includecache new file mode 100644 index 00000000..f4bd7ecd --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/CXX.includecache @@ -0,0 +1,16 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week09/151_reverseWords.cpp +iostream +- +string +- +vector +- + diff --git a/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/DependInfo.cmake b/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/DependInfo.cmake new file mode 100644 index 00000000..a4afaab0 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week09/151_reverseWords.cpp" "/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/build.make b/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/build.make new file mode 100644 index 00000000..01d142c3 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week09 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week09/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/151_reverseWords.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/151_reverseWords.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/151_reverseWords.dir/flags.make + +CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.o: CMakeFiles/151_reverseWords.dir/flags.make +CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.o: ../151_reverseWords.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.o -c /home/lewang/algorithm018/week09/151_reverseWords.cpp + +CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week09/151_reverseWords.cpp > CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.i + +CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week09/151_reverseWords.cpp -o CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.s + +# Object files for target 151_reverseWords +151_reverseWords_OBJECTS = \ +"CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.o" + +# External object files for target 151_reverseWords +151_reverseWords_EXTERNAL_OBJECTS = + +151_reverseWords: CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.o +151_reverseWords: CMakeFiles/151_reverseWords.dir/build.make +151_reverseWords: CMakeFiles/151_reverseWords.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 151_reverseWords" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/151_reverseWords.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/151_reverseWords.dir/build: 151_reverseWords + +.PHONY : CMakeFiles/151_reverseWords.dir/build + +CMakeFiles/151_reverseWords.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/151_reverseWords.dir/cmake_clean.cmake +.PHONY : CMakeFiles/151_reverseWords.dir/clean + +CMakeFiles/151_reverseWords.dir/depend: + cd /home/lewang/algorithm018/week09/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week09 /home/lewang/algorithm018/week09 /home/lewang/algorithm018/week09/cmake-build-debug /home/lewang/algorithm018/week09/cmake-build-debug /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/151_reverseWords.dir/depend + diff --git a/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/cmake_clean.cmake b/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/cmake_clean.cmake new file mode 100644 index 00000000..d56953e0 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.o" + "151_reverseWords.pdb" + "151_reverseWords" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/151_reverseWords.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/depend.internal b/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/depend.internal new file mode 100644 index 00000000..96637ae9 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.o + /home/lewang/algorithm018/week09/151_reverseWords.cpp diff --git a/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/depend.make b/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/depend.make new file mode 100644 index 00000000..e1c47bc5 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.o: ../151_reverseWords.cpp + diff --git a/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/flags.make b/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/link.txt b/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/link.txt new file mode 100644 index 00000000..3cfe2032 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.o -o 151_reverseWords diff --git a/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/progress.make b/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/progress.make new file mode 100644 index 00000000..abadeb0c --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 1 +CMAKE_PROGRESS_2 = 2 + diff --git a/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.o b/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..1d4eb3fb6c2b2a56d2208ad369f944883ed4490e GIT binary patch literal 80328 zcmcIt2VhiH)_yOIB$R}vASIzU6OxdSfC!-k0)!e+s>5V5A%P?lGZUICR#a>&_KIy+ z(Y1?;vMN?wE3U4Ky1K4yU3GUYza8a2?Y{TsWFlsEcOY}`{m!}fp4-knx4btel~qhn zux-nHY-^(Bh74+1&*ZykDZ!;ywv|P^sSr+sKjb(Z{(8aR;_|H@RF<Fe=??H$m!Fd~ zWH@-rx0ZdBzo-1XEyo=^c(8oy-j4vY%Fnxmg6C~nh3I)j1Uf{;tAY}>?BqkmTMQg! zd&;-I=E;`xE4wZVT@3Qgxz3UCMZ<sA79WX+>_%`*ko_6=6M5^?<>wuZ@>9unQ%TMP z;hY#;MhR}+Uw+P<kE+YZbfVhHIQ=w;@X4>rw?5%yFF66HNum|;lYENc%JoSi1CDS8 zXiJWAH+gQ6Q=Z%bk}O~O1h!)NX`g0pJ@LTSmTylx@qpb@aLS3_9z1ASEhD@|EkCa( z7nWP^oMZ}#%oqHD5_$xqJ&K*=qu)SPu6zP~{wga_<@T2HROk;|AAaT=>>l^+A?K1^ z;HWONcgubNF^_Y|R~~?>+`{})W#gX6xNy(udm_z-W1qv}^nr}~t&B(ZoO1~#cG}~1 z`Q=+L-trFky-_fCPX~z^<p+pPa@hZ<hm!5x@)t)s^!<!<P3I7Ad7w?{$}d0XY7vUl zLe7{%0q5yk-T_&l=$By8JM6+5`lRb=l!yI~Mv!e6)_+vDizJ&y$J&QRKX}j{HYIs? zg0(4me}Z+joqT?xb&s9=V}kX(o&0Hnb&!x(5~?wE^C_*ctRxDgVh-XrRF9hwj#OI% ztd~YuRwBYFZ`Je`_UyzNi@{HQCpB@+R;1pU4c{H$&q@p-V1bO_ugC8V@Rzos+_KV< zlK$(-2zJD;#AC)D3Hqp0X5xmO5bR9Y#?8RW-c5)K>%t0T?LsWR=fSZvkji;B&qkd6 zVT4mNFM;pOt_Ua2>X>6vS@3TFY|ebqv6v$J7gxFdV<)@*B_koK@GM&}+VL-caggI* z@e2AmtD3P;t=%Zs&G@|mf~Ub>+WDsZLOm6!mjdN_hf0O*j(Fl3_>HxN{ooPgxESJF zOg!5V{{)0LO>`k%jKux`egS{qB9UUUNZXOvF~PD9gFhCDGG*!wNF4!`!e}bzdJ9sY z1g$w6s0)z8Bhnp6M0sn0u)&FbB^KI~!`;Ys4v@DQ7O4#y0lxw8PDAiUdl92O4wOGe zQPT?w0cY9&jw~Ml`KuT#T!4>}<vNh46Ljcq@JAIO)%GtW-UP%EKp2fgDqY6+0QW#z zVgl5qWnp0|fV{%6keun?qCO?nn%If>nt;9~ng^pYBPZC?N$?tAyuCHEWZaMVu;!lv zo_!7<<#`w+Y9$UOmd}8c-g}(n!WGE$(L~RLfghV*Li9X`PNGuna{SpupYPB|LO312 zET+#RdXq!PL6DALLSIDm3miHLiC;orLiD>FIu?zq3hfjtaV62m6<XFy$V1}cmsI&0 zBEJWuf59L3>)UX=aEmk$IRW%lU-)yoz1wtLSIm7papwVNX=`q>nXJSUh{s+G49g9Z z1u79oE|Z!7KEaS!<)OJ{C7#dp3xIZ&LnmRGeihU20@_nibWf?7^LNbo25|jf8=T&Z zA7=Kn6i^TF$JIa;P1Q+SnG@d2oMV7%YBZ;Z>1AeG0t^if6QzXx#+&h5%y}wso#$}g zgU!R)p^^gqc>~byap?O8MJIBAnf3z1pB*NwHg8TAjD1MyQ(!pYFkwz!rd(#~3X?@& z_@jDA!>(l=fw2?E5`7oMvWtLTYIxGAk(g(t%d-^d)eaAhN#;RK2>Kh-IT7e*IXpD3 zm}isAb3M>+b9ktFnCC8+=P97?b9k_dMCONy2M47651{|s@Cf-SBI9_pQ&TOg3;eNq z>l19Owh~`(V-EvT4w7-YvY7lQH}-TORUny^Bg^+Tk>_IKK_IO~GR0={--$d0$)^M9 zY!&-6H};J{x<$qQ&W-&zke*So6F}ox78UGoK>E8Pr@Lfa_@uy}SMu&eCegBhG(?g6 zy5xyKnx@D@h>ShnUJ0atB9C&(zXH;!ik#<?uL9Eb4w=WqL?YYw1N=0S$a-)_mkgZQ z%=9KOd>F+f^aV`+0cdu5bgNXm*&hL<Y$Q{ga`wOCm_-1WnwYF3nSLtM7Xxj%p-W#o zn@BiY*%2UZLb9i~TtVb+*c~nc(so1U)Va&tN<1mZ^8nBvM;@mFtUmsTmH4Qe%o{-d zAUYXhdDTtjM<Azyo##n~b9&$9836QQhDXZsshdkFkftNqQ<nd8WBY&<RIv}Zu{Q(h zbQQY;OjV*Et^v{x6Wgn2GF_g>fd0J0<Iyv{U7ins{+Yw$(KAC`p0rM2(7+$pg-3_v zxjZ>QFL8K0dT+AJvjFHdQ9Parifea{%Y71X{@USoW*w>LWiI0mV7fPoQFzw6JkJCD zFAk48Dmd2`m+>oL!j*)ltlWRm5`o^;6KL5E-BVxJx@n99`ZR~fQx|u-JS%}->+pDV z_tP%VDL}u};lXrT)z@n-_npA`sKc%6>qD1uKQO%)#VGaljmvWY=$&BU<aU3yoVmWb zgY6*wa0oEvIgFmZF`Rg4ewhjM;~X9`^xPKU+FeK7b{M!$b2u?_x+lrA-E6N0rrR7w zO3hQx*Sm~Q0n=YwGq$S8U2c?bfxUA^RM~ZHKId`|1<tXpxur_qa~bCWQ*|_>TMJyT zUlBLe*@?h;p2NKiYr@mnI)kYq4R8}M-S03`iufh@_ajD1@g-n-!(qe}g(uJD`4Z@f znWpHJD=~5-l@g=f3mEzvCQ0KMSD<1bRT#2c&t4r>?{Wu$^Yk{j-N=&57B}8C5a)py z@pMaVccbhB_7B>KA{pH8a{mOJy<mav839h^dYj@IH%dORPj{j?wdXDQUtDe<aBhsj ztxNEQ8|6Y^zqySlQi2X($4SrF1DtQf;MTnk%~gr=C9rpf)iD>^ErGlE;*L7ojWQJ2 zOJhW#V&IqQA#RkVz#fhfg~mI6Nff^u<y>IDDMl1hCio>$Hn~wA1@>2+C=MellpYYn zN<7cu{uCHfV9nolYjcckPK^G*T@oXP+k7135+}xd;9lj#aQV1OZz4Wy8+#)#osW!Y zIPmHlaT*R{r`<)|_Km=Ghm#~O9Hbr|B0A<_?*;k`CN&{H>5@ML(x;029Ff0AS(2d? z9pTSw#Jovl5_K?;#u+j#zgrF3k6iABz**&RI}@4+^^MDT0x+H9FzTwp1qpAf*uMd$ zoem>vNUkNW)1EHl3&8Z2!>F?!>N0)}OdVla&z0|F?M-%!%RLx43tMwbiKe-XbAV~3 z!>9#a=rXPYrZXHyEoi`HycU>tI*c&|ZF0F^0M55sbBmy-xr|=}QwnU+aQU^M7rKmD zz%<%n)Pmy5Oxma%m{vNBF$KNL<z5GzXSC)PL7#9LuLY(%9Y!ta%P!+Hz_j0C)Plb2 zGJXzBDX@F=Gfn@Q%bf+Bqg!)}pf;?aO!<LniNmM`&2$-$2c}aTMlI+7m+?wqy3=8d zS)-#}?q`5=e`{_LwA5w%9GGmF>SH(kd}5pgrLvCzrjZWgPJq0_1DCa+6$*iIDlpA; z7_mgA!?`@Gf&MFp$4SgPYhL4WUjm#v+u&}cdhT@Ny#R6cJMpl}M3TKO&*wl-fh{>M zzblD{`(2ki3pmHM!Ohjt7wZAryB~VKg>UlQnGK-~tVoz`;e2EkdSQd@E#S1Wl1pcU zo0WXdD`U_(FL5k7=l3S(*G1%9P({wR6Un*oMshBCgq(}tAm@^=$+@&sF-E_v7de+t zB<G3%Iai)e&Q*7kbM>?2Y=4KG>+BMYcYQx{ZYUw=H^-54^Ja2xy^);To*?Irx5>Hd zJ96&M8i&#E8Ar~&mE`PfAm_d_$+`b}avt!HN6uaA$a(M*avs`A&hA&p`TbAiJlyLj z<a~4-Igc$O=kYK(Ph3gPlMj*e)a&Ft{cm#iW=z0%&x|JL5A(=*Hbl;IXOQ#!HRQao zo17P4C+DSa$l2Eu_9e2DQ|%IR)9gxe)9p><_Oel)?BqT+R!(+ue;cbMJ9&VO6_TAi zMB)vVc*7_jE%Q5!?blC^$5K1YJ{<fs0d|=4GPFFLqrs=cJpA6;$FeSlzqIQi%XFfG zxdPM$_<b`_ZZ}ju+UT$l33~v1+9ALc4>1<uH>U6w5Z*)L&5))w5aABX@Z0_d&>x*> zOj$vcu6<$u6aH9^+uevhBIg0=D2F^4$|LCph&&HS%N+79j6Dbm9h&g_5eVDOKt9o7 zp$wQM;;>u-<m((3N`*x{0a@&wKzh`Wd5f0Gbh2i@0;IPMIUVz~24lPqXX7{RKz$A5 z1IR)ZGlZxY;rDYWVP-!=u`-T>O0u##j7OJ7a>{e}0?$xn&KM1hw3@S1%gzP=Fho;l zd<YE0n_7;!QKO{JLfU*_YKFfJ@R#-p(5&IUMNK5r2%m2qc_7_!KsM>V5B@`@y91b> zg};69m-hM5G1IlJjBP+3iE`LIDn_AuI38y}Fzp|EvP9;zPf(eW_-UV_em@d9(!Rj& z!v4@T`%Q$eLGWc|BtbYQc)XSNHBzyx#~=q1nIoq@Vx@g=h~a4B;fSa4@fl`x8Ing} zT>3(Z=sJp(mX5Z+g}~j0M<`v0g8Y9nlyv0d>^X<Sh-WnLe1|;fX_W&WjKWM0q<$DX zCJ!H`A!)M1LwR8}h&;KJ4g$-OrwEv>j0^~}D1}7E@FpcBpR{2WUST3~?A&0e#!8#u zL>!HRrj<Hj=90d-_aqqgS?PI?LcUq)`OlJ5@F#M{yhBb=XcE%KZX&063pphhkTd>p za*i5E&V(FtjxHf*(p%(|?j>i+CzROKugRHa6Ij-XoEcY<Q+^XUGw&v6*6+!wm`cu^ zx#Y}UO3u7$au$3<&cZ*U)3L}dMQ3d8WORzl!Qt`u%tc3uLbW>u4<7(KQ$4Ux+oS?I zZNloYU(1G_K=@1B3ei|Wb@~<fEc-J+e}F%t@bOPR5;~oV-*!hxk4UUmtPGsTvpTPP z2-3;wy#8ZyPMAFfLz`>KIptJxPQ8qr({3Z@^vB3K;}deWrcA{M=kz7#{9<x`y^x#> zn#sBFLUJy-mz>L=BInAN$+_x1a;{FChN)aLkeuz4$+_-Wa;{%b&QC``e%YN9?GIsi zXLnArF9bNdbBcXCxgBh)48y7R;}lM_|3+@QeFWfHU8?>DCR0|Iz>5?LzD`cf=j5zT znU1vDzU0&ukh5k6IcryvQ@@#<hVA4Wzl)sax5$YcAg8783`}L+6mm8!A!lPFIltOO z&gKiqIqe2=PJe)$EiaRE=6mFv^*uS~WPz=j)#bdA<otRPI0e*-84uZb4FkpkjJ}6$ zY(w@xYNK*v|Km1pc(DH|8_hrVKWA4%E3^M)8wWUz-HeZIOzzWxF#kc?>B}Iu^i1#x znNKT`?296&Cn3*a7&jv+0iBZ^I&yo{7)o?Z^a|uz1zA`buL2WGFq+61-sO;4&bO$H zFrmScAsfDiqL03k(3hDxde30F>5@4Xi)wcueEj>65Z|N8EW)A+e$)ZL@ni(z785_& zBAGDSp=uzhsqmNf2v$K4@TDU=53|fE$YLK0=t{%GCO{^%8O*xCX}1971f)KRCB(Q^ z=4|}N#O#aU>k5Zjh)0o`WFisuZlFBiP>1`<$oRH0a0|J}cT9oRbyEMXlb!+&u#G`c z;LOr(Tx5u46=T?@?*#fzqVH7t&ZO^b`YxsKlfksZ2<#-Vlf+IcJDKccv%}HuqR6ud zO0uDcQ6d(3;QrQ0<1u_Pd^UIm3_bM=1^lH6UXc#XPonU5RJngaBF{p{>h{>!n29*i zEzrc4b?tD=nt&d=+tLL48i)e37{vA`EQNu@{;C9=+IkVrhvfDqU_2TA(q6(&Ks~G5 zan!@@Z3Y%C3=;yRH`RUxTGcM4z;t^TFxhqn<~O-I7_hp{WGI0dDmauhxi+}L>Nbx< zsZ3kMp-c`f;ZXMEP#|J;Th5_UrujH@GWF_iRUEQx4%SF8frD!#n8d*b38r$eNrF5; zx`ic}&D8Z0EahxBaqun<oyehC%z841l5oz2S~=gwt|PT_q5a}8s+D`e;mDUTl)#}Y zIh4eqYdB<aO1IlMO6<x0rY5V~U3M>MR;b?}A*IRwNYLtbFGG^jE)FG4u4}Zq?dCx0 z<WLJ#;UgT9>V1qu*__D>Hg-&Va#e7()oq`BB4%P`RDm-&(9&#mdxar;G7kH0uW=~B z%Id!G9q1-m-7Eh@&LUbkcVF=}g@TzgkybmBoVrQiP|y4nk|m`WwLTXUxaY8`7JTf( zT9U{X?ln4@!oBY~YJ}Jtz3=}`w(&lIvjtfoy?3pJeog5jCYE~dhnt;fkGatvNA1bc zo;cn_L(IzfM?W}0#4LNv!>Bg19dX`1kh%=<1R6W118q75XH9~tqZmC$+)ptwu!N*n z4?8jG4-EYuKyo$nodqz8sc<QO>!0$sH-I54`CDG&+Ok$nptUM7^%<Pi_eh)tvijy= z36d~ZyYKi$pms!m-=k@cVE-g6Jl}xqTS{{T<CC#=1fPOMX3MNEsc^dqY_)apm$n`# zJZ1D<fN9%j1A2*}q@U=Lk0J6cK-y`@tQSDzgG@{D`$(YJ&%@WBk>xaqoIVYFJh${+ zi7X|^@^AS1-eH;VvILNYQt1Yz9SDCUVR|;Oq@zI~vNj-}Jr?NG9UhEEjFR2)$b%8> z<AA3c`A{NW>tR>4GSFmAMmD=&@qNGmgAA4)<G+NC!QP`>?<8DLGFpl#^*o%`z!-cD z4Zf_-AEKR?)%kNY^RhaBf!1AC=P%K?%j*0UcBZV(U!#eaQ(d>t>iiyNh7prsZI>Q~ z)agqE>hHs=ty%qjXy$-}<_tJ!wWRDF2r;QQ_h0=E_}N>Fb_{##zID87(2ilWp{Cq; z8|%TFF$yvU7dFJs!Edx#&Ouq|9vLk-`=5`5-y+xyob+YQM6CZd{Kn~ogBM2!FN+Rd z86CVPI(VH4a$EG@kqt#>nQuWGi&p2<VpQp5Tg}2asag9I@Ye5a3}n5TK#CxNR9x13 z37I$&Iq-hMP&e>FLLUs!G?>K~pzKp1$1~wC?JroI-jv=a3Fz2Y1AMa~rN4{xBZ&Sj z(H8>A-UDAxBhNow@&O|Iko;Hp`aqFcIeZEH_D?`c$~BpD;vEt(54zsm4@koeIi0#3 z^WaTc%c3ME1AT_!5&8H66(z9>NNWw*n?x^4g353@(0`3QScdd6kV(?vn^u&~4xr!b zq~qbqcEx=j=zort&R|#E&w&0ztaOIE>GXhx&4RyH@*GJ#*bsIJ&?g!mcQT-ELM`uf zlMVT9HzCFEbdwn)AR*IDR=R-?5*A`0s+;V9yzapKo`l?^yU7y(zi3G5&m!I1O*R6_ z{yTjA6M6QzWbP(sAUP!uR>1J*C381<4fyRLKpKT)%G}#c=;r%0Ak8ymZyR$rp(JX7 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 literal 0 HcmV?d00001 diff --git a/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/CXX.includecache b/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/CXX.includecache new file mode 100644 index 00000000..196e35b7 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/CXX.includecache @@ -0,0 +1,18 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week09/205_isIosmorphic.cpp +iostream +- +map +- +string +- +unordered_map +- + diff --git a/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/DependInfo.cmake b/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/DependInfo.cmake new file mode 100644 index 00000000..6ce92f87 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week09/205_isIosmorphic.cpp" "/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/build.make b/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/build.make new file mode 100644 index 00000000..5d988327 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week09 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week09/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/205_isIosmorphic.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/205_isIosmorphic.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/205_isIosmorphic.dir/flags.make + +CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.o: CMakeFiles/205_isIosmorphic.dir/flags.make +CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.o: ../205_isIosmorphic.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.o -c /home/lewang/algorithm018/week09/205_isIosmorphic.cpp + +CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week09/205_isIosmorphic.cpp > CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.i + +CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week09/205_isIosmorphic.cpp -o CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.s + +# Object files for target 205_isIosmorphic +205_isIosmorphic_OBJECTS = \ +"CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.o" + +# External object files for target 205_isIosmorphic +205_isIosmorphic_EXTERNAL_OBJECTS = + +205_isIosmorphic: CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.o +205_isIosmorphic: CMakeFiles/205_isIosmorphic.dir/build.make +205_isIosmorphic: CMakeFiles/205_isIosmorphic.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 205_isIosmorphic" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/205_isIosmorphic.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/205_isIosmorphic.dir/build: 205_isIosmorphic + +.PHONY : CMakeFiles/205_isIosmorphic.dir/build + +CMakeFiles/205_isIosmorphic.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/205_isIosmorphic.dir/cmake_clean.cmake +.PHONY : CMakeFiles/205_isIosmorphic.dir/clean + +CMakeFiles/205_isIosmorphic.dir/depend: + cd /home/lewang/algorithm018/week09/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week09 /home/lewang/algorithm018/week09 /home/lewang/algorithm018/week09/cmake-build-debug /home/lewang/algorithm018/week09/cmake-build-debug /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/205_isIosmorphic.dir/depend + diff --git a/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/cmake_clean.cmake b/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/cmake_clean.cmake new file mode 100644 index 00000000..44b50288 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.o" + "205_isIosmorphic.pdb" + "205_isIosmorphic" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/205_isIosmorphic.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/depend.internal b/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/depend.internal new file mode 100644 index 00000000..b6813cff --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.o + /home/lewang/algorithm018/week09/205_isIosmorphic.cpp diff --git a/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/depend.make b/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/depend.make new file mode 100644 index 00000000..717aa414 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.o: ../205_isIosmorphic.cpp + diff --git a/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/flags.make b/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/link.txt b/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/link.txt new file mode 100644 index 00000000..9bca8a11 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.o -o 205_isIosmorphic diff --git a/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/progress.make b/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/progress.make new file mode 100644 index 00000000..8c8fb6fb --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 3 +CMAKE_PROGRESS_2 = 4 + diff --git a/week09/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake b/week09/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake new file mode 100755 index 00000000..17a89374 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/3.13.2/CMakeCCompiler.cmake @@ -0,0 +1,73 @@ +set(CMAKE_C_COMPILER "/usr/bin/cc") +set(CMAKE_C_COMPILER_ARG1 "") +set(CMAKE_C_COMPILER_ID "GNU") +set(CMAKE_C_COMPILER_VERSION "5.5.0") +set(CMAKE_C_COMPILER_VERSION_INTERNAL "") +set(CMAKE_C_COMPILER_WRAPPER "") +set(CMAKE_C_STANDARD_COMPUTED_DEFAULT "11") +set(CMAKE_C_COMPILE_FEATURES "c_std_90;c_function_prototypes;c_std_99;c_restrict;c_variadic_macros;c_std_11;c_static_assert") +set(CMAKE_C90_COMPILE_FEATURES "c_std_90;c_function_prototypes") +set(CMAKE_C99_COMPILE_FEATURES "c_std_99;c_restrict;c_variadic_macros") +set(CMAKE_C11_COMPILE_FEATURES "c_std_11;c_static_assert") + +set(CMAKE_C_PLATFORM_ID "Linux") +set(CMAKE_C_SIMULATE_ID "") +set(CMAKE_C_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_C_COMPILER_AR "/usr/bin/gcc-ar-5") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_C_COMPILER_RANLIB "/usr/bin/gcc-ranlib-5") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCC 1) +set(CMAKE_C_COMPILER_LOADED 1) +set(CMAKE_C_COMPILER_WORKS TRUE) +set(CMAKE_C_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_C_COMPILER_ENV_VAR "CC") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_C_COMPILER_ID_RUN 1) +set(CMAKE_C_SOURCE_FILE_EXTENSIONS c;m) +set(CMAKE_C_IGNORE_EXTENSIONS h;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_C_LINKER_PREFERENCE 10) + +# Save compiler ABI information. +set(CMAKE_C_SIZEOF_DATA_PTR "8") +set(CMAKE_C_COMPILER_ABI "ELF") +set(CMAKE_C_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_C_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_C_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_C_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_C_COMPILER_ABI}") +endif() + +if(CMAKE_C_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_C_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_C_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_C_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_C_IMPLICIT_LINK_LIBRARIES "gcc;gcc_s;c;gcc;gcc_s") +set(CMAKE_C_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_C_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/week09/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake b/week09/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake new file mode 100755 index 00000000..51738d56 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/3.13.2/CMakeCXXCompiler.cmake @@ -0,0 +1,76 @@ +set(CMAKE_CXX_COMPILER "/usr/bin/c++") +set(CMAKE_CXX_COMPILER_ARG1 "") +set(CMAKE_CXX_COMPILER_ID "GNU") +set(CMAKE_CXX_COMPILER_VERSION "5.5.0") +set(CMAKE_CXX_COMPILER_VERSION_INTERNAL "") +set(CMAKE_CXX_COMPILER_WRAPPER "") +set(CMAKE_CXX_STANDARD_COMPUTED_DEFAULT "98") +set(CMAKE_CXX_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters;cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates;cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates;cxx_std_17") +set(CMAKE_CXX98_COMPILE_FEATURES "cxx_std_98;cxx_template_template_parameters") +set(CMAKE_CXX11_COMPILE_FEATURES "cxx_std_11;cxx_alias_templates;cxx_alignas;cxx_alignof;cxx_attributes;cxx_auto_type;cxx_constexpr;cxx_decltype;cxx_decltype_incomplete_return_types;cxx_default_function_template_args;cxx_defaulted_functions;cxx_defaulted_move_initializers;cxx_delegating_constructors;cxx_deleted_functions;cxx_enum_forward_declarations;cxx_explicit_conversions;cxx_extended_friend_declarations;cxx_extern_templates;cxx_final;cxx_func_identifier;cxx_generalized_initializers;cxx_inheriting_constructors;cxx_inline_namespaces;cxx_lambdas;cxx_local_type_template_args;cxx_long_long_type;cxx_noexcept;cxx_nonstatic_member_init;cxx_nullptr;cxx_override;cxx_range_for;cxx_raw_string_literals;cxx_reference_qualified_functions;cxx_right_angle_brackets;cxx_rvalue_references;cxx_sizeof_member;cxx_static_assert;cxx_strong_enums;cxx_thread_local;cxx_trailing_return_types;cxx_unicode_literals;cxx_uniform_initialization;cxx_unrestricted_unions;cxx_user_literals;cxx_variadic_macros;cxx_variadic_templates") +set(CMAKE_CXX14_COMPILE_FEATURES "cxx_std_14;cxx_aggregate_default_initializers;cxx_attribute_deprecated;cxx_binary_literals;cxx_contextual_conversions;cxx_decltype_auto;cxx_digit_separators;cxx_generic_lambdas;cxx_lambda_init_captures;cxx_relaxed_constexpr;cxx_return_type_deduction;cxx_variable_templates") +set(CMAKE_CXX17_COMPILE_FEATURES "cxx_std_17") +set(CMAKE_CXX20_COMPILE_FEATURES "") + +set(CMAKE_CXX_PLATFORM_ID "Linux") +set(CMAKE_CXX_SIMULATE_ID "") +set(CMAKE_CXX_SIMULATE_VERSION "") + + + +set(CMAKE_AR "/usr/bin/ar") +set(CMAKE_CXX_COMPILER_AR "/usr/bin/gcc-ar-5") +set(CMAKE_RANLIB "/usr/bin/ranlib") +set(CMAKE_CXX_COMPILER_RANLIB "/usr/bin/gcc-ranlib-5") +set(CMAKE_LINKER "/usr/bin/ld") +set(CMAKE_COMPILER_IS_GNUCXX 1) +set(CMAKE_CXX_COMPILER_LOADED 1) +set(CMAKE_CXX_COMPILER_WORKS TRUE) +set(CMAKE_CXX_ABI_COMPILED TRUE) +set(CMAKE_COMPILER_IS_MINGW ) +set(CMAKE_COMPILER_IS_CYGWIN ) +if(CMAKE_COMPILER_IS_CYGWIN) + set(CYGWIN 1) + set(UNIX 1) +endif() + +set(CMAKE_CXX_COMPILER_ENV_VAR "CXX") + +if(CMAKE_COMPILER_IS_MINGW) + set(MINGW 1) +endif() +set(CMAKE_CXX_COMPILER_ID_RUN 1) +set(CMAKE_CXX_IGNORE_EXTENSIONS inl;h;hpp;HPP;H;o;O;obj;OBJ;def;DEF;rc;RC) +set(CMAKE_CXX_SOURCE_FILE_EXTENSIONS C;M;c++;cc;cpp;cxx;mm;CPP) +set(CMAKE_CXX_LINKER_PREFERENCE 30) +set(CMAKE_CXX_LINKER_PREFERENCE_PROPAGATES 1) + +# Save compiler ABI information. +set(CMAKE_CXX_SIZEOF_DATA_PTR "8") +set(CMAKE_CXX_COMPILER_ABI "ELF") +set(CMAKE_CXX_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") + +if(CMAKE_CXX_SIZEOF_DATA_PTR) + set(CMAKE_SIZEOF_VOID_P "${CMAKE_CXX_SIZEOF_DATA_PTR}") +endif() + +if(CMAKE_CXX_COMPILER_ABI) + set(CMAKE_INTERNAL_PLATFORM_ABI "${CMAKE_CXX_COMPILER_ABI}") +endif() + +if(CMAKE_CXX_LIBRARY_ARCHITECTURE) + set(CMAKE_LIBRARY_ARCHITECTURE "x86_64-linux-gnu") +endif() + +set(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX "") +if(CMAKE_CXX_CL_SHOWINCLUDES_PREFIX) + set(CMAKE_CL_SHOWINCLUDES_PREFIX "${CMAKE_CXX_CL_SHOWINCLUDES_PREFIX}") +endif() + + + + + +set(CMAKE_CXX_IMPLICIT_LINK_LIBRARIES "stdc++;m;gcc_s;gcc;c;gcc_s;gcc") +set(CMAKE_CXX_IMPLICIT_LINK_DIRECTORIES "/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib") +set(CMAKE_CXX_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES "") diff --git a/week09/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin b/week09/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_C.bin new file mode 100755 index 0000000000000000000000000000000000000000..ce01f2ca7e5e788ef02f6a2691b09499318eb750 GIT binary patch literal 8464 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 literal 0 HcmV?d00001 diff --git a/week09/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin b/week09/cmake-build-debug/CMakeFiles/3.13.2/CMakeDetermineCompilerABI_CXX.bin new file mode 100755 index 0000000000000000000000000000000000000000..40ee06d7308469781ca42b235f55a21909e5cb67 GIT binary patch literal 8472 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 literal 0 HcmV?d00001 diff --git a/week09/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake b/week09/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake new file mode 100755 index 00000000..c394a4a4 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/3.13.2/CMakeSystem.cmake @@ -0,0 +1,15 @@ +set(CMAKE_HOST_SYSTEM "Linux-4.15.0-70-generic") +set(CMAKE_HOST_SYSTEM_NAME "Linux") +set(CMAKE_HOST_SYSTEM_VERSION "4.15.0-70-generic") +set(CMAKE_HOST_SYSTEM_PROCESSOR "x86_64") + + + +set(CMAKE_SYSTEM "Linux-4.15.0-70-generic") +set(CMAKE_SYSTEM_NAME "Linux") +set(CMAKE_SYSTEM_VERSION "4.15.0-70-generic") +set(CMAKE_SYSTEM_PROCESSOR "x86_64") + +set(CMAKE_CROSSCOMPILING "FALSE") + +set(CMAKE_SYSTEM_LOADED 1) diff --git a/week09/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c b/week09/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c new file mode 100644 index 00000000..bfc6ebbf --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/CMakeCCompilerId.c @@ -0,0 +1,623 @@ +#ifdef __cplusplus +# error "A C++ compiler has been selected for C." +#endif + +#if defined(__18CXX) +# define ID_VOID_MAIN +#endif +#if defined(__CLASSIC_C__) +/* cv-qualifiers did not exist in K&R C */ +# define const +# define volatile +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_C) +# define COMPILER_ID "SunPro" +# if __SUNPRO_C >= 0x5100 + /* __SUNPRO_C = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_C>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_C>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_C & 0xF) +# endif + +#elif defined(__HP_cc) +# define COMPILER_ID "HP" + /* __HP_cc = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_cc/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_cc/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_cc % 100) + +#elif defined(__DECC) +# define COMPILER_ID "Compaq" + /* __DECC_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECC_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECC_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECC_VER % 10000) + +#elif defined(__IBMC__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__ibmxl__) || (defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ >= 800) +# define COMPILER_ID "XL" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__IBMC__) && !defined(__COMPILER_VER__) && __IBMC__ < 800 +# define COMPILER_ID "VisualAge" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMC__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMC__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMC__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMC__ % 10) +# endif + + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__TINYC__) +# define COMPILER_ID "TinyCC" + +#elif defined(__BCC__) +# define COMPILER_ID "Bruce" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) +# define COMPILER_ID "GNU" +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__ARMCC_VERSION) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(__SDCC_VERSION_MAJOR) || defined(SDCC) +# define COMPILER_ID "SDCC" +# if defined(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MAJOR DEC(__SDCC_VERSION_MAJOR) +# define COMPILER_VERSION_MINOR DEC(__SDCC_VERSION_MINOR) +# define COMPILER_VERSION_PATCH DEC(__SDCC_VERSION_PATCH) +# else + /* SDCC = VRP */ +# define COMPILER_VERSION_MAJOR DEC(SDCC/100) +# define COMPILER_VERSION_MINOR DEC(SDCC/10 % 10) +# define COMPILER_VERSION_PATCH DEC(SDCC % 10) +# endif + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if !defined(__STDC__) +# if (defined(_MSC_VER) && !defined(__clang__)) \ + || (defined(__ibmxl__) || defined(__IBMC__)) +# define C_DIALECT "90" +# else +# define C_DIALECT +# endif +#elif __STDC_VERSION__ >= 201000L +# define C_DIALECT "11" +#elif __STDC_VERSION__ >= 199901L +# define C_DIALECT "99" +#else +# define C_DIALECT "90" +#endif +const char* info_language_dialect_default = + "INFO" ":" "dialect_default[" C_DIALECT "]"; + +/*--------------------------------------------------------------------------*/ + +#ifdef ID_VOID_MAIN +void main() {} +#else +# if defined(__CLASSIC_C__) +int main(argc, argv) int argc; char *argv[]; +# else +int main(int argc, char* argv[]) +# endif +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; + require += info_arch[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} +#endif diff --git a/week09/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out b/week09/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out new file mode 100755 index 0000000000000000000000000000000000000000..b6682332a4d6181ed3894fb98c1ca0489587c43f GIT binary patch literal 8616 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 Ih5F_H3$g66L;wH) literal 0 HcmV?d00001 diff --git a/week09/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp b/week09/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp new file mode 100644 index 00000000..b728b632 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/CMakeCXXCompilerId.cpp @@ -0,0 +1,602 @@ +/* This source file must have a .cpp extension so that all C++ compilers + recognize the extension without flags. Borland does not know .cxx for + example. */ +#ifndef __cplusplus +# error "A C compiler has been selected for C++." +#endif + + +/* Version number components: V=Version, R=Revision, P=Patch + Version date components: YYYY=Year, MM=Month, DD=Day */ + +#if defined(__COMO__) +# define COMPILER_ID "Comeau" + /* __COMO_VERSION__ = VRR */ +# define COMPILER_VERSION_MAJOR DEC(__COMO_VERSION__ / 100) +# define COMPILER_VERSION_MINOR DEC(__COMO_VERSION__ % 100) + +#elif defined(__INTEL_COMPILER) || defined(__ICC) +# define COMPILER_ID "Intel" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif + /* __INTEL_COMPILER = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__INTEL_COMPILER/100) +# define COMPILER_VERSION_MINOR DEC(__INTEL_COMPILER/10 % 10) +# if defined(__INTEL_COMPILER_UPDATE) +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER_UPDATE) +# else +# define COMPILER_VERSION_PATCH DEC(__INTEL_COMPILER % 10) +# endif +# if defined(__INTEL_COMPILER_BUILD_DATE) + /* __INTEL_COMPILER_BUILD_DATE = YYYYMMDD */ +# define COMPILER_VERSION_TWEAK DEC(__INTEL_COMPILER_BUILD_DATE) +# endif +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__PATHCC__) +# define COMPILER_ID "PathScale" +# define COMPILER_VERSION_MAJOR DEC(__PATHCC__) +# define COMPILER_VERSION_MINOR DEC(__PATHCC_MINOR__) +# if defined(__PATHCC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PATHCC_PATCHLEVEL__) +# endif + +#elif defined(__BORLANDC__) && defined(__CODEGEARC_VERSION__) +# define COMPILER_ID "Embarcadero" +# define COMPILER_VERSION_MAJOR HEX(__CODEGEARC_VERSION__>>24 & 0x00FF) +# define COMPILER_VERSION_MINOR HEX(__CODEGEARC_VERSION__>>16 & 0x00FF) +# define COMPILER_VERSION_PATCH DEC(__CODEGEARC_VERSION__ & 0xFFFF) + +#elif defined(__BORLANDC__) +# define COMPILER_ID "Borland" + /* __BORLANDC__ = 0xVRR */ +# define COMPILER_VERSION_MAJOR HEX(__BORLANDC__>>8) +# define COMPILER_VERSION_MINOR HEX(__BORLANDC__ & 0xFF) + +#elif defined(__WATCOMC__) && __WATCOMC__ < 1200 +# define COMPILER_ID "Watcom" + /* __WATCOMC__ = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(__WATCOMC__ / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__WATCOMC__) +# define COMPILER_ID "OpenWatcom" + /* __WATCOMC__ = VVRP + 1100 */ +# define COMPILER_VERSION_MAJOR DEC((__WATCOMC__ - 1100) / 100) +# define COMPILER_VERSION_MINOR DEC((__WATCOMC__ / 10) % 10) +# if (__WATCOMC__ % 10) > 0 +# define COMPILER_VERSION_PATCH DEC(__WATCOMC__ % 10) +# endif + +#elif defined(__SUNPRO_CC) +# define COMPILER_ID "SunPro" +# if __SUNPRO_CC >= 0x5100 + /* __SUNPRO_CC = 0xVRRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>12) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# else + /* __SUNPRO_CC = 0xVRP */ +# define COMPILER_VERSION_MAJOR HEX(__SUNPRO_CC>>8) +# define COMPILER_VERSION_MINOR HEX(__SUNPRO_CC>>4 & 0xF) +# define COMPILER_VERSION_PATCH HEX(__SUNPRO_CC & 0xF) +# endif + +#elif defined(__HP_aCC) +# define COMPILER_ID "HP" + /* __HP_aCC = VVRRPP */ +# define COMPILER_VERSION_MAJOR DEC(__HP_aCC/10000) +# define COMPILER_VERSION_MINOR DEC(__HP_aCC/100 % 100) +# define COMPILER_VERSION_PATCH DEC(__HP_aCC % 100) + +#elif defined(__DECCXX) +# define COMPILER_ID "Compaq" + /* __DECCXX_VER = VVRRTPPPP */ +# define COMPILER_VERSION_MAJOR DEC(__DECCXX_VER/10000000) +# define COMPILER_VERSION_MINOR DEC(__DECCXX_VER/100000 % 100) +# define COMPILER_VERSION_PATCH DEC(__DECCXX_VER % 10000) + +#elif defined(__IBMCPP__) && defined(__COMPILER_VER__) +# define COMPILER_ID "zOS" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__ibmxl__) || (defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ >= 800) +# define COMPILER_ID "XL" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__IBMCPP__) && !defined(__COMPILER_VER__) && __IBMCPP__ < 800 +# define COMPILER_ID "VisualAge" +# if defined(__ibmxl__) +# define COMPILER_VERSION_MAJOR DEC(__ibmxl_version__) +# define COMPILER_VERSION_MINOR DEC(__ibmxl_release__) +# define COMPILER_VERSION_PATCH DEC(__ibmxl_modification__) +# define COMPILER_VERSION_TWEAK DEC(__ibmxl_ptf_fix_level__) +# else + /* __IBMCPP__ = VRP */ +# define COMPILER_VERSION_MAJOR DEC(__IBMCPP__/100) +# define COMPILER_VERSION_MINOR DEC(__IBMCPP__/10 % 10) +# define COMPILER_VERSION_PATCH DEC(__IBMCPP__ % 10) +# endif + + +#elif defined(__PGI) +# define COMPILER_ID "PGI" +# define COMPILER_VERSION_MAJOR DEC(__PGIC__) +# define COMPILER_VERSION_MINOR DEC(__PGIC_MINOR__) +# if defined(__PGIC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__PGIC_PATCHLEVEL__) +# endif + +#elif defined(_CRAYC) +# define COMPILER_ID "Cray" +# define COMPILER_VERSION_MAJOR DEC(_RELEASE_MAJOR) +# define COMPILER_VERSION_MINOR DEC(_RELEASE_MINOR) + +#elif defined(__TI_COMPILER_VERSION__) +# define COMPILER_ID "TI" + /* __TI_COMPILER_VERSION__ = VVVRRRPPP */ +# define COMPILER_VERSION_MAJOR DEC(__TI_COMPILER_VERSION__/1000000) +# define COMPILER_VERSION_MINOR DEC(__TI_COMPILER_VERSION__/1000 % 1000) +# define COMPILER_VERSION_PATCH DEC(__TI_COMPILER_VERSION__ % 1000) + +#elif defined(__FUJITSU) || defined(__FCC_VERSION) || defined(__fcc_version) +# define COMPILER_ID "Fujitsu" + +#elif defined(__SCO_VERSION__) +# define COMPILER_ID "SCO" + +#elif defined(__clang__) && defined(__apple_build_version__) +# define COMPILER_ID "AppleClang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif +# define COMPILER_VERSION_TWEAK DEC(__apple_build_version__) + +#elif defined(__clang__) +# define COMPILER_ID "Clang" +# if defined(_MSC_VER) +# define SIMULATE_ID "MSVC" +# endif +# define COMPILER_VERSION_MAJOR DEC(__clang_major__) +# define COMPILER_VERSION_MINOR DEC(__clang_minor__) +# define COMPILER_VERSION_PATCH DEC(__clang_patchlevel__) +# if defined(_MSC_VER) + /* _MSC_VER = VVRR */ +# define SIMULATE_VERSION_MAJOR DEC(_MSC_VER / 100) +# define SIMULATE_VERSION_MINOR DEC(_MSC_VER % 100) +# endif + +#elif defined(__GNUC__) || defined(__GNUG__) +# define COMPILER_ID "GNU" +# if defined(__GNUC__) +# define COMPILER_VERSION_MAJOR DEC(__GNUC__) +# else +# define COMPILER_VERSION_MAJOR DEC(__GNUG__) +# endif +# if defined(__GNUC_MINOR__) +# define COMPILER_VERSION_MINOR DEC(__GNUC_MINOR__) +# endif +# if defined(__GNUC_PATCHLEVEL__) +# define COMPILER_VERSION_PATCH DEC(__GNUC_PATCHLEVEL__) +# endif + +#elif defined(_MSC_VER) +# define COMPILER_ID "MSVC" + /* _MSC_VER = VVRR */ +# define COMPILER_VERSION_MAJOR DEC(_MSC_VER / 100) +# define COMPILER_VERSION_MINOR DEC(_MSC_VER % 100) +# if defined(_MSC_FULL_VER) +# if _MSC_VER >= 1400 + /* _MSC_FULL_VER = VVRRPPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 100000) +# else + /* _MSC_FULL_VER = VVRRPPPP */ +# define COMPILER_VERSION_PATCH DEC(_MSC_FULL_VER % 10000) +# endif +# endif +# if defined(_MSC_BUILD) +# define COMPILER_VERSION_TWEAK DEC(_MSC_BUILD) +# endif + +#elif defined(__VISUALDSPVERSION__) || defined(__ADSPBLACKFIN__) || defined(__ADSPTS__) || defined(__ADSP21000__) +# define COMPILER_ID "ADSP" +#if defined(__VISUALDSPVERSION__) + /* __VISUALDSPVERSION__ = 0xVVRRPP00 */ +# define COMPILER_VERSION_MAJOR HEX(__VISUALDSPVERSION__>>24) +# define COMPILER_VERSION_MINOR HEX(__VISUALDSPVERSION__>>16 & 0xFF) +# define COMPILER_VERSION_PATCH HEX(__VISUALDSPVERSION__>>8 & 0xFF) +#endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# define COMPILER_ID "IAR" +# if defined(__VER__) +# define COMPILER_VERSION_MAJOR DEC((__VER__) / 1000000) +# define COMPILER_VERSION_MINOR DEC(((__VER__) / 1000) % 1000) +# define COMPILER_VERSION_PATCH DEC((__VER__) % 1000) +# define COMPILER_VERSION_INTERNAL DEC(__IAR_SYSTEMS_ICC__) +# endif + +#elif defined(__ARMCC_VERSION) +# define COMPILER_ID "ARMCC" +#if __ARMCC_VERSION >= 1000000 + /* __ARMCC_VERSION = VRRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/1000000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 100) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#else + /* __ARMCC_VERSION = VRPPPP */ + # define COMPILER_VERSION_MAJOR DEC(__ARMCC_VERSION/100000) + # define COMPILER_VERSION_MINOR DEC(__ARMCC_VERSION/10000 % 10) + # define COMPILER_VERSION_PATCH DEC(__ARMCC_VERSION % 10000) +#endif + + +#elif defined(_SGI_COMPILER_VERSION) || defined(_COMPILER_VERSION) +# define COMPILER_ID "MIPSpro" +# if defined(_SGI_COMPILER_VERSION) + /* _SGI_COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_SGI_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_SGI_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_SGI_COMPILER_VERSION % 10) +# else + /* _COMPILER_VERSION = VRP */ +# define COMPILER_VERSION_MAJOR DEC(_COMPILER_VERSION/100) +# define COMPILER_VERSION_MINOR DEC(_COMPILER_VERSION/10 % 10) +# define COMPILER_VERSION_PATCH DEC(_COMPILER_VERSION % 10) +# endif + + +/* These compilers are either not known or too old to define an + identification macro. Try to identify the platform and guess that + it is the native compiler. */ +#elif defined(__sgi) +# define COMPILER_ID "MIPSpro" + +#elif defined(__hpux) || defined(__hpua) +# define COMPILER_ID "HP" + +#else /* unknown compiler */ +# define COMPILER_ID "" +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_compiler = "INFO" ":" "compiler[" COMPILER_ID "]"; +#ifdef SIMULATE_ID +char const* info_simulate = "INFO" ":" "simulate[" SIMULATE_ID "]"; +#endif + +#ifdef __QNXNTO__ +char const* qnxnto = "INFO" ":" "qnxnto[]"; +#endif + +#if defined(__CRAYXE) || defined(__CRAYXC) +char const *info_cray = "INFO" ":" "compiler_wrapper[CrayPrgEnv]"; +#endif + +#define STRINGIFY_HELPER(X) #X +#define STRINGIFY(X) STRINGIFY_HELPER(X) + +/* Identify known platforms by name. */ +#if defined(__linux) || defined(__linux__) || defined(linux) +# define PLATFORM_ID "Linux" + +#elif defined(__CYGWIN__) +# define PLATFORM_ID "Cygwin" + +#elif defined(__MINGW32__) +# define PLATFORM_ID "MinGW" + +#elif defined(__APPLE__) +# define PLATFORM_ID "Darwin" + +#elif defined(_WIN32) || defined(__WIN32__) || defined(WIN32) +# define PLATFORM_ID "Windows" + +#elif defined(__FreeBSD__) || defined(__FreeBSD) +# define PLATFORM_ID "FreeBSD" + +#elif defined(__NetBSD__) || defined(__NetBSD) +# define PLATFORM_ID "NetBSD" + +#elif defined(__OpenBSD__) || defined(__OPENBSD) +# define PLATFORM_ID "OpenBSD" + +#elif defined(__sun) || defined(sun) +# define PLATFORM_ID "SunOS" + +#elif defined(_AIX) || defined(__AIX) || defined(__AIX__) || defined(__aix) || defined(__aix__) +# define PLATFORM_ID "AIX" + +#elif defined(__sgi) || defined(__sgi__) || defined(_SGI) +# define PLATFORM_ID "IRIX" + +#elif defined(__hpux) || defined(__hpux__) +# define PLATFORM_ID "HP-UX" + +#elif defined(__HAIKU__) +# define PLATFORM_ID "Haiku" + +#elif defined(__BeOS) || defined(__BEOS__) || defined(_BEOS) +# define PLATFORM_ID "BeOS" + +#elif defined(__QNX__) || defined(__QNXNTO__) +# define PLATFORM_ID "QNX" + +#elif defined(__tru64) || defined(_tru64) || defined(__TRU64__) +# define PLATFORM_ID "Tru64" + +#elif defined(__riscos) || defined(__riscos__) +# define PLATFORM_ID "RISCos" + +#elif defined(__sinix) || defined(__sinix__) || defined(__SINIX__) +# define PLATFORM_ID "SINIX" + +#elif defined(__UNIX_SV__) +# define PLATFORM_ID "UNIX_SV" + +#elif defined(__bsdos__) +# define PLATFORM_ID "BSDOS" + +#elif defined(_MPRAS) || defined(MPRAS) +# define PLATFORM_ID "MP-RAS" + +#elif defined(__osf) || defined(__osf__) +# define PLATFORM_ID "OSF1" + +#elif defined(_SCO_SV) || defined(SCO_SV) || defined(sco_sv) +# define PLATFORM_ID "SCO_SV" + +#elif defined(__ultrix) || defined(__ultrix__) || defined(_ULTRIX) +# define PLATFORM_ID "ULTRIX" + +#elif defined(__XENIX__) || defined(_XENIX) || defined(XENIX) +# define PLATFORM_ID "Xenix" + +#elif defined(__WATCOMC__) +# if defined(__LINUX__) +# define PLATFORM_ID "Linux" + +# elif defined(__DOS__) +# define PLATFORM_ID "DOS" + +# elif defined(__OS2__) +# define PLATFORM_ID "OS2" + +# elif defined(__WINDOWS__) +# define PLATFORM_ID "Windows3x" + +# else /* unknown platform */ +# define PLATFORM_ID +# endif + +#else /* unknown platform */ +# define PLATFORM_ID + +#endif + +/* For windows compilers MSVC and Intel we can determine + the architecture of the compiler being used. This is because + the compilers do not have flags that can change the architecture, + but rather depend on which compiler is being used +*/ +#if defined(_WIN32) && defined(_MSC_VER) +# if defined(_M_IA64) +# define ARCHITECTURE_ID "IA64" + +# elif defined(_M_X64) || defined(_M_AMD64) +# define ARCHITECTURE_ID "x64" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# elif defined(_M_ARM64) +# define ARCHITECTURE_ID "ARM64" + +# elif defined(_M_ARM) +# if _M_ARM == 4 +# define ARCHITECTURE_ID "ARMV4I" +# elif _M_ARM == 5 +# define ARCHITECTURE_ID "ARMV5I" +# else +# define ARCHITECTURE_ID "ARMV" STRINGIFY(_M_ARM) +# endif + +# elif defined(_M_MIPS) +# define ARCHITECTURE_ID "MIPS" + +# elif defined(_M_SH) +# define ARCHITECTURE_ID "SHx" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__WATCOMC__) +# if defined(_M_I86) +# define ARCHITECTURE_ID "I86" + +# elif defined(_M_IX86) +# define ARCHITECTURE_ID "X86" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif + +#elif defined(__IAR_SYSTEMS_ICC__) || defined(__IAR_SYSTEMS_ICC) +# if defined(__ICCARM__) +# define ARCHITECTURE_ID "ARM" + +# elif defined(__ICCAVR__) +# define ARCHITECTURE_ID "AVR" + +# else /* unknown architecture */ +# define ARCHITECTURE_ID "" +# endif +#else +# define ARCHITECTURE_ID +#endif + +/* Convert integer to decimal digit literals. */ +#define DEC(n) \ + ('0' + (((n) / 10000000)%10)), \ + ('0' + (((n) / 1000000)%10)), \ + ('0' + (((n) / 100000)%10)), \ + ('0' + (((n) / 10000)%10)), \ + ('0' + (((n) / 1000)%10)), \ + ('0' + (((n) / 100)%10)), \ + ('0' + (((n) / 10)%10)), \ + ('0' + ((n) % 10)) + +/* Convert integer to hex digit literals. */ +#define HEX(n) \ + ('0' + ((n)>>28 & 0xF)), \ + ('0' + ((n)>>24 & 0xF)), \ + ('0' + ((n)>>20 & 0xF)), \ + ('0' + ((n)>>16 & 0xF)), \ + ('0' + ((n)>>12 & 0xF)), \ + ('0' + ((n)>>8 & 0xF)), \ + ('0' + ((n)>>4 & 0xF)), \ + ('0' + ((n) & 0xF)) + +/* Construct a string literal encoding the version number components. */ +#ifdef COMPILER_VERSION_MAJOR +char const info_version[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','[', + COMPILER_VERSION_MAJOR, +# ifdef COMPILER_VERSION_MINOR + '.', COMPILER_VERSION_MINOR, +# ifdef COMPILER_VERSION_PATCH + '.', COMPILER_VERSION_PATCH, +# ifdef COMPILER_VERSION_TWEAK + '.', COMPILER_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct a string literal encoding the internal version number. */ +#ifdef COMPILER_VERSION_INTERNAL +char const info_version_internal[] = { + 'I', 'N', 'F', 'O', ':', + 'c','o','m','p','i','l','e','r','_','v','e','r','s','i','o','n','_', + 'i','n','t','e','r','n','a','l','[', + COMPILER_VERSION_INTERNAL,']','\0'}; +#endif + +/* Construct a string literal encoding the version number components. */ +#ifdef SIMULATE_VERSION_MAJOR +char const info_simulate_version[] = { + 'I', 'N', 'F', 'O', ':', + 's','i','m','u','l','a','t','e','_','v','e','r','s','i','o','n','[', + SIMULATE_VERSION_MAJOR, +# ifdef SIMULATE_VERSION_MINOR + '.', SIMULATE_VERSION_MINOR, +# ifdef SIMULATE_VERSION_PATCH + '.', SIMULATE_VERSION_PATCH, +# ifdef SIMULATE_VERSION_TWEAK + '.', SIMULATE_VERSION_TWEAK, +# endif +# endif +# endif + ']','\0'}; +#endif + +/* Construct the string literal in pieces to prevent the source from + getting matched. Store it in a pointer rather than an array + because some compilers will just produce instructions to fill the + array rather than assigning a pointer to a static array. */ +char const* info_platform = "INFO" ":" "platform[" PLATFORM_ID "]"; +char const* info_arch = "INFO" ":" "arch[" ARCHITECTURE_ID "]"; + + + + +#if defined(_MSC_VER) && defined(_MSVC_LANG) +#define CXX_STD _MSVC_LANG +#else +#define CXX_STD __cplusplus +#endif + +const char* info_language_dialect_default = "INFO" ":" "dialect_default[" +#if CXX_STD > 201703L + "20" +#elif CXX_STD >= 201703L + "17" +#elif CXX_STD >= 201402L + "14" +#elif CXX_STD >= 201103L + "11" +#else + "98" +#endif +"]"; + +/*--------------------------------------------------------------------------*/ + +int main(int argc, char* argv[]) +{ + int require = 0; + require += info_compiler[argc]; + require += info_platform[argc]; +#ifdef COMPILER_VERSION_MAJOR + require += info_version[argc]; +#endif +#ifdef COMPILER_VERSION_INTERNAL + require += info_version_internal[argc]; +#endif +#ifdef SIMULATE_ID + require += info_simulate[argc]; +#endif +#ifdef SIMULATE_VERSION_MAJOR + require += info_simulate_version[argc]; +#endif +#if defined(__CRAYXE) || defined(__CRAYXC) + require += info_cray[argc]; +#endif + require += info_language_dialect_default[argc]; + (void)argv; + return require; +} diff --git a/week09/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out b/week09/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out new file mode 100755 index 0000000000000000000000000000000000000000..4f752d048d3d136555ba6b13b7869c22a3d0b55a GIT binary patch literal 8632 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 PMm|kP+C^q0>XiQ<q>!mv literal 0 HcmV?d00001 diff --git a/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.o b/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..5e75de615aee0173032b8913346f5f6a20f13383 GIT binary patch literal 322224 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 V@daBU?I1pR#`a$s<ri#{{}0$X&*T6A literal 0 HcmV?d00001 diff --git a/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/CXX.includecache b/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/CXX.includecache new file mode 100644 index 00000000..8c6b4b37 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/CXX.includecache @@ -0,0 +1,16 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week09/387_firstuniquechar.cpp +iostream +- +unordered_map +- +string +- + diff --git a/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/DependInfo.cmake b/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/DependInfo.cmake new file mode 100644 index 00000000..523f2b68 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week09/387_firstuniquechar.cpp" "/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/build.make b/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/build.make new file mode 100644 index 00000000..fb76db4c --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week09 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week09/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/387_firstuniquechar.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/387_firstuniquechar.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/387_firstuniquechar.dir/flags.make + +CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.o: CMakeFiles/387_firstuniquechar.dir/flags.make +CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.o: ../387_firstuniquechar.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.o -c /home/lewang/algorithm018/week09/387_firstuniquechar.cpp + +CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week09/387_firstuniquechar.cpp > CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.i + +CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week09/387_firstuniquechar.cpp -o CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.s + +# Object files for target 387_firstuniquechar +387_firstuniquechar_OBJECTS = \ +"CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.o" + +# External object files for target 387_firstuniquechar +387_firstuniquechar_EXTERNAL_OBJECTS = + +387_firstuniquechar: CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.o +387_firstuniquechar: CMakeFiles/387_firstuniquechar.dir/build.make +387_firstuniquechar: CMakeFiles/387_firstuniquechar.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 387_firstuniquechar" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/387_firstuniquechar.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/387_firstuniquechar.dir/build: 387_firstuniquechar + +.PHONY : CMakeFiles/387_firstuniquechar.dir/build + +CMakeFiles/387_firstuniquechar.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/387_firstuniquechar.dir/cmake_clean.cmake +.PHONY : CMakeFiles/387_firstuniquechar.dir/clean + +CMakeFiles/387_firstuniquechar.dir/depend: + cd /home/lewang/algorithm018/week09/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week09 /home/lewang/algorithm018/week09 /home/lewang/algorithm018/week09/cmake-build-debug /home/lewang/algorithm018/week09/cmake-build-debug /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/387_firstuniquechar.dir/depend + diff --git a/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/cmake_clean.cmake b/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/cmake_clean.cmake new file mode 100644 index 00000000..dd623ac0 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.o" + "387_firstuniquechar.pdb" + "387_firstuniquechar" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/387_firstuniquechar.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/depend.internal b/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/depend.internal new file mode 100644 index 00000000..56a36209 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.o + /home/lewang/algorithm018/week09/387_firstuniquechar.cpp diff --git a/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/depend.make b/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/depend.make new file mode 100644 index 00000000..50184eed --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.o: ../387_firstuniquechar.cpp + diff --git a/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/flags.make b/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/link.txt b/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/link.txt new file mode 100644 index 00000000..05404ac2 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.o -o 387_firstuniquechar diff --git a/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/progress.make b/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/progress.make new file mode 100644 index 00000000..3a86673a --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 5 +CMAKE_PROGRESS_2 = 6 + diff --git a/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.o b/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..b718a2ef89aa403845955f4ecb54a29157016b24 GIT binary patch literal 81248 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 Ut>WApEB+TEe+>%g`KX}v|H+0UWB>pF literal 0 HcmV?d00001 diff --git a/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/CXX.includecache b/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/CXX.includecache new file mode 100644 index 00000000..e947adc6 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/CXX.includecache @@ -0,0 +1,14 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week09/541_reverseStr.cpp +iostream +- +string +- + diff --git a/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/DependInfo.cmake b/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/DependInfo.cmake new file mode 100644 index 00000000..585e5efe --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week09/541_reverseStr.cpp" "/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/build.make b/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/build.make new file mode 100644 index 00000000..98882ef6 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week09 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week09/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/541_reverseStr.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/541_reverseStr.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/541_reverseStr.dir/flags.make + +CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.o: CMakeFiles/541_reverseStr.dir/flags.make +CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.o: ../541_reverseStr.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.o -c /home/lewang/algorithm018/week09/541_reverseStr.cpp + +CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week09/541_reverseStr.cpp > CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.i + +CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week09/541_reverseStr.cpp -o CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.s + +# Object files for target 541_reverseStr +541_reverseStr_OBJECTS = \ +"CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.o" + +# External object files for target 541_reverseStr +541_reverseStr_EXTERNAL_OBJECTS = + +541_reverseStr: CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.o +541_reverseStr: CMakeFiles/541_reverseStr.dir/build.make +541_reverseStr: CMakeFiles/541_reverseStr.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 541_reverseStr" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/541_reverseStr.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/541_reverseStr.dir/build: 541_reverseStr + +.PHONY : CMakeFiles/541_reverseStr.dir/build + +CMakeFiles/541_reverseStr.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/541_reverseStr.dir/cmake_clean.cmake +.PHONY : CMakeFiles/541_reverseStr.dir/clean + +CMakeFiles/541_reverseStr.dir/depend: + cd /home/lewang/algorithm018/week09/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week09 /home/lewang/algorithm018/week09 /home/lewang/algorithm018/week09/cmake-build-debug /home/lewang/algorithm018/week09/cmake-build-debug /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/541_reverseStr.dir/depend + diff --git a/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/cmake_clean.cmake b/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/cmake_clean.cmake new file mode 100644 index 00000000..aa840e34 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.o" + "541_reverseStr.pdb" + "541_reverseStr" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/541_reverseStr.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/depend.internal b/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/depend.internal new file mode 100644 index 00000000..41135980 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.o + /home/lewang/algorithm018/week09/541_reverseStr.cpp diff --git a/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/depend.make b/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/depend.make new file mode 100644 index 00000000..68bd7a0f --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.o: ../541_reverseStr.cpp + diff --git a/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/flags.make b/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/link.txt b/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/link.txt new file mode 100644 index 00000000..a6eda75d --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.o -o 541_reverseStr diff --git a/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/progress.make b/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/progress.make new file mode 100644 index 00000000..72bb7dd0 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 7 +CMAKE_PROGRESS_2 = 8 + diff --git a/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.o b/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..f4781c81ab7f173e293ce74a4981bf8474d048a8 GIT binary patch literal 82200 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 RP`vG;zj<E`f$*i{|3BhfS;qhX literal 0 HcmV?d00001 diff --git a/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/CXX.includecache b/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/CXX.includecache new file mode 100644 index 00000000..ea5b8a9f --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/CXX.includecache @@ -0,0 +1,14 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week09/680_validPalindrome.cpp +iostream +- +string +- + diff --git a/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/DependInfo.cmake b/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/DependInfo.cmake new file mode 100644 index 00000000..97308de0 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week09/680_validPalindrome.cpp" "/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/build.make b/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/build.make new file mode 100644 index 00000000..9313ced3 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week09 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week09/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/680_validPalindrome.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/680_validPalindrome.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/680_validPalindrome.dir/flags.make + +CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.o: CMakeFiles/680_validPalindrome.dir/flags.make +CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.o: ../680_validPalindrome.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.o -c /home/lewang/algorithm018/week09/680_validPalindrome.cpp + +CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week09/680_validPalindrome.cpp > CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.i + +CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week09/680_validPalindrome.cpp -o CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.s + +# Object files for target 680_validPalindrome +680_validPalindrome_OBJECTS = \ +"CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.o" + +# External object files for target 680_validPalindrome +680_validPalindrome_EXTERNAL_OBJECTS = + +680_validPalindrome: CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.o +680_validPalindrome: CMakeFiles/680_validPalindrome.dir/build.make +680_validPalindrome: CMakeFiles/680_validPalindrome.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 680_validPalindrome" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/680_validPalindrome.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/680_validPalindrome.dir/build: 680_validPalindrome + +.PHONY : CMakeFiles/680_validPalindrome.dir/build + +CMakeFiles/680_validPalindrome.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/680_validPalindrome.dir/cmake_clean.cmake +.PHONY : CMakeFiles/680_validPalindrome.dir/clean + +CMakeFiles/680_validPalindrome.dir/depend: + cd /home/lewang/algorithm018/week09/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week09 /home/lewang/algorithm018/week09 /home/lewang/algorithm018/week09/cmake-build-debug /home/lewang/algorithm018/week09/cmake-build-debug /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/680_validPalindrome.dir/depend + diff --git a/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/cmake_clean.cmake b/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/cmake_clean.cmake new file mode 100644 index 00000000..c8a203d1 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.o" + "680_validPalindrome.pdb" + "680_validPalindrome" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/680_validPalindrome.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/depend.internal b/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/depend.internal new file mode 100644 index 00000000..ebacc2f7 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.o + /home/lewang/algorithm018/week09/680_validPalindrome.cpp diff --git a/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/depend.make b/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/depend.make new file mode 100644 index 00000000..cef8dc1a --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.o: ../680_validPalindrome.cpp + diff --git a/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/flags.make b/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/link.txt b/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/link.txt new file mode 100644 index 00000000..32f21c7c --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.o -o 680_validPalindrome diff --git a/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/progress.make b/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/progress.make new file mode 100644 index 00000000..b700c2c9 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 9 +CMAKE_PROGRESS_2 = 10 + diff --git a/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.o b/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..0fa7c677905e2be459ece814c01747bc12b9b4df GIT binary patch literal 80880 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 M73`Skj{FVq{|+>`DgXcg literal 0 HcmV?d00001 diff --git a/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/CXX.includecache b/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/CXX.includecache new file mode 100644 index 00000000..fcb58017 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/CXX.includecache @@ -0,0 +1,14 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week09/8_myAtoi.cpp +iostream +- +string +- + diff --git a/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/DependInfo.cmake b/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/DependInfo.cmake new file mode 100644 index 00000000..dbaecb95 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week09/8_myAtoi.cpp" "/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/build.make b/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/build.make new file mode 100644 index 00000000..d0f93438 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week09 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week09/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/8_myAtoi.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/8_myAtoi.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/8_myAtoi.dir/flags.make + +CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.o: CMakeFiles/8_myAtoi.dir/flags.make +CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.o: ../8_myAtoi.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.o -c /home/lewang/algorithm018/week09/8_myAtoi.cpp + +CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week09/8_myAtoi.cpp > CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.i + +CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week09/8_myAtoi.cpp -o CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.s + +# Object files for target 8_myAtoi +8_myAtoi_OBJECTS = \ +"CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.o" + +# External object files for target 8_myAtoi +8_myAtoi_EXTERNAL_OBJECTS = + +8_myAtoi: CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.o +8_myAtoi: CMakeFiles/8_myAtoi.dir/build.make +8_myAtoi: CMakeFiles/8_myAtoi.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 8_myAtoi" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/8_myAtoi.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/8_myAtoi.dir/build: 8_myAtoi + +.PHONY : CMakeFiles/8_myAtoi.dir/build + +CMakeFiles/8_myAtoi.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/8_myAtoi.dir/cmake_clean.cmake +.PHONY : CMakeFiles/8_myAtoi.dir/clean + +CMakeFiles/8_myAtoi.dir/depend: + cd /home/lewang/algorithm018/week09/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week09 /home/lewang/algorithm018/week09 /home/lewang/algorithm018/week09/cmake-build-debug /home/lewang/algorithm018/week09/cmake-build-debug /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/8_myAtoi.dir/depend + diff --git a/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/cmake_clean.cmake b/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/cmake_clean.cmake new file mode 100644 index 00000000..c1106526 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.o" + "8_myAtoi.pdb" + "8_myAtoi" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/8_myAtoi.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/depend.internal b/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/depend.internal new file mode 100644 index 00000000..57f234d1 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.o + /home/lewang/algorithm018/week09/8_myAtoi.cpp diff --git a/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/depend.make b/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/depend.make new file mode 100644 index 00000000..1d10c04f --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.o: ../8_myAtoi.cpp + diff --git a/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/flags.make b/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/link.txt b/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/link.txt new file mode 100644 index 00000000..dd803c22 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.o -o 8_myAtoi diff --git a/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/progress.make b/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/progress.make new file mode 100644 index 00000000..596289c0 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 11 +CMAKE_PROGRESS_2 = 12 + diff --git a/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.o b/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.o new file mode 100644 index 0000000000000000000000000000000000000000..a10070de6d797aac00c7ad44f2be6d8bcde05d8e GIT binary patch literal 81528 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≈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 EAG26!DF6Tf literal 0 HcmV?d00001 diff --git a/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/CXX.includecache b/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/CXX.includecache new file mode 100644 index 00000000..e2a69bbf --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/CXX.includecache @@ -0,0 +1,14 @@ +#IncludeRegexLine: ^[ ]*[#%][ ]*(include|import)[ ]*[<"]([^">]+)([">]) + +#IncludeRegexScan: ^.*$ + +#IncludeRegexComplain: ^$ + +#IncludeRegexTransform: + +/home/lewang/algorithm018/week09/917_reverseOnlyLetters.cpp +iostream +- +string +- + diff --git a/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/DependInfo.cmake b/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/DependInfo.cmake new file mode 100644 index 00000000..8cecfc3e --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/DependInfo.cmake @@ -0,0 +1,20 @@ +# The set of languages for which implicit dependencies are needed: +set(CMAKE_DEPENDS_LANGUAGES + "CXX" + ) +# The set of files for implicit dependencies of each language: +set(CMAKE_DEPENDS_CHECK_CXX + "/home/lewang/algorithm018/week09/917_reverseOnlyLetters.cpp" "/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.o" + ) +set(CMAKE_CXX_COMPILER_ID "GNU") + +# The include file search paths: +set(CMAKE_CXX_TARGET_INCLUDE_PATH + ) + +# Targets to which this target links. +set(CMAKE_TARGET_LINKED_INFO_FILES + ) + +# Fortran module output directory. +set(CMAKE_Fortran_TARGET_MODULE_DIR "") diff --git a/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/build.make b/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/build.make new file mode 100644 index 00000000..6be79951 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/build.make @@ -0,0 +1,98 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Delete rule output on recipe failure. +.DELETE_ON_ERROR: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week09 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week09/cmake-build-debug + +# Include any dependencies generated for this target. +include CMakeFiles/917_reverseOnlyLetters.dir/depend.make + +# Include the progress variables for this target. +include CMakeFiles/917_reverseOnlyLetters.dir/progress.make + +# Include the compile flags for this target's objects. +include CMakeFiles/917_reverseOnlyLetters.dir/flags.make + +CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.o: CMakeFiles/917_reverseOnlyLetters.dir/flags.make +CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.o: ../917_reverseOnlyLetters.cpp + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_1) "Building CXX object CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.o" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -o CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.o -c /home/lewang/algorithm018/week09/917_reverseOnlyLetters.cpp + +CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.i: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Preprocessing CXX source to CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.i" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -E /home/lewang/algorithm018/week09/917_reverseOnlyLetters.cpp > CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.i + +CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.s: cmake_force + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green "Compiling CXX source to assembly CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.s" + /usr/bin/c++ $(CXX_DEFINES) $(CXX_INCLUDES) $(CXX_FLAGS) -S /home/lewang/algorithm018/week09/917_reverseOnlyLetters.cpp -o CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.s + +# Object files for target 917_reverseOnlyLetters +917_reverseOnlyLetters_OBJECTS = \ +"CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.o" + +# External object files for target 917_reverseOnlyLetters +917_reverseOnlyLetters_EXTERNAL_OBJECTS = + +917_reverseOnlyLetters: CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.o +917_reverseOnlyLetters: CMakeFiles/917_reverseOnlyLetters.dir/build.make +917_reverseOnlyLetters: CMakeFiles/917_reverseOnlyLetters.dir/link.txt + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --green --bold --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=$(CMAKE_PROGRESS_2) "Linking CXX executable 917_reverseOnlyLetters" + $(CMAKE_COMMAND) -E cmake_link_script CMakeFiles/917_reverseOnlyLetters.dir/link.txt --verbose=$(VERBOSE) + +# Rule to build all files generated by this target. +CMakeFiles/917_reverseOnlyLetters.dir/build: 917_reverseOnlyLetters + +.PHONY : CMakeFiles/917_reverseOnlyLetters.dir/build + +CMakeFiles/917_reverseOnlyLetters.dir/clean: + $(CMAKE_COMMAND) -P CMakeFiles/917_reverseOnlyLetters.dir/cmake_clean.cmake +.PHONY : CMakeFiles/917_reverseOnlyLetters.dir/clean + +CMakeFiles/917_reverseOnlyLetters.dir/depend: + cd /home/lewang/algorithm018/week09/cmake-build-debug && $(CMAKE_COMMAND) -E cmake_depends "Unix Makefiles" /home/lewang/algorithm018/week09 /home/lewang/algorithm018/week09 /home/lewang/algorithm018/week09/cmake-build-debug /home/lewang/algorithm018/week09/cmake-build-debug /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/DependInfo.cmake --color=$(COLOR) +.PHONY : CMakeFiles/917_reverseOnlyLetters.dir/depend + diff --git a/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/cmake_clean.cmake b/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/cmake_clean.cmake new file mode 100644 index 00000000..33f1189a --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/cmake_clean.cmake @@ -0,0 +1,10 @@ +file(REMOVE_RECURSE + "CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.o" + "917_reverseOnlyLetters.pdb" + "917_reverseOnlyLetters" +) + +# Per-language clean rules from dependency scanning. +foreach(lang CXX) + include(CMakeFiles/917_reverseOnlyLetters.dir/cmake_clean_${lang}.cmake OPTIONAL) +endforeach() diff --git a/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/depend.internal b/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/depend.internal new file mode 100644 index 00000000..9d69ef43 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/depend.internal @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.o + /home/lewang/algorithm018/week09/917_reverseOnlyLetters.cpp diff --git a/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/depend.make b/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/depend.make new file mode 100644 index 00000000..38d2a7a3 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/depend.make @@ -0,0 +1,5 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.o: ../917_reverseOnlyLetters.cpp + diff --git a/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/flags.make b/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/flags.make new file mode 100644 index 00000000..1befdc7f --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/flags.make @@ -0,0 +1,10 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# compile CXX with /usr/bin/c++ +CXX_FLAGS = -g -std=gnu++11 + +CXX_DEFINES = + +CXX_INCLUDES = + diff --git a/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/link.txt b/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/link.txt new file mode 100644 index 00000000..ee07ed63 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/link.txt @@ -0,0 +1 @@ +/usr/bin/c++ -g -rdynamic CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.o -o 917_reverseOnlyLetters diff --git a/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/progress.make b/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/progress.make new file mode 100644 index 00000000..d92f75a2 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir/progress.make @@ -0,0 +1,3 @@ +CMAKE_PROGRESS_1 = 13 +CMAKE_PROGRESS_2 = 14 + diff --git a/week09/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake b/week09/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake new file mode 100644 index 00000000..88ff3c29 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/CMakeDirectoryInformation.cmake @@ -0,0 +1,16 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Relative path conversion top directories. +set(CMAKE_RELATIVE_PATH_TOP_SOURCE "/home/lewang/algorithm018/week09") +set(CMAKE_RELATIVE_PATH_TOP_BINARY "/home/lewang/algorithm018/week09/cmake-build-debug") + +# Force unix paths in dependencies. +set(CMAKE_FORCE_UNIX_PATHS 1) + + +# The C and CXX include file regular expressions for this directory. +set(CMAKE_C_INCLUDE_REGEX_SCAN "^.*$") +set(CMAKE_C_INCLUDE_REGEX_COMPLAIN "^$") +set(CMAKE_CXX_INCLUDE_REGEX_SCAN ${CMAKE_C_INCLUDE_REGEX_SCAN}) +set(CMAKE_CXX_INCLUDE_REGEX_COMPLAIN ${CMAKE_C_INCLUDE_REGEX_COMPLAIN}) diff --git a/week09/cmake-build-debug/CMakeFiles/CMakeOutput.log b/week09/cmake-build-debug/CMakeFiles/CMakeOutput.log new file mode 100644 index 00000000..09c72807 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/CMakeOutput.log @@ -0,0 +1,625 @@ +The system is: Linux - 4.15.0-70-generic - x86_64 +Compiling the C compiler identification source file "CMakeCCompilerId.c" succeeded. +Compiler: /usr/bin/cc +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the C compiler identification source "CMakeCCompilerId.c" produced "a.out" + +The C compiler identification is GNU, found in "/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdC/a.out" + +Compiling the CXX compiler identification source file "CMakeCXXCompilerId.cpp" succeeded. +Compiler: /usr/bin/c++ +Build flags: +Id flags: + +The output was: +0 + + +Compilation of the CXX compiler identification source "CMakeCXXCompilerId.cpp" produced "a.out" + +The CXX compiler identification is GNU, found in "/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/3.13.2/CompilerIdCXX/a.out" + +Determining if the C compiler works passed with the following output: +Change Dir: /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_21669/fast" +/usr/bin/make -f CMakeFiles/cmTC_21669.dir/build.make CMakeFiles/cmTC_21669.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_21669.dir/testCCompiler.c.o +/usr/bin/cc -o CMakeFiles/cmTC_21669.dir/testCCompiler.c.o -c /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp/testCCompiler.c +Linking C executable cmTC_21669 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_21669.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_21669.dir/testCCompiler.c.o -o cmTC_21669 +make[1]: Leaving directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Detecting C compiler ABI info compiled with the following output: +Change Dir: /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_d40a5/fast" +/usr/bin/make -f CMakeFiles/cmTC_d40a5.dir/build.make CMakeFiles/cmTC_d40a5.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_d40a5.dir/CMakeCCompilerABI.c.o +/usr/bin/cc -o CMakeFiles/cmTC_d40a5.dir/CMakeCCompilerABI.c.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCCompilerABI.c +Linking C executable cmTC_d40a5 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d40a5.dir/link.txt --verbose=1 +/usr/bin/cc -v -rdynamic CMakeFiles/cmTC_d40a5.dir/CMakeCCompilerABI.c.o -o cmTC_d40a5 +Using built-in specs. +COLLECT_GCC=/usr/bin/cc +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_d40a5' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccgXOQ3q.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_d40a5 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_d40a5.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o +make[1]: Leaving directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Parsed C implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_d40a5/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_d40a5.dir/build.make CMakeFiles/cmTC_d40a5.dir/build] + ignore line: [make[1]: Entering directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp'] + ignore line: [Building C object CMakeFiles/cmTC_d40a5.dir/CMakeCCompilerABI.c.o] + ignore line: [/usr/bin/cc -o CMakeFiles/cmTC_d40a5.dir/CMakeCCompilerABI.c.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCCompilerABI.c] + ignore line: [Linking C executable cmTC_d40a5] + ignore line: [/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_d40a5.dir/link.txt --verbose=1] + ignore line: [/usr/bin/cc -v -rdynamic CMakeFiles/cmTC_d40a5.dir/CMakeCCompilerABI.c.o -o cmTC_d40a5 ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/cc] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_d40a5' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/ccgXOQ3q.res -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lgcc_s --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_d40a5 /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_d40a5.dir/CMakeCCompilerABI.c.o -lgcc --push-state --as-needed -lgcc_s --pop-state -lc -lgcc --push-state --as-needed -lgcc_s --pop-state /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/ccgXOQ3q.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_d40a5] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] + arg [CMakeFiles/cmTC_d40a5.dir/CMakeCCompilerABI.c.o] ==> ignore + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [-lc] ==> lib [c] + arg [-lgcc] ==> lib [gcc] + arg [--push-state] ==> ignore + arg [--as-needed] ==> ignore + arg [-lgcc_s] ==> lib [gcc_s] + arg [--pop-state] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtend.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5] ==> [/usr/lib/gcc/x86_64-linux-gnu/5] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> [/usr/lib] + implicit libs: [gcc;gcc_s;c;gcc;gcc_s] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting C [-std=c11] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_b858f/fast" +/usr/bin/make -f CMakeFiles/cmTC_b858f.dir/build.make CMakeFiles/cmTC_b858f.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_b858f.dir/feature_tests.c.o +/usr/bin/cc -std=c11 -o CMakeFiles/cmTC_b858f.dir/feature_tests.c.o -c /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_b858f +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_b858f.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_b858f.dir/feature_tests.c.o -o cmTC_b858f +make[1]: Leaving directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:1c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c99] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_47379/fast" +/usr/bin/make -f CMakeFiles/cmTC_47379.dir/build.make CMakeFiles/cmTC_47379.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_47379.dir/feature_tests.c.o +/usr/bin/cc -std=c99 -o CMakeFiles/cmTC_47379.dir/feature_tests.c.o -c /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_47379 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_47379.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_47379.dir/feature_tests.c.o -o cmTC_47379 +make[1]: Leaving directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:1c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:1c_variadic_macros + + +Detecting C [-std=c90] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_51d5e/fast" +/usr/bin/make -f CMakeFiles/cmTC_51d5e.dir/build.make CMakeFiles/cmTC_51d5e.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' +Building C object CMakeFiles/cmTC_51d5e.dir/feature_tests.c.o +/usr/bin/cc -std=c90 -o CMakeFiles/cmTC_51d5e.dir/feature_tests.c.o -c /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/feature_tests.c +Linking C executable cmTC_51d5e +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_51d5e.dir/link.txt --verbose=1 +/usr/bin/cc -rdynamic CMakeFiles/cmTC_51d5e.dir/feature_tests.c.o -o cmTC_51d5e +make[1]: Leaving directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: C_FEATURE:1c_function_prototypes + Feature record: C_FEATURE:0c_restrict + Feature record: C_FEATURE:0c_static_assert + Feature record: C_FEATURE:0c_variadic_macros +Determining if the CXX compiler works passed with the following output: +Change Dir: /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_9d5d7/fast" +/usr/bin/make -f CMakeFiles/cmTC_9d5d7.dir/build.make CMakeFiles/cmTC_9d5d7.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_9d5d7.dir/testCXXCompiler.cxx.o +/usr/bin/c++ -o CMakeFiles/cmTC_9d5d7.dir/testCXXCompiler.cxx.o -c /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp/testCXXCompiler.cxx +Linking CXX executable cmTC_9d5d7 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_9d5d7.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_9d5d7.dir/testCXXCompiler.cxx.o -o cmTC_9d5d7 +make[1]: Leaving directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Detecting CXX compiler ABI info compiled with the following output: +Change Dir: /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_2a26b/fast" +/usr/bin/make -f CMakeFiles/cmTC_2a26b.dir/build.make CMakeFiles/cmTC_2a26b.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_2a26b.dir/CMakeCXXCompilerABI.cpp.o +/usr/bin/c++ -o CMakeFiles/cmTC_2a26b.dir/CMakeCXXCompilerABI.cpp.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXCompilerABI.cpp +Linking CXX executable cmTC_2a26b +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_2a26b.dir/link.txt --verbose=1 +/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_2a26b.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_2a26b +Using built-in specs. +COLLECT_GCC=/usr/bin/c++ +COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper +Target: x86_64-linux-gnu +Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu +Thread model: posix +gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) +COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/ +LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/ +COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_2a26b' '-shared-libgcc' '-mtune=generic' '-march=x86-64' + /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/cc8tPb5F.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_2a26b /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_2a26b.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o +make[1]: Leaving directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' + + +Parsed CXX implicit link information from above output: + link line regex: [^( *|.*[/\])(ld|CMAKE_LINK_STARTFILE-NOTFOUND|([^/\]+-)?ld|collect2)[^/\]*( |$)] + ignore line: [Change Dir: /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp] + ignore line: [] + ignore line: [Run Build Command:"/usr/bin/make" "cmTC_2a26b/fast"] + ignore line: [/usr/bin/make -f CMakeFiles/cmTC_2a26b.dir/build.make CMakeFiles/cmTC_2a26b.dir/build] + ignore line: [make[1]: Entering directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp'] + ignore line: [Building CXX object CMakeFiles/cmTC_2a26b.dir/CMakeCXXCompilerABI.cpp.o] + ignore line: [/usr/bin/c++ -o CMakeFiles/cmTC_2a26b.dir/CMakeCXXCompilerABI.cpp.o -c /home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXCompilerABI.cpp] + ignore line: [Linking CXX executable cmTC_2a26b] + ignore line: [/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_2a26b.dir/link.txt --verbose=1] + ignore line: [/usr/bin/c++ -v -rdynamic CMakeFiles/cmTC_2a26b.dir/CMakeCXXCompilerABI.cpp.o -o cmTC_2a26b ] + ignore line: [Using built-in specs.] + ignore line: [COLLECT_GCC=/usr/bin/c++] + ignore line: [COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] + ignore line: [Target: x86_64-linux-gnu] + ignore line: [Configured with: ../src/configure -v --with-pkgversion='Ubuntu 5.5.0-12ubuntu1' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++ --prefix=/usr --program-suffix=-5 --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --enable-default-pie --with-system-zlib --enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu] + ignore line: [Thread model: posix] + ignore line: [gcc version 5.5.0 20171010 (Ubuntu 5.5.0-12ubuntu1) ] + ignore line: [COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/] + ignore line: [LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../:/lib/:/usr/lib/] + ignore line: [COLLECT_GCC_OPTIONS='-v' '-rdynamic' '-o' 'cmTC_2a26b' '-shared-libgcc' '-mtune=generic' '-march=x86-64'] + link line: [ /usr/lib/gcc/x86_64-linux-gnu/5/collect2 -plugin /usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so -plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper -plugin-opt=-fresolution=/tmp/cc8tPb5F.res -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc -plugin-opt=-pass-through=-lc -plugin-opt=-pass-through=-lgcc_s -plugin-opt=-pass-through=-lgcc --sysroot=/ --build-id --eh-frame-hdr -m elf_x86_64 --hash-style=gnu --as-needed -export-dynamic -dynamic-linker /lib64/ld-linux-x86-64.so.2 -pie -z now -z relro -o cmTC_2a26b /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o /usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o -L/usr/lib/gcc/x86_64-linux-gnu/5 -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu -L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib -L/lib/x86_64-linux-gnu -L/lib/../lib -L/usr/lib/x86_64-linux-gnu -L/usr/lib/../lib -L/usr/lib/gcc/x86_64-linux-gnu/5/../../.. CMakeFiles/cmTC_2a26b.dir/CMakeCXXCompilerABI.cpp.o -lstdc++ -lm -lgcc_s -lgcc -lc -lgcc_s -lgcc /usr/lib/gcc/x86_64-linux-gnu/5/crtend.o /usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/collect2] ==> ignore + arg [-plugin] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/liblto_plugin.so] ==> ignore + arg [-plugin-opt=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper] ==> ignore + arg [-plugin-opt=-fresolution=/tmp/cc8tPb5F.res] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [-plugin-opt=-pass-through=-lc] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc_s] ==> ignore + arg [-plugin-opt=-pass-through=-lgcc] ==> ignore + arg [--sysroot=/] ==> ignore + arg [--build-id] ==> ignore + arg [--eh-frame-hdr] ==> ignore + arg [-m] ==> ignore + arg [elf_x86_64] ==> ignore + arg [--hash-style=gnu] ==> ignore + arg [--as-needed] ==> ignore + arg [-export-dynamic] ==> ignore + arg [-dynamic-linker] ==> ignore + arg [/lib64/ld-linux-x86-64.so.2] ==> ignore + arg [-pie] ==> ignore + arg [-znow] ==> ignore + arg [-zrelro] ==> ignore + arg [-o] ==> ignore + arg [cmTC_2a26b] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/Scrt1.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crti.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtbeginS.o] ==> ignore + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] + arg [-L/lib/x86_64-linux-gnu] ==> dir [/lib/x86_64-linux-gnu] + arg [-L/lib/../lib] ==> dir [/lib/../lib] + arg [-L/usr/lib/x86_64-linux-gnu] ==> dir [/usr/lib/x86_64-linux-gnu] + arg [-L/usr/lib/../lib] ==> dir [/usr/lib/../lib] + arg [-L/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] + arg [CMakeFiles/cmTC_2a26b.dir/CMakeCXXCompilerABI.cpp.o] ==> ignore + arg [-lstdc++] ==> lib [stdc++] + arg [-lm] ==> lib [m] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [-lc] ==> lib [c] + arg [-lgcc_s] ==> lib [gcc_s] + arg [-lgcc] ==> lib [gcc] + arg [/usr/lib/gcc/x86_64-linux-gnu/5/crtend.o] ==> ignore + arg [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/crtn.o] ==> ignore + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5] ==> [/usr/lib/gcc/x86_64-linux-gnu/5] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib] ==> [/usr/lib] + collapse library dir [/lib/x86_64-linux-gnu] ==> [/lib/x86_64-linux-gnu] + collapse library dir [/lib/../lib] ==> [/lib] + collapse library dir [/usr/lib/x86_64-linux-gnu] ==> [/usr/lib/x86_64-linux-gnu] + collapse library dir [/usr/lib/../lib] ==> [/usr/lib] + collapse library dir [/usr/lib/gcc/x86_64-linux-gnu/5/../../..] ==> [/usr/lib] + implicit libs: [stdc++;m;gcc_s;gcc;c;gcc_s;gcc] + implicit dirs: [/usr/lib/gcc/x86_64-linux-gnu/5;/usr/lib/x86_64-linux-gnu;/usr/lib;/lib/x86_64-linux-gnu;/lib] + implicit fwks: [] + + + + +Detecting CXX [-std=c++1z] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_a9dca/fast" +/usr/bin/make -f CMakeFiles/cmTC_a9dca.dir/build.make CMakeFiles/cmTC_a9dca.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_a9dca.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++1z -o CMakeFiles/cmTC_a9dca.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_a9dca +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_a9dca.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_a9dca.dir/feature_tests.cxx.o -o cmTC_a9dca +make[1]: Leaving directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++14] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_24307/fast" +/usr/bin/make -f CMakeFiles/cmTC_24307.dir/build.make CMakeFiles/cmTC_24307.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_24307.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++14 -o CMakeFiles/cmTC_24307.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_24307 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_24307.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_24307.dir/feature_tests.cxx.o -o cmTC_24307 +make[1]: Leaving directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:1cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:1cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:1cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:1cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:1cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:1cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:1cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:1cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:1cxx_relaxed_constexpr + Feature record: CXX_FEATURE:1cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:1cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++11] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_20128/fast" +/usr/bin/make -f CMakeFiles/cmTC_20128.dir/build.make CMakeFiles/cmTC_20128.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_20128.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++11 -o CMakeFiles/cmTC_20128.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_20128 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_20128.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_20128.dir/feature_tests.cxx.o -o cmTC_20128 +make[1]: Leaving directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:1cxx_alias_templates + Feature record: CXX_FEATURE:1cxx_alignas + Feature record: CXX_FEATURE:1cxx_alignof + Feature record: CXX_FEATURE:1cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:1cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:1cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:1cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:1cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:1cxx_default_function_template_args + Feature record: CXX_FEATURE:1cxx_defaulted_functions + Feature record: CXX_FEATURE:1cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:1cxx_delegating_constructors + Feature record: CXX_FEATURE:1cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:1cxx_enum_forward_declarations + Feature record: CXX_FEATURE:1cxx_explicit_conversions + Feature record: CXX_FEATURE:1cxx_extended_friend_declarations + Feature record: CXX_FEATURE:1cxx_extern_templates + Feature record: CXX_FEATURE:1cxx_final + Feature record: CXX_FEATURE:1cxx_func_identifier + Feature record: CXX_FEATURE:1cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:1cxx_inheriting_constructors + Feature record: CXX_FEATURE:1cxx_inline_namespaces + Feature record: CXX_FEATURE:1cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:1cxx_local_type_template_args + Feature record: CXX_FEATURE:1cxx_long_long_type + Feature record: CXX_FEATURE:1cxx_noexcept + Feature record: CXX_FEATURE:1cxx_nonstatic_member_init + Feature record: CXX_FEATURE:1cxx_nullptr + Feature record: CXX_FEATURE:1cxx_override + Feature record: CXX_FEATURE:1cxx_range_for + Feature record: CXX_FEATURE:1cxx_raw_string_literals + Feature record: CXX_FEATURE:1cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:1cxx_right_angle_brackets + Feature record: CXX_FEATURE:1cxx_rvalue_references + Feature record: CXX_FEATURE:1cxx_sizeof_member + Feature record: CXX_FEATURE:1cxx_static_assert + Feature record: CXX_FEATURE:1cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:1cxx_thread_local + Feature record: CXX_FEATURE:1cxx_trailing_return_types + Feature record: CXX_FEATURE:1cxx_unicode_literals + Feature record: CXX_FEATURE:1cxx_uniform_initialization + Feature record: CXX_FEATURE:1cxx_unrestricted_unions + Feature record: CXX_FEATURE:1cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:1cxx_variadic_macros + Feature record: CXX_FEATURE:1cxx_variadic_templates + + +Detecting CXX [-std=c++98] compiler features compiled with the following output: +Change Dir: /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp + +Run Build Command:"/usr/bin/make" "cmTC_12b16/fast" +/usr/bin/make -f CMakeFiles/cmTC_12b16.dir/build.make CMakeFiles/cmTC_12b16.dir/build +make[1]: Entering directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' +Building CXX object CMakeFiles/cmTC_12b16.dir/feature_tests.cxx.o +/usr/bin/c++ -std=c++98 -o CMakeFiles/cmTC_12b16.dir/feature_tests.cxx.o -c /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/feature_tests.cxx +Linking CXX executable cmTC_12b16 +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E cmake_link_script CMakeFiles/cmTC_12b16.dir/link.txt --verbose=1 +/usr/bin/c++ -rdynamic CMakeFiles/cmTC_12b16.dir/feature_tests.cxx.o -o cmTC_12b16 +make[1]: Leaving directory '/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/CMakeTmp' + + + Feature record: CXX_FEATURE:0cxx_aggregate_default_initializers + Feature record: CXX_FEATURE:0cxx_alias_templates + Feature record: CXX_FEATURE:0cxx_alignas + Feature record: CXX_FEATURE:0cxx_alignof + Feature record: CXX_FEATURE:0cxx_attributes + Feature record: CXX_FEATURE:0cxx_attribute_deprecated + Feature record: CXX_FEATURE:0cxx_auto_type + Feature record: CXX_FEATURE:0cxx_binary_literals + Feature record: CXX_FEATURE:0cxx_constexpr + Feature record: CXX_FEATURE:0cxx_contextual_conversions + Feature record: CXX_FEATURE:0cxx_decltype + Feature record: CXX_FEATURE:0cxx_decltype_auto + Feature record: CXX_FEATURE:0cxx_decltype_incomplete_return_types + Feature record: CXX_FEATURE:0cxx_default_function_template_args + Feature record: CXX_FEATURE:0cxx_defaulted_functions + Feature record: CXX_FEATURE:0cxx_defaulted_move_initializers + Feature record: CXX_FEATURE:0cxx_delegating_constructors + Feature record: CXX_FEATURE:0cxx_deleted_functions + Feature record: CXX_FEATURE:0cxx_digit_separators + Feature record: CXX_FEATURE:0cxx_enum_forward_declarations + Feature record: CXX_FEATURE:0cxx_explicit_conversions + Feature record: CXX_FEATURE:0cxx_extended_friend_declarations + Feature record: CXX_FEATURE:0cxx_extern_templates + Feature record: CXX_FEATURE:0cxx_final + Feature record: CXX_FEATURE:0cxx_func_identifier + Feature record: CXX_FEATURE:0cxx_generalized_initializers + Feature record: CXX_FEATURE:0cxx_generic_lambdas + Feature record: CXX_FEATURE:0cxx_inheriting_constructors + Feature record: CXX_FEATURE:0cxx_inline_namespaces + Feature record: CXX_FEATURE:0cxx_lambdas + Feature record: CXX_FEATURE:0cxx_lambda_init_captures + Feature record: CXX_FEATURE:0cxx_local_type_template_args + Feature record: CXX_FEATURE:0cxx_long_long_type + Feature record: CXX_FEATURE:0cxx_noexcept + Feature record: CXX_FEATURE:0cxx_nonstatic_member_init + Feature record: CXX_FEATURE:0cxx_nullptr + Feature record: CXX_FEATURE:0cxx_override + Feature record: CXX_FEATURE:0cxx_range_for + Feature record: CXX_FEATURE:0cxx_raw_string_literals + Feature record: CXX_FEATURE:0cxx_reference_qualified_functions + Feature record: CXX_FEATURE:0cxx_relaxed_constexpr + Feature record: CXX_FEATURE:0cxx_return_type_deduction + Feature record: CXX_FEATURE:0cxx_right_angle_brackets + Feature record: CXX_FEATURE:0cxx_rvalue_references + Feature record: CXX_FEATURE:0cxx_sizeof_member + Feature record: CXX_FEATURE:0cxx_static_assert + Feature record: CXX_FEATURE:0cxx_strong_enums + Feature record: CXX_FEATURE:1cxx_template_template_parameters + Feature record: CXX_FEATURE:0cxx_thread_local + Feature record: CXX_FEATURE:0cxx_trailing_return_types + Feature record: CXX_FEATURE:0cxx_unicode_literals + Feature record: CXX_FEATURE:0cxx_uniform_initialization + Feature record: CXX_FEATURE:0cxx_unrestricted_unions + Feature record: CXX_FEATURE:0cxx_user_literals + Feature record: CXX_FEATURE:0cxx_variable_templates + Feature record: CXX_FEATURE:0cxx_variadic_macros + Feature record: CXX_FEATURE:0cxx_variadic_templates diff --git a/week09/cmake-build-debug/CMakeFiles/Makefile.cmake b/week09/cmake-build-debug/CMakeFiles/Makefile.cmake new file mode 100644 index 00000000..e7aa5ddd --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/Makefile.cmake @@ -0,0 +1,56 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# The generator used is: +set(CMAKE_DEPENDS_GENERATOR "Unix Makefiles") + +# The top level Makefile was generated from the following files: +set(CMAKE_MAKEFILE_DEPENDS + "CMakeCache.txt" + "../CMakeLists.txt" + "CMakeFiles/3.13.2/CMakeCCompiler.cmake" + "CMakeFiles/3.13.2/CMakeCXXCompiler.cmake" + "CMakeFiles/3.13.2/CMakeSystem.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCXXInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeCommonLanguageInclude.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeExtraGeneratorDetermineCompilerMacrosAndIncludeDirs.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeFindCodeBlocks.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeGenericSystem.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeInitializeConfigs.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeLanguageInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeSystemSpecificInformation.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/CMakeSystemSpecificInitialize.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/CMakeCommonCompilerMacros.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU-C.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU-CXX.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Compiler/GNU.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU-C.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU-CXX.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux-GNU.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/Linux.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/Platform/UnixPaths.cmake" + "/home/lewang/clion-2018.3.4/bin/cmake/linux/share/cmake-3.13/Modules/ProcessorCount.cmake" + ) + +# The corresponding makefile is: +set(CMAKE_MAKEFILE_OUTPUTS + "Makefile" + "CMakeFiles/cmake.check_cache" + ) + +# Byproducts of CMake generate step: +set(CMAKE_MAKEFILE_PRODUCTS + "CMakeFiles/CMakeDirectoryInformation.cmake" + ) + +# Dependency information for all targets: +set(CMAKE_DEPEND_INFO_FILES + "CMakeFiles/8_myAtoi.dir/DependInfo.cmake" + "CMakeFiles/541_reverseStr.dir/DependInfo.cmake" + "CMakeFiles/917_reverseOnlyLetters.dir/DependInfo.cmake" + "CMakeFiles/205_isIosmorphic.dir/DependInfo.cmake" + "CMakeFiles/387_firstuniquechar.dir/DependInfo.cmake" + "CMakeFiles/151_reverseWords.dir/DependInfo.cmake" + "CMakeFiles/680_validPalindrome.dir/DependInfo.cmake" + ) diff --git a/week09/cmake-build-debug/CMakeFiles/Makefile2 b/week09/cmake-build-debug/CMakeFiles/Makefile2 new file mode 100644 index 00000000..d870b8ea --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/Makefile2 @@ -0,0 +1,335 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# The main recursive all target +all: + +.PHONY : all + +# The main recursive preinstall target +preinstall: + +.PHONY : preinstall + +# The main recursive clean target +clean: + +.PHONY : clean + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week09 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week09/cmake-build-debug + +#============================================================================= +# Target rules for target CMakeFiles/8_myAtoi.dir + +# All Build rule for target. +CMakeFiles/8_myAtoi.dir/all: + $(MAKE) -f CMakeFiles/8_myAtoi.dir/build.make CMakeFiles/8_myAtoi.dir/depend + $(MAKE) -f CMakeFiles/8_myAtoi.dir/build.make CMakeFiles/8_myAtoi.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=11,12 "Built target 8_myAtoi" +.PHONY : CMakeFiles/8_myAtoi.dir/all + +# Include target in all. +all: CMakeFiles/8_myAtoi.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/8_myAtoi.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/8_myAtoi.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/8_myAtoi.dir/rule + +# Convenience name for target. +8_myAtoi: CMakeFiles/8_myAtoi.dir/rule + +.PHONY : 8_myAtoi + +# clean rule for target. +CMakeFiles/8_myAtoi.dir/clean: + $(MAKE) -f CMakeFiles/8_myAtoi.dir/build.make CMakeFiles/8_myAtoi.dir/clean +.PHONY : CMakeFiles/8_myAtoi.dir/clean + +# clean rule for target. +clean: CMakeFiles/8_myAtoi.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/541_reverseStr.dir + +# All Build rule for target. +CMakeFiles/541_reverseStr.dir/all: + $(MAKE) -f CMakeFiles/541_reverseStr.dir/build.make CMakeFiles/541_reverseStr.dir/depend + $(MAKE) -f CMakeFiles/541_reverseStr.dir/build.make CMakeFiles/541_reverseStr.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=7,8 "Built target 541_reverseStr" +.PHONY : CMakeFiles/541_reverseStr.dir/all + +# Include target in all. +all: CMakeFiles/541_reverseStr.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/541_reverseStr.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/541_reverseStr.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/541_reverseStr.dir/rule + +# Convenience name for target. +541_reverseStr: CMakeFiles/541_reverseStr.dir/rule + +.PHONY : 541_reverseStr + +# clean rule for target. +CMakeFiles/541_reverseStr.dir/clean: + $(MAKE) -f CMakeFiles/541_reverseStr.dir/build.make CMakeFiles/541_reverseStr.dir/clean +.PHONY : CMakeFiles/541_reverseStr.dir/clean + +# clean rule for target. +clean: CMakeFiles/541_reverseStr.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/917_reverseOnlyLetters.dir + +# All Build rule for target. +CMakeFiles/917_reverseOnlyLetters.dir/all: + $(MAKE) -f CMakeFiles/917_reverseOnlyLetters.dir/build.make CMakeFiles/917_reverseOnlyLetters.dir/depend + $(MAKE) -f CMakeFiles/917_reverseOnlyLetters.dir/build.make CMakeFiles/917_reverseOnlyLetters.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=13,14 "Built target 917_reverseOnlyLetters" +.PHONY : CMakeFiles/917_reverseOnlyLetters.dir/all + +# Include target in all. +all: CMakeFiles/917_reverseOnlyLetters.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/917_reverseOnlyLetters.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/917_reverseOnlyLetters.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/917_reverseOnlyLetters.dir/rule + +# Convenience name for target. +917_reverseOnlyLetters: CMakeFiles/917_reverseOnlyLetters.dir/rule + +.PHONY : 917_reverseOnlyLetters + +# clean rule for target. +CMakeFiles/917_reverseOnlyLetters.dir/clean: + $(MAKE) -f CMakeFiles/917_reverseOnlyLetters.dir/build.make CMakeFiles/917_reverseOnlyLetters.dir/clean +.PHONY : CMakeFiles/917_reverseOnlyLetters.dir/clean + +# clean rule for target. +clean: CMakeFiles/917_reverseOnlyLetters.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/205_isIosmorphic.dir + +# All Build rule for target. +CMakeFiles/205_isIosmorphic.dir/all: + $(MAKE) -f CMakeFiles/205_isIosmorphic.dir/build.make CMakeFiles/205_isIosmorphic.dir/depend + $(MAKE) -f CMakeFiles/205_isIosmorphic.dir/build.make CMakeFiles/205_isIosmorphic.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=3,4 "Built target 205_isIosmorphic" +.PHONY : CMakeFiles/205_isIosmorphic.dir/all + +# Include target in all. +all: CMakeFiles/205_isIosmorphic.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/205_isIosmorphic.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/205_isIosmorphic.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/205_isIosmorphic.dir/rule + +# Convenience name for target. +205_isIosmorphic: CMakeFiles/205_isIosmorphic.dir/rule + +.PHONY : 205_isIosmorphic + +# clean rule for target. +CMakeFiles/205_isIosmorphic.dir/clean: + $(MAKE) -f CMakeFiles/205_isIosmorphic.dir/build.make CMakeFiles/205_isIosmorphic.dir/clean +.PHONY : CMakeFiles/205_isIosmorphic.dir/clean + +# clean rule for target. +clean: CMakeFiles/205_isIosmorphic.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/387_firstuniquechar.dir + +# All Build rule for target. +CMakeFiles/387_firstuniquechar.dir/all: + $(MAKE) -f CMakeFiles/387_firstuniquechar.dir/build.make CMakeFiles/387_firstuniquechar.dir/depend + $(MAKE) -f CMakeFiles/387_firstuniquechar.dir/build.make CMakeFiles/387_firstuniquechar.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=5,6 "Built target 387_firstuniquechar" +.PHONY : CMakeFiles/387_firstuniquechar.dir/all + +# Include target in all. +all: CMakeFiles/387_firstuniquechar.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/387_firstuniquechar.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/387_firstuniquechar.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/387_firstuniquechar.dir/rule + +# Convenience name for target. +387_firstuniquechar: CMakeFiles/387_firstuniquechar.dir/rule + +.PHONY : 387_firstuniquechar + +# clean rule for target. +CMakeFiles/387_firstuniquechar.dir/clean: + $(MAKE) -f CMakeFiles/387_firstuniquechar.dir/build.make CMakeFiles/387_firstuniquechar.dir/clean +.PHONY : CMakeFiles/387_firstuniquechar.dir/clean + +# clean rule for target. +clean: CMakeFiles/387_firstuniquechar.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/151_reverseWords.dir + +# All Build rule for target. +CMakeFiles/151_reverseWords.dir/all: + $(MAKE) -f CMakeFiles/151_reverseWords.dir/build.make CMakeFiles/151_reverseWords.dir/depend + $(MAKE) -f CMakeFiles/151_reverseWords.dir/build.make CMakeFiles/151_reverseWords.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=1,2 "Built target 151_reverseWords" +.PHONY : CMakeFiles/151_reverseWords.dir/all + +# Include target in all. +all: CMakeFiles/151_reverseWords.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/151_reverseWords.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/151_reverseWords.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/151_reverseWords.dir/rule + +# Convenience name for target. +151_reverseWords: CMakeFiles/151_reverseWords.dir/rule + +.PHONY : 151_reverseWords + +# clean rule for target. +CMakeFiles/151_reverseWords.dir/clean: + $(MAKE) -f CMakeFiles/151_reverseWords.dir/build.make CMakeFiles/151_reverseWords.dir/clean +.PHONY : CMakeFiles/151_reverseWords.dir/clean + +# clean rule for target. +clean: CMakeFiles/151_reverseWords.dir/clean + +.PHONY : clean + +#============================================================================= +# Target rules for target CMakeFiles/680_validPalindrome.dir + +# All Build rule for target. +CMakeFiles/680_validPalindrome.dir/all: + $(MAKE) -f CMakeFiles/680_validPalindrome.dir/build.make CMakeFiles/680_validPalindrome.dir/depend + $(MAKE) -f CMakeFiles/680_validPalindrome.dir/build.make CMakeFiles/680_validPalindrome.dir/build + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --progress-dir=/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles --progress-num=9,10 "Built target 680_validPalindrome" +.PHONY : CMakeFiles/680_validPalindrome.dir/all + +# Include target in all. +all: CMakeFiles/680_validPalindrome.dir/all + +.PHONY : all + +# Build rule for subdir invocation for target. +CMakeFiles/680_validPalindrome.dir/rule: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles 2 + $(MAKE) -f CMakeFiles/Makefile2 CMakeFiles/680_validPalindrome.dir/all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles 0 +.PHONY : CMakeFiles/680_validPalindrome.dir/rule + +# Convenience name for target. +680_validPalindrome: CMakeFiles/680_validPalindrome.dir/rule + +.PHONY : 680_validPalindrome + +# clean rule for target. +CMakeFiles/680_validPalindrome.dir/clean: + $(MAKE) -f CMakeFiles/680_validPalindrome.dir/build.make CMakeFiles/680_validPalindrome.dir/clean +.PHONY : CMakeFiles/680_validPalindrome.dir/clean + +# clean rule for target. +clean: CMakeFiles/680_validPalindrome.dir/clean + +.PHONY : clean + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/week09/cmake-build-debug/CMakeFiles/TargetDirectories.txt b/week09/cmake-build-debug/CMakeFiles/TargetDirectories.txt new file mode 100644 index 00000000..4d45784e --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/TargetDirectories.txt @@ -0,0 +1,9 @@ +/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/rebuild_cache.dir +/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/edit_cache.dir +/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/8_myAtoi.dir +/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/541_reverseStr.dir +/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/917_reverseOnlyLetters.dir +/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/205_isIosmorphic.dir +/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/387_firstuniquechar.dir +/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/151_reverseWords.dir +/home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/680_validPalindrome.dir diff --git a/week09/cmake-build-debug/CMakeFiles/clion-environment.txt b/week09/cmake-build-debug/CMakeFiles/clion-environment.txt new file mode 100644 index 00000000..270d93c2 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/clion-environment.txt @@ -0,0 +1,3 @@ +ToolSet: 1.0 (local)Options: + +Options: \ No newline at end of file diff --git a/week09/cmake-build-debug/CMakeFiles/clion-log.txt b/week09/cmake-build-debug/CMakeFiles/clion-log.txt new file mode 100644 index 00000000..706e6f2e --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/clion-log.txt @@ -0,0 +1,4 @@ +/home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -DCMAKE_BUILD_TYPE=Debug -G "CodeBlocks - Unix Makefiles" /home/lewang/algorithm018/week09 +-- Configuring done +-- Generating done +-- Build files have been written to: /home/lewang/algorithm018/week09/cmake-build-debug diff --git a/week09/cmake-build-debug/CMakeFiles/cmake.check_cache b/week09/cmake-build-debug/CMakeFiles/cmake.check_cache new file mode 100644 index 00000000..3dccd731 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/cmake.check_cache @@ -0,0 +1 @@ +# This file is generated by cmake for dependency checking of the CMakeCache.txt file diff --git a/week09/cmake-build-debug/CMakeFiles/feature_tests.bin b/week09/cmake-build-debug/CMakeFiles/feature_tests.bin new file mode 100755 index 0000000000000000000000000000000000000000..c1bade88a09ced4221830cdf30b0fa11360b60ea GIT binary patch literal 12520 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 S*dX~wSGpXhnNd-{{J#MLk8ZjE literal 0 HcmV?d00001 diff --git a/week09/cmake-build-debug/CMakeFiles/feature_tests.c b/week09/cmake-build-debug/CMakeFiles/feature_tests.c new file mode 100644 index 00000000..83e86dd8 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/feature_tests.c @@ -0,0 +1,34 @@ + + const char features[] = {"\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 +"1" +#else +"0" +#endif +"c_function_prototypes\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_restrict\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201000L +"1" +#else +"0" +#endif +"c_static_assert\n" +"C_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 304 && defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L +"1" +#else +"0" +#endif +"c_variadic_macros\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/week09/cmake-build-debug/CMakeFiles/feature_tests.cxx b/week09/cmake-build-debug/CMakeFiles/feature_tests.cxx new file mode 100644 index 00000000..b93418c6 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/feature_tests.cxx @@ -0,0 +1,405 @@ + + const char features[] = {"\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_aggregate_default_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alias_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_alignof\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_attributes\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_attribute_deprecated\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_auto_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_binary_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_contextual_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_decltype\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_decltype_auto\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_decltype_incomplete_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_default_function_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_defaulted_move_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_delegating_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_deleted_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_digit_separators\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_enum_forward_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_explicit_conversions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_extended_friend_declarations\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_extern_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_final\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_func_identifier\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_generalized_initializers\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_generic_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_inheriting_constructors\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_inline_namespaces\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_lambdas\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_lambda_init_captures\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_local_type_template_args\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_long_long_type\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_noexcept\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_nonstatic_member_init\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_nullptr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_override\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_range_for\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 405 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_raw_string_literals\n" +"CXX_FEATURE:" +#if ((__GNUC__ * 10000 + __GNUC_MINOR__ * 100 + __GNUC_PATCHLEVEL__) >= 40801) && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_reference_qualified_functions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_relaxed_constexpr\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 409 && __cplusplus > 201103L +"1" +#else +"0" +#endif +"cxx_return_type_deduction\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_right_angle_brackets\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_rvalue_references\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_sizeof_member\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_static_assert\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_strong_enums\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && __cplusplus +"1" +#else +"0" +#endif +"cxx_template_template_parameters\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 408 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_thread_local\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_trailing_return_types\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unicode_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_uniform_initialization\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 406 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_unrestricted_unions\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 407 && __cplusplus >= 201103L +"1" +#else +"0" +#endif +"cxx_user_literals\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 500 && __cplusplus >= 201402L +"1" +#else +"0" +#endif +"cxx_variable_templates\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_macros\n" +"CXX_FEATURE:" +#if (__GNUC__ * 100 + __GNUC_MINOR__) >= 404 && (__cplusplus >= 201103L || (defined(__GXX_EXPERIMENTAL_CXX0X__) && __GXX_EXPERIMENTAL_CXX0X__)) +"1" +#else +"0" +#endif +"cxx_variadic_templates\n" + +}; + +int main(int argc, char** argv) { (void)argv; return features[argc]; } diff --git a/week09/cmake-build-debug/CMakeFiles/progress.marks b/week09/cmake-build-debug/CMakeFiles/progress.marks new file mode 100644 index 00000000..8351c193 --- /dev/null +++ b/week09/cmake-build-debug/CMakeFiles/progress.marks @@ -0,0 +1 @@ +14 diff --git a/week09/cmake-build-debug/Makefile b/week09/cmake-build-debug/Makefile new file mode 100644 index 00000000..74f7f435 --- /dev/null +++ b/week09/cmake-build-debug/Makefile @@ -0,0 +1,442 @@ +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.13 + +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake + +# The command to remove a file. +RM = /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /home/lewang/algorithm018/week09 + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /home/lewang/algorithm018/week09/cmake-build-debug + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "No interactive CMake dialog available..." + /home/lewang/clion-2018.3.4/bin/cmake/linux/bin/cmake -E echo No\ interactive\ CMake\ dialog\ available. +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /home/lewang/algorithm018/week09/cmake-build-debug/CMakeFiles 0 +.PHONY : all + +# The main clean target +clean: + $(MAKE) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named 8_myAtoi + +# Build rule for target. +8_myAtoi: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 8_myAtoi +.PHONY : 8_myAtoi + +# fast build rule for target. +8_myAtoi/fast: + $(MAKE) -f CMakeFiles/8_myAtoi.dir/build.make CMakeFiles/8_myAtoi.dir/build +.PHONY : 8_myAtoi/fast + +#============================================================================= +# Target rules for targets named 541_reverseStr + +# Build rule for target. +541_reverseStr: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 541_reverseStr +.PHONY : 541_reverseStr + +# fast build rule for target. +541_reverseStr/fast: + $(MAKE) -f CMakeFiles/541_reverseStr.dir/build.make CMakeFiles/541_reverseStr.dir/build +.PHONY : 541_reverseStr/fast + +#============================================================================= +# Target rules for targets named 917_reverseOnlyLetters + +# Build rule for target. +917_reverseOnlyLetters: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 917_reverseOnlyLetters +.PHONY : 917_reverseOnlyLetters + +# fast build rule for target. +917_reverseOnlyLetters/fast: + $(MAKE) -f CMakeFiles/917_reverseOnlyLetters.dir/build.make CMakeFiles/917_reverseOnlyLetters.dir/build +.PHONY : 917_reverseOnlyLetters/fast + +#============================================================================= +# Target rules for targets named 205_isIosmorphic + +# Build rule for target. +205_isIosmorphic: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 205_isIosmorphic +.PHONY : 205_isIosmorphic + +# fast build rule for target. +205_isIosmorphic/fast: + $(MAKE) -f CMakeFiles/205_isIosmorphic.dir/build.make CMakeFiles/205_isIosmorphic.dir/build +.PHONY : 205_isIosmorphic/fast + +#============================================================================= +# Target rules for targets named 387_firstuniquechar + +# Build rule for target. +387_firstuniquechar: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 387_firstuniquechar +.PHONY : 387_firstuniquechar + +# fast build rule for target. +387_firstuniquechar/fast: + $(MAKE) -f CMakeFiles/387_firstuniquechar.dir/build.make CMakeFiles/387_firstuniquechar.dir/build +.PHONY : 387_firstuniquechar/fast + +#============================================================================= +# Target rules for targets named 151_reverseWords + +# Build rule for target. +151_reverseWords: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 151_reverseWords +.PHONY : 151_reverseWords + +# fast build rule for target. +151_reverseWords/fast: + $(MAKE) -f CMakeFiles/151_reverseWords.dir/build.make CMakeFiles/151_reverseWords.dir/build +.PHONY : 151_reverseWords/fast + +#============================================================================= +# Target rules for targets named 680_validPalindrome + +# Build rule for target. +680_validPalindrome: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 680_validPalindrome +.PHONY : 680_validPalindrome + +# fast build rule for target. +680_validPalindrome/fast: + $(MAKE) -f CMakeFiles/680_validPalindrome.dir/build.make CMakeFiles/680_validPalindrome.dir/build +.PHONY : 680_validPalindrome/fast + +151_reverseWords.o: 151_reverseWords.cpp.o + +.PHONY : 151_reverseWords.o + +# target to build an object file +151_reverseWords.cpp.o: + $(MAKE) -f CMakeFiles/151_reverseWords.dir/build.make CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.o +.PHONY : 151_reverseWords.cpp.o + +151_reverseWords.i: 151_reverseWords.cpp.i + +.PHONY : 151_reverseWords.i + +# target to preprocess a source file +151_reverseWords.cpp.i: + $(MAKE) -f CMakeFiles/151_reverseWords.dir/build.make CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.i +.PHONY : 151_reverseWords.cpp.i + +151_reverseWords.s: 151_reverseWords.cpp.s + +.PHONY : 151_reverseWords.s + +# target to generate assembly for a file +151_reverseWords.cpp.s: + $(MAKE) -f CMakeFiles/151_reverseWords.dir/build.make CMakeFiles/151_reverseWords.dir/151_reverseWords.cpp.s +.PHONY : 151_reverseWords.cpp.s + +205_isIosmorphic.o: 205_isIosmorphic.cpp.o + +.PHONY : 205_isIosmorphic.o + +# target to build an object file +205_isIosmorphic.cpp.o: + $(MAKE) -f CMakeFiles/205_isIosmorphic.dir/build.make CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.o +.PHONY : 205_isIosmorphic.cpp.o + +205_isIosmorphic.i: 205_isIosmorphic.cpp.i + +.PHONY : 205_isIosmorphic.i + +# target to preprocess a source file +205_isIosmorphic.cpp.i: + $(MAKE) -f CMakeFiles/205_isIosmorphic.dir/build.make CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.i +.PHONY : 205_isIosmorphic.cpp.i + +205_isIosmorphic.s: 205_isIosmorphic.cpp.s + +.PHONY : 205_isIosmorphic.s + +# target to generate assembly for a file +205_isIosmorphic.cpp.s: + $(MAKE) -f CMakeFiles/205_isIosmorphic.dir/build.make CMakeFiles/205_isIosmorphic.dir/205_isIosmorphic.cpp.s +.PHONY : 205_isIosmorphic.cpp.s + +387_firstuniquechar.o: 387_firstuniquechar.cpp.o + +.PHONY : 387_firstuniquechar.o + +# target to build an object file +387_firstuniquechar.cpp.o: + $(MAKE) -f CMakeFiles/387_firstuniquechar.dir/build.make CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.o +.PHONY : 387_firstuniquechar.cpp.o + +387_firstuniquechar.i: 387_firstuniquechar.cpp.i + +.PHONY : 387_firstuniquechar.i + +# target to preprocess a source file +387_firstuniquechar.cpp.i: + $(MAKE) -f CMakeFiles/387_firstuniquechar.dir/build.make CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.i +.PHONY : 387_firstuniquechar.cpp.i + +387_firstuniquechar.s: 387_firstuniquechar.cpp.s + +.PHONY : 387_firstuniquechar.s + +# target to generate assembly for a file +387_firstuniquechar.cpp.s: + $(MAKE) -f CMakeFiles/387_firstuniquechar.dir/build.make CMakeFiles/387_firstuniquechar.dir/387_firstuniquechar.cpp.s +.PHONY : 387_firstuniquechar.cpp.s + +541_reverseStr.o: 541_reverseStr.cpp.o + +.PHONY : 541_reverseStr.o + +# target to build an object file +541_reverseStr.cpp.o: + $(MAKE) -f CMakeFiles/541_reverseStr.dir/build.make CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.o +.PHONY : 541_reverseStr.cpp.o + +541_reverseStr.i: 541_reverseStr.cpp.i + +.PHONY : 541_reverseStr.i + +# target to preprocess a source file +541_reverseStr.cpp.i: + $(MAKE) -f CMakeFiles/541_reverseStr.dir/build.make CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.i +.PHONY : 541_reverseStr.cpp.i + +541_reverseStr.s: 541_reverseStr.cpp.s + +.PHONY : 541_reverseStr.s + +# target to generate assembly for a file +541_reverseStr.cpp.s: + $(MAKE) -f CMakeFiles/541_reverseStr.dir/build.make CMakeFiles/541_reverseStr.dir/541_reverseStr.cpp.s +.PHONY : 541_reverseStr.cpp.s + +680_validPalindrome.o: 680_validPalindrome.cpp.o + +.PHONY : 680_validPalindrome.o + +# target to build an object file +680_validPalindrome.cpp.o: + $(MAKE) -f CMakeFiles/680_validPalindrome.dir/build.make CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.o +.PHONY : 680_validPalindrome.cpp.o + +680_validPalindrome.i: 680_validPalindrome.cpp.i + +.PHONY : 680_validPalindrome.i + +# target to preprocess a source file +680_validPalindrome.cpp.i: + $(MAKE) -f CMakeFiles/680_validPalindrome.dir/build.make CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.i +.PHONY : 680_validPalindrome.cpp.i + +680_validPalindrome.s: 680_validPalindrome.cpp.s + +.PHONY : 680_validPalindrome.s + +# target to generate assembly for a file +680_validPalindrome.cpp.s: + $(MAKE) -f CMakeFiles/680_validPalindrome.dir/build.make CMakeFiles/680_validPalindrome.dir/680_validPalindrome.cpp.s +.PHONY : 680_validPalindrome.cpp.s + +8_myAtoi.o: 8_myAtoi.cpp.o + +.PHONY : 8_myAtoi.o + +# target to build an object file +8_myAtoi.cpp.o: + $(MAKE) -f CMakeFiles/8_myAtoi.dir/build.make CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.o +.PHONY : 8_myAtoi.cpp.o + +8_myAtoi.i: 8_myAtoi.cpp.i + +.PHONY : 8_myAtoi.i + +# target to preprocess a source file +8_myAtoi.cpp.i: + $(MAKE) -f CMakeFiles/8_myAtoi.dir/build.make CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.i +.PHONY : 8_myAtoi.cpp.i + +8_myAtoi.s: 8_myAtoi.cpp.s + +.PHONY : 8_myAtoi.s + +# target to generate assembly for a file +8_myAtoi.cpp.s: + $(MAKE) -f CMakeFiles/8_myAtoi.dir/build.make CMakeFiles/8_myAtoi.dir/8_myAtoi.cpp.s +.PHONY : 8_myAtoi.cpp.s + +917_reverseOnlyLetters.o: 917_reverseOnlyLetters.cpp.o + +.PHONY : 917_reverseOnlyLetters.o + +# target to build an object file +917_reverseOnlyLetters.cpp.o: + $(MAKE) -f CMakeFiles/917_reverseOnlyLetters.dir/build.make CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.o +.PHONY : 917_reverseOnlyLetters.cpp.o + +917_reverseOnlyLetters.i: 917_reverseOnlyLetters.cpp.i + +.PHONY : 917_reverseOnlyLetters.i + +# target to preprocess a source file +917_reverseOnlyLetters.cpp.i: + $(MAKE) -f CMakeFiles/917_reverseOnlyLetters.dir/build.make CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.i +.PHONY : 917_reverseOnlyLetters.cpp.i + +917_reverseOnlyLetters.s: 917_reverseOnlyLetters.cpp.s + +.PHONY : 917_reverseOnlyLetters.s + +# target to generate assembly for a file +917_reverseOnlyLetters.cpp.s: + $(MAKE) -f CMakeFiles/917_reverseOnlyLetters.dir/build.make CMakeFiles/917_reverseOnlyLetters.dir/917_reverseOnlyLetters.cpp.s +.PHONY : 917_reverseOnlyLetters.cpp.s + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... rebuild_cache" + @echo "... edit_cache" + @echo "... 8_myAtoi" + @echo "... 541_reverseStr" + @echo "... 917_reverseOnlyLetters" + @echo "... 205_isIosmorphic" + @echo "... 387_firstuniquechar" + @echo "... 151_reverseWords" + @echo "... 680_validPalindrome" + @echo "... 151_reverseWords.o" + @echo "... 151_reverseWords.i" + @echo "... 151_reverseWords.s" + @echo "... 205_isIosmorphic.o" + @echo "... 205_isIosmorphic.i" + @echo "... 205_isIosmorphic.s" + @echo "... 387_firstuniquechar.o" + @echo "... 387_firstuniquechar.i" + @echo "... 387_firstuniquechar.s" + @echo "... 541_reverseStr.o" + @echo "... 541_reverseStr.i" + @echo "... 541_reverseStr.s" + @echo "... 680_validPalindrome.o" + @echo "... 680_validPalindrome.i" + @echo "... 680_validPalindrome.s" + @echo "... 8_myAtoi.o" + @echo "... 8_myAtoi.i" + @echo "... 8_myAtoi.s" + @echo "... 917_reverseOnlyLetters.o" + @echo "... 917_reverseOnlyLetters.i" + @echo "... 917_reverseOnlyLetters.s" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -S$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system + diff --git a/week09/cmake-build-debug/cmake_install.cmake b/week09/cmake-build-debug/cmake_install.cmake new file mode 100644 index 00000000..50be1ed7 --- /dev/null +++ b/week09/cmake-build-debug/cmake_install.cmake @@ -0,0 +1,49 @@ +# Install script for directory: /home/lewang/algorithm018/week09 + +# Set the install prefix +if(NOT DEFINED CMAKE_INSTALL_PREFIX) + set(CMAKE_INSTALL_PREFIX "/usr/local") +endif() +string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}") + +# Set the install configuration name. +if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME) + if(BUILD_TYPE) + string(REGEX REPLACE "^[^A-Za-z0-9_]+" "" + CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}") + else() + set(CMAKE_INSTALL_CONFIG_NAME "Debug") + endif() + message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"") +endif() + +# Set the component getting installed. +if(NOT CMAKE_INSTALL_COMPONENT) + if(COMPONENT) + message(STATUS "Install component: \"${COMPONENT}\"") + set(CMAKE_INSTALL_COMPONENT "${COMPONENT}") + else() + set(CMAKE_INSTALL_COMPONENT) + endif() +endif() + +# Install shared libraries without execute permission? +if(NOT DEFINED CMAKE_INSTALL_SO_NO_EXE) + set(CMAKE_INSTALL_SO_NO_EXE "1") +endif() + +# Is this installation the result of a crosscompile? +if(NOT DEFINED CMAKE_CROSSCOMPILING) + set(CMAKE_CROSSCOMPILING "FALSE") +endif() + +if(CMAKE_INSTALL_COMPONENT) + set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt") +else() + set(CMAKE_INSTALL_MANIFEST "install_manifest.txt") +endif() + +string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT + "${CMAKE_INSTALL_MANIFEST_FILES}") +file(WRITE "/home/lewang/algorithm018/week09/cmake-build-debug/${CMAKE_INSTALL_MANIFEST}" + "${CMAKE_INSTALL_MANIFEST_CONTENT}") diff --git a/week09/cmake-build-debug/week09.cbp b/week09/cmake-build-debug/week09.cbp new file mode 100644 index 00000000..598ec422 --- /dev/null +++ b/week09/cmake-build-debug/week09.cbp @@ -0,0 +1,388 @@ +<?xml version="1.0" encoding="UTF-8"?> +<CodeBlocks_project_file> + <FileVersion major="1" minor="6"/> + <Project> + <Option title="week09"/> + <Option makefile_is_custom="1"/> + <Option compiler="gcc"/> + <Option virtualFolders="CMake Files\;"/> + <Build> + <Target title="all"> + <Option working_dir="/home/lewang/algorithm018/week09/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 all"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="rebuild_cache"> + <Option working_dir="/home/lewang/algorithm018/week09/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 rebuild_cache"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="edit_cache"> + <Option working_dir="/home/lewang/algorithm018/week09/cmake-build-debug"/> + <Option type="4"/> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 edit_cache"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="8_myAtoi"> + <Option output="/home/lewang/algorithm018/week09/cmake-build-debug/8_myAtoi" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week09/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 8_myAtoi"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="8_myAtoi/fast"> + <Option output="/home/lewang/algorithm018/week09/cmake-build-debug/8_myAtoi" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week09/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 8_myAtoi/fast"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="541_reverseStr"> + <Option output="/home/lewang/algorithm018/week09/cmake-build-debug/541_reverseStr" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week09/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 541_reverseStr"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="541_reverseStr/fast"> + <Option output="/home/lewang/algorithm018/week09/cmake-build-debug/541_reverseStr" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week09/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 541_reverseStr/fast"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="917_reverseOnlyLetters"> + <Option output="/home/lewang/algorithm018/week09/cmake-build-debug/917_reverseOnlyLetters" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week09/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 917_reverseOnlyLetters"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="917_reverseOnlyLetters/fast"> + <Option output="/home/lewang/algorithm018/week09/cmake-build-debug/917_reverseOnlyLetters" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week09/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 917_reverseOnlyLetters/fast"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="205_isIosmorphic"> + <Option output="/home/lewang/algorithm018/week09/cmake-build-debug/205_isIosmorphic" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week09/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 205_isIosmorphic"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="205_isIosmorphic/fast"> + <Option output="/home/lewang/algorithm018/week09/cmake-build-debug/205_isIosmorphic" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week09/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 205_isIosmorphic/fast"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="387_firstuniquechar"> + <Option output="/home/lewang/algorithm018/week09/cmake-build-debug/387_firstuniquechar" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week09/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 387_firstuniquechar"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="387_firstuniquechar/fast"> + <Option output="/home/lewang/algorithm018/week09/cmake-build-debug/387_firstuniquechar" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week09/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 387_firstuniquechar/fast"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="151_reverseWords"> + <Option output="/home/lewang/algorithm018/week09/cmake-build-debug/151_reverseWords" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week09/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 151_reverseWords"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="151_reverseWords/fast"> + <Option output="/home/lewang/algorithm018/week09/cmake-build-debug/151_reverseWords" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week09/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 151_reverseWords/fast"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="680_validPalindrome"> + <Option output="/home/lewang/algorithm018/week09/cmake-build-debug/680_validPalindrome" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week09/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 680_validPalindrome"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + <Target title="680_validPalindrome/fast"> + <Option output="/home/lewang/algorithm018/week09/cmake-build-debug/680_validPalindrome" prefix_auto="0" extension_auto="0"/> + <Option working_dir="/home/lewang/algorithm018/week09/cmake-build-debug"/> + <Option object_output="./"/> + <Option type="1"/> + <Option compiler="gcc"/> + <Compiler> + <Add directory="/usr/include/c++/5"/> + <Add directory="/usr/include/x86_64-linux-gnu/c++/5"/> + <Add directory="/usr/include/c++/5/backward"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include"/> + <Add directory="/usr/local/include"/> + <Add directory="/usr/lib/gcc/x86_64-linux-gnu/5/include-fixed"/> + <Add directory="/usr/include/x86_64-linux-gnu"/> + <Add directory="/usr/include"/> + </Compiler> + <MakeCommands> + <Build command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 680_validPalindrome/fast"/> + <CompileFile command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 "$file""/> + <Clean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + <DistClean command="/usr/bin/make -j12 -f "/home/lewang/algorithm018/week09/cmake-build-debug/Makefile" VERBOSE=1 clean"/> + </MakeCommands> + </Target> + </Build> + <Unit filename="/home/lewang/algorithm018/week09/151_reverseWords.cpp"> + <Option target="151_reverseWords"/> + </Unit> + <Unit filename="/home/lewang/algorithm018/week09/205_isIosmorphic.cpp"> + <Option target="205_isIosmorphic"/> + </Unit> + <Unit filename="/home/lewang/algorithm018/week09/387_firstuniquechar.cpp"> + <Option target="387_firstuniquechar"/> + </Unit> + <Unit filename="/home/lewang/algorithm018/week09/541_reverseStr.cpp"> + <Option target="541_reverseStr"/> + </Unit> + <Unit filename="/home/lewang/algorithm018/week09/680_validPalindrome.cpp"> + <Option target="680_validPalindrome"/> + </Unit> + <Unit filename="/home/lewang/algorithm018/week09/8_myAtoi.cpp"> + <Option target="8_myAtoi"/> + </Unit> + <Unit filename="/home/lewang/algorithm018/week09/917_reverseOnlyLetters.cpp"> + <Option target="917_reverseOnlyLetters"/> + </Unit> + <Unit filename="/home/lewang/algorithm018/week09/CMakeLists.txt"> + <Option virtualFolder="CMake Files\"/> + </Unit> + </Project> +</CodeBlocks_project_file> From e42d042a876595d2bf922b84800f5f1c2152ba2f Mon Sep 17 00:00:00 2001 From: Ella2le <1071444737@qq.com> Date: Sat, 26 Dec 2020 16:23:53 +0800 Subject: [PATCH 21/21] =?UTF-8?q?Create=20=E5=AD=A6=E4=B9=A0=E6=80=BB?= =?UTF-8?q?=E7=BB=93.md?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...46\344\271\240\346\200\273\347\273\223.md" | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 "week10/\345\255\246\344\271\240\346\200\273\347\273\223.md" diff --git "a/week10/\345\255\246\344\271\240\346\200\273\347\273\223.md" "b/week10/\345\255\246\344\271\240\346\200\273\347\273\223.md" new file mode 100644 index 00000000..67c0e819 --- /dev/null +++ "b/week10/\345\255\246\344\271\240\346\200\273\347\273\223.md" @@ -0,0 +1,22 @@ +# 学习总结 +## 我学到的东西 +算法训练营算是我转码的起点吧,基础比较薄弱,所以对于课程的进度跟起来有点吃力,在后期也确实没有天天看,但是好歹入了个门 +- 学会了五遍刷题法 +- 学习到leetcode上刷题的高效流程 +- 学习了面试需要用到的数据结构和算法知识 +- 学会了解题思路和面试时候的沟通技巧 +- 在学习群里看到比我年轻,比我年长的同学和我一起学习,更让我坚定了我的学习之路 + +## 我还没学会的东西 +- 很多东西都是知道,而不是学会了,希望后面可以继续坚持超哥的学习路径继续学习 +- 动态规划和回溯还是做题的难点,还是需要多多联系 +- c++这门编程语言还有很多知识需要补充 +- 学习上的坚持还需要更加努力 + +## 我的一点点建议 +- 一些线上直播如果有回放就好了 +- 每周的课程的量分布的不是很均衡,有时候跟上会比较吃劲 +- 助教在微信群里的作用并不是特别大, +- 最好每周的作业不仅仅是助教的一些无关痛痒的点评,最好是能有一节作业点评课程,汇总一下每周作业同学们的主要难题 +- 虽然算法思想是一样的,但是c++,java,python还是会有区别,最好是上课就专一将一种,然后别的给源码或者链接看也好 +